Skip to content

Commit 7cb82c3

Browse files
committed
Address comments: Add more details
Address comments: Add details to answers and create new FAQ questions
1 parent ad42265 commit 7cb82c3

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

concepts/callrecords-api-faq.md

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,18 @@ ms.subservice: "cloud-communications"
1212

1313
The Microsoft Graph Call Records API, also known as the call records API, offers usage and diagnostic insights for calls and online meetings that occur within your organization when using Microsoft Teams or Skype for Business. Organizations referred to as tenants, can use the call records API to subscribe to, list, retrieve call records by call IDs, and to look up calls for a participant. For more details, please refer to the [Working with the call records API in Microsoft Graph](/graph/api/resources/callrecords-api-overview).
1414

15-
## What is the permission required to use the Call Records API?
15+
## What is the permission required to use the Graph Call Records API?
1616

1717
Your application needs the **CallRecords.Read.All** permission to access call records in Microsoft Graph. An administrator must grant this permission to the application. For more details, please refer to the [Microsoft Graph permissions reference](permissions-reference.md).
1818

19+
## Can I use delegated permissions with the Graph Call Records API?
20+
21+
No, the Graph Call Records API does not support delegated permissions.
22+
23+
## Why can't I use delegated permissions with the Graph Call Records API?
24+
25+
You can't use delegated permissions because there is no way to limit **CallRecords.Read.All** permission to specific calls or users, as the application permission is granted at the organization level, not the individual user level.
26+
1927
## How do I request a call record using the Microsoft Graph Call Records API?
2028

2129
To request a call record, you need to make a `GET` request to the `/communications/callRecords/{id}` endpoint, where `{id}` is the unique identifier of your call. Ensure you have the necessary **CallRecords.Read.All** permission and include the Authorization header with a valid bearer token. For more details, please refer to the [Get callRecord documentation](/graph/api/callrecords-callrecord-get).
@@ -26,8 +34,8 @@ You can find and collect call IDs using the following options:
2634

2735
* **Subscribe to notifications**: Subscribe to [change notifications feed](changenotifications-for-callrecords.md) and receive notifications containing call IDs whenever a new call record is created.
2836
* **List call records**: Get a list of call IDs by requesting it from [List callRecords API](/graph/api/callrecords-cloudcommunications-list-callrecords).
29-
* **Manual search**: If you're a [Call Analytics](/microsoftteams/use-call-analytics-to-troubleshoot-poor-call-quality) customer, you can manually search for a call ID in a user’s history. However, there's no automated system available to retrieve all call IDs from Call Analytics.
30-
* **Use callChainId:**: Look up the call ID using the `callChainId` from the [Get call](/graph/api/resources/call) API after the call is completed. The `callChainId` may differ from the call ID in certain scenarios, such as transfer calls due to architecture specifics. Therefore, this method is less preferred compared to other options.
37+
* **Manual search**: If you have access to [Call Analytics](/microsoftteams/use-call-analytics-to-troubleshoot-poor-call-quality) within the [Teams Admin Center](/microsoftteams/teams-overview) for Microsoft Teams, you can manually search for a call ID in a user’s history. However, there's no automated system available to retrieve all call IDs from Call Analytics.
38+
* **Use callChainId:**: Look up the call ID using the `callChainId` from the [Get call](/graph/api/resources/call) API after the call is completed. This approach works when the call is programmatically created and you are working with the [call resource type](/graph/api/resources/call). Also, the `callChainId` may differ from the call record ID in certain scenarios, such as transfer calls due to architecture specifics. Therefore, this method is less preferred compared to other options.
3139

3240
## When is a call record available?
3341

@@ -41,13 +49,21 @@ Call records are retained for 30 days after the call ends.
4149

4250
No, the Call Records API doesn't return call records older than 30 days. Requests for such records result in a 404 Not Found error response.
4351

44-
## Why is my call record notification delayed?
52+
## Why is my first call record notification delayed?
4553

46-
Your call record notification may be delayed because it can take up to 60 minutes for the service to make the first version of a call record available. If you experience a longer delay, check for any reported outages by the Graph Call Records API team in the "Health" tab of the [Teams Admin Portal](https://admin.teams.microsoft.com/). Additionally, you can open a [Support Ticket](https://developer.microsoft.com/graph/support) with the Graph Call Records API team.
54+
Your call record notification may be delayed because it can take up to 60 minutes for the service to make the **first** version of a call record available. If you experience a longer delay for the first call record version delivery, check for any reported outages by the Graph Call Records API team in the "Health" tab of the [Teams Admin Portal](https://admin.teams.microsoft.com/). Additionally, you can open a [Support Ticket](https://developer.microsoft.com/graph/support) with the Graph Call Records API team.
55+
56+
## Why are subsequent versions of my call record delayed?
57+
58+
Subsequent versions of a call record may be delivered after the initial 60-minute latency. This means that while the first version is available within 60 minutes, later updates to the call record can arrive later due to client delayed telemetry and other factors.
4759

4860
## Why does a call record have missing fields?
4961

50-
A call record may have missing fields due to delayed telemetry from a client. When new telemetry data becomes available, the system generates a new call record with updated information and increments the `version` property value. If your call record is missing properties, wait for the next call record version. If the new version doesn't arrive, open a [Support Ticket](https://developer.microsoft.com/graph/support) with the Graph Call Records API team.
62+
A call record may have missing fields due to delayed telemetry from a client. When new telemetry data becomes available, the system generates a new call record with updated information, increments the `version` property value, and sends the updated call record to you. If your call record is missing properties, wait for the next call record version.
63+
64+
However, it's important to note that some fields may remain empty by design or because the client telemetry never arrived, such as media stream values.
65+
66+
If critical fields are still missing or were previously delivered but have stopped, open a [Support Ticket](https://developer.microsoft.com/graph/support) with the Graph Call Records API team.
5167

5268
## How can I list all participants attended in a call?
5369

@@ -66,8 +82,8 @@ You can call `GET communications/callRecords/{id}?$expand=participants_v2` to re
6682
To see all participants, implement a custom solution to build the participants list from the call records data:
6783

6884
1. Call [Get callRecord](/graph/api/callrecords-callrecord-get) API with expanded sessions endpoint: `GET /communications/callRecords/{id}?$expand=sessions`
69-
2. Read `caller` property from each session on the received `sessions` list
70-
3. Build your custom participants list based on the `caller` endpoint [identity](/graph/api/resources/identity) collecting `id`, `displayName`, and other properties you require to gather for a participant
85+
2. For **peer-to-peer** (P2P) calls, read both the `caller` and `callee` properties from each `session` in the received `sessions` list. For **meeting** calls, read only the `caller` property
86+
3. Build your custom participants list based on the `caller` endpoint [identity](/graph/api/resources/identity), and for P2P calls, also include the `callee` endpoint [identity](/graph/api/resources/identity). Collect the `id`, `displayName`, and other properties you require to gather for a participant
7187

7288
## Why don't I see all participants who attended a call while calling list participants_v2 API?
7389

@@ -77,6 +93,6 @@ You might not see all participants because the [List participants_v2](/graph/api
7793

7894
There are several reasons you might encounter a 404 Not Found error:
7995

80-
* **Recent Call**: If the call was made within the last 60 minutes, the call record might not be generated yet. Wait and try again in an hour.
96+
* **Recent Call**: If the call was made within the last 60 minutes, the call record might not be generated yet. Wait until 60 minutes have elapsed from when the call ended and try again.
8197
* **Old Call**: If the call is older than 30 days, the Graph Call Records API returns a 404 Not Found error by design.
8298
* **Other Issues**: If neither of the reasons apply, check for any reported outages by the Graph Call Records API team in the "Health" tab of the [Teams Admin Portal](https://admin.teams.microsoft.com/). Additionally, you can open a [Support Ticket](https://developer.microsoft.com/graph/support) with the Graph Call Records API team for assistance.

0 commit comments

Comments
 (0)