次の方法で共有


JavaScript 用 Azure Communication Call Automation クライアント ライブラリ - バージョン 1.3.0

このパッケージには、Azure Communication Call Automation 用の JavaScript SDK が含まれています。 通話オートメーションを使用すると、開発者は、サーバーベースのインテリジェントな通話ワークフローを構築し、音声および PSTN チャネルの通話記録を行うことができます。

Call Automation | 製品ドキュメントの概要

はじめ

前提 条件

装着

npm install @azure/communication-call-automation

ブラウザーのサポート

JavaScript バンドル

ブラウザーでこのクライアント ライブラリを使用するには、まず、バンドルを使用する必要があります。 これを行う方法の詳細については、バンドルドキュメントを参照してください。

主な概念

名前 形容
CallAutomationClient CallAutomationClient は、このクライアント ライブラリを使用する開発者向けの主要なインターフェイスです。 これは、createCall または answerCallによって呼び出しを開始するために使用できます。
CallConnection CallConnection は、進行中の呼び出しを表します。 呼び出しが createCall または answerCallで確立されると、transferaddParticipantなど、呼び出しに対してさらにアクションを実行できます。
CallMedia CallMedia を使用して、メディア ファイルを再生するために、playなどのメディア関連のアクションを実行できます。 これは、確立された CallConnectionから取得できます。
CallRecording CallRecording を使用して、startRecordingなどの関連するアクションを記録できます。 これは、CallAutomationClientから取得できます。
コールバック イベント コールバック イベントは、呼び出しの実行中に返されるイベントです。 CallConnectedなど、通話の情報と状態を提供します。 CallbackUrl createCall および answerCall中に指定する必要があり、コールバック イベントはこの URL に送信されます。 callAutomationEventParser を使用して、これらのイベントが到着したときにこれらのイベントを解析できます。
着信呼び出しイベント 着信呼び出しが発生すると (answerCallで応答できます)、着信呼び出し eventgrid イベントが送信されます。 これは上記のコールバック イベントとは異なり、Azure portal でセットアップする必要があります。 詳細については、「着信通話 を する」を参照してください。
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);

EventProcessor を機能させるには、ProcessEvent が必要です。 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!;
}

トラブルシューティング

次の手順

貢献

このライブラリに投稿する場合は、コードをビルドしてテストする方法の詳細については、投稿ガイド を参照してください。