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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Token di accesso utente per abilitare il client chiamante. Per altre informazioni, vedere Creare e gestire i token di accesso.
- Facoltativo: completare la guida introduttiva per aggiungere chiamate vocali all'applicazione.
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'istanzaCall Agent
si disconnette con questo errore.connectionIssue
: se si verifica un problema con il client che si connette a Microsoft infrascture, dopo molti tentativiCall Agent
espone l'erroreconnectionIssue
.
È 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.