Cenaly Phone: direct calls between devices
Cenaly Phone can call from device to device directly — phone to phone, phone to computer and back — without a PBX, a SIP server or a Cenaly account. Devices pair once, and after that they call each other straight away. In the same network (Wi-Fi at the office, in a warehouse, at home) the call goes over the local network and works even without internet; with “Calls over the internet” turned on, it works between different networks too. The call and its audio are encrypted with your devices' keys, and the pairings and the call history are stored only on the device.
Which version you need#
| Where | Direct calls |
|---|---|
| Android | Yes: pairing “Nearby”, by QR code (show and scan), by link, by address; incoming calls over the internet — in the background |
| iPhone | Yes: the same pairing methods; incoming calls over the internet — in the background and on the lock screen, on the system call screen |
| Windows | Yes: no camera for QR — instead of the scanner you paste a link or the QR text; calls — while the app is running |
| Ubuntu | Yes, if the computer has a keyring (Secret Service); otherwise as on Windows |
| Cenaly Phone browser extension | No |
What you need#
| What | Why |
|---|---|
| Cenaly Phone on both devices | Direct calls work only between Cenaly Phone apps |
| The same network — or internet on both | In the same network the call goes directly; between different networks — via “Calls over the internet” |
| Both devices at hand while pairing — or a way to pass a link | “Nearby”, the QR code and the address are for devices in front of you; an invitation link can be sent in a messenger |
You don't need a Cenaly account. If you are signed in to Cenaly Phone with a staff account, direct calls work next to the work line, and signing out of Cenaly doesn't remove them.
Turning it on#
Without a Cenaly account. On the app's first screen choose “Direct calls between devices” (“Call your phones and computers in the same network or over the internet. No account needed.”). Direct calls turn on and the “Add device” screen opens right away. From then on the app starts as a softphone rather than on the sign-in screen.
With a Cenaly account, or later. Settings → “Direct calls” → “Turn on direct calls”.
What Settings → “Direct calls” contains:
| Item | What it does |
|---|---|
| “Device name” | Up to 32 characters. “Devices you pair with see this name. Do not use your full name.” |
| “Visibility in the network” | “Only my devices” (default) — the device announces itself in the network without a name, and only paired devices can recognise it. “Off” — don't announce at all. “Everyone nearby” — “While “Add device” is open, everyone nearby sees this device for up to 10 minutes.” |
| “Unknown devices” | “Reject silently” (default) or “Show with a warning” |
| “Calls over the internet (Cenaly server)” | On by default. “When off, the app never contacts Cenaly for direct calls; they work only in the same network.” |
| “Server region” | “Automatic”, “International (cenaly.com)” or “Russia (cenaly.ru)” |
| “Always via Cenaly server” | “Hides your network address from the other device. Uses the daily server limit.” Works only with calls over the internet turned on |
| “Show my status to paired devices” | On by default: paired devices see on their lamp whether you are free or on a call |
| “My devices”, “What Cenaly sees” | The list of pairings and an explanation of what goes to the server |
| “Delete key and all pairings” | Erases this device's key and all pairings. “All your devices will have to pair with this one again.” |
Pairing#
Pairing is done once for each pair of devices. Open “My devices” → “Add device” (or the add button on the lamp board) and choose a method.
| Method | How | When it fits |
|---|---|---|
| “Nearby” | Open “Add device” on both devices in the same network and tap the other one in the list. Both screens show “Compare the code” — six digits and the question “Does “…” show the same code?”. If the digits are the same, tap “Matches” on both | Both devices are on the same Wi-Fi or office network |
| “Show QR code” / “Scan QR code” | Show the QR code on one device and point the other one's camera at it. The code refreshes itself — “The code will refresh in … s” — and is valid for no more than 2 minutes | The devices are in front of you; the pairing is verified at once — you saw the screen with your own eyes |
| “Send an invitation link” | A link for a messenger, valid for 5 minutes. A pairing made by link is “Not verified” until you compare the security code (below) | The other device is far away |
| “By network address” | Enter the other device's IP address, e.g. 192.168.1.20. The other device shows its own as “Address of this device: …”. Then the same six-digit code |
The “Nearby” list is empty: the network blocks device discovery |
After pairing you see “Device “…” added” and an “Undo” button — in case you added the wrong device.
If the digits differ and you tap “Does not match”, pairing is cancelled: “Pairing cancelled. Someone may be interfering — pair with a QR code instead.” After three failed attempts within 10 minutes there is a pause: “Too many attempts. Try again in 10 minutes.”
Invitation link#
- On the first device: “Add device” → “Send an invitation link” — send the link, which looks like
https://cenaly.com/p2p/pair#…, by messenger or email. - On the second device copy the whole link, open “Add device” and tap “Open an invitation link” — the app takes the link from the clipboard.
- Compare the security code (the section below) to make the pairing verified.
The link is valid for 5 minutes. Everything after the # sign is never sent to the server — these are the pairing keys, and they stay between your devices.
My devices and the security code#
Settings → “Direct calls” → “My devices” — the list of paired devices with a status lamp. Pairings that haven't been compared yet are marked “Not verified”. While there are none — “No paired devices yet”.
On a device card:
- “Name on this device” — how to label the device for yourself. If the other side changes its own name, your label isn't overwritten.
- Call.
- “Security code” — 12 digits. “Compare this code on both devices. If it is the same, tap “Matches”.” It's handy to read it out loud on the phone or when you meet. After “Matches” the “Not verified” mark disappears.
- “Check direct connection” — what prevents calling directly (see “Guest Wi-Fi and client isolation”).
- “Remove device” — remove the pairing. After that this device can't call you. If it is online, the pairing is removed on its side too — it shows “Pairing removed”.
Device lamps#
Paired devices appear as lamps on the BLF board — like PBX extensions (more about the board — “BLF lamps”):
| Where | Where to find device lamps |
|---|---|
| Android | The BLF board and Colleagues — the “Devices” filter and a button to add a device |
| iPhone | A separate section of device lamps on the lamps screen |
| Windows, Ubuntu | The BLF board — the “Devices” chip and the “+ Add device” button |
Devices tell each other whether they are free, ringing or on a call (“Available”, “Ringing”, “On a call”, “On hold”, “Do not disturb”, “Offline”). In the same network the status updates at once. Over the internet — only while your lamp board is open: a phone is never woken up just for a status. If a device can only be reached by waking it, the lamp is grey with the caption “Will answer when called” — you can call, but whether it is free is unknown. A device lamp without fresh data never shows “Available”.
Tapping a lamp or swiping right — call; swiping left — edit (the device card); the menu also has “Remove”. Device lamps have no pickup and no transfer. Whoever turns off “Show my status to paired devices” doesn't share their status.
The call#
You can call from the device card, from a lamp or from the Calls history. The call screen shows how the audio travels:
- “Direct” — between the devices, without servers;
- “Via Cenaly server (encrypted)” — the audio goes through the Cenaly server and stays encrypted (see “Calls over the internet”).
While the device is waking up — “Waking the device…”; if the network changes mid-call (for example, the phone leaves Wi-Fi for mobile data) — “Restoring the connection…”.
If “Show with a warning” is selected in the settings, a call from an unknown device comes with an “Unknown device” banner and the caption ““…” — this is how it named itself”. An unknown device picks its own name, so don't take it at its word. Buttons: “Block” and “Add to my devices”. With “Reject silently”, such calls don't reach you.
The direct call history is stored only on the device; in the no-account mode, direct calls appear in Calls together with calls on your own SIP lines.
Calls over the internet#
If the devices are in different networks — say, one phone at the office and another with a courier on mobile data — both need “Calls over the internet (Cenaly server)” (on by default).
- The Cenaly server works as an anonymous postman: it passes sealed call messages between devices and wakes the phone with a notification. No account is needed, and it's free.
- Whenever possible the audio goes directly. If the network doesn't allow a direct connection, the audio goes via the Cenaly server — still encrypted.
- Only audio goes through the server, and no more than 60 minutes a day per device. When the limit is used up you see “Today’s limit for calls via the Cenaly server is used up” — calls in the same network and direct connections keep working.
- “Always via Cenaly server” hides your network address from the other device, but every call uses this daily limit.
- Turn off “Calls over the internet” and the app doesn't contact Cenaly for direct calls at all; you can only call within the same network.
Incoming calls in the background#
| Where | In the same network without internet | Over the internet |
|---|---|---|
| Android | When “Always receive calls” is on or the app is open; otherwise the app warns: “Direct calls in the same network arrive only while the app is open.” | An incoming call wakes the phone with a notification — in the background too |
| iPhone | Only while the app is open | In the background and on the lock screen — on the iPhone system call screen |
| Windows, Ubuntu | While the app is running (it lives in the notification area) | While the app is running |
What Cenaly sees#
Settings → “Direct calls” → “What Cenaly sees” says it plainly: “Calls between your devices go directly and are encrypted. To reach a device over the internet, the Cenaly server passes sealed messages between devices and wakes the phone. It sees device keys, times and network addresses, but not names, content or sound.”
| “Calls over the internet” off | “Calls over the internet” on | |
|---|---|---|
| What goes to Cenaly | Nothing | Devices' public keys, the notification (push) address, sealed messages — their time and size, network addresses; for a call via the server — encrypted audio |
| What the server doesn't see | — | Device names, numbers, the call history, the content of messages and the audio |
- A sealed message waits for delivery for no more than 2 minutes and is deleted from the server no later than 15 minutes after that.
- The device registration and the notification address are deleted after 60 days without an update and are never matched with Cenaly accounts.
- To find a path over the internet, the device asks a STUN service for its public address. With the “International (cenaly.com)” server region this is Cloudflare's public service (
stun.cloudflare.com): it sees the device's network address and nothing else — no keys, messages or audio. - The device keys are kept in the system store: on iPhone — in the Secure Enclave, on Windows — in the Windows protected store, on Ubuntu — in the keyring.
- Cenaly's cloud features — call recording, the assistant, the transcript, speech translation — are off for direct calls.
- Pairings, keys and the direct call history are stored only on the device. Signing out of Cenaly doesn't erase them; only “Delete key and all pairings” does.
A lost device and a new phone#
Direct calls have no account and no central revocation: Cenaly doesn't know which devices are yours, and there is no way to “block the phone in the cloud”. So if a device is lost or stolen:
- On each of your remaining devices open “My devices” → the lost device → “Remove device” (“Lost a device? Remove it here on each of your devices.”).
- Ask colleagues who had it in their “My devices” to do the same.
After that the lost device can't call any of you.
A new phone has to be paired again: pairings can't be moved through the cloud. Remove the old device from “My devices” and add the new one by any method from “Pairing”. The same applies after “Delete key and all pairings” and after reinstalling the app.
Guest Wi-Fi and client isolation#
Guest and public Wi-Fi (cafés, hotels, business centres) often doesn't let devices see each other — this is called client isolation. The device card → “Check direct connection” shows what exactly is in the way:
| Check result | What to do |
|---|---|
| “Direct connection works” | Nothing — calls go directly |
| “The network does not let devices see each other (client isolation, public Wi-Fi). Calls will go over the internet.” | Keep “Calls over the internet” on; without it you can't call in such a network. For work, it's better to connect both devices to the main network rather than the guest one |
| “The network blocks device discovery. Pair by QR code or address — direct calls still work.” | The “Nearby” list will be empty, but pair by QR code or “By network address” — calls work |
| “The devices are in different networks.” | Calls go over the internet if it's turned on |
| “Cannot connect directly. Make sure both devices are in the same network and the app is open.” | Check the network on both devices and open the app |
A VPN works like a local network: devices in the same VPN call each other directly.
Is it safe on a public network? Direct calls are received on a single port (TCP 42917) and no SIP port is opened, so SIP phone scanners on public Wi-Fi have nothing to find. The app doesn't answer anyone it isn't paired with, and with “Only my devices” visibility it doesn't show its name in the network.
iPhone specifics#
- The device keys are kept in the Secure Enclave.
- On first use iOS asks for access to the local network — allow it. Without it, “Nearby” and calls in the same network don't work.
- The call uses the iPhone system call screen, like any call; over the internet, an incoming call also shows on the lock screen.
- Without internet, in the same network, incoming calls arrive only while the app is open.
- The QR code is scanned with the camera. Tapping an invitation link doesn't open it yet — copy the link and tap “Open an invitation link”.
Computer specifics: Windows and Ubuntu#
The sign-in screen has the same “Direct calls between devices” entry, and ⚙ has “Direct calls” (with or without an account). Differences from a phone:
- No camera. Instead of a scanner there is “Open an invitation link”: it pastes from the clipboard an invitation link or the QR code text of the other device. “Send an invitation link” copies the link to the clipboard.
- A pairing created by pasting is shown as “Not verified” on the computer — even if the phone in the same pair shows it as verified. Compare the “Security code” on both devices and tap “Matches”.
- Windows Firewall asks on first launch for permission for incoming connections (TCP 42917). Allow it for private networks — otherwise the computer can't be reached in the same network.
- Ubuntu keeps the keys only in the keyring (Secret Service — gnome-keyring or KWallet). Without it, direct calls don't turn on: “Device keys are unavailable, so direct calls are off.”
- Calls are received while the app is running; it lives in the notification area.
- Without a microphone or sound devices the call is receive-only — you hear the other side, but they don't hear you.
- A direct call on a computer has no tone keys and no transfer: the buttons are visible but unavailable.
- “Address of this device” may also list virtual network addresses (Docker, VPN). Pick the address in the same network as the other device.
The “Russia” server region#
With the “Russia (cenaly.ru)” region, calls over the internet aren't available. Calls in the same network already work. Pairs from different regions (one phone on “International”, the other on “Russia”) don't connect over the internet, but do in the same network. When calling over the internet isn't possible, the app shows “Internet calls are unavailable”.
Limitations#
- The Cenaly Phone browser extension doesn't support direct calls.
- Only between Cenaly Phone apps: you can't call a regular number or another vendor's SIP phone directly.
- No call transfer, group calls or video.
- Pairings aren't moved to a new phone through the cloud — only by pairing again.
- Recording, the assistant, the transcript and speech translation are off for direct calls.
- Via the Cenaly server — no more than 60 minutes of audio a day per device.
- “Russia” region: only calls in the same network.
Troubleshooting#
| Symptom | What to do |
|---|---|
| “No devices found. Open “Add device” on the other device too.” | Open “Add device” on both. If it's still empty, the network blocks discovery: pair by QR code or “By network address” |
| “Could not pair. Open “Add device” on the other device and try again.” | “Add device” must be open on the other device; check that both are in the same network and try again |
| “Too many attempts. Try again in 10 minutes.” | Three failed code comparisons within 10 minutes — wait or pair by QR code |
| “Does not match” when comparing the code | Pairing is cancelled — someone may be interfering. Pair by QR code |
| “The code has expired or is not a Cenaly pairing code.” | The QR code or link has expired — show a new code or send a new link |
| Tapping the invitation link doesn't open the app | That's how it is for now: copy the link and tap “Open an invitation link” on the “Add device” screen |
| “Check the date and time on this device.” | Turn on automatic date and time in the system — without it devices don't trust each other's messages |
| “Device unavailable” | The other device is off, offline or the app isn't running on it. Over the internet — check that “Calls over the internet” is on for both |
| “Could not connect audio (network)” | The network didn't let the audio through. Run “Check direct connection”; turn on “Calls over the internet” — then the audio goes via the server |
| “Today’s limit for calls via the Cenaly server is used up” | Call in the same network or wait for the next day; turn off “Always via Cenaly server” if you don't need it |
| “Internet calls are unavailable” | Turn on “Calls over the internet”; with the “Russia (cenaly.ru)” region, call in the same network |
| Lamp “Will answer when called” | The device can only be reached by waking it — call, and it will ring |
| Ubuntu: “Device keys are unavailable, so direct calls are off.” | Install and unlock a keyring (gnome-keyring or KWallet) and restart the app |
| A Windows computer can't be reached in the same network | Allow Cenaly Phone in Windows Firewall for private networks (TCP 42917) |
| iPhone doesn't see “Nearby” devices | Allow Cenaly Phone access to the local network in iOS settings |
FAQ#
Do I need a Cenaly account?#
No. Direct calls work without an email, a company or a plan. If you have an account, direct calls work next to the work line and aren't removed when you sign out of Cenaly.
Is it paid?#
No. Calls via the Cenaly server are free but limited: audio only and no more than 60 minutes a day per device. Direct calls don't count towards this limit.
Can I call a regular number or a SIP phone this way?#
No — only between devices with Cenaly Phone. For regular numbers you need a PBX: Cenaly's or your own.
Can I pair with a colleague's phone?#
Yes, with any device that has Cenaly Phone. Keep in mind: if a colleague loses their phone, you have to remove it from your “My devices” yourself.
Does Cenaly hear my conversations?#
No. The audio is encrypted with your devices' keys; even when it goes via the Cenaly server, the server doesn't decrypt it. Direct calls have no recording, transcript or assistant.
Which port should be open in the network?#
The app receives direct calls on TCP 42917. If the port is taken, it picks another free one and announces it itself in the QR code and in the “Nearby” search. No SIP port is opened.