Working with the call records API in Microsoft Graph

Call records provide usage and diagnostic information about the calls and online meetings that occur within your organization when using Microsoft Teams or Skype for Business. You can use the call records APIs to subscribe to call records and look up call records by IDs. A call record is created after a call or meeting ends and the record is retained for 30 days.

The call records API is defined in the OData sub-namespace, microsoft.graph.callRecords.

Key resource types

Resource Methods
callRecord Get callRecord
session Get callRecord
List sessions
segment Get callRecord
List sessions
pstnCallLogRow getPstnCalls
directRoutingLogRow getDirectRoutingCalls

Call record structure

The callRecord entity represents a single peer-to-peer call or a group call between multiple participants, sometimes referred to as an online meeting.

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.

Each session contains one or more segment entities. A segment represents a media link between two endpoints. For most calls, only one segment will be present for each session, however sometimes there may be one or more intermediate endpoints.

Image of a the data structure representing a complete call record

In the diagram above, the numbers denote how many children of each type can be present. For example, a 1..N relationship between a callRecord and a session means one callRecord instance can contain one or more session instances. Similarly, a 1..N relationship between a segment and a media means one segment instance can contain one or more media streams.