Skip to content

Commit bbb6d2f

Browse files
authored
Merge pull request #214660 from dbasantes/main
Call Recording Public Preview readiness
2 parents af2d5b9 + b4d607c commit bbb6d2f

9 files changed

+429
-33
lines changed
82.2 KB
Loading
88.5 KB
Loading

articles/communication-services/concepts/voice-video-calling/call-recording.md

Lines changed: 49 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,42 +20,60 @@ ms.subservice: calling
2020
> [!NOTE]
2121
> Call Recording is not enabled for [Teams interoperability](../teams-interop.md).
2222
23-
Call Recording provides a set of APIs to start, stop, pause and resume recording. These APIs can be accessed from server-side business logic or via events triggered by user actions. Recorded media output is in MP4 Audio+Video format, which is the same format that Teams uses to record media. Notifications related to media and metadata are emitted via Event Grid. Recordings are stored for 48 hours on built-in temporary storage for retrieval and movement to a long-term storage solution of choice. Call Recording supports all Azure Communication Services data regions.
23+
Call Recording enables you to record multiple calling scenarios available in Azure Communication Services by providing you with a set of APIs to start, stop, pause and resume recording. Whether it's a PSTN, WebRTC, or SIP call, these APIs can be accessed from server-side business logic or via events triggered by user actions.
2424

25-
![Call recording concept diagram](../media/call-recording-conceptual-diagram.png)
25+
Depending on your business needs, you can use Call Recording for different Azure Communication Services calling implementations.
26+
For example, you can record 1:1 or 1:N scenarios for audio and video calls enabled by [Calling Client SDK](https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/calling-sdk-features).
2627

27-
## Media output types
28-
Call recording currently supports mixed audio+video MP4 and mixed audio MP3/WAV output formats in Public Preview. The mixed audio+video output media matches meeting recordings produced via Microsoft Teams recording.
2928

30-
| Content Type | Content Format | Channel Type | Video | Audio |
31-
| :----------- | :------------- | :----------- | :---- | :--------------------------- |
32-
| audio + video | mp4 | mixed | 1920x1080 eight (8) FPS video of all participants in default tile arrangement | 16 kHz mp4 mixed audio of all participants |
33-
| audio| mp3/wav | mixed | N/A | 16 kHz mp3/wav mixed audio of all participants |
34-
| audio| wav | unmixed | N/A | 16 kHz wav, 0-5 channels, 1 for each participant |
29+
![Diagram showing call recording architecture using calling client sdk.](../media/call-recording-with-calling-client.png)
30+
31+
32+
But also, you can use Call Recording to record complex PSTN or VoIP inbound and outbound calling workflows managed by [Call Automation](https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/call-automation).
33+
34+
35+
![Diagram showing call recording architecture using call automation to manage the customer interaction.](../media/call-recording-with-call-automation.png)
36+
37+
38+
Regardless of how you established the call, Call Recording allows you to produce mixed or unmixed media files that are stored for 48 hours on a built-in temporary storage. You can retrieve the files and take them to the long-term storage solution of your choice. Call Recording supports all Azure Communication Services data regions.
39+
40+
## Media output and Channel types supported
41+
Call Recording supports multiple media outputs and content types to address your business needs and use cases. You might use mixed formats for scenarios such as keeping records, meeting notes, coaching and training, or even compliance and adherence. Or, you can use unmixed formats to address quality assurance use cases or even more complex scenarios like advanced analytics or AI-based (Artificial Intelligence) sophisticated post-call processes.
42+
43+
### Video
44+
45+
| Channel Type | Content Format | Resolution | Sampling Rate | Output | Description |
46+
| :----------- | :------------- | :----------- | :---- | :--------------------------- | :------------ |
47+
| mixed | mp4 | 1920x1080, eight (8) FPS (frames per second) | 16 kHz | single file, single channel | mixed audio+video of all participants in a default tile arrangement |
48+
49+
### Audio
3550

36-
## Channel types
3751
> [!NOTE]
3852
> **Unmixed audio** is in **Private Preview**.
3953
40-
| Channel type | Content format | Output | Scenario | Release Stage |
41-
|---------------------|-----------------------------|---------------------------------------------------------------------------------------|---------------------------------------------------------|----------------|
42-
| Mixed audio+video | Mp4 | Single file, single channel | keeping records and meeting notes, coaching and training | Public Preview |
43-
| Mixed audio | Mp3 (lossy)/ wav (lossless) | Single file, single channel | compliance & adherence, coaching and training | Public Preview |
44-
| **Unmixed audio** | wav | Single file, up to 5 wav channels | quality assurance, advance analytics | **Private Preview** |
54+
| Channel Type | Content Format | Sampling Rate | Output | Description |
55+
| :----------- | :------------- | :----------- | :---- | :---------------- |
56+
| mixed | mp3 & wav | 16 kHz | single file, single channel | mixed audio of all participants |
57+
| unmixed | wav | 16 kHz | single file, up to 5 wav channels | unmixed audio, one participant per channel, up to five channels |
58+
59+
60+
61+
## Call Recording APIs
62+
Call Recording APIs can be used to manage recording via internal business logic triggers, such as an application creating a group call and recording the conversation. Also, recordings can be triggered by a user action that tells the server application to start recording. Call Recording APIs use exclusively the `serverCallId` to initiate recording. To learn how to get the `serverCallId`, check our [Call Recording Quickstart](../../quickstarts/voice-video-calling/get-started-call-recording.md).
63+
A `recordingId` is returned when recording is started, which is then used for follow-on operations like pause and resume.
4564

46-
## Run-time Control APIs
47-
Run-time control APIs can be used to manage recording via internal business logic triggers, such as an application creating a group call and recording the conversation. Also, recordings can be triggered by a user action that tells the server application to start recording. Call Recording APIs use the `serverCallId` to initiate recording. Once a call is created, a `serverCallId` is returned via the `Microsoft.Communication.CallLegStateChanged` event after a call has been established. The `serverCallId` can be found in the `data.serverCallId` field. Learn how to [Get `serverCallId`](../../quickstarts/voice-video-calling/get-server-call-id.md) from the Calling Client SDK. A `recordingOperationId` is returned when recording is started, which is then used for follow-on operations like pause and resume.
4865

4966
| Operation | Operates On | Comments |
5067
| :-------------------- | :--------------------- | :----------------------------- |
51-
| Start Recording | `serverCallId` | Returns `recordingOperationId` |
52-
| Get Recording State | `recordingOperationId` | Returns `recordingState` |
53-
| Pause Recording | `recordingOperationId` | Pausing and resuming call recording enables you to skip recording a portion of a call or meeting, and resume recording to a single file. |
54-
| Resume Recording | `recordingOperationId` | Resumes a Paused recording operation. Content is included in the same file as content from prior to pausing. |
55-
| Stop Recording | `recordingOperationId` | Stops recording, and initiates final media processing for file download. |
68+
| Start Recording | `serverCallId` | Returns `recordingId` |
69+
| Get Recording State | `recordingId` | Returns `RecordingStateResult` |
70+
| Pause Recording | `recordingId` | Pausing and resuming call recording enables you to skip recording a portion of a call or meeting, and resume recording to a single file. |
71+
| Resume Recording | `recordingId` | Resumes a Paused recording operation. Content is included in the same file as content from prior to pausing. |
72+
| Stop Recording | `recordingId` | Stops recording, and initiates final media processing for file download. |
5673

5774

5875
## Event Grid notifications
76+
Notifications related to media and metadata are emitted via Event Grid.
5977

6078
> [!NOTE]
6179
> Azure Communication Services provides short term media storage for recordings. **Recordings will be available to download for 48 hours.** After 48 hours, recordings will no longer be available.
@@ -94,11 +112,11 @@ An Event Grid notification `Microsoft.Communication.RecordingFileStatusUpdated`
94112
```typescript
95113
{
96114
"resourceId": <string>, // stable resource id of the ACS resource recording
97-
"callId": <string>, // group id of the call
115+
"callId": <string>, // id of the call
98116
"chunkDocumentId": <string>, // object identifier for the chunk this metadata corresponds to
99117
"chunkIndex": <number>, // index of this chunk with respect to all chunks in the recording
100118
"chunkStartTime": <string>, // ISO 8601 datetime for the start time of the chunk this metadata corresponds to
101-
"chunkDuration": <number>, // duration of the chunk this metadata corresponds to in milliseconds
119+
"chunkDuration": <number>, // [Chunk duration has a maximum of 4 hours] duration of the chunk this metadata corresponds to in milliseconds
102120
"pauseResumeIntervals": [
103121
"startTime": <string>, // ISO 8601 datetime for the time at which the recording was paused
104122
"duration": <number> // duration of the pause in the recording in milliseconds
@@ -129,10 +147,13 @@ Many countries and states have laws and regulations that apply to call recording
129147

130148
Regulations around the maintenance of personal data require the ability to export user data. In order to support these requirements, recording metadata files include the participantId for each call participant in the `participants` array. You can cross-reference the MRIs in the `participants` array with your internal user identities to identify participants in a call. An example of a recording metadata file is provided below for reference.
131149

132-
## Available Languages
133-
Currently, Azure Communication Services Call Recording APIs are available in C# and Java.
150+
## Known Issues
151+
152+
It's possible that when a call is created using Call Automation, you won't get a value in the `serverCallId`. If that's the case, get the `serverCallId` from the `CallConnected` event method described in [Get serverCallId](https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/callflows-for-customer-interactions?pivots=programming-language-csharp#configure-programcs-to-answer-the-call).
134153

135154
## Next steps
136-
Check out the [Call Recording Quickstart](../../quickstarts/voice-video-calling/call-recording-sample.md) to learn more.
155+
For more information, see the following articles:
137156

138-
Learn more about [Call Automation APIs](./call-automation-apis.md).
157+
- Learn more about Call recording, check out the [Call Recording Quickstart](../../quickstarts/voice-video-calling/get-started-call-recording.md).
158+
- Learn more about [Call Automation](https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/callflows-for-customer-interactions?pivots=programming-language-csharp).
159+
- Learn more about [Video Calling](https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/get-started-with-video-calling?pivots=platform-web).

articles/communication-services/quickstarts/voice-video-calling/call-recording-unmixed-audio-private-preview-quickstart.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Azure Communication Services Unmixed Audio Recording API quickstart
33
titleSuffix: An Azure Communication Services quickstart document
4-
description: Private Preview quickstart for Unmixed Audio Call Recording APIs.
4+
description: quickstart for Unmixed Audio Call Recording APIs
55
author: dbasantes
66
services: azure-communication-services
77
ms.author: bharat
@@ -12,11 +12,11 @@ ms.subservice: calling
1212
zone_pivot_groups: acs-csharp-java
1313
ms.custom: mode-api
1414
---
15-
# Unmixed Audio Call Recording Quickstart
15+
# Unmixed Audio Recording Quickstart
1616

1717
[!INCLUDE [Private Preview](../../includes/private-preview-include-section.md)]
1818

19-
This quickstart gets you started recording voice and video calls. This quickstart assumes you've already used the [Calling client SDK](get-started-with-video-calling.md) to build the end-user calling experience. Using the **Calling Server APIs and SDKs** you can enable and manage recordings.
19+
This quickstart gets you started with Call Recording for voice and video calls. To start using the Call Recording APIs, you must have a call in place. Make sure you're familiar with [Calling client SDK](get-started-with-video-calling.md) and/or [Call Automation](https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/callflows-for-customer-interactions?pivots=programming-language-csharp#configure-programcs-to-answer-the-call) to build the end-user calling experience.
2020

2121
::: zone pivot="programming-language-csharp"
2222
[!INCLUDE [Test Unmixed Audio Recording with C#](./includes/call-recording-samples/private-preview-unmixed-audio-recording-server-csharp.md)]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
ms.author: dbasantes
3+
title: Azure Communication Services Call Recording refreshed API quickstart
4+
titleSuffix: An Azure Communication Services document
5+
description: Public Preview quickstart for Call Recording APIs
6+
author: dbasantes
7+
services: azure-communication-services
8+
ms.date: 10/14/2022
9+
ms.topic: quickstart
10+
ms.service: azure-communication-services
11+
ms.subservice: calling
12+
zone_pivot_groups: acs-csharp-java
13+
ms.custom: mode-api
14+
---
15+
# Call Recording Quickstart
16+
17+
[!INCLUDE [Public Preview](../../includes/public-preview-include-document.md)]
18+
19+
This quickstart gets you started with Call Recording for voice and video calls. To start using the Call Recording APIs, you must have a call in place. Make sure you're familiar with [Calling client SDK](get-started-with-video-calling.md) and/or [Call Automation](https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/callflows-for-customer-interactions?pivots=programming-language-csharp#configure-programcs-to-answer-the-call) to build the end-user calling experience.
20+
21+
::: zone pivot="programming-language-csharp"
22+
[!INCLUDE [Test Call Recording with C#](./includes/call-recording-samples/call-recording-csharp.md)]
23+
::: zone-end
24+
25+
::: zone pivot="programming-language-java"
26+
[!INCLUDE [Test Call Recording with Java](./includes/call-recording-samples/call-recording-java.md)]
27+
::: zone-end
28+
29+
## Clean up resources
30+
31+
If you want to clean up and remove a Communication Services subscription, you can delete the resource or resource group. Deleting the resource group also deletes any other resources associated with it. Learn more about [cleaning up resources](../create-communication-resource.md#clean-up-resources).
32+
33+
## Next steps
34+
35+
For more information, see the following articles:
36+
37+
- Learn more about [Call Recording](../../concepts/voice-video-calling/call-recording.md)
38+
- Learn more about [Call Automation](https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/call-automation)
39+
- Check out our [calling hero sample](../../samples/calling-hero-sample.md)
40+
- Learn about [Calling SDK capabilities](./getting-started-with-calling.md)
41+
- Learn more about [how calling works](../../concepts/voice-video-calling/about-call-types.md)

0 commit comments

Comments
 (0)