Protokoly záznamu volání služby Azure Communication Services

Azure Communication Services nabízí možnosti protokolování, které můžete použít k monitorování a ladění řešení Communication Services. Tyto funkce nakonfigurujete prostřednictvím webu Azure Portal.

Obsah v tomto článku se týká protokolů povolených prostřednictvím služby Azure Monitor (viz také nejčastější dotazy). Pokud chcete povolit tyto protokoly pro komunikační služby, přečtěte si téma Povolení protokolování v nastavení diagnostiky.

Kategorie protokolu prostředků

Služba Communication Services nabízí následující typy protokolů, které můžete povolit:

  • Protokoly využití: Poskytují data o využití přidružená k jednotlivým fakturovaným nabídkám služeb.
  • Protokoly souhrnu záznamu hovoru: Zadejte souhrnné informace o záznamech hovorů, například:
    • Doba trvání hovoru.
    • Mediální obsah (například zvuk/video, nemixovaný nebo přepis).
    • Typy formátů používané pro záznam (například WAV nebo MP4).
    • Důvod, proč nahrávka skončila
  • Zaznamenávání protokolů příchozích operací: Zadejte informace o příchozích požadavcích na operace záznamu volání. Každá položka odpovídá výsledku volání rozhraní API pro záznam volání, jako jsou startRecording, StopRecording, PauseRecording a ResumeRecording.

Soubor záznamu se vygeneruje na konci hovoru nebo schůzky. Záznam může spustit a zastavit uživatel nebo aplikace (robot). Záznam může také končit kvůli selhání systému.

Souhrnné protokoly se publikují poté, co je záznam připravený ke stažení. Protokoly se publikují v době standardní latence pro protokoly prostředků služby Azure Monitor. Viz Čas příjmu dat protokolu ve službě Azure Monitor.

Schéma protokolu využití

Vlastnost Popis
timestamp Časové razítko (UTC) při vygenerování protokolu
operationName Operace přidružená k záznamu protokolu.
operationVersion Hodnota api-version přidružená k operaci, pokud operationName byla operace provedena prostřednictvím rozhraní API. Pokud žádné rozhraní API neodpovídá této operaci, verze představuje verzi operace v případě, že se vlastnosti přidružené k operaci v budoucnu změní.
category Kategorie protokolu události. Kategorie je členitost, ve které můžete povolit nebo zakázat protokoly prostředku. Vlastnosti, které se zobrazí v objektu properties blob události, jsou stejné v kategorii protokolu a typu prostředku.
correlationID ID pro korelované události. Můžete ho použít k identifikaci korelovaných událostí mezi více tabulkami.
Properties Další data, která se vztahují na různé režimy komunikačních služeb.
recordID Jedinečné ID záznamu využití.
usageType Režim použití (například Chat, PSTN nebo NAT).
unitType Typ jednotky, na které se používá režim použití (například minuty, megabajty nebo zprávy).
quantity Počet použitých nebo spotřebovaných jednotek pro tento záznam.

Schéma protokolu souhrnu záznamu volání

Název vlastnosti Datový typ Popis
timeGenerated DateTime Časové razítko (UTC) doby vygenerování protokolu
operationName Řetězec Operace přidružená k záznamu protokolu.
correlationId Řetězec ID, které slouží ke korelaci událostí mezi tabulkami.
recordingID Řetězec ID záznamu, na který tento protokol odkazuje.
category Řetězec Kategorie protokolu události. Protokoly se stejnou kategorií protokolu a typem prostředku mají stejná pole vlastností.
resultType Řetězec Stav operace.
level Řetězec Úroveň závažnosti operace.
chunkCount Integer Celkový počet bloků dat vytvořených pro záznam.
channelType Řetězec Typ kanálu nahrávky, například smíšený nebo nemixovaný.
recordingStartTime DateTime Čas, kdy záznam začal.
contentType Řetězec Obsah nahrávky, například jenom zvuk, zvuk nebo video nebo přepis.
formatType Řetězec Formát souboru nahrávky.
recordingLength Hodnota s dvojitou přesností Doba trvání záznamu v sekundách.
audioChannelsCount Integer Celkový počet zvukových kanálů v záznamu.
recordingEndReason Řetězec Důvod, proč nahrávka skončila

Záznam hovoru a ukázková data

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

Hovor může mít jednu nahrávku nebo mnoho nahrávek v závislosti na tom, kolikrát se událost záznamu aktivuje.

Pokud například agent spustí odchozí volání na zaznamenaném řádku a volání klesne kvůli špatnému síťovému signálu, callID bude mít jednu recordingID hodnotu. Pokud agent volá zpět zákazníka, systém vygeneruje novou callID instanci a novou recordingID hodnotu.

Příklad: Záznam hovoru pro jeden hovor na jeden záznam

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

Pokud agent spustí záznam a pak záznam zastaví a restartuje několikrát, dokud je hovor stále zapnutý, callID bude mít mnoho recordingID hodnot. Počet hodnot závisí na tom, kolikrát se události záznamu aktivovaly.

Příklad: Záznam hovoru pro jeden hovor na mnoho nahrávek


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

Protokoly ACSCallRecordingIncomingOperations

Tady jsou vlastnosti:

Vlastnost Popis
timeGenerated Časové razítko (UTC) doby vygenerování protokolu
callConnectionId ID připojení nebo noha volání, pokud je k dispozici.
callerIpAddress IP adresa volajícího, pokud operace odpovídá volání rozhraní API, které pochází z entity s veřejně dostupnou IP adresou.
correlationId ID pro korelované události. Můžete ho použít k identifikaci korelovaných událostí mezi více tabulkami.
durationMs Doba trvání operace v milisekundách.
level Úroveň závažnosti operace.
operationName Operace přidružená k záznamům protokolu.
operationVersion Verze rozhraní API přidružená k operaci nebo verzi operace (pokud neexistuje verze rozhraní API).
resourceId Jedinečný identifikátor prostředku, ke kterému je záznam přidružený.
resultSignature Podstatus operace. Pokud tato operace odpovídá volání rozhraní REST API, toto pole je stavový kód HTTP odpovídajícího volání REST.
resultType Stav operace.
sdkType Typ sady SDK použitý v požadavku.
sdkVersion Verze sady SDK.
serverCallId ID volání serveru.
URI Identifikátor URI požadavku.

Tady je příklad:

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

Další kroky