Share via


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

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 callCliente 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 jitterpacketLoss 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.

Passaggi successivi