jitsi / docker-jitsi-meet

Jitsi Meet on Docker
https://hub.docker.com/u/jitsi/
Apache License 2.0
3.04k stars 1.36k forks source link

Recording fails #240

Closed sualko closed 4 years ago

sualko commented 4 years ago

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) [to=jibri@auth.meet.jitsi/edAXYQ94,from=jibribrewery@internal-muc.meet.jitsi/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 ```
maltokyo commented 4 years ago

This all got a bit much for me. Used many many hours and cannot get recording to work. Shame that it is this complex, in a docker environment. If some genius could make it work "out of the box" in docker with only standard docker-compose etc, would be great!

nyok92 commented 4 years ago

yeah , found this thread, souds much alike: So will try to reinstall the sound loopback:

nyok92 commented 4 years ago

https://community.jitsi.org/t/recording-stopped-recording-failed-to-start/21300/36

nyok92 commented 4 years ago

https://github.com/jitsi/jibri#alsa-and-loopback-device

morphles commented 4 years ago

@nyok92 for the love of god, please post logs collaped. @teowoz Thanks your stuff works. Though for some reason livestreaming was quite laggy, but that is other issue to sort out. Huge thanks man! Though I made it without pathces, and it should work on current stock version, just doing you'r commands via script @maltokyo & others try something like this (when containers are up and running):

echo "Installing libnss3-tools for certutil for finalizing cert 'approval'"
    docker exec -t dockerjitsimeet_jibri_1 apt update
    docker exec -t dockerjitsimeet_jibri_1 apt install -y libnss3-tools

    echo "Adjusting settings and regenerating self signed certificate in a way that will be possible to force chrome to accept it"
    docker exec -t dockerjitsimeet_web_1 sed -i 's/add_header Strict-Transport-Security/#add_header Strict-Transport-Security/' /defaults/ssl.conf
    docker exec -t dockerjitsimeet_web_1 rm /config/keys/cert.crt /config/keys/cert.key
    docker exec -t dockerjitsimeet_web_1 bash -c 'openssl req -newkey rsa:2048 -new -x509 -days 9131 -nodes -sha256 \
                -subj "/CN=meet.jitsi" \
                -reqexts SAN -extensions SAN \
                -config <(cat /etc/ssl/openssl.cnf ; printf "\n[SAN]\nsubjectAltName=DNS:meet.jitsi") \
                -out /config/keys/cert.crt -keyout /config/keys/cert.key'

    echo "Fetching generated certificate to jibri server and adding it as CA certificate"
    docker exec -t dockerjitsimeet_jibri_1 bash -c 'while ! openssl s_client -showcerts -connect meet.jitsi:443 < /dev/null | openssl x509 -outform PEM > /usr/local/share/ca-certificates/meet.crt; do sleep 1; done'
    docker exec -t dockerjitsimeet_jibri_1 update-ca-certificates
    # the screenshot is just to launch chrome and exit, to make it create ~/.pki
    echo "Executing chrome to set up is pki/cert db, adding our certificate as trusted"
    docker exec -t -u jibri dockerjitsimeet_jibri_1 bash -c '/usr/bin/google-chrome --headless --screenshot=/tmp/s.png https://meet.jitsi/ && certutil -d sql:/home/jibri/.pki/nssdb -A -t TC -n meet -i /usr/local/share/ca-certificates/meet.crt'
    docker exec -t dockerjitsimeet_jibri_1 rm /tmp/s.png

Note one also needs to enable live-streaming in web config, and I needed to adjust bosh url in web config to remove domain just leave path (I assume this is needed due to reverse proxy?). So it all seems to work now, behind https proxy (AWS load balancer). Did not want to use custom branch or repo to stay on mainline, and hope mainline gets fixed soon enough :) But for now this will do for me at least. Hope this helps as it does not need any fiddling with existing code base, just a script to be run.

teodly commented 4 years ago

@nyok92

Hi teowoz, do you use docker compose or docker stack deploy ?

I use docker-compose.

Maybe it's related to the cap_add SYS_admin and NET_BIND_SERVICE which are not taken by docker stack deploy...

I think that's the reason. The docker-compose configs have additional settings which are required.

@maltokyo

If some genius could make it work "out of the box" in docker with only standard docker-compose etc, would be great!

It would be possible if ALSA loopback wasn't used. Maybe pulseaudio null sink and its monitor as a source for recording would work?

morphles commented 4 years ago

For my code above, seems there is some timing issue or something like that, so might want entering containers (well mainly jibry) and executing commands there manualy, must change to jibri user with say su jibri for /usr/bin/google-chrome --headless --screenshot=/tmp/s.png https://meet.jitsi/ && certutil -d sql:/home/jibri/.pki/nssdb -A -t TC -n meet -i /usr/local/share/ca-certificates/meet.crt

albertoVieiraNeto commented 4 years ago

i've been following the thread, and although i understand why the self signed certificate seems the correct anwer, most of us are running this setup either behind another system or on docker/kubernets, wouldn't be easier to just create a configuration that gets appended to this file? File: https://github.com/jitsi/jibri/blob/master/src/main/kotlin/org/jitsi/jibri/selenium/JibriSelenium.kt

maltokyo commented 4 years ago

@albertoVieiraNeto if it fixes the issue, I am willing to give it a go, could you please share specifics of how you fixed it? If it works for me, I will make the PR here.

saghul commented 4 years ago

@albertoVieiraNeto You're right, that should be the way to go.

netaskd commented 4 years ago

Update: It's related to setups that had been working with chrome/driver 78 and earlier. PR https://github.com/jitsi/jibri/pull/277 resolve this problem

saghul commented 4 years ago

@netaskd WDYT about downgrading Chrome / driver to 78 as a stopgap?

netaskd commented 4 years ago

@saghul PR #512 holds chrome/driver in version 78 But I think, the best way to fix it on the jibri side.

saghul commented 4 years ago

Agreed that that’s the right fix, this is a stopgap.

nestorconde commented 4 years ago

I replaced all mentions of meet.jitsi by my.domain in .env. After doing that jibri manages to save a video but it's very short just one second even if I was recording for much longer. I hanged one of the calls in which I was doing the test and after that I get "All recorders are currently busy".

I don't know whether this is an issue that is related to the replacement in .env or not (other comments in this thread seem to get recording working after the substitution) and I've also seen that the "All recorders are currently busy" problem happens to other people who are not even using docker-jitsi-meet (https://github.com/jitsi/jitsi-meet/issues/5403). I just wanted to report this here in case it can be of any help.

leobagua commented 4 years ago

I had the same issue, but just setting up the correct config in .env file, everything works fine, except but one issue: I was able to record just 30s of video.

saghul commented 4 years ago

This should now be fixed out of the box in stable-4548. Thanks everyone for the discussion and @netaskd for providing the workaround!

tele-tom commented 4 years ago

For me it still fails with the above errors. Drivers are the older versions according to the jibri logs. I have Apache reverse proxy in front of jibri vanilla setup terminating tls. Connection to jitsi goes to the non ssl port and https is disabled in .env Left all URLs in .env default beside my public URL and set the local/LAN ip of the jibri machine. LDAP is activated and works. Etherpad works.

maltokyo commented 4 years ago

Recording still fails with same error after pulling latest jibri (and all others) image and restarting. Nothing has changed. Can I provide some logs if they help someone?

RAJANAGORI commented 4 years ago

Recording still fails with same error after pulling latest jibri (and all others) image and restarting. Nothing has changed. Can I provide some logs if they help someone?

Hi everyone. A temporary hack for people who using proxy to internal nginx and because of that can't use letsencrypt to get valid certs:

  1. In .env replace all meet.jitsi with a domain you have cert for.
  2. Run compose with removed .jitsi-meet-cfg to recreate certs.
  3. Replace cert and key ~/.jitsi-meet-cfg/web/keys/ with fullchain.crt and private.key (cert.cfg cert.key)
  4. Set immutable flag on that files (chattr +i) to prevent these files from being replaced with self signed certs on restart.
  5. Restart web container or all if you wish.

That works for me. Hope that would be fixed soon.

did you change this in docker ? because i follow the complete procedure in docker and it didn't work

arunvc commented 4 years ago

Tried with latest docker. still errors, this issue is not resolved.

i replaced jitsi.meet with jitsi.mydomain.com https for jitsi.mydomain.com is configured via haproxy. disableCertificateVerification=true in the docker container

  1. 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

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

Stack trace

JibriConfig(recordingDirectory=/config/recordings, singleUseMode=false, enabledStatsD=true, finalizeRecordingScriptPath=/config/finalize.sh, xmppEnvironments=[XmppEnvironmentConfig(name=prod environment, xmppServerHosts=[xmpp.jitsi.mydomain.com], xmppDomain=jitsi.mydomain.com, controlLogin=XmppCredentials(domain=auth.jitsi.mydomain.com, username=jibri, password=pwd123), controlMuc=XmppMuc(domain=internal-muc.jitsi.mydomain.com, roomName=jibribrewery, nickname=jibri-instanse-883403676), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.jitsi.mydomain.com, username=recorder, password=pwd456), stripFromRoomDomain=muc., usageTimeoutMins=0, trustAllXmppCerts=true)])
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
icewmtray: using /root/.icewm for private configuration files
2020-05-04 10:01:40.252 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime() A provider org.jitsi.jibri.api.http.internal.InternalHttpApi registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.jibri.api.http.internal.InternalHttpApi will be ignored. 
2020-05-04 10:01:40.465 INFO: [1] 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-05-04 10:01:40.467 INFO: [1] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@5aa6202e
2020-05-04 10:01:40.473 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() Connecting to xmpp environment on xmpp.jitsi.mydomain.com with config XmppEnvironmentConfig(name=prod environment, xmppServerHosts=[xmpp.jitsi.mydomain.com], xmppDomain=jitsi.mydomain.com, controlLogin=XmppCredentials(domain=auth.jitsi.mydomain.com, username=jibri, password=pwd123), controlMuc=XmppMuc(domain=internal-muc.jitsi.mydomain.com, roomName=jibribrewery, nickname=jibri-instanse-883403676), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.jitsi.mydomain.com, username=recorder, password=pwd456), stripFromRoomDomain=muc., usageTimeoutMins=0, trustAllXmppCerts=true)
2020-05-04 10:01:40.474 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() The trustAllXmppCerts config is enabled for this domain, all XMPP server provided certificates will be accepted
2020-05-04 10:01:40.483 FINE: [21] org.jitsi.xmpp.mucclient.MucClient.log() Initializing a new MucClient for [ org.jitsi.xmpp.mucclient.MucClientConfiguration id=xmpp.jitsi.mydomain.com domain=auth.jitsi.mydomain.com hostname=xmpp.jitsi.mydomain.com username=jibri mucs=[jibribrewery@internal-muc.jitsi.mydomain.com] mucNickname=jibri-instanse-883403676 disableCertificateVerification=true]
2020-05-04 10:01:40.490 WARNING: [21] org.jitsi.xmpp.mucclient.MucClient.log() Disabling certificate verification!
2020-05-04 10:01:40.518 FINE: [21] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=xmpp.jitsi.mydomain.com hostname=xmpp.jitsi.mydomain.com] about to connect and login.
2020-05-04 10:01:40.525 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime() A provider org.jitsi.jibri.api.http.HttpApi registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.jibri.api.http.HttpApi will be ignored. 
2020-05-04 10:01:40.753 INFO: [21] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=xmpp.jitsi.mydomain.com hostname=xmpp.jitsi.mydomain.com] connected
2020-05-04 10:01:40.819 FINE: [21] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=xmpp.jitsi.mydomain.com hostname=xmpp.jitsi.mydomain.com] authenticated, b=false
2020-05-04 10:01:40.819 FINE: [21] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=xmpp.jitsi.mydomain.com hostname=xmpp.jitsi.mydomain.com] about to join MUCs.
2020-05-04 10:01:40.837 INFO: [21] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: jibribrewery@internal-muc.jitsi.mydomain.com
2020-05-04 10:01:40.841 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-05-04 10:01:40.842 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-05-04 10:04:23.001 FINE: [42] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.jitsi.mydomain.com/0pjjR5N1,from=jibribrewery@internal-muc.jitsi.mydomain.com/focus,id=amlicmlAYXV0aC50YWxrLmluZm9zcGljYS5jb20vMHBqalI1TjEAUDZwekotMTg1AHTEOaaEE6TCoFNWO/rbQgo=,type=set,]
2020-05-04 10:04:23.003 INFO: [42] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='jibri@auth.jitsi.mydomain.com/0pjjR5N1' from='jibribrewery@internal-muc.jitsi.mydomain.com/focus' id='amlicmlAYXV0aC50YWxrLmluZm9zcGljYS5jb20vMHBqalI1TjEAUDZwekotMTg1AHTEOaaEE6TCoFNWO/rbQgo=' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='websitemeeting@muc.jitsi.mydomain.com' session_id='escmjcfahgcjvkxo' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=xmpp.jitsi.mydomain.com hostname=xmpp.jitsi.mydomain.com]
2020-05-04 10:04:23.004 INFO: [42] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request
2020-05-04 10:04:23.006 INFO: [42] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ
2020-05-04 10:04:23.006 INFO: [43] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service
2020-05-04 10:04:23.043 INFO: [43] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://jitsi.mydomain.com, callName=websitemeeting, urlParams=[])
2020-05-04 10:04:23.045 INFO: [43] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://jitsi.mydomain.com, callName=websitemeeting, urlParams=[])), sessionId=escmjcfahgcjvkxo, callLoginParams=XmppCredentials(domain=recorder.jitsi.mydomain.com, username=recorder, password=pwd456)) finalize script path: /config/finalize.sh and recordings directory: /config/recordings
Starting ChromeDriver 78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}) on port 8480
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
2020-05-04 10:04:23.868 INFO: [43] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-05-04 10:04:23.885 INFO: [43] org.jitsi.jibri.selenium.JibriSelenium.<init>() Starting empty call check with a timeout of PT30S
2020-05-04 10:04:23.894 FINE: [43] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<init>() Detected os as OS: LINUX
2020-05-04 10:04:23.899 INFO: [43] org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>() Writing recording to /config/recordings/escmjcfahgcjvkxo
2020-05-04 10:04:23.900 FINE: [43] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-05-04 10:04:23.901 INFO: [43] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-05-04 10:04:23.902 INFO: [43] 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-05-04 10:04:23.902 INFO: [43] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@6d3fcac6
2020-05-04 10:04:23.903 FINE: [43] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@5aa6202e
2020-05-04 10:04:23.906 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-05-04 10:04:23.907 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-05-04 10:04:24.338 SEVERE: [53] 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=78.0.3904.97)
  (Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Linux 4.15.0-99-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: 'dfb3fd9ffb61', ip: '172.23.0.7', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-99-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.68kjvH}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:45243}, 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: 0594f05b7f8e887fdc3d12065b706133 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-05-04 10:04:24.340 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-04 10:04:24.341 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: SESSION Failed to join call
2020-05-04 10:04:24.342 INFO: [53] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error, sending error iq <iq to='jibribrewery@internal-muc.jitsi.mydomain.com/focus' id='EOzrs-35' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error'/></iq>
2020-05-04 10:04:24.343 FINE: [53] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-05-04 10:04:24.343 INFO: [53] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-05-04 10:04:24.344 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-05-04 10:04:24.344 INFO: [53] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-05-04 10:04:24.345 INFO: [53] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-05-04 10:04:24.345 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-05-04 10:04:24.356 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-05-04 10:04:24.415 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type browser
2020-05-04 10:04:24.431 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 110 log entries for type driver
2020-05-04 10:04:24.456 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-05-04 10:04:24.457 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-05-04 10:04:24.474 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-05-04 10:04:24.542 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-05-04 10:04:24.542 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-05-04 10:04:24.544 SEVERE: [53] 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 with stack: 
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)
org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt:205)
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:190)
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:254)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:205)
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:191)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:182)
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:191)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:182)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange(JibriSelenium.kt:181)
org.jitsi.jibri.selenium.JibriSelenium.access$onSeleniumStateChange(JibriSelenium.kt:112)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:166)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:112)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.selenium.SeleniumStateMachine.access$notify(SeleniumStateMachine.kt:34)
org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:79)
org.jitsi.jibri.selenium.SeleniumStateMachine$stateMachine$1$5.invoke(SeleniumStateMachine.kt:34)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.selenium.SeleniumStateMachine.transition(SeleniumStateMachine.kt:84)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:266)
anghelflorin commented 4 years ago

Recording still fails with same error after pulling latest jibri (and all others) image and restarting. Nothing has changed. Can I provide some logs if they help someone?

Hi everyone. A temporary hack for people who using proxy to internal nginx and because of that can't use letsencrypt to get valid certs:

  1. In .env replace all meet.jitsi with a domain you have cert for.
  2. Run compose with removed .jitsi-meet-cfg to recreate certs.
  3. Replace cert and key ~/.jitsi-meet-cfg/web/keys/ with fullchain.crt and private.key (cert.cfg cert.key)
  4. Set immutable flag on that files (chattr +i) to prevent these files from being replaced with self signed certs on restart.
  5. Restart web container or all if you wish.

That works for me. Hope that would be fixed soon.

did you change this in docker ? because i follow the complete procedure in docker and it didn't work

Can you please list the variables you changed? Is it enough to change XMPP_DOMAIN and XMPP_SERVER or should I also replace XMPP_AUTH_DOMAIN XMPP_MUC_DOMAIN or others? Also, do I need to expose additional ports since I'm using the public URL?

Thanks in advance,

anghelflorin commented 4 years ago

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=devops@some-domain.com

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

arunvc commented 4 years ago

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=devops@some-domain.com

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

tele-tom commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago
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 commented 4 years ago
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 commented 4 years ago

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: https://github.com/jitsi/docker-jitsi-meet/issues/540

And thanks to all contributors!

saghul commented 4 years ago

Not fatal everything works fine even with these errors.

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

arunvc commented 4 years ago

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 commented 4 years ago

Pull request

On Fri, May 8, 2020, 10:57 AM Arun notifications@github.com wrote:

Not fatal everything works fine even with these errors.

@arunvc https://github.com/arunvc Gotcha. Any chance you can send a PR?

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

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jitsi/docker-jitsi-meet/issues/240#issuecomment-625637943, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHWN3ZB3U73YXB7CLD4QUM3RQOJ45ANCNFSM4LQFBZCA .

arunvc commented 4 years ago

Ok i will work on this

aninditasadhukhan commented 4 years ago

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=jibri@auth.xmppdemo.tcgdigital.com/e7R-j4fM,from=jibribrewery@internal.auth.xmppdemo.tcgdigital.com/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.CollectionsKtMutableCollectionsKt.filterInPlace$CollectionsKtMutableCollectionsKt(MutableCollections.kt:293) kotlin.collections.CollectionsKtMutableCollectionsKt.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.CollectionsKtMutableCollectionsKt.filterInPlace$CollectionsKtMutableCollectionsKt(MutableCollections.kt:293) kotlin.collections.CollectionsKtMutableCollectionsKt.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 commented 4 years ago

@aninditasadhukhan

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

https://github.com/jitsi/docker-jitsi-meet/issues/633

mujahid1005011 commented 3 years ago

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"