Compartir a través de


Biblioteca cliente de Azure Communication Call Automation para JavaScript: versión 1.2.0

Este paquete contiene un SDK de JavaScript para Azure Communication Call Automation. La automatización de llamadas proporciona a los desarrolladores la capacidad de crear flujos de trabajo de llamadas inteligentes, basados en servidor y grabación de llamadas para canales RTC y voz.

Información general sobre la automatización | de llamadasDocumentación del producto

Introducción

Requisitos previos

Instalación de

npm install @azure/communication-call-automation

Compatibilidad con exploradores

Paquete de JavaScript

Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para más información sobre cómo hacerlo, consulte nuestra documentación de agrupación.

Conceptos clave

Nombre Descripción
CallAutomationClient CallAutomationClient es la interfaz principal para los desarrolladores que usan esta biblioteca cliente. Se puede usar para iniciar llamadas mediante createCall o answerCall.
CallConnection CallConnection representa una llamada en curso. Una vez establecida la llamada con createCall o answerCall, se pueden realizar otras acciones para la llamada, como transfer o addParticipant.
CallMedia CallMedia se puede usar para realizar acciones relacionadas con medios, como play, para reproducir el archivo multimedia. Esto se puede recuperar de establecido CallConnection.
CallRecording CallRecording se puede usar para realizar la grabación de acciones relacionadas, como startRecording. Esto se puede recuperar de CallAutomationClient.
Eventos de devolución de llamada Los eventos de devolución de llamada son eventos enviados durante la duración de la llamada. Proporciona información y estado de la llamada, como CallConnected. CallbackUrl se debe proporcionar durante createCall y , answerCally los eventos de devolución de llamada se enviarán a esta dirección URL. Puede usar callAutomationEventParser para analizar estos eventos cuando llegue.
Evento de llamada entrante Cuando se produce una llamada entrante (que se puede responder con answerCall), se enviará el evento eventgrid de llamada entrante. Esto es diferente de los eventos de devolución de llamada anteriores y debe configurarse en Azure Portal. Consulte Llamada entrante para obtener más información.
CallAutomationEventProcessor CallAutomationEventProcessor es una manera conveniente de controlar eventos de devolución de llamada a mitad de llamada, como CallConnected. Esto garantizará la correlación entre la llamada y los eventos más fácilmente. Vea el ejemplo siguiente para su uso.

Ejemplos

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

llamada a Create

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

Reproducir contenido multimedia

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

Controlar eventos de devolución de llamada Mid-Connection

Para controlar fácilmente los eventos de conexión intermedia, el SDK de Call Automation proporciona una manera más sencilla de controlar estos eventos. Eche un vistazo a CallAutomationEventProcessor. Esto garantizará la correlación entre la llamada y los eventos más fácilmente.

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

ProcessEvents es necesario para que EventProcessor funcione. Después de que EventProcessor consuma el evento, puede empezar a usar su característica.

Vea a continuación, por ejemplo: donde va a realizar una llamada con CreateCall y espere al evento CallConnected de la llamada.

// 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!;
}

Solución de problemas

Pasos siguientes

Contribuciones

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.