共用方式為


適用於 JavaScript 的 Azure 通訊呼叫自動化用戶端連結庫 - 1.2.0 版

此套件包含適用於 Azure 通訊呼叫自動化的 JavaScript SDK。 通話自動化可讓開發人員建置伺服器型、智慧型手機工作流程,以及語音和 PSTN 通道的通話錄製。

通話自動化概 | 觀產品檔

開始使用

Prerequisites

安裝

npm install @azure/communication-call-automation

瀏覽器支援

JavaScript 套件組合

若要在瀏覽器中使用此用戶端連結庫,您必須先使用套件組合器。 如需如何執行這項操作的詳細資訊,請參閱我們的 統合檔

重要概念

名稱 描述
CallAutomationClient CallAutomationClient 是使用此客戶端連結庫的開發人員的主要介面。 它可用來起始 或的createCallanswerCall呼叫。
CallConnection CallConnection 表示進行中的呼叫。 使用 或answerCall建立createCall呼叫之後,即可針對呼叫執行進一步的動作,例如 transferaddParticipant
CallMedia CallMedia 可用來執行媒體相關動作,例如 play,以播放媒體檔案。 這可以從已建立 CallConnection的 擷取。
CallRecording CallRecording 可以用來錄製相關的動作,例如 startRecording。 這可以從擷取。CallAutomationClient
回呼事件 回呼事件是呼叫期間傳回的事件。 它會提供呼叫的資訊和狀態,例如 CallConnectedCallbackUrl必須在 和 answerCall期間createCall提供 ,且回呼事件會傳送至此 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!;
}

疑難排解

後續步驟

參與

如果您希望向此程式庫投稿,請參閱投稿指南,深入瞭解如何組建與測試程式碼。