Skip to main content

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

  1. 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.

  2. 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.

  3. 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.