DocsCalls
How a Knit call reaches the other person
From any one-to-one chat you can make a live call, which works like a phone call, or a mesh call, which is hold-to-talk through up to three other Knit phones. Both are end-to-end encrypted, and no call audio is saved.
Checked against Knit 2.10.0
Knit suggests the kind of call that suits the connection you have right now, and you can always pick the other. Close by, two phones can call each other with no Internet and no relay. Farther apart, a live call goes over the Internet through a relay you both use, and a mesh call goes through the Knit phones between you.
Two kinds of call
| Live call | Mesh call | |
|---|---|---|
| Button | Voice call | Mesh call |
| How you talk | Both at once | Hold to talk, release to listen |
| Delay | Real time | About a second, more per hop |
| Travels over | Wi-Fi Direct, Wi-Fi or the Internet | Bluetooth and Wi-Fi Aware |
| Through other phones | Never | Up to three |
| Internet needed | Only when you're far apart | No |
When the radios can't reach the other phone, a mesh call can also go through a compatible Internet relay you both use. Neither kind of call uses a paired Meshtastic radio.
Making a call
- Open a one-to-one chat. Calls aren't available in group chats or the Nearby room.
- Tap the call button at the top. Knit puts the kind it suggests there: a live call when you can reach each other over the Internet or are close enough for Wi-Fi Direct, and a mesh call otherwise. The other kind is in the menu beside it.
- Your screen shows Calling…, then Ringing… once their phone rings. A call nobody answers rings for 45 seconds. If Knit can't find any way to their phone, it tells you, and gives up after about 15 seconds.
You can also call from someone's profile, which has a button for each kind. The first call asks for the microphone. With Prefer mesh calls on in Settings › Calls, the button in a chat always places a mesh call, and the live call moves to the menu.
When someone calls you
- Knit rings full screen, on the lock screen too, as long as Android lets it show full-screen notifications. Without that permission, a call arrives as a notification, and Settings › Calls tells you how to turn it on.
- Calls are registered with Android, so a headset button, a watch or a car can answer and hang up.
- Android gives app calls no hold, so answering a regular phone call ends the Knit call.
- Knit calls stay out of your phone's call log. Each one leaves a line in its chat instead.
- A call across the Internet rings only while your phone is connected to the relay you share. If the call only reaches your phone later, it shows up as a missed call.
Live calls
When two phones are close together, a live call can make its own Wi-Fi Direct link between them, so neither phone needs the Internet or a relay. While that link is up, Wi-Fi Aware pauses and Bluetooth keeps both phones on the mesh.
Farther apart, the call goes over a Wi-Fi network you share or over the Internet. The ringing travels through a relay you both use, as sealed messages. The audio goes straight from phone to phone when the networks allow it, and through a TURN server a relay offers when they don't.
If one of you changes networks, say from Wi-Fi to mobile data, the call shows Reconnecting… and carries on where it was. After 20 seconds with no connection, it ends as Call dropped, with a Call back button.
A live call starts on the earpiece, or on your headset if one is connected, and the screen goes dark while the phone is at your ear. The audio button moves the call to the speaker, a wired headset or Bluetooth.
Mesh calls
A mesh call works like a walkie-talkie. Hold the button to talk, for up to a minute at a time, and let go to send. The other phone plays your words as they arrive, about a second behind you when you're next to each other, and a little more for each phone in between.
Your voice goes over Bluetooth and Wi-Fi Aware: straight to the other phone when it's in range, or through up to three other Knit phones when it isn't. Those phones carry the sealed audio without being able to play it. When the call screen shows no notice, your voice is going straight to the other phone. Otherwise it says which way it's going:
- Going through other phones: there's no direct link, so other Knit phones are carrying it.
- Going through your relay: the radios have no path, so an Internet relay you both use is carrying it.
- Linking…: Knit hasn't found a way through yet. Anything you say that can't go is marked as not sent.
A mesh call starts on the loudspeaker, unless a headset is connected, and hangs up by itself after 10 minutes with nobody talking.
What a call keeps private
Both kinds of call are end-to-end encrypted. A mesh call uses the same encryption as your direct messages. A live call sets up keys of its own and checks them against both of your Knit identities. A relay, a TURN server or someone on the network can cut a call off, but can't listen in or join it.
Both kinds of call also have forward secrecy.
Encryption covers what you say. These details stay visible:
- Phones carrying a mesh call can see that call audio is passing through, and when.
- A relay carrying a mesh call sees both phones' IP addresses, which side is talking, and when and for how long.
- A live call that goes straight between phones shows each phone's IP address to the other.
- A TURN server carrying a live call sees both IP addresses, how long the call lasts and how much data it moves.
What's kept afterwards
No call audio is saved, on your phone or anywhere else. A mesh call skips whatever it loses and never turns into a voice note. To leave a message for someone you can't reach, send a voice note instead.
Each call leaves a short record in its chat, on your phone only, like "Outgoing call · 3:42" or "Missed call". A missed call also gets a notification.
Your call settings
Settings › Calls holds the choices about calls:
- Take live calls and Take mesh calls: turn either one off and that kind of call stops ringing on your phone. The caller sees No answer.
- Prefer mesh calls: the call button in a chat places a mesh call, and the live call moves to the menu.
- Relay all calls: every live call goes through a TURN server, as described above.
Getting ready to call
- Update Knit, and ask the people you call to do the same. Both phones need a version with calls.
- Allow the microphone when Knit asks, and allow full-screen notifications so calls ring on the lock screen.
- To call across the Internet, switch on a relay you both use.
- For mesh calls, keep Knit running with Bluetooth and Wi-Fi switched on, just as for messages.
What to expect
- Calls are one-to-one and voice only. There are no video calls, no group calls and no calls in the Nearby room.
- No call uses LoRa. A paired Meshtastic radio carries messages, not calls.
- A live call never goes through other phones, and a mesh call reaches only as far as three other Knit phones. For someone beyond that with no Internet, send a message: the mesh can carry it farther and hold on to it for up to a day.
- Calls across the Internet need a relay you both use, and ring only while the other phone is connected to it. Calls between nearby phones need neither.
- Encryption keeps what you say private, not the fact that you're calling. The list above says who can see what.
- Answering a regular phone call ends a Knit call.
Common questions
Do I need the Internet to call?
Not when you're close. Nearby phones make live calls over Wi-Fi Direct and mesh calls over Bluetooth and Wi-Fi Aware, with no Internet, cell service or relay needed. To call someone farther away, you both need the Internet and a relay you share.
Can the phones carrying a mesh call hear it?
No. Your voice is sealed with the same encryption as your direct messages, so the phones in between carry it without being able to play it. They can tell that call audio is passing through, and when.
Does Knit record my calls?
No. Knit saves no call audio anywhere. Only a short record of the call, such as who called and for how long, stays in the chat on your phone.
Will my calls show up in my phone's call history?
No. Knit calls stay out of Android's call log. You'll find each one in its chat instead.
Why did Knit suggest a mesh call?
Because it couldn't see a way for a live call to connect: no Internet on your phone and no Wi-Fi Direct link to theirs. You can still pick a live call from the menu, or turn on Prefer mesh calls if you'd rather always start with one.
Read next
Something here unclear, wrong, or missing? Tell us and we'll fix the page.
← All docs