Connection issues with Talk

We are using Nextcloud 13.0.2 with Talk 3.2.1. One-to-one calls are always perfect, however as others join, the call becomes unstable, with users experiencing issues such as:

  • Inability to join or very long waits to join
  • Intermittent disconnection of individual users or sometimes all participants
  • Some participants unable to see others
  • No video from some users

We are rarely able to conduct a stable video call for 3+ users. There is also a significant lag for chat messages (15+ seconds) in rooms with 3+ participants.

We have a coturn server running in a Docker container on the same host as Nextcloud (which is also in a Docker container). Port 5349 on the coturn container is exposed to the internet via NAT.

Here are our settings. I was hoping someone could point out any obvious mistakes or give troubleshooting tips.

Thanks.

turnserver.conf

tls-listening-port=5349
fingerprint
lt-cred-mech
realm=cloud.example.com
use-auth-secret
static-auth-secret=*****
total-quota=100
bps-capacity=0
stale-nonce
log-file=/var/log/turnserver/turn.log
no-loopback-peers
no-multicast-peers
cert=/path/to/cert
pkey=/path/to/key
CA-file=/path/to/ca-file
no-tlsv1
no-tlsv1_1
external-ip=xxx.xxx.xxx.xxx

Thanks!

I would install the turnserver native

Is this based on anything?

I have not too much experience with docker or multi user video calls, but indeed docker has some impact on network latency and performance and for multi user setups it is recommended to make the TURN server directly accessible from the internet instead of behind NAT.

Since all traffic is routed trough the TURN server it should be quite heavy load which might be the issue in combination with NAT and docker (on TURN as well as Nextcloud side) then.

You could check if it’s working better for calls within the local network, which should bypass true TURN server. I guess the serves overall and network performance should also play a role. Also try if TLS connection has an influence on join waits.

So basically I cannot provide more than some hints where changes could be tested :wink:.

How fast is your uplink? If you have a lot of users and most of them are connected over the TURN server then you need a really fast uplink. So far I measured around 2 Mbit for each participant, therefore for 20 people a minimum of 50Mbit would be good.

1Gb synchronous.

To rule out any Docker weirdness, I set up a standalone coturn server and pointed my NC instance at it. The results are pretty much identical. Any other suggestions? Am I missing something from the config?

I’ve tried UDP only, TCP only, and mixed mode.

I’m seeing stuff like this in the turnserver.log which seems troubling:

120586: session 003000000000000006: peer 10.1.0.192 deleted
120586: session 003000000000000006: peer 172.17.0.1 deleted
120586: session 003000000000000006: peer 172.18.0.1 deleted

The first one is the IP of my laptop on my home network, and the other two are IPs from the internal Docker network that Nextcloud runs on. All of them are non-routable. Could this be the issue?