Freigeben über


Reaktionen

In diesem Artikel wird beschrieben, wie Sie Reaktionen für Azure Communication Services-Anruf-SDKs implementieren. Mit dieser Funktion können Teilnehmende an einem Gruppenanruf oder einer Besprechung Reaktionen an Teilnehmer in Azure Communication Services und Microsoft Teams senden und empfangen.

Reaktionen für Benutzer in Microsoft Teams-Besprechungen werden durch die Konfigurations- und Richtlinieneinstellungen in Teams gesteuert. Weitere Informationen finden Sie unter Verwalten von Reaktionen in Teams-Besprechungen und -Webinaren und Besprechungsoptionen in Microsoft Teams.

Voraussetzungen

Einschränkungen bei Reaktionen

Das System pullt Reaktionen in regelmäßigen Abständen in Batches. Die aktuelle Batchbeschränkung beträgt 20.000 Reaktionen, die alle 3 Sekunden gepullt werden.

Wenn die Anzahl der Reaktionen den Grenzwert überschreitet, werden die verbleibenden Reaktionen im nächsten Batch gesendet.

Unterstützung

In den folgenden Tabellen wird die Unterstützung von Reaktionen in Azure Communication Services definiert.

Die Unterstützung von Teams-Besprechungen basiert auf der Teams-Richtlinie.

Identitäten und Anruftypen

Die folgende Tabelle zeigt die Unterstützung von Reaktionen in verschiedenen Anruf- und Identitätstypen.

Identities Teams-Interoperabilitätsbesprechung Raum 1:1-Anruf Gruppenanruf Teams-Interoperabilitätsgruppenanruf
Communication Services-Benutzer ✔️ ✔️ ✔️ ✔️
Microsoft 365-Benutzer ✔️ ✔️ ✔️

Vorgänge

Die folgende Tabelle zeigt die Unterstützung von Reaktionen im Anruf-SDK für einzelne Identitätstypen.

Vorgänge Communication Services-Benutzer Microsoft 365-Benutzer
Senden von bestimmten Reaktionen (z. B. Gefällt mir, Liebe, Lachen, Applaus, Überrascht) ✔️ ✔️
Empfangen von bestimmten Reaktionen (z. B. Gefällt mir, Liebe, Lachen, Applaus, Überrascht) ✔️ ✔️

SDKs

Die folgende Tabelle zeigt die Unterstützung des Zusammen-Modus-Features in einzelnen Azure Communication Services-SDKs.

Plattformen Web Web-Benutzeroberfläche iOS iOS-Benutzeroberfläche Android Android-Benutzeroberfläche Windows
Unterstützt ✔️ ✔️

Das SDK installieren

Verwenden Sie den Befehl npm install, um die Common und Calling SDKs von Azure Communication Services für JavaScript zu installieren:

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

Initialisieren erforderlicher Objekte

Für die meisten Anrufvorgänge ist eine CallClient-Instanz erforderlich. Wenn Sie eine neue CallClient-Instanz erstellen, können Sie diese mit benutzerdefinierten Optionen wie einer Logger-Instanz konfigurieren.

Mit der CallClient-Instanz können Sie eine CallAgent-Instanz erstellen, indem Sie den Agent für die Anruferstellung (createCallAgent) aufrufen. Durch diese Methode wird ein CallAgent-Instanzobjekt asynchron zurückgegeben.

Die Methode createCallAgent verwendet CommunicationTokenCredential als Argument, welches ein Benutzerzugriffstoken akzeptiert.

Sie können die Methode getDeviceManager für die Instanz CallClient verwenden, um auf deviceManager zuzugreifen.

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

Optimale Verwaltung der Konnektivität zwischen SDK und Microsoft-Infrastruktur

Die Call Agent-Instanz unterstützt Sie bei der Verwaltung von Anrufen (Annehmen oder Starten von Anrufen). Damit Ihr Calling SDK funktioniert, muss eine Verbindung mit der Microsoft-Infrastruktur hergestellt werden, um Benachrichtigungen über eingehende Anrufe zu erhalten und andere Anrufdetails zu koordinieren. Ihre Call Agent-Instanz kann zwei Status haben:

Connected (Verbunden) – Der connectionState-Wert Connected für Call Agent bedeutet, dass das Client-SDK verbunden ist und Benachrichtigungen von der Microsoft-Infrastruktur empfangen kann.

Disconnected (Getrennt) – Der connectionState-Wert Disconnected für Call Agent weist darauf hin, dass das SDK nicht ordnungsgemäß verbunden werden kann. Call Agent muss neu erstellt werden.

  • invalidToken: Wenn ein Token abgelaufen oder ungültig ist, wird die Call Agent-Instanz mit diesem Fehler getrennt.
  • connectionIssue: Wenn ein Problem mit der Verbindung zwischen dem Client und der Microsoft-Infrastruktur auftritt, gibt Call Agent nach mehreren Versuchen den connectionIssue-Fehler zurück.

Sie können überprüfen, ob Ihre lokale Call Agent-Instanz mit der Microsoft-Infrastruktur verbunden ist, indem Sie den aktuellen Wert der connectionState-Eigenschaft prüfen. Während eines aktiven Anrufs können Sie auf das connectionStateChanged-Ereignis lauschen, um zu bestimmen, ob sich der Call Agent-Status von Connected in Disconnected ändert.

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

Implementieren von Reaktionen für Besprechungsteilnehmer

In Azure Communication Services können Teilnehmende Reaktionen bei einem Gruppenanruf senden und empfangen:

  • Like
  • Love
  • Applaus
  • Lachen
  • Überraschung

Verwenden Sie die sendReaction(reactionMessage)-API, um eine Reaktion zu senden. Um eine Reaktion zu erhalten, wird die Nachricht mit dem Typ ReactionMessage erstellt, der Reaction-Enumerationen als Attribut verwendet.

Sie müssen Ereignisse abonnieren, die die Abonnentenereignisdaten bereitstellen:

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

Sie können mit dem identifier-Attribut feststellen, welche Reaktion von welchem Teilnehmer stammt, und den Reaktionstyp aus ReactionMessage abrufen.

Beispiel für das Senden einer Reaktion in einer Besprechung

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

Beispiel für das Empfangen einer Reaktion in einer Besprechung

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

Wichtige Punkte bei der Verwendung von Reaktionen

  • Reaktionen werden für Microsoft Teams-Interoperabilitätsszenarien unterstützt. Die Unterstützung basiert auf der Teams-Richtlinie.
  • Reaktionen werden im Web Calling SDK unterstützt.
  • Reaktionen werden derzeit in den nativen SDKs nicht unterstützt.

Nächste Schritte