You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Call Recording is not enabled for [Teams interoperability](../teams-interop.md).
22
22
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 ACS data regions.
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.
Call recording currently supports mixed audio+video MP4 and mixed audio-only MP3/WAV output formats in Public Preview. The mixed audio+video output media matches meeting recordings produced via Microsoft Teams recording.
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.
29
29
30
30
| Content Type | Content Format | Channel Type | Video | Audio |
| Mixed audio-video | Mp4 | Single file, single channel | Keeping records and meeting notes Coaching and Training |
43
-
| Mixed audio-only| Mp3 (lossy)/ wav (lossless) | Single file, single channel | Compliance & Adherence Coaching and Training |
44
-
|**Unmixed audio-only**|Mp3/wav | Single file, multiple channels maximum number of channels is 6 for mp3 and 50 for wav | Quality Assurance Analytics |
40
+
| Channel type | Content format | Output | Scenario | Release Stage |
| 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 Analytics |**Private Preview**|
45
45
46
46
## Run-time Control APIs
47
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, or from a user-triggered action that tells the server application to start recording. Call Recording APIs are [Out-of-Call APIs](./call-automation-apis.md#out-of-call-apis), using the `serverCallId` to initiate recording. When creating a call, 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. See our [Call Recording Quickstart Sample](../../quickstarts/voice-video-calling/call-recording-sample.md) to learn about retrieving the `serverCallId` 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.
@@ -57,6 +57,7 @@ Run-time control APIs can be used to manage recording via internal business logi
57
57
58
58
## Event Grid notifications
59
59
60
+
> [!NOTE]
60
61
> Azure Communication Services provides short term media storage for recordings. **Export any recorded content you wish to preserve within 48 hours.** After 48 hours, recordings will no longer be available.
61
62
62
63
An Event Grid notification `Microsoft.Communication.RecordingFileStatusUpdated` is published when a recording is ready for retrieval, typically a few minutes after the recording process has completed (e.g. meeting ended, recording stopped). Recording event notifications include `contentLocation` and `metadataLocation`, which are used to retrieve both recorded media and a recording metadata file.
@@ -89,13 +90,46 @@ An Event Grid notification `Microsoft.Communication.RecordingFileStatusUpdated`
89
90
"eventTime": string// ISO 8601 date time for when the event was created
90
91
}
91
92
```
93
+
## Metadata Schema
94
+
```typescript
95
+
{
96
+
"resourceId": <string>, // stable resource id of the ACS resource recording
97
+
"callId": <string>, // group id of the call
98
+
"chunkDocumentId": <string>, // object identifier for the chunk this metadata corresponds to
99
+
"chunkIndex": <number>, // index of this chunk with respect to all chunks in the recording
100
+
"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
102
+
"pauseResumeIntervals": [
103
+
"startTime": <string>, // ISO 8601 datetime for the time at which the recording was paused
104
+
"duration": <number> // duration of the pause in the recording in milliseconds
105
+
],
106
+
"recordingInfo": {
107
+
"contentType": <string>, // content type of recording, e.g. audio/audioVideo
108
+
"channelType": <string>, // channel type of recording, e.g. mixed/unmixed
109
+
"format": <string>, // format of the recording, e.g. mp4/mp3/wav
110
+
"audioConfiguration": {
111
+
"sampleRate": <number>, // sample rate for audio recording
112
+
"bitRate": <number>, // bitrate for audio recording
113
+
"channels": <number> // number of audio channels in output recording
114
+
}
115
+
},
116
+
"participants": [
117
+
{
118
+
"participantId": <string>, // participant identifier of a participant captured in the recording
119
+
"channel": <number> // channel the participant was assigned to if the recording is unmixed
120
+
}
121
+
]
122
+
}
123
+
124
+
```
125
+
92
126
## Regulatory and privacy concerns
93
127
94
128
Many countries and states have laws and regulations that apply to the recording of PSTN, voice, and video calls, which often require that users consent to the recording of their communications. It is your responsibility to use the call recording capabilities in compliance with the law. You must obtain consent from the parties of recorded communications in a manner that complies with the laws applicable to each participant.
95
129
96
130
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.
97
131
98
-
## Availability
132
+
## Available Languages
99
133
Currently, Azure Communication Services Call Recording APIs are available in C# and Java.
0 commit comments