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
- Uma subscrição do Azure.
- Um recurso dos Serviços de Comunicação existente. Se precisar de criar o recurso, pode utilizar o Portal do Azure, o Azure PowerShell ou a CLI do Azure.
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
- Descrição Geral da Automatização de Chamadas
- Conceito de Chamada recebida
- Criar um fluxo de trabalho de interação do cliente com a Automatização de Chamadas
- Redirecionar chamadas de telefonia de entrada com a Automatização de Chamadas
- Início Rápido: Ação de reprodução
- Início Rápido: Reconhecer ação
- Leia mais sobre a Gravação de Chamadas no Azure Communication Services
- Gravar e transferir chamadas com o Event Grid
Contribuir
Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Azure SDK for JavaScript