你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
从 JavaScript 应用程序获取通话记录服务器 API 必需的 serverCallId
在使用呼叫客户端 SDK 的点对点呼叫方案中,必须获取 serverCallId
才能使用 Azure 通信服务的通话记录功能。
以下示例展示如何从 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);
});
}
});
});
});
另请参阅
有关详细信息,请参阅以下文章: