Share via


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

Diagramm, das eine Kommunikationsdienstressource mit deaktivierter verwalteter Identität anzeigt

  1. Öffnen Sie Ihre Azure Communication Services-Ressource. Navigieren Sie links zu Identität.
  2. Aktivieren Sie die systemseitig zugewiesene verwaltete Identität, und klicken Sie auf Speichern.
  3. Nach Abschluss des Vorgangs wird die Prinzipal-ID des Objekts der neu erstellten Identität angezeigt.

Diagramm, das eine Kommunikationsdienstressource mit aktivierter verwalteter Identität anzeigt

  1. 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

  1. Klicken Sie auf „Rollenzuweisung hinzufügen“

Diagramm, das eine verwaltete Identität für eine Kommunikationsdienstressource anzeigt, die eine Rollenzuweisung hinzufügt

  1. Wählen Sie im Bereich Rollenzuweisung hinzufügen die folgenden Werte aus
    1. Umfang: Storage
    2. Abonnement: Wählen Sie Ihr Abonnement aus.
    3. Ressource: Speicherkonto auswählen
    4. Rolle: Azure Communication Services benötigt die Rolle „Mitwirkender an Speicher-Blob-Daten", um in Ihr Speicherkonto schreiben zu können.

Diagramm, das eine verwaltete Identität für eine Kommunikationsdienstressource anzeigt, die Details einer Rollenzuweisung hinzufügt

  1. Klicken Sie auf „Speichern“.
  2. Nach Abschluss des Vorgangs wird die neu hinzugefügte Rollenzuweisung im Fenster „Azure-Rollenzuweisung“ angezeigt.

Diagramm, das eine erfolgreiche Rollenzuweisung der verwalteten Identität für eine Kommunikationsdienstressource anzeigt

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

Diagramm der Struktur eines Anrufaufzeichnungsordners

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Artikeln: