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"
}