Browse SDKs · uni-app / uni-app x
SDKsuni-appEnterprise

Start a group call

OpenIM uni-app / uni-app x SDK guide for Start a group call.

Copy

The Commercial signalingInviteInGroup() operation starts a group call. It invites only the users listed in inviteeUserIDList; setting groupID does not automatically invite every group member.

Parameters

ParameterTypeRequiredDescription
invitation.inviterUserIDstringYesCurrent user ID.
invitation.inviteeUserIDListstring[]YesSelected members; exclude the inviter.
invitation.groupIDstringYesTarget group ID.
invitation.roomIDstringYesShared unique room identifier.
invitation.timeoutnumberYesInvitation timeout in seconds.
invitation.mediaTypestringYesaudio or video by application convention.
invitation.sessionTypenumberYesUse the matching group session constant.
invitation.platformIDnumberYesCurrent native platform constant.
invitation.customDatastringNoApplication extension data.
invitation.initiateTimenumberNoInvitation start time. The signaling flow normally maintains it, so new calls can omit it.
invitation.busyLineUserIDListstring[]NoBusy-user list returned by an existing flow. Omit it when starting a new invitation.
offlinePushInfoOpenIMSignalingOfflinePushInfoNoOffline push content.
offlinePushInfo.titlestringConditionalPush title, required when offlinePushInfo is provided.
offlinePushInfo.descstringConditionalPush body, required when offlinePushInfo is provided.
offlinePushInfo.exstringConditionalExtension string, required when offlinePushInfo is provided. Pass an empty string if unused.
offlinePushInfo.iOSPushSoundstringConditionaliOS push sound, required when offlinePushInfo is provided.
offlinePushInfo.iOSBadgeCountbooleanConditionalWhether the push updates the iOS badge, required when offlinePushInfo is provided.
import {
  OpenIMPlatformAndroid,
  OpenIMSessionTypeWriteGroup,
  signalingInviteInGroup,
} from '@/uni_modules/unix-openim-sdk'

const roomCredentials = await signalingInviteInGroup({
  invitation: {
    inviterUserID: currentUserID,
    inviteeUserIDList: selectedGroupMemberIDs,
    customData: JSON.stringify({ source: 'group-call' }),
    groupID,
    roomID: groupID,
    timeout: 30,
    mediaType: 'video',
    sessionType: OpenIMSessionTypeWriteGroup,
    platformID: OpenIMPlatformAndroid,
  },
  offlinePushInfo,
})

This example reuses the group ID as the room ID. If the application generates a different room ID, all participants must use that value. Use OpenIMPlatformIOS on iOS. Exclude the current user, blank IDs, and duplicates, and verify that selected users are still group members.

The Promise resolves to OpenIMSignalingInviteResult | null; see Start a one-to-one call for all fields. A busy-user list only identifies members who were busy at invite time. It must not cancel invitations for other users, and success does not mean anyone has accepted. Merge later acceptance, rejection, and timeout through call events.