Hi,
I installed and configured jitsi and jibri to record my meetings.
When i start the chromedriver, it report an error.(unknown error: DevToolsActivePort file doesn’t exist)
Feb 18, 2021 10:38:44 AM org.jitsi.jibri.api.xmpp.XmppApi handleStartJibriIq
SEVERE: Error starting Jibri service : org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn’t exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Driver info: chromedriver=88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}),platform=Linux 4.9.0-14-amd64 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 54 milliseconds
Build info: version: ‘unknown’, revision: ‘unknown’, time: ‘unknown’
System info: host: ‘Unknown’, ip: ‘Unknown’, os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘4.9.0-14-amd64’, java.version: ‘1.8.0_275’
Driver info: driver.version: ChromeDriver 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)
hi @akalana@Prashanth
We can start jibri now, a new error happened.
When we start record the meeting, jibri can’t join into the meeting.
org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
Are we missing some configuration? We install the jibri and jitsi-meet on different instance.
{
// NOTE: this is a SAMPLE config file, it will need to be configured with
// values from your environment
// Where recording files should be temporarily stored
"recording_directory":"/config/recordings",
// The path to the script which will be run on completed recordings
// D:\space\ai\jibri-8.0\resources\finalize_recording.sh
"finalize_recording_script_path": "/config/finalize.sh",
"xmpp_environments": [
{
// A friendly name for this environment which can be used
// for logging, stats, etc.
"name": "prod environment",
// The hosts of the XMPP servers to connect to as part of
// this environment
"xmpp_server_hosts": [
"voiptest.360-jr.com"
],
// The xmpp domain we'll connect to on the XMPP server
"xmpp_domain": "voiptest.360-jr.com",
// Jibri will login to the xmpp server as a privileged user
"control_login": {
// The domain to use for logging in
"domain": "a.voiptest.360-jr.com",
// The credentials for logging in
"username": "jibri",
"password": "test"
},
// Using the control_login information above, Jibri will join
// a control muc as a means of announcing its availability
// to provide services for a given environment
"control_muc": {
"domain": "f.voiptest.360-jr.com",
"room_name": "jibri-muc",
"nickname": "jibri-muc"
},
// All participants in a call join a muc so they can exchange
// information. Jibri can be instructed to join a special muc
// with credentials to give it special abilities (e.g. not being
// displayed to other users like a normal participant)
"call_login": {
"domain": "e.voiptest.360-jr.com",
"username": "recorder",
"password": "test"
},
// When jibri gets a request to start a service for a room, the room
// jid will look like:
// roomName@optional.prefixes.subdomain.xmpp_domain
// We'll build the url for the call by transforming that into:
// https://xmpp_domain/subdomain/roomName
// So if there are any prefixes in the jid (like jitsi meet, which
// has its participants join a muc at conference.xmpp_domain) then
// list that prefix here so it can be stripped out to generate
// the call url correctly
"room_jid_domain_string_to_strip_from_start": "muc.",
// The amount of time, in minutes, a service is allowed to continue.
// Once a service has been running for this long, it will be
// stopped (cleanly). A value of 0 means an indefinite amount
// of time is allowed
"usage_timeout": "0"
}
]
}
Log:
2021-02-19 04:06:11.732 SEVERE: [52] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Timed out waiting for call page to load
2021-02-19 04:06:11.732 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2021-02-19 04:06:11.732 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2021-02-19 04:06:11.732 INFO: [52] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq
2021-02-19 04:06:11.733 FINE: [52] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
2021-02-19 04:06:11.733 INFO: [52] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
2021-02-19 04:06:11.733 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
2021-02-19 04:06:11.734 INFO: [52] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
2021-02-19 04:06:11.734 INFO: [52] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value null
2021-02-19 04:06:11.734 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
2021-02-19 04:06:11.742 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Participants in this recording:
2021-02-19 04:06:11.745 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving call and quitting browser
2021-02-19 04:06:11.746 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Recurring call status checks cancelled
2021-02-19 04:06:11.750 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 7 log entries for type browser
2021-02-19 04:06:11.769 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 1008 log entries for type driver
2021-02-19 04:06:11.864 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Got 0 log entries for type client
2021-02-19 04:06:11.865 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Leaving web call
2021-02-19 04:06:11.877 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
2021-02-19 04:06:11.944 INFO: [52] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
2021-02-19 04:06:11.944 INFO: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
2021-02-19 04:06:11.945 SEVERE: [52] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program “/config/finalize.sh”: error=2, No such file or directory with stack:
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)
org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt: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:251)
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)
2021-02-19 04:06:11.945 INFO: [52] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY → IDLE
2021-02-19 04:06:11.946 FINE: [52] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2021-02-19 04:06:11.946 INFO: [52] 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
2021-02-19 04:06:11.946 FINE: [52] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@1cde08ab
2021-02-19 04:06:11.947 FINE: [52] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@59fa6f5d
2021-02-19 04:06:11.949 FINE: [38] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2021-02-19 04:06:11.949 FINE: [38] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
2021-02-19 04:06:26.249 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2021-02-19 04:07:26.249 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2021-02-19 04:08:26.249 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2021-02-19 04:09:26.249 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2021-02-19 04:10:26.249 FINE: [17] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
Your configuration file is wrong. Looks like you used config.json values - that config has been deprecated. You need jibri.conf. Check the relevant section here to populate your jibri.conf file appropriately - TUTORIAL - How to Install the NEW JIBRI
hi Freddie, @Freddie
Thanks for your replay.
We follow your TUTORIAL and install the jibri again.
When we start recording meeting, we meet a new problem.
root@Server-315038b6:/var/log/jitsi/jibri# sudo systemctl status jibri
● jibri.service - Jibri Process
Loaded: loaded (/etc/systemd/system/jibri.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2021-02-19 07:23:06 UTC; 1min 14s ago
Process: 9901 ExecStop=/opt/jitsi/jibri/graceful_shutdown.sh (code=exited, status=0/SUCCESS)
Main PID: 10334 (java)
Tasks: 52 (limit: 4915)
CGroup: /system.slice/jibri.service
└─10334 /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java -Djava.util.logging.config.file=/etc/jitsi/jibri/logging.properties -Dconfig.file=/etc/jitsi/jibri/jibri.conf -jar /opt
Feb 19 07:23:08 Server-315038b6 launch.sh[10334]: SLF4J: Defaulting to no-operation (NOP) logger implementation
Feb 19 07:23:08 Server-315038b6 launch.sh[10334]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Feb 19 07:23:17 Server-315038b6 launch.sh[10334]: Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 20944
Feb 19 07:23:17 Server-315038b6 launch.sh[10334]: Only local connections are allowed.
Feb 19 07:23:17 Server-315038b6 launch.sh[10334]: Please see Security Considerations - ChromeDriver - WebDriver for Chrome for suggestions on keeping ChromeDriver safe.
Feb 19 07:23:17 Server-315038b6 launch.sh[10334]: ChromeDriver was started successfully.
Feb 19 07:23:41 Server-315038b6 launch.sh[10334]: Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 17310
Feb 19 07:23:41 Server-315038b6 launch.sh[10334]: Only local connections are allowed.
Feb 19 07:23:41 Server-315038b6 launch.sh[10334]: Please see Security Considerations - ChromeDriver - WebDriver for Chrome for suggestions on keeping ChromeDriver safe.
Feb 19 07:23:41 Server-315038b6 launch.sh[10334]: ChromeDriver was started successfully.
hi Freddie,
We restart the jibri and start recording again.The previous error appeared again.
2021-02-19 07:23:42.034 INFO: [40] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY,s
2021-02-19 07:23:42.035 INFO: [40] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending ‘pending’ response to start IQ
2021-02-19 07:23:43.647 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Visiting url https://voiptest.360-jr.com/b/567#config.iAmRecorder=true&config.externalConnectUrl=nue
2021-02-19 07:23:43.730 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
2021-02-19 07:23:44.245 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
2021-02-19 07:23:44.753 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
2021-02-19 07:23:45.261 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
2021-02-19 07:23:45.773 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
2021-02-19 07:23:46.291 FINE: [50] org.jitsi.jibri.selenium.pageobjects.CallPage.apply() Not joined yet: APP is not defined
This error comes up sometimes when authentication is implemented - lobby, password, JWT tokens e.t.c… If indeed you did not enable any of those, I wonder what could be the cause in this case.
Did you do this installation as a user with root privileges?