Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как реализовать реакции в пакете SDK для звонков Azure Communication Services. Эта возможность позволяет участникам группового звонка или собрания отправлять и получать реакции с участниками Службы коммуникации Azure и Microsoft Teams.
Параметры конфигурации и политики в Microsoft Teams определяют реакции пользователей на собрания Teams. См. разделы "Управление реакциями в собраниях и вебинарах Teams" и "Параметры собраний в Microsoft Teams" для получения дополнительной информации.
Предварительные условия
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Развернутый ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
- Токен доступа пользователя для активации клиента выполнения вызовов. Дополнительные сведения см. в статье о создании маркеров доступа и управлении ими.
- Необязательно: Выполните краткое руководство, чтобы добавить функцию голосового вызова в приложение.
Ограничения реакций
Система извлекает реакции по пакетам через регулярные интервалы. Текущее ограничение пакета составляет 20 000 извлекаемых реакций каждые 3 секунды.
Если количество реакций превышает предел, оставшиеся реакции отправляются в следующем пакете.
Поддержка
Следующие таблицы определяют поддержку реакций в Службах коммуникации Azure.
Поддержка собраний Teams основана на политике Teams.
Идентичности и типы вызовов
В следующей таблице показана поддержка реакций для различных типов вызовов и идентичностей.
Удостоверения | Собрание по взаимодействию в Teams | Комната | Личный разговор 1:1 | Групповой вызов | Вызов группы взаимодействия Teams |
---|---|---|---|---|---|
Пользователь служб коммуникации | ✔️ | ✔️ | ✔️ | ✔️ | |
Пользователь Microsoft 365 | ✔️ | ✔️ | ✔️ |
Операции
В следующей таблице показаны реакции на поддержку вызова пакета SDK для отдельных типов удостоверений.
Операции | Пользователь служб коммуникации | Пользователь Microsoft 365 |
---|---|---|
Отправить конкретные реакции (лайк, любовь, смех, аплодисменты, удивление) | ✔️ | ✔️ |
Получите конкретные реакции (например, нравится, любовь, смех, аплодисменты, удивление) | ✔️ | ✔️ |
Пакеты SDK
В следующей таблице показана поддержка функций "Режим объединения" для отдельных пакетов SDK служб коммуникации Azure.
Платформы | Интернет | Веб-интерфейс | iOS | Пользовательский интерфейс iOS | Андроид | Пользовательский интерфейс Android | Виндоус |
---|---|---|---|---|---|---|---|
Поддерживается | ✔️ | ✔️ |
Установка пакета 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
connectionStatus Disconnected
указывает на проблему, которая мешает правильному подключению SDK.
Call Agent
необходимо повторно создать.
-
invalidToken
: если срок действия токена истек или он является недействительным,Call Agent
экземпляр отключается с этой ошибкой. - Если у клиента возникает проблема с подключением к инфраструктуре Майкрософт, после многих повторных попыток проявляется ошибка #D2.
Вы можете проверить, подключен ли локальный сервер 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);
Внедрение реакций для участников встречи
В Службы коммуникации Azure участники могут отправлять и получать реакции во время группового вызова:
- Любить
- Любовь
- Аплодисменты
- Смеяться
- Сюрприз
Чтобы отправить реакцию, используйте sendReaction(reactionMessage)
. Чтобы получить реакцию, сообщение строится с типом ReactionMessage
с использованием Reaction
перечислений в качестве атрибута.
Необходимо подписаться на события, которые предоставляют данные, относящиеся к событиям подписчика.
export interface ReactionEventPayload {
/**
* identifier for a participant
*/
identifier: CommunicationUserIdentifier | MicrosoftTeamsUserIdentifier;
/**
* reaction type received
*/
reactionMessage: ReactionMessage;
}
Вы можете определить, какая реакция поступает от какого участника, используя identifier
атрибут, и получить тип реакции.ReactionMessage
Пример того, как отправить реакцию на собрании
const reaction = call.feature(SDK.Features.Reaction);
const reactionMessage: SDK.ReactionMessage = {
reactionType: 'like'
};
await reaction.sendReaction(reactionMessage);
Пример, показывающий, как получить реакцию на собрании
const reaction = call.feature(SDK.Features.Reaction);
reaction.on('reaction', event => {
// user identifier
console.log("User Mri - " + event.identifier);
// received reaction
console.log("User Mri - " + event.reactionMessage.reactionType);
// reaction message
console.log("reaction message - " + JSON.stringify(event.reactionMessage));
}
Ключевые моменты при использовании реакций
- Реакции поддерживаются для сценариев взаимодействия Microsoft Teams. Поддержка основана на политике Teams.
- Реакции поддерживаются в пакете SDK для веб-звонков.
- Реакции в настоящее время не поддерживаются в нативных пакетах SDK.