Problem with jingle sessions

I am trying to setup a distributed Jitsi consisting of multiple shards with haproxy as central loadbalancer and local haproxy instances on the nodes to route traffic to the right local container.

Disclaimer: i am using podman - but not with rootless! The containers are started via systemd-units instead of using compose.

At this moment p2p is working most of the time :-/
But when it comes to using the jvb, everything breaks…

For testing i disabled p2p to enforce the use of the videobridge…

From my point of view it seems there is an issue with the session handling (switching to jvb) in my client or in Jicofo?!

As there are several messages like:

Logger.js:154 2022-12-28T12:00:29.703Z [JitsiConference.js] <e.terminate.reason>: An error occurred while trying to terminate invalid Jingle session {code: undefined, reason: ‘item-not-found’, msg: ‘jingle session no longer active’, session: ‘JingleSessionPC[session=P2P,initiator=false,sid=7ieo1adbcv9sb]’}

[modules/xmpp/strophe.jingle.js] <ia.onJingle>: invalid session id: b4e239e72b1e

The other thing irritating me, is the ICE candidate gathering of the jvb.
I would expect the jvb log to contain more about the exchange of the candidates, but that propably doesnt happen,
because my client is not sending any…?!

I would be very glad of someone could give a hint on where to look at!
browser.log (31.7 KB)
jicofo.log (9.8 KB)
jvb.log (4.6 KB)

Is your jvb advertising correctly its public address? Or is port udp 10000 properly forwarded to the jvb machine?

Please find the ice candidates (copied from xmpp-websocket in Browser devtools) in the attached logfile.
I just added --network=host for the JVB Container, so right now the jvb directly ‘sees’ the public IP and so far everything seem to look correct to me.

What i find interesting is, there is no delay between my client joining the conference and the message
“jingle session no longer active”. I also tcpdumped on 10000/udp on the Videobridge Host, but there was no packet incoming…

candidates.log (5.0 KB)

10000/udp is reachable, i run tcpdump and sent a packet from my client with netcat, that just showed up…

Are you testing with a mobile client? What if you open few tabs in the browser does it work that way?

Do you have this at the end of your config.js?

//Enables multi-stream, do not delete me
config.flags = config.flags || {};
config.flags.sourceNameSignaling = true;
config.flags.sendMultipleVideoStreams = true;
config.flags.receiveMultipleVideoStreams = true;

My client is running Chrome 101.0.4951.15 (Entwickler-Build) Ubuntu 20.04 (64-Bit) on a quite decent machine…

The flags are set as they are present in the template in the container and i dont touch them…

So there is no mobile client in the participants in the meeting?
That is strange …

Again thank you @damencho :smiley:

Long story short: Do NOT set JICOFO_AUTH_USER to anything else than the default value ‘focus’.

I used ‘jicofo’ and that propably breaks with

See: Userpart of focusUserJid is hardcoded in strophe.jingle.js · Issue #2191 · jitsi/lib-jitsi-meet · GitHub