Jibri does not record

Hi,
Log Jibri:

2020-11-17 11:51:07.819 INFO: [1] org.jitsi.jibri.Main.handleCommandLineArgs() Jibri run with args [--config, /etc/jitsi/jibri/config.json]
2020-11-17 11:51:08.042 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig() Checking legacy config file /etc/jitsi/jibri/config.json
2020-11-17 11:51:08.042 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig() Legacy config file /etc/jitsi/jibri/config.json doesn't exist
2020-11-17 11:51:08.666 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Companion.fromConfig() got jwtConfig: {}

2020-11-17 11:51:08.666 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Companion.fromConfig() Unable to create JwtInfo: com.typesafe.config.ConfigException$Missing: reference.conf @ jar:file:/opt/jitsi/jibri/jibri.jar!/reference.conf: 52:
 No configuration setting found for key 'signing-key-path'
2020-11-17 11:51:08.763 INFO: [1] org.jitsi.jibri.Main.main() Using port 8001 for internal HTTP API
2020-11-17 11:51:08.773 FINE: [19] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-11-17 11:51:09.023 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-11-17 11:51:09.029 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() Connecting to xmpp environment on conferenze2.eraprm.local with config XmppEnvironmentConfig(name=eb-environment, xmppServerHosts=[conferenze2.eraprm.local], xmpp
Domain=conferenze2.eraprm.local, controlLogin=XmppCredentials(domain=auth.conferenze2.eraprm.local, username=jibri, password=jibriauthpass!), controlMuc=XmppMuc(domain=internal.auth.conferenze2.eraprm.local, roomName=JibriBrewery, nickna
me=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.conferenze2.eraprm.local, username=recorder, password=jibrirecorderpass!), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)
2020-11-17 11:51:09.030 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-11-17 11:51:09.058 INFO: [1] org.jitsi.jibri.Main.main() Using port 8002 for HTTP API
2020-11-17 11:51:09.059 WARNING: [28] org.jitsi.xmpp.mucclient.MucClient.log() Disabling certificate verification!
2020-11-17 11:51:09.265 INFO: [28] org.jitsi.xmpp.mucclient.MucClient.log() Connected.
2020-11-17 11:51:09.265 INFO: [28] org.jitsi.xmpp.mucclient.MucClient.log() Logging in.
2020-11-17 11:51:09.346 INFO: [28] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: jibribrewery@internal.auth.conferenze2.eraprm.local
2020-11-17 11:51:23.598 INFO: [43] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='jibri@auth.conferenze2.eraprm.local/7UKznOCD' from='jibribrewery@internal.auth.conferenze2.eraprm.local/focus' id='amlicmlAYXV0a
C5jb25mZXJlbnplMi5lcmFwcm0ubG9jYWwvN1VLem5PQ0QAYk9zcGctNDg3MwCH9BtTbgiirwIyYxSyweDE' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='pippo@conference.conferenze2.eraprm.local' session_
id='ohjmoxuvieatkiqg' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=conferenze2.eraprm.local hostname=conferenze2.eraprm.local]
2020-11-17 11:51:23.599 INFO: [43] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request, starting service
2020-11-17 11:51:23.708 INFO: [43] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://conferenze2.eraprm.local, callName=pippo, urlParams=[])
2020-11-17 11:51:23.709 INFO: [43] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://conferenze2.eraprm.local
, callName=pippo, urlParams=[])), sessionId=ohjmoxuvieatkiqg, callLoginParams=XmppCredentials(domain=recorder.conferenze2.eraprm.local, username=recorder, password=jibrirecorderpass!))
2020-11-17 11:51:24.294 INFO: [43] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-11-17 11:51:24.324 FINE: [43] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<init>() Detected os as OS: LINUX
2020-11-17 11:51:24.331 INFO: [43] org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>() Writing recording to /mnt/rec/ohjmoxuvieatkiqg, finalize script path /usr/local/bin/finalize_recording.sh
2020-11-17 11:51:24.335 FINE: [43] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-11-17 11:51:24.336 INFO: [43] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-11-17 11:51:24.337 FINE: [43] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-11-17 11:51:24.337 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-11-17 11:51:24.339 INFO: [43] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ
2020-11-17 11:51:24.629 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': Acce
ss is denied for this document.
  (Session info: chrome=86.0.4240.198)
  (Driver info: chromedriver=86.0.4240.22 (398b0743353ff36fb1b82468f63a3a93b4e2e89e-refs/branch-heads/4240@{#378}),platform=Linux 5.4.0-54-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: 'jibri', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.0-54-generic', java.version: '11.0.9.1'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 86.0.4240.22 (398b0743353ff..., userDataDir: /tmp/.com.g
oogle.Chrome.ON7sgB}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:43109}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmu
lationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeap
Snapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 86.0.4240.198, webStorageEnabled: true, webauthn:virtualAuthenti
cators: true}
Session ID: c61422b4f0ac0f0cd7e4812f8f08196a with stack:
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
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:161)
org.jitsi.jibri.selenium.JibriSelenium.access$setLocalStorageValues(JibriSelenium.kt:118)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:249)
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base/java.lang.Thread.run(Thread.java:834)

2020-11-17 11:51:24.631 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2020-11-17 11:51:24.632 INFO: [53] 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-11-17 11:51:24.633 INFO: [53] 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='jibribrewery@internal.auth.conferenze2.eraprm.loc
al/focus' id='iDaV7-22' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
2020-11-17 11:51:24.633 FINE: [53] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-11-17 11:51:24.634 INFO: [53] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-11-17 11:51:24.634 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-11-17 11:51:24.635 INFO: [53] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-11-17 11:51:24.635 INFO: [53] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-11-17 11:51:24.636 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-11-17 11:51:24.649 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-11-17 11:51:24.696 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving call and quitting browser
2020-11-17 11:51:24.696 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Recurring call status checks cancelled
2020-11-17 11:51:24.708 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type browser
2020-11-17 11:51:24.730 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 112 log entries for type driver
2020-11-17 11:51:24.766 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-11-17 11:51:24.767 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-11-17 11:51:24.784 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-11-17 11:51:24.869 INFO: [53] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-11-17 11:51:24.871 INFO: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-11-17 11:51:24.878 SEVERE: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/usr/local/bin/finalize_recording.sh": error=13, Permission de
nied with stack:
java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)
org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt:212)
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:197)
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:262)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:210)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:86)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:293)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:284)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.service.impl.StatefulJibriService.onServiceStateChange(StatefulJibriService.kt:40)
org.jitsi.jibri.service.impl.StatefulJibriService.access$onServiceStateChange(StatefulJibriService.kt:26)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:35)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.service.JibriServiceStateMachine.access$notify(JibriServiceStateMachine.kt:46)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:100)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:46)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.service.JibriServiceStateMachine.transition(JibriServiceStateMachine.kt:112)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:46)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:293)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:284)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange(JibriSelenium.kt:167)
org.jitsi.jibri.selenium.JibriSelenium.access$onSeleniumStateChange(JibriSelenium.kt:118)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:152)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:118)
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.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base/java.lang.Thread.run(Thread.java:834)

2020-11-17 11:51:24.886 INFO: [53] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-11-17 11:51:24.887 FINE: [53] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-11-17 11:51:24.888 INFO: [53] 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

My Finalize_recording.sh:

#!/bin/bash

RECORDINGS_DIR=$1

echo "This is a dummy finalize script" > /mnt/rec/finalize.out
echo "The script was invoked with recordings directory $RECORDINGS_DIR." >> /mnt/rec/finalize.out
echo "You should put any finalize logic (renaming, uploading to a service" >> /mnt/rec/finalize.out
echo "or storage provider, etc.) in this script" >> /mnt/rec/finalize.out

exit 0

Log Jicofo:

Jicofo 2020-11-17 11:51:20.056 INFO: [80] org.jitsi.jicofo.xmpp.FocusComponent.log() Focus request for room: pippo@conference.conferenze2.eraprm.local
Jicofo 2020-11-17 11:51:20.056 INFO: [80] org.jitsi.jicofo.auth.AbstractAuthAuthority.log() Authenticated jid: gze7tiphpkn8s41c@guest.conferenze2.eraprm.local/hT-N3L76 with session: AuthSession[ID=admin@conferenze2.eraprm.local, JID=gze7
tiphpkn8s41c@guest.conferenze2.eraprm.local/hT-N3L76, SID=0f19ff6f-3d2c-47ca-b58a-7125f18329b0, MUID=8a749ec5f3deb63b7251f817b4a7126a, LIFE_TM_SEC=23, R=pippo@conference.conferenze2.eraprm.local]@1420481962
Jicofo 2020-11-17 11:51:20.056 INFO: [80] org.jitsi.jicofo.auth.AbstractAuthAuthority.log() Jid gze7tiphpkn8s41c@guest.conferenze2.eraprm.local/hT-N3L76 authenticated as: admin@conferenze2.eraprm.local
Jicofo 2020-11-17 11:51:20.056 INFO: [80] org.jitsi.jicofo.FocusManager.log() Created new focus for pippo@conference.conferenze2.eraprm.local@auth.conferenze2.eraprm.local. Conference count 1,options: channelLastN=-1 enableLipSync=false
openSctp=false disableRtx=false
Jicofo 2020-11-17 11:51:20.057 INFO: [80] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Joining the room: pippo@conference.conferenze2.eraprm.local
Jicofo 2020-11-17 11:51:20.094 INFO: [30] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@5dfb4cb1 member=ChatMember[
pippo@conference.conferenze2.eraprm.local/1ed61ab5, jid: null]@484105606]
Jicofo 2020-11-17 11:51:20.098 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member pippo@conference.conferenze2.eraprm.local/1ed61ab5 joined.
Jicofo 2020-11-17 11:51:23.594 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Starting session with Jibri jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname
Jicofo 2020-11-17 11:51:23.594 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Starting Jibri jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname for stream ID: null in room: pippo@conference.conferenze2.er
aprm.local
Jicofo 2020-11-17 11:51:24.341 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Received Jibri jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname status <jibri-status xmlns='http://jitsi.org/protocol/jibri'
><busy-status xmlns='http://jitsi.org/protocol/jibri' status='busy'/><health-status xmlns='http://jitsi.org/protocol/health' status='healthy'/></jibri-status>
Jicofo 2020-11-17 11:51:24.341 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Jibri: jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname available: false
Jicofo 2020-11-17 11:51:24.385 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: <iq to='focus@auth.conferenze2.eraprm.local/focus13944088503' from='jibribrewery@internal.auth.conferenze2.eraprm.
local/jibri-nickname' id='bOspg-4873' type='result'><jibri xmlns='http://jitsi.org/protocol/jibri' status='pending'/></iq> for pippo@conference.conferenze2.eraprm.local
Jicofo 2020-11-17 11:51:24.385 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname has status pending and failure reason null,
current Jibri jid is jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname
Jicofo 2020-11-17 11:51:24.385 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Started Jibri session
Jicofo 2020-11-17 11:51:24.635 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: <iq to='focus@auth.conferenze2.eraprm.local/focus13944088503' from='jibribrewery@internal.auth.conferenze2.eraprm.
local/jibri-nickname' id='Zm9jdXNAYXV0aC5jb25mZXJlbnplMi5lcmFwcm0ubG9jYWwvZm9jdXMxMzk0NDA4ODUwMwBpRGFWNy0yMgDvk1NahvNGVnY0QUFozNwy' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retr
y='true'/></iq> for pippo@conference.conferenze2.eraprm.local
Jicofo 2020-11-17 11:51:24.636 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname has status off and failure reason error, cur
rent Jibri jid is jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname
Jicofo 2020-11-17 11:51:24.636 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri is no longer pending, cancelling pending timeout task
Jicofo 2020-11-17 11:51:24.636 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri failed, trying to fall back to another Jibri
Jicofo 2020-11-17 11:51:24.636 SEVERE: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Unable to find an available Jibri, can't start
Jicofo 2020-11-17 11:51:24.636 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Failed to fall back to another Jibri, this session has now failed: org.jitsi.jicofo.recording.jibri.JibriSession$StartException: All Jibri ins
tances are busy
org.jitsi.jicofo.recording.jibri.JibriSession$StartException: All Jibri instances are busy
        at org.jitsi.jicofo.recording.jibri.JibriSession.startInternal(JibriSession.java:359)
        at org.jitsi.jicofo.recording.jibri.JibriSession.start(JibriSession.java:335)
        at org.jitsi.jicofo.recording.jibri.JibriSession.retryRequestWithAnotherJibri(JibriSession.java:649)
        at org.jitsi.jicofo.recording.jibri.JibriSession.handleJibriStatusUpdate(JibriSession.java:719)
        at org.jitsi.jicofo.recording.jibri.JibriSession.processJibriIqFromJibri(JibriSession.java:501)
        at org.jitsi.jicofo.recording.jibri.JibriSession.processJibriIqRequestFromJibri(JibriSession.java:482)
        at org.jitsi.jicofo.recording.jibri.CommonJibriStuff.handleIQRequest(CommonJibriStuff.java:247)
        at org.jitsi.jicofo.recording.jibri.OperationSetJibri.handleIQRequest(OperationSetJibri.java:98)
        at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1188)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Jicofo 2020-11-17 11:51:24.637 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Got jibri status off and failure error
Jicofo 2020-11-17 11:51:24.637 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Publishing new jibri-recording-status: <jibri-recording-status xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' se
ssion_id='ohjmoxuvieatkiqg' recording_mode='file'/> in: pippo@conference.conferenze2.eraprm.local
Jicofo 2020-11-17 11:51:24.638 INFO: [327] org.jitsi.jicofo.recording.jibri.JibriSession.log() Cleaning up current JibriSession
Jicofo 2020-11-17 11:51:24.897 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Received Jibri jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname status <jibri-status xmlns='http://jitsi.org/protocol/jibri'
><busy-status xmlns='http://jitsi.org/protocol/jibri' status='idle'/><health-status xmlns='http://jitsi.org/protocol/health' status='healthy'/></jibri-status>
Jicofo 2020-11-17 11:51:24.898 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Jibri: jibribrewery@internal.auth.conferenze2.eraprm.local/jibri-nickname available: true
Jicofo 2020-11-17 11:52:59.585 INFO: [30] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberLeft sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@5dfb4cb1 member=ChatMember[pi
ppo@conference.conferenze2.eraprm.local/1ed61ab5, jid: gze7tiphpkn8s41c@guest.conferenze2.eraprm.local/hT-N3L76]@484105606]
Jicofo 2020-11-17 11:52:59.585 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member pippo@conference.conferenze2.eraprm.local/1ed61ab5 is leaving
Jicofo 2020-11-17 11:52:59.585 WARNING: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Participant not found for pippo@conference.conferenze2.eraprm.local/1ed61ab5 terminated already or never started ?
Jicofo 2020-11-17 11:52:59.591 INFO: [30] org.jitsi.jicofo.FocusManager.log() Disposed conference for room: pippo@conference.conferenze2.eraprm.local conference count: 0

Who can help me?

Recording starts but then stops immediately…

Certificates are generated internally by the server!

I am doing some tests. If everything it is ok, i will configure everything in production.

Thanks…

What are the resources for jibri? CPU/cores? RAM?

Is jibri on the same host with Jitsi or on a second host?

Hi,
thanks for the reply…

I have two VMs in my pc with virtualbox: 1 with jitsi and the second with jibri.

Jbri: 6core, 8GB Ram.

In production the configuration is different. In production there is only jitsi in DMZ under NAT and it works

Before going into production I would like to see how it works locally.

thanks…

Jibri has some problem with java11. Could you test it with Java8

2020-11-18 07:32:14.085 INFO: [1] org.jitsi.jibri.Main.handleCommandLineArgs() Jibri run with args [--config, /etc/jitsi/jibri/config.json]
2020-11-18 07:32:14.154 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig() Checking legacy config file /etc/jitsi/jibri/config.json
2020-11-18 07:32:14.154 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig() Legacy config file /etc/jitsi/jibri/config.json doesn't exist
2020-11-18 07:32:14.737 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Companion.fromConfig() got jwtConfig: {}

2020-11-18 07:32:14.737 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Companion.fromConfig() Unable to create JwtInfo: com.typesafe.config.ConfigException$Missing: reference.conf @ jar:file:/opt/jitsi/jibri/jibri.jar!/reference.conf: 52:
 No configuration setting found for key 'signing-key-path'
2020-11-18 07:32:14.844 INFO: [1] org.jitsi.jibri.Main.main() Using port 8001 for internal HTTP API
2020-11-18 07:32:14.850 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-11-18 07:32:15.091 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-11-18 07:32:15.098 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() Connecting to xmpp environment on conferenze2.eraprm.local with config XmppEnvironmentConfig(name=eb-environment, xmppServerHosts=[conferenze2.eraprm.local], xmpp
Domain=conferenze2.eraprm.local, controlLogin=XmppCredentials(domain=auth.conferenze2.eraprm.local, username=jibri, password=jibriauthpass!), controlMuc=XmppMuc(domain=internal.auth.conferenze2.eraprm.local, roomName=JibriBrewery, nickna
me=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.conferenze.eraprm.local, username=recorder, password=jibrirecorderpass!), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)
2020-11-18 07:32:15.098 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-11-18 07:32:15.115 INFO: [1] org.jitsi.jibri.Main.main() Using port 8002 for HTTP API
2020-11-18 07:32:15.116 WARNING: [26] org.jitsi.xmpp.mucclient.MucClient.log() Disabling certificate verification!
2020-11-18 07:32:15.416 INFO: [26] org.jitsi.xmpp.mucclient.MucClient.log() Connected.
2020-11-18 07:32:15.416 INFO: [26] org.jitsi.xmpp.mucclient.MucClient.log() Logging in.
2020-11-18 07:32:15.501 INFO: [26] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: jibribrewery@internal.auth.conferenze2.eraprm.local
2020-11-18 07:32:31.649 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq <iq to='jibri@auth.conferenze2.eraprm.local/7-Cdbgze' from='jibribrewery@internal.auth.conferenze2.eraprm.local/focus' id='amlicmlAYXV0a
C5jb25mZXJlbnplMi5lcmFwcm0ubG9jYWwvNy1DZGJnemUAcVBsZGktNzQ4AI/90m9chxbPjUDjGXKgQPw=' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='pippo@conference.conferenze2.eraprm.local' session_
id='anyxtubqnuwicmir' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=conferenze2.eraprm.local hostname=conferenze2.eraprm.local]
2020-11-18 07:32:31.650 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request, starting service
2020-11-18 07:32:31.775 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://conferenze2.eraprm.local, callName=pippo, urlParams=[])
2020-11-18 07:32:31.777 INFO: [41] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://conferenze2.eraprm.local
, callName=pippo, urlParams=[])), sessionId=anyxtubqnuwicmir, callLoginParams=XmppCredentials(domain=recorder.conferenze.eraprm.local, username=recorder, password=jibrirecorderpass!))
2020-11-18 07:32:32.988 INFO: [41] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2020-11-18 07:32:33.020 FINE: [41] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.<init>() Detected os as OS: LINUX
2020-11-18 07:32:33.027 INFO: [41] org.jitsi.jibri.service.impl.FileRecordingJibriService.<init>() Writing recording to /mnt/rec/anyxtubqnuwicmir, finalize script path /usr/local/bin/finalize_recording.sh
2020-11-18 07:32:33.039 FINE: [41] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
2020-11-18 07:32:33.039 INFO: [41] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2020-11-18 07:32:33.040 FINE: [41] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-11-18 07:32:33.040 INFO: [41] 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-11-18 07:32:33.042 INFO: [41] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending 'pending' response to start IQ
2020-11-18 07:32:33.538 SEVERE: [51] 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': Acce
ss is denied for this document.
  (Session info: chrome=87.0.4280.66)
  (Driver info: chromedriver=87.0.4280.20 (c99e81631faa0b2a448e658c0dbd8311fb04ddbd-refs/branch-heads/4280@{#355}),platform=Linux 5.4.0-54-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: 'jibri', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.0-54-generic', java.version: '1.8.0_275'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 87.0.4280.20 (c99e81631faa0..., userDataDir: /tmp/.com.g
oogle.Chrome.2vg2Su}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:33705}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmu
lationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeap
Snapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 87.0.4280.66, webStorageEnabled: true, webauthn:virtualAuthentic
ators: true}
Session ID: 95668c900c0d4005df2a39df187fe151 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:161)
org.jitsi.jibri.selenium.JibriSelenium.access$setLocalStorageValues(JibriSelenium.kt:118)
org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:249)
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-11-18 07:32:33.540 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2020-11-18 07:32:33.542 INFO: [51] 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-11-18 07:32:33.542 INFO: [51] 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='jibribrewery@internal.auth.conferenze2.eraprm.loc
al/focus' id='xo42Z-24' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
2020-11-18 07:32:33.543 FINE: [51] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2020-11-18 07:32:33.543 INFO: [51] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2020-11-18 07:32:33.543 INFO: [51] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2020-11-18 07:32:33.544 INFO: [51] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2020-11-18 07:32:33.544 INFO: [51] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2020-11-18 07:32:33.544 INFO: [51] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2020-11-18 07:32:33.558 INFO: [51] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording: []
2020-11-18 07:32:33.606 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving call and quitting browser
2020-11-18 07:32:33.607 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Recurring call status checks cancelled
2020-11-18 07:32:33.622 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type browser
2020-11-18 07:32:33.642 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 114 log entries for type driver
2020-11-18 07:32:33.676 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2020-11-18 07:32:33.676 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2020-11-18 07:32:33.701 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2020-11-18 07:32:33.776 INFO: [51] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2020-11-18 07:32:33.776 INFO: [51] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2020-11-18 07:32:33.778 SEVERE: [51] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/usr/local/bin/finalize_recording.sh": error=13, Permission de
nied 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:212)
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:197)
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:262)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:210)
org.jitsi.jibri.JibriManager$startService$1.invoke(JibriManager.kt:86)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:293)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:284)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.service.impl.StatefulJibriService.onServiceStateChange(StatefulJibriService.kt:40)
org.jitsi.jibri.service.impl.StatefulJibriService.access$onServiceStateChange(StatefulJibriService.kt:26)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:35)
org.jitsi.jibri.service.impl.StatefulJibriService$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.NotifyingStateMachine.notify(NotifyingStateMachine.kt:26)
org.jitsi.jibri.service.JibriServiceStateMachine.access$notify(JibriServiceStateMachine.kt:46)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:100)
org.jitsi.jibri.service.JibriServiceStateMachine$stateMachine$1$5.invoke(JibriServiceStateMachine.kt:46)
com.tinder.StateMachine.notifyOnTransition(StateMachine.kt:65)
com.tinder.StateMachine.transition(StateMachine.kt:23)
org.jitsi.jibri.service.JibriServiceStateMachine.transition(JibriServiceStateMachine.kt:112)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:46)
org.jitsi.jibri.service.impl.StatefulJibriService$registerSubComponent$1.invoke(StatefulJibriService.kt:26)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:37)
org.jitsi.jibri.util.StatusPublisher$addStatusHandler$1.invoke(StatusPublisher.kt:29)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:53)
org.jitsi.jibri.util.StatusPublisher$publishStatus$1.invoke(StatusPublisher.kt:29)
kotlin.collections.CollectionsKt__MutableCollectionsKt.filterInPlace$CollectionsKt__MutableCollectionsKt(MutableCollections.kt:293)
kotlin.collections.CollectionsKt__MutableCollectionsKt.retainAll(MutableCollections.kt:284)
org.jitsi.jibri.util.StatusPublisher.publishStatus(StatusPublisher.kt:53)
org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange(JibriSelenium.kt:167)
org.jitsi.jibri.selenium.JibriSelenium.access$onSeleniumStateChange(JibriSelenium.kt:118)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:152)
org.jitsi.jibri.selenium.JibriSelenium$1.invoke(JibriSelenium.kt:118)
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-11-18 07:32:33.779 INFO: [51] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
2020-11-18 07:32:33.779 FINE: [51] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-11-18 07:32:33.779 INFO: [51] 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-11-18 07:33:14.857 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status`Preformatted text`

root@jibri:/home/linux# java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

jibri {
    id = ""
    single-use-mode = false

    recording {
        recordings-directory = "/mnt/rec/"
        finalize-script = "/usr/local/bin/finalize_recording.sh"
    }

    chrome {
        flags = [
            "--use-fake-ui-for-media-stream",
            "--start-maximized",
            "--kiosk",
            "--enabled",
            "--disable-infobars",
            "--autoplay-policy=no-user-gesture-required"
        ]
    }

    api {
        http {
            internal-api-port = 8001
            external-api-port = 8002
        }

        xmpp {
            environments = [{
                name = "eb-environment"
                xmpp-server-hosts = ["conferenze2.eraprm.local"]
                xmpp-domain = "conferenze2.eraprm.local"

                control-muc {
                    domain = "internal.auth.conferenze2.eraprm.local"
                    room-name = "JibriBrewery"
                    nickname = "jibri-nickname"
                }

                control-login {
                    domain = "auth.conferenze2.eraprm.local"
                    username = "jibri"
                    password = "jibriauthpass!"
                }

                call-login {
                    domain = "recorder.conferenze.eraprm.local"
                    username = "recorder"
                    password = "jibrirecorderpass!"
                }

                strip-from-room-domain = "conference."
                usage-timeout = 0
                trust-all-xmpp-certs = true
            }]
        }
    }

    stats {
        enable-stats-d = true
    }

    call-status-checks {
        no-media-timeout = 30 seconds
        all-muted-timeout = 10 minutes
        default-call-empty-timeout = 30 seconds
    }
}

I uninstalled java 11 and installed 8.
Installed jibri. this guide: https://github.com/jitsi/jibri as i had done before.

Do you need other logs?

It seems that jibri can’t connect to the conference. I’m not sure but this may be a TLS certificate issue since it’s a self-signed certificate

Yes… the certificate is generated internally on the server!

Is there any way around the problem?

I would like to try!

But… this error: SEVERE: [51] 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’

and this: SEVERE: [53] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program “/usr/local/bin/finalize_recording.sh”:

always for the certificate?

Check Jibri status; is it active?

root@jibri:/home/linux# systemctl status jibri
● jibri.service - Jibri Process
Loaded: loaded (/etc/systemd/system/jibri.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-11-18 07:46:18 UTC; 27min ago
Main PID: 4043 (java)
Tasks: 46 (limit: 9450)
Memory: 190.5M
CGroup: /system.slice/jibri.service
└─4043 java -Djava.util.logging.config.file=/etc/jitsi/jibri/logging.properties -Dconfig.file=/etc/jitsi/jibri/jibri.conf -jar /opt/jitsi/jibri/jibri.jar --config /etc/jitsi/jibri/config.json

Nov 18 07:46:18 jibri systemd[1]: Started Jibri Process.
Nov 18 07:46:20 jibri launch.sh[4043]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Nov 18 07:46:20 jibri launch.sh[4043]: SLF4J: Defaulting to no-operation (NOP) logger implementation
Nov 18 07:46:20 jibri launch.sh[4043]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Nov 18 07:46:29 jibri launch.sh[4043]: Starting ChromeDriver 87.0.4280.20 (c99e81631faa0b2a448e658c0dbd8311fb04ddbd-refs/branch-heads/4280@{#355}) on port 21158
Nov 18 07:46:29 jibri launch.sh[4043]: Only local connections are allowed.
Nov 18 07:46:29 jibri launch.sh[4043]: Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
Nov 18 07:46:29 jibri launch.sh[4043]: ChromeDriver was started successfully.

Yes!

Firewall Jitsi

root@conferenze2:/home/linux# ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
10000/udp                  ALLOW       Anywhere
5222/tcp                   ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
10000/udp (v6)             ALLOW       Anywhere (v6)
5222/tcp (v6)              ALLOW       Anywhere (v6)

And I’m assuming you’ve confirmed that you created the required accounts in prosody for Jibri and additionally confirmed that you have the right values for those accounts in your Jibri.conf?

jibri {
id = “”
single-use-mode = false

    recording {
        recordings-directory = "/mnt/rec/"
        finalize-script = "/usr/local/bin/finalize_recording.sh"
#        finalize-script = ""
    }

    chrome {
        flags = [
            "--use-fake-ui-for-media-stream",
            "--start-maximized",
            "--kiosk",
            "--enabled",
            "--disable-infobars",
            "--autoplay-policy=no-user-gesture-required"
        ]
    }

    api {
        http {
            internal-api-port = 8001
            external-api-port = 8002
        }

        xmpp {
            environments = [{
                name = "eb-environment"
                xmpp-server-hosts = ["conferenze2.eraprm.local"]
                xmpp-domain = "conferenze2.eraprm.local"

                control-muc {
                    domain = "internal.auth.conferenze2.eraprm.local"
                    room-name = "JibriBrewery"
                    nickname = "jibri-nickname"
                }

                control-login {
                    domain = "auth.conferenze2.eraprm.local"
                    username = "jibri"
                    password = "jibriauthpass!"
                }

                call-login {
                    domain = "recorder.conferenze2.eraprm.local"
                    username = "recorder"
                    password = "jibrirecorderpass!"
                }

                strip-from-room-domain = "conference."
                usage-timeout = 0
                trust-all-xmpp-certs = true
            }]
        }
    }

    stats {
        enable-stats-d = true
    }

    call-status-checks {
        no-media-timeout = 30 seconds
        all-muted-timeout = 10 minutes
        default-call-empty-timeout = 30 seconds
    }
}


#!/bin/bash

RECORDINGS_DIR=$1

echo "This is a dummy finalize script" > /mnt/rec/finalize.out
echo "The script was invoked with recordings directory $RECORDINGS_DIR." >> /mnt/rec/finalize.out
echo "You should put any finalize logic (renaming, uploading to a service" >> /mnt/rec/finalize.out
echo "or storage provider, etc.) in this script" >> /mnt/rec/finalize.out

exit 0

Here are the commands with the conf file and finalize…

Those look good.

What about your Prosody configuration?

– internal muc component, meant to enable pools of jibri and jigasi clients
Component “internal.auth.example.com” “muc”
modules_enabled = {
“ping”;
}
storage = “memory”
muc_room_cache_size = 1000

VirtualHost “recorder.example.com
modules_enabled = {
“ping”;
}
authentication = “internal_plain”

And your jicofo configuration:

org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.meet.myfirewall.org
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90

Are all these good?

here it is…

thanks…

For the creation of the rooms I set the moderator. in the configuration file I set “internal_plain” and not “internal_hashed” as stated in the guide. https://jitsi.github.io/handbook/docs/devops-guide/secure-domain

Can it create problems?

I think jibri will not work with self signed certs, try adding this --ignore-certificate-errors to the chrome flags setting

1 Like

Sorry… Such as?

please…

/etc/jitsi/jibri/jibri.conf


    chrome {
        flags = [
            "--use-fake-ui-for-media-stream",
            "--start-maximized",
            "--kiosk",
            "--enabled",
            "--disable-infobars",
            "--autoplay-policy=no-user-gesture-required",
            "--ignore-certificate-errors"
        ]
    }

ahh… so simple…

in the jibri configuration file…

Ok … after lunch i try!

thanks

It worksssss…

I have to do some tests with a folder shared by a windows server. I think there are no problems. Then bring everything into production. I have to understand whether to put the server in lan and not in DMZ or in DMZ and when it finalizes copy the file to the windows server.

Last question: to be able to perform more recordings i need to have more jibri servers. But are the server configurations the same or does something change?

thank you very much…