Dela via


Reaktioner

Den här artikeln beskriver hur du implementerar reaktioner för Azure Communication Services Calling SDK:er. Med den här funktionen kan deltagare i ett gruppsamtal eller möte skicka och ta emot reaktioner med deltagare i Azure Communication Services och Microsoft Teams.

Konfigurations- och principinställningarna i Microsoft Teams styr reaktionerna för användare i Teams-möten. Mer information finns i Hantera reaktioner i Teams-möten och webbseminarier och mötesalternativ i Microsoft Teams.

Förutsättningar

Begränsningar för reaktioner

Systemet hämtar reaktioner efter batchar med jämna mellanrum. Den aktuella batchbegränsningen är 20 000 reaktioner som hämtas var 3:e sekund.

Om antalet reaktioner överskrider gränsen skickas överblivna reaktioner i nästa batch.

Support

Följande tabeller definierar stöd för reaktioner i Azure Communication Services.

Teams mötessupport baseras på Teams-policy.

Identiteter och anropstyper

I följande tabell visas stöd för reaktioner i olika anrops- och identitetstyper.

Identiteter Teams interop-möte Rum 1:1 samtal Gruppsamtal Teams interop-gruppsamtal
Communication Services-användare ✔️ ✔️ ✔️ ✔️
Microsoft 365-användare ✔️ ✔️ ✔️

Operations

I följande tabell visas stöd för reaktioner i Anropa SDK för enskilda identitetstyper.

Operations Communication Services-användare Microsoft 365-användare
Skicka specifika reaktioner (som kärlek, skratt, applåder, förvånad) ✔️ ✔️
Få specifika reaktioner (som kärlek, skratt, applåder, förvånad) ✔️ ✔️

SDK:er

I följande tabell visas stöd för funktionen Tillsammansläge i enskilda Azure Communication Services-SDK:er.

Plattformar Webb Webbgränssnitt iOS iOS-användargränssnitt Android Android-användargränssnitt Windows
Stöds ✔️ ✔️

Installera SDK:n

npm install Använd kommandot för att installera Azure Communication Services Common och Calling SDK för JavaScript:

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

Initiera nödvändiga objekt

En CallClient instans krävs för de flesta anropsåtgärder. När du skapar en ny CallClient instans kan du konfigurera den med anpassade alternativ som en Logger instans.

Med instansen CallClient kan du skapa en CallAgent instans genom att anropa createCallAgent. Den här metoden returnerar asynkront ett CallAgent instansobjekt.

Metoden createCallAgent använder CommunicationTokenCredential som argument. Den accepterar en användaråtkomsttoken.

Du kan använda getDeviceManager metoden på instansen CallClient för att få åtkomst deviceManagertill .

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

Så här hanterar du SDK-anslutning till Microsoft-infrastruktur på bästa sätt

Instansen Call Agent hjälper dig att hantera anrop (för att ansluta eller starta samtal). För att kunna arbeta måste din anropande SDK ansluta till Microsofts infrastruktur för att få meddelanden om inkommande samtal och samordna annan samtalsinformation. Du Call Agent har två möjliga tillstånd:

Ansluten – Ett Call Agent connectionStatue-värde Connected innebär att klient-SDK:t är anslutet och kan ta emot meddelanden från Microsofts infrastruktur.

Frånkopplad – Ett Call Agent connectionStatue-värde för Disconnected tillstånd det finns ett problem som hindrar SDK:n från att ansluta korrekt. Call Agent ska återskapas.

  • invalidToken: Om en token har upphört att gälla eller om en ogiltig Call Agent instans kopplas från med det här felet.
  • connectionIssue: Om det finns ett problem med att klienten ansluter till Microsoft-infrastrukturen, efter att många återförsök Call Agent har exponerat connectionIssue felet.

Du kan kontrollera om din lokala Call Agent är ansluten till Microsofts infrastruktur genom att granska det aktuella värdet för connectionState egenskapen. Under ett aktivt anrop kan du lyssna på connectionStateChanged händelsen för att avgöra om Call Agent det ändras från Anslutet till frånkopplat tillstånd.

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

Implementera reaktioner för mötesdeltagare

I Azure Communication Services kan deltagarna skicka och ta emot reaktioner under ett gruppsamtal:

  • Tycka om
  • Kärlek
  • Applåd
  • Skratta
  • Överraskning

Använd API:et för sendReaction(reactionMessage) att skicka en reaktion. För att få en reaktion skapas meddelandet med typen ReactionMessage med Reaction uppräkningar som ett attribut.

Du måste prenumerera på händelser som tillhandahåller händelsedata för prenumeranten:

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

Du kan avgöra vilken reaktion som kommer från vilken deltagare som använder identifier attributet och hämta reaktionstypen från ReactionMessage.

Exempel som visar hur du skickar en reaktion i ett möte

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

Exempel som visar hur du får en reaktion i ett möte

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

Viktiga punkter vid användning av reaktioner

  • Reaktioner stöds för Microsoft Teams-samverkansscenarier. Supporten baseras på Teams-policyn.
  • Reaktioner stöds i SDK för webbsamtal.
  • Reaktioner stöds för närvarande inte i de interna SDK:erna.

Nästa steg