Is there a documentation for the lobby feature just arrived

Thanks for adding lobby feature.
Is there a documentation which describe on configuring and using it?

Or anyone has the steps to use it?

Actually there is no docs we need to add some. Clean install should be coming with it preconfigured, I need to test it.
Here is how to modify existing prosody config to enable it https://github.com/jitsi/jitsi-meet/commit/273f357131fa629bb11e9b2e429fb118ae9f3af2, this is all you need.

3 Likes

Can the lobby/waiting room be enabled globally or is it only enabled per room?

Thanks for the snippet, I have configured this already but I don’t see any hint of lobby feature on UI level. Is there any configuration required on UI?

while I can’t provide you with a step-by-step procedure, I can say that you will never succeed with a setup having prosody 0.10, that is, an unmodified Ubuntu 18.04 LTS for example. You need prosody 0.11 for the Prosody module to load.

After trying it a bit, I’m afraid that this has not been tested at all with secure domain.
I have added to anonymous domain the same instructions:

   modules_enabled = {
      "muc_lobby_rooms";
   }
   lobby_muc = "lobby.myurl.mytld"
   main_muc = "conference.myurl.mytld"

after this, the lobby enabling menu appears in the security options.
When a guest tries to enter the meeting, the browser crashes because of an undefined function.
It seems that at the moment the web part is not complete, a form called ‘_renderParticipantForm’ is missing in react/features/lobby/components/web/LobbyScreen.js (it’s in the native version).

I have tried to add it and recompile app.bundle, it goes so far as ‘asking to join meeting’ for the guest and it seems to enter the lobby from what I see in the browser console, but the moderator does not seem to be able to get in the lobby so I’m stuck at that for the moment.
Needs a bit of baking I guess.

There is also another issue reported about conference duration missing with lobby I will be looking at those these days, and as always any help and report is welcome.
Thanks for the report @gpatel-fr

As a hint, please take a look the “additional information” in issue https://github.com/jitsi/jitsi-meet/issues/7006 for config example.
I’ve managed to use lobby with secure domain when I’ve configured it in anonymous domain, and have no added in auth domain.

1 Like

where can I find the details about lobby feature? and how to implement it through lib-jitsi meet api?
like to join in jitsi server with secured domain we use

for moderator :
JItsiConnection.connect({“id”:“moderator_name”,“password”:“server_password”})
JItsiConference.lock(roomPassword)

for participants:
JItsiConference.join(roomPassword)

then where will be the change or how will moderator be notified that someone is trying to join and accept or reject it? if moderator have not locked the room then the later participants won’t just enter the room like previous? they have to be accepted by moderator? what if moderator already have set up a password and then what? what should I do to implement in api level? is this already in docker or when can we expect?
Thanx in advance :heart: @damencho @saghul

Thanks, that’s it. It’s a bit counter-intuitive because for time counter that’s not the case, adding these in both auth and guest does not do any harm.

So to summarize it for secure domain I had to;

  1. use unstable
  2. use Ubuntu 20.04 or anything involving Prosody 0.11.4 (probably) and most assuredly NOT Prosody 0.10
  3. add the prescribed options to guest domain:
 modules_enabled = {
      "muc_lobby_rooms";
   }
   lobby_muc = "lobby.myurl.mytld"
   main_muc = "conference.myurl.mytld"
  1. do NOT add them to main domain - if it’s done the guest can send the request to join but the moderator does not see the question
  2. add the prescribed instructions for the lobby component
Component "lobby.meeting.myurl.mytld" "muc"
    storage = "memory"
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true
  1. it’s not necessary in this case to edit the web/LobbyScreen.js file; although it’s a bit fishy anyway, because in the case switch in the AbstractLobbyScreen.js there are 2 cases, one for SCREEN_STATES.VIEW and SCREEN_STATES.EDIT, and the SCREEN_STATES.VIEW is picked in this configuration (and obviously it works since the info screen is picked), but it does not feel logical since it’s clearly an edit screen (it can be used to enter information). Oh well, 1 bug + 1 config error is all that it takes to produce a working software when they are cancelling each other I say.

Anyway, when all this is done, here is how it goes:

lobby1

on the guest screen:

lobby2

query on the moderator’s screen:

lobby3

I’ll let all the smarter people out there remarking how they would have done the UI better.
In the remote possibility of this feature’s author reading this, I’ll say that inserting a complex feature in such a software and getting it right is amazing work indeed.

3 Likes

it is enabled by the moderator in the security options for the room.

Hi…

I did the following

  1. Installed Jitsi Meet
  2. Then followed this process to update to the latest unstable version here
  3. Followed the process for Secure domain.
  4. Following the process of enabling lobby/waiting here

After the unstable version is added, It restarts every 15-20 seconds.

Here is the error in the Prosody Log. I dont even need to get into a conference with multiple people. I just need open a conference and within 15-20 seconds I get this error.

Any clue what this talks about. Have not really got anything related to decode or formdecode.

Jul 01 17:01:36 http.server     error   Traceback[httpserver]: ...share/jitsi-meet/prosody-plugins/mod_muc_lobby_rooms.lua:301: attempt to call global 'formdecode' (a nil value)
stack traceback:
        [C]: in function 'parse'
        /usr/lib/prosody/util/xmppstream.lua:282: in function 'feed'
        /usr/lib/prosody/modules/mod_bosh.lua:133: in function '?'
        /usr/lib/prosody/util/events.lua:79: in function </usr/lib/prosody/util/events.lua:75>
        (...tail calls...)
        /usr/lib/prosody/net/http/server.lua:228: in function </usr/lib/prosody/net/http/server.lua:176>
        [C]: in function 'xpcall'
        /usr/lib/prosody/net/http/server.lua:108: in function 'process_next'
        /usr/lib/prosody/net/http/server.lua:124: in function 'success_cb'
        /usr/lib/prosody/net/http/parser.lua:177: in function 'feed'
        /usr/lib/prosody/net/http/server.lua:155: in function </usr/lib/prosody/net/http/server.lua:154>
        (...tail calls...)
        /usr/lib/prosody/net/server_select.lua:915: in function </usr/lib/prosody/net/server_select.lua:899>
        [C]: in function 'xpcall'
        /usr/bin/prosody:80: in function 'loop'
        /usr/bin/prosody:90: in main chunk
        [C]: in ?
Jul 01 17:02:03 http.server     error   Traceback[httpserver]: ...share/jitsi-meet/prosody-plugins/mod_muc_lobby_rooms.lua:301: attempt to call global 'formdecode' (a nil value)
stack traceback:
        [C]: in function 'parse'
        /usr/lib/prosody/util/xmppstream.lua:282: in function 'feed'
        /usr/lib/prosody/modules/mod_bosh.lua:133: in function '?'
        /usr/lib/prosody/util/events.lua:79: in function </usr/lib/prosody/util/events.lua:75>
        (...tail calls...)
        /usr/lib/prosody/net/http/server.lua:228: in function </usr/lib/prosody/net/http/server.lua:176>
        [C]: in function 'xpcall'
        /usr/lib/prosody/net/http/server.lua:108: in function 'process_next'
        /usr/lib/prosody/net/http/server.lua:124: in function 'success_cb'
        /usr/lib/prosody/net/http/parser.lua:177: in function 'feed'
        /usr/lib/prosody/net/http/server.lua:155: in function </usr/lib/prosody/net/http/server.lua:154>
        (...tail calls...)
        /usr/lib/prosody/net/server_select.lua:915: in function </usr/lib/prosody/net/server_select.lua:899>
        [C]: in function 'xpcall'
        /usr/bin/prosody:80: in function 'loop'
        /usr/bin/prosody:90: in main chunk
        [C]: in ?

Jicofo and JVB don’t show an error.

What is the prosody version you use. The formdecode thingy is something we recently added, like yesterday …

Ooo I see the error :frowning: that is my mistake and was not fully tested. Fixing it now in my pending lobby PR.

Quick workaround is to add local formdecode = require "util.http".formdecode; on the top of the lobby lua module.
Sorry about that and thanks for the report.

1 Like

Yes. that solved the issue.

But I dont see the lobby screen as mentioned by @gpatel-fr

Anything wrong that I am doing.

This is what I have in the domain.cfg.lua.

 authentication = "internal_hashed"
   
 VirtualHost "guest.mydomain"
        authentication = "anonymous"
        c2s_require_encryption = false
            modules_enabled = {
                    "muc_lobby_rooms";
                     }
            lobby_muc = "lobby.mydomain"
            main_muc = "conference.mydomain"


    Component "lobby.meeting.mydomain" "muc"
        storage = "memory"
        restrict_room_creation = true
        muc_room_locking = false
        muc_room_default_public_jids = true

I don’t know if you imply ‘…relevant to lobby fonctionality’ or it is really all that you have in this file. If it’s the former it seems correct to me. I just tested the current unstable

 dpkg -l | grep jitsi
ii  jitsi-meet                     2.0.4795-1                        all          WebRTC JavaScript video conferences
ii  jitsi-meet-prosody             1.0.4240-1                        all          Prosody configuration for Jitsi Meet
ii  jitsi-meet-turnserver          1.0.4240-1                        all          Configures coturn to be used with Jitsi Meet
ii  jitsi-meet-web                 1.0.4240-1                        all          WebRTC JavaScript video conferences
ii  jitsi-meet-web-config          1.0.4240-1                        all          Configuration for web serving of Jitsi Meet
ii  jitsi-videobridge2             2.1-259-g406d6cfd-1               all          WebRTC compatible Selective Forwarding Unit (SFU)

with @damencho’s fix and lobby works.

I have all… and I pasted relevant to Lobby functionality. But I dont see the screen where you can enable the Lobby functionality.

Do I need to add any js files?

This is the screen I see after I enter the password.

As per @gpatel-fr I should also see a “Enable Lobby” option. What am I missing in my setup that I dont see it.