Docker-jitsi-meet: Timed out waiting for call page to load

Created on 9 Dec 2020  路  16Comments  路  Source: jitsi/docker-jitsi-meet

Hi all,

I have been trying to fix this for several days and despite other posts with the same problem, I can't fix it

Setup:
VM 16 vCPU/8GB RAM with Ubuntu 18.04.5 LTS

Setup from scratch following instructions here https://github.com/jitsi/docker-jitsi-meet and here https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker

I'm using LE certs.

docker-compose up -d -> start correctly 4 containers

9cd99de66fb8 jitsi/jvb:latest "/init" 22 minutes ago Up 22 minutes 0.0.0.0:4443->4443/tcp, 0.0.0.0:10000->10000/udp dockerjitsimeet_jvb_1
f5a633dfe784 jitsi/jicofo:latest "/init" 22 minutes ago Up 22 minutes dockerjitsimeet_jicofo_1
fbad04518855 jitsi/web:latest "/init" 22 minutes ago Up 22 minutes 0.0.0.0:8000->80/tcp, 0.0.0.0:8443->443/tcp dockerjitsimeet_web_1
afeab35d6b47 jitsi/prosody:latest "/init" 22 minutes ago Up 22 minutes 5222/tcp, 5280/tcp, 5347/tcp dockerjitsimeet_prosody_1

I join a "test" room at https://meet.mydomain.com/test -> all right.

So then I start Jibri container

docker-compose -f jibri.yml up -d

ae194a485314 jitsi/jibri:latest "/init" 18 minutes ago Up 18 minutes dockerjitsimeet_jibri_1

all OK

When I click on Start recording, i see "prepare to record the meeting" and then "recording failed to start" after 30 seconds. Jibri logs shows "SEVERE: [79] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load"

prodosy container logs seems correct ( Client connected and Authenticated as [email protected])

`{"log":"c2s561c301adfc0 \u001b[1minfo\u001b[0m\u0009Client connected\n","stream":"stdout","time":"2020-12-09T09:48:03.790683392Z"}
{"log":"c2s561c301adfc0 \u001b[1minfo\u001b[0m\u0009Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)\n","stream":"stdout","time":"2020-12-09T09:48:04.049611959Z"}
{"log":"c2s561c301adfc0 \u001b[1minfo\u001b[0m\u0009Authenticated as [email protected]\n","stream":"stdout","time":"2020-12-09T09:48:04.110515716Z"}

==> f5a633dfe78455f84fa7a525e544dd420cac817d847ab9ef9dbaae20a4f92224/f5a633dfe78455f84fa7a525e544dd420cac817d847ab9ef9dbaae20a4f92224-json.log <==
{"log":"Jicofo 2020-12-09 09:48:04.166 INFO: [38] org.jitsi.jicofo.xmpp.BaseBrewery.log() Added brewery instance: [email protected]/jibri-instanse-742642635\n","stream":"stderr","time":"2020-12-09T09:48:04.168287367Z"}
{"log":"Jicofo 2020-12-09 09:48:04.169 INFO: [38] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Received Jibri [email protected]/jibri-instanse-742642635 status \u003cjibri-status xmlns='http://jitsi.org/protocol/jibri'\u003e\u003cbusy-status xmlns='http://jitsi.org/protocol/jibri' status='idle'/\u003e\u003chealth-status xmlns='http://jitsi.org/protocol/health' status='healthy'/\u003e\u003c/jibri-status\u003e\n","stream":"stderr","time":"2020-12-09T09:48:04.17079142Z"}
{"log":"Jicofo 2020-12-09 09:48:04.176 INFO: [38] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Jibri: [email protected]/jibri-instanse-742642635 available: true\n","stream":"stderr","time":"2020-12-09T09:48:04.177455223Z"}`

jicofo container logs

09:45 joined room "test" from my laptop via public network
09:48 started jibri container

{"log":"Jicofo 2020-12-09 09:45:24.777 INFO: [96] org.jitsi.jicofo.xmpp.FocusComponent.log() Focus request for room: [email protected]\n","stream":"stderr","time":"2020-12-09T09:45:24.778206701Z"} {"log":"Jicofo 2020-12-09 09:45:24.794 INFO: [96] org.jitsi.jicofo.FocusManager.log() Created new focus for [email protected]@auth.meet.jitsi. Conference count 1,options: channelLastN=-1 enableLipSync=false startAudioMuted=10 stereo=false enableTcc=true startVideoMuted=10 enableRemb=true openSctp=false disableRtx=false \n","stream":"stderr","time":"2020-12-09T09:45:24.794632746Z"} {"log":"Jicofo 2020-12-09 09:45:24.796 INFO: [96] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Joining the room: [email protected]\n","stream":"stderr","time":"2020-12-09T09:45:24.796514064Z"} {"log":"Jicofo 2020-12-09 09:45:24.919 INFO: [38] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@68f4431b member=ChatMember[[email protected]/98ff7c9c, jid: null]@1659736066]\n","stream":"stderr","time":"2020-12-09T09:45:24.920385896Z"} {"log":"Jicofo 2020-12-09 09:45:24.925 INFO: [38] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Granted owner to [email protected]/98ff7c9c\n","stream":"stderr","time":"2020-12-09T09:45:24.925484631Z"} {"log":"Jicofo 2020-12-09 09:45:24.926 INFO: [38] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member [email protected]/98ff7c9c joined.\n","stream":"stderr","time":"2020-12-09T09:45:24.926301785Z"} {"log":"Jicofo 2020-12-09 09:48:04.166 INFO: [38] org.jitsi.jicofo.xmpp.BaseBrewery.log() Added brewery instance: [email protected]/jibri-instanse-742642635\n","stream":"stderr","time":"2020-12-09T09:48:04.168287367Z"} {"log":"Jicofo 2020-12-09 09:48:04.169 INFO: [38] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Received Jibri [email protected]/jibri-instanse-742642635 status \u003cjibri-status xmlns='http://jitsi.org/protocol/jibri'\u003e\u003cbusy-status xmlns='http://jitsi.org/protocol/jibri' status='idle'/\u003e\u003chealth-status xmlns='http://jitsi.org/protocol/health' status='healthy'/\u003e\u003c/jibri-status\u003e\n","stream":"stderr","time":"2020-12-09T09:48:04.17079142Z"} {"log":"Jicofo 2020-12-09 09:48:04.176 INFO: [38] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Jibri: [email protected]/jibri-instanse-742642635 available: true\n","stream":"stderr","time":"2020-12-09T09:48:04.177455223Z"}

jibri logs

2020-12-09 09:54:03.266 FINE: [26] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status 2020-12-09 09:54:45.045 FINE: [68] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [[email protected]/Hot7DiFw,[email protected]/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL0hvdDdEaUZ3AGQxcWRQLTQ3MwAON/gmkK26PuN2mW+OBblg,type=set,] 2020-12-09 09:54:45.049 INFO: [68] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='[email protected]/Hot7DiFw' from='[email protected]/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpL0hvdDdEaUZ3AGQxcWRQLTQ3MwAON/gmkK26PuN2mW+OBblg' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='[email protected]' session_id='acawemsnujfawuww' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi] 2020-12-09 09:54:45.051 INFO: [68] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request, starting service 2020-12-09 09:54:45.083 INFO: [68] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=test, urlParams=[]) 2020-12-09 09:54:45.085 INFO: [68] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=test, urlParams=[])), sessionId=acawemsnujfawuww, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, username=recorder, password=2e512e19ba74d75ae9ef5228cd18bc59)) 2020-12-09 09:54:45.094 FINE: [68] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.call-status-checks.default-call-empty-timeout' from source 'config' as type java.time.Duration 2020-12-09 09:54:45.098 FINE: [68] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.call-status-checks.default-call-empty-timeout' from source 'config' as type java.time.Duration 2020-12-09 09:54:45.116 FINE: [68] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String> 2020-12-09 09:54:45.117 FINE: [68] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String> 2020-12-09 09:54:46.572 INFO: [68] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS 2020-12-09 09:54:46.614 FINE: [68] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<init>() Detected os as OS: LINUX 2020-12-09 09:54:46.625 FINE: [68] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers: LambdaSupplier: 'JibriConfig::recordingDirectory' ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config' 2020-12-09 09:54:46.625 FINE: [68] org.jitsi.jibri.config.debug() LambdaSupplier: Trying to retrieve value via JibriConfig::recordingDirectory 2020-12-09 09:54:46.626 FINE: [68] org.jitsi.jibri.config.debug() LambdaSupplier: 'JibriConfig::recordingDirectory': found value 2020-12-09 09:54:46.626 FINE: [68] org.jitsi.jibri.config.debug() FallbackSupplier: value found via LambdaSupplier: 'JibriConfig::recordingDirectory' 2020-12-09 09:54:46.627 FINE: [68] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers: LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath' ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config' 2020-12-09 09:54:46.628 FINE: [68] org.jitsi.jibri.config.debug() LambdaSupplier: Trying to retrieve value via JibriConfig::finalizeRecordingScriptPath 2020-12-09 09:54:46.628 FINE: [68] org.jitsi.jibri.config.debug() LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath': found value 2020-12-09 09:54:46.629 FINE: [68] org.jitsi.jibri.config.debug() FallbackSupplier: value found via LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath' 2020-12-09 09:54:46.629 INFO: [68] org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>() Writing recording to /config/recordings/acawemsnujfawuww, finalize script path /config/finalize.sh 2020-12-09 09:54:46.635 FINE: [68] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording 2020-12-09 09:54:46.636 INFO: [68] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY 2020-12-09 09:54:46.637 FINE: [68] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status 2020-12-09 09:54:46.638 INFO: [68] 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-12-09 09:54:46.638 FINE: [68] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@4f63bce7 2020-12-09 09:54:46.638 FINE: [68] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@66238be2 2020-12-09 09:54:46.641 INFO: [68] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ 2020-12-09 09:54:46.643 FINE: [51] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri 2020-12-09 09:54:46.644 FINE: [51] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health 2020-12-09 09:54:48.577 FINE: [79] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Visiting url https://meet.jitsi/test#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-12-09 09:54:50.263 FINE: [79] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: Cannot read property 'isJoined' of undefined [last line repeat for multiple time] 2020-12-09 09:55:20.389 FINE: [79] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: Cannot read property 'isJoined' of undefined 2020-12-09 09:55:20.400 SEVERE: [79] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load 2020-12-09 09:55:20.406 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call 2020-12-09 09:55:20.408 INFO: [79] 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-12-09 09:55:20.410 INFO: [79] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq to='[email protected]/focus' id='868gQ-52' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq> 2020-12-09 09:55:20.411 FINE: [79] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording 2020-12-09 09:55:20.412 INFO: [79] org.jitsi.jibri.JibriManager.stopService() Stopping the current service 2020-12-09 09:55:20.412 INFO: [79] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer 2020-12-09 09:55:20.414 INFO: [79] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process 2020-12-09 09:55:20.414 INFO: [79] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null 2020-12-09 09:55:20.415 INFO: [79] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium 2020-12-09 09:55:20.430 INFO: [79] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: [] 2020-12-09 09:55:20.489 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving call and quitting browser 2020-12-09 09:55:20.489 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Recurring call status checks cancelled 2020-12-09 09:55:20.511 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 22 log entries for type browser 2020-12-09 09:55:20.681 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 1163 log entries for type driver 2020-12-09 09:55:20.994 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client 2020-12-09 09:55:20.994 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call 2020-12-09 09:55:21.052 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver 2020-12-09 09:55:21.134 INFO: [79] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit 2020-12-09 09:55:21.135 INFO: [79] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording 2020-12-09 09:55:31.144 SEVERE: [79] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Timed out waiting for process logger task to complete 2020-12-09 09:55:31.145 INFO: [79] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Recording finalize script finished with exit value 0 2020-12-09 09:55:31.147 FINE: [79] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers: LambdaSupplier: 'JibriConfig::singleUseMode' ConfigSourceSupplier: key: 'jibri.single-use-mode', type: 'kotlin.Boolean', source: 'config' 2020-12-09 09:55:31.147 FINE: [79] org.jitsi.jibri.config.debug() LambdaSupplier: Trying to retrieve value via JibriConfig::singleUseMode 2020-12-09 09:55:31.148 FINE: [79] org.jitsi.jibri.config.debug() FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::singleUseMode': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class kotlin.KotlinNullPointerException 2020-12-09 09:55:31.148 FINE: [79] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.single-use-mode' from source 'config' as type kotlin.Boolean 2020-12-09 09:55:31.150 FINE: [79] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.single-use-mode' from source 'config' as type kotlin.Boolean 2020-12-09 09:55:31.151 FINE: [79] org.jitsi.jibri.config.debug() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.single-use-mode', type: 'kotlin.Boolean', source: 'config' 2020-12-09 09:55:31.151 INFO: [79] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE 2020-12-09 09:55:31.152 FINE: [79] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status 2020-12-09 09:55:31.152 INFO: [79] 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-12-09 09:55:31.153 FINE: [79] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@56777e11 2020-12-09 09:55:31.153 FINE: [79] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@4f63bce7 2020-12-09 09:55:31.157 FINE: [51] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri 2020-12-09 09:55:31.158 FINE: [51] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health

Browser log inside jibri container shows this SEVERE message:
2020-12-09 09:58:42.639 INFO: [97] browser.leaveCallAndQuitBrowser() [2020-12-09T09:58:42+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 0 WebSocket connection to 'wss://meet.mydomain.com/xmpp-websocket?room=test' failed: Error during WebSocket handshake: Unexpected response code: 404

Other useful settings:

prosody/config/conf.d/jitsi-meet.cfg.lua: c2s_require_encryption = false
prosody/config/prosody.cfg.lua:c2s_require_encryption = false

Inside prosoy container -> find /config/data/meet%2ejitsi/accounts -type f -exec basename {} .dat \; -> do not find file or directory

Jibri shouldn't register on startup?

My .env file

JICOFO_COMPONENT_SECRET=3b6e6baa4e0196064762a49749c8f2ba
JICOFO_AUTH_PASSWORD=296e0430ddc832035de7e1522b696198
JVB_AUTH_PASSWORD=fcb194d012dcf672b3252db8fd7c0a97
JIGASI_XMPP_PASSWORD=d1c6790c5deed1704ebd4c7acd4bd332
JIBRI_RECORDER_PASSWORD=2e512e19ba74d75ae9ef5228cd18bc59
JIBRI_XMPP_PASSWORD=b798ca0b0222a555e5f70eea8e256617

CONFIG=~/.jitsi-meet-cfg
HTTP_PORT=8000
HTTPS_PORT=8443
TZ=UTC
PUBLIC_URL=https://meet.mydomain.com
DOCKER_HOST_ADDRESS=XX.YY.ZZ.KK

ENABLE_LETSENCRYPT=1
LETSENCRYPT_DOMAIN=meet.mydomain.com
[email protected]
LETSENCRYPT_USE_STAGING=1

ETHERPAD_TITLE="Video Chat"
ETHERPAD_DEFAULT_PAD_TEXT="Welcome to Web Chat!\n\n"
ETHERPAD_SKIN_NAME="colibris"
ETHERPAD_SKIN_VARIANTS="super-light-toolbar super-light-editor light-background full-width-editor"

ENABLE_AUTH=1
AUTH_TYPE=internal

XMPP_DOMAIN=meet.jitsi
XMPP_SERVER=xmpp.meet.jitsi
XMPP_BOSH_URL_BASE=http://xmpp.meet.jitsi:5280
XMPP_AUTH_DOMAIN=auth.meet.jitsi
XMPP_MUC_DOMAIN=muc.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
XMPP_GUEST_DOMAIN=guest.meet.jitsi
XMPP_MODULES=
XMPP_MUC_MODULES=
XMPP_INTERNAL_MUC_MODULES=
JVB_BREWERY_MUC=jvbbrewery
JVB_AUTH_USER=jvb
JVB_STUN_SERVERS=meet-jit-si-turnrelay.jitsi.net:443
JVB_PORT=10000
JVB_TCP_HARVESTER_DISABLED=true
JVB_TCP_PORT=4443
JVB_TCP_MAPPED_PORT=4443

JICOFO_AUTH_USER=focus

JIGASI_XMPP_USER=jigasi
JIGASI_BREWERY_MUC=jigasibrewery
JIGASI_PORT_MIN=20000
JIGASI_PORT_MAX=20050

ENABLE_RECORDING=1
XMPP_RECORDER_DOMAIN=recorder.meet.jitsi
JIBRI_RECORDER_USER=recorder
JIBRI_RECORDING_DIR=/config/recordings
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh
JIBRI_XMPP_USER=jibri
JIBRI_BREWERY_MUC=jibribrewery
JIBRI_PENDING_TIMEOUT=90
JIBRI_STRIP_DOMAIN_JID=muc
JIBRI_LOGS_DIR=/config/logs

ENABLE_HTTP_REDIRECT=1
RESTART_POLICY=unless-stopped

Can someone help me to fix this issue?

Thank you
SB

Most helpful comment

Hi saghul,

great news! Setting XMPP_CROSSDOMAIN=true in .env solved my issue. Thank you!

Jibri start recording but when I stop recording we have:

2020-12-10 14:18:02.113 INFO: [62] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-12-10 14:18:02.119 SEVERE: [62] org.jitsi.jibri.util.ProcessWrapper.stopAndWaitFor() Error stopping process: java.io.IOException: Cannot run program "kill": error=2, No such file or directory with stack: 
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

and mp4 file is corrupted.

I'm using latest jitsi/jibri:stable-5142-3
Digest:sha256:e2c2158052578ead0461c23bbf0ffd8a3ea94c8ebc8f8c2711872d1e1779c298

Here https://github.com/jitsi/jibri/pull/354 a similar issue.

Thank you
SB

All 16 comments

Staging Let's Encrypt certs are not valid, so they probably trigger a certificate error. Use the real ones.

Hi saghul,

thank you for your reply and patience.

I tried also with real cert certificates, same issue.

jibri
2020-12-09 11:59:59.851 SEVERE: [65] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load

My suspect is on LEs certificate, issued for meet.mydomain.com (and not valid for meet.jitsi internal domain)

Inside jibri container, I see this:

root@326bc41be181:/# curl https://meet.jitsi
curl: (60) SSL: no alternative certificate subject name matches target host name 'meet.jitsi'

root@326bc41be181:/# curl -k -s https://meet.jitsi

<html` itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">

[cut]

    <div id="react"></div>
  </body>
</html>

BTW chrome was launched with --ignore-certificate-errors , so I expect to ignore this mismatch.

Thank you
SB

The jibri container should be configured to skip cert checks already, did you make any changes to it?

No changes to jibri container.

jibri.yml

`
version: '3'

services:
jibri:
image: jitsi/jibri:latest
restart: ${RESTART_POLICY}
volumes:
- ${CONFIG}/jibri:/config:Z
- /dev/shm:/dev/shm
cap_add:
- SYS_ADMIN
- NET_BIND_SERVICE
devices:
- /dev/snd:/dev/snd
environment:
- XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_RECORDER_DOMAIN
- XMPP_SERVER
- XMPP_DOMAIN
- JIBRI_XMPP_USER
- JIBRI_XMPP_PASSWORD
- JIBRI_BREWERY_MUC
- JIBRI_RECORDER_USER
- JIBRI_RECORDER_PASSWORD
- JIBRI_RECORDING_DIR
- JIBRI_FINALIZE_RECORDING_SCRIPT_PATH
- JIBRI_STRIP_DOMAIN_JID
- JIBRI_LOGS_DIR
- DISPLAY=:0
- TZ
networks:
meet.jitsi:

networks:
meet.jitsi:
`

2020-12-09 09:58:42.639 INFO: [97] browser.leaveCallAndQuitBrowser() [2020-12-09T09:58:42+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 0 WebSocket connection to 'wss://meet.mydomain.com/xmpp-websocket?room=test' failed: Error during WebSocket handshake: Unexpected response code: 404

This suggests your meetings are not really working. Are they? Do test more than 2 participants.

Unfortunately same error.

From browser.0.txt | grep SEVERE

2020-12-09 13:44:13.029 INFO: [284] browser.leaveCallAndQuitBrowser() [2020-12-09T13:43:44+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 0 WebSocket connection to 'wss://meet.mydomain.com/xmpp-websocket?room=test' failed: Error during WebSocket handshake: Unexpected response code: 404 2020-12-09 13:44:13.030 INFO: [284] browser.leaveCallAndQuitBrowser() [2020-12-09T13:43:44+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 9:28747 "2020-12-09T13:43:44.748Z" "[JitsiMeetJS.js]" "\u003CObject.getGlobalOnErrorHandler>: " "UnhandledError: null" "Script: null" "Line: null" "Column: null" "StackTrace: " Error: Strophe: Websocket error [object Event] 2020-12-09 13:44:13.030 INFO: [284] browser.leaveCallAndQuitBrowser() [2020-12-09T13:43:44+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 9:28747 "2020-12-09T13:43:44.749Z" "[modules/xmpp/strophe.util.js]" "\u003CObject.r.Strophe.log>: " "Strophe: Websocket error [object Event]" 2020-12-09 13:44:13.030 INFO: [284] browser.leaveCallAndQuitBrowser() [2020-12-09T13:43:44+0000] [SEVERE] https://meet.jitsi/libs/app.bundle.min.js?v=4466 109:11934 "2020-12-09T13:43:44.754Z" "[connection.js]" "\u003Ca.d>: " "CONNECTION FAILED:" "connection.otherError" 2020-12-09 13:44:13.030 INFO: [284] browser.leaveCallAndQuitBrowser() [2020-12-09T13:43:44+0000] [SEVERE] https://meet.jitsi/libs/app.bundle.min.js?v=4466 109:11934 "2020-12-09T13:43:44.769Z" "[features/base/connection]" "connection.otherError"

Consider that I recently setup up Jitsi+Jibri on Ubuntu VMs (one for Jitsi + one for Jibri) and it's perflectly working ( but limited to one jibri recording session). This is the reason why i'm tryng docker setup to scale jibri containers.
In this setup, Jibri can record also with 1 partecipant.

Let me know if I can provide more details

Thank you
SB

Unexpected response code: 404

Ah wait. Can you update to latest stable (-3) ? That should be fixed, it broke when you upgraded. You can also remove the CONFIG volume and start from scratch.

No luck.

rm -rf ~/.jitsi-meet-cfg
git pull origin master
git log -1

commit af6f3ac69d0ef01786a46c000922f711aad9e55c (HEAD -> master, origin/master, origin/HEAD)
Author: Sa煤l Ibarra Corretg茅 <[email protected]>
Date:   Wed Dec 9 13:33:49 2020 +0100

docker system prune -a

(clean start point)

mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
docker-compose up -d
docker-compose -f jibri.yml up -d

Jitsi+LE OK -> pc laptop join "test" room, start recording ... timeout

Same errors from log.0.txt

2020-12-09 14:45:56.562 FINE: [70] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: Cannot read property 'isJoined' of undefined
2020-12-09 14:45:56.569 SEVERE: [70] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load

and from browser.0.txt

root@meet:~/.jitsi-meet-cfg/jibri/logs# grep SEVERE browser.0.txt
2020-12-09 14:45:56.670 INFO: [70] browser.leaveCallAndQuitBrowser() [2020-12-09T14:45:28+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 0 WebSocket connection to 'wss://meet.mydomain.com/xmpp-websocket?room=test' failed: Error during WebSocket handshake: Unexpected response code: 404
2020-12-09 14:45:56.670 INFO: [70] browser.leaveCallAndQuitBrowser() [2020-12-09T14:45:28+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 9:28747 "2020-12-09T14:45:28.201Z" "[JitsiMeetJS.js]" "\u003CObject.getGlobalOnErrorHandler>: " "UnhandledError: null" "Script: null" "Line: null" "Column: null" "StackTrace: " Error: Strophe: Websocket error [object Event]
2020-12-09 14:45:56.670 INFO: [70] browser.leaveCallAndQuitBrowser() [2020-12-09T14:45:28+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 9:28747 "2020-12-09T14:45:28.202Z" "[modules/xmpp/strophe.util.js]" "\u003CObject.r.Strophe.log>: " "Strophe: Websocket error [object Event]"
2020-12-09 14:45:56.671 INFO: [70] browser.leaveCallAndQuitBrowser() [2020-12-09T14:45:28+0000] [SEVERE] https://meet.jitsi/libs/app.bundle.min.js?v=4466 109:11934 "2020-12-09T14:45:28.206Z" "[connection.js]" "\u003Ca.d>: " "CONNECTION FAILED:" "connection.otherError"
2020-12-09 14:45:56.671 INFO: [70] browser.leaveCallAndQuitBrowser() [2020-12-09T14:45:28+0000] [SEVERE] https://meet.jitsi/libs/app.bundle.min.js?v=4466 109:11934 "2020-12-09T14:45:28.219Z" "[features/base/connection]" "connection.otherError"

That's really weird. Can you have 3 participants join the conference no problem?

Yes, confirmed. Three partecipants can join an audio/video call and everything works correctly.

I continue to investigate, as soon as I find something I update this post

Thank you

Hi saghul,

first issue may be fixed: SSL cert returned wasn't correct, due to network configuration. Fixed with a static entry in /etc/hosts file inside jibri container.

BTW, Jibri can't start recording:

Now I have on Jibri

2020-12-09 17:25:51.248 INFO: [175] browser.leaveCallAndQuitBrowser() [2020-12-09T17:25:22+0000] [SEVERE] https://meet.jitsi/libs/lib-jitsi-meet.min.js?v=4466 0 WebSocket connection to 'wss://meet.mydomain.com/xmpp-websocket?room=test' failed: Error during WebSocket handshake: Unexpected response code: **403**

and on web container

{"log":"192.168.160.6 - - [10/Dec/2020:08:20:29 +0000] \"GET /xmpp-websocket?room=test 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\"\n","stream":"stdout","time":"2020-12-10T08:20:29.939281994Z"}

Inside Jibri container

root@070cfacab301:/# curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: meet.mydomain.com" -H "Origin: http://www.websocket.org" https://meet.mydomain.com/xmpp-websocket?room=test   
HTTP/2 200 
server: nginx
date: Thu, 10 Dec 2020 08:47:34 GMT
content-type: text/html
vary: Accept-Encoding
strict-transport-security: max-age=63072000
x-content-type-options: nosniff
x-xss-protection: 1; mode=block

<!DOCTYPE html><html><head><title>Websocket</title></head><body>
                        <p>It works! Now point your WebSocket client to this URL to connect to Prosody.</p>

Any idea?

Thank you

I think you may need to set XMPP_CROSSDOMAIN to "true"

Hi saghul,

great news! Setting XMPP_CROSSDOMAIN=true in .env solved my issue. Thank you!

Jibri start recording but when I stop recording we have:

2020-12-10 14:18:02.113 INFO: [62] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-12-10 14:18:02.119 SEVERE: [62] org.jitsi.jibri.util.ProcessWrapper.stopAndWaitFor() Error stopping process: java.io.IOException: Cannot run program "kill": error=2, No such file or directory with stack: 
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

and mp4 file is corrupted.

I'm using latest jitsi/jibri:stable-5142-3
Digest:sha256:e2c2158052578ead0461c23bbf0ffd8a3ea94c8ebc8f8c2711872d1e1779c298

Here https://github.com/jitsi/jibri/pull/354 a similar issue.

Thank you
SB

great news! Setting XMPP_CROSSDOMAIN=true in .env solved my issue. Thank you!

Good to know. I'll add a fix for that so it doesn't need to be explicitly specified.

Hi,

we have this issue as well. The recording is working but the mp4 file is corrupted.
Do you have a fix for this or a workaround?

Jibri start recording but when I stop recording we have:

2020-12-10 14:18:02.113 INFO: [62] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-12-10 14:18:02.119 SEVERE: [62] org.jitsi.jibri.util.ProcessWrapper.stopAndWaitFor() Error stopping process: java.io.IOException: Cannot run program "kill": error=2, No such file or directory with stack: 
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

and mp4 file is corrupted.

I'm using latest jitsi/jibri:stable-5142-3
Digest:sha256:e2c2158052578ead0461c23bbf0ffd8a3ea94c8ebc8f8c2711872d1e1779c298

Here jitsi/jibri#354 a similar issue.

Hi @BeatSecure

no, I'm still waiting a fix and supposedly an updated docker image for jibri.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kheir95 picture kheir95  路  6Comments

mrWodoo picture mrWodoo  路  5Comments

chovy picture chovy  路  11Comments

menzbua picture menzbua  路  12Comments

0187773933 picture 0187773933  路  7Comments