通話レコーディング サーバー API の要件として JavaScript アプリケーションから serverCallId を取得する
Calling Client SDK を使用するピア ツー ピアの通話シナリオで、Azure Communications から通話レコーディングを使用するには、serverCallId
を取得する必要があります。
次の例では、JavaScript サーバー アプリケーションから serverCallId
を取得する方法を示します。
通話レコーディングは、コアとなる通話 API の拡張機能です。 まず、Calling 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);
});
}
});
});
});
関連項目
詳細については、次の記事を参照してください。
- Calling SDK の機能について確認する
- 通話のしくみの詳細について確認する