Azure通信服务Teams互通:外呼Teams PSTN通话报错排查
问题:Azure通信服务Teams互通过程中PSTN外呼报错修复
我参考Azure通信服务JavaScript示例及Teams互通用例实现PSTN外呼功能,添加代码后出现错误。
添加的代码:
startPSTNButton.addEventListener('click',async () => { try { console.log('PSTN IN'); const pstnCallee = { phoneNumber: '+81311112222' } const oneToOneCall = teamsCallAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' }); console.log('Call out'); // Subscribe to the call's properties and events. subscribeToCall(oneToOneCall); } catch (error) { console.error(error); } });
错误信息:
CallingCommunicationError: Starting a one to one with thread ID is invalid. at TeamsCallAgentImpl.startCall (sdk.bundle.js:183:140138) at W.value (sdk.bundle.js:161:2267) at HTMLButtonElement. (client.js:311:1) (anonymous) @ client.js:317
问题核心:设置threadId为00000000-0000-0000-0000-000000000000是否正确?该如何修复此错误?
解答
threadId设置无效:你使用的全零UUID作为threadId是错误的,且PSTN一对一外呼场景不需要指定threadId参数。threadId仅用于关联已存在的Teams群组会话,而PSTN外呼属于全新的点对点通话,不需要绑定任何现有线程。
修复后的代码:直接移除
startCall方法中的threadId配置项即可:
startPSTNButton.addEventListener('click',async () => { try { console.log('PSTN IN'); const pstnCallee = { phoneNumber: '+81311112222' } // 移除无效的threadId参数 const oneToOneCall = teamsCallAgent.startCall([pstnCallee]); console.log('Call out'); // Subscribe to the call's properties and events. subscribeToCall(oneToOneCall); } catch (error) { console.error(error); } });
- 补充说明:仅当需要将通话关联到已有的Teams团队或群组聊天线程时,才需传递有效的threadId。对于PSTN这类点对点外呼,SDK会自动创建新的通话会话,无需手动指定该参数。
内容的提问来源于stack exchange,提问作者Shinnosuke Takeda
相关产品推荐
相关产品推荐

