Hidden / Invisible participant


Would it be possible to allow a user enter the conference completely hidden so he is not visible to anyone in the room?

Something that Jibri does internally, but to be able to do it externally.

I have tried adding a VirtualHost to prosody & user with prosodyctl, also using a hiddendomain settings, but i was unsuccessful.

Hi, I am looking for similar functionality. Were you able to resolve it?

Thank you.

Not really as i wanted to, but i found a way around.

In css.all i hid the “Live” streaming icon.
Replace the text string Live streaming.
.mp3 gets removed from app.bundle.min.js

Basically, person starts to stream & then invisible participant looks at the conference through private YouTube channel.

Yes, you only need to pass XMPP_USER_OVERRIDE and XMPP_PASSWORD_OVERRIDE with username credentials belonging to a user in the “hiddenDomain” setting.

You can check the hiddenDomain in your config.js , and these variables might be added on your browser, as they are “local Storage” values.

Works like a charm, but once you enter the room, no matter if you have microphone open or not, nobody will hear you.

1 Like

kpeiruza, can you help me providing a step by step? I dont know where to put XMPP_USER_OVERRIDE and XMPP_PASSWORD_OVERRIDE.

Thanks in advance.

You need to enter those values in your browser’s local storage.

In Chrome/Firefox, Press F12, go to Application -> Local Storage.

There you will see several Jitsi variables stored in your Browser. Just add these two variables with the same account your Jibri is using.

Check it, it doesn’t require anything else to work. Then, create specific users in prosody in the same domain you already have configured as “hiddenDomain” in your config.js, that’s all :slight_smile:

I hope you Enjoy it! Feel free to pay me a beer if you ever come around Barcelona hahahaha

1 Like

Thanks for the reply. I’m still not being able to join as a hidden user. When I set xmpp_username_override and xmpp_password_override I’m not allowed to enter the room anymore:

(above is something like “you have been disconnected”)

  1. In config.js my domain ti-pc3.cmm.local is there: hiddenDomain: ‘ti-pc3.cmm.local’,
  2. In .lua file, virtualhost created:
VirtualHost "ti-pc3.cmm.local"
    modules_enabled = {
    authentication = "internal_plain"
  1. User was previously registered: prosodyctl register ti-pc3 ti-pc3.cmm.local XXXXXX
  2. In my browser (firefox):

What I’m doing wrong? :thinking:

ps: beers on me if I ever go to Barcelona :grin:
ps2: screenshot shows xmpp_user_override but I’m using the correct value xmpp_username_override (I assume you did a typo up there)

Hi @intellq

If you’re using XMPP_USER_OVERRIDE, Jitsi will not ask you for a login/password to create a conference, it will not work if you need so.

However, your “reloading” error seems something different. Your “regular” domain shouldn’t be the same as your hiddenDomain.

domain: jitsi.example.com,
guestDomain: guest.jitsi.example.com,
hiddenDomain: recorder.jitsi.example.com

Was your setup working before this trial? if so, are your 2-3 domains (guest is optional) configured as different names?



1 Like

Figured out about the error. I was trying to add another domain besides my “recorder” virtualhost, in order to use it to login.

Using my recorder credentials instead of the second domain credentials worked as intended. Dont know exactly why, because all steps I did to create the recorder virtualhost I also did to this new domain. But I cant login using its credentials. Sigh.

Thanks for the help :slightly_smiling_face:

Thanks for the update. I guess if there is really no other way, I will look into your method.

i am using recorder domain credential but it not working, its showing all the user.