Handbook - Important link leads to 404

I was following the instructions at:

To see if I can make Jitsi work on my Centos 7 VPS.
However, quite soon into the process, I got a 404 when following the link to determine a recent version:
https://download.jitsi.org/jitsi-videobridge/linux

I know that CentOS is not a supported platform, but there should be at least some way to attempt manual install, shouldn’t there?

Try this link. Look for jitsi-videobridge2:

https://download.jitsi.org/stable/

You can download source-code from here GitHub - jitsi/jitsi-videobridge: Jitsi Videobridge is a WebRTC compatible video router or SFU that lets build highly scalable video conferencing infrastructure (i.e., up to hundreds of conferences per server).
And execute mvn package -Dassembly.skipAssembly=false to get a similar package.
You will find it as jvb/target/jitsi-videobridge-2.1-SNAPSHOT-archive.zip

Index of /stable/

Those all seem to be debian packages, I would like an unpackaged version of the binaries.

You can download source-code from here GitHub - jitsi/jitsi-videobridge: Jitsi Videobridge is a WebRTC compatible video router or SFU that lets build highly scalable video conferencing infrastructure (i.e., up to hundreds of conferences per server).
And execute mvn package -Dassembly.skipAssembly=false to get a similar package.
You will find it as jvb/target/jitsi-videobridge-2.1-SNAPSHOT-archive.zip

Thanks, i will try that.

My issues seem to be resolved, some more problems I ran into while setting jitsi up:

Wrong hashes in package-lock.json for jitsi-meet.
I did a dirty workaround of removing the lockfile.

Old way of focus component is described. This gave me quite a headache. (client_proxy instead of regular prosody component)

Now I have an instance running after resolving a few issues. All server logs are error-silent, yet there is one more issue I seem to be unable to deal with - the javascript keeps crashing on CONFERENCE FAILED: conference.focusDisconnected.

May I ask for any advice where to go from here?

You can test the instance at jitsi.plch.xyz

Maybe you are not using correct node and npm versions. Removing the lock file can lead to other problems which are hard to debug.

Jicofo is not connected, or the iqs are not being delivered to it. For client proxy you need this:

Maybe you are not using correct node and npm versions. Removing the lock file can lead to other problems which are hard to debug.

$ npm --version
7.7.6
$ node --version            
v15.14.0

Both should be alright according to the manual install guide:

NOTE: When installing on older distributions keep in mind that you need Node.js >= 12 and npm >= 6.

I’ll see what the extra proxy line does to the errors.

The roster modification seems to have done the trick. I will definitely report back when I have the chance to test with someone. I will prepare a CentOS 7 guide on my website, so if you have a nice place where you’d like to share such a guide, I’d be happy to provide you with it for your amazing help.

Oh, we need to update that. It is node 16 and npm 8.

You can do one next to the opensuse:

And then we can drop the manual one, as it is so outdated and broken.

I have one more issue. I can’t seem to get jitsi videobridge to connect to prosody. I managed to get jicofo to cooperate (chat works, jicofo log confirms the rooms are getting created etc.)

However, whatever I seem to do, there is no sign of jvb communicating with any other service. Jicofo seems to be trying to hint me when I create a second connection to the conference:

Jicofo 2022-03-11 22:01:11.516 WARNING: [33] BridgeSelector.selectBridge#181: There are no operational bridges.
Jicofo 2022-03-11 22:01:11.516 SEVERE: [33] [room=gladbreedsassertever@conference.jitsi.plch.xyz participant=670017b0] ParticipantInviteRunnable.doRun#187: Can not invite participant, no bridge available: 670017b0
Jicofo 2022-03-11 22:01:11.517 WARNING: [31] BridgeSelector.selectBridge#181: There are no operational bridges.
Jicofo 2022-03-11 22:01:11.517 SEVERE: [31] [room=gladbreedsassertever@conference.jitsi.plch.xyz participant=b3386847] ParticipantInviteRunnable.doRun#187: Can not invite participant, no bridge available: b3386847

This means both connection crash on “Error: something happened” and reconnect with 20 sec timeout.

Even the jvb log looks kinda dead:

JVB 2022-03-11 21:59:22.404 INFO: [15] VideobridgeExpireThread.expire#140: Running expire()
JVB 2022-03-11 21:59:22.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 21:59:32.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 21:59:42.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 21:59:52.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:00:02.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:00:12.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:00:22.403 INFO: [15] VideobridgeExpireThread.expire#140: Running expire()
JVB 2022-03-11 22:00:22.805 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:00:32.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:00:42.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:00:52.805 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:01:02.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:01:12.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:01:22.403 INFO: [15] VideobridgeExpireThread.expire#140: Running expire()
JVB 2022-03-11 22:01:22.805 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:01:32.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:01:42.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:01:52.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:02:02.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:02:12.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:02:22.403 INFO: [15] VideobridgeExpireThread.expire#140: Running expire()
JVB 2022-03-11 22:02:22.805 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:02:32.804 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false
JVB 2022-03-11 22:02:42.805 INFO: [16] HealthChecker.run#171: Performed a successful health check in PT0S. Sticky failure: false

Would you happen to have any directions on where to look?

Note: I have updated my node.js and npm to meet the requirements:

$ node --version
v16.14.0
$ npm --version
8.3.1

Looks like the connection to the bridge is not properly set in jicofo.conf. The JVB bridge actually shows that the bridge is healthy. However, the xmpp connection between jicofo and jvb may not be configured properly. Check prosody log.

Mar 11 22:37:59 c2s296d6a0      info    Client connected
Mar 11 22:37:59 c2s296d6a0      info    Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
Mar 11 22:37:59 c2s296d6a0      info    Authenticated as focus@auth.jitsi.plch.xyz
Mar 11 22:38:06 mod_bosh        info    New BOSH session, assigned it sid 'bc7aa2ed-5ba6-40e0-8a66-5f9169066631'
Mar 11 22:38:06 boshbc7aa2ed-5ba6-40e0-8a66-5f9169066631        info    Authenticated as yptnm2iyfeuunvvc@jitsi.plch.xyz
Mar 11 22:38:17 mod_bosh        info    New BOSH session, assigned it sid '1069eb04-556a-4403-9e18-8d1ef9c241b9'
Mar 11 22:38:18 bosh1069eb04-556a-4403-9e18-8d1ef9c241b9        info    Authenticated as naji0hfa31-gfyuj@jitsi.plch.xyz
Mar 11 22:38:19 bosh1069eb04-556a-4403-9e18-8d1ef9c241b9        info    BOSH client disconnected: session close
Mar 11 22:38:20 boshbc7aa2ed-5ba6-40e0-8a66-5f9169066631        info    BOSH client disconnected: session close
Mar 11 22:38:23 c2s33be2b0      info    Client connected
Mar 11 22:38:27 c2s33be2b0      info    Stream encrypted (TLSv1.3 with TLS_AES_256_GCM_SHA384)
Mar 11 22:38:31 c2s33be2b0      info    Authenticated as jvb@auth.jitsi.plch.xyz

What is the best way to reconfigure jicofo or jvb, when compiled from git with maven?

EDIT: Correct log

Is the bridge joining the brewery room on startup?

Jicofo and Jvb (videobridge) are connecting to Prosody, now for Jicofo to see Jvb it must have a common room to meet. It’s usually named something like jvbbrewery@internal.auth.meet.example.com. You can examine Prosody hosts and rooms with the telnet interface..
Here is a script

DOMAIN="meet.example.com"

netcat localhost 5582 <<EOF | grep -aoP "(?<=jvbbrewery@internal.auth.${DOMAIN}/).*"
> for k, v in pairs(hosts["internal.auth.${DOMAIN}"].modules.muc.get_room_from_jid("jvbbrewery@internal.auth.${DOMAIN}")._occupants) do; print(v.nick.." "..v.role); end
bye
EOF

replace meet.example.com of course.

1 Like

I managed to configure the room and both the accounts, both are able to join the room and can see each other there. Same issue persists.

How do I tell jicofo and jvb to use that room? Here is a text-shot (text screenshot) from Profanity (terminal xmpp client) that I used to debug this:

 jvbbrewery                                                                                                [TLS] [online]
02:37:36 ! -> You have joined the room as focus, role: moderator, affiliation: owner                    Moderators
02:37:36 ! Room subject cleared                                                                           focus
02:50:19 - Lost connection.                                                                               jvb
02:50:29 - You are not currently connected.                                                             Participants
02:50:39 - Connection re-established.                                                                   Visitors
-------------------------------------------------------------------------------------------------------
02:50:55 - jvb: test
02:50:57 - focus: test

Turns out videobridge nor jicofo was indeed connecting to brewery room. I solved this by reconfiguring in reference.conf in both repositories and rebuilding from source.

Thank you for you help, I have now a working instance.