STUN and TURN servers

Calls connect peers directly. STUN helps each side discover its public address; TURN relays the media when a direct path is blocked (strict firewalls, symmetric NAT, some mobile networks).

Defaults

Quibble ships working defaults so calls just work with no setup:

  • STUN: Cloudflare (stun:stun.cloudflare.com:3478) - free, no account.

  • TURN: Metered’s shared open relay - free, no account.

The default TURN is shared by every Quibble user and is rate-limited. It is fine for trying things out, but for reliable calls under strict networks, use your own.

Which servers need an API key?

STUN is usually keyless. TURN almost always needs credentials, because relaying traffic costs bandwidth. Common providers:

Provider

Needs key?

Notes

Metered (shipped default)

No (shared key baked in)

Rate-limited, shared by everyone

Metered (your own)

Yes

Free tier; sign up for a username + credential

Twilio

Yes

Pay per GB

Cloudflare Realtime TURN

Yes

Requires a token

Self-hosted coturn

You set it

Full control, no third party

Use your own server

Open Settings → STUN/TURN and fill in:

  • TURN Server - e.g. turn:your.host:3478

  • Username and Password / API key - from your provider

Your TURN server then replaces the shared default. Settings are stored locally on your device.

To set a default for every client a server hands out, start the server with TURN_URL, TURN_USERNAME, and TURN_CREDENTIAL (or a full QUIBBLE_ICE_SERVERS_JSON list). See server.md.