Esquema de logs de atualizações de resumo das chamadas

A única diferença nas propriedades entre o esquema de log de atualizações de resumo das chamadas e o esquema de log de resumo das chamadas é a propriedade CallUpdatesVersion adicional. A propriedade CallUpdatesVersion indica quão recente é o log. O esquema de log de atualizações de resumo das chamadas tem latência menor do que o esquema do log de resumo da chamada, e ele obtém essa baixa latência ao enviar as propriedades de esquema tão logo elas possam ser enviadas. Por outro lado, o esquema de log de resumo das chamadas não lhe envia um esquema de log até que o esquema de log esteja completamente concluído internamente pela Microsoft.

O log de atualizações do resumo das chamadas contém dados para ajudar você a identificar as principais propriedades de todas as chamadas. Um log distinto de atualizações do resumo de chamadas é criado para cada valor participantId na chamada, ou endpointId no caso de chamadas P2P (ponto a ponto).

Para cada participante em uma chamada, os Serviços de Comunicação criam um log distinto de atualizações do resumo das chamadas. Se alguém reingressar em uma chamada, esse participante terá o mesmo valor EndpointId, mas um valor ParticipantId diferente. Em seguida, esse ponto de extremidade pode ter dois logs de atualizações de resumo de chamada.

Como usar os logs de chamada

Recomendamos que você colete todos os logs de chamada disponíveis em um recurso de análise de logs para monitorar o uso de chamadas e melhorar a qualidade da chamada e receber novos logs dos Serviços de Comunicação do Azure à medida que os liberamos.

Há duas ferramentas principais que você pode usar para monitorar suas chamadas e melhorar a qualidade da chamada.

É recomendável usar o Painel de insights de voz e vídeo para iniciar as investigações de qualidade e usar o diagnóstico de chamadas conforme necessário para explorar chamadas individuais quando precisar de detalhes granulares.

Conceitos de dados

Importante

Você deve coletar os logs se quiser analisá-los. Para saber mais, confira: Como armazeno os logs?

O Azure não armazena seus dados de log de chamadas, a menos que você habilite essas Configurações de Diagnóstico específicas. Seus dados de chamada não estão disponíveis retroativamente. Você acumula dados depois de criar as Configurações de Diagnóstico.

Ao usar o esquema de log de atualizações de resumo das chamadas, sempre consulte o número CallUpdatesVersion mais alto para garantir que você tenha as informações mais atualizadas. Sempre que os dados de chamada são atualizados, uma nova versão do log é criada contendo as informações mais atualizadas. Por exemplo, quanto maior o número CallUpdatesVersion, mais recente será a atualização. Isso significa que a versão 3 é mais recente e inclui alterações mais recentes em comparação à versão 1.

Mais informações sobre versões de log e latência de dados

O esquema de log de atualizações de resumo de chamada pode exigir aproximadamente 60 minutos após o fim de uma chamada para propor dados, a maioria dos logs pode estar disponível em 40 minutos.

Após o término de uma chamada, uma versão inicial (versão 1) do log é enviada para as tabelas CallSummaryUpdates e CallDiagnosticUpdates. As versões iniciais poderão conter valores null, se mais informações ficarem disponíveis, versões atualizadas dos logs serão criadas com informações mais completas. Por exemplo, os dados do cliente podem ser atrasados devido a problemas de conectividade de rede entre o computador cliente e nossos servidores, ou algo tão simples quanto um usuário fechando a tampa em seu laptop após a chamada antes que os dados do cliente sejam enviados e reabrindo-os horas (ou dias) depois.

Devido a essas variações de coleção, você poderá ver as versões incrementais chegando horas ou até dias depois. Você poderá usar versões para uma compreensão mais rápida do recurso de chamada do que esperar até que todos os dados do cliente do SDK de chamada sejam recebidos. O melhor cenário é todos os participantes de chamada encerrarem suas chamadas e o SDK de chamada poder enviar dados para o servidor.

Definições de dados

Esquema de logs de atualizações de resumo das chamadas

Importante

As informações do participante no log de atualizações do resumo das chamadas variam de acordo com o locatário participante. A versão do SDK e a versão do sistema operacional serão redigidas se o participante não estiver dentro do mesmo locatário (também chamado de entre locatários) que o recurso dos Serviços de Comunicação. Os participantes entre locatários são classificados como usuários externos convidados por um locatário de recursos para ingressar e colaborar durante uma chamada.

Essa tabela descreve cada propriedade.

Propriedade Descrição
time O carimbo de data/hora (UTC) 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. Esta propriedade é a granularidade com que você pode habilitar ou desabilitar 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 exclusiva para uma chamada. Ele identifica eventos correlacionados de todos os participantes e endpoints que se conectam durante uma única chamada, e você pode usá-lo para integrar dados de logs diferentes. Se você precisar abrir um caso de suporte na Microsoft, você pode usar o valor correlationId para identificar facilmente a chamada da qual você está solucionando problemas.
identifier A ID exclusiva para o usuário. A identidade pode ser um usuário dos Serviços de Comunicação do Azure, uma ID de usuário do Microsoft Entra, uma ID de usuário anônima do Teams ou uma ID de bot do Teams. Você pode usar essa ID para correlacionar eventos do usuário em logs.
callStartTime Um carimbo de data/hora para o início da chamada, com base na primeira tentativa de conexão de qualquer ponto de extremidade.
callDuration A duração da chamada, expressa em segundos, com base na primeira tentativa de conexão e no término da última conexão entre dois terminais.
callType O tipo da chamada. Contém "P2P" ou "Group". Uma chamada "P2P" é uma conexão direta 1:1 entre apenas dois pontos de extremidade que não sejam do servidor. Uma chamada "Group" é uma chamada que tem mais de dois pontos de extremidade, ou é criada como chamada "Group" antes da conexão.
teamsThreadId A ID de thread do Teams. Essa ID é relevante somente quando a chamada é organizada como uma reunião do Teams. Em seguida, isso representa o caso de uso de interoperabilidade entre o Microsoft Teams e os Serviços de Comunicação do Azure.

Essa ID é exposta em logs operacionais. Você também pode obter essa ID por meio das APIs de chat.
participantId O ID é gerado para representar a conexão bidirecional entre um endpoint "Participant" (endpointType = "Server") e o servidor. Quando for callType = "P2P", há uma conexão direta entre dois pontos de extremidade e nenhum valor participantId é gerado.
participantStartTime O timestamp para o início da primeira tentativa de conexão do participante.
participantDuration A duração de cada conexão do participante em segundos, de participantStartTime até o carimbo de data/hora de quando a conexão foi encerrada.
participantEndReason O motivo do fim de uma conexão de participante. Ela contém códigos de erro do SDK de Chamada que o SDK emite (quando relevante) para cada valor participantId.
endpointId A ID exclusiva que representa cada ponto de extremidade conectado à chamada, em que endpointType define o tipo de ponto de extremidade. Quando o valor é null, a entidade conectada é o servidor dos Serviços de Comunicação (endpointType = "Server").

O valor endpointId às vezes pode persistir para o mesmo usuário em várias chamadas (correlationId) para clientes nativos. O número de valores endpointId determina o número de logs de resumo das chamadas. Um log de resumo distinto é criado para cada valor endpointId.
endpointType Esse valor descreve as propriedades de cada ponto de extremidade conectado à chamada. Pode conter "Server", "VOIP", "PSTN", "BOT" ou "Unknown".
sdkVersion A cadeia de caracteres de versão para a versão do SDK de Chamada dos Serviços de Comunicação que cada ponto de extremidade relevante usa (por exemplo, "1.1.00.20212500").
osVersion Uma cadeia de caracteres representando o sistema operacional e a versão de cada dispositivo de ponto de extremidade.
participantTenantId A ID do locatário da Microsoft associada à identidade do participante. O locatário pode ser o locatário do Azure que possui o recurso dos Serviços de Comunicação do Azure ou o locatário da Microsoft de uma identidade do Microsoft 365. Esse campo é usado para orientar a edição entre locatários.
participantType Descrição do participante como uma combinação de seu cliente (Serviços de Comunicação do Azure ou Teams) e sua identidade (Serviços de Comunicação do Azure ou Microsoft 365). Os valores possíveis incluem: Serviços de Comunicação do Azure (identidade dos Serviços de Comunicação do Azure e SDK dos Serviços de Comunicação do Azure), Teams (identidade do Teams e SDK dos Serviços de Comunicação do Azure na chamada ou reunião do Teams), Serviços de Comunicação do Azure como usuário do Microsoft 365 (identidade do Microsoft 365 e cliente dos Serviços de Comunicação do Azure) e aplicativos de Serviço de Voz do Teams.
pstnParticipantCallType Representa o tipo e a direção dos participantes PSTN, incluindo chamada de emergência, roteamento direto, transferência, encaminhamento e assim por diante.
ParticipantEndSubCode Representa o subcódigo de erro do SDK de Chamada que o SDK emite (quando relevante) para cada valor participantId.
ResultCategory Representa a categoria do participante que encerra a chamada. Pode ser um destes quatro valores: Success, ExpectedError, UnexpectedClientError, UnexpectedServerError.
DiagnosticOptions Esse valor permite que os desenvolvedores anexem marcas personalizadas à telemetria do cliente, as quais podem ser exibidas na seção Diagnóstico de Chamadas. Isso ajuda a identificar e solucionar problemas com mais eficiência. Para saber como adicionar marcas personalizadas a esse valor, consulte Tutorial sobre como adicionar marcas personalizadas à telemetria do cliente
CallUpdatesVersion Representa a versão de log, com números mais altos indicando a versão publicada mais recentemente.
callDebuggingInfo Esse valor contém um objeto JSON contendo pares chave-valor que representam propriedades internas da chamada usadas para fins de depuração da Microsoft.
TPE Esse valor indica que a chamada está associada a um cenário de integração do Telefone do Teams.

Códigos de erro

A propriedade participantEndReason contém um valor do conjunto de códigos de erro do SDK de chamada. Você pode consultar esses códigos para solucionar problemas detectados durante a chamada, para cada ponto de extremidade. Consulte a Solução de problemas com códigos de resposta de término de chamadas para SDK de Chamada, SDK de Automação de Chamadas, PSTN, SDK de Chat e SDK de SMS.

Dados de exemplo para vários tipos de chamada

Observação

Neste artigo, o P2P e as chamadas de grupo estão dentro do mesmo locatário por padrão. Todos os cenários de chamada entre locatários são especificados adequadamente ao longo do artigo.

Chamada P2P

Aqui estão os campos compartilhados para todos os logs em uma chamada P2P:

"time":                     "2021-07-19T18:46:50.188Z",
"resourceId":               "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId":            "aaaa0000-bb11-2222-33cc-444444dddddd",

Logs de atualizações de resumo das chamadas

Os logs de atualizações de resumo das chamadas compartilham informações de operação e categoria:

"operationName":            "CallSummary",
"operationVersion":         "1.0",
"category":                 "CallSummary",

Aqui está um resumo da chamada para o usuário de VoIP 1:

"properties": {
    "identifier":               "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "callStartTime":            "2021-07-19T17:54:05.113Z",
    "callDuration":             6,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",    
    "participantStartTime":     "2021-07-19T17:54:06.758Z",
    "participantDuration":      "5",
    "participantEndReason":     "0",
    "endpointId":               "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.1.0",
    "osVersion":                "Windows 10.0.17763 Arch: x64"
    "callupdatesversion":   "2"
}

Aqui está um resumo da chamada para o usuário de VoIP 2:

"properties": {
    "identifier":               "acs:7af14122-9ac7-4b81-80a8-4bf3582b42d0_06f9276d-8efe-4bdd-8c22-ebc5434903f0",
    "callStartTime":            "2021-07-19T17:54:05.335Z",
    "callDuration":             6,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",
    "participantStartTime":     "2021-07-19T17:54:06.335Z",
    "participantDuration":      "5",
    "participantEndReason":     "0",
    "endpointId":               "a5bd82f9-ac38-4f4a-a0fa-bb3467cdcc64",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.1.0.0",
    "osVersion":                "null"
    "callupdatesversion":   "2"
}

Aqui está um log de atualizações de resumo das chamadas entre locatários para o usuário de VoIP 1:

"properties": {
    "identifier":               "1e4c59e1-r1rr-49bc-893d-990dsds8f9f5",
    "callStartTime":            "2022-08-14T06:18:27.010Z",
    "callDuration":             520,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",
    "participantTenantId":      "02cbdb3c-155a-4b95-b829-6d56a45787ca",
    "participantStartTime":     "2022-08-14T06:18:27.010Z",
    "participantDuration":      "520",
    "participantEndReason":     "0",
    "endpointId":               "02cbdb3c-155a-4d98-b829-aaaaa61d44ea",
    "endpointType":             "VoIP",
    "sdkVersion":               "Redacted",
    "osVersion":                "Redacted"
    "callupdatesversion":   "2"
}

Aqui está um resumo de chamada para uma chamada PSTN:

Observação

Os logs de chamadas P2P ou de grupo têm versões do sistema operacional e do SDK redigidas independentemente de ser o locatário do participante ou o locatário do bot.

"properties": {
    "identifier": "b1999c3e-bbbb-4650-9b23-9999bdabab47",
    "callStartTime": "2022-08-07T13:53:12Z",
    "callDuration": 1470,
    "callType": "Group",
    "teamsThreadId": "19:36ec5177126fff000aaa521670c804a3@thread.v2",
    "participantId": " b25cf111-73df-4e0a-a888-640000abe34d",
    "participantStartTime": "2022-08-07T13:56:45Z",
    "participantDuration": 960,
    "participantEndReason": "0",
    "endpointId": "8731d003-6c1e-4808-8159-effff000aaa2",
    "endpointType": "PSTN",
    "sdkVersion": "Redacted",
    "osVersion": "Redacted"
    "callupdatesversion":   "2"
}

Chamadas em grupo

Os dados de uma chamada de grupo são gerados em três logs de atualizações de resumo de chamadas e seis logs de atualizações de diagnóstico de chamadas. Aqui estão os campos compartilhados para todos os logs na chamada:

"time":                     "2021-07-05T06:30:06.402Z",
"resourceId":               "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId":            "bbbb1111-cc22-3333-44dd-555555eeeeee",

Logs de atualizações de resumo das chamadas

Os logs de atualizações de resumo das chamadas compartilham informações de operação e categoria:

"operationName":            "CallSummary",
"operationVersion":         "1.0",
"category":                 "CallSummary",

Resumo da chamada para o ponto de extremidade de VoIP 1:

"properties": {
    "identifier":               "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-729f-ac00-343a0d00d975",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
    "participantStartTime":     "2021-07-05T06:16:44.235Z",
    "participantDuration":      "82",
    "participantEndReason":     "0",
    "endpointId":               "5ebd55df-ffff-ffff-89e6-4f3f0453b1a6",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.0.3",
    "osVersion":                "Darwin Kernel Version 18.7.0: Mon Nov 9 15:07:15 PST 2020; root:xnu-4903.272.3~3/RELEASE_ARM64_S5L8960X"
    "callupdatesversion":   "2"
}

Resumo da chamada para o ponto de extremidade de VoIP 3:

"properties": {
    "identifier":               "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-57c6-ac00-343a0d00d972",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLTk2ZDUtYTZlM2I2ZjgxOTkw@thread.v2",
    "participantId":            "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
    "participantStartTime":     "2021-07-05T06:16:40.240Z",
    "participantDuration":      "87",
    "participantEndReason":     "0",
    "endpointId":               "5ebd55df-ffff-ffff-ab89-19ff584890b7",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.0.3",
    "osVersion":                "Android 11.0; Manufacturer: Google; Product: redfin; Model: Pixel 5; Hardware: redfin"
    "callupdatesversion":   "2"
}

Segue um resumo da chamada para o endpoint PSTN 2:

"properties": {
    "identifier":               "null",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "515650f7-8204-4079-ac9d-d8f4bf07b04c",
    "participantStartTime":     "2021-07-05T06:17:10.447Z",
    "participantDuration":      "52",
    "participantEndReason":     "0",
    "endpointId":               "46387150-692a-47be-8c9d-1237efe6c48b",
    "endpointType":             "PSTN",
    "sdkVersion":               "null",
    "osVersion":                "null"
    "callupdatesversion":   "2"
}

Aqui está um log de atualizações de resumo de chamada entre locatários:

"properties": {
    "identifier":               "1e4c59e1-r1rr-49bc-893d-990dsds8f9f5",
    "callStartTime":            "2022-08-14T06:18:27.010Z",
    "callDuration":             912,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "aa1dd7da-5922-4bb1-a4fa-e350a111fd9c",
    "participantTenantId":      "02cbdb3c-155a-4b95-b829-6d56a45787ca",
    "participantStartTime":     "2022-08-14T06:18:27.010Z",
    "participantDuration":      "902",
    "participantEndReason":     "0",
    "endpointId":               "02cbdb3c-155a-4d98-b829-aaaaa61d44ea",
    "endpointType":             "VoIP",
    "sdkVersion":               "Redacted",
    "osVersion":                "Redacted"
    "callupdatesversion":   "2"
}

Aqui está um log de atualizações de resumo de chamada entre locatários com um bot como participante:


"properties": {
    "identifier":             "b1902c3e-b9f7-4650-9b23-9999bdabab47",
    "callStartTime":          "2022-08-09T16:00:32Z",
    "callDuration":            1470,
    "callType":               "Group",
    "teamsThreadId":         "19:meeting_MmQwZDcwYTQtZ000HWE6NzI4LTg1YTAtNXXXXX99999ZZZZZ@thread.v2",
    "participantId":           "66e9d9a7-a434-4663-d91d-fb1ea73ff31e",
    "participantStartTime":    "2022-08-09T16:14:18Z",
    "participantDuration":      644,
    "participantEndReason":    "0",
    "endpointId":             "69680ec2-5ac0-4a3c-9574-eaaa77720b82",
    "endpointType":           "Bot",
    "sdkVersion":             "Redacted",
    "osVersion":              "Redacted"
    "callupdatesversion":   "2"
}

Perguntas frequentes

Como armazenar logs?

A seção a seguir explica esse requisito.

Os logs dos Serviços de Comunicação do Azure não são armazenados na sua conta do Azure por padrão, portanto, você precisa começar a armazená-los para que as ferramentas como painel de insights de voz e vídeo e o diagnóstico de chamadas funcionem. Para coletar esses logs de chamadas, habilite uma configuração de diagnóstico que direcione os dados de chamada para um workspace do Log Analytics.

Os dados não são armazenados retroativamente, portanto, você começa a capturar logs de chamadas somente depois de definir a configuração de diagnóstico.

Siga as instruções para adicionar configurações de diagnóstico ao seu recurso em Habilitar logs via Configurações de Diagnóstico no Azure Monitor. Recomendamos que você colete todos os logs inicialmente. Depois de entender as funcionalidades no Azure Monitor, determine quais logs você deseja manter e por quanto tempo. Ao adicionar sua configuração de diagnóstico, você precisará selecionar os logs. Para coletar todos os logs, selecione allLogs.

O volume, a retenção e a utilização de dados no Log Analytics no Azure Monitor são cobrados por meio de medidores de dados existentes do Azure. Recomendamos que você monitore o uso de dados e as políticas de retenção em relação às considerações de custo, conforme necessário. Para obter mais informações, confira Como controlar os custos.

Se você tiver várias IDs de recurso dos Serviços de Comunicação do Azure, deverá habilitar essas configurações para cada ID de recurso.

Próximas etapas