Réactions
Cet article décrit comment mettre en œuvre des réactions pour les SDK d'appel d’Azure Communication Services. Cette fonctionnalité permet aux participants d'un appel ou d'une réunion de groupe d'envoyer et de recevoir des réactions avec les participants d'Azure Communication Services et de Microsoft Teams.
Les paramètres de configuration et de stratégie de Microsoft Teams contrôlent les réactions des utilisateurs dans les réunions Teams. Pour plus d'informations, voir Gérer les réactions dans les réunions et webinaires Teams et Options de réunion dans Microsoft Teams.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource Communication Services déployée. Créez une ressource Communication Services.
- Un jeton d’accès utilisateur pour activer le client appelant. Pour plus d’informations, consultez Créer et gérer des jetons d’accès.
- Facultatif : suivez le guide de démarrage rapide permettant d’ajouter l’appel vocal à votre application.
Limites des réactions
Le système extrait les réactions par lots à intervalles réguliers. La limitation actuelle des lots est de 20 000 réactions extraites toutes les 3 secondes.
Si le nombre de réactions dépasse la limite, les réactions restantes sont envoyées dans le lot suivant.
Support
Les tableaux suivants définissent la prise en charge des réactions dans Azure Communication Services.
Réunion Teams, le support est basé sur la stratégie de Teams.
Identités et types d’appels
Le tableau suivant présente la prise en charge des réactions dans les différents types d'appels et d'identités.
Identités | Réunion interop des équipes | Salle | Appel 1:1 | Appel de groupe | Appel de groupe interop des équipes |
---|---|---|---|---|---|
Utilisateur de Communication Services | ✔️ | ✔️ | ✔️ | ✔️ | |
Utilisateur Microsoft 365 | ✔️ | ✔️ | ✔️ |
Opérations
Le tableau suivant montre la prise en charge des réactions dans l’appel SDK pour les différents types d'identité.
Opérations | Utilisateur de Communication Services | Utilisateur Microsoft 365 |
---|---|---|
Envoyer des réactions spécifiques (comme, amour, rire, applaudissements, surpris) | ✔️ | ✔️ |
Recevoir des réactions spécifiques (comme, amour, rire, applaudissements, surpris) | ✔️ | ✔️ |
SDK
Le tableau suivant indique la prise en charge du mode Ensemble dans les différents kits SDK Azure Communication Services.
Platforms | web | Interface utilisateur web | iOS | Interface utilisateur iOS | Android | Interface utilisateur Android | Windows |
---|---|---|---|---|---|---|---|
Est pris en charge | ✔️ | ✔️ |
Installer le SDK
Utilisez la commande npm install
pour installer le SDK Azure Communication Services Common et le SDK Azure Communication Services Calling pour JavaScript :
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Initialiser les objets nécessaires
Une instance CallClient
est requise pour la plupart des opérations d’appel. Lorsque vous créez une instance CallClient
, vous pouvez la configurer avec des options personnalisées comme une instance Logger
.
Avec l’instance CallClient
, vous pouvez créer une instance CallAgent
en appelant createCallAgent
. Cette méthode renvoie un objet d’instance CallAgent
de manière asynchrone.
La méthode createCallAgent
utilise CommunicationTokenCredential
comme argument. Elle accepte un jeton d’accès utilisateur.
Vous pouvez utiliser la méthode getDeviceManager
sur l’instance CallClient
pour accéder à 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()
Comment gérer au mieux la connectivité du SDK à l’infrastructure Microsoft
L’instance Call Agent
vous aide à gérer les appels (pour rejoindre ou démarrer des appels). Pour fonctionner, votre SDK d’appel doit se connecter à l’infrastructure Microsoft pour recevoir des notifications d’appels entrants et coordonner d’autres détails de l’appel. Votre Call Agent
a deux états possibles :
Connecté : un Call Agent
dont la valeur connectionStatue est égale à Connected
signifie que le SDK client est connecté et capable de recevoir des notifications de l’infrastructure Microsoft.
Déconnecté : un Call Agent
dont la valeur connectionStatue est égale à Disconnected
indique qu’un problème empêche le SDK de se connecter correctement. Call Agent
doit être recréé.
invalidToken
: si un jeton a expiré ou n’est pas valide, l’instanceCall Agent
se déconnecte avec cette erreur.connectionIssue
: en cas de problème de connexion du client à l’infrastructure Microsoft, après plusieurs tentatives,Call Agent
lève l’erreurconnectionIssue
.
Vous pouvez vérifier si votre Call Agent
local est connecté à l’infrastructure Microsoft en inspectant la valeur actuelle de la propriété connectionState
. Pendant un appel actif, vous pouvez écouter l’événement connectionStateChanged
pour déterminer si Call Agent
passe de l’état Connecté à l’état Déconnecté.
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);
Implémenter des réactions pour les participants à la réunion
Dans Azure Communication Services, les participants peuvent envoyer et recevoir des réactions pendant un appel de groupe :
- J'aime
- Love
- Applaudissements
- Rire
- Surprise
Pour envoyer une réaction, utilisez l’API sendReaction(reactionMessage)
. Pour recevoir une réaction, le message est construit avec un type ReactionMessage
utilisant les Reaction
enums comme attribut.
Vous devez vous abonner aux événements qui fournissent les données d’événement de l’abonné(e) :
export interface ReactionEventPayload {
/**
* identifier for a participant
*/
identifier: CommunicationUserIdentifier | MicrosoftTeamsUserIdentifier;
/**
* reaction type received
*/
reactionMessage: ReactionMessage;
}
Vous pouvez déterminer quelle réaction provient de quel(le) participant(e) en utilisant l’attribut identifier
et obtient le type de réaction de ReactionMessage
.
Échantillon montrant l’envoi d’une réaction dans une réunion
const reaction = call.feature(SDK.Features.Reaction);
const reactionMessage: SDK.ReactionMessage = {
reactionType: 'like'
};
await reaction.sendReaction(reactionMessage);
Échantillon montrant la façon de recevoir une réaction lors d’une réunion
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));
}
Points clés lors de l’utilisation de réactions
- Les réactions sont prises en charge pour les scénarios d’interopérabilité Microsoft Teams. Le support est basé sur la stratégie de Teams
- Les réactions sont prises en charge dans le Kit de développement logiciel (SDK) Web Calling.
- Les réactions ne sont actuellement pas prises en charge dans les kits SDK natifs.