Biblioteca de clientes da Automação de Chamadas de Comunicação do Azure para JavaScript – versão 1.2.0

Esse pacote contém um SDK do JavaScript para Automação de Chamadas de Comunicação do Azure. A Automação de Chamadas fornece aos desenvolvedores a capacidade de criar fluxos de trabalho de chamadas inteligentes baseados em servidor e gravação de chamadas para canais de voz e PSTN.

Visão geral da Automação | de ChamadasDocumentação do produto

Introdução

Pré-requisitos

Instalando o

npm install @azure/communication-call-automation

Suporte ao navegador

Pacote JavaScript

Para usar essa biblioteca de clientes no navegador, primeiro você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento.

Principais conceitos

Nome Descrição
CallAutomationClient CallAutomationClient é a interface principal para desenvolvedores que usam essa biblioteca de clientes. Ele pode ser usado para iniciar chamadas por createCall ou answerCall.
CallConnection CallConnection representa uma chamada em andamento. Depois que a chamada for estabelecida com createCall ou answerCall, outras ações poderão ser executadas para a chamada, como transfer ou addParticipant.
CallMedia CallMedia pode ser usado para executar ações relacionadas à mídia, como play, para reproduzir o arquivo de mídia. Isso pode ser recuperado do estabelecido CallConnection.
CallRecording CallRecording pode ser usado para gravar ações relacionadas, como startRecording. Isso pode ser recuperado de CallAutomationClient.
Eventos de retorno de chamada Eventos de retorno de chamada são eventos enviados de volta durante a duração da chamada. Ele fornece informações e o estado da chamada, como CallConnected. CallbackUrl deve ser fornecido durante createCall e answerCall, e eventos de retorno de chamada serão enviados para essa URL. Você pode usar callAutomationEventParser para analisar esses eventos quando ele chegar.
Evento de chamada de entrada Quando a chamada de entrada acontece (que pode ser respondida com answerCall), o evento eventgrid de chamada de entrada será enviado. Isso é diferente dos eventos de retorno de chamada acima e deve ser configurado em portal do Azure. Consulte Chamada de entrada para obter detalhes.
CallAutomationEventProcessor CallAutomationEventProcessor é uma maneira conviniente de lidar com eventos de retorno de chamada mid-call, como CallConnected. Isso garantirá a correlação entre chamadas e eventos com mais facilidade. Veja o exemplo abaixo para seu uso.

Exemplos

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

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

Reproduzir Mídia

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

Manipular eventos de retorno de chamada Mid-Connection

Para lidar facilmente com eventos de conexão intermediária, o SDK da Automação de Chamadas fornece uma maneira mais fácil de lidar com esses eventos. Dê uma olhada em CallAutomationEventProcessor. Isso garantirá a correlação entre chamadas e eventos com mais facilidade.

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

ProcessEvents é necessário para que o EventProcessor funcione. Depois que o evento estiver sendo consumido pelo EventProcessor, você poderá começar a usar seu recurso.

Veja abaixo, por exemplo: onde você está fazendo uma chamada com CreateCall e aguarde o evento CallConnected da chamada.

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

Solução de problemas

Próximas etapas

Contribuição

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber como criar e testar o código.