Samtalsinspelning: Snabbstart för Bring Your Own Azure Storage
Den här snabbstarten kommer igång med Bring your own Azure Storage for Call Recording. Om du vill börja använda Bring your own Azure Storage-funktioner kontrollerar du att du är bekant med API:erna för samtalsinspelning.
Förutsättningar: Konfigurera rolltilldelningar för hanterade identiteter och rollbaserade åtkomstkontroller (RBAC)
1. Aktivera systemtilldelad hanterad identitet för Azure Communication Services
- Öppna din Azure Communication Services-resurs. Navigera till Identitet till vänster.
- Aktiverad systemtilldelad hanterad identitet och klicka på Spara.
- När du är klar kan du se objektobjektets huvudnamns-ID för den nyligen skapade identiteten.
- När identiteten har skapats klickar du på Azure-rolltilldelningar för att börja lägga till rolltilldelningar.
2. Lägg till rolltilldelning
- Klicka på "Lägg till rolltilldelning"
- I panelen Lägg till rolltilldelning väljer du följande värden
- Omfång: Storage
- Prenumeration: Välj din prenumeration
- Resurs: Välj ditt lagringskonto
- Roll: Azure Communication Services behöver "Storage Blob Data Contributor" för att kunna skriva till ditt lagringskonto.
- Klicka på Spara.
- När du är klar visas den nyligen tillagda rolltilldelningen i fönstret "Azure-rolltilldelning" .
Starta inspelningssessionen med extern lagring angiven
Använd serveranrops-ID:t som togs emot under initieringen av anropet.
Använda Azure Blob Storage för extern lagring
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
{
//...
ExternalStorage = new BlobStorage(new Uri("<Insert Container / Blob Uri>"))
};
Response<RecordingStateResult> startRecordingWithResponse = await callAutomationClient.GetCallRecording()
.StartRecordingAsync(options: recordingOptions);
Använda Azure Blob Storage för extern lagring
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
.setExternalStorage(new BlobStorage("<Insert Container / Blob Uri>"));
Response<StartCallRecordingResult> response = callAutomationClient.getCallRecording()
.startRecordingWithResponse(recordingOptions, null);
Meddelande om lyckad export
Använd en Azure Event Grid-webbkrok eller annan utlöst åtgärd för att meddela dina tjänster när det inspelade mediet är klart och exporterat till den externa lagringsplatsen.
Se det här exemplet på händelseschemat.
{
"id": "string", // Unique guid for event
"topic": "string", // /subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}
"subject": "string", // /recording/call/{call-id}/serverCallId/{serverCallId}
"data": {
"storageType": "string", // AzureBlob etc.
"recordingId": "string", // unique id for recording
"recordingStorageInfo": {
"recordingChunks": [
{
"documentId": "string", // Document id for the recording chunk
"contentLocation": "string", //Azure Communication Services URL where the content is located
"metadataLocation": "string", // Azure Communication Services URL where the metadata for this chunk is located
"deleteLocation": "string", // Azure Communication Services URL to use to delete all content, including recording and metadata.
"index": "int", // Index providing ordering for this chunk in the entire recording
"endReason": "string", // Reason for chunk ending: "SessionEnded", "ChunkMaximumSizeExceeded”, etc.
}
]
},
"recordingStartTime": "string", // ISO 8601 date time for the start of the recording
"recordingDurationMs": "int", // Duration of recording in milliseconds
"sessionEndReason": "string" // Reason for call ending: "CallEnded", "InitiatorLeft”, etc.
},
"eventType": "string", // "Microsoft.Communication.RecordingFileStatusUpdated"
"dataVersion": "string", // "1.0"
"metadataVersion": "string", // "1"
"eventTime": "string" // ISO 8601 date time for when the event was created
}
Mappstruktur för samtalsinspelning
Inspelningar lagras i följande format som visas i diagrammet.
- /YYYYMMDD/callId/first_8_of_recordingId + "-" + unikt guid/[chunk-id]-acsmetadata.documentId.json
- /YYYYMMDD/callId/first_8_of_recordingId + "-" + unikt guid/[chunk-id]-audiomp3.documentId.mp3
Nästa steg
Mer information finns i följande artiklar:
- Ladda ned exempelappen för Java-samtalsinspelning
- Läs mer om samtalsinspelning
- Läs mer om Samtalsautomation