Logs de Gravação de Chamadas dos Serviços de Comunicação do Azure
Os Serviços de Comunicação do Azure oferecem funcionalidades de log que você pode usar para monitorar e depurar sua solução dos Serviços de Comunicação. Você configura esses recursos por meio do portal do Azure.
O conteúdo deste artigo refere-se aos logs habilitados por meio do Azure Monitor (consulte também as perguntas frequentes). Para habilitar esses logs para os Serviços de Comunicação, confira Habilitar o registro em log nas configurações de diagnóstico.
Categorias de log de recursos
Os Serviços de Comunicação seguintes tipos de logs que você pode habilitar:
- Logs de uso: fornecem dados de uso associados a cada oferta de serviço cobrada.
- Logs de resumo da Gravação de Chamadas: fornecem informações resumidas para gravações de chamada, como:
- Duração de chamada.
- Conteúdo de mídia (por exemplo, áudio/vídeo, não modificado ou transcrição).
- Tipos de formato usados para a gravação (por exemplo, WAV ou MP4).
- O motivo pelo qual a gravação terminou.
- Registrando logs de operações de entrada: fornecem informações sobre solicitações de entrada para operações de Gravação de Chamadas. Cada entrada corresponde ao resultado de uma chamada para as APIs de Gravação de Chamadas, como StartRecording, StopRecording, PauseRecording e ResumeRecording.
Um arquivo de gravação é gerado no final de uma chamada ou reunião. Um usuário ou um aplicativo (bot) pode iniciar e interromper a gravação. A gravação também pode terminar devido a uma falha do sistema.
Os logs de resumo são publicados depois que uma gravação está pronta para ser baixada. Os logs são publicados dentro do tempo de latência padrão para logs de recursos do Azure Monitor. Consulte Tempo de ingestão de dados de registro no Azure Monitor.
Uso de esquema de log
Propriedade | Descrição |
---|---|
timestamp |
O carimbo de data/hora (UTC) de quando o log foi gerado. |
operationName |
A operação associada ao registro de log. |
operationVersion |
O valor api-version associado à operação, se a operação operationName foi executada por meio de uma API. Se nenhuma API corresponder a essa operação, a versão representará a versão da operação, caso as propriedades associadas à operação sejam alteradas no futuro. |
category |
A categoria de log do evento. A categoria é a granularidade na qual você pode habilitar ou desabilitar os logs em um recurso. As propriedades exibidas no blob properties de um evento são as mesmas em uma categoria de log e um tipo de recurso. |
correlationID |
A ID de eventos correlacionados. Você pode usar isso para identificar os eventos correlacionados entre várias tabelas. |
Properties |
Outros dados que são aplicáveis a vários modos dos Serviços de Comunicação. |
recordID |
A ID exclusiva de um registro de uso. |
usageType |
O modo de uso (por exemplo, Chat, PSTN ou NAT). |
unitType |
O tipo de unidade na qual o uso se baseia em um modo de uso (por exemplo, minutos, megabytes ou mensagens). |
quantity |
O número de unidades usadas ou consumidas para este registro. |
Esquema de log de resumo de Gravação de Chamadas
Nome da propriedade | Tipo de dados | Descrição |
---|---|---|
timeGenerated |
Datetime | O carimbo de data/hora (UTC) de quando o log foi gerado. |
operationName |
String | A operação associada a um registro de log. |
correlationId |
String | A ID usada para correlacionar eventos entre tabelas. |
recordingID |
String | A ID da gravação à qual esse log se refere. |
category |
String | A categoria de log do evento. Logs com a mesma categoria de log e tipo de recurso têm os mesmos campos de propriedade. |
resultType |
String | O status da operação. |
level |
String | O nível de severidade da operação. |
chunkCount |
Inteiro | O número total de partes criadas para a gravação. |
channelType |
String | O tipo de canal da gravação, como misto ou não misturado. |
recordingStartTime |
Datetime | A hora em que a gravação começou. |
contentType |
String | O conteúdo da gravação, como somente áudio, áudio/vídeo ou transcrição. |
formatType |
String | O formato de arquivo da gravação. |
recordingLength |
Double | A duração da gravação em segundos. |
audioChannelsCount |
Inteiro | O número total de canais de áudio na gravação. |
recordingEndReason |
String | O motivo pelo qual a gravação terminou. |
Gravação de chamadas e dados de exemplo
"operationName": "Call Recording Summary",
"operationVersion": "1.0",
"category": "RecordingSummary",
Uma chamada pode ter uma gravação ou muitas gravações, dependendo de quantas vezes um evento de gravação é disparado.
Por exemplo, se um agente iniciar uma chamada de saída em uma linha gravada e a chamada for descartada devido a um sinal de rede ruim, callID
terá um valor recordingID
. Se o agente chamar de volta o cliente, o sistema gerará uma nova instância de callID
e um novo valor recordingID
.
Exemplo: gravação de chamada para uma chamada para uma gravação
"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
}
Se o agente iniciar uma gravação e, em seguida, parar e reiniciar a gravação várias vezes enquanto a chamada ainda estiver ativada, callID
terá muitos valores recordingID
. O número de valores depende de quantas vezes os eventos de gravação foram disparados.
Exemplo: gravação de chamada para uma chamada para muitas gravações
{
"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
}
Logs ACSCallRecordingIncomingOperations
Aqui estão as propriedades:
Propriedade | Descrição |
---|---|
timeGenerated |
O carimbo de data/hora (UTC) de quando o log foi gerado. |
callConnectionId |
A ID da conexão de chamada ou da perna, se disponível. |
callerIpAddress |
O endereço IP do chamador, se a operação corresponder a uma chamada à API proveniente de uma entidade com um endereço IP disponível publicamente. |
correlationId |
A ID de eventos correlacionados. Você pode usar isso para identificar os eventos correlacionados entre várias tabelas. |
durationMs |
A duração da operação em milissegundos. |
level |
O nível de severidade da operação. |
operationName |
A operação associada aos registros de log. |
operationVersion |
A versão da API associada à operação ou versão da operação (se não houver nenhuma versão da API). |
resourceId |
Identificador exclusivo do recurso ao qual o registro está associado. |
resultSignature |
O substatus da operação. Se essa operação corresponder a uma chamada à API REST, esse campo será o código de status HTTP da chamada REST correspondente. |
resultType |
O status da operação. |
sdkType |
O tipo de SDK usado na solicitação. |
sdkVersion |
A versão do SDK. |
serverCallId |
A ID da chamada do servidor. |
URI |
O URI da solicitação. |
Veja um exemplo:
"properties"
{ "TimeGenerated": "2023-05-09T15:58:30.100Z",
"Level": "Informational",
"CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"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"
}
Próximas etapas
- Obtenha informações de Gravação de Chamadas.
- Saiba mais sobre os Gravação de chamada.