1. Tuple API Backend
Tuple needs to be able to access our API for authentication and user list population. Please verify Tuple can access:2. TURN Relay Servers
When it’s not possible to obtain a peer-to-peer connection through local or public networks, Tuple uses Cloudflare to route media data through TURN servers. Please verify Tuple can access Cloudflare’s current IP addresses.3. Signaling servers
Tuple uses signaling to facilitate the initiation of calls between peers and to provide availability (active/inactive/busy) status updates to clients. Please verify Tuple can access:- tuple-production.firebaseio.com
- production.stream.tuple.app
- securetoken.googleapis.com
- www.googleapis.com
4. STUN servers
Tuple uses STUN to obtain a peer-to-peer connection through local or public networks. Please verify Tuple can access:- stun.l.google.com
- stun1.l.google.com
- stun2.l.google.com
5. Background updates, Logs, Analytics, and Crash reporting
When it can, Tuple tries to do background app updates. Tuple also monitors certain events and analytics data in order to constantly improve performance. Analytics events go through the Tuple API backend. Please verify Tuple can access:- d32ifkf9k9ezcg.cloudfront.net
- ingest.sentry.io
- graphite-prod-10-prod-us-central-0.grafana.net/
- logs.us-east-1.amazonaws.com
6. Ports for peer-to-peer Traffic
If allowed, Tuple (using WebRTC) will create peer-to-peer connections. The connections will be UDP or TCP traffic, but the ports used are dynamic. Here are some firewall rules that are recommended for using WebRTC service: Minimum Requirement: TCP ports 80 and 443 are open. Some firewall rules only allow for TCP traffic over port 443, make sure that all traffic can pass over this port. Best Experience: In addition to the minimum requirements being met, we recommend that UDP ports 1025 - 65535 be open. Explicit Firewall rules for your IT department: 443/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 53/udp ALLOW Anywhere 443/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 53/udp (v6) ALLOW Anywhere (v6) 53/udp ALLOW OUT Anywhere 80/tcp ALLOW OUT Anywhere 443/tcp ALLOW OUT Anywhere 443/udp ALLOW OUT Anywhere 53/udp (v6) ALLOW OUT Anywhere (v6) 80/tcp (v6) ALLOW OUT Anywhere (v6) 443/tcp (v6) ALLOW OUT Anywhere (v6) 443/udp (v6) ALLOW OUT Anywhere (v6)Audio traffic priority
Tuple marks call audio packets with the DSCP Expedited Forwarding (EF) value. Routers and access points that honor DSCP can send call audio ahead of screen sharing, webcam video, and other traffic on the same link. Screen sharing and webcam video use the default DSCP value. On macOS, Tuple also places call audio in the Wi-Fi voice access category.Calls on the same local network
For a two-person call, Tuple automatically tries to connect your computers directly. When Tuple selects a working local connection, screen sharing and remote-control traffic travel over your LAN. You don’t need to enable a LAN mode or configure port forwarding. Being on the same Wi-Fi or Ethernet network doesn’t guarantee that call traffic stays local. Tuple can select another working path, including a direct internet connection or a TURN relay. Calls that use a media server send screen sharing through that server, even if remote-control traffic uses a direct peer connection. Larger calls can switch to a media server and continue using it after participants leave. If you want Tuple to use your local network, check the following:- Local connectivity: Allow the computers to reach each other. Guest Wi-Fi, client isolation, separate VLANs, and host firewalls can prevent local connections. Allow Tuple’s peer traffic, preferably over UDP. Peer connections use dynamic ports, as described above.
- VPN routing: Check whether your VPN allows local-network access or routes traffic through a remote endpoint.
- macOS permissions: Enable Tuple in System Settings > Privacy & Security > Local Network if it appears there.
- Windows settings: Leave Force TURN and Force Media Server off in Network settings unless you need them to work around a connectivity issue. Force TURN requires a relay. Force Media Server sends media through a server.
Proxies
On macOS, Tuple uses the proxy settings in System Settings > Network, including proxy auto-configuration (PAC) files. This support requires Tuple 3.3.5 or later. On Windows, Tuple uses your Windows proxy settings, including PAC files. This support requires Tuple 2.0.10 or later. Tuple sends this traffic through the proxy:- Sign-in and the Tuple API
- The signaling connection that loads your contacts and starts calls
- TURN relay traffic over TCP and TLS
- Tuple supports HTTP and HTTPS proxies. It doesn’t support SOCKS proxies or proxies that require a username and password.
- Your proxy must allow
CONNECTrequests to the TURN relay servers listed above. - If your proxy inspects TLS traffic, install your organization’s root certificate in your Mac’s keychain and trust it. Tuple accepts TURN servers that your Mac trusts.
- If a PAC file can’t be loaded or doesn’t answer within 10 seconds, Tuple connects directly.
VPN and Firewall Related Lag
Tuple calls can use peer-to-peer connections, and some VPNs can cause network traffic to be routed through the internet very inefficiently. Please ensure your VPN settings do not cause this:- Pick a VPN endpoint that is in a more local geographic location to the participants on the call.
- Ensure that the VPN is allowing UDP traffic. If possible, set a VPN configuration which would avoid sending this traffic through the VPN.
- Updating your firewall to bypass SSL decryption will prevent unnecessary added lag.
- Allow a reasonable MTU (Maximum Transmission Unit) for streaming video.
- Review any intelligent filtering software in use to ensure it’s not affecting packet transmission.
If Tuple is stuck “Connecting…”
Tuple can get stuck connecting when you’re using a VPN. If Tuple was previously working, please verify that your VPN settings have not changed. If you have ruled out a VPN settings change as the root cause, please:- Confirm that you have the latest version of Tuple
- Confirm that Tuple has access to the Tuple API Backend (listed above). If your network requires a proxy, confirm it’s set in your Mac’s network settings. See Proxies.
- Restart your computer. This can fix issues with a system macOS service that can get into a bad state unrelated to Tuple
- If restarting did not fix the issue, run a process sample of Tuple while the issue is happening by opening Activity Monitor, double clicking on Tuple, and clicking “Sample” in the bottom left and send that to us at support@tuple.app.

