Skip to content

Commit a65989a

Browse files
committed
Update call-recording-csharp.md
Added C# BYOS
1 parent ff5b3cb commit a65989a

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

articles/communication-services/quickstarts/voice-video-calling/includes/call-recording-samples/call-recording-csharp.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,23 @@ You can download the sample app from [GitHub](https://github.com/Azure-Samples/c
2121
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:
2222

2323
### Call Automation scenarios
24-
- When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
25-
1) Once a call is created, a `serverCallId` is returned as a property of the `CallConnected` event after a call has been established. Learn how to [Get CallConnected event](../../../call-automation/callflows-for-customer-interactions.md?pivots=programming-language-csharp#update-programcs) from Call Automation SDK.
26-
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.
27-
28-
### Calling SDK scenarios
29-
- When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
30-
Use this example to learn how to [Get serverCallId](../../get-server-call-id.md) from the Calling Client SDK.
31-
3224

25+
When using [Call Automation](../../../call-automation/callflows-for-customer-interactions.md), you have two options to get the `serverCallId`:
26+
1) Once a call is created, 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.
27+
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.
3328

34-
Let's get started with a few simple steps!
29+
### Calling SDK scenarios
3530

31+
When using [Calling Client SDK](../../get-started-with-video-calling.md), you can retrieve the `serverCallId` by using the `getServerCallId` method on the call.
32+
Use this example to learn how to [Get serverCallId](../../get-server-call-id.md) from the Calling Client SDK.
3633

34+
Let's get started with a few simple steps.
3735

3836
## 1. Create a Call Automation client
3937

40-
Call Recording APIs are part of the Azure Communication Services [Call Automation](../../../../concepts/call-automation/call-automation.md) libraries. Thus, it's necessary to create a Call Automation client.
41-
To create a call automation client, you use your Communication Services connection string and pass it to `CallAutomationClient` object.
38+
Call Recording APIs are part of the Azure Communication Services [Call Automation](../../../../concepts/call-automation/call-automation.md) libraries. So you need to create a Call Automation client.
39+
40+
To create a call automation client, use your Communication Services connection string and pass it to `CallAutomationClient` object.
4241

4342
```csharp
4443
CallAutomationClient callAutomationClient = new CallAutomationClient("<ACSConnectionString>");
@@ -68,11 +67,12 @@ Start Recording with your own Azure Blob Storage defined to store the recording
6867
```csharp
6968
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<ServerCallId>"))
7069
{
71-
RecordingContent = RecordingContent.Audio,
72-
RecordingChannel = RecordingChannel.Unmixed,
73-
RecordingFormat = RecordingFormat.Wav,
74-
RecordingStateCallbackUri = new Uri("<CallbackUri>"),
75-
RecordingStorage = RecordingStorage.CreateAzureBlobContainerRecordingStorage(new Uri("<YOUR_STORAGE_CONTAINER_URL>"))
70+
RecordingContent = RecordingContent.Audio,
71+
RecordingChannel = RecordingChannel.Unmixed,
72+
RecordingFormat = RecordingFormat.Wav,
73+
RecordingStateCallbackUri = new Uri("<CallbackUri>"),
74+
RecordingStorage = RecordingStorage.CreateAzureBlobContainerRecordingStorage(new Uri("<YOUR_STORAGE_CONTAINER_URL>"))
75+
ExternalStorage = new BlobStorage(new Uri("<Insert Container / Blob Uri>"))
7676
};
7777
Response<RecordingStateResult> response = await callAutomationClient.GetCallRecording()
7878
.StartAsync(recordingOptions);
@@ -153,7 +153,7 @@ var resumeRecording = await callAutomationClient.GetCallRecording().ResumeAsync(
153153

154154
Use an [Azure Event Grid](../../../../../event-grid/event-schema-communication-services.md) web hook or other triggered action should be used to notify your services when the recorded media is ready for download.
155155

156-
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 (for example, meeting ended, recording stopped). Recording event notifications include `contentLocation` and `metadataLocation`, which are used to retrieve both recorded media and a recording metadata file.
156+
An Event Grid notification `Microsoft.Communication.RecordingFileStatusUpdated` is published when a recording is ready for retrieval, typically a few minutes after the recording finishes processing (such as when meeting ends or a recording stops). Recording event notifications include `contentLocation` and `metadataLocation`, which you can use to retrieve both recorded media and a recording metadata file.
157157

158158
Example of the event schema:
159159

0 commit comments

Comments
 (0)