Vue d’ensemble du diagnostic de pré-appel
Important
Cette fonctionnalité d’Azure Communication Services est actuellement en préversion.
Ces interfaces de programmation d’applications et kits de développement logiciel (SDK) en préversion sont fournis sans contrat au niveau du service. Nous vous recommandons de ne pas les utiliser pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.
Pour plus d’informations, consultez Conditions d’utilisation supplémentaires relatives aux préversions de Microsoft Azure.
La fonction API de pré-appel permet aux développeurs de valider par programme l'aptitude d'un client à rejoindre un appel Azure Communication Services. Vous ne pouvez accéder qu’aux fonctionnalités de pré-appel à l’aide du Kit de développement logiciel (SDK) d’appel. La fonction de diagnostic avant appel fournit plusieurs diagnostics, notamment sur l'appareil, la connexion et la qualité de l'appel. La fonctionnalité de diagnostic de pré-appel est disponible uniquement pour le web (JavaScript). Nous prévoyons d’activer ces fonctionnalités sur plusieurs plateformes à l’avenir. Fournissez-nous des commentaires sur les plateformes que vous souhaitez voir les diagnostics de pré-appel activés.
Prérequis
Compte Azure avec un abonnement actif. Créez un compte gratuitement.
Les versions actives LTS (Prise en charge à long terme) de Node.js sont recommandées.
Une ressource Communication Services active. Créez une ressource Communication Services.
Un jeton d’accès utilisateur pour instancier le client d’appel. Découvrez comment créer et gérer des jetons d’accès utilisateur Vous pouvez également utiliser Azure CLI et exécuter la commande suivante avec votre chaîne de connexion pour créer un utilisateur et un jeton d’accès. N’oubliez pas de copier la chaîne de connexion de la ressource via le portail Azure.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Pour plus d’informations, consultez Utiliser Azure CLI pour créer et gérer des jetons d’accès.
Accès aux diagnostics avant appel
Important
Les diagnostics avant appel sont disponibles à partir de la version 1.9.1-beta.1 du SDK d'appel. Veillez à utiliser cette version ou une version plus récente lorsque vous suivez ces instructions.
Pour accéder aux diagnostics avant appel, vous devez initialiser un callClient
, et fournir un jeton d'accès à Azure Communication Services. Vous pouvez accéder ici à la PreCallDiagnostics
fonctionnalité et à la startTest
méthode.
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);
Une fois l’exécution terminée, les développeurs peuvent accéder à l’objet de résultat.
Résultats du diagnostic
Le diagnostic avant appel renvoie un diagnostic complet de l'appareil, y compris des détails tels que les autorisations, la disponibilité et la compatibilité de l'appareil, des statistiques sur la qualité des appels et des diagnostics en cours d'appel. Les résultats sont retournés en tant qu’objet PreCallDiagnosticsResult
.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
Vous pouvez accéder à des objets de résultats individuels à l’aide du type preCallDiagnosticsResult
. Les résultats des tests individuels sont retournés dès qu’ils sont terminés avec la plupart des résultats des tests disponibles immédiatement. Si vous utilisez le test inCallDiagnostics
, les résultats peuvent prendre jusqu'à une minute car le test valide la qualité de la vidéo et de l'audio.
Prise en charge des navigateurs
Vérification de compatibilité du navigateur. Vérifie la compatibilité Browser
et OS
renvoie une valeur Supported
ou NotSupported
.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Si le test échoue et que le navigateur utilisé par l’utilisateur(-trice) est NotSupported
, le moyen le plus simple de résoudre ce problème est de demander à l’utilisateur(-trice) de basculer vers un navigateur pris en charge. Reportez-vous aux navigateurs pris en charge dans vue d’ensemble du Kit de développement logiciel (SDK) d’appel JavaScript > prise en charge du KIT de développement logiciel (SDK) JavaScript Calling par le système d’exploitation et le navigateur.
Remarque
Problème connu : browser support
test de retour Unknown
dans les cas où il doit retourner une valeur correcte.
Accès sur l’appareil
Le contrôle des autorisations permet de déterminer si les appareils vidéo et audio sont disponibles du point de vue des autorisations. Fournit une valeur boolean
pour les appareils audio
et video
.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Si le test échoue et que les autorisations sont fausses pour l’audio et la vidéo, l’utilisateur(-trice) ne doit pas continuer à rejoindre un appel. Au lieu de cela, invitez l’utilisateur(-trice) à activer les autorisations. La meilleure façon d'y parvenir est de fournir des instructions spécifiques sur la manière d'accéder aux autorisations en fonction du système d'exploitation, de la version et du navigateur utilisés. Pour plus d'informations sur les autorisations, voir la liste de contrôle pour des expériences d'appel avancées dans les navigateurs web.
Énumération de l’appareil
Disponibilité de l’appareil. Vérifie si les appareils microphone, caméra et haut-parleur sont détectés dans le système et prêts à être utilisés. Retourne une valeur Available
ou NotAvailable
.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Si les appareils ne sont pas disponibles, l'utilisateur ne doit pas continuer à rejoindre un appel. Invitez plutôt l'utilisateur(-trice) à vérifier les connexions de l'appareil pour s'assurer que les casques, les caméras ou les haut-parleurs sont correctement connectés. Pour plus d’informations sur la gestion des appareils, consultez Gérer la vidéo pendant les appels.
Diagnostics InCall
Effectue un appel rapide pour vérifier les métriques d’appel audio et vidéo et fournit des résultats. Inclut la connectivité (connected
, booléenne), la qualité de la bande passante (bandWidth
, 'Bad' | 'Average' | 'Good'
) et les diagnostics d’appel pour l’audio et la vidéo (diagnostics
). Les catégories de diagnostic fournies comprennent jitter
, packetLoss
, rtt
et les résultats sont générés à l'aide d'une simple note de qualité ('Bad' | 'Average' | 'Good'
).
Les diagnostics InCall utilisent les statistiques de qualité des médias pour calculer les scores de qualité et diagnostiquer les problèmes. Pendant le diagnostic de pré-appel, l’ensemble complet des statistiques de qualité des médias sont disponibles pour la consommation. Ces statistiques comprennent des valeurs brutes pour les mesures vidéo et audio que vous pouvez utiliser par programme.
Le diagnostic InCall fournit une couche pratique sur les statistiques de qualité des médias pour consommer les résultats sans avoir à traiter toutes les données brutes. Pour plus d’informations, notamment des instructions à accéder, consultez statistiques de qualité des médias pour un appel en cours.
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)
}
À cette étape, il existe plusieurs points de défaillance possibles. Les valeurs fournies par l’API sont basées sur les valeurs de seuil requises par le service. Les seuils bruts peuvent être consultés dans Statistiques sur la qualité des médias.
- En cas d'échec de la connexion, les utilisateurs sont invités à revérifier la connectivité de leur réseau. Les échecs de connexion peuvent également être attribués à des conditions réseau telles que DNS, proxys ou pare-feu. Pour plus d'informations sur les paramètres réseau recommandés, voir Recommandations pour le réseau.
- Si la bande passante est
Bad
, invitez les utilisateurs à essayer un autre réseau ou à vérifier la disponibilité de la bande passante sur leur réseau actuel. Vérifiez qu’aucune autre activité à bande passante élevée n’a lieu.
Tarification
Lorsque le test de diagnostic de pré-appel s’exécute, en arrière-plan, il utilise les minutes d’appel pour exécuter le diagnostic. Le test dure environ 30 secondes, utilisant jusqu’à 30 secondes de temps d’appel facturé au tarif standard de 0,004 $ par participant(e) par minute. Pour le cas de diagnostic de pré-appel, les frais sont facturés pour 1 participant x 30 secondes = 0,002 $.