The EnxRoom is a Derived Class from EnxRtc. It handles all the room-related functions to communicate with the platform such as connection of Client endpoints to the Room, publishing and subscription of Streams etc.
References: Attributes – Methods – Delegates
Properties
roomID
– Unique Room ID generated for each RoomroomMetadata
– Complete Room Information.clientID
– Unique Client ID assigned by the platform to the client endpoint.clientName
– Name of the Client connected from the endpoint.userRole
– Role of the Client connected from the endpoint.publishStreamId
– Published Local Stream ID.publishStream
– Published Local Stream Object.remoteStreams
– List of Remote Streams.streamsByStreamId
– Dictionary of Stream Objects.userList
– List of users connected to the Room.isRoomActiveTalker
– BOOL. If Active Talker is enabled in the Room.publishingStats
– Local Stream publishing stats.
Methods
Given below a categorized listing of methods:
Connection
connect
()
– To connect client endpoint to the Room.disconnect()
– To disconnect client endpoint from the Room.whoami()
– To get the information of the user connected from the client endpoint.
Streaming
publish()
– To publish local stream in the Room.unpublish()
– To unpublish a local stream from the Room.subscribe()
– To subscribe to a remote stream to start receiving it.setReceiveVideoQuality()
– To opt to receive a specific video quality.getMaxTalkers()
– To get the maximum number of talkers allowed in the Active Talker List.setTalkerCount()
– To set the desired number of talkers you want to receive in the Active Talker List.getTalkerCount()
– To get the number of talkers set to be received in the Active Talker List.switchATView()
– Provides the option to switch their talker view from leader/gallery or vice versa.getPlayer()
– Provides the option to get a particular EnxPlayerView.highlightBorderForClient()
– Provides the choice to highlight the EnxPlayer border colour.changeBgColorForClients()
– To change the background colour for an EnxPlayer.forceUpdateATList()
– To force reload the active talker view after any manipulation.enableStats()
– To know statistics of Local & Remote Streams.enablePlayerStats()
– To individually receive statistics of Streams being played on the player.requestFloor()
cancelFloor()
getLocalStream()
– To initialize a local stream at the Client endpoint before it can be published to the Room.startCanvas()
– To start canvas streaming.stopCanvas()
– To stop canvas streaming.stopAllSharing()
– To force stop any ongoing Canvas Streaming.startAnnotation()
– To start Annotation on a given Stream object.stopAnnotation()
– To stop Annotations.
Advance Features
sendMessage()
– To send public and private messages to other users in the Room.sendFiles()
– To upload files to share with all or selected users in the Room.cancelUpload()
– To cancel an ongoing file upload job initiated by you.getAvailableFiles()
– To get a list of files available for download.downloadFile()
– To download available files.cancelDownload()
– To cancel the ongoing file download job taking place at your endpoint.cancelAllDownload()
– To cancel all ongoing file downloads taking place at your endpoint.startScreenShare()
– To create a Screen-Sharing Stream @ 6fps to publish in the Room.stopScreenShare()
– To stop the ongoing Screen-Sharing.stopAllSharing()
– To force stop any ongoing Screen Share.exitScreenShare()
– To instruct the Screen Share Broadcaster Extension to exit ongoing Session.sendUserData()
– To send customized data adhering to a structure not bound by the portal message structure, to one or more users connected in a session.
Moderator Controls
muteAllUser()
– To hard-mute a Room where no participant can talk.unMuteAllUser()
– To switch the Room from a hard-mute state to a normal state.hardMuteUserAudio()
– Allows the Moderator to hard-mute a Participant’s Audio.hardMuteUserVideo()
– Allows the Moderator to hard-mute a Participant’s Video Streams.hardUnMuteUserAudio()
– Allows the Moderator to hard-unmute a Participant’s Audio.hardUnMuteUserVideo()
– Allows the Moderator to hard-unmute a Participant’s Video Streams.lockRoom()
– To allow the Moderator to lock the Room which forbids any new user from joining the Session.unlockRoom()
– To allow subsequent users to join the Session.startRecord()
– To allow the Moderator to start recording the Session.stopRecord()
– To stop session recording.startLiveRecording()
– To start live recording the session.stopLiveRecording()
– To stop live recording the session.dropUser()
– To allow the Moderator to disconnect/force-drop one or more participant(s) from the Session.destroy()
– To allow the Moderator to conclude an ongoing session.approveAwaitedUser()
– To allow the Moderator to approve a user’s entry.denyAwaitedUser()
– To decline a user’s entry to the Session.pinUsers()
– To allow the Moderator to pin a user(s) to the Active Talker List irrespective of the user’s activity level.addSpotlightUsers()
– To allow the Moderator to spotlight a user which pushes the user’s Stream to the top of Active Talker List irrespective of the user’s activity level.switchUserRole()
switchRoomMode()
– To switch from group to lecture mode and vice versa during an ongoing session.
Floor Access Controls
requestFloor()
– Allows a Participant to request the Moderator for Floor Access.cancelFloor()
– Allows participants to cancel their request for Floor Access pending for Moderator’s approval.grantFloor()
– To grant Floor Access to a Participant in Lecture Mode.denyFloor()
– To deny Floor Access to a Participant in Lecture Mode.finishFloor()
– To allow the Participant to announce the completion of Floor Access and release Floor Access.releaseFloor()
– To release Floor Access from a Participant in Lecture Mode.inviteToFloor()
– To allow the Moderator to invite any Participant in the ongoing conference to the Floor and talk.cancelFloorInvite()
– To allow the Moderator to cancel a Floor Invitation sent to a Participant.acceptInviteFloorRequest()
– To allow the Participant to accept the invitation to the Floor and talk.rejectInviteFloor()
– To allow the invited Participant to reject the invitation to the Floor.
Devices
getDevices()
– To get a list of Audio devices connected to the client endpoint.
– To get the name of the currently selected device by the user.getSelectedDevice()
switchMediaDevice()
– To switch to another Audio Device.
Break Out Room
createBreakOutRoom()
– To create a Break-Out Room.inviteToBreakOutRoom()
– To allow the Creator/Owner of a Break-Out Room to invite one or more users from the Parent Room to join the Break-Out Room.createAndInviteBreakoutRoom()
– To support certain use-cases where auto-assignment of users into different Break-Out Rooms is required.joinBreakoutRoom()
– To join a Break-Out room on being invited by the creator.rejectBreakoutRoom()
– To allow the invited user to reject the invitation to join a Break-Out Room.pause()
– To allow the user to pause the Parent Room after joining the Break-Out Room.resume()
– To resume the Parent Room if it was paused while joining the Break-Out Room.muteRoom()
– To allow the user to mute Audio and/or Video of the Parent Room after joining the Break-Out Room.unmuteRoom()
– To unmute Audio and/or Video of the Parent Room after disconnecting from Break-Out Room and resuming the Parent Room.disconnect()
– To disconnect from the Break-Out Room.clearAllBreakOutSession()
– Allows the participant to clear all Break-Out Rooms.destroyAllBreakOutSession()
– Allows the moderator to destroy all the Breakout Room sessions.
Miscellaneous
postClientLogs()
– To share Console Log with the portal Tech Team for audit.setAudioOnlyMode()
– To switch to an audio-only call where you can neither receive anybody’s video nor publish your video.stopVideoTracksOnApplicationBackground()
– To configure the state of streams when moving the application from foreground to background.startVideoTracksOnApplicationForeground()
– To configure the state of streams when moving the application from background to foreground.adjustLayout()
– To adjust the Video player layout to fit within its parent view.subscribeForTalkerNotification()
– To receive notification for the talkers in the Room or the participants acting as a source of the noise.
Delegate Methods
Given below is a list of Delegate Methods categorized by their functions.
Connection
room:didConnect
– Acknowledgment to the user when the client endpoint is connected to the room successfully.roomDidDisconnected
– Acknowledgment to the user when the client endpoint gets disconnected from the Room.room:didError
– Acknowledgment to the user when the client endpoint fails to connect to the Room.room:userDidJoined
– Notification to everyone in the Room when a new user joins the Room.room:userDidDisconnected
– Notification to everyone in the Room when a user is disconnected from the Room.
Re-connection
room:didConnectionLost
– Acknowledgment to the user when the client endpoint loses network connection.room:didConnectionInterrupted
– Acknowledgment to the user when the client endpoint’s connection is interrupted such as a switch from WiFi to 4G and vice versa.room:didUserReconnectSuccess
– Acknowledgment to the user when the client endpoint gets reconnected with the portal successfully.room:didReconnect
– Acknowledgment to the user when the client endpoint is trying to reconnect within the given time period.
Streaming
room:didPublishStream
– Acknowledgment to the user when the user’s Stream is published into the Room successfully.room:didUnpublishStream
– Acknowledgment to the user when the user’s Stream is unpublished/removed from the Room.room:didAddedStream
– Notification to everyone in the Room when a Stream is published in the Room.room:didRemovedStream
– Notification to everyone in the Room when a Stream is unpublished/removed from the Room.room:didSubscribeStream
– Acknowledgment to the user when they successfully subscribe to a Remote Stream.room:activeTalkerList
– Notification to everyone in the Room when the list of Active Talkers is updated.room:didOutBoundCallInitiated:
Notification to the call initiator when Dial out call is initiated.room:didDialStateEvents
: Notification to the call initiator about the status of the dial-out process as received from Gateway. The JSON Response returns status codes as: initiated, calling, connecting, connected, and terminated.room:didOutBoundCallCancel:
Notification to the call initiator when the participant gets disconnected.
Devices
didNotifyDeviceUpdate
– Acknowledgment to the user when an Audio device is changed.
Logging
didLogUpload
– When log is uploaded to the Server successfully.
Recording
startRecordingEvent
– Acknowledgment to the Moderator when Recording starts.stopRecordingEvent
– Acknowledgment to the Moderator when Recording stops.roomRecordOn
– Notification to all the participants when Recording starts.roomRecordOff
– Notification to all the participants when Recording stops.didACKStartLiveRecording
– Acknowledgment callback to the Moderator when the Live Recording starts.didLiveRecordingNotification
– Notification to all the participants in the conference that the Live Recording has started.didRoomliverecordOn
– Notification to the new user joining the Session if the session is being recorded live.didACKStopLiveRecording
– Acknowledgment callback to the Moderator when the Live Recording stops.didRoomliverecordOn
– Notification to all the participants in the conference that the Live Recording has stopped.
Hard Mute
didMutedAllUser
– Acknowledgment to the Moderator when the Room is put on a Hard Mute state.didUnMutedAllUser
– Acknowledgment to the Moderator when the Room is put off a Hard Mute state.didHardMutedAll
– Notification to all the participants when the Room is put on a Hard Mute state.didHardUnMuteAllUser
– Notification to all the participants when the Room is put off a Hard Mute state.
Screen Sharing
room:screenSharedStarted
– Notification to everyone in the Room when Screen Sharing starts.room:screenSharedStopped
– Notification to everyone in the Room when Screen Sharing stops.
Canvas Streaming
-
room:canvasStarted
– Notification to everyone in the Room when Canvas Streaming has starts. room:canvasStopped
– Notification to everyone in the Room when Canvas Streaming has stops.
Lecture Mode
didFloorRequested
– Acknowledgment to the Participant when their request for Floor Access is sent to the Moderator.didFloorRequestReceived
– Notification to the Moderator when a new request for Floor Access is received.didGrantFloorRequested
– Notification to the Participant when the Moderator grants them Floor Access.didDenyFloorRequested
– Notification to the Participant when the Moderator denies Floor Access to them.didReleaseFloorRequested
– Notification to the Participant when the Moderator revokes their Floor Access permission.didProcessFloorRequested
– Acknowledgment to the Moderator on his actions regarding Floor Requests such as grant, deny, and release floor access.
Active Talker
-
room:didGetMaxTalkers
– Notification to the user with information on the maximum number of permissible Active Talkers in the Room. room:didGetTalkerCount
– Notification to the user with information on the number of Talkers set to be received in the Active Talker List.room:didSetTalkerCount
– Acknowledgment to the user when they update the number of Talkers to be received in the Active Talker List.
Break-Out Room
room:didAckCreateBreakOutRoom
– Acknowledgment to the creator with Break-Out Room returned as a JSON object when created.room:didAckInviteBreakOutRoom
– Acknowledgment to the Creator with JSON object returned as a response to the invitation process.room:didInvitationForBreakoutRoom
– Notification to the invited users when they are invited to join a Break-Out Room.room:didBreakoutRoomInvited
– Notification to all the Moderators in the Parent Room when a user is invited to a Break-Out Room.room:didBreakoutroomjoining
– Notification sent to the invited Participant when he gets connected to the Break-Out Room.room:didAckCreateAndInviteBreakOutRoom
– Acknowledgment to the creator with the result of invitation in a JSON Array.room:didConnectedBreakoutRoom
– Acknowledgment to the Joiner when Break-Out Room joined successfully.room:didFailedJoinBreakOutRoom
– Notification to the Joiner when fails to join the Break-Out Room.room:didUserJoinedBreakoutRoom
: – Notification to everyone in the Break-Out Room when a new user joins the Room.room:didAckRejectBreakoutRoom
– Acknowledgment to the user who rejected the invitation when the request to reject is successfully processed.room.didBreakoutRoomInviteRejected
– Notification to all the Moderators in the Parent Room when a user rejects an invitation to a Break-Out Room.room:didDisconnectedBreakoutRoom
– Acknowledgment to the user when successfully disconnected from the Break-Out Room.room:didUserDisconnectedFromBreakoutRoom
– Notification to everyone in the Break-Out Room when a user gets disconnected from the Room.room.didDisconnectedBreakoutRoom
– Notification to the Moderator/Owner of the Break-Out Room with information of the disconnected participant(s).room:didDestroyedBreakoutRoom
– Notification to the owner when Break-Out Room gets destroyed.room:didDisconnectedBreakoutRoom
– Notification to the owner when the Breakout Room gets destroyed.
Stats
didAcknowledgeStats
– Acknowledgment to the user when the Stream stats are enabled or disabled.didReceiveStats
– Notification to the user when Stream Statistics are received.
File Sharing
- At File Sender’s End
room:didInitFileUpload
– Acknowledgment to the sender when a file upload process is initiated.room:didFileUploaded
– Acknowledgment to the sender when the file is uploaded.room:didFileUploadFailed
– Acknowledgment to the sender when the file upload process fails.
- At File Receiver’s End
room:didFileUploadStarted
– Notification to the intended receiver when a file is being uploaded.room:didFileAvailable
– Notification to the intended receiver when a file is ready for download.room:didFileDownloaded
– Notification to the receiver when the file is downloaded with either Base64 Raw data to be saved (when auto-saving is false) or saved file path.room:didFileDownloadFailed
– Notification to the receiver when file download fails.
Miscellaneous
room:didBandWidthUpdated
– Notification to the user when a significant change is noticed in the downstream bandwidth at the client endpoint.room:didEventError
– Acknowledgment to the user when client endpoint fails to perform an event.room:didReceiveChatDataAtRoom
– Client endpoint receives text messages.room:didSwitchUserRole
– Acknowledgment to the Moderator when they switch a user’s role.room:didUserRoleChanged
– Notification to everyone in the Room when a user is newly appointed as moderator and additional information provided to the newly appointed moderator.room:didAckSwitchRoom
– Acknowledgment to the Moderator when when Room Mode switch is done.room:didRoomModeSwitched
– Notification to everyone in the room when a moderator switched Room Mode.