Teilen über


Anrufaufzeichnungsprotokolle für Azure Communication Services

Azure Communication Services bietet Protokollierungsfunktionen, mit denen Sie Ihre Communication Services-Lösung überwachen und debuggen können. Diese Funktionen können über das Azure-Portal konfiguriert werden.

Der Inhalt dieses Artikels bezieht sich auf Protokolle, die über Azure Monitor aktiviert werden (siehe dazu auch FAQ). Informationen zum Aktivieren dieser Protokolle für Communication Services finden Sie unter Aktivieren der Protokollierung in den Diagnoseeinstellungen.

Ressourcenprotokollkategorien

Communication Services bietet die folgenden Protokolltypen, die Sie aktivieren können:

  • Nutzungsprotokolle: Stellen Nutzungsdaten bereit, die den einzelnen abgerechneten Dienstangeboten zugeordnet sind.
  • Zusammenfassungsprotokolle der Anrufaufzeichnung: Stellen Zusammenfassungsinformationen für Anrufaufzeichnungen bereit. Hierzu zählen beispielsweise:
    • Aufrufdauer
    • Medieninhalt (z. B. Audio/Video, ungemischt oder Transkription)
    • Für die Aufzeichnung verwendete Formattypen (z. B. WAV oder MP4)
    • Grund für die Beendigung der Aufzeichnung
  • Protokolle für eingehende Vorgänge der Aufzeichnung: Stellen Informationen zu eingehenden Anforderungen für Anrufaufzeichnungsvorgänge bereit. Jeder Eintrag entspricht dem Ergebnis eines Aufrufs der Anrufaufzeichnungs-APIs (z. B. „StartRecording“, „StopRecording“, „PauseRecording“ oder „ResumeRecording“).

Eine Aufzeichnungsdatei wird am Ende eines Anrufs oder einer Besprechung generiert. Die Aufzeichnung kann entweder durch einen Benutzer oder durch eine App (Bot) gestartet und beendet werden. Die Aufzeichnung kann auch aufgrund eines Systemfehlers enden.

Zusammenfassungsprotokolle werden veröffentlicht, nachdem eine Aufzeichnung zum Herunterladen bereit ist. Die Protokolle werden innerhalb der Standardwartezeit für Azure Monitor-Ressourcenprotokolle veröffentlicht. Weitere Informationen finden Sie unter Protokolldatenerfassungszeit in Azure Monitor.

Protokollschema für die Nutzung

Eigenschaft Beschreibung
timestamp Der Zeitstempel (UTC), wann das Protokoll generiert wurde.
operationName Der mit der Protokollaufzeichnung verbundene Vorgang
operationVersion Der api-version-Wert, der dem Vorgang zugeordnet wird, wenn der operationName-Vorgang über eine API durchgeführt wurde. Wenn keine API für diesen Vorgang vorhanden ist, entspricht die Version der Version des Vorgangs (für den Fall, dass sich die dem Vorgang zugeordneten Eigenschaften in Zukunft ändern).
category Die Protokollkategorie des Ereignisses. Die Kategorie ist die Granularität, mit der Sie Protokolle für eine Ressource aktivieren oder deaktivieren können. Die Eigenschaften, die im properties-Blob eines Ereignisses angezeigt werden, sind innerhalb einer Protokollkategorie und eines Ressourcentyps identisch.
correlationID Die ID für korrelierte Ereignisse. Sie kann verwendet werden, um korrelierte Ereignisse zwischen verschiedenen Tabellen zu identifizieren.
Properties Weitere Daten, die auf verschiedene Communication Services-Modi anwendbar sind.
recordID Die eindeutige ID für einen Nutzungsdatensatz.
usageType Die Art der Nutzung (z. B. Chat, PSTN oder NAT).
unitType Der Typ der Einheit, auf dem die Nutzung für eine bestimmte Nutzungsart basiert (z. B. Minuten, Megabytes oder Nachrichten).
quantity Die Anzahl der für diesen Datensatz verwendeten oder verbrauchten Einheiten.

Schema des Zusammenfassungsprotokolls der Anrufaufzeichnung

Eigenschaftenname Datentyp Beschreibung
timeGenerated DateTime Der Zeitstempel (UTC) für den Zeitpunkt, zu dem das Protokoll generiert wurde.
operationName String Der mit einem Protokolldatensatz verbundene Vorgang.
correlationId String Die ID, die verwendet wird, um Ereignisse zwischen Tabellen zu korrelieren.
recordingID String Die ID für die Aufzeichnung, auf die sich dieses Protokoll bezieht.
category String Die Protokollkategorie des Ereignisses. Protokolle mit derselben Protokollkategorie und demselben Ressourcentyp verfügen über die gleichen Eigenschaftsfelder.
resultType String Der Status des Vorgangs.
level String Der Schweregrad des Vorgangs
chunkCount Ganzzahl Die Gesamtanzahl der für die Aufzeichnung erstellten Blöcke.
channelType String Der Kanaltyp der Aufzeichnung (z. B. gemischt oder ungemischt).
recordingStartTime DateTime Der Zeitpunkt, zu dem die Aufzeichnung gestartet wurde.
contentType String Der Inhalt der Aufzeichnung (z. B. nur Audio, Audio/Video oder Transkription).
formatType String Das Dateiformat der Aufzeichnung.
recordingLength Double Die Dauer der Aufzeichnung in Sekunden.
audioChannelsCount Ganzzahl Die Gesamtanzahl von Audiokanälen in der Aufzeichnung.
recordingEndReason String Der Grund für die Beendigung der Aufzeichnung.

Anrufaufzeichnung und Beispieldaten

"operationName":            "Call Recording Summary",
"operationVersion":         "1.0",
"category":                 "RecordingSummary",

Ein Anruf kann eine oder mehrere Aufzeichnungen enthalten, je nachdem, wie oft ein Aufzeichnungsereignis ausgelöst wurde.

Wenn z. B. ein Agent einen ausgehenden Anruf über eine aufgezeichnete Leitung startet und der Anruf aufgrund eines schlechten Netzwerksignals abbricht, ist für die Anruf-ID (callID) ein einzelner recordingID-Wert vorhanden. Wenn der Agent den Kunden zurückruft, generiert das System eine neue callID-Instanz sowie einen neuen recordingID-Wert.

Beispiel: Anrufaufzeichnung für einen einzelnen Anruf mit einer einzelnen Aufzeichnung

"properties"
{  
  "TimeGenerated":"2022-08-17T23:18:26.4332392Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "zzzzzz-cada-4164-be10-0000000000",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBvaW5xxxxxxxxFmNjkwxxxxxxxxxxxxSZXNvdXJjZVNwZWNpZmljSWQiOiJiZGU5YzE3Ni05M2Q3LTRkMWYtYmYwNS0yMTMwZTRiNWNlOTgifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-16T09:07:54.0000000Z",
    "RecordingLength": "73872.94",
    "ChunkCount": 6,
   "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Wenn der Agent eine Aufzeichnung startet und sie dann mehrmals beendet und wieder startet, während der Anruf noch aktiv ist, sind für die Anruf-ID (callID) zahlreiche recordingID-Werte vorhanden. Die Anzahl der Werte hängt davon ab, wie oft die Aufzeichnungsereignisse ausgelöst wurden.

Beispiel: Anrufaufzeichnung für einen einzelnen Anruf mit vielen Aufzeichnungen


{   
 "TimeGenerated": "2022-08-17T23:55:46.6304762Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBxxxxxxxxxxxxjkwMC05MmEwLTRlZDYtOTcxYS1kYzZlZTkzNjU0NzciLCJSxxxxxNwZWNpZmljSWQiOiI5ZmY2ZTY2Ny04YmQyLTQ0NzAtYmRkYy00ZTVhMmUwYmNmOTYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:43.3304762Z",
    "RecordingLength": 3.34,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}
{
    "TimeGenerated": "2022-08-17T23:55:56.7664976Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuxxxxxxiOiI4NDFmNjkwMC1mMjBiLTQzNmQtYTg0Mi1hODY2YzE4M2Y0YTEiLCJSZXNvdXJjZVNwZWNpZmljSWQiOiI2YzRlZDI4NC0wOGQ1LTQxNjEtOTExMy1jYWIxNTc3YjM1ODYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:54.0664976Z",
    "RecordingLength": 2.7,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

ACSCallRecordingIncomingOperations-Protokolle

Dies sind die Eigenschaften:

Eigenschaft Beschreibung
timeGenerated Der Zeitstempel (UTC) für den Zeitpunkt, zu dem das Protokoll generiert wurde.
callConnectionId Die ID der Anrufverbindung oder des Anrufzweigs, falls verfügbar.
callerIpAddress Die IP-Adresse des Aufrufers, wenn der Vorgang einem API-Aufruf entspricht, der von einer Entität mit einer öffentlich verfügbaren IP-Adresse stammt.
correlationId Die ID für korrelierte Ereignisse. Sie kann verwendet werden, um korrelierte Ereignisse zwischen verschiedenen Tabellen zu identifizieren.
durationMs Die Dauer des Vorgangs in Millisekunden.
level Der Schweregrad des Vorgangs
operationName Der mit Protokollaufzeichnungen verbundene Vorgang.
operationVersion Die API-Version, die dem Vorgang oder der Version des Vorgangs zugeordnet ist (wenn keine API-Version vorhanden ist).
resourceId Ein eindeutiger Bezeichner für die Ressource, der der Datensatz zugeordnet ist.
resultSignature Der Unterstatus des Vorgangs. Wenn dieser Vorgang einem REST-API-Aufruf entspricht, ist dieses Feld der HTTP-Statuscode des entsprechenden REST-Aufrufs.
resultType Der Status des Vorgangs.
sdkType Der in der Anforderung verwendete SDK-Typ.
sdkVersion Die SDK-Version.
serverCallId Die Serveraufruf-ID.
URI Der URI der Anforderung.

Ein Beispiel:

"properties"
{  "TimeGenerated": "2023-05-09T15:58:30.100Z",
    "Level": "Informational",
    "CorrelationId": "a999f996-b4e1-xxxx-ac04-a59test87d97",
    "OperationName": "ResumeCallRecording",
    "OperationVersion": "2023-03-06",
    "URI": "https://acsresouce.communication.azure.com/calling/recordings/   eyJQbGF0Zm9ybUVuZHBviI0MjFmMTIwMC04MjhiLTRmZGItOTZjYi0...:resume?api-version=2023-03-06",
    "ResultType": "Succeeded",
    "ResultSignature": 202,
    "DurationMs": 130,
    "CallerIpAddress": "127.0.0.1",
    "CallConnectionId": "d5596715-ab0b-test-8eee-575c250e4234",
    "ServerCallId": "aHR0cHM6Ly9hcGk0vjCCCCCCQd2pRP2k9OTMmZT02Mzc5OTQ3xMDAzNDUwMzg...",
    "SdkVersion": "1.0.0-alpha.20220829.1",
    "SdkType": "dotnet"
}

Nächste Schritte