다음을 통해 공유


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

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

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

시작

필수 구성 요소

설치

npm install @azure/communication-call-automation

브라우저 지원

JavaScript 번들

브라우저에서 이 클라이언트 라이브러리를 사용하려면 먼저 번들러를 사용해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 번들링 설명서를 참조하세요.

주요 개념

Name Description
CallAutomationClient CallAutomationClient 는 이 클라이언트 라이브러리를 사용하는 개발자를 위한 기본 인터페이스입니다. 또는 answerCall에서 호출 createCall 을 시작하는 데 사용할 수 있습니다.
CallConnection CallConnection 는 진행 중인 호출을 나타냅니다. 또는 를 사용하여 호출을 createCall 설정하면 또는 answerCalladdParticipant와 같은 transfer 호출에 대해 추가 작업을 수행할 수 있습니다.
CallMedia CallMedia 는 와 같은 play미디어 관련 작업을 수행하여 미디어 파일을 재생하는 데 사용할 수 있습니다. 이는 설정된 CallConnection에서 검색할 수 있습니다.
CallRecording CallRecording 와 같은 startRecording관련 작업을 기록하는 데 사용할 수 있습니다. 에서 검색 CallAutomationClient할 수 있습니다.
콜백 이벤트 콜백 이벤트는 호출 기간 동안 다시 전송되는 이벤트입니다. 와 같은 CallConnected호출의 정보 및 상태를 제공합니다. CallbackUrl는 및 answerCall중에 createCall 제공되어야 하며 콜백 이벤트는 이 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!;
}

문제 해결

다음 단계

참여

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