Freigeben über


Microsoft Teams Meeting-Audiokonferenzen

In diesem Artikel wird beschrieben, wie Sie das Azure Communication Services-Anruf-SDK verwenden, um Details zu Microsoft Teams-Audiokonferenzen abzurufen. Mit dieser Funktion können Benutzer, die bereits mit einer Microsoft Teams-Besprechung verbunden sind, die Konferenz-ID und die mit der Besprechung verbundenen Einwahltelefonnummer abrufen. Das Microsoft Teams-Audiokonferenzfeature gibt eine Sammlung aller gebührenpflichtigen und gebührenfreien Nummern zurück. Die Sammlung enthält die zugehörigen Länder-/Regions- und Ortsnamen und gibt Benutzenden die Kontrolle darüber, welche Einwahldetails für die Teams-Besprechung verwendet werden sollen.

Voraussetzungen

Unterstützung

In diesem Abschnitt wird die Unterstützung von Audiokonferenzen in Azure Communication Services beschrieben.

Identitäten und Anruftypen

Die folgende Tabelle zeigt die Unterstützung für Anruf- und Identitätstypen.

Identities Teams-Besprechung Raum 1:1-Anruf Gruppenanruf 1:1 Teams-Interoperabilitätsanruf Gruppenteams-Interoperabilitätsanruf
Communication Services-Benutzer ✔️
Microsoft 365-Benutzer ✔️

Vorgänge

In der folgenden Tabelle sehen Sie die Unterstützung für einzelne APIs des Anruf-SDK für einzelne Identitätstypen.

Vorgänge Communication Services-Benutzer Microsoft 365-Benutzer
Abrufen von Audiokonferenzdetails ✔️ ✔️

SDKs

Die folgende Tabelle zeigt die Unterstützung des Audiokonferenz-Features in einzelnen Azure Communication Services-SDKs.

Plattformen Web Web-Benutzeroberfläche iOS iOS-Benutzeroberfläche Android Android-Benutzeroberfläche Windows
Unterstützt ✔️

Das SDK installieren

Verwenden Sie den Befehl npm install, um die Common und Calling SDKs von Azure Communication Services für JavaScript zu installieren:

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

Initialisieren erforderlicher Objekte

Für die meisten Anrufvorgänge ist eine CallClient-Instanz erforderlich. Wenn Sie eine neue CallClient-Instanz erstellen, können Sie diese mit benutzerdefinierten Optionen wie einer Logger-Instanz konfigurieren.

Mit der CallClient-Instanz können Sie eine CallAgent-Instanz erstellen, indem Sie den Agent für die Anruferstellung (createCallAgent) aufrufen. Durch diese Methode wird ein CallAgent-Instanzobjekt asynchron zurückgegeben.

Die Methode createCallAgent verwendet CommunicationTokenCredential als Argument, welches ein Benutzerzugriffstoken akzeptiert.

Sie können die Methode getDeviceManager für die Instanz CallClient verwenden, um auf deviceManager zuzugreifen.

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()

Optimale Verwaltung der Konnektivität zwischen SDK und Microsoft-Infrastruktur

Die Call Agent-Instanz unterstützt Sie bei der Verwaltung von Anrufen (Annehmen oder Starten von Anrufen). Damit Ihr Calling SDK funktioniert, muss eine Verbindung mit der Microsoft-Infrastruktur hergestellt werden, um Benachrichtigungen über eingehende Anrufe zu erhalten und andere Anrufdetails zu koordinieren. Ihre Call Agent-Instanz kann zwei Status haben:

Connected (Verbunden) – Der connectionState-Wert Connected für Call Agent bedeutet, dass das Client-SDK verbunden ist und Benachrichtigungen von der Microsoft-Infrastruktur empfangen kann.

Disconnected (Getrennt) – Der connectionState-Wert Disconnected für Call Agent weist darauf hin, dass das SDK nicht ordnungsgemäß verbunden werden kann. Call Agent muss neu erstellt werden.

  • invalidToken: Wenn ein Token abgelaufen oder ungültig ist, wird die Call Agent-Instanz mit diesem Fehler getrennt.
  • connectionIssue: Wenn ein Problem mit der Verbindung zwischen dem Client und der Microsoft-Infrastruktur auftritt, gibt Call Agent nach mehreren Versuchen den connectionIssue-Fehler zurück.

Sie können überprüfen, ob Ihre lokale Call Agent-Instanz mit der Microsoft-Infrastruktur verbunden ist, indem Sie den aktuellen Wert der connectionState-Eigenschaft prüfen. Während eines aktiven Anrufs können Sie auf das connectionStateChanged-Ereignis lauschen, um zu bestimmen, ob sich der Call Agent-Status von Connected in Disconnected ändert.

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);

Microsoft Teams-Audiokonferenzen sind ein erweitertes Feature der Call-Kern-API. Sie müssen zunächst aufrufende Features aus dem aufrufenden SDK importieren:

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

Anschließend können Sie das API-Objekt für das Feature aus der Anrufinstanz abrufen:

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

Abrufen der Audiokonferenzdetails einer Besprechung

Verwenden Sie die folgende API, um die Audiokonferenzdetails einer Besprechung abzurufen

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);
}

Problembehandlung

Code Subcode Ergebniskategorie Ursache Lösung
400 45950 ExpectedError Das Audiokonferenzfeature ist nur in Teams-Besprechungen verfügbar. Nehmen Sie mit konfigurierten Audiokonferenzen an Teams-Besprechungen teil.
405 45951 ExpectedError Der ACS-Dienst hat Audiokonferenzen deaktiviert. Erstellen Sie ein Azure-Supportticket zum Anfordern von Unterstützung.
403 45952 ExpectedError Audiokonferenzdetails sind vor der Teilnahme an der Besprechung nicht verfügbar. Stellen Sie sicher, dass sich das Aufrufobjekt im Zustand connected befindet, bevor Sie die API aufrufen, um die Audiokonferenzdetails abzurufen.
403 45953 ExpectedError Audiokonferenzdetails sind im Wartebereich nicht verfügbar. Stellen Sie sicher, dass sich das Aufrufobjekt im Zustand connected befindet, bevor Sie die API aufrufen, um die Audiokonferenzdetails abzurufen.

Nächste Schritte