{"id":4933,"date":"2021-12-16T18:44:33","date_gmt":"2021-12-16T10:44:33","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=4933"},"modified":"2025-04-05T03:03:16","modified_gmt":"2025-04-04T19:03:16","slug":"break-out-room","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/react-native-toolkit\/break-out-room\/","title":{"rendered":"Break-Out Room: React Native SDK &#8211; Video API"},"content":{"rendered":"\n<p>Break-Out Rooms allow users to participate in a discussion outside of the main Video Room i.e. the Parent Room.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>Table of Contents<\/h4>\n\n\n\n<ul><li><a href=\"#create-breakout-room\">Create Break-Out Room<\/a><\/li><li><a href=\"#invite-breakout-room\">Invite Users to join a Break-Out Room<\/a><\/li><li><a href=\"#create-breakout-room-invite\">Create Break-Out Room &amp; Auto-Invite Users<\/a><\/li><li><a href=\"#join-breakout-room\">Join Break-Out Room<\/a><\/li><li><a href=\"#pause-resume-parent-room\">Pause \/ Resume Parent Room<\/a><\/li><li><a href=\"#mute-unmute-parent-room\">Mute \/ Unmute Parent Room<\/a><\/li><li><a href=\"#disconnect-breakout-room\">Disconnect from Break-Out Room<\/a><\/li><li><a href=\"#clearall-breakout-rooms\">Clear All Break-Out Rooms<\/a><\/li><li><a href=\"#destroy-breakout-room\">Handle Destroyed Break-Out Room<\/a><\/li><li><a href=\"#destroyall-breakout-room\">Handle All Destroyed Break-Out Rooms<\/a><\/li><\/ul>\n\n\n\n<p>The process of breaking-out takes place in the following manner:<\/p>\n\n\n\n<ul><li>A creator or owner of the Break-Out Room invites one or more users from the Parent Room to the Break-Out Room. <\/li><li>The invited users get notified about the request and need to accept the request to join the Break-Out room.<\/li><li>Users moving out of the Parent Room are treated as &#8220;paused&#8221; users in the Parent Room until they return. <\/li><\/ul>\n\n\n\n<p>The implementation of Break-Out Room must be carried out with the following considerations: <\/p>\n\n\n\n<ul><li>Break-Out room can be created by a user from the Parent Room only. <\/li><li>A user cannot create another Break-Out Room while being within a Break-Out Room.<\/li><li>A Break-Out Room can be created with a limit to the maximum allowed participants in it. In any case, the maximum allowed participants in the Break-Out Room must be less than the maximum Active Talkers in the Parent Room.   <\/li><li>Break-Out room currently supports only Audio Call with Screen Share and Canvas Streaming support. <\/li><\/ul>\n\n\n\n<a name=\"create-breakout-room\"><\/a>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Create Break-Out Room<\/h3>\n\n\n\n<p>The <code>Enx.createBreakOutRoom()<\/code> method is used to create a Break-Out Room.<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>Enx.createBreakOutRoom(roomDefinition)<\/code><\/p>\n\n\n\n<p><strong>Parameters<\/strong>:<\/p>\n\n\n\n<ul><li><code>RoomDefinition<\/code> \u2013 Required. JSON Object with Room definition parameters defined as following keys:<ul><li><code>participants <\/code>&#8211; Numeric. Required. Total number of Participants in the Break-Out Room. Range: Min: 2. Max: max_active_talkers of Parent Room &#8211; 1<\/li><li><code>audio <\/code>\u2013 Boolean. Required. Set to <em>true<\/em> to enable Audio Communication in Break-Out Room.<\/li><li><code>video <\/code>\u2013 Boolean. Required. Set to <em>true<\/em> to enable Video Communication in Break-Out Room. (This is currently not supported).<\/li><li><code>canvas <\/code>\u2013 Boolean. Required. Set to <em>true<\/em> to enable Canvas Streaming in Break-Out Room.<\/li><li><code>share <\/code>\u2013 Boolean. Required. Set to <em>true<\/em> to enable Screen-Sharing in Break-Out Room.<\/li><li>max_rooms \u2013 Numeric. Required. The total number of Break-Out rooms to be created.<\/li><\/ul><\/li><\/ul>\n\n\n\n<p><strong>Callbacks:<\/strong><\/p>\n\n\n\n<ul><li><code>ackCreateBreakOutRoom<\/code> &#8211; Acknowledgment to the creator with Break-Out Room returned as a JSON object when created.<\/li><li><code>breakoutRoomCreated<\/code> &#8211; Notification to all the Moderators in the Parent Room when a Break-Out Room is created.<\/li><\/ul>\n\n\n\n<p><strong>Error Codes \/ Exceptions<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Code<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>5067<\/td><td>Break-Out Room not supported in a Room in <code>lecture-<\/code>mode.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<a name=\"invite-breakout-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Invite Users to join a Break-Out Room<\/h3>\n\n\n\n<p>The <code>Enx.inviteToBreakOutRoom()<\/code> method allows the Creator\/Owner of a Break-Out Room to invite one or more users from the Parent Room to join the Break-Out Room. In case, if the&nbsp;<code>force_join<\/code>&nbsp;feature is enabled, the invitee automatically joins the Break-Out Room.<\/p>\n\n\n\n<p>This method must be invoked from the Parent Room and NOT from the Break-Out Room.<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>Enx.inviteToBreakOutRoom(invitee)<\/code><\/p>\n\n\n\n<p><strong>Parameters<\/strong>:<\/p>\n\n\n\n<ul><li><code>Invitee<\/code> \u2013 Dictionary with invitation details.<ul><li><code>clients<\/code> &#8211; Array of Client IDs of users to be invited.<\/li><li><code>room_id<\/code> \u2013 String. Room ID of the Break-Out Room to which the users are being invited.<\/li><li><code>force_join<\/code>&nbsp;\u2013 Boolean. If set to true, the invited participant will be forced to join the Break-Out Room. <\/li><\/ul><\/li><\/ul>\n\n\n\n<p><strong>Callbacks:<\/strong><\/p>\n\n\n\n<ul><li><code>ackInviteBreakOutRoom<\/code>&#8211; Acknowledgment to the Creator with JSON object returned as a response to the invitation process.<\/li><\/ul>\n\n\n\n<ul><li><code>invitationForBreakoutRoom<\/code> &#8211; Notification to the invited users when they are invited to join a Break-Out Room.<\/li><\/ul>\n\n\n\n<ul><li><code>breakoutRoomInvited<\/code> &#8211; Notification to all the Moderators in the Parent Room when a user is invited to a Break-Out Room.<\/li><\/ul>\n\n\n\n<a name=\"create-breakout-room-invite\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Create Break-Out Room &amp; Auto-Invite Users<\/h3>\n\n\n\n<p>The <code>Enx.createAndInviteBreakoutRoom()<\/code> is used to support certain use-cases where auto-assignment of users into different Break-Out Rooms is required. This method creates a Break-Out Room with given specifications and invites users to join a Break-Out Room randomly depending on the Room&#8217;s capacity.<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>Enx.createAndInviteBreakoutRoom(roomDefinition)<\/code><\/p>\n\n\n\n<p><strong>Parameter<\/strong>:<\/p>\n\n\n\n<ul><li><code>RoomDefinition<\/code> \u2013 Dictionary with Room definition parameters as explained in <a href=\"#create-breakout-room\" target=\"_blank\" rel=\"noreferrer noopener\">Create Break-Out Room<\/a>.<\/li><\/ul>\n\n\n\n<p><strong>Callback:<\/strong><\/p>\n\n\n\n<ul><li><code>ackCreateAndInviteBreakOutRoom<\/code> &#8211; Acknowledgment to the creator with the result of invitation in a JSON Array.<\/li><\/ul>\n\n\n\n<p><strong>Error Codes \/ Exceptions<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Code<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>5067<\/td><td>Break-Out Room not supported in a Room in <code>lecture<\/code> mode.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<a name=\"join-breakout-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Join a Break-Out Room<\/h3>\n\n\n\n<p>The <code>Enx.joinBreakoutRoom()<\/code> method allows users to join a Break-Out room on being invited by the creator. A user can join a Break-Out Room from the Parent Room only and can join only one Break-Out Room at a time, thus allowing the user to join another Break-Out Room only after re-joining the Parent Room first.<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>Enx.joinBreakoutRoom(joinee,streamInfo)<\/code><\/p>\n\n\n\n<p><strong>Parameters<\/strong>:<\/p>\n\n\n\n<ul><li><code>Joinee<\/code> &#8211; Dictionary with details required to join the Break-Out Room.<ul><li><code>role<\/code> &#8211; String. Required. Enumerated Values: participant, moderator.<\/li><li><code>room_id<\/code> &#8211; String. Required. Room-ID of the Break-Out Room being joined.<\/li><\/ul><\/li><li><code>streamInfo<\/code> &#8211; Dictionary with Stream information while joining the Break-Out Room.<ul><li><code>audio<\/code> &#8211; BOOL. Set to <em>true<\/em><code> <\/code>to join with Audio.<\/li><li><code>video<\/code> &#8211; BOOL. Set to <em>true<\/em><code> <\/code>to join with Video. This is currently not supported.<\/li><\/ul><\/li><\/ul>\n\n\n\n<p><strong>Callbacks:<\/strong><\/p>\n\n\n\n<ul><li><code>connectedBreakoutRoom<\/code> &#8211; Acknowledgment to the Joiner when Break-Out Room joined successfully.<\/li><li><code>failedJoinBreakOutRoom<\/code> &#8211; Notification to the Joiner when fails to join the Break-Out Room.<\/li><li><code>userJoinedBreakoutRoom<\/code> &#8211; Notification to everyone in the Break-Out Room when a new user joins the Room.<\/li><\/ul>\n\n\n\n<a name=\"reject-break-out-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Reject Break-Out Room Invitation<\/h3>\n\n\n\n<p>The <code>Enx.rejectBreakOutRoom()<\/code> allows the invited user to reject the invitation to join a Break-Out Room. <\/p>\n\n\n\n<p><strong>Method:<\/strong> <code>Enx.rejectBreakOutRoom(roomId)<\/code><\/p>\n\n\n\n<p><strong>Parameter:<\/strong><\/p>\n\n\n\n<p><code>roomId<\/code> &#8211; The Break-Out Room identifier to which the user is invited.<\/p>\n\n\n\n<p><strong>Callbacks:<\/strong><\/p>\n\n\n\n<ul><li><code>ackRejectBreakoutRoom<\/code> &#8211; Acknowledgment to the user who rejected the invitation when the request to reject is successfully processed.<\/li><\/ul>\n\n\n\n<ul><li><code>breakoutRoomInviteRejected<\/code> &#8211; Notification to all the Moderators in the Parent Room when a user rejects an invitation to a Break-Out Room.<\/li><\/ul>\n\n\n\n<a name=\"pause-resume-parent-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Pause\/Resume Parent Room<\/h3>\n\n\n\n<p>The <code>Enx.pause()<\/code> method allows the user to pause the Parent Room after joining the Break-Out Room.<\/p>\n\n\n\n<p>The <code>Enx.resume()<\/code> method is used to resume the Parent Room if it was paused while joining the Break-Out Room.<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><\/p>\n\n\n\n<ul><li><code>Enx.resume()<\/code><\/li><li><code>Enx.pause()<\/code><\/li><\/ul>\n\n\n\n<p><strong>Callbacks:<\/strong><\/p>\n\n\n\n<ul><li><code>ackPause<\/code> &#8211; Acknowledgment to the user when the Parent Room is paused.<\/li><li><code>ackResume<\/code> &#8211; Acknowledgment to the user when the Parent Room is resumed.<\/li><\/ul>\n\n\n\n<a name=\"mute-unmute-parent-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Mute\/Unmute Parent Room<\/h3>\n\n\n\n<p>The <code>Enx.muteRoom()<\/code> method allows the user to mute Audio and\/or Video of the Parent Room after joining the Break-Out Room. <\/p>\n\n\n\n<p>The <code>Enx.unmuteRoom()<\/code> is used to unmute Audio and\/or Video of the Parent Room after disconnecting from Break-Out Room and resuming the Parent Room.  <\/p>\n\n\n\n<p><strong>Methods:&nbsp;<\/strong><\/p>\n\n\n\n<ul><li><code>Enx.muteRoom<\/code><\/li><li><code>Enx.unmuteRoom<\/code><\/li><\/ul>\n\n\n\n<p><strong>Callbacks:<\/strong><\/p>\n\n\n\n<ul><li><code>ackMuteRoom<\/code> &#8211; Acknowledgment to the user when the Parent Room is muted.<\/li><li><code>ackUnmuteRoom<\/code> &#8211; Acknowledgment to the user when the Parent Room is unmuted.<\/li><\/ul>\n\n\n\n<a name=\"disconnect-breakout-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Disconnect from Break-Out Room<\/h3>\n\n\n\n<p>The <code>EnxRoom.disconnect()<\/code> method allows the user to disconnect from the Break-Out Room. A user joins back in the Parent Room automatically after getting disconnected from the Break-Out Room.<\/p>\n\n\n\n<p><strong>Class:<\/strong> EnxRoom<\/p>\n\n\n\n<p><strong>Method:<\/strong><code> - (void)disconnect<\/code>  <\/p>\n\n\n\n<p><strong>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>-room:didDisconnectedBreakoutRoom<\/code> &#8211; Acknowledgment to the user when successfully disconnected from the Break-Out Room.<\/li><li><code>-room:didUserDisconnectedFromBreakoutRoom<\/code> &#8211; Notification to everyone in the Break-Out Room when a user gets disconnected from the Room.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">[EnxRoom disconnect]; \n\n- (void)room:(EnxRoom *_Nullable)room didDisconnectedBreakoutRoom:(NSArray *_Nullable) data {\n\t\/\/ data carries info related to disconnection\n\t\/*\n\t{\t\"moderatorId\": \"\",\n\t\t\"msg\": \"Breakout Room disconnected\",\n\t\t\"result\": 0\n\t}\n\t*\/\n};\n\n- (void)room:(EnxRoom *_Nullable)room didUserDisconnectedFromBreakoutRoom:(NSArray *_Nullable) data {\n\t\/\/ data carries info related to disconnected user\n\t\/*\n\t{\t\"clientId\": \"String\",\n\t\t\"name\": \"String\",\n\t\t\"room\": \"breakout-Development\"\n\t}\n\t*\/\n};<\/pre>\n\n\n\n<a name=\"clearall-breakout-rooms\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Clear All Break-Out Rooms<\/h3>\n\n\n\n<p>Availability: iOS SDK 2.0.1+<\/p>\n\n\n\n<p>The&nbsp;<code>EnxRoom.clearAllBreakOutSession()<\/code>&nbsp;method allows the participant to clear all Break-Out Rooms. The Participant gets disconnected from all breakout instances and resumes with the Parent Room.<\/p>\n\n\n\n<p><strong>Class:&nbsp;<\/strong><code>EnxRoom<\/code><\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>EnxRoom.clearAllBreakOutSession()<\/code>&nbsp;\u2013 No Parameter required.<\/p>\n\n\n\n<p><strong>Event Listeners:<\/strong><\/p>\n\n\n\n<ul><li><code>didDisconnectedBreakoutRoom<\/code>&nbsp;\u2013 Notification to the Moderator\/Owner of the Break-Out Room with information of the disconnected participant(s).<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">- (void)room:(EnxRoom *_Nullable)room didDisconnectededBreakoutRoom:(NSArray *_Nullable)data {\n\t\/\/ data carries disconnected breakoutroom information \n\t\/* \n\t{\t\"room_id\": \"String\"\n\t}\n\t*\/\n}<\/pre>\n\n\n\n<a name=\"destroy-breakout-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Handle Destroyed Break-Out Room<\/h3>\n\n\n\n<p>When all the users in a Break-Out Room get disconnected, the Break-Out Room is automatically destroyed and the creator of the Room is notified with the following Callback.:  <\/p>\n\n\n\n<p><strong>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>-room:didDestroyedBreakoutRoom<\/code> &#8211; Notification to the owner when Break-Out Room gets destroyed.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">- (void)room:(EnxRoom *_Nullable)room didDestroyedBreakoutRoom:(NSArray *_Nullable)data {\n\t\/\/ data carries destroyed room infomration \n\t\/* \n\t{\t\"room_id\": \"String\"\n\t}\n\t*\/\n}<\/pre>\n\n\n\n<a name=\"destroyall-breakout-room\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3>Handle All Destroyed Break-Out Rooms<\/h3>\n\n\n\n<p>Availability: iOS SDK 2.0.1+<\/p>\n\n\n\n<p>The&nbsp;<code>EnxRoom.destroyAllBreakOutSession()<\/code>&nbsp;method allows the moderator to destroy all the Breakout Room sessions. When all the Breakout Room sessions get destroyed, the Participants get disconnected and the Parent Room is automatically resumed and unmuted.<\/p>\n\n\n\n<p><strong>Class:<\/strong>&nbsp;<code>EnxRoom<\/code><\/p>\n\n\n\n<p><strong>Method<\/strong>:&nbsp;<code>EnxRoom.destroyAllBreakOutSession()<\/code>&nbsp;\u2013 No Parameter required<\/p>\n\n\n\n<p><strong>Event Listeners:<\/strong><\/p>\n\n\n\n<ul><li><code>didDisconnectedBreakoutRoom<\/code>&nbsp;\u2013 Notification to the owner when the Breakout Room gets destroyed.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">- (void)room:(EnxRoom *_Nullable)room didDisconnectedBreakoutRoom:(NSArray *_Nullable)data {\n\t\/\/ data carries disconnected room information \n\t\/* \n\t{\t\"room_id\": \"String\"\n\t}\n\t*\/\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Break-Out Rooms allow users to participate in a discussion outside of the main Video Room i.e. the Parent Room. Table of Contents Create Break-Out Room Invite Users to join a Break-Out Room Create Break-Out Room &amp; Auto-Invite Users Join Break-Out Room Pause \/ Resume Parent Room Mute \/ Unmute Parent Room Disconnect from Break-Out Room Clear All Break-Out Rooms Handle Destroyed Break-Out Room Handle All Destroyed Break-Out Rooms The process&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3747,"menu_order":0,"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":"Break-Out Rooms allow users to participate in a discussion outside of the main Video Room i.e. the Parent Room. Table of Contents Create Break-Out Room Invite Users to join a Break-Out Room Create Break-Out Room &amp; Auto-Invite Users Join Break-Out Room Pause \/ Resume Parent Room Mute \/ Unmute Parent Room Disconnect from Break-Out Room&hellip;","_links":{"self":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/4933"}],"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=4933"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/4933\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3747"}],"wp:attachment":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/media?parent=4933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}