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


Клиентская библиотека службы автоматизации звонков Azure для JavaScript версии 1.3.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); 

Создание вызова

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

ProcessEvents требуется для работы EventProcessor. После использования события 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!;
}

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

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

Способствует

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