Ledger Chat
Voice and video calls
How calls connect, how they are encrypted, and what they reveal about your network.
Calls in Ledger Chat connect your browser directly to the other person's browser using WebRTC, the technology built into every modern browser for real time audio and video.
Encryption
WebRTC always encrypts audio and video with DTLS-SRTP. The keys are negotiated between the two browsers, so a server that helps set up the call or relays its traffic cannot decode it.
How a call connects
Signalling
The two browsers exchange connection details through the public PeerJS signalling service. It sees an identifier for each side and when the call is set up, not the audio or video.
Finding a route
Each browser asks a STUN server, operated by Google, for its public network address so the two can try to connect directly.
Direct or relayed
If a direct connection is not possible, for example behind a strict company network, the call is relayed through the public OpenRelay TURN service. The relay passes encrypted packets and cannot decode them.
Your IP address
In a direct call the other person's browser learns your IP address, which can reveal your approximate location. To avoid this, turn on Hide my IP address in calls in settings. Every call is then relayed, which hides your address from the other side at the cost of slightly higher latency.
Group calls
Communities can start a group call that members can join from the community page. Group calls use the same encryption as one to one calls.
Your browser asks for permission before Ledger Chat can use your microphone or camera. You can withdraw it at any time from the address bar.
