Visão geral do diagnóstico pré-chamada
Importante
Esta funcionalidade dos Serviços de Comunicação do Azure está atualmente em pré-visualização.
As APIs e SDKs de visualização são fornecidos sem um contrato de nível de serviço. Recomendamos que você não os use para cargas de trabalho de produção. Alguns recursos podem não ser suportados ou podem ter recursos restritos.
Para obter mais informações, consulte Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.
O recurso de API de pré-chamada permite que os desenvolvedores validem programaticamente a prontidão de um cliente para ingressar em uma chamada dos Serviços de Comunicação do Azure. Você só pode acessar recursos de pré-chamada usando o SDK de chamada. O recurso de diagnóstico pré-chamada fornece vários diagnósticos, incluindo a qualidade do dispositivo, da conexão e da chamada. O recurso de diagnóstico pré-chamada está disponível apenas para Web (JavaScript). Planejamos habilitar esses recursos em todas as plataformas no futuro. Forneça feedback sobre quais plataformas você deseja ver o diagnóstico pré-chamada habilitado.
Pré-requisitos
Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
Node.js versões ativas de Suporte de Longo Prazo (LTS) são recomendadas.
Um recurso ativo dos Serviços de Comunicação. Crie um recurso de Serviços de Comunicação.
Um Token de Acesso de Usuário para instanciar o cliente de chamada. Saiba como criar e gerenciar tokens de acesso de usuário. Você também pode usar a CLI do Azure e executar o próximo comando com sua cadeia de conexão para criar um usuário e um token de acesso. Lembre-se de copiar a cadeia de conexão do recurso por meio do portal do Azure.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Para obter mais informações, consulte Usar a CLI do Azure para criar e gerenciar tokens de acesso.
Aceder ao diagnóstico pré-chamada
Importante
Os diagnósticos de pré-chamada estão disponíveis a partir da versão 1.9.1-beta.1 do SDK de Chamada. Certifique-se de usar essa versão ou superior ao seguir estas instruções.
Para acessar o diagnóstico de pré-chamada, você precisa inicializar um callClient
e provisionar um token de acesso dos Serviços de Comunicação do Azure. Lá você pode acessar o PreCallDiagnostics
recurso e o startTest
método.
import { CallClient, Features} from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential("INSERT ACCESS TOKEN");
const preCallDiagnosticsResult = await callClient.feature(Features.PreCallDiagnostics).startTest(tokenCredential);
Quando a execução terminar, os desenvolvedores poderão acessar o objeto resultante.
Resultados do diagnóstico
O diagnóstico pré-chamada retorna um diagnóstico completo do dispositivo, incluindo detalhes como permissões do dispositivo, disponibilidade e compatibilidade, estatísticas de qualidade da chamada e diagnósticos na chamada. Os resultados são retornados como um PreCallDiagnosticsResult
objeto.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
Você pode acessar objetos de resultado individuais usando o preCallDiagnosticsResult
tipo. Os resultados de testes individuais são devolvidos à medida que são concluídos, com muitos dos resultados dos testes a estarem disponíveis imediatamente. Se você usar o inCallDiagnostics
teste, os resultados podem levar até 1 minuto, pois o teste valida a qualidade do vídeo e do áudio.
Suporte do browser
Verificação de compatibilidade do navegador. Verifica Browser
a OS
compatibilidade e retorna um Supported
ou NotSupported
valor.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Se o teste falhar e o navegador que está sendo usado pelo usuário for NotSupported
, a maneira mais fácil de corrigir isso é pedindo ao usuário para alternar para um navegador compatível. Consulte os navegadores suportados em Visão geral > do SDK de chamada Suporte ao SDK de chamada JavaScript por sistema operacional e navegador.
Nota
Problema conhecido: browser support
teste de retorno Unknown
nos casos em que deveria estar retornando um valor correto.
Acesso ao dispositivo
A verificação de permissão determina se os dispositivos de vídeo e áudio estão disponíveis de uma perspetiva de permissões. Fornece boolean
valor para audio
e video
dispositivos.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Se o teste falhar e as permissões forem falsas para áudio e vídeo, o usuário não deve continuar participando de uma chamada. Em vez disso, solicite que o usuário habilite as permissões. A melhor maneira de fazer isso é fornecendo instruções específicas sobre como acessar permissões com base no sistema operacional, versão e navegador que eles estão usando. Para obter mais informações sobre permissões, consulte a Lista de verificação para experiências avançadas de chamada em navegadores da Web.
Enumeração de dispositivos
Disponibilidade do dispositivo. Verifica se os dispositivos de microfone, câmera e alto-falante estão detetados no sistema e prontos para uso. Retorna um Available
ou NotAvailable
valor.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Se os dispositivos não estiverem disponíveis, o usuário não deve continuar participando de uma chamada. Em vez disso, solicite que o usuário verifique as conexões do dispositivo para garantir que todos os fones de ouvido, câmeras ou alto-falantes estejam conectados corretamente. Para obter mais informações sobre o gerenciamento de dispositivos, consulte Gerenciar vídeo durante chamadas.
Diagnóstico InCall
Realiza uma chamada rápida para verificar as métricas de áudio e vídeo na chamada e fornece os resultados de volta. Inclui conectividade (connected
, booleano), qualidade de largura de banda (bandWidth
, 'Bad' | 'Average' | 'Good'
) e diagnóstico de chamadas para áudio e vídeo (diagnostics
). Desde que as categorias de diagnóstico incluam jitter
, packetLoss
e rtt
os resultados sejam gerados usando um grau de qualidade simples ('Bad' | 'Average' | 'Good'
).
O diagnóstico InCall usa estatísticas de qualidade de mídia para calcular pontuações de qualidade e diagnosticar problemas. Durante o diagnóstico pré-chamada, o conjunto completo de estatísticas de qualidade de mídia está disponível para consumo. Essas estatísticas incluem valores brutos em métricas de vídeo e áudio que você pode usar programaticamente.
O diagnóstico InCall fornece uma camada de conveniência sobre estatísticas de qualidade de mídia para consumir os resultados sem a necessidade de processar todos os dados brutos. Para obter mais informações, incluindo instruções para acessar, consulte Estatísticas de qualidade de mídia para uma chamada em andamento.
const inCallDiagnostics = await preCallDiagnosticsResult.inCallDiagnostics;
if(inCallDiagnostics) {
console.log(inCallDiagnostics.connected)
console.log(inCallDiagnostics.bandWidth)
console.log(inCallDiagnostics.diagnostics.audio)
console.log(inCallDiagnostics.diagnostics.video)
}
Nesta etapa, há vários pontos de falha possíveis. Os valores fornecidos pela API são baseados nos valores de limite exigidos pelo serviço. Os limiares brutos podem ser encontrados nas estatísticas de qualidade dos meios de comunicação social.
- Se uma conexão falhar, solicite que os usuários verifiquem novamente a conectividade de rede. As falhas de conexão também podem ser atribuídas a condições de rede como DNS, proxies ou firewalls. Para obter mais informações sobre a configuração de rede recomendada, consulte Recomendações de rede.
- Se a largura de banda for
Bad
, solicite que os usuários tentem uma rede diferente ou verifiquem a disponibilidade de largura de banda em sua rede atual. Certifique-se de que nenhuma outra atividade de alta largura de banda esteja ocorrendo.
Preços
Quando o teste de diagnóstico de pré-chamada é executado nos bastidores, ele usa minutos de chamada para executar o diagnóstico. O teste dura cerca de 30 segundos, consumindo até 30 segundos de tempo de chamada, que é cobrado à taxa padrão de US $ 0,004 por participante por minuto. Para o caso de diagnósticos pré-chamada, a cobrança é de 1 participante x 30 segundos = $0,002.