Trying to get analytics on Microsoft teams calls - microsoft-graph-api

I am trying to put together analytics on Microsoft teams calls. I would like to get hold times, number of transfers, call time, etc. I came across this call https://graph.microsoft.com/beta/communications/callRecords and it gives me a list of calls with call times, but I can't find a way to get hold times, what line it came in on, etc. Greatly appreciate any pointers.

First of all, this end point https://graph.microsoft.com/beta/communications/callRecords only allows you to query a single call record using its ID, it does not support querying a list of call records for the whole tenant or for a specific user.
The only way currently to find this ID to query the call record is by setting up a web hook to receive change notifications. Refer to the following documentation for more info on change notifications.
To directly address your question, i am not one hundred percent sure but i believe the information you're looking for could be found inside the list of sessions and segments inside a call record.

Related

How to get a list of active PSTN calls in Teams using the Microsoft Graph API

We're looking for a way to get a list of all currently active PSTN calls being made into MS Teams. We've tried this:
https://learn.microsoft.com/en-us/graph/api/callrecords-callrecord-getpstncalls?view=graph-rest-beta
That's almost exactly what we need except records do not seem to appear here until the call has ended. What we need for the app we're trying to build is live call records.
We've also tried it by creating subscriptions and getting the ID of specific calls then looking up call records, but this data also appears to be delayed.
Is there a method we're missing here, or equally, is this something that may be added to the API some point soon?
Currently there is no graph API to get a list of active PSTN calls in Teams.
Microsoft will always focus on customer’s feedback and experience, some new features would be added to the services based on customers' feedback in the future, we also recommend you give your new idea in Teams UserVoice here.
They clearly mentioned in the document, we can not fetch the details directly. But you can fetch the records from your application. Using app side bearer token.

Access call history in app for Microsoft Teams

While it seems it is not possible for an app to register incoming calls, I wondered if it would be possible to access the call history of the current user?
It looks like there is a Graph API to get information of a specific call by id, I didn't find anything about getting the call history or the last call.
This could be a workaround for our approach: We want to enable the employees to make several notes on incoming calls and reference them with existing items in another web application.
Is there any way to achieve what I'm trying to do?
There seems to be a new Preview way of and application subscribing to a call event though still no way to get the full history.
Application
CallRecords.Read.All:
Subscribe to new call records (POST /beta/subscriptions).
There are more details here https://learn.microsoft.com/en-us/graph/cloud-communications-callrecords but it suggests you could capture the incoming call and allow notes as you want.

Is it possible to query for place details with a list of place ids

I know I can query for place details using a place id, but how do I query using a list of place ids? I'd prefer to do this in one call if I can.
Unfortunately there's no bulk lookup method in the iOS Places API. There's just the lookUpPlaceID method, but you can call it concurrently just fine to lookup several places in parallel.

How to retrieve recording relationship on release browse request on musicbrainz

i'm currently getting needed information from musicbrainz, using the following
browse request, browsing a specific artists releases + recordings.
for example: (coldplay)
http://musicbrainz.org/ws/2/release?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&fmt=json&inc=recordings
im interested in getting for each recording its work id.
now i tried adding 'recording-rels' to the includes but it seems only to return relationship between release and recording.
I also tried adding 'recording-level-rels' to includes as mentioned here
where it states that it should return recordings relationships, but when i try using it - i get the following error:
{"error":"recording-level-rels is not a valid inc parameter for the release resource."}
Am I using it wrongly?
To clarify, i'm after the relationship that you get from their site, say from this page, where each release has recording of that contains a link to the musicbrainz work id page.
Any help\advice would be very appreciated,
Thank you.
Well, like you said: What you are doing is a browse request and the relationships you linked only work for release lookups.
So you can't get this information with one request.
The simple solution for this is to use:
http://musicbrainz.org/ws/2/release?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234
to get all releases (without recordings) and for every release:
http://musicbrainz.org/ws/2/release/bfae6df7-3ee2-4031-ac09-8dc63c6ce6ca?inc=recordings+recording-level-rels+work-rels
to get the associated works.
The above method has the problem that you need one request for every release.
You can do better if you do some matching on your end.
You can get your list(s) of recordings with
http://musicbrainz.org/ws/2/release?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&inc=recordings
and the works with:
http://musicbrainz.org/ws/2/work?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&inc=recording-rels
Using this information you can then match the works with the recordings on the releases.
Alternatively you can also get all recordings using
http://musicbrainz.org/ws/2/recording?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&inc=work-rels
but there are usually more recordings and less works. Meaning there is not always a work attached to every recording.
Note that this method also needs more than 2 requests when you need to use limit/offset to get multiple pages of results.
The link to the API documentation about relationships is for MBID lookups and works only for them. So this here works for example:
http://musicbrainz.org/ws/2/recording/7137bd5b-7f93-40c0-a780-53784a8f6c5d?inc=work-rels
But in a browse query, which you are doing, this relatioship cannot be queried. I guess you have two options:
Query first all recordings by artist, then fetch work relations like
above.
Use something in the lines of http://musicbrainz.org/ws/2/artist/cc197bad-dc9c-440d-a5b5-d52ba2e14234?fmt=json&inc=recording-rels+work-rels and see if you can get the information you want out of that.

How do I get a realtime list of all seminars in a given room, filtered by time period, via Adobe Connect's API?

We are attempting to build free/busy calendars on our website for our Adobe Connect seminar rooms using data provided by the Adobe Connect API.
Our first attempt used sco-session-seminar-list. This returned data in the expected format and seemed to work perfectly. However, upon review we found that many existing sessions were not being returned. Some of the rooms do not have the API user setup as a host or presenter, so I suspect that may be causing a problem, though the user can see these sessions in the admin which indicates to me that they should have access.
We then tried report-bulk-objects. This did return all seminars as desired. However, it hits the reporting database which means that seminars created in the last 24 hours may not appear. Worse, it does not appear that there is any way to filter by room (or parent sco-id) using this method.
I cannot find any other relevant methods in the API documentation that would work better than the above two for our needs. However, it seems like a free/busy calendar should be a relatively common use of the API.
We finally found a non-intuitively named function that worked for this sort of information:
url="http://#AdobeConnectUrl#/api/xml
name="action" value="sco-expanded-contents">
name="sco-id" value="#roomID#">
name="filter-gte-date-begin" value="2015-01-01">
name="filter-lte-date-begin" value="2015-01-08">
This function will also work for a more informational calendar as it returns details other than just the start and end times (such as the seminar name). It pulls all sessions that occur under the sco-id requested, including those in subfolders. It also runs in real-time.

Resources