Partilhar via


Esquema de log de atualizações de resumo de chamadas

A única diferença nas propriedades entre o esquema de log de atualizações de resumo de chamadas e o esquema de log de resumo de chamadas é a propriedade adicionalCallUpdatesVersion. A CallUpdatesVersion propriedade indica o quão recente é o log. O esquema de log de atualizações de resumo de chamadas tem latência menor do que o esquema de log de resumo de chamadas, ele alcança essa baixa latência enviando propriedades de esquema assim que elas podem ser enviadas. Por outro lado, o esquema de log de resumo de chamadas não envia um esquema de log até que todo o esquema de log tenha concluído a criação interna da Microsoft.

O log de atualizações de resumo de chamadas contém dados para ajudá-lo a identificar as principais propriedades de todas as chamadas. Um log de atualizações de resumo de chamada diferente é criado para cada participantId valor (ou endpointId para chamadas ponto a ponto [P2P]) na chamada.

Para cada participante de uma chamada, os Serviços de Comunicação criam um log de atualizações de resumo de chamada distinto. Se alguém voltar a participar numa chamada, esse participante tem o mesmo EndpointId valor, mas um valor diferente ParticipantId . Esse ponto de extremidade pode então ter dois logs de atualizações de resumo de chamadas.

Como usar os registros de chamadas

Recomendamos que você colete todos os logs de chamadas disponíveis em um recurso de análise de log para que possa 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 lançamos.

Existem duas ferramentas principais que pode utilizar para monitorizar as suas chamadas e melhorar a qualidade das chamadas.

Recomendamos usar os painéis do painel de insights de voz e vídeo para iniciar investigações de qualidade e usar diagnósticos de chamadas, conforme necessário, para explorar chamadas individuais quando precisar de detalhes granulares.

Conceitos de dados

Importante

Você deve coletar logs se quiser analisá-los. Para saber mais, consulte: Como faço para armazenar 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. Os dados da sua 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 de chamadas, consulte sempre o número mais alto CallUpdatesVersion para garantir que você tenha as informações mais atualizadas. Sempre que os dados da chamada são atualizados, uma nova versão do log é criada contendo as informações mais atualizadas. Por exemplo, quanto maior o CallUpdatesVersion número, mais recente a atualização. Isso significa que a versão 3 é mais recente e inclui alterações mais recentes em comparação com a versão 1.

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

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 podem conter null valores, se mais informações estiverem 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 os nossos servidores, ou algo tão simples como um utilizador fechar a tampa do seu portátil após a chamada antes de os dados do cliente serem enviados e reabri-lo horas (ou dias) depois.

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

Definições de dados

Esquema de log de atualizações de resumo de chamadas

Importante

As informações do participante no log de atualizações de resumo de chamadas variam de acordo com o locatário participante. A versão do SDK e a versão do sistema operacional serão editadas se o participante não estiver dentro do mesmo locatário (também chamado de locatário cruzado) 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 recurso para participar e colaborar durante uma chamada.

Esta tabela descreve cada propriedade.

Property Description
time O carimbo de data/hora (UTC) quando o log foi gerado.
operationName A operação associada ao registro de log.
operationVersion O api-version valor associado à operação, se a operação foi executada operationName através de uma API. Se nenhuma API corresponder a esta operação, a versão representa a versão da operação, caso as propriedades associadas à operação mudem no futuro.
category A categoria de log do evento. Essa propriedade é a granularidade na qual você pode habilitar ou desabilitar logs em um recurso. As propriedades que aparecem dentro do properties blob de um evento são as mesmas dentro de uma categoria de log e tipo de recurso.
correlationId O ID exclusivo de uma chamada. Ele identifica eventos correlacionados de todos os participantes e pontos de extremidade que se conectam durante uma única chamada, e você pode usá-lo para unir dados de logs diferentes. Se você precisar abrir um caso de suporte com a Microsoft, poderá usar o correlationId valor para identificar facilmente a chamada que está solucionando.
identifier O ID exclusivo 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 esse 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 final da última conexão entre dois pontos de extremidade.
callType O tipo de chamada. Contém ou "P2P""Group". Uma "P2P" chamada é uma conexão direta 1:1 entre apenas dois pontos de extremidade que não são do servidor. Uma "Group" chamada é uma chamada que tem mais de dois pontos de extremidade ou é criada como "Group" chamada antes da conexão.
teamsThreadId O ID do thread do Teams. Esse ID é relevante somente quando a chamada é organizada como uma reunião do Teams. Em seguida, representa o caso de uso da interoperabilidade entre o Microsoft Teams e os Serviços de Comunicação do Azure.

Esse ID é exposto em logs operacionais. Você também pode obter esse ID através das APIs de bate-papo.
participantId O ID gerado para representar a conexão bidirecional entre um "Participant" ponto de extremidade (endpointType = "Server") e o servidor. Quando callType = "P2P", há uma conexão direta entre dois pontos de extremidade e nenhum participantId valor é gerado.
participantStartTime O carimbo de data/hora para o início da primeira tentativa de conexão do participante.
participantDuration A duração de cada conexão de participante em segundos, desde o carimbo de participantStartTime data/hora quando a conexão terminou.
participantEndReason O motivo do fim de uma conexão de participante. Ele contém códigos de erro do SDK de chamada que o SDK emite (quando relevante) para cada participantId valor.
endpointId A ID exclusiva que representa cada ponto de extremidade conectado à chamada, onde 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").

Às vezes, endpointId o valor pode persistir para o mesmo usuário em várias chamadas (correlationId) para clientes nativos. O número de endpointId valores determina o número de logs de resumo de chamadas. Um log de resumo distinto é criado para cada endpointId valor.
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 que representa 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. Este campo é usado para orientar a redaçã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 cliente do Teams), Serviços de Comunicação do Azure como usuário externo do Teams (identidade dos Serviços de Comunicação do Azure 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 Teams Voice Apps.
pstnParticipantCallType Representa o tipo e a direção dos participantes PSTN, incluindo chamadas de emergência, roteamento direto, transferência, encaminhamento e assim por diante.
ParticipantEndSubCode Representa o subcódigo de erro Chamando o SDK que o SDK emite (quando relevante) para cada participantId valor.
ResultCategory Representa a categoria do participante que encerra a chamada. Pode ser um destes 4 valores: Success, ExpectedError, UnexpectedClientError, UnexpectedServerError.
DiagnosticOptions Esse valor permite que os desenvolvedores anexem tags personalizadas à telemetria do cliente, que podem ser visualizadas na seção Diagnóstico de chamadas. Isso ajuda a identificar e solucionar problemas de forma mais eficaz. Para saber como adicionar tags personalizadas a esse valor, consulte Tutorial sobre como adicionar tags personalizadas à telemetria do cliente
CallUpdatesVersion Representa a versão de log, com números mais altos indicando a versão publicada mais recentemente.

Códigos de erro

A participantEndReason propriedade contém um valor do conjunto de códigos de erro Calling SDK. Você pode consultar esses códigos para solucionar problemas que foram detetados durante a chamada, para cada ponto de extremidade. Consulte Solução de problemas de códigos de resposta de fim de chamada para SDK de chamada, SDK de automação de chamadas, PSTN, SDK de bate-papo e SDK de SMS.

Dados de exemplo para vários tipos de chamada

Nota

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

Chamada P2P

Aqui estão 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",

Registros de atualizações de resumo de chamadas

Registros de atualizações de resumo de chamadas, compartilhamento de informações de operação e categoria:

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

Aqui está um resumo de chamada para o usuário 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 de chamada para o usuário 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 de chamadas entre locatários para o usuário 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:

Nota

Os registros de chamadas P2P ou de grupo têm versões do sistema operacional e do SDK editadas, 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 diagnóstico de chamadas. Aqui estão 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",

Registros de atualizações de resumo de chamadas

Registros de atualizações de resumo de chamadas, compartilhamento de informações de operação e categoria:

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

Aqui está um resumo de chamada para o ponto de extremidade 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"
}

Aqui está um resumo de chamada para o ponto de extremidade 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"
}

Aqui está um resumo de chamada para o ponto de extremidade 2 da PSTN:

"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 chamadas 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 chamadas 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 mais frequentes

Como faço para armazenar logs?

A secção seguinte explica este requisito.

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

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

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

O volume, a retenção e o uso de dados no Log Analytics no Azure Monitor são cobrados por meio de medidores de dados existentes do Azure. Recomendamos que você monitore suas políticas de retenção e uso de dados para considerações de custo, conforme necessário. Para obter mais informações, consulte Controlando 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óximos passos