New prosody module to automatically start lobby and to bypass lobby with JWT

Lobby Autostart

This plugin automatically enables the lobby for all rooms.

To use this, you need to have the Lobby feature already configured and working.

:warning: Do not use this plugin unless you have enabled some mechanism for moderators to bypass the lobby. Otherwise, all your users will be stuck in the lobby with nobody to admit them.

Token Lobby Bypass

This plugin allows you to let some users bypass the lobby by setting a flag in their token. This applies to lobbies enabled manually in the UI or automatically with Lobby Autostart.

To use this, you need to have JWT auth already configured and working.

3 Likes

This is awesome! I just realized we don’t have these cool plugins listed in the handbook here: Third-Party Software | Jitsi Meet – Any chance you could make a PR and link to the repo, and maybe provide a list with a sentence or so about each?

Awesome! Thank you @shawn

I added “lobby_bypass” to jitok

1 Like

Will do :slight_smile:

Excellent work, @shawn. Thanks for sharing!

1 Like

I should point out that I would not have managed that without ample help from @damencho :bowing_man:. All credit goes to him really.

4 Likes

Now that this PR has been merged (available from version 7849, so not yet in stable), there are now several new ways to automatically start the lobby.

Token Lobby On-Demand

This plugin automatically enables the lobby after any user joins with a JWT token that contains "context.user.lobby": true. Users that are already the the room when the lobby is started is not affect.

Once lobby is started, users that are JWT authenticated and does not have "context.user.lobby": true will be excluded from lobby.

This is different from lobby_autostart in that there is no overhead of starting lobby for every room if you only need it for some rooms. The downside being that it is only really practical if all your users are JWT authenticated.

N.B. This can only be used with Jitsi version >=7849 unless you manually apply the PR mentioned above.

Lobby and password support in reservation module

If reservations_enable_lobby_support is enabled in prosody config, lobby will be automatically enabled if the reservation endpoint includes "lobby": true in the success payload.

If reservations_enable_password_support is enabled in prosody config, the plugin will automatically set the room password if the reservation endpoint includes "password": "THE_PASSWORD" in the success payload. Users will then be required to know that password to be able to join the room, or in the case where lobby is enabled, can use the password to bypass the lobby.

N.B. This can only be used with Jitsi version >=7849 unless you manually apply the PR mentioned above.

By triggering “create-persistent-lobby-room” global event from your plugin

The lobby_autostart module has also been significantly simplified as the bulk of the logic has been ported to mod_persistent_lobby.lua.

mod_persistent_lobby makes it easier for other plugins to start lobby rooms that can survive the main room being empty (a “standard” lobby would get terminated when the empty main room gets automatically deleted by prosody).

See the code for any of the plugins above for examples of how to do this.

2 Likes

Thanks for all your work on this @shawn !

It was my pleasure. It’s the least I can do to repay all the great work the Jitsi team and the community is doing. :bowing_man:

1 Like