Udostępnij za pośrednictwem


Konferencje głosowe w ramach spotkań Microsoft Teams

W tym artykule opisano, jak używać SDK do rozmów usługi Azure Communication Services, aby uzyskać szczegóły konferencji audio w spotkaniach Microsoft Teams. Ta funkcja umożliwia użytkownikom, którzy są już połączeni ze spotkaniem w Microsoft Teams, uzyskanie identyfikatora konferencji i numeru telefonu powiązanego ze spotkaniem. Funkcja konferencji audio w usłudze Teams zwraca kolekcję wszystkich płatnych i bezpłatnych numerów. Kolekcja zawiera towarzyszące nazwy krajów/regionów i nazwy miast, dając użytkownikom kontrolę nad tym, których szczegóły dotyczące numerów wdzwaniania w usłudze Teams będą używane.

Wymagania wstępne

Wsparcie

W tej sekcji opisano obsługę dla konferencji audio w usługach komunikacyjnych Azure.

Tożsamości i typy wywołań

W poniższej tabeli przedstawiono obsługę typów połączeń i tożsamości.

Tożsamości Spotkanie Teams Pokój Połączenie 1:1 Rozmowa grupowa 1:1 Połączenie międzyoperacyjne w usłudze Teams Połączenie międzyaplikacyjne Group Teams
Użytkownik usług komunikacyjnych ✔️
Użytkownik platformy Microsoft 365 ✔️

Operacje

W poniższej tabeli przedstawiono obsługę poszczególnych interfejsów API w zakresie wywołań SDK dla różnych typów tożsamości.

Operacje Użytkownik usług komunikacyjnych Użytkownik platformy Microsoft 365
Uzyskiwanie szczegółów konferencji głosowych ✔️ ✔️

Zestawy SDK

W poniższej tabeli przedstawiono obsługę funkcji Konferencje głosowe w poszczególnych zestawach SDK usług Azure Communication Services.

Platformy Internet Interfejs użytkownika sieci Web Ios Interfejs użytkownika systemu iOS Android Interfejs użytkownika systemu Android Windows
Jest obsługiwana ✔️

Instalacja zestawu SDK

Użyj polecenia , npm install aby zainstalować wspólny zestaw SDK usług Azure Communication Services i wywołujący dla języka JavaScript:

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

Inicjowanie wymaganych obiektów

Wystąpienie CallClient jest wymagane w przypadku większości operacji wywołania. Podczas tworzenia nowego CallClient wystąpienia można skonfigurować je za pomocą opcji niestandardowych, takich jak Logger wystąpienie.

CallClient Za pomocą wystąpienia można utworzyć CallAgent wystąpienie, wywołując element createCallAgent. Ta metoda asynchronicznie zwraca CallAgent obiekt wystąpienia.

Metoda createCallAgent używa CommunicationTokenCredential jako argumentu. Akceptuje token dostępu użytkownika.

Aby uzyskać dostęp getDeviceManagerdo obiektu , możesz użyć CallClient metody w wystąpieniu 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()

Zarządzanie łącznością zestawu SDK z infrastrukturą firmy Microsoft

Wystąpienie Call Agent pomaga zarządzać wywołaniami (aby dołączyć lub uruchomić wywołania). Aby można było pracować z zestawem SDK wywołującym, należy połączyć się z infrastrukturą firmy Microsoft, aby otrzymywać powiadomienia o połączeniach przychodzących i koordynować inne szczegóły połączeń. Istnieją Call Agent dwa możliwe stany:

PołączonoCall Agent wartość Connected connectionStatue oznacza, że zestaw SDK klienta jest połączony i może odbierać powiadomienia z infrastruktury firmy Microsoft.

RozłączoneCall Agent wartość Disconnected connectionStatue stanów występuje problem uniemożliwiający prawidłowe nawiązywanie połączenia z zestawem SDK. Call Agent należy utworzyć ponownie.

  • invalidToken: Jeśli token wygasł lub jest nieprawidłowe Call Agent wystąpienie rozłącza się z tym błędem.
  • connectionIssue: jeśli występuje problem z połączeniem klienta z infrastrukturą firmy Microsoft, po wielu ponownych próbach Call Agent uwidacznia błąd connectionIssue.

Możesz sprawdzić, czy środowisko lokalne Call Agent jest połączone z infrastrukturą firmy Microsoft, sprawdzając bieżącą connectionState wartość właściwości. Podczas aktywnego wywołania można nasłuchiwać zdarzenia, connectionStateChanged aby określić, czy Call Agent zmiany ze stanu Połączono z Odłączone .

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

Konferencje głosowe spotkań w usłudze Microsoft Teams to rozszerzona funkcja podstawowego Call interfejsu API. Najpierw należy zaimportować funkcje wywołujące z zestawu Sdk wywołującego:

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

Następnie możesz pobrać obiekt interfejsu API funkcji z wystąpienia wywołania:

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

Uzyskiwanie szczegółów konferencji głosowych na spotkaniu

Użyj następującego interfejsu API, aby uzyskać szczegóły konferencji głosowych spotkania

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

Rozwiązywanie problemów

Kod Podkod Kategoria wyników Przyczyna Rozwiązanie
400 45950 Oczekiwany błąd Funkcja konferencji głosowych jest dostępna tylko w spotkaniach usługi Teams Dołączanie do spotkania w usłudze Teams przy użyciu skonfigurowanych konferencji głosowych
405 45951 Oczekiwany błąd Usługa ACS wyłączyła konferencje głosowe Tworzenie biletu pomocy technicznej platformy Azure w celu żądania pomocy
403 45952 Oczekiwany błąd Szczegóły konferencji głosowych nie są dostępne przed dołączeniem do spotkania Upewnij się, że obiekt wywołania jest w connected stanie przed wywołaniem interfejsu API, aby pobrać szczegóły dotyczące konferencji audio
403 45953 Oczekiwany błąd Szczegóły konferencji głosowych nie są dostępne w holu Upewnij się, że obiekt wywołania jest w connected stanie przed wywołaniem interfejsu API, aby pobrać szczegóły dotyczące konferencji audio

Następne kroki