No audio/video when more than 2 people join a conference (ARM problem?)

Hey guys,

I have the well-known problem that audio and video is dropped as soon as a third person joins a conversation. Conversation between two person works well. I already read many threads on this, most of the answers suggest to do the advanced configuration. So I did, as my server runs behind a NAT. Maybe some of you have any other ideas?

My server runs on a raspberry pi 4 B (4 GB) with ubuntu 18.04 and nginx.

TCP ports 80, 443, 4443, 4444 and UDP port 10000 are forwarded to the server. Firewall is completely open for testing purposes.

In my jicofo.log, I can see this warning:

Jicofo 2020-04-19 07:23:11.393 WARNING: [28] org.jitsi.jicofo.bridge.BridgeSelector.log() No pub-sub node mapped for jvbbrewery@internal.auth.[MY DOMAIN]/91c8b73d-a722-4696-81f5-b8963100f2d4

In my jvb.log, I can see these warnings:

2020-04-19 07:24:08.569 WARNING: [12] Videobridge.start#909: No authorized source regexp configured. Will accept requests from any source.
2020-04-19 07:24:23.758 SEVERE: [19] RecurringRunnableExecutor.run#230: The invocation of the method org.jitsi.videobridge.health.Health.run() threw an exception.
java.lang.UnsatisfiedLinkError: /tmp/nativeutils30852603283800/libjnisctp.so: /tmp/nativeutils30852603283800/libjnisctp.so: cannot open shared object file: No such file or directory (Possible cause: can’t load AMD 64-bit .so on a AARCH64-bit platform)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1946)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1828)
at java.lang.Runtime.load0(Runtime.java:810)
at java.lang.System.load(System.java:1088)
at cz.adamh.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:109)
at org.jitsi_modified.sctp4j.SctpJni.(SctpJni.java:31)
at org.jitsi_modified.sctp4j.Sctp4j.init(Sctp4j.java:40)
at org.jitsi.videobridge.sctp.SctpManager.(SctpManager.java:54)
at org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:860)
at org.jitsi.videobridge.health.Health.check(Health.java:77)
at org.jitsi.videobridge.health.Health.performCheck(Health.java:211)
at org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)
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)
2020-04-19 07:24:29.287 SEVERE: [19] RecurringRunnableExecutor.run#230: The invocation of the method org.jitsi.videobridge.health.Health.run() threw an exception.
java.lang.NoClassDefFoundError: Could not initialize class org.jitsi.videobridge.sctp.SctpManager
at org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:860)
at org.jitsi.videobridge.health.Health.check(Health.java:77)
at org.jitsi.videobridge.health.Health.performCheck(Health.java:211)
at org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)
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)

The js-console shows the following errors and warnings, the first one from the very beginning, the last two as soon as a third person joins the conversation.

Logger.js:154 [features/analytics] Error: No analytics handlers created!
Logger.js:154 [modules/xmpp/strophe.jingle.js] <g.onJingle>: invalid session id
Logger.js:154 [JitsiConference.js] <h.sendMessage>: Failed to send E2E ping request or response.

My sip-communicator.properties-file looks like this:

org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true
#org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.178.29
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=[MY PUBLIC IP]
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc
org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost
org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.[MY DOMAIN]
org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb
org.jitsi.videobridge.xmpp.user.shard.PASSWORD=WulBVMdP
org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.[MY DOMAIN]
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=91c8b73d-a722-4696-81f5-b8963100f2d4

Hope someone of you has any idea where should look for the problem.

Kind regards,

Thomas

I learned that with 2 people it uses p2p for connection/traffic. For 3 or more the videobridge is used. Maybe helpful for troubleshooting.
It looks like you may have an issue with architecture compatibility.
I wish I could be of more help.

Thanks for your help. I think the same because of the “can’t load AMD 64-bit .so on a AARCH64-bit platform” message. But I read that some guys got it running on Raspberry. Maybe there is someone who already tested this.

After your response, I found this issue on github. I’ll work further on it and tell, if I got it running.