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
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource Communication Services déployée. Créez une ressource Communication Services.
- Un jeton d’accès utilisateur pour activer le client appelant. Pour plus d'informations, consultez Créez et gérez des jetons d'accès.
- Facultatif : suivez le guide de démarrage rapide permettant d’ajouter l’appel vocal à votre application.
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’instanceCall 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’erreurconnectionIssue
.
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 |