You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript SDK在Azure通信服务中发起群组通话并获取群组ID

问题根因

调用CallClient.startCall时如果没有显式传入群组ID参数,默认发起的是点对点通话,这类通话不存在可供外部用户加入的固定群组标识,因此访问Call.info.groupId会返回空值。哪怕点对点通话后续添加参会人升级为多人通话,也不会自动生成可复用的公开群组ID,不支持外部用户主动加入。

可加入群组通话的正确发起方式
  • 群组ID不需要ACS服务端提前分配,你可以自行生成符合标准UUID v4格式的字符串作为群组ID,只要格式合法即可生效。
  • 调用startCall时必须在配置参数中显式传入groupId字段,赋值为你提前生成的UUID,此时发起的才是标准群组通话。
  • 发起成功后,Call.info.groupId会返回你传入的UUID值,其他用户拿到这个ID后,就可以通过joinCall方法传入该ID加入通话。

代码参考

import { CallClient } from '@azure/communication-calling';

// 生成合法UUID作为群组ID
const targetGroupId = crypto.randomUUID();
const callClient = new CallClient();
const callAgent = await callClient.createCallAgent(userCredential);

// 发起群组通话,显式传入groupId
const groupCall = await callAgent.startCall(
  [initialParticipant1, initialParticipant2],
  {
    groupId: targetGroupId
  }
);

// 其他用户加入同个群组的调用方式
const joinConfig = { groupId: targetGroupId };
const joinedCall = await callAgent.join(joinConfig);

注意:如果你需要支持用户通过ID主动加入通话,必须在最开始发起通话时就传入自定义的合法UUID作为groupId,通话发起后再补传参数不会把点对点通话转换为可加入的群组通话。

内容的提问来源于stack exchange,提问作者muremwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:48:13