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
- Rufen Sie Einblicke in die Anrufaufzeichnung ab.
- Erfahren Sie mehr über die Anrufaufzeichnung.