Diagnostica pre-chiamata
Importante
Questa funzionalità di Servizi di comunicazione di Azure è attualmente in anteprima.
Le API di anteprima e gli SDK vengono forniti senza un contratto di servizio. È consigliabile non usarli per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero avere funzionalità limitate.
Per altre informazioni, vedere Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.
L'API 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 alle API di pre-chiamata tramite l'SDK chiamante. Forniscono più diagnostica, tra cui dispositivo, connessione e qualità delle chiamate. Le API di pre-chiamata sono disponibili solo per Web (JavaScript). Queste funzionalità verranno abilitate in futuro su più piattaforme e verranno fornite commenti e suggerimenti sulle piattaforme su cui si vogliono visualizzare le API di pre-chiamata.
Prerequisiti
Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
Sono consigliate le versioni di Node.js active Long Term Support (LTS).
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. È necessario recuperare stringa di connessione dalla risorsa tramite portale di Azure.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Per informazioni dettagliate, vedere Usare l'interfaccia della riga di comando di Azure per creare e gestire i token di accesso.
Accesso alle API di pre-chiamata
Importante
La diagnostica preliminare è disponibile a partire dalla versione 1.9.1-beta.1 di Calling SDK. Assicurarsi di usare tale versione quando si provano le istruzioni successive.
Per accedere all'API di pre-chiamata, è necessario inizializzare un callClient
e effettuare il provisioning di un 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
L'API pre-chiamata 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 ai singoli oggetti risultato, ad esempio usando la preCallDiagnosticsResult
costante . 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)
}
Nel caso in cui il test non riesca e il browser usato dall'utente sia NotSupported
, il modo più semplice per risolvere questo problema richiede all'utente di passare a un browser supportato. Fare riferimento ai browser supportati nella documentazione.
Nota
Problema noto: browser support
test che restituisce Unknown
nei casi in cui deve restituire un valore corretto.
Accesso al dispositivo
Controllo delle autorizzazioni. Verifica 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)
}
Nel caso in cui il test non riesca e le autorizzazioni siano false per audio e video, l'utente non deve continuare a partecipare a una chiamata. È invece necessario chiedere all'utente di abilitare le autorizzazioni. A tale scopo, viene fornita l'istruzione specifica su come accedere all'accesso alle autorizzazioni in base al sistema operativo, alla versione e al browser in cui si trovano. Per altre informazioni sulle autorizzazioni, vedere le raccomandazioni.
Enumerazione Device
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)
}
Nel caso in cui i dispositivi non siano disponibili, l'utente non deve continuare a partecipare a una chiamata. All'utente deve invece essere richiesto di controllare le connessioni dei dispositivi per assicurarsi che tutti gli auricolari, le fotocamere o gli altoparlanti siano connessi correttamente. Per altre informazioni sulla gestione dei dispositivi, vedere la documentazione
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
). La diagnostica viene fornita jitter
packetLoss
e rtt
i risultati vengono generati usando un livello di qualità semplice ('Bad' | 'Average' | 'Good'
).
La diagnostica InCall usa statistiche di qualità multimediale 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 possono essere usate a livello di codice. La diagnostica InCall offre un livello pratico sulle statistiche di qualità dei supporti per utilizzare i risultati senza la necessità di elaborare tutti i dati non elaborati. Per istruzioni sull'accesso, vedere la sezione sulle statistiche multimediali.
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ù punti di errore da controllare. I valori forniti dall'API sono basati sui valori di soglia richiesti dal servizio. Queste soglie non elaborate sono disponibili nella documentazione sulle statistiche sulla qualità dei supporti.
- Se la connessione non riesce, all'utente deve essere richiesto di controllare nuovamente la connettività di rete. Connessione errori possono essere attribuiti anche a condizioni di rete come DNS, proxy o firewall. Per altre informazioni sull'impostazione di rete consigliata, vedere la documentazione.
- Se la larghezza di banda è
Bad
, all'utente deve essere richiesto di provare una rete diversa o di verificare la disponibilità della larghezza di banda in quella corrente. Assicurarsi che non vengano eseguite altre attività a larghezza di banda elevata.
Statistiche multimediali
Per statistiche granulari sulle metriche di qualità, ad esempio jitter, perdita di pacchetti, rtt e così via. callMediaStatistics
vengono forniti come parte della preCallDiagnosticsResult
funzionalità. Vedere l'elenco completo e la descrizione delle metriche disponibili nell'articolo collegato. È possibile sottoscrivere le statistiche sui supporti di chiamata per ottenere una raccolta completa di tali dati. Questa statistica è la metrica non elaborata usata per calcolare i risultati di diagnostica InCall e che può essere utilizzata in modo granulare per un'ulteriore analisi.
const mediaStatsCollector = callMediaStatistics.startCollector();
mediaStatsCollector.on('mediaStatsEmitted', (mediaStats: SDK.MediaStats) => {
// process the stats for the call.
console.log(mediaStats);
});
Prezzi
Quando viene eseguito il test di diagnostica pre-chiamata, in background usa i minuti di chiamata per eseguire la diagnostica. Il test dura circa 30 secondi, utilizzando fino a 30 secondi di chiamata che viene addebitato alla tariffa standard di $ 0,004 per partecipante al minuto. Per il caso di diagnostica pre-chiamata, l'addebito sarà per 1 partecipante x 30 secondi = $ 0,002.