Updating jvb and jicofo problem

Hi

I’m trying to update my existing jitsi server(jvb and jicofo) but I have some problems.

first I cloned the latest version of jvb and jicofo from repository. But that not works because of not available bridge error.

Then I download the latest stable version from https://download.jitsi.org/stable/jitsi-videobridge2_2.1-157-g389b69ff-1_all.deb. When I run jitsi-viedobridge2 service, still jvb doesn’t connect to prosody and jicofo doesn’t discover it. But when I run jvb manually from /usr/share/jitsi-videobridge/jvb.sh, prosody connect to jitsi-videobridge component. But still jicofo doesn’t discover it.

Finally I run jvb2 with old version jicofo(with commit hash a90c8b531) and surprisingly works well.
Note that, before updating, my jvb version was jitsi-videobridge-linux-x86-1132 and jicofo commit hash was a90c8b531(about 1 year ago).

Can any body helps me?
How sohuld I config prosody and jicofo with jvb2?

Is your jvb configured with component or mucs, in latest we had dropped the component support

Config with component. Actually I read here that should config with mucs but I don’t get it. Currently I have 2 sip-communicator-properties file. in ~/.sip-communicator and /etc/jitsi/videobridge. I hold jicofo-related configs in first one and jvb-related configs in second one. Where should I add new configs?

I add this lines to /etc/jitsi/videobridge/sip-communicator:

org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost
org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.example.com
org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb1
org.jitsi.videobridge.xmpp.user.shard.PASSWORD=jvb1-secret
org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.example.com
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=jvb-1
org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
org.jitsi.videobridge.rest.private.jetty.port=8080
org.jitsi.videobridge.rest.private.jetty.host=127.0.0.1
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri

And /etc/jitsi/videobridge/config:

JVB_HOSTNAME=example.com
JVB_HOST=
JVB_PORT=5347
JVB_SECRET=jvb1-secret
JVB_OPTS="–apis=xmpp,rest"
JAVA_SYS_PROPS="-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=videobridge -Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi -Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties"

And my ~/.sip-communicator/sip-communicator-properties(for jicofo):

org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.example.com

And prosody config:

VirtualHost “example.com
authentication = “anonymous”
ssl = {
key = “/var/lib/prosody/example.comkey”;
certificate = “/var/lib/prosody/example.com.crt”;
}
modules_enabled = {
“bosh”;
“pubsub”;
“s2s”;
}
c2s_require_encryption = false
VirtualHost “auth.example.com
ssl = {
key = “/var/lib/prosody/auth.example.com.key”;
certificate = “/var/lib/prosody/auth.example.com.crt”;
}
authentication = “internal_plain”
admins = { “focus@auth.example.com”}–, “jvb1@auth.example.com”}
Component “conference.example.com” “muc”
Component “internal.auth.example.com” “muc”
Component “focus.example.com
component_secret = “secret2”
allow_anonymous_s2s = true

I register jvb1 user as:

prosodyctl register jvb1 auth.example.com jvb1-secret

but when I start jitsi-videobridge2 service, in prosody config this log is printed:

Dec 09 05:11:06 jcp556a89f5e690 info Incoming Jabber component connection
Dec 09 05:11:06 mod_component info Disconnecting component, stream:error is: stream:errorjitsi-videobridge.example.com does not match any configured external components</stream:error>
Dec 09 05:11:06 jcp556a89f5e690 info component disconnected: nil (false)
Dec 09 05:11:06 c2s556a89d238d0 info Client connected
Dec 09 05:11:06 c2s556a89d238d0 info Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
Dec 09 05:11:06 c2s556a89d238d0 info Authenticated as jvb1@auth.example.com
Dec 09 05:11:11 jcp556a8a0111f0 info Incoming Jabber component connection
Dec 09 05:11:11 mod_component info Disconnecting component, stream:error is: stream:errorjitsi-videobridge.example.com does not match any configured external components</stream:error>
Dec 09 05:11:11 jcp556a8a0111f0 info component disconnected: nil (false)

jvb log:

SCTP JNI load: Linux OS detected
SCTP lib loaded
=====>: org_jitsi_modified_sctp4j_SctpJni.c calling init
=====>: org_jitsi_modified_sctp4j_SctpJni.c about to set SCTP_DEBUG_ALL

That is strange to have just this in the log.

The correct doc to look at is: https://github.com/jitsi/jitsi-videobridge/blob/master/doc/muc.md

I want to use legacy config in this url but there something obscure. What is the xmppserver1 in org.jitsi.videobridge.xmpp.user.xmppserver1.HOSTNAME=example.net? does it refer to xmpp domain? user? or it is just a namespace?

It is either resolvable DNS or an IP address of the machine where prosody runs. The jvb needs to access port 5222 there.

I think you misunderstood what I meant. My question is about xmppserver1 not example.net :sweat_smile:

You can leave it like that, or put xmpp1, it is something - just a random name so you can have different servers. This is server ID in the context of the config file and nothing more.

I configed jvb as described here

org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost
org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.example.com
org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb1
org.jitsi.videobridge.xmpp.user.shard.PASSWORD=jvb1-secret
org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.example.com
org.jitsi.videobridge.xmpp.user.shard.MUC=JvbBrewery@internal.auth.example.com
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=jvb-1
org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
org.jitsi.videobridge.rest.private.jetty.port=8080
org.jitsi.videobridge.rest.private.jetty.host=shard
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri

but still I have same error on prosody log. I stop the jitsi-videobridge2 service and execute manually to see compelete log

./jvb.sh --domain=example.com --port=5347 --secret=jvb1-secret --apis=rest,xmpp |& tee -a /var/log/jitsi/jvb.log

jvb log:

Dec 09, 2020 9:19:15 AM org.jitsi.utils.logging2.LoggerImpl log
SEVERE: Health check failed in 0ms:
java.lang.Exception: No XMPP components
at org.jitsi.videobridge.health.Health.checkXmppConnection(Health.java:186)
at org.jitsi.videobridge.health.Health.doCheck(Health.java:146)
at org.jitsi.videobridge.health.Health.doRun(Health.java:266)
at org.jitsi.utils.concurrent.PeriodicRunnableWithObject.run(PeriodicRunnableWithObject.java:87)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)

Dec 09, 2020 9:19:17 AM org.jitsi.utils.logging.LoggerImpl log
SEVERE: host-unknown, host:example.com, port:5347
org.xmpp.component.ComponentException: host-unknown
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:243)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:242)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:222)
at org.jitsi.meet.ComponentMain.lambda$getConnectCallable$0(ComponentMain.java:285)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
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)

It seems jvb still try to serve as prosody component

I cloned jvb and build using mvn package but after running it, prosody log doesn’t show anything even any error like previous :face_with_raised_eyebrow:. I pass sip-communicator config through JAVA_SYS_PROPS in jvb.sh
what is the difference between running jvb from .deb installation and from git repo?

Well. I install server via quick install and its ok. Now I try to find difference between configs :face_with_monocle:

I don’t know why but I installed jitsi from package, then built jicofo and jvb from the source and move .jar, .sh and lib to the /usr/share/jicofo and /usr/share/jitsi-videobridge and it worked :smile: