Tom Talks Microsoft Teams and Microsoft 365 news and opinions

Microsoft Teams Call Records and Session Details API Public Preview

Update: This API is now generally available, more details here: https://tomtalks.blog/2020/06/microsoft-teams-call-records-api-now-generally-available/

Being able to report at depth on usage (number of calls, who called who, what modalities were used etc.) and on performance (packet loss, jitter latency etc.) on unified communications is something many organisations want to do.

In Skype for Business Server we could get all the data in the backend CDR/QoE SQL databases and also later in its life-cycle had the option of leveraging the SDN API to get session detail information. Many third parties, including Modality (who I work for) build products that collected, sorted and interpreted this data into useful actionable information for customers.

In Skype for Business Online we got some limited access via a PowerShell cmdlet Get-CsUserSession, but it was tricky to get information out at scale.

Now for Microsoft Teams and Skype for Business online, in preview, there is a graph web hook API that will give access to this information. Allowing customers and third party applications to collect and report on it. This unlocks all sorts of new abilities to report at scale.

 

Below is a a summary of the initial information, but stay tuned on my blog for more in the coming weeks.

You can check out the documentation on Microsoft docs here

 

Microsoft Teams and Skype for Business Online Microsoft Graph call records API

Now in preview, under the /beta version in Microsoft Graph (microsoft.graph.callRecords), the Call records API provides

  • Usage and diagnostic information about the calls and online meetings that occur within your organization when using Microsoft Teams or Skype for Business
  • Subscribe to call records and look up call records by IDs.

It is worth noting that this is preview and API’s under /beta in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported.

image

GET https://graph.microsoft.com/beta/communications/callRecords/{id}

Resources returned by the API

The API offers the following resources

  • callRecord – represents a single peer-to-peer call or a group call between multiple participants
  • session – A peer-to-peer call contains a single session between the two participants in the call. Group calls contain one or more session entities. In a group call, each session is between the participant and a service endpoint.
  • segmentsegment represents a media link between two endpoints.

Properties include:

  • id
  • endDateTime
  • startDateTime
  • joinWebUrl
  • lastModifiedDateTime
  • modalities
  • organizer
  • participants
  • type
  • version

image

Graph Permissions

Access to this data is provided via Graph, you need an Application Permission type of CallRecords.Read.All

About the author

Tom Arbuthnot

A Microsoft MVP and Microsoft Certified Master, Tom Arbuthnot is Principal Solutions Architect at Microsoft Collaboration specialists Modality Systems.

Tom stays up to date with industry developments and shares news and his opinions on his blog, Microsoft Teams Podcast and email list. He is a regular speaker at events around the world.

4 comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Hello Tom… thank you for sharing this details, I am facing the issue,

    {
    “error”: {
    “code”: “Forbidden”,
    “message”: “”,
    “innerError”: {
    “request-id”: “92cdc47d-6cd6-4024-94c8-03878415193e”,
    “date”: “2020-03-27T06:23:41”
    }
    }
    }

    • Hi,

      I’m not that deep into the API’s, to be honest. Maybe start a thread on tom.qa/teamsforum ?

    • Same here. I cannot set the permission, beause they are not showing yet. Give it time, it’s too new ;)

Tom Talks Microsoft Teams and Microsoft 365 news and opinions