Собрание Microsoft Teams Аудиоконференции
В этой статье описывается, как использовать пакет SDK для вызовов Службы коммуникации Azure для получения сведений о собрании Microsoft Teams Аудиоконференции. Эта функция позволяет пользователям, которые уже подключены к собранию Microsoft Teams, иметь возможность получить идентификатор конференции и номер телефона, связанный с собранием. Функция "Собрание Teams" Аудиоконференции возвращает коллекцию всех платных и бесплатных номеров. Коллекция включает в себя сопутствующие имена стран или регионов и города, предоставляя пользователям контроль над тем, какие сведения о собрании Teams следует использовать.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Развернутый ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
- Маркер доступа пользователя для включения клиента для вызовов. Дополнительные сведения. Создание маркеров доступа и управление ими.
- (Необязательно.) Выполните инструкции из краткого руководства Добавление функции голосового вызова в приложение.
Поддержка
В этом разделе описывается поддержка Аудиоконференции в Службы коммуникации Azure.
Удостоверения и типы вызовов
В следующей таблице показана поддержка типов вызовов и удостоверений.
Удостоверения | Собрание Teams | Комната | Вызов 1:1 | Групповой вызов | Вызов взаимодействия Teams 1:1 | Вызов взаимодействия с Группами Teams |
---|---|---|---|---|---|---|
Пользователь служб коммуникации | ✔️ | |||||
Пользователь Microsoft 365 | ✔️ |
Операции
В следующей таблице показана поддержка отдельных API-интерфейсов при вызове пакета SDK для отдельных типов удостоверений.
Операции | Пользователь служб коммуникации | Пользователь Microsoft 365 |
---|---|---|
Получение сведений о аудиоконференции | ✔️ | ✔️ |
Пакеты SDK
В следующей таблице показана поддержка функции Аудиоконференции в отдельных пакетах SDK Службы коммуникации Azure.
Платформы | Интернет | Веб-интерфейс | iOS | Пользовательский интерфейс iOS | Android | Пользовательский интерфейс Android | Windows |
---|---|---|---|---|---|---|---|
Поддерживается | ✔️ |
Установка пакета SDK
npm install
Используйте команду для установки пакета SDK Службы коммуникации Azure Common and Calling SDK для JavaScript:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Инициализация обязательных объектов
Экземпляр CallClient
требуется для большинства операций вызова. При создании нового CallClient
экземпляра его можно настроить с помощью пользовательских параметров, таких как Logger
экземпляр.
С помощью экземпляра CallClient
можно создать CallAgent
экземпляр, вызвав его createCallAgent
. Этот метод асинхронно возвращает объект экземпляра CallAgent
.
Метод createCallAgent
использует CommunicationTokenCredential
в качестве аргумента. Он принимает маркер доступа пользователя.
Можно применить метод getDeviceManager
для экземпляра CallClient
, чтобы получить доступ к 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()
Управление подключением пакета SDK к инфраструктуре Майкрософт
Экземпляр Call Agent
помогает управлять вызовами (для присоединения или запуска вызовов). Для работы пакета SDK для вызова необходимо подключиться к инфраструктуре Майкрософт для получения уведомлений о входящих звонках и координации других сведений о вызове. У вас Call Agent
есть два возможных состояния:
Подключено — Call Agent
значение Connected
connectionStatue означает, что клиентский пакет SDK подключен и способен получать уведомления из инфраструктуры Майкрософт.
Отключено — Call Agent
значение connectionStatue состояний Disconnected
возникает проблема, которая препятствует правильному подключению пакета SDK. Call Agent
необходимо повторно создать.
invalidToken
: если срок действия маркера истек или является недопустимымCall Agent
экземпляром, отключается с этой ошибкой.connectionIssue
: если возникла проблема с клиентом, подключающимся к инфраструктуре Майкрософт, после многих повторных попытокCall Agent
возникаетconnectionIssue
ошибка.
Вы можете проверить, подключен ли локальный сервер Call Agent
к инфраструктуре Майкрософт, проверив текущее значение connectionState
свойства. Во время активного вызова можно прослушивать connectionStateChanged
событие, чтобы определить, изменяются ли Call Agent
изменения из подключенного к отключенном состоянию.
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 — это расширенная функция основного Call
API. Сначала необходимо импортировать функции вызова из пакета SDK для вызовов:
import { Features} from "@azure/communication-calling";
Затем можно получить объект API функций из экземпляра вызова:
const audioConferencingFeature = call.feature(Features.TeamsMeetingAudioConferencing);
Получение сведений о аудиоконференции собрания
Используйте следующий 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);
}
Устранение неполадок
Код | Дополнительный код | Категория результатов | Причина | Разрешение |
---|---|---|---|---|
400 | 45950 | ExpectedError | Функция аудиоконференций доступна только в собраниях Teams | Присоединение к собранию Teams с настроенным аудиоконференциям |
405 | 45951 | ExpectedError | Служба ACS отключена аудиоконференция | Создание запроса в службу поддержки Azure |
403 | 45952 | ExpectedError | Сведения о аудиоконференции недоступны перед присоединением к собранию | Убедитесь, что объект вызова находится в connected состоянии перед вызовом API для получения сведений о аудиоконференции |
403 | 45953 | ExpectedError | Сведения о аудиоконференции недоступны в лобби | Убедитесь, что объект вызова находится в connected состоянии перед вызовом API для получения сведений о аудиоконференции |