Browse SDKs · HarmonyOS
Platform
SDKsHarmonyOSEnterprise

Start group call

Invite designated group members to join an audio or video call.

Copy

A group call invitation targets only the explicit user IDs listed in inviteeUserIDList; specifying groupID does not automatically invite all members in the group. Always generate a unique roomID for each call rather than reusing the group identifier.

Code example

import sdk, {
  Platform,
  SessionType,
  SignalingInvitationInfo,
  SignalingInviteInGroupReq,
  SignalingInviteInGroupResp,
  SignalingMediaType,
} from '@openimsdk/imsdk';

const invitation: SignalingInvitationInfo = {
  inviterUserID: currentUserID,
  inviteeUserIDList: selectedMemberIDs,
  customData: JSON.stringify({ source: 'group-call' }),
  groupID: groupID,
  roomID: createCallRoomID(),
  timeout: 30,
  mediaType: SignalingMediaType.SignalingMediaTypeVideo,
  platformID: Platform.HarmonyOS,
  sessionType: SessionType.WriteGroup,
  initiateTime: Date.now(),
  busyLineUserIDList: [],
};
const request: SignalingInviteInGroupReq = {
  userID: primaryInviteeUserID,
  invitation: invitation,
  offlinePush: offlinePush,
  participant: participant,
};
const response: SignalingInviteInGroupResp = await sdk.signalingInviteInGroup(request);

Parameters

ParameterTypeRequiredDescription
userIDstringYesPrimary invitee user ID. Must also appear in inviteeUserIDList.
invitationSignalingInvitationInfoYesInvitation object containing room ID, group ID, media type, timeout, and the invitee ID list.
offlinePushOfflinePushInfoYesOffline push configuration for offline recipients.
participantSignalingParticipantMetaDataYesProfile information of the calling participant.

Return value

Returns a Promise that resolves to a SignalingInviteInGroupResp containing roomID, token, liveURL, and busyLineUserIDList.

State changes after the call

Exclude the initiator, empty strings, and duplicate IDs from inviteeUserIDList. Any invitees listed in busyLineUserIDList do not block invitations from reaching other members. Resolving the Promise indicates that signaling invites were delivered to the server; it does not indicate that any group members have joined the room. Track the active call session using roomID, and monitor participant joins, rejects, and timeouts via Handle call events.