Share via


Biblioteca de cliente da Automatização de Chamadas de Comunicação do Azure para JavaScript – versão 1.2.0

Este pacote contém um SDK JavaScript para a Automatização de Chamadas de Comunicação do Azure. A Automatização de Chamadas fornece aos programadores a capacidade de criar fluxos de trabalho de chamadas inteligentes e baseados em servidores e gravar chamadas para canais de voz e RTPC.

Descrição geral da Automatização de Chamadas | Documentação do produto

Introdução

Pré-requisitos

Instalação

npm install @azure/communication-call-automation

Browser support (Suporte do browser)

Pacote JavaScript

Para utilizar esta biblioteca de cliente no browser, primeiro tem de utilizar um bundler. Para obter detalhes sobre como fazê-lo, consulte a nossa documentação de agrupamento.

Conceitos-chave

Nome Descrição
CallAutomationClient CallAutomationClient é a interface principal para programadores que utilizam esta biblioteca de cliente. Pode ser utilizado para iniciar chamadas por createCall ou answerCall.
CallConnection CallConnection representa uma chamada em curso. Assim que a chamada for estabelecida com createCall ou answerCall, podem ser realizadas outras ações para a chamada, como transfer ou addParticipant.
CallMedia CallMedia pode ser utilizado para realizar ações relacionadas com multimédia, como play, para reproduzir ficheiro de multimédia. Isto pode ser obtido a partir do estabelecido CallConnection.
Registo de Chamadas CallRecording pode ser utilizado para gravar ações relacionadas, como startRecording. Isto pode ser obtido a partir de CallAutomationClient.
Eventos de Chamada de Retorno Os eventos de chamada de retorno são eventos enviados durante a chamada. Fornece informações e estado da chamada, como CallConnected. CallbackUrl tem de ser fornecido durante createCall e answerCall, e os eventos de chamada de retorno serão enviados para este URL. Pode utilizar callAutomationEventParser para analisar estes eventos quando este chegar.
Evento de Chamada recebida Quando a chamada recebida ocorrer (que pode ser atendida com answerCall), o evento eventgrid de chamada recebida será enviado. Isto é diferente dos eventos de Chamada de Retorno acima e deve ser configurado no portal do Azure. Consulte Chamada recebida para obter detalhes.
CallAutomationEventProcessor CallAutomationEventProcessor é uma forma convincente de lidar com eventos de chamada de retorno a meio da chamada, como CallConnected. Isto irá garantir a correlação entre chamadas e eventos mais facilmente. Veja o exemplo abaixo para obter a respetiva utilização.

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

Create Chamada

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

Processar Mid-Connection eventos de chamada de retorno

Para lidar facilmente com eventos de ligação intermédia, o SDK da Automatização de Chamadas fornece uma forma mais fácil de lidar com estes eventos. Veja CallAutomationEventProcessor. Isto irá garantir a correlação entre chamadas e eventos mais facilmente.

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

ProcessEvents é necessário para que o EventProcessor funcione. Depois de o evento estar a ser consumido pelo EventProcessor, pode começar a utilizar a respetiva funcionalidade.

Veja abaixo, por exemplo: onde está a fazer uma chamada com o CreateCall e aguarde pelo 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!;
}

Resolução de problemas

Passos seguintes

Contribuir

Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.