다음을 통해 공유


JavaScript용 Azure Communication Call Automation 클라이언트 라이브러리 - 버전 1.3.0

이 패키지에는 Azure Communication Call Automation용 JavaScript SDK가 포함되어 있습니다. 호출 자동화는 개발자에게 서버 기반의 지능형 통화 워크플로를 빌드하고 음성 및 PSTN 채널에 대한 통화 녹음/녹화 기능을 제공합니다.

통화 자동화 | 제품 설명서 개요

시작

필수 구성 요소

  • Azure 구독.
  • 기존 Communication Services 리소스입니다. 리소스를 만들어야 하는 경우 Azure Portal, Azure PowerShell또는 azure CLI사용할 수 있습니다.

설치

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같은 호출의 정보 및 상태를 제공합니다. createCall answerCall동안 CallbackUrl 제공해야 하며 콜백 이벤트는 이 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 콜백 이벤트 처리

중간 연결 이벤트를 쉽게 처리하기 위해 Call Automation의 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!;
}

문제 해결

다음 단계

기여

이 라이브러리에 기여하려면 기여 가이드 읽어 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.