tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
November 25, 2020, 12:04pm
1
Hello.
I create a new meeting with the zoom API setting waiting_room: true. Afterwards, when a participant joins the meeting with web sdk 1.8.1 he is automatically approved. How can I force someone to join the waiting room?
Moreover is there any way to make sure that a participant can never become host?
I am currently using a free account to test some features.
@tab.lambros
Thanks for using the Zoom developer forum!
There is 1 possible way that you can do this. But it may work different for different devices. Can you tell me which device you are using, and the version please?
@PantherDeveloper
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
November 25, 2020, 9:01pm
3
I dont understand your question. Iâm building a web application which will be used both by desktop and mobile devices.
tommy
(Tommy Gaessler)
November 30, 2020, 8:56pm
4
Hey @tab.lambros ,
Can you please share the response body JSON after you called the Create Meeting API ? I am guessing your waiting room settings are being overridden by your account settings.
Thanks,
Tommy
@tommy Thanks for helping me with this question.
Gabe
@PantherDeveloper
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
December 1, 2020, 7:36am
6
Here it is. I removed host_id, email, and the urls. I assumed the same but waiting room is enabled in my security settings
array(19) {
[âuuidâ]=>
string(24) ââ
[âidâ]=>
int()
[âtopicâ]=>
string(12) âtest meetingâ
[âtypeâ]=>
int(2)
[âstatusâ]=>
string(7) âwaitingâ
[âstart_timeâ]=>
string(20) â2020-12-01T07:33:29Zâ
[âdurationâ]=>
int(30)
[âtimezoneâ]=>
string(13) âEurope/Athensâ
[âcreated_atâ]=>
string(20) â2020-12-01T07:33:29Zâ
[âpasswordâ]=>
string(4) âtestâ
[âh323_passwordâ]=>
string(6) ââ
[âpstn_passwordâ]=>
string(6) ââ
[âencrypted_passwordâ]=>
string(32) ââ
[âsettingsâ]=>
array(26) {
[âhost_videoâ]=>
bool(true)
[âparticipant_videoâ]=>
bool(true)
[âcn_meetingâ]=>
bool(false)
[âin_meetingâ]=>
bool(false)
[âjoin_before_hostâ]=>
bool(true)
[âmute_upon_entryâ]=>
bool(false)
[âwatermarkâ]=>
bool(false)
[âuse_pmiâ]=>
bool(false)
[âapproval_typeâ]=>
int(2)
[âaudioâ]=>
string(4) âvoipâ
[âauto_recordingâ]=>
string(4) ânoneâ
[âenforce_loginâ]=>
bool(false)
[âenforce_login_domainsâ]=>
string(0) ââ
[âalternative_hostsâ]=>
string(0) ââ
[âclose_registrationâ]=>
bool(false)
[âshow_share_buttonâ]=>
bool(true)
[âallow_multiple_devicesâ]=>
bool(true)
[âregistrants_confirmation_emailâ]=>
bool(true)
[âwaiting_roomâ]=>
bool(true)
[ârequest_permission_to_unmute_participantsâ]=>
bool(false)
[âcontact_nameâ]=>
string(35) âÎÎŹÎŒÏÏÎżÏ Î€Î±ÎŒÏÎżÏÏλοÏâ
[âcontact_emailâ]=>
string(21) âtab.lambros@gmail.com â
[âregistrants_email_notificationâ]=>
bool(true)
[âmeeting_authenticationâ]=>
bool(false)
[âencryption_typeâ]=>
string(19) âenhanced_encryptionâ
[âapproved_or_denied_countries_or_regionsâ]=>
array(1) {
[âenableâ]=>
bool(false)
}
}
[âcodeâ]=>
int(201)
}
tommy
(Tommy Gaessler)
December 2, 2020, 11:13pm
7
Hey @tab.lambros ,
Can you try setting the join_before_host
value to false? My thought is since you have join_before_host
set to true, the participants are able to skip the waiting room.
Can you also try upgrading to version 1.8.3?
Let me know if that sorts it out!
Thanks,
Tommy
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
December 3, 2020, 7:27am
8
Hey. I did what you suggested but nothing changed. I also noticed that joining as participant always fails with
axiosJsonpCallback1({âstatusâ:false,âerrorCodeâ:3000,âerrorMessageâ:âThe current sdk version doesnât support register meeting/webinar, please upgrade to the latest version.â})
Many people can join with a host signature ( no waiting room ) but none with a participant one.
I am getting a bit confused. âŠ
tommy
(Tommy Gaessler)
December 4, 2020, 8:47pm
9
Hey @tab.lambros ,
Gotcha, it sounds like you are using Meeting Registration, but Meeting Registration is not supported on the Web SDK yet. Only for webinars:
What is your use case here, or goal? I am happy to help you figure this out!
Thanks,
Tommy
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
December 4, 2020, 9:59pm
10
What I need is to have an ongoing meeting where participants will join the waiting room and the host will accept them one by one.
My join code is the following:
ZoomMtg.preLoadWasm();
ZoomMtg.prepareJssdk();
ZoomMtg.init({
leaveUrl: meetConfig.leaveUrl,
isSupportAV: true,
success: function() {
ZoomMtg.join({
signature: {$signature}
,
apiKey: meetConfig.apiKey,
meetingNumber: meetConfig.meetingNumber,
userName: meetConfig.userName,
passWord: meetConfig.passWord,
success: function(res) {
ZoomMtg.record({
record: true
});
ZoomMtg.showRecordFunction({
show: true
});
},
error: function (res) {
console.log(res);
},
})
},
error: function (res) {
console.log(res);
},
})
The signature is produced by the following method
function generateSignature ( $meeting_number, $role)
{
$time = time() * 1000 - 30000;//time in milliseconds (or close enough)
$data = base64_encode($this->apiKey . $meeting_number . $time . $role);
$hash = hash_hmac('sha256', $data, $this->apiSecret, true);
$_sig = $this->apiKey . "." . $meeting_number . "." . $time . "." . $role . "." . base64_encode($hash);
return rtrim(strtr(base64_encode($_sig), '+/', '-_'), '=');
}
join fails when passing role=0 to generateSignature()
tommy
(Tommy Gaessler)
December 7, 2020, 9:08pm
11
Hey @tab.lambros ,
In that case, you need to have the Waiting Room enabled for the meeting.
What error message do you get in the browser console? Can you share your Web SDK signature for a test meeting with the issue so I can help debug further?
Thanks,
Tommy
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
December 8, 2020, 7:20am
12
According to the create meeting response, waiting room is enabled for this meeting.
array(20) {
[âuuidâ]=>
string(24) ââ
[âidâ]=>
int(96286459112)
[âhost_idâ]=>
string(22) ââ
[âtopicâ]=>
string(12) âtest meetingâ
[âtypeâ]=>
int(2)
[âstatusâ]=>
string(7) âwaitingâ
[âstart_timeâ]=>
string(20) â2020-12-08T07:16:26Zâ
[âdurationâ]=>
int(30)
[âtimezoneâ]=>
string(13) âEurope/Athensâ
[âcreated_atâ]=>
string(20) â2020-12-08T07:16:26Zâ
[âpasswordâ]=>
string(4) âtestâ
[âh323_passwordâ]=>
string(6) ââ
[âpstn_passwordâ]=>
string(6) ââ
[âencrypted_passwordâ]=>
string(32) ââ
[âsettingsâ]=>
array(28) {
[âhost_videoâ]=>
bool(true)
[âparticipant_videoâ]=>
bool(true)
[âcn_meetingâ]=>
bool(false)
[âin_meetingâ]=>
bool(false)
[âjoin_before_hostâ]=>
bool(false)
[âmute_upon_entryâ]=>
bool(false)
[âwatermarkâ]=>
bool(false)
[âuse_pmiâ]=>
bool(false)
[âapproval_typeâ]=>
int(1)
[âaudioâ]=>
string(4) âbothâ
[âauto_recordingâ]=>
string(4) ânoneâ
[âenforce_loginâ]=>
bool(false)
[âenforce_login_domainsâ]=>
string(0) ââ
[âalternative_hostsâ]=>
string(0) ââ
[âclose_registrationâ]=>
bool(false)
[âshow_share_buttonâ]=>
bool(true)
[âallow_multiple_devicesâ]=>
bool(true)
[âregistrants_confirmation_emailâ]=>
bool(true)
[âwaiting_roomâ]=>
bool(true)
[ârequest_permission_to_unmute_participantsâ]=>
bool(false)
[âglobal_dial_in_countriesâ]=>
array(1) {
[0]=>
string(2) âUSâ
}
[âglobal_dial_in_numbersâ]=>
array(6) {
[0]=>
array(4) {
[âcountry_nameâ]=>
string(2) âUSâ
[ânumberâ]=>
string(13) â+1 6465588656â
[âtypeâ]=>
string(4) âtollâ
[âcountryâ]=>
string(2) âUSâ
}
[1]=>
array(4) {
[âcountry_nameâ]=>
string(2) âUSâ
[ânumberâ]=>
string(13) â+1 6699009128â
[âtypeâ]=>
string(4) âtollâ
[âcountryâ]=>
string(2) âUSâ
}
[2]=>
array(4) {
[âcountry_nameâ]=>
string(2) âUSâ
[ânumberâ]=>
string(13) â+1 2532158782â
[âtypeâ]=>
string(4) âtollâ
[âcountryâ]=>
string(2) âUSâ
}
[3]=>
array(4) {
[âcountry_nameâ]=>
string(2) âUSâ
[ânumberâ]=>
string(13) â+1 3017158592â
[âtypeâ]=>
string(4) âtollâ
[âcountryâ]=>
string(2) âUSâ
}
[4]=>
array(4) {
[âcountry_nameâ]=>
string(2) âUSâ
[ânumberâ]=>
string(13) â+1 3126266799â
[âtypeâ]=>
string(4) âtollâ
[âcountryâ]=>
string(2) âUSâ
}
[5]=>
array(4) {
[âcountry_nameâ]=>
string(2) âUSâ
[ânumberâ]=>
string(13) â+1 3462487799â
[âtypeâ]=>
string(4) âtollâ
[âcountryâ]=>
string(2) âUSâ
}
}
[âregistrants_email_notificationâ]=>
bool(true)
[âmeeting_authenticationâ]=>
bool(false)
[âencryption_typeâ]=>
string(19) âenhanced_encryptionâ
[âapproved_or_denied_countries_or_regionsâ]=>
array(1) {
[âenableâ]=>
bool(false)
}
}
[âcodeâ]=>
int(201)
}
Trying to join with signature
using the code I posted earlier I get
errorCode: 1
errorMessage: âFail to join the meeting.â
method: âjoinâ
result: âThe current sdk version doesnât support register meeting/webinar, please upgrade to the latest version.â
status: false
tommy
(Tommy Gaessler)
December 10, 2020, 1:52am
13
Hey @tab.lambros ,
approval_type
needs to be set to 2
. Try that and it should work!
Thanks,
Tommy
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
December 10, 2020, 10:53am
14
tab.lambros:
approval_type
It worked! than you so much for your help!
1 Like
tommy
(Tommy Gaessler)
December 10, 2020, 4:42pm
15
Hey @tab.lambros ,
You are welcome!
Let us know if we can help with anything else!
-Tommy
tab.lambros
(ÎÎŹÎŒÏÏÎżÏ)
December 15, 2020, 10:55am
16
Hello again guys
I was hoping you could help me with another issues. If the host accidentally closes the window or clicks leave meeting by accident, is there any way he can join again and become host?
MaxM
(Max M.)
December 16, 2020, 11:22pm
17
Hey @tab.lambros ,
Thank you for reaching out to the Zoom Developer Forum. With version 1.8.1 and later, if the host gets disconnected, you can use the same host signature and pass role 1 in order to rejoin the meeting as the Co-Host. If you pass role 0, you will rejoin as a participant.
That being said, the current functionality if the host gets disconnected, one of the participants will be assigned the Host. Once the original Host rejoins, they will be the Co-Host.
I hope that helps! Let me know if you have any questions.
Thanks,
Max
system
(system)
Closed
January 16, 2021, 9:22am
18
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.