Поделиться через


Клиентская библиотека службы автоматизации вызовов связи Azure для JavaScript версии 1.2.0

Этот пакет содержит пакет SDK для JavaScript для автоматизации вызовов связи Azure. Служба автоматизации вызовов предоставляет разработчикам возможность создавать интеллектуальные рабочие процессы вызовов на основе сервера и записывать звонки для голосовых каналов и каналов ТСОП.

Общие сведения об автоматизации вызовов | Документация по продукту

Начало работы

Предварительные требования

Установка

npm install @azure/communication-call-automation

Поддержка браузеров

Пакет JavaScript

Чтобы использовать эту клиентную библиотеку в браузере, сначала необходимо использовать средство пакетной установки. Дополнительные сведения о том, как это сделать, см. в нашей документации по объединениям.

Основные понятия

Имя Описание
CallAutomationClient CallAutomationClient — это основной интерфейс для разработчиков, использующих эту клиентную библиотеку. Его можно использовать для инициации вызовов с помощью createCall или answerCall.
CallConnection CallConnection представляет текущий вызов. После установки вызова с createCall или answerCallможно выполнить дополнительные действия для вызова, например transfer или addParticipant.
CallMedia CallMedia можно использовать для выполнения действий, связанных с мультимедиа, таких как play, для воспроизведения файла мультимедиа. Его можно получить из установленного CallConnection.
CallRecording CallRecording можно использовать для записи связанных действий, таких как startRecording. Его можно получить из CallAutomationClient.
События обратного вызова События обратного вызова — это события, отправляемые обратно во время вызова. Он предоставляет сведения и состояние вызова, например CallConnected. CallbackUrl необходимо указать во время createCall и answerCall, а по этому URL-адресу будут отправляться события обратного вызова. Вы можете использовать для callAutomationEventParser анализа этих событий по их поступлению.
Событие входящего звонка При выполнении входящего вызова (на который можно ответить с помощью answerCall), будет отправлено событие eventgrid входящего вызова. Это отличается от событий обратного вызова выше и должно быть настроено на портал Azure. Дополнительные сведения см. в разделе Входящие звонки .
CallAutomationEventProcessor CallAutomationEventProcessor — это простой способ обработки событий обратного вызова в середине вызова, таких как CallConnected. Это позволит упростить корреляцию между вызовом и событиями. Пример использования см. ниже.

Примеры

Инициализация 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

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

Воспроизведение мультимедиа

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

Обработка событий обратного вызова Mid-Connection

Чтобы легко обрабатывать события середины подключения, пакет SDK службы автоматизации вызовов предоставляет более простой способ обработки этих событий. Ознакомьтесь с callAutomationEventProcessor. Это позволит упростить корреляцию между вызовом и событиями.

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

Для работы EventProcessor требуется ProcessEvents. После использования события EventProcessor можно приступить к использованию его функции.

См. ниже пример: где выполняется вызов с помощью CreateCall и ожидание события CallConnected вызова.

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

Устранение неполадок

Дальнейшие действия

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.