Cannot see anyone but me and error message in jvb.log on a NATed VM on Debian 10

I realized that with all the changes I made to find a solution my file “videobridge/sip-communicator.properties” was not correct (missing the last 2 lines and the “STUN_MAPPING_HARVESTER_ADDRESSES” line was not removed).

After correction and restarting the VM, it doesn’t change anything. Here is my “videobridge/sip-communicator.properties”:

org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true
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.XXX.com
org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb
org.jitsi.videobridge.xmpp.user.shard.PASSWORD=UNlR7A1j
org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.XXX.com
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=2917535f-9089-44bb-b515-9845557ffb43
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.0.25
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=111.222.333.444

Here is also my “jicofo/sip-communicator.properties”:

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

Big thanks for your patience and your help!

I think that my last contribution for this day will be to ask for a few context lines (20) before the error message in jicofo.log, and the 50 lines of the jvb.log following the connection attempt of the first external user of your meeting. I wonder if you get the same messages in jvb.log as in your first post given the fix in your config.
Although there may be networks problems yet, if you are sure that you don’t see packets starting toward the server port 10000 UDP, the blocking problem can only be a config setup mistake in jicofo/jvb.

Here it is for jicofo.log:

Jicofo 2020-05-22 19:50:28.254 INFO: [56] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Joining the room: toto@conference.XXX.com
Jicofo 2020-05-22 19:50:28.418 INFO: [30] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@2e54ba4c member=ChatMember[toto@conference.XXX.com/7b22ace9, jid: null]@134600209]
Jicofo 2020-05-22 19:50:28.425 INFO: [30] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Granted owner to toto@conference.XXX.com/7b22ace9
Jicofo 2020-05-22 19:50:28.426 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member toto@conference.XXX.com/7b22ace9 joined.
Jicofo 2020-05-22 19:50:31.971 INFO: [59] org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq().401 Focus request for room: toto@conference.XXX.com
Jicofo 2020-05-22 19:50:32.294 INFO: [30] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@2e54ba4c member=ChatMember[toto@conference.XXX.com/789c4ca4, jid: null]@985489750]
Jicofo 2020-05-22 19:50:32.295 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member toto@conference.XXX.com/789c4ca4 joined.
Jicofo 2020-05-22 19:50:32.299 INFO: [30] org.jitsi.jicofo.bridge.BridgeSelectionStrategy.log() bridge_selected,bridge=Bridge[jid=jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43, relayId=null, region=null, stress=0.00]
Jicofo 2020-05-22 19:50:32.300 INFO: [30] org.jitsi.jicofo.bridge.BridgeSelectionStrategy.log() Selected initial bridge Bridge[jid=jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43, relayId=null, region=null, stress=0.00] with packetRate=0 for participantRegion=null
Jicofo 2020-05-22 19:50:32.300 INFO: [30] org.jitsi.impl.protocol.xmpp.colibri.OperationSetColibriConferenceImpl.log() Conference created: org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl@2ef8fb31
Jicofo 2020-05-22 19:50:32.303 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Added participant jid= toto@conference.XXX.com/789c4ca4, bridge=jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43
Jicofo 2020-05-22 19:50:32.303 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Region info, conference=ff9f4b octo_enabled= false: [[null, null]]
Jicofo 2020-05-22 19:50:32.306 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Added participant jid= toto@conference.XXX.com/7b22ace9, bridge=jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43
Jicofo 2020-05-22 19:50:32.306 INFO: [30] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Region info, conference=ff9f4b octo_enabled= false: [[null, null, null]]
Jicofo 2020-05-22 19:50:32.307 INFO: [186] org.jitsi.jicofo.discovery.DiscoveryUtil.discoverParticipantFeatures().145 Doing feature discovery for toto@conference.XXX.com/789c4ca4
Jicofo 2020-05-22 19:50:32.308 INFO: [186] org.jitsi.jicofo.discovery.DiscoveryUtil.discoverParticipantFeatures().172 Successfully discovered features for toto@conference.XXX.com/789c4ca4 in 1
Jicofo 2020-05-22 19:50:32.309 INFO: [186] org.jitsi.jicofo.AbstractChannelAllocator.log() Using jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43 to allocate channels for: Participant[toto@conference.XXX.com/789c4ca4]@854833423
Jicofo 2020-05-22 19:50:32.314 INFO: [187] org.jitsi.jicofo.discovery.DiscoveryUtil.discoverParticipantFeatures().145 Doing feature discovery for toto@conference.XXX.com/7b22ace9
Jicofo 2020-05-22 19:50:32.315 INFO: [187] org.jitsi.jicofo.discovery.DiscoveryUtil.discoverParticipantFeatures().172 Successfully discovered features for toto@conference.XXX.com/7b22ace9 in 1
Jicofo 2020-05-22 19:50:32.316 INFO: [187] org.jitsi.jicofo.AbstractChannelAllocator.log() Using jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43 to allocate channels for: Participant[toto@conference.XXX.com/7b22ace9]@929426307
Jicofo 2020-05-22 19:50:47.321 SEVERE: [186] org.jitsi.jicofo.AbstractChannelAllocator.log() jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43 - failed to allocate channels, will consider the bridge faulty: Timed out waiting for a response.
org.jitsi.protocol.xmpp.colibri.exception.TimeoutException: Timed out waiting for a response.
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.maybeThrowOperationFailed(ColibriConferenceImpl.java:400)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.createColibriChannels(ColibriConferenceImpl.java:315)
        at org.jitsi.protocol.xmpp.colibri.ColibriConference.createColibriChannels(ColibriConference.java:115)
        at org.jitsi.jicofo.ParticipantChannelAllocator.doAllocateChannels(ParticipantChannelAllocator.java:146)
        at org.jitsi.jicofo.AbstractChannelAllocator.allocateChannels(AbstractChannelAllocator.java:262)
        at org.jitsi.jicofo.AbstractChannelAllocator.doRun(AbstractChannelAllocator.java:181)
        at org.jitsi.jicofo.AbstractChannelAllocator.run(AbstractChannelAllocator.java:149)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Jicofo 2020-05-22 19:50:47.322 SEVERE: [187] org.jitsi.jicofo.AbstractChannelAllocator.log() jvbbrewery@internal.auth.XXX.com/2917535f-9089-44bb-b515-9845557ffb43 - failed to allocate channels, will consider the bridge faulty: Creator thread has failed to allocate channels: Timed out waiting for a response.
org.jitsi.protocol.xmpp.colibri.exception.TimeoutException: Creator thread has failed to allocate channels: Timed out waiting for a response.
        at org.jitsi.protocol.xmpp.colibri.exception.TimeoutException.clone(TimeoutException.java:39)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl$ConferenceCreationSemaphore.acquire(ColibriConferenceImpl.java:1124)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.acquireCreateConferenceSemaphore(ColibriConferenceImpl.java:472)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.createColibriChannels(ColibriConferenceImpl.java:284)
        at org.jitsi.protocol.xmpp.colibri.ColibriConference.createColibriChannels(ColibriConference.java:115)
        at org.jitsi.jicofo.ParticipantChannelAllocator.doAllocateChannels(ParticipantChannelAllocator.java:146)
        at org.jitsi.jicofo.AbstractChannelAllocator.allocateChannels(AbstractChannelAllocator.java:262)
        at org.jitsi.jicofo.AbstractChannelAllocator.doRun(AbstractChannelAllocator.java:181)
        at org.jitsi.jicofo.AbstractChannelAllocator.run(AbstractChannelAllocator.java:149)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)

For jvb.log:

	2020-05-22 20:43:40.255 INFO: [446] Videobridge.createConference#320: create_conf, id=643f37dfed79b7ed gid=ff5d17 logging=true
2020-05-22 20:43:40.266 INFO: [446] [confId=643f37dfed79b7ed epId=605fab8c local_ufrag=8mn5r1e8v213ba gid=ff5d17 conf_name=toto ufrag=8mn5r1e8v213ba] Agent.gatherCandidates#662: Gathering candidates for component stream-605fab8c.RTP.
2020-05-22 20:43:40.292 INFO: [41] [confId=643f37dfed79b7ed gid=ff5d17 conf_name=toto] Conference.dominantSpeakerChanged#446: ds_change ds_id=605fab8c
Exception in thread "Smack Cached Executor" java.lang.NoClassDefFoundError: Could not initialize class org.jitsi.videobridge.sctp.SctpManager
        at org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:868)
        at org.jitsi.videobridge.shim.ContentShim.createSctpConnection(ContentShim.java:167)
        at org.jitsi.videobridge.shim.ContentShim.getOrCreateSctpConnectionShim(ContentShim.java:359)
        at org.jitsi.videobridge.shim.VideobridgeShim.processSctpConnections(VideobridgeShim.java:214)
        at org.jitsi.videobridge.shim.VideobridgeShim.handleColibriConferenceIQ(VideobridgeShim.java:377)
        at org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:600)
        at org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:585)
        at org.jitsi.videobridge.xmpp.XmppCommon.handleIQRequest(XmppCommon.java:228)
        at org.jitsi.videobridge.xmpp.XmppCommon.handleIQInternal(XmppCommon.java:179)
        at org.jitsi.videobridge.xmpp.XmppCommon.handleIQ(XmppCommon.java:150)
        at org.jitsi.videobridge.xmpp.ClientConnectionImpl.handleIq(ClientConnectionImpl.java:108)
        at org.jitsi.xmpp.mucclient.IQListener.handleIq(IQListener.java:50)
        at org.jitsi.xmpp.mucclient.MucClient.handleIq(MucClient.java:547)
        at org.jitsi.xmpp.mucclient.MucClient.access$500(MucClient.java:50)
        at org.jitsi.xmpp.mucclient.MucClient$2.handleIQRequest(MucClient.java:511)
        at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1188)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
2020-05-22 20:43:43.249 INFO: [27] Videobridge.createConference#320: create_conf, id=da8e2ed18b34c64a gid=null logging=false
2020-05-22 20:43:43.254 SEVERE: [27] 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:868)
        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)

That’s all for me for today too… go to bed and retry tomorrow!
Have a good night!

So, I restarted from a pristine VM and executed this script:

# Récupération du nom de domaine...
if [ "$1" == "" ]; then
    echo "USAGE: $0 DOMAIN"
    exit 1
fi
DOMAIN=$1

# Récupération de l'IP de la VM...
LOC_IP=`hostname -I |awk '{print $1}'`

# Mise-à-jour des paquets...
apt update && apt full-upgrade -y

# Installation de paquets nécessaire à l'installation...
apt -y install gnupg ufw

# Récupération et ajout de la clé du dépôt Jitsi...
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -

# Ajout du dépôt Jitsi...
echo 'deb https://download.jitsi.org stable/' > /tmp/jitsi-stable.list && mv /tmp/jitsi-stable.list /etc/apt/sources.list.d/

apt update

# Installation de Jitsi Meet...
apt install -y jitsi-meet

# Ouverture des ports nécessaires dans le pare-feu...
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 4443/tcp
ufw allow 10000/udp
ufw allow 22/tcp
ufw --force enable

# Adaptation de la configuration Jitsi...
cp /etc/jitsi/videobridge/sip-communicator.properties /tmp/prop
cat /tmp/prop |grep -v "STUN_MAPPING_HARVESTER_ADDRESSES" >/tmp/prop
echo "org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=$LOC_IP" >> /tmp/prop
echo "org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=$LC_PUB_IP" >> /tmp/prop
mv /tmp/prop /etc/jitsi/videobridge/sip-communicator.properties

# Installation d'un certificat...
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

I made all checks you mention yesterday.

But always same problem : no external video nor sound and same errors in “jvb.log”!

Weird thing : while connecting my phone (in 3G) to a conference, “jvb.log” shows an error:

 2020-05-23 13:45:32.177 SEVERE: [22] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
        at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwAlreadyLoggedInExceptionIfAppropriate(XMPPTCPConnection.java:371)
        at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:487)
        at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:448)
        at org.jitsi.xmpp.mucclient.MucClient.lambda$getConnectAndLoginCallable$7(MucClient.java:649)
        at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)

I checked that I can send UDP/10000 packets from my PC to the VM with nc.
I tried to set JVB_OPTS to rest or xmpp or both in “/etc/jitsi/videobridge/config” without success.

Can someone help me? I begin to be desperate!..
Any ideas to investigate, test, verify… are welcome!

Below the script I strictly execute on the VM to automate installation.

# Récupération du nom de domaine et de l'adresse mail...
if [ "$2" == "" ]; then
    echo "USAGE: $0 DOMAIN EMAIL"
    exit 1
fi
DOMAIN=$1
EMAIL=$2

# Vérification que le script est bien lancé avec sudo...
WHOISIT=`whoami`
if [ "$WHOISIT" != "root" ]; then
    echo "Must be root!"
    echo "  ==> sudo $0 $1"
    exit 1
fi

# Récupération de l'IP de la VM...
LOC_IP=`hostname -I |awk '{print $1}'`

# Mise-à-jour des paquets...
apt update && apt full-upgrade -y

# Attribution du nom de domaine à la VM...
hostnamectl set-hostname $DOMAIN

# Mise-à-jour du /etc/hosts...
grep -v "127.0.0.1" /etc/hosts >/tmp/hosts
echo "127.0.0.1 localhost $DOMAIN" >>/tmp/hosts
mv /tmp/hosts /etc/hosts

# Installation de paquets nécessaire à l'installation...
apt install -y gnupg ufw nginx apt-transport-https

# Récupération et ajout de la clé du dépôt Jitsi...
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -

# Ajout du dépôt Jitsi...
echo 'deb https://download.jitsi.org stable/' > /tmp/jitsi-stable.list && mv /tmp/jitsi-stable.list /etc/apt/sources.list.d/

apt update

# Configuration des paquets jitsi-meet pour définir automatiquement le nom d'hôte du serveur
# et le type de certificat au lieu de les remplir interactivement)...
# echo "jitsi-meet-web-config jitsi-meet/cert-choice select Generate a new self-signed certificate (You will later get a chance to obtain a Let's encrypt certificate)" | debconf-set-selections
# echo "jitsi-meet-prosody jitsi-meet-prosody/jvb-hostname string $DOMAIN"       | debconf-set-selections
# echo "jitsi-meet-prosody jitsi-videobridge/jvb-hostname string $DOMAIN"        | debconf-set-selections
# echo "jitsi-meet-turnserver jitsi-meet-turnserver/jvb-hostname string $DOMAIN" | debconf-set-selections
# echo "jitsi-meet-turnserver jitsi-videobridge/jvb-hostname string $DOMAIN"     | debconf-set-selections
# echo "jitsi-meet-web-config jitsi-meet/jvb-hostname string $DOMAIN"            | debconf-set-selections
# echo "jitsi-meet-web-config jitsi-videobridge/jvb-hostname string $DOMAIN"     | debconf-set-selections

# Installation de Jitsi Meet...
apt install -y jitsi-meet

# Ouverture des ports nécessaires dans le pare-feu...
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 4443/tcp
ufw allow 10000/udp
ufw --force enable

# Adaptation de la configuration Jitsi...
grep -v "STUN_MAPPING_HARVESTER_ADDRESSES" /etc/jitsi/videobridge/sip-communicator.properties > /tmp/prop
echo "org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=$LOC_IP"     >> /tmp/prop
echo "org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=$LC_PUB_IP" >> /tmp/prop
mv /tmp/prop /etc/jitsi/videobridge/sip-communicator.properties

# Installation d'un certificat...
echo "$EMAIL" | /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

It’s nice to be sure that your station can send to UDP/10000, but the problem is that jvb fails before that. The error message states that it can’t create data channels using the SCTP protocol, so I have learned that this protocol exists and what it is supposed to do - but unfortunately this has not given me any immediate hindsight on what could be the exact cause for your failure.
Going forward as they say a possible extreme measure could be to spin a new VM, forego at the moment your idea of scripted install, use the default quick install. If it works, look at the differences with your scripted install.

Hi! Thanks to reply yet.

So, I foregone my script (even if I originally wrote it because of this problem and because being tired to repeat installation many many times to try to correct the error). I strictly followed the installation guide and I have the same error just after installing jitsi-meet packet, before executing “install-letsencrypt-cert.sh” and even before tempting to start a conference! (“Client is already logged in”) Here it is:

  • Also I noticed this message during installation: " head: cannot open ‘/etc/ssl/certs/java/cacerts’ for reading: No such file or directory"

    2020-05-24 21:31:14.430 SEVERE: [21] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
    org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwAlreadyLoggedInExceptionIfAppropriate(XMPPTCPConnection.java:371)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:487)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:448)
    at org.jitsi.xmpp.mucclient.MucClient.lambda$getConnectAndLoginCallable$7(MucClient.java:649)
    at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
    2020-05-24 21:31:17.219 INFO: [20] Videobridge.createConference#320: create_conf, id=f41a3cde69c4600f gid=null logging=false
    2020-05-24 21:31:17.230 SEVERE: [20] 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:868)
    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-05-24 21:31:19.431 INFO: [21] [hostname=localhost id=shard] MucClient.lambda$getConnectAndLoginCallable$7#648: Logging in.
    2020-05-24 21:31:19.431 SEVERE: [21] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
    org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwAlreadyLoggedInExceptionIfAppropriate(XMPPTCPConnection.java:371)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:487)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:448)
    at org.jitsi.xmpp.mucclient.MucClient.lambda$getConnectAndLoginCallable$7(MucClient.java:649)
    at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
    2020-05-24 21:31:24.432 INFO: [21] [hostname=localhost id=shard] MucClient.lambda$getConnectAndLoginCallable$7#648: Logging in.
    2020-05-24 21:31:24.433 SEVERE: [21] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
    org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwAlreadyLoggedInExceptionIfAppropriate(XMPPTCPConnection.java:371)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:487)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:448)
    at org.jitsi.xmpp.mucclient.MucClient.lambda$getConnectAndLoginCallable$7(MucClient.java:649)
    at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
    2020-05-24 21:31:27.219 INFO: [20] Videobridge.createConference#320: create_conf, id=dd951b340ac475cc gid=null logging=false
    2020-05-24 21:31:27.293 SEVERE: [20] 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:868)
    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-05-24 21:31:29.434 INFO: [21] [hostname=localhost id=shard] MucClient.lambda$getConnectAndLoginCallable$7#648: Logging in.
    2020-05-24 21:31:29.434 SEVERE: [21] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in

And the result is even worse : no external video/sound with 2 users and can’t connect with 3.

I think that under Ubuntu this file is created by installing a package named ca-certificates-java and it’s very probably necessary. Verify if the file is indeed missing and if yes, take a look at /var/lib/dpkg/info/ca-certificates-java.postinst to try to understand why.
BTW check that the java version is 8.

For Java it’s not the 8 version under my Debian 10 VM:

 java --version
openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode)

Is it still good ?

For package ca-certificates-java:

dpkg -l ca-certificates-java
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                 Version      Architecture Description
+++-====================-============-============-=====================================
ii  ca-certificates-java 20190405     all          Common CA certificates (JKS keystore)

And the file is eventually here:

sudo ls -l /etc/ssl/certs/java/
total 152
-rw-r–r-- 1 root root 152034 May 24 21:28 cacerts

To add and sum up my errors:

There are 2 kind of errors in jvb.log:

sudo cat /var/log/jitsi/jvb.log |perl -alne'print"@F[4..$#F]" if/SEVERE/' |sort -u
RecurringRunnableExecutor.run#230: The invocation of the method org.jitsi.videobridge.health.Health.run() threw an exception.
RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.SmackException$AlreadyLoggedInException: Client is already logged in

And several in jicofo.log (some probably happened when trying to add a third user) (I replaced my domain name by “DOMAIN”):

[18] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: host-unknown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
[18] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: The following addresses failed: 'localhost:5222' failed because: localhost/127.0.0.1 exception: java.net.ConnectException: Connection refused (Connection refused)
[19] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: No response received within reply timeout. Timeout was 15000ms (~15s). While waiting for establishing TLS
[19] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: The following addresses failed: 'localhost:5222' failed because: localhost/127.0.0.1 exception: java.net.ConnectException: Connection refused (Connection refused)
[205] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.
[211] org.jitsi.jicofo.AbstractChannelAllocator.log() jvbbrewery@internal.auth.DOMAIN/0312cd59-3f2f-4b97-a0ae-0a5a5880c7e3 - failed to allocate channels, will consider the bridge faulty: Timed out waiting for a response.
[212] org.jitsi.jicofo.AbstractChannelAllocator.log() jvbbrewery@internal.auth.DOMAIN/0312cd59-3f2f-4b97-a0ae-0a5a5880c7e3 - failed to allocate channels, will consider the bridge faulty: Creator thread has failed to allocate channels: Timed out waiting for a response.
[31] org.jitsi.xmpp.component.ComponentBase.log() Failed to send ping
[32] org.jitsi.meet.ComponentMain.log() java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5347
[33] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: host-unknown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
[33] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: The following addresses failed: 'localhost:5222' failed because: localhost/127.0.0.1 exception: java.net.ConnectException: Connection refused (Connection refused)
[34] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: host-unknown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
[36] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().303 Failed to connect/login: host-unknown You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
[37] org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.getFeatures().144 Failed to discover features for conferenceduration.DOMAIN: XMPP error reply received from conferenceduration.DOMAIN: XMPPError: service-unavailable - cancel
[37] org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.getFeatures().144 Failed to discover features for speakerstats.DOMAIN: XMPP error reply received from speakerstats.DOMAIN: XMPPError: service-unavailable - cancel
[41] util.UtilActivator.uncaughtException().122 An uncaught exception occurred in thread=Thread[Smack Reconnection Manager (0),5,main] and message was: Username must not be null or empty

I also check this:

 sudo cat /etc/jitsi/jicofo/config |grep JICOFO_AUTH_DOMAIN
JICOFO_AUTH_DOMAIN=auth.DOMAIN

the domain is correct and:

sudo cat /etc/prosody/conf.d/DOMAIN.cfg.lua |grep VirtualHost
VirtualHost "DOMAIN"
VirtualHost "auth.DOMAIN"

is also correct. If it helps!

I have also this config (if it helps):

sudo find /etc/jitsi/ -type f |sudo xargs grep HOST
/etc/jitsi/videobridge/sip-communicator.properties:org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost
/etc/jitsi/videobridge/config:JVB_HOSTNAME=DOMAIN
/etc/jitsi/videobridge/config:JVB_HOST=
/etc/jitsi/jicofo/config:JICOFO_HOST=localhost
/etc/jitsi/jicofo/config:JICOFO_HOSTNAME=DOMAIN

jdk 11 is supposed to be compatible

yes seems correct

no idea what this could mean. Isolated error messages are so much harder to interpret. I have never seen this message since 6 weeks I am running jitsi-meet.

Seems that jicofo can’t connect to prosody, you did not have this error message with your scripted install; is this message really happening when you are trying to connect a second user to a conference (meaningful) or is this happening at start of system (could be because of service starting, not interesting message) ? When you say ‘probably’, it’s important to know yes or no.