Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recording fails #240

Closed
sualko opened this issue Mar 20, 2020 · 144 comments
Closed

Recording fails #240

sualko opened this issue Mar 20, 2020 · 144 comments

Comments

@sualko
Copy link

sualko commented Mar 20, 2020

Hi everyone,
I tried to enable jibri and encountered some problems. First I got the following error message:

org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/config/finalize.sh": error=2, No such file or directory

But this was easy to fix. I just created a file in my config folder, but now I get the following:

org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: <unknown>: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.

I think the problem is that Window is different from window, but I don't know where to find the code. Can you help me?

Complete log ``` 2020-03-20 09:15:16.071 FINE: [35] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [[email protected]/edAXYQ94,[email protected]/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL2VkQVhZUTk0ADBCVGx1LTI1NABVsWt3X1n/o6vD6m2Rlbe7,type=set,] 2020-03-20 09:15:16.073 INFO: [35] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi] 2020-03-20 09:15:16.075 INFO: [35] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request 2020-03-20 09:15:16.078 INFO: [35] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ 2020-03-20 09:15:16.078 INFO: [38] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service 2020-03-20 09:15:16.107 INFO: [38] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=asdfxxssexfadsf, urlParams=[]) 2020-03-20 09:15:16.108 INFO: [38] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=asdfxxssexfadsf, urlParams=[])), sessionId=fbzkuvzxovfdfkxh, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, username=recorder, password=passw0rd)) finalize script path: /config/finalize.sh and recordings directory: /config/recordings 2020-03-20 09:15:16.764 INFO: [38] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS 2020-03-20 09:15:16.779 INFO: [38] org.jitsi.jibri.selenium.JibriSelenium.() Starting empty call check with a timeout of PT30S 2020-03-20 09:15:16.790 FINE: [38] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.() Detected os as OS: LINUX 2020-03-20 09:15:16.794 INFO: [38] org.jitsi.jibri.service.impl.FileRecordingJibriService.() Writing recording to /config/recordings/fbzkuvzxovfdfkxh 2020-03-20 09:15:16.796 FINE: [38] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording 2020-03-20 09:15:16.797 INFO: [38] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY 2020-03-20 09:15:16.797 INFO: [38] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections 2020-03-20 09:15:16.798 INFO: [38] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@504ca55b 2020-03-20 09:15:16.798 FINE: [38] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@5aa6202e 2020-03-20 09:15:16.800 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri 2020-03-20 09:15:16.801 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health 2020-03-20 09:15:16.928 SEVERE: [48] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: : Failed to read the 'localStorage' property from 'Window': Access is denied for this document. (Session info: chrome=78.0.3904.108) (Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Linux 4.15.0-91-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: '6648c4582aae', ip: '172.18.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-91-generic', java.version: '1.8.0_222' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 78.0.3904.105 (60e2d8774a81..., userDataDir: /tmp/.com.google.Chrome.cJTEvn}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:41075}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 78.0.3904.108, webStorageEnabled: true} Session ID: c7d783873cf12c9cf21c44af1ca43a71 with stack: sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40) org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80) org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44) org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543) org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:480) org.jitsi.jibri.selenium.JibriSelenium.setLocalStorageValues(JibriSelenium.kt:175) org.jitsi.jibri.selenium.JibriSelenium.access$setLocalStorageValues(JibriSelenium.kt:112) org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:255) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:748)

2020-03-20 09:15:16.931 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-03-20 09:15:16.931 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-03-20 09:15:16.932 INFO: [48] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq
2020-03-20 09:15:16.932 FINE: [48] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-03-20 09:15:16.933 INFO: [48] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-03-20 09:15:16.933 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-03-20 09:15:16.934 INFO: [48] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-03-20 09:15:16.934 INFO: [48] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-03-20 09:15:16.934 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-03-20 09:15:16.943 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-03-20 09:15:16.987 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type browser
2020-03-20 09:15:17.001 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 110 log entries for type driver
2020-03-20 09:15:17.026 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-03-20 09:15:17.027 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-03-20 09:15:17.045 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-03-20 09:15:17.116 INFO: [48] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-03-20 09:15:17.116 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-03-20 09:15:27.125 SEVERE: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Timed out waiting for process logger task to complete
2020-03-20 09:15:27.126 INFO: [48] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Recording finalize script finished with exit value 0
2020-03-20 09:15:27.127 INFO: [48] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-03-20 09:15:27.128 INFO: [48] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-03-20 09:15:27.128 INFO: [48] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@754e0f5b
2020-03-20 09:15:27.129 FINE: [48] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@504ca55b
2020-03-20 09:15:27.132 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-03-20 09:15:27.132 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health

</details>
@saghul
Copy link
Member

saghul commented Mar 20, 2020

@bbaldino any idea why the launched Chrome wouldn't have localStorage available?

@sualko
Copy link
Author

sualko commented Mar 20, 2020

I think there is the localStorage available, but it's probably a typo. Window (first uppercase letter), at least in my normal chrome installation, is different from the usual window. It could also be the case that the context is just wrong.

@bbaldino
Copy link
Member

Some other people have reported this, but I don't think it's something we've run into, so I don't think it's a fundamental Jibri issue, but something with the deployment? I don't know more than just googling for the chrome error.

@sualko
Copy link
Author

sualko commented Mar 20, 2020

The chromium project reports that this is a security warning, if third-party cookies and site data is blocked.

On the jitsi forum there is also a report about the same error and the author suggests the following solution:

I found out that I forgot to add the name of Jitsi server (video.*) to the hosts file.

Does this help you?

@CStransky
Copy link

According to the logs in the docker image, it seems the default jibri image attempts to join https://meet.jitsi/<channel_name> instead of https://meet.<our_domain>/<channel_name> which results in a certificate validation error. I guess it takes the value for the domain from the xmpp settings? The error message is a little misleading.

@sualko
Copy link
Author

sualko commented Mar 25, 2020

meet.jitsi is the default domain for the docker images, see https://github.com/jitsi/docker-jitsi-meet/blob/master/env.example

@CStransky
Copy link

Yes @sualko, however, it's under the section:

Advanced configuration options (you generally don't need to change these)

So, i think either the documentation should be changed to reflect that changing the PUBLIC_URL is not sufficient, since jibri will use the XMPP_DOMAIN url or the jibri image should use PUBLIC_URL to connect to the room.

@saghul
Copy link
Member

saghul commented Mar 25, 2020

That traffic happens over the Docker internal network so I'm not sure why it's failing :-/

@sualko
Copy link
Author

sualko commented Mar 25, 2020

Btw can someone reproduce this?

@CStransky
Copy link

CStransky commented Mar 25, 2020

@saghul The connection itself is not failing, it can reach the server at meet.jitsi, but selenium gets presented the wrong certificate (in our case meet.ourdomain.de instead of meet.jitsi) and as a result correctly refuses to connect since the hostname doesn't match. As a result no window.localStorage is available. The solution would be to use the PUBLIC_URL to connect to the server. (Or disable certificate checking in selenium, which shouldn't be considered in the first place.)

@sualko
Copy link
Author

sualko commented Mar 25, 2020

Can selenium not just use an unencrypted connection, because in my case an apache is handling tls and therefore I disabled tls.

@fako1024
Copy link

@sualko I am seeing the same behaviour, having deployed a more or less vanilla setup via docker-compose from master branch a few days ago, first without the Jibri component, everything works like a charm. Then, after adding Jibri I am seeing the same error as described above. Just to be sure, I also wiped the whole generated config for all components and started fresh, but same result.

@saghul
Copy link
Member

saghul commented Mar 25, 2020

Or disable certificate checking in selenium, which shouldn't be considered in the first place.

Arguably that is not a bad idea in this case. All the traffic goes over the user defined network in Docker, not the public internet.

Now, I agree this is bad, but alas it's not a config issue, we need to modify Jibri to fix this.

@aaronkvanmeerten
Copy link
Member

As far as I understand it, it is not selenium that's the issue but rather Chrome itself. Chrome won't activate WebRTC connections with https:// and so a valid certificate is required for that reason.

@saghul
Copy link
Member

saghul commented Mar 25, 2020

It will, if we namage to accept a self-signed cert for example. We could have an nginx entry for meet.jitsi, with a self-signed cert.

@saghul
Copy link
Member

saghul commented Mar 25, 2020

Actually, I think a self-signed already works, that's how I tested it. I'll try to fix this tomorrow by having a self-signed cert for meet.jitsi

@peterauyeung
Copy link

I pull the image which updated 14hrs ago but still having the same recording issue

@please-wait
Copy link

Interestingly, we were actually successfully recoding up until today. Then it just stopped working on that machine (after a reboot). Also not working on a new vanilla installation I tried on a new machine.

@bbaldino
Copy link
Member

What version is this (that you pulled and started failing)?

@peterauyeung
Copy link

Latest

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jitsi/jibri latest 770b397dc6d5 20 hours ago 745MB
jitsi/etherpad latest 79b9096be9bd 21 hours ago 1.01GB
jitsi/jvb latest fd8201652975 21 hours ago 276MB
jitsi/jicofo latest 773ffe263260 21 hours ago 277MB
jitsi/prosody latest 5734ef478ff3 21 hours ago 256MB
jitsi/web latest 7afd18fc710a 21 hours ago 266MB

@please-wait
Copy link

Ok, here is what I've figured out: It has to do with the config file (.jitsi-meet-config) at least in my case. I recalled that I had renamed the config file after the reboot and had created an empty one (I guess just to do a clean start). That was when I faced the Jibri failure. Since I had the original one but renamed, I renamed it back in and now the recording works!

As for what is special in the config file, I have no idea unfortunately. I had gradually turned on authentication, HTTP redirect to HTTPS, recording, etc. I am thinking perhaps these have made something in the config file that a clean install with jibri right from the beginning is not making? sorry, it's all guesses.

@saghul
Copy link
Member

saghul commented Mar 27, 2020

It's not fixed in the latest images. It will only work if you are using a self-signed cert.

@saghul
Copy link
Member

saghul commented Mar 27, 2020

What version is this (that you pulled and started failing)?

@bbaldino It's not a Jibri issue (yet), it has do to with the Docker setup.

@JBleher
Copy link

JBleher commented Mar 27, 2020

Hey @saghui, I have the same problem. I am using jitsi behind an NGINX reverse proxy and I am rather new jitisi and jibri. I would like to try to apply your solution. As I understand, jibri needs a SSL connection to the container in which the meeting takes place, since the selenium Chrome browser running inside the Jibri container does not record unless an SSL connection is enabled. Your solution would be a self signed certificate. Where do I place it?

It seems this is related to this issue, am I correct?
jitsi/jibri#240 (comment)

Where do I change the setting in the jibri docker image for the Chrome capabilities?

@saghul
Copy link
Member

saghul commented Mar 27, 2020

Yes, it's that issue.

There is no setting to change. We need to create a self-signed cert for the "meet.jitsi" domain and configure nginx accordingly.

@JBleher
Copy link

JBleher commented Mar 27, 2020

So, you mean the nginx server in the web container? Isn't there already a self signed certificat present in the ssl.conf?

# ssl certs
{{ if .Env.ENABLE_LETSENCRYPT | default "0" | toBool }}
ssl_certificate /etc/letsencrypt/live/{{ .Env.LETSENCRYPT_DOMAIN }}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{{ .Env.LETSENCRYPT_DOMAIN }}/privkey.pem;
{{ else }}
ssl_certificate /config/keys/cert.crt;
ssl_certificate_key /config/keys/cert.key;
{{ end }}

@danielarbo
Copy link

Same problem here.
I tried everything but with self signed cert can't start recording. I think one option is use a FQDN and valid certificate in jitsi-web.

image

@primoitt83
Copy link

Hi!

Check your jitsi-web logs.

This is mine:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc86a403ba8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

During handling of the above exception, another exception occurred:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc86a403ba8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
Please see the logfiles in /var/log/letsencrypt for more details.
Failed to obtain a certificate from the Let's Encrypt CA.
Exiting.

For testing purpose cant be a let's encrypt CA I guess.

"looks like your “server” can’t talk with Letsencrypt.
What’s your domain name? You need a public visible and unique domain name to get a certificate."

@primoitt83
Copy link

primoitt83 commented Mar 27, 2020

Hi there!

I've tried this self signed CA and still not working

https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-on-centos-7

Here my jibri's log

2020-03-27 20:37:15.794 SEVERE: [48] org.jitsi.jibri.selenium.JibriSelenium.run() An error occurred while joining the call: org.openqa.selenium.WebDriverException: <unknown>: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
  (Session info: chrome=80.0.3987.149)
  (Driver info: chromedriver=80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}),platform=Linux 3.10.0-1062.18.1.el7.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)

@saghul
Copy link
Member

saghul commented Mar 27, 2020

No. Chrome will connect to the web server, using https://meet.jitsi as the URL. So the self-signed cert should at least match that, I think.

@arunvc
Copy link
Contributor

arunvc commented May 5, 2020

I've been struggling to make this work, documentation could've been a bit more clear on the docker setup I guess.
You need to replace all meet.jitsi entries in the .env file BUT leave the subdomains there, for example:
PUBLIC_URL=https://some-domain.com
XMPP_DOMAIN=some-domain.com
XMPP_SERVER=xmpp.some-domain.com
XMPP_BOSH_URL_BASE=http://xmpp.some-domain.com:5280
XMPP_AUTH_DOMAIN=auth.some-domain.com
XMPP_MUC_DOMAIN=muc.some-domain.com
XMPP_INTERNAL_MUC_DOMAIN=internal-muc.some-domain.com
XMPP_GUEST_DOMAIN=guest.some-domain.com
XMPP_RECORDER_DOMAIN=recorder.some-domain.com

Also make sure to define the DOCKER_HOST_ADDRESS and set ENABLE_RECORDING=1
I'm also using letsencrypt in this setup, so I set ENABLE_LETSENCRYPT=1 and configured LETSENCRYPT_DOMAIN=some-domain.com
LETSENCRYPT_EMAIL=[email protected]

I hope this helps, it took me a while to figure it out.

Does Recording work?

I have haproxy handling the certificate, so ENABLE_LETSENCRYPT is OFF and DISABLE_HTTPS is ON also DOCKER_HOST_ADDRESS is defined

            "DISABLE_HTTPS=1",
            "LETSENCRYPT_DOMAIN",
            "LETSENCRYPT_EMAIL",
            "PUBLIC_URL=https://my.domain.com",
            "XMPP_DOMAIN=my.domain.com",
            "XMPP_AUTH_DOMAIN=auth.my.domain.com",
            "XMPP_BOSH_URL_BASE=http://xmpp.my.domain.com:5280",
            "XMPP_GUEST_DOMAIN=guest.my.domain.com",
            "XMPP_MUC_DOMAIN=muc.my.domain.com",
            "XMPP_RECORDER_DOMAIN=recorder.my.domain.com",
            "ENABLE_RECORDING=1",

@anghelflorin
Copy link

Yep, works for me but I'm using the web container ( the default one coming with the stack ) and that's handling https. It should work with a proxy as well but haven't tested, what errors are you getting? what containers are you running?

@arunvc
Copy link
Contributor

arunvc commented May 5, 2020

My error see above, 5th message,
i am using the default stack, i am using the latest containers.
Are you using the latest docker containers ?

my env settings

            "ENABLE_AUTH=1",
            "ENABLE_GUESTS=1",
            "ENABLE_LETSENCRYPT",
            "ENABLE_HTTP_REDIRECT",
            "ENABLE_TRANSCRIPTIONS",
            "DISABLE_HTTPS",
            "JICOFO_AUTH_USER=focus",
            "LETSENCRYPT_DOMAIN",
            "LETSENCRYPT_EMAIL",
            "PUBLIC_URL=https://my.domain.com",
            "XMPP_DOMAIN=my.domain.com",
            "XMPP_AUTH_DOMAIN=auth.my.domain.com",
            "XMPP_BOSH_URL_BASE=http://xmpp.my.domain.com:5280",
            "XMPP_GUEST_DOMAIN=guest.my.domain.com",
            "XMPP_MUC_DOMAIN=muc.my.domain.com",
            "XMPP_RECORDER_DOMAIN=recorder.my.domain.com",
            "ETHERPAD_URL_BASE=http://etherpad.my.domain.com:9001",
            "TZ=UTC",
            "JIBRI_BREWERY_MUC=jibribrewery",
            "JIBRI_PENDING_TIMEOUT=90",
            "JIBRI_XMPP_USER=jibri",
            "JIBRI_XMPP_PASSWORD=12345",
            "JIBRI_RECORDER_USER=recorder",
            "JIBRI_RECORDER_PASSWORD=67890",
            "ENABLE_RECORDING=1",
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "S6_BEHAVIOUR_IF_STAGE2_FAILS=2"

Am using the following containers

jitsi/jibri:latest
jitsi/jicofo:latest
jitsi/jvb:latest
jitsi/prosody:latest
jitsi/web:latest
jitsi/etherpad:latest

Os is Ubuntu 18, Whats your OS?

@arunvc
Copy link
Contributor

arunvc commented May 5, 2020

Noticed the following error on jibri container start

[cont-init.d] 10-config: executing...
chmod: cannot access '/config/finalize.sh': No such file or directory
[cont-init.d] 10-config: exited 0.
[cont-init.d] done.
[services.d] starting services
icewm-session: using /root/.icewm for private configuration files
[services.d] done.
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.

Couple of errors in jibri container /tmp/xorg.log

1. AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed (/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so: cannot open shared object file: No such file or directory

2. (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound (Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory)

To solve 1st error connect to container and install libgl1-mesa-dri

apt install libgl1-mesa-dri 

Second one is a bug https://gitlab.freedesktop.org/xorg/xserver/issues/554

@anghelflorin
Copy link

I'm also using Ubuntu 18.04, same stack of containers except etherpad, haven't used that yet. I think the only thing that is different is the way we handle SSL. Any chance you can give it a spin without haproxy? If you have public IP on the docker host you can try Letsencrypt. Haven't seen the missing finalize.sh script so far.

@arunvc
Copy link
Contributor

arunvc commented May 5, 2020

Finally recording worked, Thank you all.

This error is gone
Failed to read the 'localStorage' property from 'Window': Access is denied for this document

change container from latest to stable-4548

jitsi/jibri::stable-4548
jitsi/jicofo:stable-4548
jitsi/jvb:stable-4548
jitsi/prosody:stable-4548
jitsi/web:stable-4548

  1. Startup error still exist in stable-4548

@saghul Please install libgl1-mesa-dri dependencies in docker file to fix
AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed

  1. (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound
    https://gitlab.freedesktop.org/xorg/xserver/issues/554

@anghelflorin
Copy link

Glad it worked, I hope whatever fix they have in that branch will make it to master soon :)

@tele-tom
Copy link

tele-tom commented May 5, 2020

Finally recording worked, Thank you all.

This error is gone
Failed to read the 'localStorage' property from 'Window': Access is denied for this document

change container from latest to stable-4548

jitsi/jibri::stable-4548
jitsi/jicofo:stable-4548
jitsi/jvb:stable-4548
jitsi/prosody:stable-4548
jitsi/web:stable-4548

1. Startup error still exist in **stable-4548**

@saghul Please install libgl1-mesa-dri dependencies in docker file to fix
AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed

1. (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound
   https://gitlab.freedesktop.org/xorg/xserver/issues/554

Do you mean it works behind HAProxy like you described above?
For me behind Apache RP still the same error with stable-4548.

And if you change the etherpad base URL you probably get a 502 bad gateway when opening a shared document. Did you try it?

@arunvc
Copy link
Contributor

arunvc commented May 6, 2020

Do you mean it works behind HAProxy like you described above?
For me behind Apache RP still the same error with stable-4548.

Yes it worked behind haproxy
Added certificate only in haproxy for my.domain.com,
i have posted my environment settings above
haproxy to jitsi-web communication is via http so redirected to port 80 from haproxy

backend jitsi-web
  mode http
  balance roundrobin
  server jitsi-web1 my-jitsi-web-docker-container-name:80 check

Note i have commented the ports in docker compose for jitsi-web so that i runs in port 80 and 443

image

And if you change the etherpad base URL you probably get a 502 bad gateway when opening a >> shared document. Did you try it?

Its working fine.

replace all **jitsi.meet** with **my.domain.com**  in your .env
remove your container, 
remove existing volume,
rebuild and up

Share your apache config and .env

@arunvc
Copy link
Contributor

arunvc commented May 6, 2020

Haven't seen the missing finalize.sh script so far.

Solution to error

Cannot run program "/config/finalize.sh": error=2, No such file or directory

.env
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

create a dummy script finalize.sh
Map volume for jibri container in jibri.yml

~/finalize.sh:/config/finalize.sh

OR
Comment JIBRI_FINALIZE_RECORDING_SCRIPT_PATH in jibri.yml should solve this

        environment:
            #- JIBRI_FINALIZE_RECORDING_SCRIPT_PATH

@anghelflorin
Copy link

Haven't seen the missing finalize.sh script so far.

Solution to error

Cannot run program "/config/finalize.sh": error=2, No such file or directory

.env
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

create a dummy script finalize.sh
Map volume for jibri container in jibri.yml

~/finalize.sh:/config/finalize.sh

OR
Comment JIBRI_FINALIZE_RECORDING_SCRIPT_PATH in jibri.yml should solve this

        environment:
            #- JIBRI_FINALIZE_RECORDING_SCRIPT_PATH

Yeah, it looks like I had the same error, I just didn't notice because recording was working and I wasn't looking for errors. That script can be useful in case you need to push your recordings on external storage or any other post-meeting action you might need. Good catch

@saghul
Copy link
Member

saghul commented May 6, 2020

1. Startup error still exist in **stable-4548**

@saghul Please install libgl1-mesa-dri dependencies in docker file to fix
AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed

1. (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound
   https://gitlab.freedesktop.org/xorg/xserver/issues/554

Is this a fatal problem or does the startup proceed? I tested it before the release and could live stream just fine.

@arunvc
Copy link
Contributor

arunvc commented May 6, 2020

1. Startup error still exist in **stable-4548**

@saghul Please install libgl1-mesa-dri dependencies in docker file to fix
AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed

1. (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound
   https://gitlab.freedesktop.org/xorg/xserver/issues/554

Is this a fatal problem or does the startup proceed? I tested it before the release and could live stream just fine.

Not fatal everything works fine even with these errors.

@tele-tom
Copy link

tele-tom commented May 6, 2020

Do you mean it works behind HAProxy like you described above?
For me behind Apache RP still the same error with stable-4548.

Yes it worked behind haproxy
Added certificate only in haproxy for my.domain.com,
i have posted my environment settings above
haproxy to jitsi-web communication is via http so redirected to port 80 from haproxy

backend jitsi-web
  mode http
  balance roundrobin
  server jitsi-web1 my-jitsi-web-docker-container-name:80 check

Note i have commented the ports in docker compose for jitsi-web so that i runs in port 80 and 443

image

And if you change the etherpad base URL you probably get a 502 bad gateway when opening a >> shared document. Did you try it?

Its working fine.

replace all **jitsi.meet** with **my.domain.com**  in your .env
remove your container, 
remove existing volume,
rebuild and up

Share your apache config and .env

Thanks for your reply.

I had "DISABLE_HTTPS=1" in .env and this caused my problem even I don't need HTTPS. I put it back to the default (commented out).

So now it works :)

Only thing left is etherpad. It only works if I leave baseURL default setting in .env.
When I set it to ETHERPAD_URL_BASE=http://etherpad.my.domain.tld:9001 I get a 502 Bad Gateway in the iframe.
That's no problem of course but I don't see the menu symbols of etherpad (the web-fonts can't be loaded) what might be connected to that situation.
See also this issue: #540

And thanks to all contributors!

@saghul
Copy link
Member

saghul commented May 7, 2020

Not fatal everything works fine even with these errors.

@arunvc Gotcha. Any chance you can send a PR?

@arunvc
Copy link
Contributor

arunvc commented May 8, 2020

Not fatal everything works fine even with these errors.

@arunvc Gotcha. Any chance you can send a PR?

Sorry, whats PR? Pull Request/Purchase Request/Public Relation

@RAJANAGORI
Copy link

RAJANAGORI commented May 8, 2020 via email

@arunvc
Copy link
Contributor

arunvc commented May 8, 2020

Ok i will work on this

Hillagoon pushed a commit to Hillagoon/docker-jitsi-meet that referenced this issue May 11, 2020
Hillagoon pushed a commit to Hillagoon/docker-jitsi-meet that referenced this issue May 11, 2020
* a79fc0c misc: add release script
* 0f0adc8 compose: add image tag to compose files
* 0177765 misc: fix config volumes to work with SELinux
* eae3f5c jibri: chrome/driver 78 as a stopgap
* 78df6a4 doc: delete unnecessary dot
* 4426ed8 jibri: fix case when /dev/snd is not bound (jitsi#240 (comment))
* 125775a web: fix WASM MIME type
* e70975e web: enable GZIP compression for more file types
* 774aba5 misc: set ddefault timezone to UTC
* 3c3fc19 prosody: enable speaker stats and conferene duration modules
* f911df2 jvb: set JVB_TCP_MAPPED_PORT default value
* 1205170 jvb: allow `TCP_HARVESTER_MAPPED_PORT` to be configured
* f7796a1 prosody: add volume  /prosody-plugins-custom to docker-compose
* d44230e prosody: use hashed xmpp auth
muhviehstah pushed a commit to muhviehstah/docker-jitsi-meet that referenced this issue May 19, 2020
@aninditasadhukhan
Copy link

Hi,
Can anyome please help me out? I have installed jibri using docker-compose. It is not working. Please suggest me how can I fix this. @saghul @bbaldino

Below is the error in log.0.txt

2020-08-25 07:03:12.135 FINE: [748] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=[email protected]/e7R-j4fM,from=[email protected]/focus,id=amlicmlAYXV0aC54bXBwZGVtby50Y2dkaWdpdGFsLmNvbS9lN1ItajRmTQBXSHZFei02NDU3AF4+bunnZPBavVCP1p3dMEg=,type=set,]
2020-08-25 07:03:12.135 INFO: [748] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq from environment [MucClient id=xmppdemo.tcgdigital.com hostname=xmppdemo.tcgdigital.com]
2020-08-25 07:03:12.135 INFO: [748] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request, starting service
2020-08-25 07:03:12.157 INFO: [748] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://xmppdemo.tcgdigital.com/conference, callName=testvideoconf, urlParams=[])
2020-08-25 07:03:12.157 INFO: [748] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://xmppdemo.tcgdigital.com/conference, callName=testvideoconf, urlParams=[])), sessionId=lefigiymmbsgddbx, callLoginParams=XmppCredentials(domain=recorder.xmppdemo.tcgdigital.com, username=recorder, password=RecordersPass)) finalize script path: /config/finalize.sh and recordings directory: /config/recordings
2020-08-25 07:03:13.382 INFO: [748] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-08-25 07:03:13.400 INFO: [748] org.jitsi.jibri.selenium.JibriSelenium.() Starting empty call check with a timeout of PT30S
2020-08-25 07:03:13.401 FINE: [748] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.() Detected os as OS: LINUX
2020-08-25 07:03:13.401 INFO: [748] org.jitsi.jibri.service.impl.FileRecordingJibriService.() Writing recording to /config/recordings/lefigiymmbsgddbx
2020-08-25 07:03:13.426 FINE: [748] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-08-25 07:03:13.426 INFO: [748] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-08-25 07:03:13.427 INFO: [748] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-08-25 07:03:13.427 FINE: [748] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@3375cfe6
2020-08-25 07:03:13.427 FINE: [748] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@ed9a8d2
2020-08-25 07:03:13.438 INFO: [748] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ
2020-08-25 07:03:13.484 FINE: [423] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2020-08-25 07:03:13.485 FINE: [423] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
2020-08-25 07:03:14.038 FINE: [759] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Visiting url https://xmppdemo.tcgdigital.com/conference/testvideoconf#config.iAmRecorder=true&config.externalConnectUrl=null&config.startWithAudioMuted=true&config.startWithVideoMuted=true&interfaceConfig.APP_NAME="Jibri"&config.analytics.disabled=true&config.p2p.enabled=false&config.prejoinPageEnabled=false&config.requireDisplayName=false
2020-08-25 07:03:18.075 FINE: [759] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: Cannot read property 'isJoined' of undefined
2020-08-25 07:03:18.583 FINE: [759] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: Cannot read property 'isJoined' of undefined
2020-08-25 07:03:19.090 FINE: [759] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: Cannot read property 'isJoined' of undefined
2020-08-25 07:03:48.062 SEVERE: [759] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load
2020-08-25 07:03:48.063 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2020-08-25 07:03:48.063 INFO: [759] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2020-08-25 07:03:48.063 INFO: [759] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq
2020-08-25 07:03:48.064 FINE: [759] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-08-25 07:03:48.070 INFO: [759] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-08-25 07:03:48.070 INFO: [759] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-08-25 07:03:48.070 INFO: [759] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-08-25 07:03:48.071 INFO: [759] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-08-25 07:03:48.071 INFO: [759] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-08-25 07:03:48.080 INFO: [759] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-08-25 07:03:48.088 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving call and quitting browser
2020-08-25 07:03:48.088 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Recurring call status checks cancelled
2020-08-25 07:03:48.100 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 22 log entries for type browser
2020-08-25 07:03:48.189 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 1048 log entries for type driver
2020-08-25 07:03:48.497 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-08-25 07:03:48.498 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-08-25 07:03:53.525 SEVERE: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Error trying to leave the call: org.openqa.selenium.JavascriptException: javascript error: The timeout for the confirmation about leaving the room expired.
(Session info: chrome=78.0.3904.97)
(Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Linux 4.15.0-112-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'a356a3d5a5a6', ip: '172.19.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-112-generic', java.version: '1.8.0_252'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 78.0.3904.105 (60e2d8774a81..., userDataDir: /tmp/.com.google.Chrome.Bmxm2f}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:36915}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 78.0.3904.97, webStorageEnabled: true}
Session ID: c64004bfcdc3918c469bb98f74529482 with stack:
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:480)
org.jitsi.jibri.selenium.pageobjects.CallPage.leave(CallPage.kt:221)
org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser(JibriSelenium.kt:299)
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:190)
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:257)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:206)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:84)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:293)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:284)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.service.impl.StatefulJibriService.onServiceStateChange(StatefulJibriService.kt:40)
org.jitsi.jibri.service.impl.StatefulJibriService.access$onServiceStateChange(StatefulJibriService.kt:26)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:35)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.service.JibriServiceStateMachine.access$notify(JibriServiceStateMachine.kt:46)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:100)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:46)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.service.JibriServiceStateMachine.transition(JibriServiceStateMachine.kt:112)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:46)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:293)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:284)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange(JibriSelenium.kt:184)
org.jitsi.jibri.selenium.JibriSelenium.access$onSeleniumStateChange(JibriSelenium.kt:116)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:169)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:116)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.selenium.SeleniumStateMachine.access$notify(SeleniumStateMachine.kt:33)
org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:78)
org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:33)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.selenium.SeleniumStateMachine.transition(SeleniumStateMachine.kt:83)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:260)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)

2020-08-25 07:03:53.526 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-08-25 07:03:53.601 INFO: [759] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit

Also below is the error in browser.0.txt

{
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:19.128Z" "[modules/xmpp/XmppConnection.js]" "\u003Cd._maybeEnableStreamResume>: " "Stream resume enabled,...",
"source": "console-api",
"timestamp": 1.598338999594e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:19.310Z" "[modules/xmpp/strophe.jingle.js]" "getting turn credentials failed" iq#d7bac564-1f4f-4680-b112-...",
"source": "console-api",
"timestamp": 1.598338999596e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:19.311Z" "[modules/xmpp/strophe.jingle.js]" "is mod_turncredentials or similar installed?"",
"source": "console-api",
"timestamp": 1.598338999596e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:19.418Z" "[modules/xmpp/moderator.js]" "\u003Cu._allocateConferenceFocusError>: " "Unauthorized to start ...",
"source": "console-api",
"timestamp": 1.598338999596e+12
}, {
"level": "SEVERE",
"message": "https://xmppdemo.tcgdigital.com/libs/app.bundle.min.js?v=4127 71:36233 "2020-08-25T07:03:19.443Z" "[conference.js]" "\u003Cte._onConferenceFailed>: " "CONFERENCE FAILED:" "conference.authentication...",
"source": "console-api",
"timestamp": 1.598338999596e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:24.533Z" "[modules/xmpp/moderator.js]" "\u003Cu._allocateConferenceFocusError>: " "Unauthorized to start ...",
"source": "console-api",
"timestamp": 1.598339004696e+12
}, {
"level": "SEVERE",
"message": "https://xmppdemo.tcgdigital.com/libs/app.bundle.min.js?v=4127 71:36233 "2020-08-25T07:03:24.543Z" "[conference.js]" "\u003Cte._onConferenceFailed>: " "CONFERENCE FAILED:" "conference.authentication...",
"source": "console-api",
"timestamp": 1.598339004696e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:29.656Z" "[modules/xmpp/moderator.js]" "\u003Cu._allocateConferenceFocusError>: " "Unauthorized to start ...",
"source": "console-api",
"timestamp": 1.598339009773e+12
}, {
"level": "SEVERE",
"message": "https://xmppdemo.tcgdigital.com/libs/app.bundle.min.js?v=4127 71:36233 "2020-08-25T07:03:29.665Z" "[conference.js]" "\u003Cte._onConferenceFailed>: " "CONFERENCE FAILED:" "conference.authentication...",
"source": "console-api",
"timestamp": 1.598339009773e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:34.756Z" "[modules/xmpp/moderator.js]" "\u003Cu._allocateConferenceFocusError>: " "Unauthorized to start ...",
"source": "console-api",
"timestamp": 1.598339014854e+12
}, {
"level": "SEVERE",
"message": "https://xmppdemo.tcgdigital.com/libs/app.bundle.min.js?v=4127 71:36233 "2020-08-25T07:03:34.766Z" "[conference.js]" "\u003Cte._onConferenceFailed>: " "CONFERENCE FAILED:" "conference.authentication...",
"source": "console-api",
"timestamp": 1.598339014854e+12
}, {
"level": "WARNING",
"message": "https://xmppdemo.tcgdigital.com/libs/lib-jitsi-meet.min.js?v=4127 9:26401 "2020-08-25T07:03:39.856Z" "[modules/xmpp/moderator.js]" "\u003Cu._allocateConferenceFocusError>: " "Unauthorized to start ...",
"source": "console-api",
"timestamp": 1.598339019934e+12
}, "..." ]

@ktechmidas
Copy link

@aninditasadhukhan

I've had this issue for months... no-one ever replies

#633

@mujahid1005011
Copy link

Yes, it's that issue.

There is no setting to change. We need to create a self-signed cert for the "meet.jitsi" domain and configure nginx accordingly.

Hi, I used a self signed cert for meet.jitsi and check nginx log and found 403 for /xmpp-websocket url. Other paths gets 200. Getting same 'Not joined yet: Cannot read property 'isJoined' of undefined' error. Can you shade some lights? @saghul

172.29.0.1 - - [21/Dec/2020:18:16:05 +0000] "GET /xmpp-websocket?room=meet2 HTTP/1.1" 403 284 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"

Bishwarupjee added a commit to Bishwarupjee/docker-jitsi-meet that referenced this issue Jan 6, 2023
Bishwarupjee added a commit to Bishwarupjee/docker-jitsi-meet that referenced this issue Jan 6, 2023
* 7820ea5 misc: add release script
* c552ddd compose: add image tag to compose files
* c1c1b48 misc: fix config volumes to work with SELinux
* 74b654f jibri: chrome/driver 78 as a stopgap
* 07c7787 doc: delete unnecessary dot
* 7fbd900 jibri: fix case when /dev/snd is not bound (jitsi/docker-jitsi-meet#240 (comment))
* f705973 web: fix WASM MIME type
* c6b160b web: enable GZIP compression for more file types
* 6092b60 misc: set ddefault timezone to UTC
* 1e0a8dd prosody: enable speaker stats and conferene duration modules
* f8aa21b jvb: set JVB_TCP_MAPPED_PORT default value
* 89a3bc4 jvb: allow `TCP_HARVESTER_MAPPED_PORT` to be configured
* 4dbff1f prosody: add volume  /prosody-plugins-custom to docker-compose
* 27ff0b6 prosody: use hashed xmpp auth
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.