Freigeben über


Azure Communication Call Automation-Clientbibliothek für JavaScript – Version 1.3.0

Dieses Paket enthält ein JavaScript SDK für die Automatisierung von Azure-Kommunikationsanrufen. Die Anrufautomatisierung bietet Entwicklern die Möglichkeit, serverbasierte, intelligente Anrufworkflows und Anrufaufzeichnungen für VoIP- und PSTN-Kanäle zu erstellen.

Übersicht über die Anrufautomatisierung | Produktdokumentation

Erste Schritte

Voraussetzungen

Installation

npm install @azure/communication-call-automation

Browserunterstützung

JavaScript-Bündel

Um diese Clientbibliothek im Browser zu verwenden, müssen Sie zuerst einen Bundler verwenden. Ausführliche Informationen dazu finden Sie in unserer Bündelungsdokumentation.

Schlüsselkonzepte

Name Beschreibung
CallAutomationClient CallAutomationClient ist die primäre Schnittstelle für Entwickler, die diese Clientbibliothek verwenden. Sie kann verwendet werden, um Anrufe durch createCall oder answerCallzu initiieren.
CallConnection CallConnection stellt einen laufenden Anruf dar. Sobald der Anruf mit createCall oder answerCalleingerichtet wurde, können weitere Aktionen für den Anruf ausgeführt werden, z. B. transfer oder addParticipant.
CallMedia CallMedia können zum Wiedergeben von Mediendateien verwendet werden, z. B. play. Dies kann aus etablierten CallConnectionabgerufen werden.
CallRecording CallRecording können verwendet werden, um verwandte Aktionen zu erfassen, z. B. startRecording. Dies kann aus CallAutomationClientabgerufen werden.
Rückrufereignisse Rückrufereignisse sind Ereignisse, die während der Dauer des Anrufs zurückgesendet werden. Er gibt Informationen und den Status des Anrufs an, z. B. CallConnected. CallbackUrl müssen während createCall und answerCallbereitgestellt werden, und Rückrufereignisse werden an diese URL gesendet. Sie können callAutomationEventParser verwenden, um diese Ereignisse beim Eintreffen zu analysieren.
Eingehendes Anrufereignis Wenn eingehender Anruf stattfindet (das mit answerCallbeantwortet werden kann), wird das Eventgrid-Ereignis für eingehende Anrufe gesendet. Dies unterscheidet sich von den oben genannten Rückrufereignissen und sollte im Azure-Portal eingerichtet werden. Ausführliche Informationen finden Sie unter eingehenden Anruf-.
CallAutomationEventProcessor CallAutomationEventProcessor ist eine überzeugende Möglichkeit, Rückrufereignisse wie CallConnectedin der Mitte zu behandeln. Dadurch wird die Korrelation zwischen Aufrufen und Ereignissen einfacher sichergestellt. Weitere Informationen finden Sie im folgenden Beispiel für die Verwendung.

Beispiele

Initialisieren von CallAutomationClient

import { CallAutomationClient } from '@azure/communication-call-automation';
import { DefaultAzureCredential } from "@azure/identity"; 

// Your unique Azure Communication service endpoint
const credential = new DefaultAzureCredential(); 
const endpointUrl = '<ENDPOINT>' 
const callAutomationClient = new CallAutomationClient(endpointUrl, credential); 

Anruf erstellen

import { CommunicationUserIdentifier } from "@azure/communication-common";
import { CallAutomationClient, CallInvite } from '@azure/communication-call-automation';

// target endpoint for ACS User
const target: CommunicationUserIdentifier = {
  communicationUserId:
    "8:acs:...",
}

// make invitation
const callInvite: CallInvite = {
   targetParticipant:target
};

// callback url to recieve callback events
const callbackUrl = "https://<MY-EVENT-HANDLER-URL>/events";

// send out the invitation, creating call
const response = callAutomationClient.createCall(callInvite, callbackUrl);

Medien wiedergeben

// from callconnection of response above, play media of media file
const myFile: FileSource = { uri: "https://<FILE-SOURCE>/<SOME-FILE>.wav" }
const response = callConnection.getCallMedia().playToAll(myFile);

Behandeln von Mid-Connection Rückrufereignissen

Um Mid-Connection-Ereignisse auf einfache Weise zu verarbeiten, bietet das SDK der Anrufautomatisierung eine einfachere Möglichkeit, diese Ereignisse zu behandeln. Sehen Sie sich CallAutomationEventProcessor an. Dadurch wird die Korrelation zwischen Aufrufen und Ereignissen einfacher sichergestellt.

const eventProcessor: CallAutomationEventProcessor = await callAutomationClient.getEventProcessor();
eventProcessor.processEvents(incomingEvent);

ProcessEvents ist erforderlich, damit EventProcessor funktioniert. Nachdem das Ereignis von EventProcessor genutzt wurde, können Sie mit der Verwendung des Features beginnen.

Siehe unten: Wo Sie einen Anruf mit CreateCall tätigen und auf das CallConnected-Ereignis des Anrufs warten.

// send out the invitation, creating call
const callInvite = new CallInvite(target);
const callbackUrl = "https://<MY-EVENT-HANDLER-URL>/events";
const callResult = callAutomationClient.createCall(callInvite, callbackUrl);

// giving 30 seconds timeout for waiting on createCall's event, 'CallConnected'
const createCallEventResult : CreateCallEventResult = await callResult.waitForEventProcessor(undefined, 30000);
// once this returns, call is now established!

// check if it was successful
if (createCallEventResult.isSuccess)
{
  // work with callConnected event
  const callConnectedEvent : CallConnected = createCallEventResult.successResult!;
}

Fehlerbehebung

Nächste Schritte

Beitragend

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.