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
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/voice-video-calling/call-recording.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,13 +51,13 @@ Call Recording supports multiple media outputs and content types to address your
51
51
52
52
53
53
## Get full control over your recordings with our Call Recording APIs
54
-
You can use Call Recording APIs 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).
54
+
You can use Call Recording APIs 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. To initiate a recording, Call Recording APIs can use the `callConnectionId` (preferred) or the `serverCallId`when the callConnectionId is not available. To learn how to get the`callConnectionId` or`serverCallId`, check our [Call Recording Quickstart](../../quickstarts/voice-video-calling/get-started-call-recording.md).
55
55
A `recordingId` is returned when recording is started, which can then be used for follow-on operations like pause and resume.
| Start Recording |`callConnectionId` or `serverCallId`| Returns `recordingId`|
61
61
| Get Recording State |`recordingId`| Returns `RecordingStateResult`|
62
62
| 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. |
63
63
| Resume Recording |`recordingId`| Resumes a Paused recording operation. Content is included in the same file as content from prior to pausing. |
@@ -149,6 +149,9 @@ Many countries/regions and states have laws and regulations that apply to call r
149
149
150
150
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 Azure Communication Services User Identity in the `participants` array with your internal user identities to identify participants in a call.
151
151
152
+
## Known Issues ##
153
+
In rare High Availability or Disaster Recovery (HADR) scenarios, a single call recording session may produce multiple recording files that share the same `recordingId` and `chunkId`. In these cases, `StopCallRecording` may return `404 Recording not found` even though recording files are successfully delivered via `RecordingFileStatusUpdated` events. Applications should correlate recordings using `serverCallId` and not assume a one‑to‑one relationship between calls, recording IDs, chunk IDs, and output files.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/call-recording-samples/call-recording-csharp.md
+12-9Lines changed: 12 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,17 +20,20 @@ You can download the sample app from [GitHub](https://github.com/Azure-Samples/c
20
20
21
21
## Before you start
22
22
23
-
Call Recording APIs use exclusively the `serverCallId`to initiate recording. There are a couple of methods you can use to fetch the `serverCallId` depending on your scenario:
23
+
Call Recording APIs use the `callConnectionId` or `serverCallId`to initiate recording. There are a couple of methods you can use to fetch the these IDs depending on your scenario:
24
24
25
-
### Call Automation scenarios
25
+
### How to fetch callConnectionId
26
+
27
+
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you will receive the `callConnectionId` from the response event from a `createCall`, `answer`, or `connect` requests when initiating the call.
28
+
29
+
### How to fetch serverCallId
26
30
27
31
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
28
32
29
33
1. When you establish a call, it returns a `serverCallId` as a property of the `CallConnected` event after a call is established. Learn how to [Get CallConnected event](../../../call-automation/callflows-for-customer-interactions.md?pivots=programming-language-csharp#update-programcs) from Call Automation SDK.
30
34
31
35
2. When you answer the call or a call is created, it returns the `serverCallId` as a property of the `AnswerCallResult` or `CreateCallResult` API responses respectively.
32
36
33
-
### Calling SDK scenarios
34
37
35
38
When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
36
39
Use this example to learn how to [Get serverCallId](../../get-server-call-id.md) from the Calling Client SDK.
@@ -49,13 +52,13 @@ CallAutomationClient callAutomationClient = new CallAutomationClient("<ACSConnec
49
52
50
53
## 2. Start recording session with StartRecordingOptions using 'StartAsync' API
51
54
52
-
Use the `serverCallId` received during initiation of the call.
55
+
Use the `callConnectionId` or `serverCallId` received during initiation of the call.
53
56
- Use `RecordingContent` to pass the recording content type. Use `AUDIO`.
54
57
- Use `RecordingChannel` to pass the recording channel type. Use `MIXED` or `UNMIXED`.
55
58
- Use `RecordingFormat` to pass the format of the recording. Use `WAV`.
To produce unmixed audio recording files, you can use the `AudioChannelParticipantOrdering` functionality to specify which user you want to record on channel 0. The rest of the participants are assigned to a channel as they speak. If you use `RecordingChannel.Unmixed` but don't use `AudioChannelParticipantOrdering`, Call Recording assigns channel 0 to the first participant speaking.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/call-recording-samples/call-recording-java.md
+13-11Lines changed: 13 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,20 +21,22 @@ You can download the sample app from [GitHub](https://github.com/Azure-Samples/c
21
21
22
22
## Before you start
23
23
24
-
Call Recording APIs exclusively use the `serverCallId`to initiate recording. There are a couple of methods you can use to fetch the `serverCallId` depending on your scenario:
24
+
Call Recording APIs use the `callConnectionId` or `serverCallId`to initiate recording. There are a couple of methods you can use to fetch the these IDs depending on your scenario:
25
25
26
-
### Call Automation scenarios
26
+
### How to fetch callConnectionId
27
27
28
-
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
28
+
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you will receive the `callConnectionId` from the response event from a `createCall`, `answer`, or `connect` requests when initiating the call.
29
+
30
+
### How to fetch serverCallId
29
31
30
-
1. Once a call is created, a `serverCallId` is returned as a property of the `CallConnected` event after a call is established. Learn how to [Get CallConnected event](../../../call-automation/callflows-for-customer-interactions.md?pivots=programming-language-java#update-programcs) from Call Automation SDK.
32
+
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
31
33
32
-
2. Once you answer the call or a call is created the`serverCallId`is returned as a property of the `AnswerCallResult` or `CreateCallResult` API responses respectively.
34
+
1. When you establish a call, it returns a`serverCallId` as a property of the `CallConnected` event after a call is established. Learn how to [Get CallConnected event](../../../call-automation/callflows-for-customer-interactions.md?pivots=programming-language-csharp#update-programcs) from Call Automation SDK.
33
35
34
-
### Calling SDK scenarios
36
+
2. When you answer the call or a call is created, it returns the `serverCallId` as a property of the `AnswerCallResult` or `CreateCallResult` API responses respectively.
35
37
36
-
When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
37
38
39
+
When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
38
40
Use this example to learn how to [Get serverCallId](../../get-server-call-id.md) from the Calling Client SDK.
39
41
40
42
Let's get started with a few simple steps.
@@ -53,13 +55,13 @@ CallAutomationClient callAutomationClient = new CallAutomationClientBuilder()
53
55
54
56
## 2. Start recording session with StartRecordingOptions using `startWithResponse` API
55
57
56
-
Use the `serverCallId` received during initiation of the call.
58
+
Use the `callConnectionId` or `serverCallId` received during initiation of the call.
57
59
- Use `RecordingContent` to pass the recording content type. Use `AUDIO`.
58
60
- Use `RecordingChannel` to pass the recording channel type. Use `MIXED` or `UNMIXED`.
59
61
- Use `RecordingFormat` to pass the format of the recording. Use `WAV`.
To produce unmixed audio recording files, you can use the `AudioChannelParticipantOrdering` functionality to specify which user you want to record on channel 0. The rest of the participants are assigned to a channel as they speak. If you use `RecordingChannel.Unmixed` but don't use `AudioChannelParticipantOrdering`, Call Recording assigns channel 0 to the first participant speaking.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/call-recording-samples/call-recording-javascript.md
+17-13Lines changed: 17 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,21 +20,25 @@ You can download the sample app from [GitHub](https://github.com/Azure-Samples/c
20
20
21
21
## Before you start
22
22
23
-
Call Recording APIs use exclusively the `serverCallId`to initiate recording. There are a couple of methods you can use to fetch the `serverCallId` depending on your scenario:
23
+
Call Recording APIs use the `callConnectionId` or `serverCallId`to initiate recording. There are a couple of methods you can use to fetch the these IDs depending on your scenario:
24
24
25
-
### Call Automation scenarios
25
+
### How to fetch callConnectionId
26
26
27
-
- When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
28
-
1) Once a call is created, a `serverCallId` is returned as a property of the `CallConnected` event after a call is established. Learn how to [Get a CallConnected event](../../../call-automation/callflows-for-customer-interactions.md?pivots=programming-language-javascript#update-programcs) from the Call Automation SDK.
29
-
2) Once you answer the call or a call is created, it returns the `serverCallId` as a property of the `AnswerCallResult` or `CreateCallResult` API responses respectively.
27
+
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you will receive the `callConnectionId` from the response event from a `createCall`, `answer`, or `connect` requests when initiating the call.
30
28
31
-
### Calling SDK scenarios
29
+
### How to fetch serverCallId
32
30
33
-
When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
31
+
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
34
32
35
-
Use this example to learn how to [Get a serverCallId](../../get-server-call-id.md) from the Calling Client SDK.
33
+
1. When you establish a call, it returns a `serverCallId` as a property of the `CallConnected` event after a call is established. Learn how to [Get CallConnected event](../../../call-automation/callflows-for-customer-interactions.md?pivots=programming-language-csharp#update-programcs) from Call Automation SDK.
36
34
37
-
Let's get started with a few simple steps!
35
+
2. When you answer the call or a call is created, it returns the `serverCallId` as a property of the `AnswerCallResult` or `CreateCallResult` API responses respectively.
36
+
37
+
38
+
When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
39
+
Use this example to learn how to [Get serverCallId](../../get-server-call-id.md) from the Calling Client SDK.
40
+
41
+
Let's get started with a few simple steps.
38
42
39
43
## 1. Create a Call Automation client
40
44
@@ -48,13 +52,13 @@ const callAutomationClient = new CallAutomationClient.CallAutomationClient("<ACS
48
52
49
53
## 2. Start recording session with StartRecordingOptions using 'StartAsync' API
50
54
51
-
Use the `serverCallId` received during initiation of the call.
55
+
Use the `callConnectionId` or `serverCallId` received during initiation of the call.
52
56
- Use `RecordingContent` to pass the recording content type. Use `AUDIO`.
53
57
- Use `RecordingChannel` to pass the recording channel type. Use `MIXED` or `UNMIXED`.
54
58
- Use `RecordingFormat` to pass the format of the recording. Use `WAV`.
55
59
56
60
```javascript
57
-
var locator: CallLocator = { id:"<ServerCallId>", kind:"serverCallLocator" };
61
+
var locator: CallLocator = { id:"<callConnectionId> or <ServerCallId>", kind:"serverCallLocator" };
58
62
59
63
var options: StartRecordingOptions =
60
64
{
@@ -91,7 +95,7 @@ var response = await callAutomationClient.getCallRecording().start(options);
91
95
> [!NOTE]
92
96
> **Recordings will need to be resumed for recording file to be generated.**
93
97
```javascript
94
-
var locator: CallLocator = { id:"<ServerCallId>", kind:"serverCallLocator" };
98
+
var locator: CallLocator = { id:"<callConnectionId> or <ServerCallId>", kind:"serverCallLocator" };
95
99
96
100
var options: StartRecordingOptions =
97
101
{
@@ -110,7 +114,7 @@ var response = await callAutomationClient.getCallRecording().start(options);
110
114
To produce unmixed audio recording files, you can use the `AudioChannelParticipantOrdering` functionality to specify which user you want to record on channel 0. The rest of the participants are assigned to a channel as they speak. If you use `RecordingChannel.Unmixed` but don't use `AudioChannelParticipantOrdering`, Call Recording assigns channel 0 to the first participant speaking.
111
115
112
116
```javascript
113
-
var locator: CallLocator = { id:"<ServerCallId>", kind:"serverCallLocator" };
117
+
var locator: CallLocator = { id:"<callConnectionId> or <ServerCallId>", kind:"serverCallLocator" };
0 commit comments