Nextcloud Talk: Calls connect but no audio/video, TURN server never used (YunoHost 12 + Nextcloud 34)

What type of hardware are you using: Other(?)
What YunoHost version are you running: 12.1.40.1
Are you in a special context or did you perform specific tweaking on your YunoHost instance ?: no

Describe your issue

Hello,

I have a fresh installation of YunoHost and Nextcloud. Everything works except audio/video in Nextcloud Talk.

Environment

  • Debian 12
  • YunoHost (current stable)
  • Nextcloud 34.0.1~ynh1
  • Nextcloud Talk server app 24.0.2
  • Coturn 4.6.1
  • AVM Fritz!Box
  • Domain: purzelhungaria.nohost.me
  • Let’s Encrypt certificate installed successfully

Ports forwarded

TCP:
80
443
3478
5349

UDP:
3478
5349
50000-50199

Coturn

  • Realm: purzelhungaria.nohost.me
  • Shared secret authentication enabled
  • TURN configured in Nextcloud
  • TURN server appears in “php occ talk:turn:list”

TLS test

openssl s_client -connect 192.168.188.25:5349

Result:

  • TLS 1.2
  • Let’s Encrypt certificate is presented correctly
  • Verify return code: 0 (ok)

Symptoms

  • Chat messages work.
  • Calls connect successfully.
  • Call timer starts.
  • No audio.
  • No video.
  • Browser ↔ Android: no media.
  • Android ↔ Android: no media.

Interesting observation

While a call is active:

journalctl -u coturn -f

shows absolutely no new log entries.

It looks like Nextcloud Talk never contacts the TURN server.

Already checked

  • DNS
  • HTTPS
  • Let’s Encrypt
  • TURN configuration
  • Shared secret
  • Coturn running
  • TCP/UDP listeners
  • TLS works
  • Android microphone permissions
  • Browser microphone permissions
  • Firewall and router forwarding

Has anyone seen this behaviour with the current YunoHost Nextcloud package?

Any ideas why Talk never seems to use TURN although it is configured correctly?

Thank you.

Share relevant logs or error messages

Environment

  • Debian 12

  • YunoHost 12.1.40.1

  • Nextcloud 34.0.1~ynh1

  • Nextcloud Talk (server app) 24.0.2

  • Android Talk app 24.0.2 (latest from Google Play)

  • Coturn 4.6.1-1

  • Domain: purzelhungaria.nohost.me

  • Let’s Encrypt certificate

  • Nextcloud is fully up to date

  • Android Talk app reinstalled

  • Browser microphone permission granted

  • Android microphone permission granted

  • TLS handshake on port 5349 succeeds and presents the correct Let’s Encrypt certificate

  • Coturn service is active

The TURN server is configured correctly and TLS works.

However, during active calls no new entries appear in

journalctl -u coturn -f

which suggests that Nextcloud Talk never contacts the TURN server at all.

IIRC Nextcloud Talk requires installing YunoHost app store | Nextcloud Signaling as well, but I’m not a user so can’t tell for sure.

Thanks. I thought the signaling backend was optional for 1:1 calls. According to the Nextcloud documentation, small calls should work without it. My issue is that even browser ↔ Android or Android ↔ Android calls have no audio/video although TURN is working and TLS on port 5349 is verified. Do you think the missing signaling backend could completely prevent media negotiation?

I am not sure. Did the Nextcloud Talk installer provide a way to input Coturn configuration?

Yes. The TURN server was configured through the Nextcloud Talk administration page.

I entered:

  • TURN server: turn:purzelhungaria.nohost.me:3478

  • Authentication: Shared secret

  • Shared secret: (same as configured in Coturn)

  • Transport: UDP and TCP

The TURN server is listed correctly by:


sudo -u nextcloud php /var/www/nextcloud/occ config:list spreed

and the TURN configuration appears in the Nextcloud configuration.

Additionally:

  • Coturn is running.

  • TLS on port 5349 works with the correct Let’s Encrypt certificate.

  • openssl s_client succeeds.

  • During calls, however, Coturn receives no requests at all.

Thank you. My current configuration uses:

turn:purzelhungaria.nohost.me:3478

because that is how I originally configured Coturn.

Your screenshot shows port 5349. Are you suggesting I should instead configure:

turns:purzelhungaria.nohost.me:5349

My Coturn server listens on both 3478 and 5349, and TLS on 5349 has been verified successfully with openssl s_client.

I would try purzelhungaria.nohost.me:5439

I tried the following configuration:

  • turns:purzelhungaria.nohost.me:5349

  • Mode: “turn: and turns:”

  • Same shared secret

Unfortunately there is no change.

Calls still connect, but there is no audio or video.

During active calls journalctl -u coturn -f still shows no activity at all.

To the maintainer:

Is there any known issue with Nextcloud 34.0.1~ynh1 and Talk 24.0.2 on YunoHost?

Since Coturn is never contacted during calls, could this be a problem in the signaling configuration or the YunoHost package?

Did you try

  • turn:only
  • turn server url : purzelhungaria.nohost.me:5349(without ‘turn:’)

?

Same here when running a videocall… I was wondering whether the turn server was actually being used for the call, so I stopped it… and the video call got interrupted.

Thank you! That was the solution.

The TURN server URL must be entered without the turn: or turns: prefix.

Working configuration:

  • Mode: turn: only

  • TURN server URL: purzelhungaria.nohost.me:5349

  • Shared secret authentication

  • UDP and TCP

Audio and video calls are now working correctly.

:tada:

yes, the prefix is already added in the first step.

Sorry, I would like to reopen the topic.

I have a new observation.

After several hours of inactivity:

  1. The first call fails immediately after the callee answers.

  2. If both users exchange a chat message, the next call connects but the caller/callee is shown as “Guest” and there is still no audio.

  3. Hanging up and calling again immediately works perfectly:

    • correct user names

    • audio works

    • video works

This looks like the Talk clients need one or two connection attempts before the signaling/authentication is fully established after being idle.

Is this a known issue with the current YunoHost package or the Talk app?