jitsi / docker-jitsi-meet

Jitsi Meet on Docker
https://hub.docker.com/u/jitsi/
Apache License 2.0
3.06k stars 1.36k forks source link

no audio with more than 2 participants #1819

Closed sid-spector closed 1 month ago

sid-spector commented 4 months ago

What happened?

Hello,

we have configured and deployed jitsi on a kubernetes cluster hosted on digitalocean. The whole setup is exposed behind a nginx proxy server that is configured to proxy UDP connections to the JVB pod.

We have tested the UDP network setup and all the UDP connections are being proxied correctly.

The running configuration include:

ENABLE_XMPP_WEBSOCKET: 'false' PUBLIC_URL: <publi url> JVB_ADVERTISE_IPS: <public ip> DOCKER_HOST_ADDRESS: <public ip>

Untill we have two partecipants there is no problem, if the third partecipant logs in we start seeing on the logs:

JVB 2024-06-03 23:34:18.604 INFO: [286] [confId=3f6b56384cb09841 conf_name=a@muc.meet.jitsi meeting_id=db84e9e3 epId=f7cda133 stats_id=Deontae-co1 local_ufrag=9uhhn1hvg0cggb ufrag=9uhhn1hvg0cggb] Agent.triggerCheck#1727: Add peer CandidatePair with new reflexive address to checkList: CandidatePair (State=Frozen Priority=7961802290715688959):                                                                       
LocalCandidate=candidate:1 1 udp 2130706431 10.244.1.81 10000 typ host                                                                                                                                           RemoteCandidate=candidate:10009 1 udp 1853751551 10.244.0.169 41784 typ prflx                                                                                                                              JVB 2024-06-03 23:34:18.606 INFO: [286] [confId=3f6b56384cb09841 conf_name=a@muc.meet.jitsi meeting_id=db84e9e3 epId=f7cda133 stats_id=Deontae-co1 local_ufrag=9uhhn1hvg0cggb ufrag=9uhhn1hvg0cggb] Connectivit │
│ yCheckClient.processResponse#401: Received a non-symmetric response for pair: 10.244.1.81:10000/udp/host -> 10.244.0.169:37433/udp/prflx (stream-f7cda133.RTP). Failing.

With:

Any suggestion ?

Thank you very much!

Platform

Browser / app / sdk version

1.3.8

Relevant log output

No response

Reproducibility

More details?

No response

damencho commented 4 months ago

The udp packets need to be forwarded without changing the source address. Seems the way you proxy them, sets the address of the nginx instance and jvb cannot send packets back to the client.

tu-nv commented 3 months ago

we faced same issue. The org requires everything to be behind nginx, including UDP stream on port 10000.

saghul commented 3 months ago

That is not possible. Nginx only handles the HTTP traffic, it doesn't proxy the UDP data.

infra-monkey commented 1 month ago

That is not possible. Nginx only handles the HTTP traffic, it doesn't proxy the UDP data.

Actually it can. https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

saghul commented 1 month ago

TIL, good to know!

tu-nv commented 1 month ago

That is not possible. Nginx only handles the HTTP traffic, it doesn't proxy the UDP data.

Actually it can. https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

I do not think it works for jitsi case. That udp load balancer is one way. For jitsi, 2 ways connection is needed. I have tried nginx udp proxy and it does not work. Ended up using coturn and it works quite ok.

saghul commented 1 month ago

If the LB is able to maintain some state (keep the socket 4 tuple consistent) it should work.

If it's a "dump" LB then no dice...

infra-monkey commented 1 month ago

just setup jitsi behind nginx both http/ws and udp stream for the media. It works like a charm. The only catch is to set JVB_ADVERTISE_IPS with the public ip of nginx (not the docker host)