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.
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.
- segment – A segment represents a media link between two endpoints.
Access to this data is provided via Graph, you need an Application Permission type of CallRecords.Read.All