Audiokonference schůzek v Microsoft Teams
Tento článek popisuje, jak pomocí sady SDK pro volání služeb Azure Communication Services načíst podrobnosti o schůzce Microsoft Teams Audiokonference. Tato funkce umožňuje uživatelům, kteří jsou už připojení ke schůzce Microsoft Teams, získat ID konference a telefonní číslo pro telefonické připojení přidružené ke schůzce. Funkce Audiokonference schůzky v Teams vrací kolekci všech bezplatných a bezplatných čísel. Kolekce obsahuje souběžné názvy zemí/oblastí a názvy měst a poskytují uživatelům kontrolu nad podrobnostmi o tom, které podrobnosti o vytáčené schůzce Teams použít.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Nasazený prostředek komunikační služby. Vytvořte prostředek komunikační služby.
- Přístupový token uživatele pro povolení volajícího klienta. Další informace. Vytváření a správa přístupových tokenů
- Volitelné: Dokončete rychlý start a přidejte do aplikace hlasové volání.
Technická podpora
Tato část popisuje podporu Audiokonference ve službách Azure Communication Services.
Identity a typy volání
Následující tabulka uvádí podporu pro typy volání a identit.
Identity | Schůzka v Teams | Místnost | 1:1 hovor | Skupinový hovor | 1:1 Zprostředkovatele spolupráce v Teams | Skupinový interopový hovor v Teams |
---|---|---|---|---|---|---|
Uživatel komunikačních služeb | ✔️ | |||||
Uživatel Microsoftu 365 | ✔️ |
Operace
Následující tabulka uvádí podporu jednotlivých rozhraní API při volání sady SDK pro jednotlivé typy identit.
Operace | Uživatel komunikačních služeb | Uživatel Microsoftu 365 |
---|---|---|
Získání podrobností o audiokonferenci | ✔️ | ✔️ |
Sady SDK
Následující tabulka uvádí podporu funkce Audiokonference v jednotlivých sadách SDK služeb Azure Communication Services.
Platformy | Web | Webové uživatelské rozhraní | iOS | Uživatelské rozhraní iOS | Android | Uživatelské rozhraní Androidu | Windows |
---|---|---|---|---|---|---|---|
Je podporováno. | ✔️ |
Nainstalujte sadu SDK .
npm install
Pomocí příkazu nainstalujte sadu AZURE Communication Services Common and Calling SDK pro JavaScript:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Inicializace požadovaných objektů
Pro CallClient
většinu operací volání se vyžaduje instance. Když vytvoříte novou CallClient
instanci, můžete ji nakonfigurovat s vlastními možnostmi, jako je Logger
instance.
CallClient
S instancí můžete vytvořit CallAgent
instanci voláním createCallAgent
. Tato metoda asynchronně vrátí CallAgent
objekt instance.
Metoda createCallAgent
se používá CommunicationTokenCredential
jako argument. Přijímá přístupový token uživatele.
K přístupu deviceManager
můžete použít metodu getDeviceManager
v CallClient
instanci .
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()
Jak nejlépe spravovat připojení sady SDK k infrastruktuře Microsoftu
Tato Call Agent
instance vám pomůže spravovat hovory (pro připojení nebo zahájení hovorů). Aby bylo možné pracovat s vaší sadou SDK volání, musí se připojit k infrastruktuře Microsoftu, aby bylo možné dostávat oznámení o příchozích hovorech a koordinovat další podrobnosti volání. Máte Call Agent
dva možné stavy:
Připojeno – Call Agent
Hodnota connectionStatue znamená, Connected
že klientská sada SDK je připojená a dokáže přijímat oznámení z infrastruktury Microsoftu.
Odpojeno – Call Agent
Hodnota Disconnected
connectionStatue stavů existuje problém, který brání sadě SDK, aby se správně připojil. Call Agent
by se mělo znovu vytvořit.
invalidToken
: Pokud vypršela platnost tokenu nebo je neplatnáCall Agent
instance, odpojí se s touto chybou.connectionIssue
: Pokud došlo k problému s klientem, který se připojuje k infrascture Microsoftu, po mnoha opakovaných pokusechCall Agent
connectionIssue
se zobrazí chyba.
Zkontrolujte, jestli je vaše místní Call Agent
infrastruktura připojená k infrastruktuře Microsoftu, a to kontrolou aktuální hodnoty connectionState
vlastnosti. Během aktivního volání můžete naslouchat connectionStateChanged
události a zjistit, jestli Call Agent
se změny ze stavu Připojeno k Odpojeno .
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 Meeting Audiokonference je rozšířená funkce základního Call
rozhraní API. Nejdřív je potřeba importovat funkce volání ze sady SDK pro volání:
import { Features} from "@azure/communication-calling";
Objekt rozhraní API funkce pak můžete získat z instance volání:
const audioConferencingFeature = call.feature(Features.TeamsMeetingAudioConferencing);
Získání podrobností o audiokonferenci schůzky
K získání podrobností o audiokonferenci schůzky použijte následující rozhraní API.
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);
}
Řešení problému
Kód | Podkód | Kategorie výsledků | Důvod | Rozlišení |
---|---|---|---|---|
400 | 45950 | ExpectedError | Funkce audiokonferencí je dostupná jenom na schůzkách v Teams. | Připojení ke schůzce v Teams pomocí nakonfigurovaných audiokonferencí |
405 | 45951 | ExpectedError | Služba ACS zakázala audiokonference | Vytvoření lístku podpory Azure pro žádost o pomoc |
403 | 45952 | ExpectedError | Podrobnosti audiokonferencí nejsou před připojením ke schůzce k dispozici. | Před vyvoláním rozhraní API za účelem načtení podrobností audiokonferencí se ujistěte, že je objekt volání ve connected stavu. |
403 | 45953 | ExpectedError | Podrobnosti audiokonferencí nejsou v předsálí k dispozici. | Před vyvoláním rozhraní API za účelem načtení podrobností audiokonferencí se ujistěte, že je objekt volání ve connected stavu. |