Condividi tramite


Reazioni

Questo articolo descrive come implementare le reazioni per Servizi di comunicazione di Azure SDK per chiamate. Questa funzionalità consente ai partecipanti di una chiamata di gruppo o a una riunione di inviare e ricevere reazioni con i partecipanti a Servizi di comunicazione di Azure e Microsoft Teams.

Le impostazioni di configurazione e criteri in Microsoft Teams controllano le reazioni degli utenti nelle riunioni di Teams. Per altre informazioni, vedere Gestire le reazioni nelle riunioni di Teams e nei webinar e nelle opzioni riunione in Microsoft Teams.

Prerequisiti

Limiti sulle reazioni

Il sistema esegue il pull delle reazioni in batch a intervalli regolari. La limitazione corrente del batch è di 20.000 reazioni estratte ogni 3 secondi.

Se il numero di reazioni supera il limite, le reazioni di sinistra vengono inviate nel batch successivo.

Supporto tecnico

Le tabelle seguenti definiscono il supporto per le reazioni in Servizi di comunicazione di Azure.

Il supporto delle riunioni di Teams si basa sui criteri di Teams.

Identità e tipi di chiamata

La tabella seguente illustra il supporto per le reazioni in diversi tipi di chiamata e identità.

Identità Riunione di interoperabilità di Teams Club 1:1 Chiamata Chiamata di gruppo Chiamata al gruppo di interoperabilità di Teams
Utente di Servizi di comunicazione ✔️ ✔️ ✔️ ✔️
Utente di Microsoft 365 ✔️ ✔️ ✔️

Operazioni

La tabella seguente illustra il supporto per le reazioni in Calling SDK a singoli tipi di identità.

Operazioni Utente di Servizi di comunicazione Utente di Microsoft 365
Inviare reazioni specifiche (come, amore, ridere, applausi, sorpreso) ✔️ ✔️
Ricevere reazioni specifiche (come, amore, ridere, applausi, sorpreso) ✔️ ✔️

SDK

La tabella seguente illustra il supporto per la funzionalità Together Mode in singoli SDK Servizi di comunicazione di Azure.

Piattaforme Web Interfaccia utente Web iOS Interfaccia utente iOS Android Interfaccia utente Android Finestre
Supportato ✔️ ✔️

Installazione dell'SDK

Usare il comando npm install per installare SDK comuni e di chiamata di Servizi di comunicazione di Azure per JavaScript:

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Inizializzare gli oggetti necessari

Per la maggior parte delle operazioni di chiamata è necessaria un'istanza di CallClient. Quando si crea una nuova istanza di CallClient, è possibile configurarla con opzioni personalizzate come un'istanza di Logger.

Con l'istanza di CallClient è possibile creare un'istanza di CallAgent chiamando il createCallAgent. Questo metodo restituisce in modo asincrono un oggetto istanza CallAgent.

Il metodo createCallAgent usa CommunicationTokenCredential come argomento. Accetta un token di accesso utente.

È possibile usare il metodo getDeviceManager nell'istanza di CallClient per accedere 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()

Come gestire al meglio la connettività dell'SDK all'infrastruttura Microsoft

L'istanza Call Agent consente di gestire le chiamate (per partecipare o avviare le chiamate). Per lavorare con l'SDK per chiamate, è necessario connettersi all'infrastruttura Microsoft per ricevere notifiche delle chiamate in arrivo e coordinare altri dettagli delle chiamate. Call Agent ha due possibili stati:

Connesso : un valore connectionStatue Call Agent di Connected indica che l'SDK client è connesso e in grado di ricevere notifiche dall'infrastruttura Microsoft.

Disconnesso : un valore connectionStatue Call Agent di Disconnected indica un problema che impedisce all'SDK di connettersi correttamente. Call Agent deve essere ricreato.

  • invalidToken: se un token è scaduto o non è valido l'istanza Call Agent si disconnette con questo errore.
  • connectionIssue: se si verifica un problema con il client che si connette a Microsoft infrascture, dopo molti tentativi Call Agent espone l'errore connectionIssue.

È possibile verificare se l'infrastruttura locale Call Agent è connessa all'infrastruttura Microsoft controllando il valore corrente della proprietà connectionState. Durante una chiamata attiva è possibile restare in ascolto dell'evento connectionStateChanged per determinare se Call Agent cambia dallo stato Connesso a Disconnesso.

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);

Implementare le reazioni per i partecipanti alla riunione

In Servizi di comunicazione di Azure i partecipanti possono inviare e ricevere reazioni durante una chiamata di gruppo:

  • Mi piace
  • Amore
  • Applauso
  • Risata
  • Sorpresa

Per inviare una reazione, usare l'API sendReaction(reactionMessage). Per ricevere una reazione, il messaggio viene compilato con il tipo ReactionMessage usando Reaction enumerazioni come attributo.

È necessario sottoscrivere eventi che forniscono i dati dell'evento del sottoscrittore:

export interface ReactionEventPayload {
    /**
     * identifier for a participant
     */
    identifier: CommunicationUserIdentifier | MicrosoftTeamsUserIdentifier;
    /**
     * reaction type received
     */
    reactionMessage: ReactionMessage;
}

È possibile determinare quale reazione proviene da quale partecipante usa l'attributo identifier e ottenere il tipo di reazione da ReactionMessage.

Esempio che illustra come inviare una reazione in una riunione

const reaction = call.feature(SDK.Features.Reaction);
const reactionMessage: SDK.ReactionMessage = {
       reactionType: 'like'
};
await reaction.sendReaction(reactionMessage);

Esempio che mostra come ricevere una reazione in una riunione

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));
}

Punti chiave quando si usano le reazioni

  • Le reazioni sono supportate per gli scenari di interoperabilità di Microsoft Teams. Il supporto è basato sui criteri di Teams.
  • Le reazioni sono supportate nell’SDK Web Calling.
  • Le reazioni non sono attualmente supportate negli SDK nativi.

Passaggi successivi