Callyou
EN
Get Callyou

How it works

A phone line between your own devices.

Here is what happens when the kids tap your name, in plain words, and what each part along the way can and can't see. You don't need any of this to use Callyou. It's here for the curious.

In short

  1. Every device makes its own key. Its secret half never leaves the device.
  2. Devices you pair trust each other's keys, and nobody else's.
  3. A call is set up over an encrypted link between the two devices, and the sound and video travel encrypted from one to the other.
  4. When a phone is asleep, a small server wakes it. When two devices can't reach each other, a relay passes the call along, still encrypted.

01 · A key of its own

Every device is its own phone number

DEVICEKEYMINO

When you open Callyou for the first time, the device makes a key: a long secret number, and a public half that works like its address. The secret half never leaves the device. On a phone it is kept in the phone's own secure key storage.

The public half is how other devices know this device is really this device. It is also where its mino comes from: the key draws the mino, so the same device always shows the same one, on every screen.

Because the key never leaves the device, there is no account to sign in to, and nothing to steal from a server. A new or restored phone makes a new key, and you pair it again.

02 · Pairing

Only devices you paired can ring

CODESCANREQUESTTABLET

Two devices trust each other only after you pair them. One shows its code, as a QR code or a link. The other scans the code or opens the link, and sends a request. The first shows the request with the mino of the device that asked, and you check that it matches the one on the other screen before you accept.

From then on, each keeps the other's public key. When a call comes in, the device checks the caller's key against the devices it paired, and turns down any other before it rings. There is no phone number to guess and no directory to look anyone up in.

03 · Finding each other

Dialling a device by its key

RELAY

Home networks hide devices behind their routers, so two devices can't simply find each other. Callyou uses iroh, an open source networking library, to dial a device by its key. Each device keeps in touch with a relay server, so the other can reach it. When you call, the two devices try to connect to each other directly, through their routers, and keep using the relay when they can't.

Either way the link is encrypted, and each end proves it holds its key, so nobody can pretend to be one of your devices. Today these relays, and the address book that points to them, are the public ones that n0, the makers of iroh, run. They see which keys are online and connect to each other, and the devices' internet addresses, but not what passes between them.

04 · The call

Sound and video, encrypted end to end

Over that link, the two devices agree on the call: what each can send and receive, and how to reach each other. Then the sound and video travel over WebRTC, the same technology browsers use for video calls.

The call is encrypted on one device and opened on the other. The two devices check each other's encryption keys over their own encrypted link, so no server in between can slip in and listen.

RELAY

Some networks keep two devices from reaching each other. The call then passes through Callyou's relay server, a TURN server in the Netherlands. It stays encrypted end to end, so the relay can't see or hear it. It sees both devices' internet addresses and how much data passes.

05 · Waking a phone

How a sleeping phone still rings

PUSHzz

A phone that's asleep can't hear a call arrive, and keeping a connection open all day would drain its battery. So the calling device asks Callyou's push service to wake it. The push service sends a small wake-up through Apple on an iPhone, through Google or your own UnifiedPush app on Android, or through your browser's push service. The phone wakes, connects, and rings.

The push service keeps one thing per device: its public key and its push address. It never learns a name. A computer stays running to ring, so it is never woken.

06 · What each server sees

Who knows what

No server ever sees or hears a call, and none learns a name. This is what each one does see.

ServerWhat it sees
Iroh relays, run by n0Which device keys are online and connect to each other, when, and their internet addresses.
Callyou's push serviceEach device's key and push address. When a device asks it to wake another, it sees both keys and the asking device's internet address, and keeps no record of the call.
Callyou's relay serverThe internet addresses of devices on a call, when, and how much data passes. Devices check in with it on most calls, even ones that end up going direct.
Apple, Google, or your push appThat a wake-up goes to a device. On an iPhone, Apple's wake-up carries the calling device's key. On Android and in a browser, the wake-up is encrypted for the phone alone.

Our privacy page says how long each one keeps it.

Don't take our word for it

Everything on this page is open source: the apps, the engine they share, and the software on our servers. Read it, or ask someone you trust to.

See the source code