When recording, jibri is joining as an user


I have setup jitsi-docker and things seem to work fine including recording and streaming.

But I have been facing this weird issue with jibri.
So, I know that inside jibri, it spawns a selenium chrome instance and record the meeting.

But in my case, what’s happening is that when it starts recording, jibri is joining as a normal user and I can see that on screen:

Now this is really weird because it’s not supposed to work this way. Right?

and now, due to this, when I accidentally disconnect from the meeting e.g. internet down or close the window, the meeting is still being recorded.

How can I fix this issue?

I’d really appreciate your help.


Jibri needs to authenticate with user and pass and the domain is added as hiddenDomain in config.js.

1 Like


I have few follow up questions.

  1. How do I know that jibri is using username and pass to authenticate?
    I’m using the default docker setup, settings and internal domains (meet.jitsi)

  2. I checked the config.js in host web folder and saw the hiddenDomain property which was commented out.
    So, which value shall I put in there? Is it the internal auth domain which is by default auth.meet.jitsi or do I need to put the domain name where it’s all hosted?

Thanks again.

Okay, so I have found the solution and it’s recorder.meet.jitsi.
and things are working now.

Thank you so much.

There should be separate domain with enabled authenticaiton and jibri user should be created there. Not sure about docker though, I’m not so familiar with it.

This is the jibri config for call login:


Woah, thank you so much. That is really helpful.
This is really gonna help me to tweak things out. :slight_smile:

What happens if i have my xmpp domain authenticated with ldap2 mod on prosody, and recorder with internal_plain on prosody?

Im having @techayush same issue, my recorder is joining as a guest. The record is “fine” but in the video there is a popup to fill “your name” as a guest

My config.json is already set with hiddenDomain for my recorder.xmpp…

Im lost in here

I was using the requirement for displayname. After i removed the video doesnt have the pop up anymore, but the recorder still enters the room.

If someone has an idea please share it here :smiley:

That should be fine.

My jitsi users are authenticated using ldap and jibri using this conf. It works! Its very good.

However the “recorder” user is joining the conference room, im still looking for a solution to hide it. If you know how to solve this, Please share your expertise here =D

you need to add its domain to the hiddenDomain setting in your config.js

Took a while untill i figure out what was happening. I have add this line inside host section,

hosts: {
// XMPP domain.
hiddenDomain: ‘recorder.meet.mydomain.com’,

I just cut and paste after " liveStreamingEnabled: false," and it works now.

Hello. I have same problem. When I start translation jibri connected as guest user.
I add hiddeDomain in config.js:
`var config = {
hosts: {
domain: ‘jitsi-dev.example.com’,
authdomain: ‘jitsi-dev.example.com’,
muc: ‘muc.meet.jitsi-dev.example.com
bosh: ‘/http-bind’,
clientNode: ‘https://zadarma.com/’,
focusUserJid: ‘focus@auth.jitsi-dev.example.com’,

testing: {
    enableFirefoxSimulcast: false,
    p2pTestMode: false
disableSuspendVideo: true,
startVideoMuted: 5,
desktopSharingChromeExtId: null,
desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],

desktopSharingChromeMinExtVersion: '0.1',
enableWelcomePage: false,
enableClosePage: true,
enableUserRolesBasedOnToken: false,
p2p: {
    enabled: true,
    stunServers: [
        { urls: 'stun:stun.l.google.com:19302' },
        { urls: 'stun:stun1.l.google.com:19302' },
        { urls: 'stun:stun2.l.google.com:19302' }
    preferH264: true
useStunTurn: true,
analytics: {
deploymentInfo: {
hiddenDomain: 'recorder.jitsi-dev.example.com',
fileRecordingsEnabled: true,
liveStreamingEnabled: true,
channelLastN: -1,

I check jibri config: /etc/jitsi/jibri/config.json

"finalize_recording_script_path": "/config/finalize.sh",
"xmpp_environments": [
        "name": "prod environment",
        "xmpp_server_hosts": [
        "xmpp_domain": "jitsi-dev.example.com",
        "control_login": {
            "domain": "auth.jitsi-dev.example.com",
            "username": "jibri",
            "password": "****"
        "control_muc": {
            "domain": "internal-muc.jitsi-dev.example.com",
            "room_name": "jibribrewery",
            "nickname": "jibri-instanse-611573722"
        "call_login": {
            "domain": "recorder.jitsi-dev.example.com",
            "username": "recorder",
            "password": "****"
        "room_jid_domain_string_to_strip_from_start": "muc.",
        "usage_timeout": "0"


How I can debug this problem ?

@Evg I would verify if you have properly configured jitsi env variables.
I suppose you are running it in docker, so i would check if ENABLE_RECORDING is set to true and that XMPP_RECORDER_DOMAIN is set. Basically, if ENABLE_RECORDING is set, then jitsi is made to autoconfigure itself on start, so you don’t have to configure it too much. If you haven’t seen hiddenDomain in config.js, than you haven’t properly configured your environment, my guess.

I dont see hiddeDomain in your config file
add the next line after livreStreamingEnabled:true,

hiddenDomain: recorder.jitsi-dec.example.com,

1 Like

hiddenDomain in exist in my config:

hiddenDomain: ‘recorder.jitsi-dev.example.com’,
fileRecordingsEnabled: true,
liveStreamingEnabled: true,

I found solution. I use old version of web-interface, when I update web container, all works.

Hi @damencho,
How can i distinguish between other user and jibri in
“module:hook_global(“bosh-session”, init_session);”
Can you help regarding this issue.


You can do that based on the jid if jibri is authenticating using the call-login setting.

Thanks you so much @damencho. :heart_eyes: