Nextcloud Talk HPB – Incoming calls succeed but media session fails between Linux desktop and iPhone

Support intro

Sorry to hear you’re facing problems :slightly_frowning_face:

help.nextcloud.com is for home/non-enterprise users. If you’re running a business, paid support can be accessed via portal.nextcloud.com where we can ensure your business keeps running smoothly.

In order to help you as quickly as possible, before clicking Create Topic please provide as much of the below as you can. Feel free to use a pastebin service for logs, otherwise either indent short log examples with four spaces:

example

Or for longer, use three backticks above and below the code snippet:

longer
example
here

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can :heart:

Some useful links to gather information about your Nextcloud Talk installation:
Information about Signaling server: /index.php/index.php/settings/admin/talk#signaling_server
Information about TURN server: /index.php/settings/admin/talk#turn_server
Information about STUN server: /index.php/settings/admin/talk#stun_server

Nextcloud version (eg, 24.0.1): replace me
Talk Server version (eg, 14.0.2): replace me
Custom Signaling server configured: yes/no and version
Custom TURN server configured: yes/no
Custom STUN server configured: yes/no

In case the web version of Nextcloud Talk is involved:
Operating system (eg, Windows/Ubuntu/…): replace me
Browser name and version (eg, Chrome v101): replace me

In case mobile Nextcloud Talk apps are involved:
Talk iOS version (eg, 14.0.2): replace me
Talk Android version (eg, 14.0.2): replace me

The issue you are facing:

Is this the first time you’ve seen this error? (Y/N):

Steps to replicate it:

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

PASTE HERE

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

PASTE HERE

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

PASTE HERE

Nextcloud Talk HPB – Technical Support Report

Subject: Nextcloud Talk HPB – Incoming calls succeed but media session fails between Linux desktop and iPhone

System Environment

Operating System

  • Ubuntu Server

Deployment

  • Docker

Nextcloud

  • Version: 33.0.3

Nextcloud Talk

  • Originally 23.0.8
  • Updated during troubleshooting to 23.0.9

Database

  • MariaDB

Cache

  • Redis

High Performance Backend (HPB)

  • ghcr.io/nextcloud-releases/aio-talk

Media Server

  • Integrated Janus supplied with HPB

Network

  • Internet: Starlink
  • Reverse Proxy: Cloudflare Tunnel
  • IPv6: Enabled
  • HTTPS: Enabled throughout

Domains

Nextcloud

  • https://private.butterflyfiduciary.com

HPB

  • https://talk.butterflyfiduciary.com

TURN

  • turn.butterflyfiduciary.com

Cloudflare Tunnel

  • private.butterflyfiduciary.comlocalhost:8080
  • talk.butterflyfiduciary.comlocalhost:8181

TURN is exposed separately using a DNS-only record.


Client Devices

Desktop

  • Linux
  • Brave Browser (latest available)
  • Camera permission granted
  • Microphone permission granted

Mobile

  • Apple iPhone

HPB Configuration

The HPB is configured using:

  • NC_DOMAIN
  • TALK_HOST
  • TURN_DOMAIN
  • TURN_SECRET
  • SIGNALING_SECRET
  • INTERNAL_SECRET

All secrets have been verified and match those configured within Nextcloud.


Configuration Verification

The following checks have been completed successfully:

  • HPB starts correctly.
  • Janus starts correctly.
  • HPB welcome endpoint returns HTTP 200.
  • WebSocket upgrade succeeds.
  • Nextcloud connects successfully to HPB.
  • TURN server is configured correctly.
  • TURN secret verified.
  • Signalling secret verified.
  • TURN configuration confirmed using occ talk:turn:list.
  • Signalling configuration confirmed using occ talk:signaling:list.
  • IPv6 relay configured.
  • TLS certificates valid.
  • HTTPS functioning correctly.

Software Versions

Verified using:

  • occ status
  • occ app:list

Current versions:

  • Nextcloud Server 33.0.3
  • Nextcloud Talk 23.0.9

Behaviour Observed

Desktop initiates a call

  • The iPhone receives the incoming call notification.
  • The iPhone answers the call successfully.
  • After answering, the iPhone displays:

“Waiting for others to join the call.”

  • The iPhone appears to believe it has joined the call successfully.
  • However, the desktop does not transition into the same active call.
  • No audio is established.
  • No video is established.
  • The call never progresses beyond this point.

iPhone initiates a call

  • The desktop receives notification of the incoming call.
  • The browser does not present a normal Answer button.
  • The desktop never joins the active call.
  • No audio or video session is established.

HPB Log Behaviour

HPB logs indicate:

  • Backend initialises successfully.
  • Janus initialises successfully.
  • Room creation succeeds.
  • Participant registration succeeds.
  • Media publishing begins.
  • No obvious HPB startup or runtime errors are observed.

Diagnostics Already Performed

The following troubleshooting has already been completed:

  • Verified HPB welcome endpoint.
  • Verified WebSocket connectivity.
  • Verified HPB backend registration.
  • Verified TURN configuration.
  • Verified signalling configuration.
  • Verified matching TURN secret.
  • Verified matching signalling secret.
  • Restarted HPB container.
  • Restarted Nextcloud container.
  • Updated Nextcloud Talk from 23.0.8 to 23.0.9.
  • Confirmed current versions.
  • Reviewed HPB logs during call attempts.

Summary

The HPB appears to initialise correctly.

Janus starts correctly.

TURN appears correctly configured.

The signalling server is reachable.

The WebSocket endpoint responds correctly.

The HPB backend successfully registers with Nextcloud.

Incoming call notifications are successfully delivered between devices.

However, although signalling appears to function sufficiently for incoming call notifications, the media session itself never establishes successfully.

Observed behaviour:

Desktop → iPhone

  • Phone rings.
  • Phone answers.
  • Phone displays “Waiting for others to join the call.”
  • Audio/video session never establishes.

iPhone → Desktop

  • Desktop receives incoming call notification.
  • Browser does not display an Answer button.
  • Desktop never joins the active call.
  • Audio/video session never establishes.

Additional Observation

The message “Waiting for others to join the call.” strongly suggests that the iPhone believes it has successfully entered the call. However, the desktop client does not transition into the same call state. This may indicate a problem with call-state synchronisation between clients or with the signalling process after the initial call notification, rather than a basic HPB or TURN configuration issue.


Assistance Requested

I would appreciate guidance on the following:

  1. Is this behaviour a known issue involving:
    • Nextcloud Talk 23.x
    • HPB
    • iPhone clients
    • Brave Browser
    • Cloudflare Tunnel deployments?
  2. Are there additional debug logging options that can be enabled for:
    • Nextcloud Talk
    • HPB
    • Janus
    • WebRTC negotiation
    • Client signalling
  3. Is there any known issue that would explain:
    • an incoming call arriving on the desktop without presenting an Answer button?
    • an iPhone successfully answering a call but remaining on “Waiting for others to join the call.” indefinitely?

Additional Information Available

If required, I can provide:

  • HPB logs
  • Nextcloud logs
  • Docker Compose configuration (with secrets redacted)
  • TURN configuration
  • HPB environment variables (redacted)
  • Browser console output
  • Additional diagnostics upon request

Thank you for taking the time to review this report. Any assistance or recommendations for further diagnostics would be greatly appreciated.


Hello @penfold, welcome to the Nextcloud community! :handshake:

STUN/TURN requires direct connection from each involved party to the turn server - from clients as well. as first hint I recommend to test a call when both clients are in the same network - if this works the problem is 100% related to STUN/TURN.. look at Nextcloud TURN is not healthy, talk calls will not connect off of local network there are lot of hints on client-side troubleshooting.

you stated you exposed turn using dedicated DNS record.. I’m unsure if AiO talk image can be setup this way. please explain how you implement this?

regards
@wwe