{"id":4329,"date":"2021-11-17T15:13:07","date_gmt":"2021-11-17T07:13:07","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=4329"},"modified":"2022-04-11T20:52:43","modified_gmt":"2022-04-11T12:52:43","slug":"break-out-room","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/ios-toolkit\/break-out-room\/","title":{"rendered":"Break-Out Room: iOS 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>EnxRoom.createBreakOutRoom()<\/code> method is used to create a Break-Out Room.<\/p>\n\n\n\n<p><strong>Class:<\/strong> EnxRoom<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>-(void)createBreakOutRoom:(NSDictionary* _Nonnull) 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>Delegate Methods:<\/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><\/ul>\n\n\n\n<p><strong>Request Body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\tmsg: {\u200b\u200b\n\t\t  rooms: [ \n\t\t\t\txxx, xxx\n\t\t\t ]\n\t     },\n\t\tresult: 0\n}<\/pre>\n\n\n\n<ul><li><code>-room:didBreakoutRoomCreated<\/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>Response Body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{ \n    id = \"breakout-room-created\"; \n    msg =     { \n        clientId = \"68d0388c-5630-4f16-883a-8bc2a138a905\"; \n        roomId = 61249702a7282c251ec8d840;\n    }; \n}, <\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">NSDictionary *dict = @{\n\t@\"participants\" :@2, \n\t@\"audio\" : @true,\n\t@\"video\": @false , \n\t@\"canvas\":@false, \n\t@\"share\":@false, \n\t@\"max_rooms\":@1\n};\n\n\/\/ Create Break-Out Room\n[EnxRoom createBreakOutRoom:dict];\n\n\/\/ Acknowledgment to the creator\n- (void)room:(EnxRoom *_Nullable)room didAckCreateBreakOutRoom:(NSArray *_Nullable)data {\n\t\/\/ data in JSON with created Break-Out Room Information.\t\t\n}\n\n\/\/ Notification to all the Moderators\n- (void)room:(EnxRoom *_Nullable)room didBreakoutRoomCreated:(NSArray *_Nullable)data; \n <\/pre>\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>EnxRoom.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>Class:<\/strong> EnxRoom<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>-(void)inviteToBreakOutRoom:(NSDictionary * _Nonnull) 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. Availability: iOS SDK 2.0.1+.<\/li><\/ul><\/li><\/ul>\n\n\n\n<p><strong>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>-room:didAckInviteBreakOutRoom<\/code> &#8211; Acknowledgment to the Creator with JSON object returned as a response to the invitation process.<\/li><\/ul>\n\n\n\n<p><strong>Response Body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\t\n       \"msg\": \"Success\",\n       \"result\": 0,\n}<\/pre>\n\n\n\n<ul><li><code>-room:didInvitationForBreakoutRoom<\/code> &#8211; Notification to the invited users when they are invited to join a Break-Out Room.<\/li><\/ul>\n\n\n\n<p><strong>Response Body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\t\n      \"result\": 0,\n}<\/pre>\n\n\n\n<ul><li><code>-room:didBreakoutRoomInvited<\/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<p><strong>Response Body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{ \n\n    id = \"breakout-room-invited\"; \n    msg =     { \n                   clientId = \"12f31157-e62a-43f6-8719-f98b3da40978\"; \n                   roomId = 6124b82e98533871c791a788; \n              }; \n}<\/pre>\n\n\n\n<ul id=\"block-cfa8b5c1-b009-4aa7-beb7-a16e1132598c\"><li><code>-room:didBreakoutroomjoining<\/code> &#8211; Notification sent to the invited Participant when he gets connected to the Break-Out Room.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">NSDictionary *invitee = @{\n\t@\"clients\" : [ clientId1, clientId2], \n\t@\"room_id\" : @\"RoomID\"\n};\n\n\/\/ Invite user to Break-Out Room.\n[EnxRoom inviteToBreakOutRoom:invitee];\n\n\/\/ Acknowledgment to the Creator\n- (void)room:(EnxRoom *_Nullable)room didAckInviteBreakOutRoom:(NSArray *_Nullable)data {\n\t\/\/ data is the result of invitation process, e.g.\n} \n\n\/\/ Notification to the invited users\n- (void)room:(EnxRoom *_Nullable)room didInvitationForBreakoutRoom:(NSArray *_Nullable)data {\n\t\/\/ data carries the invitation details, e.g.\n}\n\n\/\/ Notification to the Moderator(s)\n- (void)room:(EnxRoom *_Nullable)room didBreakoutRoomInvited:(NSArray *_Nullable)data; {\n}\n\n\/\/ Notification to the Participant(s) \n- (void)room:(EnxRoom *_Nullable)room didBreakoutroomjoining:(NSArray *_Nullable)data; {\n}\n\n\/\/ Notification to the Participant(s) \n- (void)room:(EnxRoom *_Nullable)room onBreakoutroomjoining:(NSArray *_Nullable)data; {\n}<\/pre>\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>EnxRoom.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>Class:<\/strong> EnxRoom<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>-(void)createAndInviteBreakoutRoom:(NSDictionary* _Nonnull) RoomDefinition;<\/code><\/p>\n\n\n\n<p><strong>Parameters<\/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>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>-room:didAckCreateAndInviteBreakOutRoom<\/code> &#8211; Acknowledgment to the creator with the result of invitation in a JSON Array.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">NSDictionary *dict = @{\n\t@\"participants\" :@2, \n\t@\"audio\" : @true,\n\t@\"video\": @false , \n\t@\"canvas\":@false, \n\t@\"share\":@false, \n\t@\"max_rooms\":@2\n};\n\n[EnxRoom createAndInviteBreakoutRoom:dict];\n\n- (void)room:(EnxRoom *_Nullable)room didAckCreateAndInviteBreakOutRoom:(NSArray *_Nullable)data {\n\t\/\/ data is JSON with created Break-Out Room Information, e.g.\n\t\/*\t\t\n\t[\n\t\t{\tmsg: {\u200b\u200b\n\t\t\t\t\trooms: [ \n\t\t\t\t\t\txxx, xxx\n\t\t\t\t\t]\n\t\t\t},\n\t\t\tresult: 0\n\t\t|\n\t]\n\t*\/\n}<\/pre>\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>EnxRoom.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 rejoining the Parent Room first.<\/p>\n\n\n\n<p><strong>Class:<\/strong> EnxRoom<\/p>\n\n\n\n<p><strong>Method:&nbsp;<\/strong><code>-(void)joinBreakOutRoom:(NSDictionary* _Nonnull)Joinee withStreamInfo:(NSDictionary* _Nullable)streamInfo;<\/code><\/p>\n\n\n\n<p><strong>Parameters<\/strong>:<\/p>\n\n\n\n<ul><li><code>Joinee<\/code>\u2013 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>\u2013 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>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>- room:didConnectedBreakoutRoom<\/code> &#8211; Acknowledgment to the Joiner when Break-Out Room joined successfully.<\/li><li><code>- room:didFailedJoinBreakOutRoom<\/code> &#8211; Notification to the Joiner when fails to join the Break-Out Room.<\/li><li><code>- room:didUserJoinedBreakoutRoom<\/code>: &#8211; Notification to everyone in the Break-Out Room when a new user joins the Room.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">NSDictionary *Joinee = @{\n\t@\"role\" : @\"participant\", \n\t@\"room_id\" : @\"RoomID\"\n};\n\nNSDictionary *StreamInfo = @{\n\t@\"audio\" : @true, \n\t@\"room_id\" : @false\n};\n\n[EnxRoom joinBreakOutRoom:Joinee StreamInfo];\n\n- (void)room:(EnxRoom *_Nullable)room didConnectedBreakoutRoom:(NSDictionary *_Nullable)roomMetadata  {\n\t\/\/ roomMetadata contains meta information of the Room \n} \n\n- (void)room:(EnxRoom *_Nullable)room didFailedJoinBreakOutRoom:(NSArray *_Nullable)data {\n\t\/\/ data contains reasons of failed connection\n}\n\n- (void)room:(EnxRoom *_Nullable)room didUserJoinedBreakoutRoom:(NSArray *_Nullable)data {\n\t\/\/ data contains new joinee user's information \n\t\/*\n\t{\t\"clientId\": \"String\",\n\t\t\"room\": \"String\";\n\t}\n\t*\/\n}<\/pre>\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>EnxRoom.rejectBreakOutRoom()<\/code> allows the invited user to reject the invitation to join a Break-Out Room. <\/p>\n\n\n\n<p><strong>Class:<\/strong> <code>EnxRoom<\/code><\/p>\n\n\n\n<p><strong>Method:<\/strong> <code>-(<strong>void<\/strong>)rejectBreakOutRoom:(NSString&nbsp;*<strong>_Nonnull<\/strong>)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>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>-room:didAckRejectBreakoutRoom<\/code> &#8211; Acknowledgment to the user who rejected the invitation when the request to reject is successfully processed.<\/li><\/ul>\n\n\n\n<p><strong>Response Body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{ \n         \u201cresult\u201d : 0\/1,   \/\/ 0 for success and 1 for failure \n         \u201cmsg\u201d : \u201csuccess\/failure\u201d \n} <\/pre>\n\n\n\n<ul><li><code>didBreakoutRoomInviteRejected<\/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<pre class=\"wp-block-preformatted\">\/\/ User rejects break-out room invitation.\n[EnxRoom rejectBreakOutRoom:@\u201dRoomID\u201d];\n\n\/\/ Acknowledgment to the user when invitation rejected.\n- (void)room:(EnxRoom *_Nullable)room didAckRejectBreakoutRoom:(NSArray *_Nullable)data; \n\n\/\/ Notification to the Moderators in the Parent Room when invitation rejected.\n- (void)room:(EnxRoom *_Nullable)room didBreakoutRoomInviteRejected:(NSArray *_Nullable)data <\/pre>\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>EnxRoom.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>EnxRoom.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>- (void) pause<\/code> <\/li><li><code>- (void) resume<\/code><\/li><\/ul>\n\n\n\n<p><strong>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>- room:didAckPause<\/code> &#8211; Acknowledgment to the user when the Parent Room is paused.<\/li><li><code>- room:didAckResume<\/code> &#8211; Acknowledgment to the user when the Parent Room is resumed.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">[EnxRoom pause];\t\/\/ Pause Parent Room\n[EnxRoom resume];\t\/\/ Resume Parent Room\n\n- (void)room:(EnxRoom *_Nullable)room didAckPause:(NSArray *_Nullable)data{\n\t\/\/ data carries info related to pausing\n\t\/*\n\t{\t\"msg\": \"Room muted\",\n\t\t\"result\": 0\n\t}\n\t*\/\n};\n\n- (void)room:(EnxRoom *_Nullable)room didAckResume:(NSArray *_Nullable)data {\n\t\/\/ data carries info related to resume\n\t\/*\n\t{\t\"msg\": \"Room unmuted\",\n\t\t\"result\": 0\n\t}\n\t*\/\n};<\/pre>\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>EnxRoom.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>EnxRoom.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>Class:<\/strong> EnxRoom<\/p>\n\n\n\n<p><strong>Methods:&nbsp;<\/strong><\/p>\n\n\n\n<ul><li><code>-(void)muteRoom:(NSDictionary * _Nonnull)muteInfo<\/code> <\/li><li><code>-(void)unmuteRoom:(NSDictionary * _Nonnull)unmuteInfo<\/code><\/li><\/ul>\n\n\n\n<p><strong>Parameters<\/strong>:<\/p>\n\n\n\n<ul><li><code>mutetInfo <\/code>&#8211; Dictionary with options to mute Audio and Video separately.<ul><li><code>audio <\/code>&#8211; BOOL. Set to <em>true<\/em> mute Audio.<\/li><li><code>video <\/code>&#8211; BOOL. Set to <em>true<\/em> to mute Video.<\/li><\/ul><\/li><li><code>unuteteInfo <\/code>&#8211; Dictionary with options to unmute Audio and Video separately.<ul><li><code>audio <\/code>&#8211; Boolean. Set to <em>true<\/em> unmute Audio.<\/li><li><code>video <\/code>&#8211; Boolean. Set to <em>true<\/em> to unmute Video.<\/li><\/ul><\/li><\/ul>\n\n\n\n<p><strong>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>- room:didAckMuteRoom<\/code> &#8211; Acknowledgment to the user when the Parent Room is muted.<\/li><li><code>- room:didAckUnmuteRoom<\/code> &#8211; Acknowledgment to the user when the Parent Room is unmuted.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">NSDictionary *MuteInfo = @{\n\t@\"audio\" : @true, \n\t@\"video\" : @true\n};\n\nNSDictionary *UnmuteInfo = @{\n\t@\"audio\" : @true, \n\t@\"video\" : @true\n};\n\n[EnxRoom muteRoom:MuteInfo];\n\n[EnxRoom unmuteRoom:UnmuteInfo];\n\n- (void)room:(EnxRoom *_Nullable)room didAckMuteRoom:(NSArray *_Nullable)data {\n\t\/\/ data contains muting status\n} \n\n- (void)room:(EnxRoom *_Nullable)room didAckUnmuteRoom:(NSArray *_Nullable)data {\n\t\/\/ data contains unmuting status\n}<\/pre>\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\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=\"..\/room-mode-switch\/\">Room Mode Switch<\/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=\"..\/floor-access-control\/\">Lecture Mode<\/a> \u2192<\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\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":3732,"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\/4329"}],"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=4329"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/4329\/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=4329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}