Partager via


Audioconférence de réunion Microsoft Teams

Cet article décrit comment utiliser le SDK d’appel Azure Communication Services pour récupérer les détails de la conférence audio de réunion Microsoft Teams. Cette fonction permet aux utilisateurs déjà connectés à une réunion Microsoft Teams d'obtenir l'ID de conférence et le numéro de téléphone d'appel associés à la réunion. La fonctionnalité de conférence audio de réunion Teams renvoie une collection de tous les numéros payants et gratuits. La collection comprend des noms de pays/régions et de villes concomitants, permettant aux utilisateurs de contrôler les détails de connexion aux réunions Teams à utiliser.

Prérequis

Support

Cette section décrit la prise en charge de l’audioconférence dans Azure Communication Services.

Identités et types d’appels

Le tableau suivant présente la prise en charge des types d’appels et d’identités.

Identités Réunion Teams Salle Appel 1:1 Appel de groupe Appel d’interopérabilité Teams 1:1 Appel d’interopérabilité Teams de groupe
Utilisateur de Communication Services ✔️
Utilisateur Microsoft 365 ✔️

Opérations

Le tableau suivant indique la prise en charge des différentes API du kit de développement logiciel (SDK) Calling pour les types d’identités individuels.

Opérations Utilisateur de Communication Services Utilisateur Microsoft 365
Obtenir les détails de l’audioconférence ✔️ ✔️

SDK

Le tableau suivant indique la prise en charge de la fonctionnalité Audioconférence dans les différents kits SDK Azure Communication Services.

Platforms web Interface utilisateur web iOS Interface utilisateur iOS Android Interface utilisateur Android Windows
Est pris en charge ✔️

Installer le SDK

Utilisez la commande npm install pour installer le SDK Azure Communication Services Common et le SDK Azure Communication Services Calling pour JavaScript :

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Initialiser les objets nécessaires

Une instance CallClient est requise pour la plupart des opérations d’appel. Lorsque vous créez une instance CallClient, vous pouvez la configurer avec des options personnalisées comme une instance Logger.

Avec l’instance CallClient, vous pouvez créer une instance CallAgent en appelant createCallAgent. Cette méthode renvoie un objet d’instance CallAgent de manière asynchrone.

La méthode createCallAgent utilise CommunicationTokenCredential comme argument. Elle accepte un jeton d’accès utilisateur.

Vous pouvez utiliser la méthode getDeviceManager sur l’instance CallClient pour accéder à deviceManager.

const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");

// Set the logger's log level
setLogLevel('verbose');

// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()

Comment gérer au mieux la connectivité du SDK à l’infrastructure Microsoft

L’instance Call Agent vous aide à gérer les appels (pour rejoindre ou démarrer des appels). Pour fonctionner, votre SDK d’appel doit se connecter à l’infrastructure Microsoft pour recevoir des notifications d’appels entrants et coordonner d’autres détails de l’appel. Votre Call Agent a deux états possibles :

Connecté : un Call Agent dont la valeur connectionStatue est égale à Connected signifie que le SDK client est connecté et capable de recevoir des notifications de l’infrastructure Microsoft.

Déconnecté : un Call Agent dont la valeur connectionStatue est égale à Disconnected indique qu’un problème empêche le SDK de se connecter correctement. Call Agent doit être recréé.

  • invalidToken : si un jeton a expiré ou n’est pas valide, l’instance Call Agent se déconnecte avec cette erreur.
  • connectionIssue : en cas de problème de connexion du client à l’infrastructure Microsoft, après plusieurs tentatives, Call Agent lève l’erreur connectionIssue.

Vous pouvez vérifier si votre Call Agent local est connecté à l’infrastructure Microsoft en inspectant la valeur actuelle de la propriété connectionState. Pendant un appel actif, vous pouvez écouter l’événement connectionStateChanged pour déterminer si Call Agent passe de l’état Connecté à l’état Déconnecté.

const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'

const connectionStateCallback = (args) => {
    console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
    // it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);

La conférence audio des réunions Microsoft Teams est une fonctionnalité étendue de l’API principale Call. Vous devez d’abord importer les fonctionnalités d’appel à partir du Kit de développement logiciel (SDK) Appel :

import { Features} from "@azure/communication-calling";

Vous pouvez ensuite récupérer l’objet API de la fonctionnalité à partir de l’instance d’appel :

const audioConferencingFeature = call.feature(Features.TeamsMeetingAudioConferencing);

Obtenir les détails d’audioconférence d’une réunion

Utilisez l’API suivante pour obtenir les détails d’audioconférence d’une réunion

try {
     const details: SDK.TeamsMeetingAudioConferencingDetails = audioConferencingFeature.getTeamsMeetingAudioConferencingDetails();
     console.log(`Microsoft Teams Meeting Conference Id: ${details.phoneConferenceId}`);
     details.phoneNumbers.forEach(dialInPhoneNumber => {
        if (dialInPhoneNumber.tollPhoneNumber) { 
            console.log(`Dial-In Toll PhoneNumber: ${dialInPhoneNumber.tollPhoneNumber.phoneNumber}`);
        }
        else if (dialInPhoneNumber.tollFreePhoneNumber) { 
            console.log(`Dial-In TollFree PhoneNumber: ${dialInPhoneNumber.tollFreePhoneNumber.phoneNumber}`);
        } 
        else if (dialInPhoneNumber.countryName) {
            console.log(`Dial-In Country Name: ${dialInPhoneNumber.countryName}`);
        }
        else if (dialInPhoneNumber.cityName) {
            console.log(`Dial-In City Name: ${dialInPhoneNumber.cityName}`);
        }
    })
} catch (e) {
    console.error(e);
}

Dépannage

Code Sous-code Catégorie de résultat Motif Résolution
400 45950 ExpectedError La fonctionnalité d’audioconférence est disponible uniquement dans les réunions Teams Rejoindre une réunion Teams avec l’audioconférence configurée
405 45951 ExpectedError Le service ACS a désactivé l’audioconférence Créer un ticket de support Azure pour demander de l’aide
403 45952 ExpectedError Les détails de l’audioconférence ne sont pas disponibles tant que l’utilisateur n’a pas rejoint la réunion Vérifiez que l’objet d’appel est à l’état connected avant d’appeler l’API pour récupérer les détails de l’audioconférence
403 45953 ExpectedError Les détails de l’audioconférence ne sont pas disponibles dans la salle d’attente Vérifiez que l’objet d’appel est à l’état connected avant d’appeler l’API pour récupérer les détails de l’audioconférence

Étapes suivantes