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()– To request Floor Access from Moderator to publish Stream in Lecture Mode.cancelFloor()– To allow participants to cancel their request for Floor Access pending for Moderator’s approval.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()– To allow the Moderator to promote a Participant to act as a Moderator in the ongoing Session.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.
