Reacciones
En este artículo se describe cómo implementar reacciones para los SDK de llamadas de Azure Communication Services. Esta función permite a los participantes en una llamada o reunión de grupo enviar y recibir reacciones con los participantes en Azure Communication Services y Microsoft Teams.
Los ajustes de la configuración y las políticas de Microsoft Teams controlan las reacciones de los usuarios en las reuniones de Teams. Para obtener más información, consulte Administrar las reacciones en las reuniones y seminarios web de Teams y Opciones de reunión en Microsoft Teams.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso de Communication Services implementado. Cree un recurso de Communication Services.
- Un token de acceso de usuario para habilitar el cliente de llamada. Para más información, consulte Inicio rápido: Creación y administración de tokens de acceso.
- Opcional: Complete la guía de inicio rápido para agregar llamadas de voz a la aplicación.
Límites de reacciones
El sistema extrae reacciones por lotes a intervalos regulares. La limitación de lotes actual es 20.000 reacciones extraídas cada 3 segundos.
Si el número de reacciones supera el límite, las reacciones sobrantes se enviarán en el siguiente lote.
Soporte técnico
Las siguientes tablas definen la compatibilidad con las reacciones en Azure Communication Services.
El soporte técnico para reuniones de Teams se basa en la directiva de Teams.
Identidades y tipos de llamadas
La siguiente tabla indica la compatibilidad de las reacciones con distintos tipos de llamadas e identidades.
Identities | Reunión de interoperabilidad de Teams | Sala | Llamada 1:1 | Llamada grupal | Llamada grupal interoperabilidad de Teams |
---|---|---|---|---|---|
Usuario de Communication Services | ✔️ | ✔️ | ✔️ | ✔️ | |
Usuario de Microsoft 365 | ✔️ | ✔️ | ✔️ |
Operations
La siguiente tabla muestra la compatibilidad de las reacciones en Calling SDK con tipos de identidad individuales.
Operations | Usuario de Communication Services | Usuario de Microsoft 365 |
---|---|---|
Enviar reacciones específicas (como, el amor, la risa, los aplausos, las sorpresas) | ✔️ | ✔️ |
Recibir reacciones específicas (como, amor, risa, aplauso, sorpresa) | ✔️ | ✔️ |
SDK
En la tabla siguiente se muestra la compatibilidad con la característica Modo juntos en SDK individuales de Azure Communication Services.
Platforms | Web | IU Web | iOS | Interfaz de usuario de iOS | Android | UI de Android | Windows |
---|---|---|---|---|---|---|---|
Se admite | ✔️ | ✔️ |
Instalación del SDK
Use el comando npm install
para instalar los SDK comunes y de llamada de Azure Communication Services para JavaScript:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Inicialización de los objetos necesarios
Se requiere una instancia de CallClient
para la mayoría de las operaciones de llamada. Al crear una nueva instancia de CallClient
, puede configurarla con opciones personalizadas, como una instancia de Logger
.
Con la instancia de CallClient
, puede crear una instancia de CallAgent
llamando al createCallAgent
. Este método devuelve un objeto de instancia CallAgent
de manera asincrónica.
El método createCallAgent
utiliza CommunicationTokenCredential
como argumento. Acepta un token de acceso de usuario.
Puede usar el método getDeviceManager
en la instancia de CallClient
para acceder a 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()
Cuál es la mejor forma de administrar la conectividad del SDK en la infraestructura de Microsoft
La instancia de Call Agent
le ayuda a administrar llamadas (para unirse o iniciar llamadas). Para trabajar con el SDK de llamadas, debe conectarse a la infraestructura de Microsoft para obtener notificaciones de llamadas entrantes y coordinar otros detalles de la llamada. Call Agent
tiene dos posibles estados:
Conectado: un valor connectionStatue Call Agent
con estado Connected
significa que el SDK de cliente está conectado y es capaz de recibir notificaciones de la infraestructura de Microsoft.
Desconectado: un valor connectionStatue Call Agent
con estado Disconnected
indica que hay un problema que impide que el SDK se conecte correctamente. Call Agent
se debe volver a crear.
invalidToken
: si un token ha expirado o no es válido, la instancia deCall Agent
se desconecta con este error.connectionIssue
: si hay un problema cuando el cliente se conecta a la infraestructura de Microsoft, después de muchos reintentos,Call Agent
expone el errorconnectionIssue
.
Para comprobar si el Call Agent
local está conectado a la infraestructura de Microsoft, inspeccione el valor actual de la propiedad connectionState
. Durante una llamada activa, puede escuchar el evento connectionStateChanged
para determinar si Call Agent
cambia de Conectado a Desconectado.
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);
Implementar reacciones para los participantes de la reunión
En los participantes de Azure Communication Services pueden enviar y recibir reacciones durante una llamada grupal:
- Me gusta
- Me encanta
- Aplauso
- Carcajada
- Sorpresa
Para enviar una reacción, use la API sendReaction(reactionMessage)
. Para recibir una reacción, el mensaje se compila con el tipo ReactionMessage
mediante Reaction
enumeraciones como atributo.
Es necesario suscribirse a los eventos que proporcionan los datos de eventos del suscriptor:
export interface ReactionEventPayload {
/**
* identifier for a participant
*/
identifier: CommunicationUserIdentifier | MicrosoftTeamsUserIdentifier;
/**
* reaction type received
*/
reactionMessage: ReactionMessage;
}
Puede determinar qué tipo de reacción procede de cada participante utilizando el identifier
atributo y obteniendo el tipo de reacción deReactionMessage
.
Ejemplo sobre cómo enviar una reacción en una reunión
const reaction = call.feature(SDK.Features.Reaction);
const reactionMessage: SDK.ReactionMessage = {
reactionType: 'like'
};
await reaction.sendReaction(reactionMessage);
Ejemplo de cómo recibir una reacción en una reunión
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));
}
Puntos clave al usar reacciones
- Las reacciones son compatibles con escenarios de interoperabilidad de Microsoft Teams. El soporte técnico se basa en la directiva de Teams.
- Las reacciones se admiten en el SDK de llamadas web.
- Las reacciones no se admiten actualmente en los SDK nativos.