Logs de chamada de voz e de vídeo dos Serviços de Comunicação do Azure

Os Serviços de Comunicação do Azure fornecem funcionalidades de log que você pode usar para monitorar e depurar a solução dos Serviços de Comunicação. Configurar 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.

Conceitos de dados

As descrições de alto nível a seguir dos conceitos de dados são específicas para chamada de voz e chamada de vídeo. É importante revisar esses conceitos para que você possa entender o significado dos dados capturados nos logs.

Entidades e IDs

Familiarize-se com os seguintes termos:

  • Chamada: conforme representado nos dados, uma chamada é uma abstração representada por correlationId. Os valores de correlationId são exclusivos para cada chamada e são associados ao tempo com base em callStartTime e callDuration.

  • Participante: representa a conexão entre um ponto de extremidade e o servidor. Um participante (participantId) só está presente quando há uma chamada em grupo.

  • Ponto de extremidade: a entidade mais exclusiva, representada por endpointId. Cada chamada é um evento que contém dados de dois ou mais pontos de extremidade. Os pontos de extremidade representam os participantes na chamada.

    EndpointType informa se o ponto de extremidade é um usuário humano (PSTN ou VoIP), um bot ou o servidor que está gerenciando vários participantes em uma chamada. Quando um valor de endpointType é "Server", o ponto de extremidade não recebe uma ID exclusiva. Você pode analisar endpointType e o número de valores endpointId para determinar quantos usuários e outros participantes não humanos (bots e servidores) ingressam em uma chamada.

    Os SDKs nativos para Android e iOS reutilizam o mesmo valor endpointId para um usuário em várias chamadas, para que você possa entender as experiências entre as sessões. Esse processo difere dos pontos de extremidade baseados na Web, que sempre geram um novo valor endpointId para cada nova chamada.

  • Fluxo: a entidade mais granular. Há um fluxo para cada direção (entrada ou saída) e um valor mediaType (por exemplo, Audio ou Video).

Definições de dados

Uso de esquema de log

Propriedade Descrição
Timestamp O carimbo de data/hora (UTC) quando o log foi gerado.
Operation Name A operação associada ao registro de log.
Operation Version O valor api-version associado à operação, se a operação Operation Name 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.
Correlation ID 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.
Record ID A ID exclusiva de um registro de uso.
Usage Type O modo de uso (por exemplo, Chat, PSTN ou NAT).
Unit Type 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 das chamadas

O log de resumo das chamadas contém dados para ajudar a identificar as principais propriedades de todas as chamadas. Um log de resumo das chamadas diferente é criado para cada valor participantId (ou endpointId para chamadas de ponto a ponto [P2P]) na chamada.

Importante

As informações do participante no log de 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.

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. A propriedade é a granularidade na qual você pode habilitar ou desabilitar os logs em determinado 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. Isso identifica eventos correlacionados de todos os participantes e pontos de extremidade que se conectam durante uma única chamada e você pode usar isso para ingressar 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 o final da última conexão entre dois pontos de extremidade.
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 A ID é gerada para representar a conexão de duas vias entre um ponto de extremidade "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 carimbo de data/hora 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.
pstnPartcipantCallType 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.

Esquema de log de diagnóstico de chamadas

Os logs de diagnóstico de chamadas fornecem informações importantes sobre os pontos de extremidade e as transferências de mídia para cada participante. Isso também fornece medidas que ajudam você a entender problemas de qualidade.

Para cada ponto de extremidade em uma chamada, é criado um log de diagnóstico de chamada distinto para fluxos de mídia de saída (áudio ou vídeo, por exemplo) entre os pontos de extremidade. Em uma chamada P2P, cada log contém dados que tem relação com cada um dos fluxos de saída associados a cada ponto de extremidade. Em chamadas em grupo, o participantId serve como um identificador chave para unir os logs de saída relacionados em uma conexão participante distinta. Os logs de diagnóstico de chamadas permanecem intactos e são os mesmos, independentemente do locatário participante.

Observação

Neste artigo, as chamadas P2P e de grupo estão dentro do mesmo locatário, por padrão, para todos os cenários de chamada que são entre locatários. Isso é especificado adequadamente ao longo do artigo.

Propriedade Descrição
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 propriedade é a granularidade na qual você pode habilitar ou desabilitar os logs em determinado 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. Ela identifica eventos correlacionados de todos os participantes e pontos de extremidade que se conectam durante uma única chamada. 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.
participantId ID gerada para representar a conexão de duas vias entre um ponto de extremidade "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.
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 objeto do Teams ou uma ID de bot do Teams. Você pode usar essa ID para correlacionar eventos do usuário em logs.
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. O EndpointId pode persistir para o mesmo usuário em várias chamadas (correlationId) para clientes nativos, mas é exclusivo para cada chamada quando o cliente for um navegador da Web.
endpointType O valor que descreve as propriedades de cada instância endpointId. Pode conter "Server", "VOIP", "PSTN", "BOT", "Voicemail", "Anonymous" ou "Unknown".
mediaType O valor de cadeia de caracteres que descreve o tipo de mídia que está sendo transmitida entre pontos de extremidade em cada fluxo. Os valores possíveis incluem "Audio", "Video", "VBSS" (compartilhamento de tela baseado em vídeo) e "AppSharing".
streamId Um inteiro não exclusivo que você pode usar junto ao mediaType para identificar exclusivamente fluxos do mesmo valor participantId.
transportType O valor da cadeia de caracteres que descreve o protocolo de transporte de rede para cada valor participantId. Pode conter "UDP", "TCP" ou "Unrecognized". "Unrecognized" indica que o sistema não pôde determinar se o tipo de transporte era TCP ou UDP.
roundTripTimeAvg O tempo médio que é necessário para obter um pacote IP de um ponto de extremidade para outro dentro de um período participantDuration. Esse atraso de propagação de rede está relacionado à distância física entre os dois pontos, a velocidade da luz e a sobrecarga que os vários roteadores sofrem em meio a isso.

A latência é medida como um tempo unidirecional ou tempo de ida e volta (RTT). Seu valor é expresso em milissegundos. Um RTT maior que 500 ms está afetando negativamente a qualidade da chamada.
roundTripTimeMax O RTT máximo (em milissegundos) medido para cada fluxo de mídia durante um período participantDuration em uma chamada de grupo ou durante um período callDuration em uma chamada P2P.
jitterAvg Essa é a alteração média no atraso entre pacotes sucessivos. Os Serviços de Comunicação do Azure podem se adaptar a alguns níveis de tremulação por meio do buffer. Quando o tremulação excede o buffer, que é aproximadamente em um momento jitterAvg maior que 30 ms, ele pode afetar negativamente a qualidade. Os pacotes que chegam em diferentes velocidades fazem com que a voz de um locutor pareça robótica.

Essa métrica é medida para cada fluxo de mídia durante o período participantDuration em uma chamada de grupo ou durante o período callDuration em uma chamada P2P.
jitterMax O valor de instabilidade máximo medido entre pacotes para cada fluxo de mídia. As intermitências em condições de rede podem causar problemas no fluxo de tráfego de áudio/vídeo.
packetLossRateAvg O percentual médio de pacotes que são perdidos. A perda de pacotes afeta diretamente a qualidade do áudio. A perda de pacotes pequenos e individuais quase não têm impacto, enquanto as perdas de intermitência consecutivas fazem com que o áudio seja completamente cortado. Os pacotes que estão sendo descartados e não chegam ao destino pretendido causam lacunas na mídia. Essa situação resulta em sílabas e palavras perdidas, junto a vídeos e compartilhamentos cortados.

Uma taxa de perda de pacotes maior que 10% (0,1) provavelmente está tendo um impacto negativo na qualidade. Essa métrica é medida para cada fluxo de mídia durante o período participantDuration em uma chamada de grupo ou durante o período callDuration em uma chamada P2P.
packetLossRateMax Esse valor representa a taxa máxima de perda de pacote (porcentagem) para cada fluxo de mídia durante o período participantDuration em uma chamada de grupo ou durante o período callDuration em uma chamada P2P. As intermitências em condições de rede podem causar problemas no fluxo de tráfego de áudio/vídeo.
JitterBufferSizeAvg O tamanho médio do buffer de instabilidade durante cada fluxo de mídia. Um buffer de instabilidade é uma área de dados compartilhada em que os pacotes de voz podem ser coletados, armazenados e enviados para o processador de voz em intervalos igualmente estabelecidos. O buffer de instabilidade é usado para combater os efeitos da instabilidade.

Buffers de instabilidade podem ser estáticos ou dinâmicos. Os buffers de instabilidade estáticos são definidos com um tamanho fixo, enquanto os buffers dinâmicos de instabilidade podem ajustar seu tamanho com base em condições de rede. O objetivo do buffer de instabilidade é fornecer um fluxo suave e ininterrupto de dados de áudio e vídeo para o usuário.

No SDK da Web, essa JitterBufferSizeAvg é o valor médio do jitterBufferDelay durante a chamada. O jitterBufferDelay tem a duração de uma amostra de áudio ou de um quadro de vídeo que permanece no buffer de tremulação.

Normalmente, quando o valor JitterBufferSizeAvg é maior que 200 ms, ele afeta negativamente a qualidade.
JitterBufferSizeMax O tamanho máximo do buffer de instabilidade medido durante a duração de cada fluxo de mídia.

Normalmente, quando esse valor é maior que 200 ms, ele afeta negativamente a qualidade.
HealedDataRatioAvg A porcentagem média de pacotes de dados perdidos ou danificados reconstruídos ou recuperados com êxito pela recuperação durante a duração do fluxo de áudio. A taxa de dados recuperada é uma medida da eficácia das técnicas de correção de erro usadas em sistemas VoIP.

Quando esse valor é maior que 0,1 (10%), consideramos o fluxo como de má qualidade.
HealedDataRatioMax A taxa máxima de dados recuperados medida durante a duração de cada fluxo de mídia.

Quando esse valor é maior que 0,1 (10%), consideramos o fluxo como de má qualidade.
VideoFrameRateAvg O número médio de quadros de vídeo transmitidos por segundo durante uma chamada de compartilhamento de vídeo/tela. A taxa de quadros de vídeo pode afetar a qualidade e a suavidade do fluxo de vídeo, pois taxas de quadros mais altas geralmente resultam em movimento mais suave e fluido. A taxa de quadros padrão para vídeo WebRTC normalmente é de 30 quadros por segundo (fps), embora a taxa de quadros possa variar dependendo das condições de rede e implementação específicas.

A qualidade do fluxo é considerada ruim quando esse valor é menor que 7 para fluxo de vídeo ou menos de 1 para fluxo de compartilhamento de telas.
RecvResolutionHeight A média do tamanho vertical do fluxo de vídeo de entrada que é transmitido durante uma chamada de compartilhamento de vídeo/tela. Isso é medido em pixels e é um dos fatores que determina a resolução geral e a qualidade do fluxo de vídeo. A resolução específica usada pode depender dos recursos dos dispositivos e das condições de rede envolvidas na chamada.

A qualidade do fluxo é considerada ruim quando esse valor é menor que 240 para fluxo de vídeo ou menos de 768 para fluxo de compartilhamento de telas.
RecvFreezeDurationPerMinuteInMs A duração média do congelamento em milissegundos por minuto para o fluxo de compartilhamento de vídeo/telas de entrada. Normalmente, os congelamentos acontecem devido a uma condição de rede ruim e podem degradar a qualidade do fluxo.

A qualidade do fluxo é considerada ruim quando esse valor é maior que 6.000 ms para fluxo de vídeo ou maior que 25.000 ms para fluxo de compartilhamento de telas.
PacketUtilization Os pacotes enviados ou recebidos para um determinado fluxo de mídia.

Normalmente, quanto maior a chamada, maior será o valor. Se esse valor é zero, isso pode indicar que a mídia não está fluindo.
VideoBitRateAvg A taxa média de bits (bits por segundo) para um fluxo de vídeo ou de compartilhamento de tela.

Um valor de taxa de bits baixo pode indicar um problema de rede ruim. A taxa de bits mínima (largura de banda) necessária pode ser encontrada aqui: Largura de banda de rede.
VideoBitRateMax A taxa de bits máxima (bits por segundo) para um fluxo de vídeo ou de compartilhamento de tela.

Um valor de taxa de bits baixo pode indicar um problema de rede ruim. A taxa de bits mínima (largura de banda) necessária pode ser encontrada aqui: Largura de banda de rede.
StreamDirection A direção do fluxo de mídia. É de Entrada ou de Saída.
CodecName O nome do codec usado para processar fluxos de mídia. Isso pode ser OPUS, G722, H264S, SATIN e assim por diante.

Esquema de log de operações de clientes de chamadas

O log de operações de clientes de chamadas fornece informações do lado do cliente sobre os pontos de extremidade de chamada e os participantes envolvidos em uma chamada. Esses logs estão atualmente em versão prévia e mostram eventos de cliente que ocorreram em uma chamada e quais ações um cliente toma durante uma chamada.

Esse log fornece informações detalhadas sobre as ações executadas durante uma chamada e pode ser usado para visualizar e investigar problemas de chamada usando o diagnóstico de chamadas para o recurso dos Serviços de Comunicação do Azure. Saiba mais sobre o diagnóstico de chamadas

Propriedade Descrição
CallClientTimeStamp O carimbo de data/hora para quando uma operação ocorreu no SDK em UTC.
OperationName O nome da operação disparada no SDK de chamada.
CallId A ID exclusiva para uma chamada. Isso identifica eventos correlacionados de todos os participantes e pontos de extremidade que se conectam durante uma única chamada e você pode usar isso para ingressar dados de logs diferentes. É semelhante à correlationId no log de resumo de chamadas e no log de diagnóstico de chamadas.
ParticipantId O identificador exclusivo para cada etapa de chamada (em chamadas de grupo) ou participante de chamada (em chamadas de ponto a ponto). Essa ID é o principal ponto de correlação entre os logs CallSummary, CallDiagnostic, CallClientOperations e CallClientMediaStats.
OperationType Operação de chamada do cliente.
OperationId Um GGUID exclusivo que identifica uma operação do SDK.
DurationMs O tempo que uma operação do SDK de Chamada leva para falhar ou ter êxito.
ResultType Campo que descreve o êxito ou a falha de uma operação.
ResultSignature HTTP como falha ou código de êxito (200, 500).
SdkVersion A versão do SDK de Chamada que está sendo usada.
UserAgent A cadeia de caracteres do agente de usuário padrão com base no navegador ou no SDK de Chamada da plataforma é usada.
ClientInstanceId Um GGUID exclusivo que identifica o objeto CallClient.
EndpointId ID exclusiva que representa cada ponto de extremidade conectado à chamada, em que o endpointType define o ponto de extremidade. Quando o valor é nulo, a entidade conectada é o servidor dos Serviços de Comunicação (endpointType = "Server").

Às vezes, o valor endpointId 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 de chamadas. Um log de resumo distinto é criado para cada valor endpointId.
OperationPayload Um conteúdo dinâmico que varia de acordo com a operação fornecendo detalhes mais específicos da operação.

Chamar esquema de log de estatísticas de mídia do cliente

O log chamar a série temporal de estatísticas de mídia do cliente fornece informações do lado do cliente sobre os fluxos de mídia entre participantes individuais envolvidos em uma chamada. Atualmente, esses logs estão em versão prévia limitada e fornecem dados detalhados de série temporal nos vapores de mídia de áudio, vídeo e compartilhamento de tela entre os participantes com um intervalo de agregação padrão de 10 segundos. Os logs contêm informações de série temporal granular sobre o tipo de fluxo de mídia, direção, codec e propriedades de taxa de bits (por exemplo, max, min, média).

Esse log fornece informações mais detalhadas do que o log de Diagnóstico de Chamadas para entender a qualidade dos compartilhamentos de mídia entre os participantes. Ele pode ser usado para visualizar e investigar problemas de qualidade em suas chamadas por meio do Diagnóstico de Chamadas para o Recurso dos Serviços de Comunicação do Azure. Saiba mais sobre o diagnóstico de chamadas

Propriedade Descrição
OperationName A operação associada ao registro de log.
CallId A ID exclusiva para uma chamada. Isso identifica eventos correlacionados de todos os participantes e pontos de extremidade que se conectam durante uma única chamada e você pode usar isso para ingressar dados de logs diferentes. É semelhante à correlationId no log de resumo de chamadas e no log de diagnóstico de chamadas.
CallClientTimeStamp O carimbo de data/hora quando as estatísticas de mídia são registradas.
MetricName O nome das estatísticas de mídia, como Bitrate, JitterInMs, PacketsPerSecond e assim por diante.
Count O número de pontos de dados amostrados em um determinado carimbo de data/hora.
Sum A soma dos valores de métrica de todos os pontos de dados amostrados.
Average O valor médio da métrica dos pontos de dados amostrados. Média = Soma/Contagem.
Minimum O mínimo de valores de métrica de todos os pontos de dados amostrados.
Maximum O máximo de valores de métrica de todos os pontos de dados amostrados.
MediaStreamDirection A direção do fluxo de mídia. Pode ser send ou receive.
MediaStreamType O tipo do fluxo de mídia. Pode ser video, audio ou screen.
MediaStreamCodec O codec usado para codificar/decodificar o fluxo de mídia, como H264, OPUS, VP8 e assim por diante.
ParticipantId A ID exclusiva gerada para representar cada ponto de extremidade na chamada.
ClientInstanceId A ID exclusiva representando o objeto Call Client criado no SDK de chamada.
EndpointId A ID exclusiva que representa cada ponto de extremidade que está conectado à chamada. EndpointId pode persistir para o mesmo usuário em várias chamadas (callIds) para clientes nativos, mas é exclusivo para cada chamada quando o cliente for um navegador da Web. No momento EndpointId, não está instrumentado neste log. Quando implementado, isso corresponde aos valores nos logs de CallSummary/Diagnostics
RemoteParticipantId A ID exclusiva que representa o ponto de extremidade remoto no fluxo de mídia. Por exemplo, um usuário pode renderizar vários fluxos de vídeo para os outros usuários na mesma chamada. Cada fluxo de vídeo tem um RemoteParticipantId diferente.
RemoteEndpointId O mesmo que EndpointId, mas representa o usuário no lado remoto do fluxo.
MediaStreamId Uma ID exclusiva que representa cada fluxo de mídia na chamada. MediaStreamId não está instrumentado em clientes no momento. Quando implementado, ele corresponde à coluna streamId nos logs de CallDiagnostics.
AggregationIntervalSeconds O intervalo de tempo para agregar as estatísticas de mídia. Atualmente, no SDK de chamada, amostras de métricas de mídia são obtidas a cada 1 segundo e, quando relatamos no log, agregamos todas as amostras a cada 10 segundos. Portanto, cada linha nesta tabela tem 10 pontos de amostragem, no máximo.

P2P versus chamadas em grupo

Há dois tipos de chamadas, conforme representado por callType:

  • Chamadas P2P (ponto a ponto): uma conexão entre apenas dois pontos de extremidade, sem nenhum ponto de extremidade de servidor. As chamadas P2P são iniciadas como uma chamada entre esses pontos de extremidade e não são criadas como um evento de chamada em grupo antes da conexão.

    Diagrama mostrando uma chamada P2P em dois pontos de extremidade.

  • Chamada de grupo: qualquer chamada com mais de dois pontos de extremidade conectados. As chamadas em grupo incluem um ponto de extremidade do servidor, e a conexão entre cada ponto de extremidade e o servidor. As chamadas P2P que adicionam outro ponto de extremidade durante a chamada deixam de ser P2P e se tornam uma chamada em grupo. Você pode determinar a linha do tempo de quando cada ponto de extremidade ingressou na chamada usando as métricas participantStartTime e participantDuration.

    Diagrama mostrando uma chamada de grupo em vários pontos de extremidade.

Estrutura de log

Os Serviços de Comunicação do Azure criam quatro tipos de logs:

  • Logs de resumo de chamadas contêm informações básicas sobre a chamada, incluindo todas as IDs relevantes, os carimbos de data/hora, os pontos de extremidade e as informações do SDK. Para cada participante em uma chamada, os Serviços de Comunicação criam um log de resumo de chamadas distinto.

    Se alguém reingressar em uma chamada, esse participante terá o mesmo valor EndpointId, mas um valor ParticipantId diferente. Esse ponto de extremidade pode ter dois logs de resumo de chamadas.

  • Logs de diagnóstico de chamadas contêm informações sobre o fluxo, bem como um conjunto de métricas que indicam a qualidade das medidas de experiência. Para cada EndpointId em uma chamada (incluindo o servidor), os Serviços de Comunicação do Azure criam um log de diagnóstico de chamada distinto para cada fluxo de mídia (áudio ou vídeo, por exemplo) entre pontos de extremidade.

  • Logs de operações de clientes de chamadas: contêm eventos detalhados do cliente de chamada. Esses eventos de log são gerados para cada EndpointId em uma chamada e o número de logs de eventos gerados depende das operações executadas pelo participante durante a chamada.

  • Chamar logs de estatísticas de mídia do cliente: contêm valores detalhados de fluxo de mídia. Esses logs são gerados para cada fluxo de mídia em uma chamada. Para cada EndpointId em uma chamada (incluindo o servidor), os Serviços de Comunicação do Azure criam um log distinto para cada fluxo de mídia (áudio ou vídeo, por exemplo) entre pontos de extremidade. O volume de dados gerados em cada log depende da duração da chamada e do número de fluxos de mídia na chamada.

Em uma chamada P2P, cada log contém dados que tem relação com cada um dos fluxos de saída associados a cada ponto de extremidade. Em uma chamada de grupo, cada fluxo associado a endpointType = "Server" cria um log que contém dados para os fluxos de entrada. Todos os outros fluxos criam logs que contêm dados para os fluxos de saída para todos os pontos de extremidade que não são de servidor. Em chamadas de grupo, use o valor participantId como a chave para unir os logs de entrada e saída relacionados a uma conexão de participante distinta.

Exemplo: chamada P2P

O diagrama a seguir representa dois pontos de extremidade conectados diretamente em uma chamada P2P. Neste exemplo, os Serviços de Comunicação criam dois logs de resumo de chamadas (um para cada valor participantID) e quatro logs de diagnóstico de chamadas (um para cada fluxo de mídia).

Para os participantes do cliente de chamada do Serviços de Comunicação do Azure, há também uma série de logs de operações de cliente de chamada e logs de série temporal de estatísticas de mídia do cliente. O número exato desses logs depende de que tipo de operações do SDK são chamadas e da duração da chamada.

Diagrama mostrando uma chamada P2P dentro do mesmo locatário.

Exemplo: chamada de grupo

O diagrama a seguir representa um exemplo de chamada de grupo com três valores participantId (o que significa três participantes) e um ponto de extremidade do servidor. Vários valores para endpointId podem aparecer potencialmente em vários participantes, por exemplo, quando eles reencontram uma chamada do mesmo dispositivo. Os Serviços de Comunicação criam um log de resumo de chamadas para cada valor participantId. Ele cria quatro logs de diagnóstico de chamadas: um para cada fluxo de mídia por participantId.

Para os Serviços de Comunicação do Azure chamar os participantes do cliente, os logs de operações de cliente de chamada são iguais às chamadas P2P. Para cada participante que usa o SDK de chamada, há uma série de logs de operações de cliente de chamada.

Para os participantes do cliente de chamada do Serviços de Comunicação do Azure, os logs de operações de cliente de chamada e logs de série temporal de estatísticas de mídia do cliente são os mesmos que nas chamadas P2P. Para cada participante que usa o SDK de chamada, há uma série de logs de operações de cliente de chamada e chamará logs de série temporal de estatísticas de mídia do cliente.

Diagrama mostrando uma chamada de grupo dentro do mesmo locatário.

Exemplo: chamada P2P entre locatários

O diagrama a seguir representa dois participantes em vários locatários conectados diretamente em uma chamada P2P. Neste exemplo, os Serviços de Comunicação criam um log de resumo de chamadas (um para cada participante) com versões redigidas do sistema operacional e do SDK. Os Serviços de Comunicação também criam quatro logs de diagnóstico de chamada (um para cada fluxo de mídia). Cada log contém dados relacionados ao fluxo de saída de participantID.

Diagrama mostrando uma chamada P2P entre locatários.

Exemplo: chamada de grupo entre locatários

O diagrama a seguir representa um exemplo de chamada de grupo com três valores participantId entre vários locatários. Os Serviços de Comunicação criam um log de resumo de chamadas para cada participante com versões redigidas do sistema operacional e do SDK. Os Serviços de Comunicação também criam quatro logs de diagnóstico de chamada relacionados a cada valor participantId (um para cada fluxo de mídia).

Diagrama mostrando uma chamada de grupo entre locatários.

Observação

Esta versão dá suporte apenas aos logs de diagnóstico de saída. As versões do sistema operacional e do SDK associadas ao bot e ao participante podem ser redigidas porque os Serviços de Comunicação tratam identidades de participantes e bots da mesma maneira.

Dados de exemplo

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":            "8d1a8374-344d-4502-b54b-ba2d6daaf0ae",

Logs de resumo de chamadas

Logs de resumo da 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"
}

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

Aqui está um log de resumo de 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"
}

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

Logs de diagnóstico de chamadas

Chamar informações de operação de compartilhamento de logs de diagnóstico:

"operationName":            "CallDiagnostics",
"operationVersion":         "1.0",
"category":                 "CallDiagnostics",

Aqui está um log de diagnóstico para fluxo de áudio do ponto de extremidade de VoIP 1 para o ponto de extremidade de VoIP 2:

"properties": {
    "identifier":           "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "participantId":        "null",
    "endpointId":           "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":         "VoIP",
    "mediaType":            "Audio",
    "streamId":             "1000",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "82",
    "roundTripTimeMax":     "88",
    "jitterAvg":            "1",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Aqui está um log de diagnóstico para fluxo de áudio do ponto de extremidade de VoIP 2 para o ponto de extremidade de VoIP 1:

"properties": {
    "identifier":           "acs:7af14122-9ac7-4b81-80a8-4bf3582b42d0_06f9276d-8efe-4bdd-8c22-ebc5434903f0",
    "participantId":        "null",
    "endpointId":           "a5bd82f9-ac38-4f4a-a0fa-bb3467cdcc64",
    "endpointType":         "VoIP",
    "mediaType":            "Audio",
    "streamId":             "1363841599",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "78",
    "roundTripTimeMax":     "84",
    "jitterAvg":            "1",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Aqui está um log de diagnóstico para fluxo de vídeo do ponto de extremidade de VoIP 1 para o ponto de extremidade de VoIP 2:

"properties": {
    "identifier":           "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "participantId":        "null",
    "endpointId":           "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":         "VoIP",
    "mediaType":            "Video",
    "streamId":             "2804",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "103",
    "roundTripTimeMax":     "143",
    "jitterAvg":            "0",
    "jitterMax":            "4",
    "packetLossRateAvg":    "3.146336E-05",
    "packetLossRateMax":    "0.001769911"
}

Chamada em grupo

Os dados de uma chamada de grupo são gerados em três logs de resumo de chamadas e seis logs 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":            "341acde7-8aa5-445b-a3da-2ddadca47d22",

Logs de resumo de chamadas

Logs de resumo da 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"
}

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

Resumo da chamada para o ponto de extremidade de 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"
}

Aqui está um log 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"
}

Aqui está um log 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"
}

Logs de diagnóstico de chamadas

Chamar informações de operação de compartilhamento de logs de diagnóstico:

"operationName":            "CallDiagnostics",
"operationVersion":         "1.0",
"category":                 "CallDiagnostics",

Aqui está um log de diagnóstico para um fluxo de áudio do ponto de extremidade VoIP 1 para um ponto de extremidade do servidor:

"properties": {
    "identifier":           "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-729f-ac00-343a0d00d975",
    "participantId":        "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
    "endpointId":           "5ebd55df-ffff-ffff-89e6-4f3f0453b1a6",
    "endpointType":         "VoIP",
    "mediaType":            "Audio",
    "streamId":             "14884",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "46",
    "roundTripTimeMax":     "48",
    "jitterAvg":            "0",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Aqui está um log de diagnóstico para um fluxo de áudio de um ponto de extremidade de servidor para o ponto de extremidade VoIP 1:

"properties": {
    "identifier":           null,
    "participantId":        "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
    "endpointId":           null,
    "endpointType":         "Server",
    "mediaType":            "Audio",
    "streamId":             "2001",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "42",
    "roundTripTimeMax":     "44",
    "jitterAvg":            "1",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Aqui está um log de diagnóstico para um fluxo de áudio do ponto de extremidade VoIP 3 para um ponto de extremidade do servidor:

"properties": {
    "identifier":           "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-57c6-ac00-343a0d00d972",
    "participantId":        "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
    "endpointId":           "5ebd55df-ffff-ffff-ab89-19ff584890b7",
    "endpointType":         "VoIP",
    "mediaType":            "Audio",
    "streamId":             "13783",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "45",
    "roundTripTimeMax":     "46",
    "jitterAvg":            "1",
    "jitterMax":            "2",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Aqui está um log de diagnóstico para um fluxo de áudio de um ponto de extremidade de servidor para o ponto de extremidade VoIP 3:

"properties": {
    "identifier":           "null",
    "participantId":        "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
    "endpointId":           null,
    "endpointType":         "Server"    
    "mediaType":            "Audio",
    "streamId":             "1000",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "45",
    "roundTripTimeMax":     "46",
    "jitterAvg":            "1",
    "jitterMax":            "4",
    "packetLossRateAvg":    "0",

Chamar log de operações do cliente e chamar logs de estatísticas de mídia do cliente para P2P e chamadas de grupo

Para log de operações de cliente de chamada e log de estatísticas de mídia do cliente, não há diferença entre cenários de chamada P2P e grupo e o número de logs depende das operações do SDK e da duração da chamada. O código a seguir é um exemplo genérico mostrando o esquema desses logs.

Chamar log de operações do cliente

Aqui está um log de operações de cliente de chamada para a operação "CreateView":

"properties": {
    "TenantId":               "4e7403f8-515a-4df5-8e13-59f0e2b76e3a",
    "TimeGenerated":          "2024-01-09T17:06:50.3Z",
    "CallClientTimeStamp":    "2024-01-09T15:07:56.066Z",
    "OperationName":          "CreateView" ,   
    "CallId":                 "92d800c4-abde-40be-91e9-3814ee786b19",
    "ParticipantId":          "2656fd6c-6d4a-451d-a1a5-ce1baefc4d5c",
    "OperationType":          "client-api-request",
    "OperationId":            "0d987336-37e0-4acc-aba3-e48741d88103",
    "DurationMs":             "577",
    "ResultType":             "Succeeded",
    "ResultSignature":        "200",
    "SdkVersion":             "1.19.2.2_beta",
    "UserAgent":              "azure-communication-services/1.3.1-beta.1 azsdk-js-communication-calling/1.19.2-beta.2 (javascript_calling_sdk;#clientTag:904f667c-5f25-4729-9ee8-6968b0eaa40b). Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "ClientInstanceId":       "d08a3d05-db90-415f-88a7-87ae74edc1dd",
    "OperationPayload":       "{"StreamType":"Video","StreamId":"2.0","Source":"remote","RemoteParticipantId":"remote"}",
    "Type":                   "ACSCallClientOperations"
}

Cada participante pode ter muitas métricas diferentes para uma chamada. Você pode executar a consulta a seguir no Log Analytics no portal do Azure para listar todas as operações possíveis no log de operações do cliente de chamada:

ACSCallClientOperations | distinct OperationName

Chamar log de séries temporais de estatísticas de mídia do cliente

Confira um exemplo de log de séries temporais de estatísticas de mídia. Ele mostra a métrica de tremulação do participante para receber um fluxo de áudio em um carimbo de data/hora específico.

"properties": {
    "TenantId":                     "4e7403f8-515a-4df5-8e13-59f0e2b76e3a",
    "TimeGenerated":                "2024-01-10T07:36:51.771Z",
    "OperationName":                "CallClientMediaStatsTimeSeries" ,  
    "CallId":                       "92d800c4-abde-40be-91e9-3814ee786b19", 
    "CallClientTimeStamp":          "2024-01-09T15:07:56.066Z",
    "MetricName":                   "JitterInMs",
    "Count":                        "2",
    "Sum":                          "34",
    "Average":                      "17",
    "Minimum":                      "10",
    "Maximum":                      "25",
    "MediaStreamDirection":         "recv",
    "MediaStreamType":              "audio",
    "MediaStreamCodec":             "OPUS",
    "ParticipantId":                "2656fd6c-6d4a-451d-a1a5-ce1baefc4d5c",
     "ClientInstanceId":            "d08a3d05-db90-415f-88a7-87ae74edc1dd",
    "AggregationIntervalSeconds":   "10",
    "Type":                         "ACSCallClientMediaStatsTimeSeries"
}

Cada participante pode ter várias métricas de estatísticas de mídia diferentes para uma chamada. A consulta a seguir pode ser executada no Log Analytics no portal do Azure para mostrar todas as métricas possíveis neste log:

ACSCallClientMediaStatsTimeSeries | distinct MetricName

Códigos do 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 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.

Próximas etapas