Condividi tramite


Panoramica della diagnostica pre-chiamata

Importante

Questa funzionalità di Servizi di comunicazione di Azure è attualmente in anteprima. Le funzionalità in anteprima sono disponibili pubblicamente e possono essere usate da tutti i clienti Microsoft nuovi ed esistenti.

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 potrebbero essere vincolate.

Per altre informazioni, vedere le Condizioni supplementari per l'uso 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 alle funzionalità di prechiamata solo utilizzando il Calling SDK. 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. Fornisci il tuo feedback sulle piattaforme per le quali desideri che la diagnostica pre-chiamata sia abilitata.

Prerequisiti

Accedere alla diagnostica pre-chiamata

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 pre-chiamata, è necessario inizializzare un callClient e fornire un token di accesso ai 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 compatibilità tra Browser e OS e restituisce un valore Supported 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 SDK Chiamata > Supporto di SDK Chiamata per JavaScript in base al sistema operativo e al 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 il valore boolean per i dispositivi audio 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 del dispositivo

Disponibilità del dispositivo. Controlla se i dispositivi microfono, fotocamera e altoparlante vengono rilevati nel sistema e pronti per l'uso. Restituisce un valore Available 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 in chiamata

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, packetLosse 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 pre-chiamata, è disponibile per il consumo il set completo di statistiche sulla qualità dei supporti. Queste statistiche includono valori non elaborati tra metriche video e audio che è possibile usare a livello di codice.

Il sistema diagnostico InCall offre un livello di convenienza sulle statistiche sulla qualità dei media per utilizzare i risultati senza la necessità di elaborare tutti i dati grezzi. Per ulteriori informazioni, incluse le istruzioni per l'accesso, vedere Statistiche sulla qualità dei media 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 in 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 pre-chiamata viene eseguito in background, utilizzare i minuti di esecuzione della 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. Nel caso di diagnostica pre-chiamata, l'addebito è per 1 partecipante x 30 secondi = $0,002.

Passaggi successivi