浏览 SDKs · WASM
SDKsWASM商业版

发起群聊通话

使用 WASM SDK 发起群聊音视频通话。

复制

signalingInviteInGroup() 发起群聊通话,只邀请 inviteeUserIDList 明确列出的群成员,不会因为填写 groupID 自动邀请全群。

参数说明

参数类型是否必填说明
invitationSignalingInvitation本次通话邀请。
invitation.inviterUserIDstring发起人的用户 ID。
invitation.inviteeUserIDListstring[]被邀请的群成员用户 ID 列表;不要包含发起人。
invitation.groupIDstring群组 ID,群聊通话不能为空。
invitation.roomIDstring本次通话的唯一房间标识,所有参与端必须一致。
invitation.timeoutnumber邀请等待时长,单位为秒。
invitation.mediaTypestring媒体类型,业务通常约定为 audiovideo
invitation.sessionTypeSessionType群聊使用 SessionType.WorkingGroup
invitation.platformIDPlatform发起端平台,网页端使用 Platform.Web
invitation.customDatastring随邀请携带的业务扩展字符串。
invitation.initiateTimenumber邀请发起时间,Unix 毫秒时间戳。通常由 SDK 的通话流程维护,无需手动填写。
invitation.busyLineUserIDListstring[]忙线用户列表。发起新邀请时通常不填写。
offlinePushInfoOfflinePush被邀请人离线时使用的推送内容。
offlinePushInfo.titlestring条件必填提供 offlinePushInfo 时填写推送标题。
offlinePushInfo.descstring条件必填提供 offlinePushInfo 时填写推送正文。
offlinePushInfo.exstring条件必填提供 offlinePushInfo 时填写扩展字符串;没有内容时传空字符串。
offlinePushInfo.iOSPushSoundstring条件必填提供 offlinePushInfo 时填写 iOS 推送声音。
offlinePushInfo.iOSBadgeCountboolean条件必填提供 offlinePushInfo 时说明是否更新 iOS 角标。
import { Platform, SessionType } from '@openim/wasm-client-sdk';

const { data: roomCredentials } = await openimsdk.signalingInviteInGroup({
  invitation: {
    inviterUserID: currentUserID,
    inviteeUserIDList: selectedGroupMemberIDs,
    customData: JSON.stringify({ source: 'group-call' }),
    groupID,
    roomID: crypto.randomUUID(),
    timeout: 30,
    mediaType: 'video',
    sessionType: SessionType.WorkingGroup,
    platformID: Platform.Web,
  },
  offlinePushInfo,
});

每次群通话都应生成新的 roomID,不要直接复用 groupID,否则同一群组的不同通话可能被错误合并。被邀请方从邀请事件取得该值,后续接受、拒绝、取消和挂断操作都继续使用同一个 roomID。发起前还应排除当前用户、空值和重复成员。

Promise 成功后,dataSignalingInviteResult,字段含义见发起单聊通话

busyLineUserIDList 只表示部分成员忙线,不应中止其他成员的邀请;成功也不代表其他成员已经接听。