Anrufaufzeichnung: Schnellstartanleitung für „Bring Your Own Azure Storage“
Diese Schnellstartanleitung behandelt die ersten Schritte mit Bring Your Own Azure Storage für die Anrufaufzeichnung. Um mit der Verwendung von Bring Your Own Azure Storage-Funktionen zu beginnen, stellen Sie sicher, dass Sie mit den Anrufaufzeichnungs-APIs vertraut sind.
Voraussetzung: Einrichten von verwalteten Identitäten und RBAC-Rollenzuweisungen (Role Based Access Control, rollenbasierte Zugriffssteuerung)
1. Aktivieren der systemseitig zugewiesenen verwalteten Identität für Azure Communication Services
- Öffnen Sie Ihre Azure Communication Services-Ressource. Navigieren Sie links zu Identität.
- Aktivieren Sie die systemseitig zugewiesene verwaltete Identität, und klicken Sie auf Speichern.
- Nach Abschluss des Vorgangs wird die Prinzipal-ID des Objekts der neu erstellten Identität angezeigt.
- Nachdem die Identität erfolgreich erstellt wurde, klicken Sie auf Azure-Rollenzuweisungen, um mit dem Hinzufügen von Rollenzuweisungen zu beginnen.
2. Hinzufügen der Rollenzuweisung
- Klicken Sie auf „Rollenzuweisung hinzufügen“
- Wählen Sie im Bereich Rollenzuweisung hinzufügen die folgenden Werte aus
- Umfang: Storage
- Abonnement: Wählen Sie Ihr Abonnement aus.
- Ressource: Speicherkonto auswählen
- Rolle: Azure Communication Services benötigt die Rolle „Mitwirkender an Speicher-Blob-Daten", um in Ihr Speicherkonto schreiben zu können.
- Klicken Sie auf „Speichern“.
- Nach Abschluss des Vorgangs wird die neu hinzugefügte Rollenzuweisung im Fenster „Azure-Rollenzuweisung“ angezeigt.
Starten der Aufzeichnungssitzung mit angegebenem externen Speicher
Verwenden Sie die Serveraufruf-ID, die während der Initiierung des Aufrufs empfangen wurde.
Verwenden von Azure-BLOB-Speicher für externe Speicherung
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);
Verwenden von Azure-BLOB-Speicher für externe Speicherung
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
.setExternalStorage(new BlobStorage("<Insert Container / Blob Uri>"));
Response<StartCallRecordingResult> response = callAutomationClient.getCallRecording()
.startRecordingWithResponse(recordingOptions, null);
Benachrichtigung bei erfolgreichem Export
Verwenden Sie einen Azure Event Grid-Webhook oder eine andere ausgelöste Aktion, um Ihre Dienste zu benachrichtigen, wenn die aufgezeichneten Medien bereit sind und an den externen Speicherort exportiert wurden.
Weitere Informationen finden Sie in diesem Beispiel des Ereignisschemas.
{
"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
}
Ordnerstruktur für die Anrufaufzeichnung
Aufzeichnungen werden wie im Diagramm dargestellt im folgenden Format gespeichert.
- /JJJJMMTT/callId/erste 8 Stellen der recordingId + „-“ + eindeutige GUID/[Chunk-ID]-acsmetadata.documentId.json
- /JJJJMMTT/callId/erste 8 Stellen der recordingId + „-“ + eindeutige GUID/[Chunk-ID]-audiomp3.documentId.mp3
Nächste Schritte
Weitere Informationen finden Sie in den folgenden Artikeln:
- Herunterladen unserer Beispiel-Apps zur Anrufaufzeichnung mit Java
- Erfahren Sie mehr über die Anrufaufzeichnung
- Informieren Sie sich ausführlicher über die Anrufautomatisierung.