RoomParticipantStore
Introduction
Room participant management provides complete participant lifecycle management, including permission management, device control, message muting and other features.
RoomParticipantStore provides a comprehensive set of APIs to manage room participant related operations.Note:
Participant status updates are delivered through state publisher. Subscribe to it to receive real-time updates about participant list.
Features
Permission Management: Supports transferring owner, setting/revoking admin, kicking users and other operations.
Device Control: Supports closing participant devices, disabling all devices and other operations.
Message Muting: Supports muting individual users or all users.
Device Request/Invitation: Supports requesting to open device, inviting to open device and other bidirectional interactions.
Subscribable Data
RoomParticipantState fields are described below:
Property | Type | Description |
participantList | Participant list. | |
participantListCursor | StateFlow<String> | Participant list cursor. |
audienceList | Audience list (for webinar room). | |
audienceListCursor | StateFlow<String> | Audience list cursor. |
adminList | Admin list. | |
messageDisabledUserList | Message disabled user list. | |
participantListWithVideo | Participant list with video. | |
participantWithScreen | Participant sharing screen. | |
pendingDeviceApplications | Pending device application list. | |
pendingDeviceInvitations | Pending device invitation list. | |
speakingUsers | StateFlow<MutableMap<String, Int>> | Speaking users and their volume. |
networkQualities | StateFlow<MutableMap<String, NetworkInfo>> | User network quality info. |
pendingParticipantList | Pending participant list. | |
localParticipant | Local participant info. |
API List
Function | Description |
Create object instance. | |
Participant event callback. | |
Participant event callback. | |
Get participant list. | |
Get audience list (for webinar room). | |
Search users by keyword. | |
Promote audience to participant (for webinar room). | |
Demote participant to audience (for webinar room). | |
Transfer owner. | |
Set admin. | |
Revoke admin. | |
Kick user. | |
Update participant name card. | |
Update participant metadata. | |
Mute microphone. | |
Unmute microphone. | |
Close participant device. | |
Mute user. | |
Disable all devices. | |
Mute all users. | |
Request to open device. | |
Cancel open device request. | |
Approve open device request. | |
Reject open device request. | |
Invite to open device. | |
Cancel open device invitation. | |
Accept open device invitation. | |
Decline open device invitation. |
Creating Instance
RoomParticipantStore.create
Create object instance.
Observing State and Events
addRoomParticipantListener
Add participant event callback listener.
abstract fun addRoomParticipantListener(listener: RoomParticipantListener?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
listener | Listener. |
removeRoomParticipantListener
Remove participant event callback listener.
abstract fun removeRoomParticipantListener(listener: RoomParticipantListener?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
listener | Listener. |
Participant List
getParticipantList
Get participant list.
abstract fun getParticipantList(cursor: String?, completion: ListResultCompletionHandler<RoomParticipant>?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
cursor | String? | Pagination cursor. |
completion | Completion callback. |
getAudienceList
Get audience list (for webinar room).
abstract fun getAudienceList(cursor: String?, completion: ListResultCompletionHandler<RoomUser>?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
cursor | String? | Pagination cursor. |
completion | Completion callback. |
searchUsers
Search users by keyword.
abstract fun searchUsers(keyword: String, completion: ListResultCompletionHandler<RoomUser>?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
keyword | String | Search keyword. |
completion | Completion callback. |
Audience/Participant Role Management
promoteAudienceToParticipant
Promote audience to participant (for webinar room).
abstract fun promoteAudienceToParticipant(userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
demoteParticipantToAudience
Demote participant to audience (for webinar room).
abstract fun demoteParticipantToAudience(userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
Permission Management
transferOwner
Transfer owner.
abstract fun transferOwner(userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
setAdmin
Set admin.
abstract fun setAdmin(userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
revokeAdmin
Revoke admin.
abstract fun revokeAdmin(userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
kickUser
Kick user.
abstract fun kickUser(userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
updateParticipantNameCard
Update participant name card.
abstract fun updateParticipantNameCard(userID: String, nameCard: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
nameCard | String | Name card. |
completion | CompletionHandler? | Completion callback. |
updateParticipantMetaData
Update participant metadata.
abstract fun updateParticipantMetaData(userID: String,metaData: HashMap<String, String>,completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
metaData | HashMap<String, String> | Metadata. |
completion | CompletionHandler? | Completion callback. |
Local Microphone Control
muteMicrophone
Mute microphone.
abstract fun muteMicrophone()
Version
Supported since version 3.5.
unmuteMicrophone
Unmute microphone.
abstract fun unmuteMicrophone(completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
completion | CompletionHandler? | Completion callback. |
Device Control
closeParticipantDevice
Close participant device.
abstract fun closeParticipantDevice(userID: String, device: DeviceType, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
device | DeviceType | Device type. |
completion | CompletionHandler? | Completion callback. |
disableUserMessage
Mute user.
abstract fun disableUserMessage(userID: String, disable: Boolean, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
disable | Boolean | Whether to mute. |
completion | CompletionHandler? | Completion callback. |
disableAllDevices
Disable all devices.
abstract fun disableAllDevices(device: DeviceType, disable: Boolean, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
device | DeviceType | Device type. |
disable | Boolean | Whether to disable. |
completion | CompletionHandler? | Completion callback. |
disableAllMessages
Mute all users.
abstract fun disableAllMessages(disable: Boolean, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
disable | Boolean | Whether to mute. |
completion | CompletionHandler? | Completion callback. |
Device Request Operations
requestToOpenDevice
Request to open device.
abstract fun requestToOpenDevice(device: DeviceType, timeout: Int = 0, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
device | DeviceType | Device type. |
timeout | Int | Timeout (in seconds). |
completion | CompletionHandler? | Completion callback. |
cancelOpenDeviceRequest
Cancel open device request.
abstract fun cancelOpenDeviceRequest(device: DeviceType, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
device | DeviceType | Device type. |
completion | CompletionHandler? | Completion callback. |
approveOpenDeviceRequest
Approve open device request.
abstract fun approveOpenDeviceRequest(device: DeviceType, userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
device | DeviceType | Device type. |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
rejectOpenDeviceRequest
Reject open device request.
abstract fun rejectOpenDeviceRequest(device: DeviceType, userID: String, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
device | DeviceType | Device type. |
userID | String | User ID. |
completion | CompletionHandler? | Completion callback. |
Device Invitation Operations
inviteToOpenDevice
Invite to open device.
abstract fun inviteToOpenDevice(userID: String,device: DeviceType,timeout: Int = 0,completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
device | DeviceType | Device type. |
timeout | Int | Timeout (in seconds). |
completion | CompletionHandler? | Completion callback. |
cancelOpenDeviceInvitation
Cancel open device invitation.
abstract fun cancelOpenDeviceInvitation(userID: String, device: DeviceType, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
device | DeviceType | Device type. |
completion | CompletionHandler? | Completion callback. |
acceptOpenDeviceInvitation
Accept open device invitation.
abstract fun acceptOpenDeviceInvitation(userID: String, device: DeviceType, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
device | DeviceType | Device type. |
completion | CompletionHandler? | Completion callback. |
declineOpenDeviceInvitation
Decline open device invitation.
abstract fun declineOpenDeviceInvitation(userID: String, device: DeviceType, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Description |
userID | String | User ID. |
device | DeviceType | Device type. |
completion | CompletionHandler? | Completion callback. |
Data Structures
ParticipantRole
Participant role.
Enum Value | Value | Description |
OWNER | 0 | Owner. |
ADMIN | 1 | Admin. |
GENERAL_USER | 2 | General user. |
RoomParticipantStatus
Participant status.
Enum Value | Description |
scheduled | Scheduled. |
inCalling | In calling. |
callTimeout | Call timeout. |
callRejected | Call rejected. |
inRoom | In room. |
KickedOutOfRoomReason
Reason for being kicked out of room.
Enum Value | Description |
kickedByAdmin | Kicked by admin. |
replacedByAnotherDevice | Replaced by another device. |
kickedByServer | Kicked by server. |
connectionTimeout | Connection timeout. |
invalidStatusOnReconnect | Invalid status on reconnect. |
roomLimitExceeded | Room limit exceeded. |
RoomParticipantListener
Participant event callback.
Methods
Method | Description |
onParticipantJoined | Triggered when a participant joins the room. |
onParticipantLeft | Triggered when a participant leaves the room. |
onAudiencePromotedToParticipant | Triggered when an audience is promoted to participant. |
onParticipantDemotedToAudience | Triggered when a participant is demoted to audience. |
onOwnerChanged | Triggered when the owner changes. |
onAdminSet | Triggered when an admin is set. |
onAdminRevoked | Triggered when an admin is revoked. |
onKickedFromRoom | Triggered when kicked from the room. |
onParticipantDeviceClosed | Triggered when a participant's device is closed. |
onUserMessageDisabled | Triggered when a user is muted. |
onAllDevicesDisabled | Triggered when all devices are disabled. |
onAllMessagesDisabled | Triggered when all users are muted. |
onDeviceRequestReceived | Triggered when a device request is received. |
onDeviceRequestCancelled | Triggered when a device request is cancelled. |
onDeviceRequestTimeout | Triggered when a device request times out. |
onDeviceRequestApproved | Triggered when a device request is approved. |
onDeviceRequestRejected | Triggered when a device request is rejected. |
onDeviceRequestProcessed | Triggered when a device request is processed. |
onDeviceInvitationReceived | Triggered when a device invitation is received. |
onDeviceInvitationCancelled | Triggered when a device invitation is cancelled. |
onDeviceInvitationTimeout | Triggered when a device invitation times out. |
onDeviceInvitationAccepted | Triggered when a device invitation is accepted. |
onDeviceInvitationDeclined | Triggered when a device invitation is declined. |
RoomParticipant
Room participant info.
DeviceRequestInfo
Device request info.
RoomParticipantState
Participant related state data provided by RoomParticipantStore.
Property | Type | Description |
participantList | Participant list. | |
participantListCursor | StateFlow<String> | Participant list cursor. |
audienceList | Audience list (for webinar room). | |
audienceListCursor | StateFlow<String> | Audience list cursor. |
adminList | Admin list. | |
messageDisabledUserList | Message disabled user list. | |
participantListWithVideo | Participant list with video. | |
participantWithScreen | Participant sharing screen. | |
pendingDeviceApplications | Pending device application list. | |
pendingDeviceInvitations | Pending device invitation list. | |
speakingUsers | StateFlow<MutableMap<String, Int>> | Speaking users and their volume. |
networkQualities | StateFlow<MutableMap<String, NetworkInfo>> | User network quality info. |
pendingParticipantList | Pending participant list. | |
localParticipant | Local participant info. |
