I see the following error when connecting the Jibri to a JWT-enabled Jitsi. The call page fails to load and get timed out. However on checking chromedriver.log I see the following error:
"Cannot read property 'isJoined' of undefined"
What could be the reason for this error? Where can I find the definition of the isJoined function? I see isJoined of “undefined”, so may be APP is not loading? Where can I find the necessary source for the same and debug it?
The Jibri source: return APP.conference._room.isJoined();
is undefined. It means it fails to join the muc, as _room is the muc representation coming from lib-jitsi-meet. You either need more information before this error (not user there is more in the log file before you see this). I purposed to you a way to debug it from the browser on your PC. [SOLVED] Jibri with JWT token enabled Jitsi - #23 by damencho
I noticed that APP.conference._room object is absent as you can see in the picture. How should I debug the problem? Can it be related getUserMedia problem? I saw same logs in the headless chrome driver and browser logs. No JWT token - just internal plain btw.
Yes, you are right. Looks it’s due to getUserMedia and etc. as far as I understand. However, when I try to do it via https, I encounter another legent problem. Local storage.
[1593717696.427][INFO]: [b03009a6ed89fd87055f0d997f2adb0b] RESPONSE ExecuteScript ERROR : Failed to read the ‘localStorage’ property from ‘Window’: Access is denied for this document.
I put the three logs here, if you have time. Pls, ignore BVB keywords in jibri log, I put them to debug.
The jibri node and prosody-nginx-jicofo node are different servers. And -frankly speaking- the company regulations don’t let us use open internet access server for the jibri. So we have to connect the jibri node and the other node via our LAN somehow. I mean local IP 172.21.193.95 and port 8000.
Is there any security mechanism for the system apart from the usual TLS? Where are we stuck? Should we take a look at prosody logs? Because I observed some prosody logs about the certification. However, I don’t think they are the root cause of the problem.
Jul 02 01:35:13 certmanager debug No certificate/key found for ***
I cannot succeded with the information here people provided. Finally I succeded with the new jibri.conf file configuration which set the google chrome flags. Here is my succesfull config file. I wish you can use it;
This jibri.conf file is placed in /etc/jitsi/jibri/jibri.conf
If you use this file you won’t need config.json (/etc/jitsi/jibri/config.json) file anymore. This is the new type.
jibri {
chrome {
// The flags which will be passed to chromium when launching
flags = [
"--use-fake-ui-for-media-stream", # actual option, necessary to fix "Cannot read property 'isJoined' of undefined -> this is a selenium error :(
"--start-maximized",
"--kiosk",
"--enabled",
"--disable-infobars",
"--autoplay-policy=no-user-gesture-required",
"--disable-setuid-sandbox",
"--disable-web-security",
"--disable-dev-shm-usage", # if /dev/shm partition is not enough space you may get no media session error. if you set as this google chrome use /tmp rather than /dev/shm partiton
"--ignore-certificate-errors", # if you get some certificate error (if you use jitsi server's internal IP rather than public ip), you can set this flag.
"--no-sandbox"
]
}
recording {
recordings-directory = "/tmp/recording"
# TODO: make this an optional param and remove the default
finalize-script = "/finalize_recording.sh"
}
api {
xmpp {
environments = [
{
name = "New Jibri"
xmpp-server-hosts = ["IP address of your jitsi server or domain name"]
xmpp-domain = "example.com"
control-muc {
domain = "internal.auth.example.com"
room-name = "JibriBrewery"
nickname = "new-jibri-instance-1"
}
control-login {
domain = "auth.example.com"
username = "jibri"
password = password which is defined in prosody
}
// if you use video gateway you can input the details. it is not easy
//sip-control-muc {
// domain = ""
// room-name = ""
// nickname = ""
//}
call-login {
domain = "recorder.example.com"
username = "recorder"
password = "password which is defined in prosody"
}
strip-from-room-domain = "conference."
usage-timeout = 0
// this is optional
trust-all-xmpp-certs = true
}
]
}
}
}