{"id":4504,"date":"2021-11-24T20:49:42","date_gmt":"2021-11-24T12:49:42","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=4504"},"modified":"2021-11-24T20:50:05","modified_gmt":"2021-11-24T12:50:05","slug":"moderate-participants-entry","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/ios-toolkit\/moderate-participants-entry\/","title":{"rendered":"Moderate Participant&#8217;s entry to a Session: iOS SDK &#8211; Video API"},"content":{"rendered":"\n<p>In a <a href=\"https:\/\/www.enablex.io\/developer\/video-api\/server-api\/rooms-route\/#create-room\">knock-enabled Room,<\/a> a user needs to wait until the Moderator grants them permission to join the Session. The <code>EnxRoom.approveAwaitedUser()<\/code> method allows the Moderator to approve a user&#8217;s entry and <code>EnxRoom.denyAwaitedUser()<\/code> method is used to decline a user&#8217;s entry to the Session.<\/p>\n\n\n\n<p><strong>Methods: <\/strong><\/p>\n\n\n\n<ul><li><code>-approveAwaitedUser:clientID<\/code>  <\/li><li><code>-denyAwaitedUser<\/code>: <code>clientID<\/code> <\/li><\/ul>\n\n\n\n<p><strong>Parameters:<\/strong><\/p>\n\n\n\n<ul><li><code>clientID<\/code>:  Client ID of the user awaiting the Moderator&#8217;s approval.<\/li><\/ul>\n\n\n\n<p><strong>Delegate Methods:<\/strong><\/p>\n\n\n\n<ul><li><code>- room:diduserAwaited<\/code> &#8211; Notification to the Moderator when a user awaits their permission to join Room.<\/li><li><code>- room:didRoomAwaited<\/code> &#8211; Notification to the user when they await Moderator&#8217;s permission to connect Room with { &#8220;event_type&#8221;: &#8220;knock&#8221; } in the JSON Payload.<\/li><li><code>-<\/code> <code>room:didAckForApproveAwaitedUser<\/code> &#8211; Acknowledgment to the Moderator when the user is granted permission to join Room.<\/li><li><code>- room:didConnect <\/code>&#8211; Notification to the user when the user is permitted to join Room. <\/li><li><code>- room:didAckForDenyAwaitedUser<\/code> &#8211; Acknowledgment to the Moderator when the user is denied permission to join Room.<\/li><li><code>- room:didRoomDisconnect<\/code> &#8211; Notification to the user along with a reason for denial when the user is denied access to the Room.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ Moderator is notified about awaited user\n-(void)room:(EnxRoom *_Nullable)room diduserAwaited:(NSArray *_Nullable)data  {\n\t\/\/ Awaited Client Info in the data, e.g.\n\t\/\/ [{\"id\",\"String\", \"name\": \"String\u201d}] \n\t\n\t[room approveAwaitedUser:id];  \/\/ To allow\n\n\t[room denyAwaitedUser:id]; \/\/ To deny\n\t \n};\n\n-(void)room:(EnxRoom *_Nullable)room didAckForApproveAwaitedUser:(NSArray *_Nullable)data; \n{\t\/\/ User has been allowed entry\t\n}\n\n-(void)room:(EnxRoom *_Nullable)room didAckForDenyAwaitedUser:(NSArray *_Nullable)data {\n\t\/\/ User has been denied entry\t\n}<\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>To manage awaited users when moderator joins late<\/h4>\n\n\n\n<p>If the Moderator joins after the participant(s) have sent a request to join the Session in a Knock-enabled Room, then the Moderator can get the list of participants awaiting approval using <code>room.awaitedParticipants<\/code>. You can utilize this attribute to build UI for Moderator controls to handle pending approvals.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ e.g. room.awaitedParticipants\n\n[\n\t{\t\"clientId\u201d: \"String\", \n\t\t\"name\": \"String\" \n\t}\n]\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In a knock-enabled Room, a user needs to wait until the Moderator grants them permission to join the Session. The EnxRoom.approveAwaitedUser() method allows the Moderator to approve a user&#8217;s entry and EnxRoom.denyAwaitedUser() method is used to decline a user&#8217;s entry to the Session. Methods: -approveAwaitedUser:clientID -denyAwaitedUser: clientID Parameters: clientID: Client ID of the user awaiting the Moderator&#8217;s approval. Delegate Methods: &#8211; room:diduserAwaited &#8211; Notification to the Moderator when a user&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":"In a knock-enabled Room, a user needs to wait until the Moderator grants them permission to join the Session. The EnxRoom.approveAwaitedUser() method allows the Moderator to approve a user&#8217;s entry and EnxRoom.denyAwaitedUser() method is used to decline a user&#8217;s entry to the Session. Methods: -approveAwaitedUser:clientID -denyAwaitedUser: clientID Parameters: clientID: Client ID of the user awaiting&hellip;","_links":{"self":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/4504"}],"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=4504"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/4504\/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=4504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}