Compartir a través de


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

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 de Call 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 error connectionIssue.

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 identifieratributo 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.

Pasos siguientes