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
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:e2c2158052578ead0461c23bbf0ffd8a3ea94c8ebc8f8c2711872d1e1779c298Here jitsi/jibri#354 a similar issue.
Hi @BeatSecure
no, I'm still waiting a fix and supposedly an updated docker image for jibri.
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:
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