Partilhar via


Biblioteca de cliente do Azure Communication Call Automation para JavaScript - versão 1.3.0

Este pacote contém um SDK JavaScript para Azure Communication Call Automation. A Automação de Chamadas oferece 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 chamadas | da documentação do produto

Primeiros passos

Pré-requisitos

  • Uma assinatura do Azure.
  • Um recurso de Serviços de Comunicação existente. Se precisar criar o recurso, você pode usar odo Portal do Azure, odo Azure PowerShell ou oda CLI do Azure.

Instalação

npm install @azure/communication-call-automation

Suporte do navegador

Pacote JavaScript

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

Conceitos-chave

Designação Descrição
CallAutomationClient CallAutomationClient é a interface principal para desenvolvedores que usam essa biblioteca de cliente. Ele pode ser usado para iniciar chamadas por createCall ou answerCall.
CallConnection CallConnection representa um apelo contínuo. Uma vez que a chamada é estabelecida com createCall ou answerCall, outras ações podem ser executadas para a chamada, como transfer ou addParticipant.
CallMedia CallMedia pode ser usado para fazer ações relacionadas à mídia, como play, para reproduzir arquivos de mídia. Isso pode ser recuperado de CallConnectionestabelecidos.
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 devem ser fornecidos durante createCall e answerCalle os eventos de retorno de chamada serão enviados para este URL. Você pode usar callAutomationEventParser para analisar esses eventos quando ele chegar.
Evento de chamada recebida Quando a chamada de entrada acontece (que pode ser atendida com answerCall), o evento eventgrid de chamada de entrada será enviado. Isso é diferente dos eventos de retorno de chamada acima e deve ser configurado no portal do Azure. Consulte de chamadas recebidas para obter detalhes.
CallAutomationEventProcessor CallAutomationEventProcessor é uma maneira conveniente de lidar com eventos de retorno de chamada no meio da chamada, como CallConnected. Isso garantirá a correlação entre chamada e eventos mais facilmente. Veja abaixo o exemplo para o 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); 

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

Manipular eventos de retorno de chamada Mid-Connection

Para lidar facilmente com eventos de conexão intermediária, o SDK do Call Automation fornece uma maneira mais fácil de lidar com esses eventos. Dê uma olhada em CallAutomationEventProcessor. Isso garantirá a correlação entre chamada e eventos mais facilmente.

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óximos passos

Contribuição

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