Aufzeichnungsprotokolle für Azure Communication Services-Anrufaufzeichnungen

Azure Communication Services bietet Protokollierungsfunktionen, mit denen Sie Ihre Communication Services-Lösung überwachen und debuggen können. Sie konfigurieren diese Funktionen über die Azure-Portal.

Der Inhalt in diesem Artikel bezieht sich auf Protokolle, die über Azure Monitor aktiviert sind (siehe auch häufig gestellte Fragen). Informationen zum Aktivieren dieser Protokolle für Kommunikationsdienste finden Sie unter Aktivieren der Protokollierung in Diagnoseeinstellungen.

Ressourcenprotokollkategorien

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

  • Verwendungsprotokolle: Bereitstellen von Nutzungsdaten, die den einzelnen abrechnungsbezogenen Diensten zugeordnet sind.
  • Zusammenfassungsprotokolle für die Anrufaufzeichnung: Bereitstellen von Zusammenfassenden Informationen für Anrufaufzeichnungen, z. B.:
    • Anrufdauer.
    • Medieninhalte (z. B. Audio/Video, nicht gemischt oder Transkription).
    • Formattypen, die für die Aufzeichnung verwendet werden (z. B. WAV oder MP4).
    • Der Grund, warum die Aufzeichnung beendet wurde.
  • Aufzeichnung eingehender Betriebsprotokolle: Bereitstellen von Informationen zu eingehenden Anforderungen für Anrufaufzeichnungsvorgänge. Jeder Eintrag entspricht dem Ergebnis eines Aufrufs der Anrufaufzeichnungs-APIs, z. B. "StartRecording", "StopRecording", "PauseRecording" und "ResumeRecording".

Am Ende eines Anrufs oder einer Besprechung wird eine Aufzeichnungsdatei generiert. Entweder ein Benutzer oder eine App (Bot) kann die Aufzeichnung starten und beenden. Die Aufzeichnung kann auch aufgrund eines Systemfehlers enden.

Zusammenfassungsprotokolle werden veröffentlicht, nachdem eine Aufzeichnung heruntergeladen werden kann. Die Protokolle werden innerhalb der Standardlatenzzeit für Azure Monitor-Ressourcenprotokolle veröffentlicht. Siehe Protokolldatenaufnahmezeit in Azure Monitor.

Verwendungsprotokollschema

Eigenschaft Beschreibung
timestamp Der Zeitstempel (UTC), wann das Protokoll generiert wurde.
operationName Der mit der Protokollaufzeichnung verbundene Vorgang
operationVersion Der api-version dem Vorgang zugeordnete Wert, wenn der operationName Vorgang über eine API ausgeführt wurde. Wenn dieser Vorgang keine API entspricht, stellt die Version die Version des Vorgangs dar, falls die eigenschaften, die der Vorgangsänderung zugeordnet sind, in Der Zukunft geändert werden.
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 properties im Blob eines Ereignisses angezeigt werden, sind in einer Protokollkategorie und einem Ressourcentyp identisch.
correlationID Die ID für korrelierte Ereignisse. Sie können es verwenden, um korrelierte Ereignisse zwischen mehreren Tabellen zu identifizieren.
Properties Andere Daten, die für verschiedene Kommunikationsdienste gelten.
recordID Die eindeutige ID für einen Verwendungsdatensatz.
usageType Der Verwendungsmodus (z. B. Chat, PSTN oder NAT).
unitType Der Typ der Einheit, die verwendet wird, basiert auf einem Nutzungsmodus (z. B. Minuten, Megabyte oder Nachrichten).
quantity Die Anzahl der für diesen Datensatz verwendeten oder verbrauchten Einheiten.

Zusammenfassungsprotokollschema für Die Anrufaufzeichnung

Eigenschaftenname Datentyp Beschreibung
timeGenerated DateTime Der Zeitstempel (UTC) des Zeitpunkts, zu dem das Protokoll generiert wurde.
operationName String Der vorgang, der einem Protokolldatensatz zugeordnet ist.
correlationId String Die ID, die zum Korrelieren von Ereignissen zwischen Tabellen verwendet wird.
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 weisen dieselben Eigenschaftenfelder auf.
resultType String Der Status des Vorgangs.
level String Der Schweregrad des Vorgangs
chunkCount Integer Die Gesamtanzahl der für die Aufzeichnung erstellten Blöcke.
channelType String Der Kanaltyp der Aufzeichnung, z. B. gemischt oder nicht gemischt.
recordingStartTime DateTime Die Zeit, zu der 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 Integer Die Gesamtanzahl der Audiokanäle in der Aufzeichnung.
recordingEndReason String Der Grund, warum die Aufzeichnung beendet wurde.

Anrufaufzeichnung und Beispieldaten

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

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

Wenn beispielsweise ein Agent einen ausgehenden Anruf in einer aufgezeichneten Zeile startet und der Anruf aufgrund eines schlechten Netzwerksignals abbricht, callID hat er einen recordingID Wert. Wenn der Agent den Kunden zurückruft, generiert das System eine neue callID Instanz und einen neuen recordingID Wert.

Beispiel: Anrufaufzeichnung für einen Anruf an eine 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 dann die Aufzeichnung mehrmals beendet und neu startet, während der Anruf noch aktiviert ist, callID gibt es viele recordingID Werte. Die Anzahl der Werte hängt davon ab, wie oft die Aufzeichnungsereignisse ausgelöst wurden.

Beispiel: Anrufaufzeichnung für einen Anruf für viele 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

Hier sind die Eigenschaften:

Eigenschaft Beschreibung
timeGenerated Der Zeitstempel (UTC) des Zeitpunkts, zu dem das Protokoll generiert wurde.
callConnectionId Die ID der Anrufverbindung oder des Beins, 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 können es verwenden, um korrelierte Ereignisse zwischen mehreren Tabellen zu identifizieren.
durationMs Die Dauer des Vorgangs in Millisekunden.
level Der Schweregrad des Vorgangs
operationName Der Vorgang, der Protokolldatensätzen zugeordnet ist.
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 Serveranruf-ID.
URI Der URI der Anforderung.

Hier sehen Sie 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