{"id":3734,"date":"2021-10-01T18:03:24","date_gmt":"2021-10-01T10:03:24","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=3734"},"modified":"2025-04-11T15:29:17","modified_gmt":"2025-04-11T07:29:17","slug":"enxroom","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/ios-toolkit\/enxroom\/","title":{"rendered":"EnxRoom Room-Handler: iOS SDK &#8211; 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 platform such as connection of Client endpoints to the 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\">Delegates<\/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>Properties<\/h2>\n\n\n\n<ul><li><code>roomID<\/code> &#8211; Unique Room ID generated for each Room<\/li><li><code>roomMetadata<\/code> &#8211; Complete Room Information.<\/li><li><code>clientID<\/code> &#8211; &nbsp;Unique Client ID assigned by the platform to the client endpoint.<\/li><li><code>clientName<\/code> &#8211; Name of the Client connected from the endpoint.<\/li><li><code>userRole <\/code>&#8211; Role of the Client connected from the endpoint.<\/li><li><code>publishStreamId<\/code> &#8211; Published Local Stream ID.<\/li><li><code>publishStream<\/code> &#8211; Published Local Stream Object.<\/li><li><code>remoteStreams<\/code> &#8211; List of Remote Streams.<\/li><li><code>streamsByStreamId<\/code> &#8211; Dictionary of Stream Objects.<\/li><li><code>userList<\/code> &#8211; List of users connected to the Room.<\/li><li><code>isRoomActiveTalker<\/code> &#8211; BOOL. If Active Talker is enabled in the Room.<\/li><li><code>publishingStats<\/code> &#8211; Local Stream publishing stats.<\/li><\/ul>\n\n\n\n<a name=\"methodsd\"><\/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>Given below a categorized listing of methods:  <\/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 rel=\"noreferrer noopener\" href=\"..\/room-connection\/#connect-room\" target=\"_blank\"><code>connect<\/code><\/a><code>()<\/code> &#8211; To connect client endpoint to the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-connection\/#disconnect-room\" target=\"_blank\"><code>disconnect()<\/code><\/a> &#8211; To disconnect client endpoint from the Room.<\/li><li><a href=\"..\/room-information\/#whoami\" target=\"_blank\" rel=\"noreferrer noopener\"><code>whoami()<\/code><\/a> &#8211; To get the information of the user connected from the client 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 href=\"..\/publishing-local-stream\/#unpublish-stream\"><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=\"..\/receiving-video-quality\/\" target=\"_blank\"><code>setReceiveVideoQuality()<\/code><\/a> &#8211; To opt to receive a specific video quality.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#get-max-talkers\" target=\"_blank\"><code>getMaxTalkers()<\/code><\/a> &#8211; &nbsp;To get the maximum number of talkers allowed in the Active Talker List.<\/li><li><a href=\"..\/active-talkers\/#set-talker-count\"><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=\"..\/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 href=\"..\/active-talkers\/#switch-active-talker\"><code>switchATView()<\/code><\/a> &#8211; Provides the option to switch their talker view from leader\/gallery or vice versa.<\/li><li><a href=\"..\/active-talkers\/#playerview\"><code>getPlayer()<\/code><\/a> &#8211; Provides the option to get a particular EnxPlayerView.<\/li><li><a href=\"..\/active-talkers\/#playerview\"><code>highlightBorderForClient()<\/code><\/a> &#8211; &nbsp;Provides the choice to highlight the EnxPlayer border colour.<\/li><li><a href=\"..\/active-talkers\/#playerview\"><code>changeBgColorForClients()<\/code><\/a> &#8211; To change the background colour for an EnxPlayer.<\/li><li><a href=\"..\/active-talkers\/#playerview\"><code>forceUpdateATList()<\/code><\/a> &#8211; To force reload the active talker view after any manipulation.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/live-media-statistics\/\" target=\"_blank\"><code>enableStats()<\/code><\/a> &#8211; To know statistics of Local &amp; Remote Streams.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/live-media-statistics\/\" target=\"_blank\"><code>enablePlayerStats()<\/code><\/a> &#8211; To individually receive statistics of Streams being played on the player.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#request-floor-access\" target=\"_blank\"><code>requestFloor()<\/code><\/a><code> <\/code>&#8211;  To request Floor Access from Moderator to publish Stream in Lecture Mode.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#cancel-floor-access\" target=\"_blank\"><code>cancelFloor()<\/code><\/a><code> <\/code>&#8211;  To allow participants to cancel their request for Floor Access pending for Moderator\u2019s approval.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/local-stream\/\" target=\"_blank\"><code>getLocalStream()<\/code><\/a> &#8211;  To initialize a local stream at the Client endpoint before it can be published to the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/canvas-streaming\/#start-canvas-streaming\" target=\"_blank\"><code>startCanvas()<\/code><\/a> &#8211; To &nbsp;start canvas streaming.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/canvas-streaming\/#stop-canvas-streaming\" target=\"_blank\"><code>stopCanvas()<\/code><\/a> &#8211; To &nbsp;stop canvas streaming.<\/li><li><a href=\"..\/canvas-streaming\/#force-stop-share\"><code>stopAllSharing()<\/code><\/a> &#8211; To force stop any ongoing Canvas Streaming.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/annotation\/#start-stop-annotation\" target=\"_blank\"><code>startAnnotation()<\/code><\/a> &#8211; To &nbsp;start Annotation on a given Stream object.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/annotation\/#start-stop-annotation\" target=\"_blank\"><code>stopAnnotation()<\/code><\/a> &#8211; To &nbsp;stop Annotations.<\/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; To send public and private messages to other users in the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#upload-file\" target=\"_blank\"><code>sendFiles()<\/code><\/a> &#8211; To upload files to share with all or selected users in the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-upload\" target=\"_blank\"><code>cancelUpload()<\/code><\/a> &#8211; To cancel an ongoing file upload job initiated by you.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#download-file\" target=\"_blank\"><code>getAvailableFiles()<\/code><\/a> &#8211; To get a list of files available for download.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#download-file\" target=\"_blank\"><code>downloadFile()<\/code><\/a> &#8211; To download available files.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-download-file\" target=\"_blank\"><code>cancelDownload()<\/code><\/a> &#8211; To cancel the ongoing file download job taking place at your endpoint.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-download-file\" target=\"_blank\"><code>cancelAllDownload()<\/code><\/a> &#8211; To cancel all ongoing file downloads taking place at your endpoint.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#start-share\" target=\"_blank\"><code>startScreenShare()<\/code><\/a> &#8211; To create a Screen-Sharing Stream @ 6fps to publish in the Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#stop-share\" target=\"_blank\"><code>stopScreenShare()<\/code><\/a> &#8211; To stop the ongoing Screen-Sharing.<\/li><li><a href=\"..\/screen-share\/#force-stop-share\"><code>stopAllSharing()<\/code><\/a> &#8211; To force stop any ongoing Screen Share.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#exit-screen-share\" target=\"_blank\"><code>exitScreenShare()<\/code> <\/a>&#8211; To instruct the Screen Share Broadcaster Extension to exit ongoing Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/custom-signalling\/\" target=\"_blank\"><code>sendUserData()<\/code><\/a> &#8211; To send customized data adhering to a structure not bound by the portal message structure, to one or more users connected in a session.<\/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=\"..\/hard-muting\/#hard-mute-unmute-room\" target=\"_blank\"><code>muteAllUser()<\/code><\/a> &#8211; To hard-mute a Room where no participant can talk.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/hard-muting\/#hard-mute-unmute-room\" target=\"_blank\"><code>unMuteAllUser()<\/code><\/a> &#8211; To switch the Room from a hard-mute state to a normal state.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participant\"><code>hardMuteUserAudio()<\/code><\/a> &#8211; Allows the Moderator to hard-mute a Participant\u2019s Audio.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participant\"><code>hardMuteUserVideo()<\/code><\/a> &#8211; Allows the Moderator to hard-mute a Participant\u2019s Video Streams.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participant\"><code>hardUnMuteUserAudio()<\/code><\/a> &#8211; Allows the Moderator to hard-unmute a Participant\u2019s Audio.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participant\"><code>hardUnMuteUserVideo()<\/code><\/a> &#8211; Allows the Moderator to hard-unmute a Participant\u2019s Video Streams.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-entry-restriction\/#lock-unlock-room\" target=\"_blank\"><code>lockRoom()<\/code><\/a> &#8211; To allow the Moderator to lock the Room which forbids any new user from joining the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/room-entry-restriction\/#lock-unlock-room\" target=\"_blank\"><code>unlockRoom()<\/code><\/a> &#8211; To allow subsequent users to join the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/recording\/#on-demand-recording\" target=\"_blank\"><code>startRecord()<\/code><\/a> &#8211; To allow the Moderator to start recording the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/recording\/#on-demand-recording\" target=\"_blank\"><code>stopRecord()<\/code><\/a> &#8211; To stop session recording.<\/li><li><a href=\"..\/recording\/#on-demand-live-recording\"><code>startLiveRecording()<\/code><\/a> &#8211; To start live recording the session.<\/li><li><a href=\"..\/recording\/#on-demand-live-recording\"><code>stopLiveRecording()<\/code><\/a> &#8211; To stop live recording the session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/disconnect-user\/\" target=\"_blank\"><code>dropUser()<\/code><\/a> &#8211; To allow the Moderator to disconnect\/force-drop one or more participant(s) from the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/destroy-session\/\" target=\"_blank\"><code>destroy()<\/code><\/a> &#8211; To allow the Moderator to conclude an ongoing session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/moderate-participants-entry\/\" target=\"_blank\"><code>approveAwaitedUser()<\/code><\/a> &#8211; To allow the Moderator to approve a user\u2019s entry.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/moderate-participants-entry\/\" target=\"_blank\"><code>denyAwaitedUser()<\/code><\/a> &#8211; To decline a user\u2019s entry to the Session.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/pin-user\/\" target=\"_blank\"><code>pinUsers()<\/code><\/a> &#8211; To allow the Moderator to pin a user(s) to the Active Talker List irrespective of the user\u2019s activity level.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/spotlight-user\/\" target=\"_blank\"><code>addSpotlightUsers()<\/code><\/a> &#8211; To allow the Moderator to spotlight a user which pushes the user\u2019s Stream to the top of Active Talker List irrespective of the user\u2019s activity level.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/participant-role-switch\/\" target=\"_blank\"><code>switchUserRole()<\/code><\/a><code> <\/code>&#8211; To allow the Moderator to promote a Participant to act as a Moderator in the ongoing Session.<\/li><li><a href=\"..\/room-mode-switch\/\"><code>switchRoomMode()<\/code><\/a> &#8211; To switch from group to lecture mode and vice versa during an ongoing session.<\/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><a href=\"..\/floor-access-control\/#request-floor-access\"><code>requestFloor()<\/code><\/a> &#8211; Allows a Participant to request the Moderator for Floor Access.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#cancel-floor-access\" target=\"_blank\"><code>cancelFloor()<\/code><\/a> &#8211; Allows participants to cancel their request for Floor Access pending for Moderator\u2019s approval.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#grant-floor-access\" target=\"_blank\"><code>grantFloor()<\/code><\/a> &#8211; To grant Floor Access to a Participant in Lecture Mode.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#deny-floor-access\" target=\"_blank\"><code>denyFloor()<\/code><\/a> &#8211; To deny Floor Access to a Participant in Lecture Mode.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#finish-floor-access\" target=\"_blank\"><code>finishFloor()<\/code><\/a> &#8211; To allow the Participant to announce the completion of Floor Access and release Floor Access.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#release-floor-access\" target=\"_blank\"><code>releaseFloor()<\/code><\/a> &#8211; To release Floor Access from a Participant in Lecture Mode.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#invite-floor\" target=\"_blank\"><code>inviteToFloor()<\/code><\/a> &#8211; To allow the Moderator to invite any Participant in the ongoing conference to the Floor and talk.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#cancel-floor-invite\" target=\"_blank\"><code>cancelFloorInvite()<\/code><\/a> &#8211; To allow the Moderator to cancel a Floor Invitation sent to a Participant.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#accept-invite-floor-request\" target=\"_blank\"><code>acceptInviteFloorRequest()<\/code><\/a> &#8211; To allow the Participant to accept the invitation to the Floor and talk.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/floor-access-control\/#reject-invite-floor\" target=\"_blank\"><code>rejectInviteFloor()<\/code><\/a> &#8211; To allow the invited Participant to reject the invitation to the Floor.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Devices<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/get-devices\/\" target=\"_blank\"><code>getDevices()<\/code><\/a>&#8211; To get a list of Audio devices connected to the client endpoint.<\/li><li><code><a rel=\"noreferrer noopener\" href=\"..\/get-selected-devices\/\" target=\"_blank\"><code>getSelectedDevice()<\/code><\/a><\/code> &#8211; To get the name of the currently selected device by the user.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/switch-camera-mic-speaker\/#switch-mic\" target=\"_blank\"><code>switchMediaDevice()<\/code><\/a> &#8211; To switch to another Audio Device.<\/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 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.&nbsp;<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#create-breakout-room-invite\" target=\"_blank\"><code>createAndInviteBreakoutRoom()<\/code><\/a> &#8211; To support certain use-cases where auto-assignment of users into different Break-Out Rooms is required.<\/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 on being invited by the creator.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#reject-break-out-room\" target=\"_blank\"><code>rejectBreakoutRoom()<\/code><\/a> &#8211; To allow the invited user to reject the invitation to join a Break-Out Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#pause-resume-parent-room\" target=\"_blank\"><code>pause()<\/code><\/a> &#8211; To allow the user to pause the Parent Room after joining the Break-Out Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#pause-resume-parent-room\" target=\"_blank\"><code>resume()<\/code><\/a> &#8211; To resume the Parent Room if it was paused while joining the Break-Out Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#mute-unmute-parent-room\" target=\"_blank\"><code>muteRoom()<\/code><\/a> &#8211; To allow the user to mute Audio and\/or Video of the Parent Room after joining the Break-Out Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#mute-unmute-parent-room\" target=\"_blank\"><code>unmuteRoom()<\/code><\/a> &#8211; To unmute Audio and\/or Video of the Parent Room after disconnecting from Break-Out Room and resuming the Parent Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/break-out-room\/#mute-unmute-parent-room\" target=\"_blank\"><code>disconnect()<\/code><\/a> &#8211; To disconnect from 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\/#destroy-breakout-room\"><code>destroyAllBreakOutSession()<\/code><\/a> &#8211; Allows the moderator to destroy all the Breakout Room sessions.<\/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><a rel=\"noreferrer noopener\" href=\"..\/share-log\/\" target=\"_blank\"><code>postClientLogs()<\/code><\/a> &#8211; To share Console Log with the portal Tech Team for audit.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/audio-only-mode\/\" target=\"_blank\"><code>setAudioOnlyMode()<\/code><\/a> &#8211; To switch to an audio-only call where you can neither receive anybody\u2019s video nor publish your video.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/handle-application-switch\/\" target=\"_blank\"><code>stopVideoTracksOnApplicationBackground()<\/code><\/a>\u00a0\u2013 To configure the state of streams when moving the application from foreground to background.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/handle-application-switch\/\" target=\"_blank\"><code>startVideoTracksOnApplicationForeground()<\/code><\/a>\u00a0\u2013 To configure the state of streams when moving the application from background to foreground.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/adjust-layout\/\" target=\"_blank\"><code>adjustLayout()<\/code><\/a> &#8211; To adjust the Video player layout to fit within its parent view.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/talker-noise-notification\/\" target=\"_blank\"><code>subscribeForTalkerNotification()<\/code><\/a> &#8211; To receive notification for the talkers in the Room or the participants acting as a source of the noise.<\/li><\/ul>\n\n\n\n<a name=\"delegates\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Delegate Methods<\/h2>\n\n\n\n<p>Given below is a list of Delegate Methods categorized by their functions. <\/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:didConnect<\/code> &#8211; Acknowledgment to the user when the client endpoint is connected to the room successfully.<\/li><li><code>roomDidDisconnected<\/code> &#8211; Acknowledgment to the user when the client endpoint gets disconnected from the Room.<\/li><li><code>room:didError<\/code> &#8211; Acknowledgment to the user when the client endpoint fails to connect to the Room.<\/li><li><code>room:userDidJoined<\/code> &#8211; Notification to everyone in the Room when a new user joins the Room.<\/li><li><code>room:userDidDisconnected<\/code> &#8211; Notification to everyone in the Room when a user is disconnected from the 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>Re-connection<\/strong><\/p>\n\n\n\n<ul><li><code>room:didConnectionLost<\/code> \u2013 Acknowledgment to the user when the client endpoint loses network connection.<\/li><li><code>room:didConnectionInterrupted<\/code> \u2013 Acknowledgment to the user when the client endpoint\u2019s connection is interrupted such as a switch from WiFi to 4G and vice versa.<\/li><li><code>room:didUserReconnectSuccess<\/code>\u2013 Acknowledgment to the user when the client endpoint gets reconnected with the portal successfully.<\/li><li><code>room:didReconnect<\/code> \u2013 Acknowledgment to the user when the client endpoint is trying to reconnect within the given time period.<\/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>room:didPublishStream<\/code> &#8211; Acknowledgment to the user when the user\u2019s Stream is published into the Room successfully.<\/li><li><code>room:didUnpublishStream<\/code> &#8211; Acknowledgment to the user when the user\u2019s Stream is unpublished\/removed from the Room.<\/li><li><code>room:didAddedStream <\/code>&#8211; Notification to everyone in the Room when a Stream is published in the Room.<\/li><li><code>room:didRemovedStream<\/code> &#8211; Notification to everyone in the Room when a Stream is unpublished\/removed from the Room.<\/li><li><code>room:didSubscribeStream<\/code> &#8211; Acknowledgment to the user when they successfully subscribe to a Remote Stream.<\/li><li><code>room:activeTalkerList<\/code>  &#8211; Notification to everyone in the Room when the list of Active Talkers is updated.<\/li><li><code>room:didOutBoundCallInitiated:<\/code>&nbsp;Notification to the call initiator when Dial out call is initiated.<\/li><li><code>room:didDialStateEvents<\/code>: Notification to the call initiator about the status of the dial-out process as received from Gateway. The JSON Response returns status codes as:&nbsp;<em>initiated, calling, connecting, connected<\/em>, and&nbsp;<em>terminated<\/em>.<\/li><li><code>room:didOutBoundCallCancel:<\/code>&nbsp;Notification to the call initiator when the participant gets disconnected.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Devices<\/strong><\/p>\n\n\n\n<ul><li><code>didNotifyDeviceUpdate<\/code> &#8211; Acknowledgment to the user when an Audio device is changed.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Logging<\/strong><\/p>\n\n\n\n<ul><li><code>didLogUpload<\/code> &#8211; When log is uploaded to the Server successfully.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Recording<\/strong><\/p>\n\n\n\n<ul><li><code>startRecordingEvent<\/code> &#8211; Acknowledgment to the Moderator when Recording starts.<\/li><li><code>stopRecordingEvent<\/code> &#8211; Acknowledgment to the Moderator when Recording stops.<\/li><li><code>roomRecordOn<\/code> &#8211; Notification to all the participants when Recording starts.<\/li><li><code>roomRecordOff<\/code> &#8211; Notification to all the participants when Recording stops.<\/li><li><code>didACKStartLiveRecording<\/code>&nbsp;\u2013 Acknowledgment callback to the Moderator when the Live Recording starts.<\/li><li><code>didLiveRecordingNotification<\/code>&nbsp;\u2013 Notification to all the participants in the conference that the Live Recording has started.<\/li><li><code>didRoomliverecordOn<\/code>&nbsp;\u2013 Notification to the new user joining the Session if the session is being recorded live.<\/li><li><code>didACKStopLiveRecording<\/code>&nbsp;\u2013 Acknowledgment callback to the Moderator when the Live Recording stops.<\/li><li><code>didRoomliverecordOn<\/code>&nbsp;\u2013 Notification to all the participants in the conference that the Live Recording has stopped.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Hard Mute<\/strong><\/p>\n\n\n\n<ul><li><code>didMutedAllUser<\/code> &#8211; Acknowledgment to the Moderator when the Room is put on a Hard Mute state.<\/li><li><code>didUnMutedAllUser<\/code> &#8211; Acknowledgment to the Moderator when the Room is put off a Hard Mute state.<\/li><li><code>didHardMutedAll<\/code> &#8211; Notification to all the participants when the Room is put on a Hard Mute state.<\/li><li><code>didHardUnMuteAllUser<\/code> &#8211; Notification to all the participants when the Room is put off a Hard Mute state.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Screen Sharing<\/strong><\/p>\n\n\n\n<ul><li><code>room:screenSharedStarted<\/code> &#8211; Notification to everyone in the Room when Screen Sharing starts.<\/li><li><code>room:screenSharedStopped<\/code> &#8211; Notification to everyone in the Room when Screen Sharing stops.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Canvas Streaming<\/strong><\/p>\n\n\n\n<ul><li> <code>room:canvasStarted<\/code> &#8211; Notification to everyone in the Room when Canvas Streaming has starts.<\/li><li><code>room:canvasStopped<\/code> &#8211; Notification to everyone in the Room when Canvas Streaming has stops. <\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong> Lecture Mode<\/strong><\/p>\n\n\n\n<ul><li><code>didFloorRequested<\/code> &#8211; Acknowledgment to the Participant when their request for Floor Access is sent to the Moderator.<\/li><li><code>didFloorRequestReceived<\/code> &#8211; Notification to the Moderator when a new request for Floor Access is received.<\/li><li><code>didGrantFloorRequested<\/code> &#8211; Notification to the Participant when the Moderator grants them Floor Access.<\/li><li><code>didDenyFloorRequested <\/code>&#8211; Notification to the Participant when the Moderator denies Floor Access to them.<\/li><li><code>didReleaseFloorRequested<\/code> &#8211; Notification to the Participant when the Moderator revokes their Floor Access permission.<\/li><li><code>didProcessFloorRequested<\/code> &#8211; Acknowledgment to the Moderator on his actions regarding Floor Requests such as grant, deny, and release floor access.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Active Talker<\/strong><\/p>\n\n\n\n<ul><li> <code>room:didGetMaxTalkers <\/code>&#8211; Notification to the user with information on the maximum number of permissible Active Talkers in the Room.<\/li><li><code>room:didGetTalkerCount<\/code> &#8211; Notification to the user with information on the number of Talkers set to be received in the Active Talker List.<\/li><li><code>room:didSetTalkerCount<\/code> &#8211; Acknowledgment to the user when they update the number of Talkers to be received in the Active Talker List.<\/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><code>room:didAckCreateBreakOutRoom<\/code> &#8211; Acknowledgment to the creator with Break-Out Room returned as a JSON object when created.<\/li><li><code>room:didAckInviteBreakOutRoom <\/code>&#8211; Acknowledgment to the Creator with JSON object returned as a response to the invitation process.<\/li><li><code>room:didInvitationForBreakoutRoom <\/code>&#8211; Notification to the invited users when they are invited to join a Break-Out Room.<\/li><li><code>room:didBreakoutRoomInvited<\/code>&nbsp;\u2013 Notification to all the Moderators in the Parent Room when a user is invited to a Break-Out Room.<\/li><li><code>room:didBreakoutroomjoining<\/code>&nbsp;\u2013 Notification sent to the invited Participant when he gets connected to the Break-Out Room.<\/li><li><code>room:didAckCreateAndInviteBreakOutRoom<\/code>&nbsp;\u2013 Acknowledgment to the creator with the result of invitation in a JSON Array.<\/li><li><code>room:didConnectedBreakoutRoom<\/code>&nbsp;\u2013 Acknowledgment to the Joiner when Break-Out Room joined successfully.<\/li><li><code>room:didFailedJoinBreakOutRoom<\/code>&nbsp;\u2013 Notification to the Joiner when fails to join the Break-Out Room.<\/li><li><code>room:didUserJoinedBreakoutRoom<\/code>: \u2013 Notification to everyone in the Break-Out Room when a new user joins the Room.<\/li><li><code>room:didAckRejectBreakoutRoom<\/code>&nbsp;\u2013 Acknowledgment to the user who rejected the invitation when the request to reject is successfully processed.<\/li><li><code>room.didBreakoutRoomInviteRejected<\/code>&nbsp;\u2013 Notification to all the Moderators in the Parent Room when a user rejects an invitation to a Break-Out Room.<\/li><li><code>room:didDisconnectedBreakoutRoom<\/code>&nbsp;\u2013 Acknowledgment to the user when successfully disconnected from the Break-Out Room.<\/li><li><code>room:didUserDisconnectedFromBreakoutRoom<\/code>&nbsp;\u2013 Notification to everyone in the Break-Out Room when a user gets disconnected from the Room.<\/li><li><code>room.didDisconnectedBreakoutRoom<\/code>&nbsp;\u2013 Notification to the Moderator\/Owner of the Break-Out Room with information of the disconnected participant(s).<\/li><li><code>room:didDestroyedBreakoutRoom<\/code>&nbsp;\u2013 Notification to the owner when Break-Out Room gets destroyed.<\/li><li><code>room:didDisconnectedBreakoutRoom<\/code>&nbsp;\u2013 Notification to the owner when the Breakout Room gets destroyed.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Stats <\/strong><\/p>\n\n\n\n<ul><li><code>didAcknowledgeStats<\/code> &#8211; Acknowledgment to the user when the Stream stats are enabled or disabled.<\/li><li><code>didReceiveStats<\/code> &#8211; Notification to the user when Stream Statistics are received.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>File Sharing<\/strong><\/p>\n\n\n\n<ul><li>At File Sender&#8217;s End<ul><li><code>room:didInitFileUpload <\/code>\u2013 Acknowledgment to the sender when a file upload process is initiated.<\/li><li><code>room:didFileUploaded <\/code>\u2013 Acknowledgment to the sender when the file is uploaded.<\/li><li><code>room:didFileUploadFailed <\/code>\u2013 Acknowledgment to the sender when the file upload process fails.<\/li><\/ul><\/li><li>At File Receiver&#8217;s End<ul><li><code>room:didFileUploadStarted<\/code> \u2013 Notification to the intended receiver when a file is being uploaded.<\/li><li><code>room:didFileAvailable<\/code> \u2013 Notification to the intended receiver when a file is ready for download.<\/li><li><code>room:didFileDownloaded<\/code> \u2013 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.<\/li><li><code>room:didFileDownloadFailed<\/code> \u2013 Notification to the receiver when file download fails.<\/li><\/ul><\/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>room:didBandWidthUpdated <\/code>&#8211; Notification to the user when a significant change is noticed in the downstream bandwidth at the client endpoint.<\/li><li><code>room:didEventError<\/code> &#8211; Acknowledgment to the user when client endpoint fails to perform an event.<\/li><li><code>room:didReceiveChatDataAtRoom <\/code>&#8211; Client endpoint receives text messages.<\/li><li><code>room:didSwitchUserRole<\/code> &#8211; Acknowledgment to the Moderator when they switch a user&#8217;s role.<\/li><li><code>room:didUserRoleChanged<\/code> &#8211; Notification to everyone in the Room when a user is newly appointed as moderator and additional information provided to the newly appointed moderator.<\/li><li><code>room:didAckSwitchRoom<\/code> &#8211; Acknowledgment to the Moderator when when Room Mode switch is done.<\/li><li><code>room:didRoomModeSwitched<\/code> &#8211; Notification to everyone in the room when a moderator switched Room Mode.<\/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\/\">EnxRtc \u2013 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\/\">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 platform such as connection of Client endpoints to the Room, publishing and subscription of Streams etc. References: Attributes &#8211; Methods &#8211; Delegates Properties roomID &#8211; Unique Room ID generated for each Room roomMetadata &#8211; Complete Room Information. clientID &#8211; &nbsp;Unique Client ID assigned by the platform to the client endpoint. clientName &#8211;&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3732,"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 platform such as connection of Client endpoints to the Room, publishing and subscription of Streams etc. References: Attributes &#8211; Methods &#8211; Delegates Properties roomID &#8211; Unique Room ID generated for each Room roomMetadata &#8211; Complete Room Information.&hellip;","_links":{"self":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3734"}],"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=3734"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3734\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3732"}],"wp:attachment":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/media?parent=3734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}