Recording Unavailable

Hello,

I am using Jitsi on debian server. Its working great…
Its the url of my install :- https://jitsi.wespher.com
But today i tried installing Jibri to add recording functionality using this video tutorial https://jitsi.org/news/learn-how-to-live-stream-and-record-on-your-jitsi-meet-install/

So Start recording button starts to appear, but when i click on it, i gets “Recording Unavailable”

Also in console i get the following errors

  1. [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: null Script: null Line: null Column: null StackTrace:
  2. Uncaught (in promise)

Attached are the log files.

Please help.

jicofo.log (27.1 KB) jvb.log (58.2 KB)
jibri.log (179.2 KB)

Also my config.json file is

{
“recording_directory”:"/srv/recordings",
“finalize_recording_script_path”: “/path/to/finalize_recording.sh”,
“xmpp_environments”: [
{
“name”: “wespher env”,
“xmpp_server_hosts”: [
jitsi.wespher.com
],
“xmpp_domain”: “jitsi.wespher.com”,
“control_login”: {
“domain”: “auth.jitsi.wespher.com”,
“username”: “jibri”,
“password”: “jibriauthpass”
},
“control_muc”: {
“domain”: “internal.auth.jitsi.wespher.com”,
“room_name”: “JibriBrewery”,
“nickname”: “jibri-nickname”
},
“call_login”: {
“domain”: “recorder.jitsi.wespher.com”,
“username”: “recorder”,
“password”: “jibrirecorderpass”
},
“room_jid_domain_string_to_strip_from_start”: “conference.”,
“usage_timeout”: “0”
}
]
}

Try running jibri with java8.

Thanks damencho for fast reply, let me try with java8

Hi Damencho,

I have javac 11.0.4, so should i downgrade it to java8??

java -version
openjdk version “11.0.4” 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1deb10u1, mixed mode)

Also i disabled firewall, and now i am getting the error “Recording failed to start.”

I have seen that jibri doesn’t run with java11 in strange ways …

Ok, i tried downgrading to java8

apt-get install oracle-java8-installer
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package oracle-java8-installer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package ‘oracle-java8-installer’ has no installation candidate

You need openjdk-8-jre, maybe your system does not have it, try backports or something.

Hi Damencho,

I installed java8

java -version
openjdk version “1.8.0_222”
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

But javac -version still shows.
javac 11.0.4

Is this configuration ok??
I checked with this, but have the same error. Recording failed to start.

What does the jibri log says?

2019-09-09 18:03:14.832 INFO: [1] org.jitsi.jibri.Main.main() Jibri run with args [–config, /etc/jitsi/jibri/config.json]
2019-09-09 18:03:14.837 INFO: [1] org.jitsi.jibri.Main.main() Using config file /etc/jitsi/jibri/config.json
2019-09-09 18:03:14.837 INFO: [1] org.jitsi.jibri.Main.main() Using port 3333 for internal HTTP API
2019-09-09 18:03:14.837 INFO: [1] org.jitsi.jibri.Main.main() Using port 2222 for the HTTP API
2019-09-09 18:03:15.523 INFO: [1] org.jitsi.jibri.Main.loadConfig() Parsed config:
JibriConfig(recordingDirectory=/srv/recordings, enabledStatsD=true, finalizeRecordingScriptPath=/srv/finalize_recording.sh, xmppEnvironments=[XmppEnvironmentConfig(name=wespher env, xmppServerHosts=[jitsi.wespher.com], xmppDomain=jitsi.wespher.com, controlLogin=XmppCredentials(domain=auth.jitsi.wespher.com, username=jibri, password=jibriauthpass), controlMuc=XmppMuc(domain=internal.auth.jitsi.wespher.com, roomName=JibriBrewery, nickname=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.jitsi.wespher.com, username=recorder, password=jibrirecorderpass), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)])
2019-09-09 18:03:16.099 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime() A provider org.jitsi.jibri.api.http.internal.InternalHttpApi registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.jibri.api.http.internal.InternalHttpApi will be ignored.
2019-09-09 18:03:16.336 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
2019-09-09 18:03:16.339 INFO: [1] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@5ba745bc
2019-09-09 18:03:16.345 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() Connecting to xmpp environment on jitsi.wespher.com with config XmppEnvironmentConfig(name=wespher env, xmppServerHosts=[jitsi.wespher.com], xmppDomain=jitsi.wespher.com, controlLogin=XmppCredentials(domain=auth.jitsi.wespher.com, username=jibri, password=jibriauthpass), controlMuc=XmppMuc(domain=internal.auth.jitsi.wespher.com, roomName=JibriBrewery, nickname=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.jitsi.wespher.com, username=recorder, password=jibrirecorderpass), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)
2019-09-09 18:03:16.346 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
2019-09-09 18:03:16.363 WARNING: [20] org.jitsi.xmpp.mucclient.MucClient.log() Disabling certificate verification!
2019-09-09 18:03:16.408 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime() A provider org.jitsi.jibri.api.http.HttpApi registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.jibri.api.http.HttpApi will be ignored.
2019-09-09 18:03:16.630 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient id=jitsi.wespher.com hostname=jitsi.wespher.com] connected
2019-09-09 18:03:16.724 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: jibribrewery@internal.auth.jitsi.wespher.com

Its here.

Also when i see my recording folder, there are new folders getting created there, and each of them contains metadata.json

Those Jibri logs don’t show it actually doing anything, so it’s possible Jicofo isn’t even seeing the Jibri. Can you include some Jicofo logs?

Surejicofo.log (220.4 KB)

Those Jicofo logs do show it talking to a Jibri, can you attach logs from Jicofo and Jibri from the same call?

Sure, here are theyjicofo.log (8.8 KB) log.0.txt (34.8 KB)

Looks like it can’t run your finalize script:

2019-09-09 18:46:20.485 SEVERE: [148] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/srv/finalize_recording.sh": error=13, Permission denied with stack: 

Ohh seems like permisson issue, yes let me try that.

I changed the permission, getting same issue again, but the error logs changed this time.log.0.txt (76.7 KB)

2019-09-09 19:14:13.307 SEVERE: [252] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program "/srv/finalize_recording.sh": error=2, No such file or directory with stack: 

it can’t find a file at that location