Panoramica della diagnostica prechiamata
Importante
Questa funzionalità di Servizi di comunicazione di Azure è attualmente in anteprima.
Le anteprime di API e SDK vengono fornite senza un contratto di servizio. È consigliabile non usarle per carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o risultare limitate.
Per altre informazioni, vedere le Condizioni per l'utilizzo supplementari delle anteprime di Microsoft Azure.
La funzionalità API di pre-chiamata consente agli sviluppatori di convalidare a livello di codice l'idoneità di un client a partecipare a una chiamata Servizi di comunicazione di Azure. È possibile accedere solo alle funzionalità di prechiamata usando l'SDK chiamante. La funzionalità di diagnostica pre-chiamata offre più diagnostica, tra cui il dispositivo, la connessione e la qualità delle chiamate. La funzionalità di diagnostica prechiamata è disponibile solo per Il Web (JavaScript). In futuro si prevede di abilitare queste funzionalità in tutte le piattaforme. Inviare commenti e suggerimenti sulle piattaforme che si desidera visualizzare la diagnostica preliminare abilitata.
Prerequisiti
Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
Node.js sono consigliate le versioni Long Term Support (LTS) attive.
Una risorsa attiva di Servizi di comunicazione. Creare una risorsa di Servizi di comunicazione.
Un token di accesso utente per creare un'istanza del client di chiamata. Vedere come creare e gestire i token di accesso utente. È anche possibile usare l'interfaccia della riga di comando di Azure ed eseguire il comando successivo con il stringa di connessione per creare un utente e un token di accesso. Ricordarsi di copiare il stringa di connessione dalla risorsa tramite portale di Azure.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Per altre informazioni, vedere Usare l'interfaccia della riga di comando di Azure per creare e gestire i token di accesso.
Accesso alla diagnostica prechiamata
Importante
La diagnostica preliminare è disponibile a partire dalla versione 1.9.1-beta.1 di Calling SDK. Assicurarsi di usare tale versione o versione successiva quando si seguono queste istruzioni.
Per accedere alla diagnostica preliminare, è necessario inizializzare un e effettuare il provisioning di un callClient
token di accesso Servizi di comunicazione di Azure. È possibile accedere alla PreCallDiagnostics
funzionalità e al startTest
metodo .
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);
Al termine dell'esecuzione, gli sviluppatori possono accedere all'oggetto risultato.
Risultati della diagnostica
La diagnostica preliminare restituisce una diagnostica completa del dispositivo, inclusi dettagli quali autorizzazioni del dispositivo, disponibilità e compatibilità, statistiche sulla qualità delle chiamate e diagnostica in chiamata. I risultati vengono restituiti come PreCallDiagnosticsResult
oggetto .
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
È possibile accedere a singoli oggetti risultato usando il preCallDiagnosticsResult
tipo . I risultati per i singoli test vengono restituiti man mano che vengono completati con molti dei risultati dei test disponibili immediatamente. Se si usa il inCallDiagnostics
test, i risultati potrebbero richiedere fino a 1 minuto perché il test convalida la qualità del video e dell'audio.
Supporto browser
Controllo della compatibilità del browser. Verifica la presenza Browser
e OS
la compatibilità e restituisce un Supported
valore o NotSupported
.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Se il test ha esito negativo e il browser usato dall'utente è NotSupported
, il modo più semplice per risolvere questo problema richiede all'utente di passare a un browser supportato. Fare riferimento ai browser supportati in Panoramica di JavaScript Calling SDK > support by OS and browser (Supporto javaScript Calling SDK per sistema operativo e browser).
Nota
Problema noto: browser support
test che restituisce Unknown
nei casi in cui deve restituire un valore corretto.
Accesso al dispositivo
Il controllo delle autorizzazioni determina se i dispositivi video e audio sono disponibili dal punto di vista delle autorizzazioni. Fornisce boolean
valore per audio
i dispositivi e video
.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Se il test non riesce e le autorizzazioni sono false per audio e video, l'utente non deve continuare a partecipare a una chiamata. Chiedere invece all'utente di abilitare le autorizzazioni. Il modo migliore per eseguire questa operazione consiste nel fornire istruzioni specifiche su come accedere alle autorizzazioni in base al sistema operativo, alla versione e al browser in uso. Per altre informazioni sulle autorizzazioni, vedere Elenco di controllo per le esperienze di chiamata avanzate nei Web browser.
Enumerazione dispositivo
Disponibilità del dispositivo. Controlla se i dispositivi microfono, fotocamera e altoparlante vengono rilevati nel sistema e pronti per l'uso. Restituisce un Available
valore o NotAvailable
.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Se i dispositivi non sono disponibili, l'utente non deve continuare a partecipare a una chiamata. Invece, chiedere all'utente di controllare le connessioni del dispositivo per assicurarsi che tutti gli auricolari, le fotocamere o gli altoparlanti siano connessi correttamente. Per altre informazioni sulla gestione dei dispositivi, vedere Gestire video durante le chiamate.
Diagnostica inCall
Esegue una chiamata rapida per archiviare le metriche di chiamata per audio e video e restituisce i risultati. Include la connettività (connected
, booleano), la qualità della larghezza di banda (bandWidth
, 'Bad' | 'Average' | 'Good'
) e la diagnostica delle chiamate per audio e video (diagnostics
). Le categorie di diagnostica fornite includono jitter
, packetLoss
e rtt
e i risultati vengono generati usando un livello di qualità semplice ('Bad' | 'Average' | 'Good'
).
La diagnostica InCall usa le statistiche di qualità dei supporti per calcolare i punteggi di qualità e diagnosticare i problemi. Durante la diagnostica di pre-chiamata, il set completo di statistiche sulla qualità dei supporti è disponibile per l'utilizzo. Queste statistiche includono valori non elaborati tra metriche video e audio che è possibile usare a livello di programmazione.
La diagnostica InCall offre un livello pratico sulle statistiche sulla qualità dei supporti per utilizzare i risultati senza la necessità di elaborare tutti i dati non elaborati. Per altre informazioni, incluse le istruzioni per l'accesso, vedere Statistiche sulla qualità dei supporti per una chiamata in corso.
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)
}
In questo passaggio sono presenti più possibili punti di errore. I valori forniti dall'API sono basati sui valori di soglia richiesti dal servizio. Le soglie non elaborate sono disponibili nelle statistiche sulla qualità dei supporti.
- Se una connessione non riesce, chiedere agli utenti di controllare nuovamente la connettività di rete. Gli errori di connessione possono anche essere attribuiti a condizioni di rete come DNS, proxy o firewall. Per altre informazioni sull'impostazione di rete consigliata, vedere Raccomandazioni di rete.
- Se la larghezza di banda è
Bad
, richiedere agli utenti di provare una rete diversa o verificare la disponibilità della larghezza di banda nella rete corrente. Assicurarsi che non vengano eseguite altre attività a larghezza di banda elevata.
Prezzi
Quando il test di diagnostica di pre-chiamata viene eseguito in background, usa i minuti di chiamata per eseguire la diagnostica. Il test dura circa 30 secondi, utilizzando fino a 30 secondi di tempo di chiamata che viene addebitato alla tariffa standard di $ 0,004 per partecipante al minuto. Per il caso di diagnostica pre-chiamata, l'addebito è per 1 partecipante x 30 secondi = $ 0,002.