{"id":3726,"date":"2021-10-01T18:27:28","date_gmt":"2021-10-01T10:27:28","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=3726"},"modified":"2025-04-11T15:38:01","modified_gmt":"2025-04-11T07:38:01","slug":"enxroom","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/web-toolkit\/enxroom\/","title":{"rendered":"EnxRoom Class Room Handler: Web SDK \u2013 Video API"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote\"><p>The EnxRoom is a Derived Class from EnxRtc. It handles all the room-related functions to communicate with the Portal such as connection of Client endpoints to the video Room, publishing and subscription of Streams etc.<\/p><\/blockquote>\n\n\n\n<p>References: <a href=\"#attributes\">Attributes<\/a> &#8211; <a href=\"#methodsd\">Methods<\/a> &#8211; <a href=\"#events\">Events<\/a><\/p>\n\n\n\n<a name=\"attributes\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Attributes<\/h2>\n\n\n\n<ul><li><code>roomID<\/code> &#8211; Unique Room Identifier generated for each Room.<\/li><li><code>clientID<\/code> &#8211; Unique Client ID assigned by the Portal to the Client Endpoint.<\/li><li><code>streams<\/code> &#8211; Dummy Streams available for subscription. Active Talker Notification gives a list of Streams carrying Media.<\/li><li><code>remoteStreams<\/code> &#8211; List of Remote Streams.<\/li><li><code>localStreams<\/code> &#8211; List of Local Streams.<\/li><li><code>status<\/code> &#8211; Room Connection Status: Enum (1=Connecting, 2=Connected, 0=Disconnected).<\/li><li><code>awaitedParticipants<\/code> &#8211; List of users awaiting Moderator\u2019s approval to enter a knock-enabled Room.<\/li><li><code>raisedHands<\/code> &#8211; List of users requesting Floor Access in Lecture Mode.<\/li><li><code>approvedHands<\/code> &#8211; List of users approved for Floor Access in Lecture Mode.<\/li><\/ul>\n\n\n\n<a name=\"methods\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Methods<\/h2>\n\n\n\n<p>The category-wise list of methods is as given below:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Connection<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/room-connection\/#connect-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>connect()<\/code><\/a> &#8211; To connect Client Endpoint to the Room.<\/li><li><a href=\"..\/room-connection\/#disconnect-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>disconnect()<\/code><\/a> &#8211; To disconnect Client Endpoint from the Room.<\/li><li><a href=\"..\/..\/appendix\/#room-meta\" target=\"_blank\" rel=\"noreferrer noopener\"><code>whoami()<\/code><\/a> &#8211; To know information of the user connected to the Room through the Endpoint.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Streaming<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/publishing-local-stream\/#publish-stream\" target=\"_blank\"><code>publish()<\/code><\/a> &#8211; To publish local stream in the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/publishing-local-stream\/#unpublish-stream\" target=\"_blank\"><code>unpublish()<\/code><\/a> &#8211; To unpublish a local stream from the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/subscribing-remote-streams\/\" target=\"_blank\"><code>subscribe()<\/code><\/a> &#8211; To subscribe to a remote stream to start receiving it.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/canvas-streaming\/#start-canvas-streaming\" target=\"_blank\"><code>startCanvas()<\/code><\/a> &#8211; To start Canvas Streaming using a given Canvas DOM ID.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/canvas-streaming\/#stop-canvas-streaming\" target=\"_blank\"><code>stopCanvas()<\/code><\/a> &#8211; To stop ongoing Canvas Streaming.<\/li><li><a href=\"..\/canvas-streaming\/#force-stop-canvas-streaming\"><code>stopAllSharing()<\/code><\/a> &#8211; To force stop any ongoing Canvas Streaming.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#start-share\" target=\"_blank\"><code>startScreenShare()<\/code><\/a> &#8211; To start Screen Sharing.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#stop-share\" target=\"_blank\"><code>stopScreenShare()<\/code><\/a> &#8211; To stop Screen Sharing.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#force-stop-share\" target=\"_blank\"><code>stopAllSharing()<\/code><\/a> &#8211; &nbsp;To force stop any ongoing Screen Share.&nbsp;<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/receiving-video-quality\/\" target=\"_blank\"><code>setReceiveVideoQuality()<\/code><\/a> &#8211; To receive a desired video quality at the Client Endpoint.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#get-max-talkers\" target=\"_blank\"><code>getMaxTalkers()<\/code><\/a> &#8211; To get the maximum number of talkers allowed in the Active Talker List.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#get-talker-count\" target=\"_blank\"><code>getTalkerCount()<\/code><\/a> &#8211; To get the number of talkers set to be received in the Active Talker List.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#set-talker-count\" target=\"_blank\"><code>setTalkerCount()<\/code><\/a> &#8211; To set the desired number of talkers you want to receive in the Active Talker List.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/live-media-statistics\/\" target=\"_blank\"><code>subscribeStreamStatsForClient()<\/code><\/a> &#8211; To know local &amp; subscribed remote Stream&#8217;s Statistical Information.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/switch-camera-mic-speaker\/#switch-speaker\" target=\"_blank\"><code>switchspeaker()<\/code><\/a> &#8211; To switch to a different Speaker to play out Audio.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p> <strong>Advance Features <\/strong> <\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/chat\/\" target=\"_blank\"><code>sendMessage()<\/code><\/a> &#8211; For advance messaging feature between Session participants.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#upload-file\" target=\"_blank\"><code>sendFiles()<\/code><\/a> &#8211; To initiate a file transfer.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#initiate-file-download\" target=\"_blank\"><code>recvFiles()<\/code><\/a> &#8211; To initiate a file download.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-upload\" target=\"_blank\"><code>cancelUploads()<\/code><\/a> &#8211; To cancel uploading process of individual files or cancel all files being uploaded.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-download\" target=\"_blank\"><code>canceldownloads()<\/code><\/a> &#8211; To cancel downloading process of individual files or cancel all files being downloaded.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/audio-only-mode\/\" target=\"_blank\"><code>setAudioOnlyMode()<\/code><\/a> &#8211; To change to a audio-only call, i.e. you neither want to receive anyone\u2019s video nor want to publish your video.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/custom-signalling\/\" target=\"_blank\"><code>sendUserData()<\/code><\/a> &#8211; To send message to all or selected participants in a Room using Custom Signalling Method.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#mute-unmute-parent-room\" target=\"_blank\"><code>muteRoom()<\/code><\/a> &#8211; To mute audio\/video of Parent Room.\u00a0<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#mute-unmute-parent-room\" target=\"_blank\"><code>unMuteRoom()<\/code><\/a> &#8211; To unmute audio\/video of Parent Room.\u00a0<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#disconnect-breakout-room\" target=\"_blank\"><code>disconnect()<\/code><\/a> &#8211; To disconnect from Break-Out Room to join back or resume with Parent Room.\u00a0<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/session-extension-closure\/#extend-session\" target=\"_blank\"><code>extendConferenceDuration()<\/code><\/a> &#8211; To trigger extension by any user, available only when an Extension Window is open.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/annotation\/#annotation-toolbar\" target=\"_blank\"><code>annotateToolAction()<\/code><\/a> &#8211; To configure tools and properties.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/annotation\/#annotation-start\" target=\"_blank\"><code>startAnnotation()<\/code><\/a> &#8211; To initiate Annotation.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/annotation\/#annotation-stop\" target=\"_blank\"><code>stopAnnotation()<\/code><\/a> &#8211; To stop Annotation.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/live-media-statistics\/\" target=\"_blank\"><code>subscribeMediaStats()<\/code><\/a> &#8211; To get live media statistics of Local Stream, Remote Streams, Canvas Stream and Screen Share being played at any end-point.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/talker-noise-notification\/\" target=\"_blank\"><code>subscribeForTalkerNotification()<\/code><\/a> &#8211; To subscribe to get Talker Notification to know who are the participants talking in this Room.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p> <strong>Break Out Room<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#create-breakout-room\" target=\"_blank\"><code>createBreakoutRoom()<\/code><\/a> &#8211; To create a Break-Out Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#invite-breakout-room\" target=\"_blank\"><code>inviteToBreakoutRoom()<\/code><\/a> &#8211; To invite one or more users from Parent Room to join the Break-Out Room. The Creator or Owner of a Break-Out Room can send the invite.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#create-breakout-room-invite\" target=\"_blank\"><code>createAndInviteBreakoutRoom()<\/code><\/a> &#8211; To auto-assign users into different Break-Out Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#join-breakout-room\" target=\"_blank\"><code>joinBreakOutRoom()<\/code><\/a> &#8211; To join a Break-Out room in case invited. This method may be used from the Parent Room only. A user may only join one Break-Out Room at any given point.&nbsp;<\/li><li><a href=\"..\/break-out-room\/#reject-break-out-room\"><code>rejectBreakOutRoomInvite()<\/code><\/a> &#8211; Allows the invited user to reject the invitation to join a Break-Out Room.<\/li><li><a href=\"..\/break-out-room\/#pause-resume-parent-room\"><code>pause()<\/code><\/a> &#8211; Allows the user to pause the Parent Room after joining the Break-Out Room.<\/li><li><a href=\"..\/break-out-room\/#pause-resume-parent-room\"><code>resume()<\/code><\/a> &#8211; To resume the Parent Room if it was paused while joining the Break-Out Room.<\/li><li><a href=\"..\/break-out-room\/#clearall-breakout-rooms\"><code>clearAllBreakOutSession()<\/code><\/a> &#8211; Allows the participant to clear all Break-Out Rooms.<\/li><li><a href=\"..\/break-out-room\/#destroyall-breakout-rooms\"><code>destroyAllBreakOutSession()<\/code><\/a> &#8211; Allows the moderator to destroy all the Breakout Room sessions.&nbsp;<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Moderator Controls<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/disconnect-user\/\" target=\"_blank\"><code>disconnectUser()<\/code><\/a> &#8211; To force disconnect a participant from the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-entry-restriction\/#allow-deny-room-entry\" target=\"_blank\"><code>approveAwaitedUser()<\/code><\/a> &#8211; To grant permission to a user waiting to join a knock-enabled Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-entry-restriction\/#allow-deny-room-entry\" target=\"_blank\"><code>denyAwaitedUser()<\/code><\/a> &#8211; To deny permission to a user waiting to join a knock-enabled Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/hard-muting\/#hard-mute-unmute-room\" target=\"_blank\"><code>hardMute()<\/code><\/a> &#8211; To hard-mute a Room where all the participants are on mute. <\/li><li><a rel=\"noreferrer noopener\" href=\"..\/hard-muting\/#hard-mute-unmute-room\" target=\"_blank\"><code>hardUnmute()<\/code><\/a> &#8211; To lift the hard-mute restriction from the Room.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardMuteUserAudio()<\/code><\/a> &#8211; Allows the Moderator to hard-mute a Participant\u2019s Audio.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardMuteUserVideo()<\/code><\/a> &#8211; Allows the Moderator to hard-mute a Participant\u2019s Video.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardUnMuteUserAudio()<\/code><\/a> &#8211; Allows the Moderator to unmute the Participant\u2019s Audio.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardUnMuteUserVideo()<\/code><\/a> &#8211; Allows the Moderator to unmute the Participant\u2019s Video.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/recording\/#on-demand-recording\" target=\"_blank\"><code>startRecord()<\/code><\/a> &#8211; To start session recording.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/recording\/#on-demand-recording\" target=\"_blank\"><code>stopRecord()<\/code><\/a> &#8211; To stop ongoing session recording.<\/li><li><a href=\"..\/recording\/#on-demand-live-recording\"><code>startLiveRecording()<\/code><\/a> &#8211; Allows the Moderator to start live recording the session.<\/li><li><a href=\"..\/recording\/#on-demand-live-recording\"><code>stopLiveRecording()<\/code><\/a> &#8211; Allows the Moderator to stop live recording the session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-entry-restriction\/#lock-unlock-room\" target=\"_blank\"><code>lock()<\/code><\/a> &#8211; To lock the Room forbidding any new person from joining the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-entry-restriction\/#lock-unlock-room\" target=\"_blank\"><code>unlock()<\/code><\/a> &#8211; To unlock the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/disconnect-user\/\" target=\"_blank\"><code>dropUser()<\/code><\/a> &#8211; To disconnect or force-drop a participant from the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/session-extension-closure\/#destroy-session\" target=\"_blank\"><code>destroy()<\/code><\/a> &#8211; To stop or disconnect an ongoing session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-mode-switch\/\" target=\"_blank\"><code>switchRoomMode()<\/code><\/a> &#8211; Allows the Moderator to switch the Room\u2019s mode of operation from Group to Lecture or vice versa during a running conference.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/participant-role-switch\/\" target=\"_blank\"><code>switchUserRole()<\/code><\/a> &#8211; Allows the Moderator to designate a connected Participant to act as a Moderator during the session.&nbsp;<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/pin-user\/\" target=\"_blank\"><code>pinUsers()<\/code><\/a> &#8211; To pin one or more user stream(s).<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/pin-user\/\" target=\"_blank\"><code>unpinUsers()<\/code><\/a> &#8211; To unpin one or more pinned user stream(s).<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/spotlight-user\/\" target=\"_blank\"><code>addSpotlightUsers()<\/code><\/a> &#8211; To add spotlight on one or more user stream(s).<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/spotlight-user\/\" target=\"_blank\"><code>removeSpotlightUsers()<\/code><\/a> &#8211; To remove spotlight from one or more user stream(s).<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p> <strong>Floor Access<\/strong> <strong>Controls<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/floor-access-control\/#request-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>requestFloor()<\/code><\/a> &#8211; To request permission from Moderator to access Floor and publish local Stream in lecture mode.<\/li><li><a href=\"..\/floor-access-control\/#cancel-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>cancelFloor()<\/code><\/a> &#8211; To cancel request for floor access which is pending at Moderator Side.<\/li><li><a href=\"..\/floor-access-control\/#deny-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>denyFloor()<\/code><\/a> &#8211; To deny a request for floor access to a participant by the Moderator in lecture mode.<\/li><li><a href=\"..\/floor-access-control\/#grant-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>grantFloor()<\/code><\/a> &#8211; To grant Floor Access permission to the participant allowing them to publish their local Stream in lecture mode.<\/li><li><a href=\"..\/floor-access-control\/#finish-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>finishFloor()<\/code><\/a> &#8211; To finish floor access by the Participant.<\/li><li><a href=\"..\/floor-access-control\/#release-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>releaseFloor()<\/code><\/a> &#8211; To terminate floor access granted to some participant.<\/li><li><a href=\"..\/floor-access-control\/#invite-floor\" target=\"_blank\" rel=\"noreferrer noopener\"><code>inviteToFloor()<\/code><\/a> &#8211; To provide more options to the Moderator to organize a conference in lecture mode.<\/li><li><a href=\"..\/floor-access-control\/#invite-floor\" target=\"_blank\" rel=\"noreferrer noopener\"><code>cancelFloorInvite()<\/code><\/a> &#8211; To allow the Moderator to cancel a Floor Invitation sent to a Participant.<\/li><li><a href=\"..\/floor-access-control\/#invite-floor\" target=\"_blank\" rel=\"noreferrer noopener\"><code>acceptInviteFloorRequest()<\/code><\/a> &#8211; To allow the Participant to accept the invitation to the Floor and talk.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Miscellaneous<\/strong><\/p>\n\n\n\n<ul><li><code>addEventListener()<\/code> &#8211; To add listener for Room Bound events for receiving notifications.<\/li><\/ul>\n\n\n\n<a name=\"events\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Events<\/h2>\n\n\n\n<p> A categorized listing of events in as given below:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Connection<\/strong><\/p>\n\n\n\n<ul><li><code>room-connected<\/code> &#8211; Acknowledgment to the user when the client endpoint is connected to the room successfully.<\/li><li><code>room-disconnected<\/code> &#8211; Acknowledgment to the user when the client endpoint gets disconnected from the Room.<\/li><li><code>room-failed<\/code> &#8211; Acknowledgment to the user when the client endpoint fails to connect to the Room.<\/li><li><code>room-awaited<\/code> &#8211; Acknowledgment to the user when Client Endpoint connected to the knock-enabled Room successfully and awaiting Moderator\u2019s approval to join the Room. <\/li><li><code>user-connected<\/code> &#8211; Notification to everyone in the Room when a new user enters the Room.<\/li><li><code>user-disconnected<\/code> &#8211; Notification to everyone in the Room when a user is disconnected from the Room.<\/li><li><code>bandwidth-updated<\/code> &#8211; Notification to the user when there is a significant change in the available Bandwidth (Applied on Down Stream). <\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Streaming<\/strong><\/p>\n\n\n\n<ul><li><code>stream-added<\/code> &#8211; Notification to everyone in the Room when a Stream is published in the Room.<\/li><li><code>stream-removed<\/code> &#8211; Notification to everyone in the Room when a Stream is unpublished\/removed from the Room.<\/li><li><code>stream-failed<\/code> &#8211; Notification to the Publisher of Stream when they fail to publish the stream.<\/li><li><code>stream-subscribed<\/code> &#8211; Notification to the user when they subscribe to a remote Stream successfully.<\/li><li><code>stream-unsubscribed<\/code> &#8211; Notification to the user when they unsubscribe a remote Stream.<\/li><li><code>user-subscribed<\/code> &#8211; Notification to the Publisher of a Stream when their Stream is subscribed by a user.<\/li><li><code>user-unsubscribed<\/code> &#8211; Notification to the Publisher of a Stream when their Stream is unsubscribed by a user.<\/li><li><code>active-talkers-updated<\/code> &#8211; Notification to everyone in the Room when the list of Active Talkers is updated.<\/li><li><code>active-talker-data-in<\/code> \u2013 When text messages are received.<\/li><li><code>canvas-started<\/code> &#8211; Notification to everyone in the Room when a Canvas Streaming starts.<\/li><li><code>canvas-stopped<\/code> &#8211; Notification to everyone in the Room when Canvas Streaming stops.<\/li><li><code>share-started<\/code> &#8211; Notification to everyone in the Room when Screen Sharing starts.<\/li><li><code>share-stopped<\/code> &#8211; Notification to everyone in the Room when Screen Sharing stops.<\/li><li><code>user-audio-muted<\/code>&nbsp;\u2013 Notification to everyone in the Room when a user&#8217;s Audio is muted.<\/li><li><code>user-video-muted<\/code>&nbsp;\u2013 Notification to everyone in the Room when a user&#8217;s Video is muted.<\/li><li><code>user-audio-unmuted<\/code>&nbsp;\u2013 Notification to everyone in the Room when a user&#8217;s Audio is unmuted.<\/li><li><code>user-video-unmuted<\/code>&nbsp;\u2013 Notification to everyone in the Room when a user&#8217;s Video is unmuted.  <br> <\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Moderator Controls<\/strong><\/p>\n\n\n\n<ul><li><code>user-awaited<\/code> &#8211; Notification to the Moderator when a user awaits permission to join a knock-enabled Room. <\/li><li><code>room-record-on<\/code> &#8211; Notification to everyone in the Room when the Session gets recorded. <\/li><li><code>room-record-off<\/code> &#8211; Notification to everyone in the Room when the Session recording stops. <\/li><li><code>room-muted<\/code> &#8211; Notification to everyone in the Room when Moderator hard mutes the Room.<\/li><li><code>room-unmuted<\/code> &#8211; Notification to everyone in the Room when Moderator lifts the hard mute state off the Room.<\/li><li><code>hardmute-user-audio<\/code>&nbsp;\u2013 Notification to the Participant when Moderator hard mutes their Audio.<\/li><li><code>hardmute-user-video<\/code>&nbsp;\u2013 Notification to the Participant when Moderator hard mutes their Video.<\/li><li><code>hardunmute-user-audio<\/code>&nbsp;\u2013 Notification to the Participant when Moderator lifts hard mute state off their Audio.<\/li><li><code>hardunmute-user-video<\/code>&nbsp;\u2013 Notification to the Participant when Moderator lifts hard mute state off their Video.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Floor Access Controls<\/strong><\/p>\n\n\n\n<ul><li><code>floor-requested<\/code> &#8211; Notification to Moderator when a Participant requests Floor Access. <\/li><li><code>floor-granted<\/code> &#8211; Notification to Participant when Moderator grants Floor Access permission to them. <\/li><li><code>release-floor<\/code> &#8211; Notification to Participant when Moderator revokes their Floor Access rights. <\/li><li><code>floor-released<\/code> &#8211; Notification to the Moderator when a Participant releases Floor Access. <\/li><li><code>floor-denied<\/code> &#8211; Notification to the Participant when Moderator denies Floor Access permission to them. <\/li><\/ul>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p> \u2190  <a href=\"..\/enxrtc\/\"><\/a><a href=\"..\/enxrtc\/\">EnxRtc \u2013 The Base Class<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"> <a href=\"..\/\">Index<\/a> <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-right\"><a href=\"..\/enxstream\/\"><\/a><a href=\"..\/enxstream\/\">EnxStream \u2013 Stream Handler<\/a> \u2192 <\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The EnxRoom is a Derived Class from EnxRtc. It handles all the room-related functions to communicate with the Portal such as connection of Client endpoints to the video Room, publishing and subscription of Streams etc. References: Attributes &#8211; Methods &#8211; Events Attributes roomID &#8211; Unique Room Identifier generated for each Room. clientID &#8211; Unique Client ID assigned by the Portal to the Client Endpoint. streams &#8211; Dummy Streams available for&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3724,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ub_ctt_via":""},"featured_image_src":null,"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"featured":false,"featured-large":false},"uagb_author_info":{"display_name":"vcxdevwpadmin","author_link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/author\/vcxdevwpadmin\/"},"uagb_comment_info":0,"uagb_excerpt":"The EnxRoom is a Derived Class from EnxRtc. It handles all the room-related functions to communicate with the Portal such as connection of Client endpoints to the video Room, publishing and subscription of Streams etc. References: Attributes &#8211; Methods &#8211; Events Attributes roomID &#8211; Unique Room Identifier generated for each Room. clientID &#8211; Unique Client&hellip;","_links":{"self":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3726"}],"collection":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/comments?post=3726"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3726\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3724"}],"wp:attachment":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/media?parent=3726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}