Gespreksopname: Snelstartgids voor Bring Your Own Azure Storage
Deze quickstart helpt u aan de slag te gaan met Bring your own Azure Storage for Call Recording. Als u bring your own Azure Storage-functionaliteit wilt gaan gebruiken, moet u bekend zijn met de CALL Recording-API's.
Vereiste: Roltoewijzingen voor beheerde identiteit en op rollen gebaseerd toegangsbeheer (RBAC) instellen
1. Door het systeem toegewezen beheerde identiteit inschakelen voor Azure Communication Services
- Open uw Azure Communication Services-resource. Navigeer naar Identiteit aan de linkerkant.
- Ingeschakelde door het systeem toegewezen beheerde identiteit en klik op Opslaan.
- Zodra dit is voltooid, kunt u de object-principal-id van de zojuist gemaakte identiteit zien.
- Zodra de identiteit is gemaakt, klikt u op Azure-roltoewijzingen om te beginnen met het toevoegen van roltoewijzingen.
2. Roltoewijzing toevoegen
- Klik op Roltoewijzing toevoegen
- Selecteer in het deelvenster Roltoewijzing toevoegen de volgende waarden
- Bereik: Storage
- Abonnement: Kies uw abonnement
- Resource: Kies uw opslagaccount
- Rol: Azure Communication Services heeft 'Inzender voor opslagblobgegevens' nodig om naar uw opslagaccount te kunnen schrijven.
- Klik op Opslaan.
- Zodra dit is voltooid, ziet u de zojuist toegevoegde roltoewijzing in het venster Azure-roltoewijzing .
Opnamesessie starten met externe opslag opgegeven
Gebruik de serveroproep-id die tijdens het starten van de oproep is ontvangen.
Azure Blob Storage gebruiken voor externe opslag
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);
Azure Blob Storage gebruiken voor externe opslag
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
.setExternalStorage(new BlobStorage("<Insert Container / Blob Uri>"));
Response<StartCallRecordingResult> response = callAutomationClient.getCallRecording()
.startRecordingWithResponse(recordingOptions, null);
Melding over geslaagde export
Gebruik een Azure Event Grid-webhook of een andere geactiveerde actie om uw services op de hoogte te stellen wanneer de opgenomen media gereed zijn en worden geëxporteerd naar de externe opslaglocatie.
Raadpleeg dit voorbeeld van het gebeurtenisschema.
{
"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
}
Mapstructuur voor gespreksopname
Opnamen worden opgeslagen in de volgende indeling, zoals weergegeven in het diagram.
- /JJJJMMDD/callId/first_8_of_recordingId + '-' + unieke guid/[chunk-id]-acsmetadata.documentId.json
- /JJJJMMDD/callId/first_8_of_recordingId + '-' + unieke guid/[chunk-id]-audiomp3.documentId.mp3
Volgende stappen
Raadpleeg voor meer informatie de volgende artikelen:
- Download onze voorbeeld-app voor het opnemen van Java-oproepen
- Meer informatie over gespreksopname
- Meer informatie over Gespreksautomatisering