JavaScript 애플리케이션에서 호출 기록 서버 API에 대한 요구 사항으로 serverCallId 가져오기

통화 클라이언트 SDK를 사용하는 피어 투 피어 통화 시나리오에서 Azure Communications의 통화 녹음/녹화를 사용하려면 serverCallId를 가져와야 합니다. 다음 예제에서는 JavaScript 서버 애플리케이션에서 serverCallId를 가져오는 방법을 보여 줍니다.

통화 녹음/녹화는 핵심 통화 API의 확장 기능입니다. 먼저 통화 SDK에서 통화 기능을 가져와야 합니다.

import { Features} from "@azure/communication-calling";

그런 다음, 통화 인스턴스에서 레코딩 기능 API 개체를 가져올 수 있습니다.

const callRecordingApi = call.feature(Features.Recording);

녹음/녹화 변경 내용 구독:

const recordingStateChanged = () => {
    let recordings = callRecordingApi.recordings;

    let state = SDK.RecordingState.None;
    if (recordings.length > 0) {
        state = recordings.some(r => r.state == SDK.RecordingState.Started)
            ? SDK.RecordingState.Started
            : SDK.RecordingState.Paused;
    }
    
	console.log(`RecordingState: ${state}`);
}

const recordingsChangedHandler = (args: { added: SDK.RecordingInfo[], removed: SDK.RecordingInfo[]}) => {
    args.added?.forEach(a => {
        a.on('recordingStateChanged', recordingStateChanged);
    });

    args.removed?.forEach(r => {
        r.off('recordingStateChanged', recordingStateChanged);
    });

    recordingStateChanged();
};

callRecordingApi.on('recordingsUpdated', recordingsChangedHandler);

녹음/녹화 세션을 시작/중지/일시 중지/계속하는 데 사용할 수 있는 servercallId 가져오기 통화가 연결되면 getServerCallId 메서드를 사용하여 서버 통화 ID를 가져옵니다.

callAgent.on('callsUpdated', (e: { added: Call[]; removed: Call[] }): void => {
    e.added.forEach((addedCall) => {
        addedCall.on('stateChanged', (): void => {
            if (addedCall.state === 'Connected') {
                addedCall.info.getServerCallId().then(result => {
                    dispatch(setServerCallId(result));
                }).catch(err => {
                    console.log(err);
                });
            }
        });
    });
});

참고 항목

자세한 내용은 다음 문서를 참조하세요.