Talk (spreed) without HPB can't establish Audio-Video connection but text chat works

Nextcloud version (eg, 24.0.1): 31.0.4
Talk Server version (eg, 14.0.2): 21.0.4
Custom Signaling server configured: No
Custom TURN server configured: No
Custom STUN server configured: No

Operating system (eg, Windows/Ubuntu/…): Debian 12
Browser name and version (eg, Chrome v101): Firefox 138.0.1

We can use text chat, and each of us sees their own webcam picture, each micro works, but the call can’t be established, each sees only the rotating circle instead of the webcam picture of the other person.

I’ve not got it to work yet, never used it before.

Steps to replicate it:

  1. Log in to NC installation using Firefox
  2. Select Talk and try to start a call with a friend who is also logged in
  3. Up in the left corner, it says that the partner is “In a conversation”

The output of your Nextcloud log in Admin > Logging or errors in nextcloud.log in /var/www/:

Log is empty, I run a clean shop :)

The output of your Apache/nginx/system log in /var/log/____:

proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:00:45 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2Fowncloud.reeves.one%2Fcall%2Fgzceupn9 HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:20:39 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2Fexample.com%2Fcall%2Fgzceupn9 HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:20:40 +0200] "GET /ocs/v2.php/apps/spreed/api/v3/signaling/gzceupn9 HTTP/2.0" 409 109 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:24:27 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2Faijdp7md HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:25:06 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2Fgzceupn9 HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:25:09 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2Ffm93i2hu HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:25:09 +0200] "GET /ocs/v2.php/references/resolve?reference=%20https%3A%2F%2Fnextcloud-talk.readthedocs.io%2Fen%2Flatest%2Fbot-list%2F%0A HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:25:09 +0200] "GET /ocs/v2.php/references/resolve?reference=%20https%3A%2F%2Fnextcloud.com%2Ftalk-desktop-install%0A HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:25:43 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2Fgzceupn9 HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:28:14 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2F3xpewxie HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:28:37 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2F56ubp2ts HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0"
proxy_access_ssl_log:77.11.109.176 - - [08/May/2025:20:32:59 +0200] "GET /ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https:%2F%2F[owncloud.reeves.one](http://example.com)%2Fcall%2F56ubp2ts HTTP/2.0" 404 88 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0"

Your browser log if relevant (javascript console log, network log, etc.):

GET
https://example.com/ocs/v2.php/apps/dav/api/v1/events/upcoming?location=https://example.com/call/56ubp2ts 404

Object { message: "Request failed with status code 404", name: "AxiosError", code: "ERR_BAD_REQUEST", config: {…}, request: XMLHttpRequest, response: {…}, status: 404, stack: "", … }

hi @timreeves the component you are looking for is not HPB but rather STUN/TURN server which allow connection between two client without a “direct line of sight” - means different networks, firewall and NAT in between..

Please work through this docs to understand the issue

good turn and stun explanation

Nextcloud Talk docs

Thanks for your reply @wwe.

The first article linked states “WebRTC TURN Server is required to relay the traffic between the peers when direct connection cannot be established among them.”

I was rather thinking that both PCs are directly connected to the internet. But one of them is using a VPN (NordVPN) - would that mean that a WebRTC connection can’t be established?

And a further idea: My browser, and I think my friends too, use the plugin “WebRTC Leak Shield” - that sounds like a good candidate to be causing the problem. We’ll try deactivating them.

Cheers, Tim

“Connected to the internet” usually means the PCs are connected to a router which does NAT (network address translations), so the PCs are not directly “visible” on the internet but have a private IP address like 192.168.0.2 or 10.0.0.7 or similar and the router will translate between the public internet and your local, private network.

STUN/TURN (“Session Traversal Utilities for NAT” and “Traversal Using Relays around NAT”) are methods to allow traffic to PCs behind NAT by acting as a relay server which accepts incoming connections from the PCs and transfers data from one PC to the other.

However this usually works well only for a few people at the same time because every participant needs to send and recieve data from/to all other participants in the meeting. If you want to do sessions with 3 or more people, the HPB provides an additional “signaling” server which handles the traffic.

So in short:

  1. You usually must always provide a TURN server on a public server as a relay (for example Coturn in Linux which does also STUN besides TURN) which also should be protected with a password/secret.
  2. If you want to do sessions with many people at the same time, you should also consider the HPB.

I also wrote an article about how to set up everything since the Docker container for the HPB did not work for me and the manual setup is not that hard. You may just start with TURN and if you lated decide to try out the HPB also, you can extend your setup at any time: