ExoVoIP app
The ExoVoIP app brings your phone system extension to smartphones, tablets and computers: same number, same calling rules and same directory, at the office, at home or on the road. It is available for iPhone, iPad, Android, Mac and Windows and is included with the phone system, with no per-device fees.
How it works
Every linked device becomes an extension of your extension:
- callers always dial the company number and don't know where you are answering from;
- outgoing calls show the extension's number and follow the same permissions;
- each device is linked and unlinked on its own, without touching the desk phones.
Computers (Mac and Windows): the app stays connected as long as the computer is on and the app is open, even minimized to the menu bar or the notification area. Calls arrive immediately, with a window in the foreground and a notification.
Smartphones and tablets (iPhone, iPad, Android): to save battery the app does not stay connected in the background. When a call arrives, the phone system sends a notification that wakes the app in a couple of seconds: the phone rings like a regular call, even with the app closed and the screen locked. That's why the app's notifications must stay enabled.
Installation
Download ExoVoIP from your device's store:
| Device | Where to get it |
|---|---|
| iPhone and iPad | App Store |
| Android | Google Play |
| Mac | Mac App Store |
| Windows | Microsoft Store |
On first launch the app asks for permission to use the microphone and to show notifications: allow both, otherwise you won't be able to receive calls.
Direct download for Windows
If the Microsoft Store is not available in your company, download the installer directly from our server:
https://centralino.exovoip.it/api/v1/app-releases/download/windows
The link always points to the latest official version. The file is digitally signed by Exobyte: Windows recognizes it as a trusted publisher, and the download can be resumed if it is interrupted.
Updates
The app installed from the website updates itself: it periodically checks for a new version, downloads it in the background and offers to install it. Before installing it verifies Exobyte's signature, so a tampered file is never run.
When a version is too old to work properly with the phone system, the update is mandatory: the app tells you and updates before connecting. Versions downloaded from the stores are updated by the store itself.
Linking a device
Devices are linked from the control panel, in the extension's App tab. Administrators can do it for any extension, users for their own.
- In the control panel open the extension, App tab, and press Generate link code.
- On the device open ExoVoIP and choose Scan the QR code, or Enter the code.
- Scan the QR code shown in the control panel or type the 8-character code (for example
K7QP-4M2X).
The code is valid for 10 minutes and can be used only once: generate a new one to link another device. As soon as linking succeeds, the device appears in the Linked devices list.
Tip: on a computer you don't need the QR code. Open the control panel on another device, or copy the code and paste it into the app.
Under Advanced options you can give the device a name (for example "Mario's iPhone"): you will see it in the list of linked devices. There is no address to enter: the app connects to the ExoVoIP service by itself. A QR code that does not come from your ExoVoIP control panel is rejected.
Linking with email and password
If an extension is assigned to your control panel user, you can also link the device without a code:
- On the device open ExoVoIP and choose Sign in with email and password.
- Enter the email and password you use for the phone system's control panel (the eye icon shows the password while you type it).
- If your account is protected by two-step verification, the app also asks for the 6-digit code from your authenticator app.
- Press Sign in and link: the device is linked to your extension and appears under Linked devices.
Your password is only used for linking and is never stored: from then on the device uses its own access key, which you can revoke at any time with Unlink. The same protections as the control panel sign-in apply: after too many wrong attempts sign-in is blocked for a few minutes. If no extension is assigned to your user, ask your administrator to assign one or to generate a link code for you.
When the app rings
In the App tab choose how linked devices ring compared to the extension's phones. The setting applies to all the extension's devices.
| Mode | What happens | Example |
|---|---|---|
| Together with phones (default) | App and phones ring at the same time | Answer at your desk or on your mobile, wherever you are |
| Phones first | Phones ring immediately, the app after the chosen delay (1 to 60 seconds) | 10-second delay: at the office you pick up the desk phone, away the app rings |
| App first | The app rings immediately, phones after the chosen delay | You are often on the move: the call reaches your mobile first |
| Only if phones don't answer | The app rings when phones are busy, offline or nobody answers | The app is your backup when you're away from your desk |
| App only | Only linked devices ring | You work from home and have no desk phone |
| Does not ring | The app doesn't receive calls, but you can use it to call with the extension number | You want to call from your laptop without being disturbed |
The mode works together with the extension's other settings: Do Not Disturb also stops the app, and forwarding to mobile kicks in after the phones and the app.
Linked devices
The list in the App tab shows each device's type (iPhone, iPad, Android, Mac, Windows), name, app version, last access and status:
| Status | Meaning |
|---|---|
| Notifications on | Smartphone or tablet ready: it wakes up on its own when a call arrives |
| Open the app to reactivate | The device can't be alerted about calls: open the app and allow notifications |
| Connected | Computer with the app open, ready to receive calls |
| Not connected | Computer off or app closed: it will receive calls again as soon as you reopen the app |
| Online now | The smartphone or tablet is in use right now |
Each extension can have up to 20 linked devices.
Unlinking a device
Press Unlink next to the device and confirm. The effect is immediate: the device stops receiving and making calls with the extension right away. Always do this when a phone is lost, replaced or returned. To use it again, all you need is a new link code.
Company activation
The app is active for all companies. If the App tab shows "ExoVoIP app not active", contact Exobyte to enable it. When the app is disabled for the company, all linked devices stop receiving and making calls.
Troubleshooting
The smartphone doesn't ring with the app closed
- In the control panel check that the device shows Notifications on. If it shows Open the app to reactivate, open ExoVoIP: the app reactivates on its own.
- Make sure ExoVoIP notifications are allowed in the phone settings (on iPhone: Settings › Notifications › ExoVoIP).
- With the phone's _Focus_ or _Do Not Disturb_ modes calls may be silenced: add ExoVoIP to the allowed apps.
Android: calls arrive late or not at all
- Exclude ExoVoIP from battery optimization: Settings › Apps › ExoVoIP › Battery › Unrestricted.
- On some models (for example Xiaomi, Huawei, Oppo, Samsung) also enable autostart and turn off power saving for ExoVoIP.
- Allow full-screen notifications, so the call appears even with the screen locked.
The computer shows Not connected
- Make sure the app is open (even just in the menu bar or notification area) and the computer is not asleep.
- In the app settings turn on launch at login, so ExoVoIP opens on its own at startup.
No audio, choppy audio or dropped calls
- Try another network: switch from Wi-Fi to mobile data or vice versa.
- Corporate or hotel networks with very strict rules may block some connections: report the issue to Exobyte support.
- Check that you have allowed the app to use the microphone.
The code is not accepted
- The code is valid for 10 minutes and only once: generate a new one from the control panel.
- If the device limit is shown, unlink a device you no longer use.
- If the app says the QR code is not an ExoVoIP link code, scan the QR code shown in the App tab of the control panel.
Signing in with email and password fails
- Use the same details you use for the phone system's control panel; if you don't remember them, reset them from the control panel sign-in page.
- With two-step verification, enter the code currently shown in your authenticator app: it changes every 30 seconds.
- After too many wrong attempts sign-in stays blocked for a few minutes: wait and try again, or use a link code.
- If you see "No extension is assigned to your user", ask your administrator to assign an extension to your user.
For developers
The same features are available through the API, scopes extensions:read / extensions:write. The user role can use them on their own extension.
| Request | Scope | SDK |
|---|---|---|
GET /v1/extensions/:id/app | extensions:read | extensions.getApp() |
PUT /v1/extensions/:id/app | extensions:write | extensions.setApp() |
POST /v1/extensions/:id/app/activation | extensions:write | extensions.createAppActivation() |
DELETE /v1/extensions/:id/app/devices/:deviceId | extensions:write | extensions.revokeAppDevice() |
PUT /v1/extensions/:id/app accepts ringMode (together, delayed, app_first, fallback, app_only, off) and ringDelayS (1 to 60, used by delayed and app_first). The POST …/app/activation response contains code, url (the QR content, exovoip://activate?…), expiresAt and maxUses (activations allowed with the code, normally 1).
The POST …/app/activation body is optional and reserved for the platform administrator: { "validDays": 30, "maxUses": 10 } creates a code valid for up to 30 days (validDays 1 to 30) that can be used several times (maxUses 1 to 50), for example for app store review or to link several devices with the same QR. If a company administrator or a user sends either field the request is rejected (403); without a body the code stays single-use and valid for 10 minutes.
Each device in the list includes platform (ios, ipados, android, macos, windows), name, appVersion, pushReady (notifications on, always true for computers), pushEnv (production or sandbox, relevant only for iPhone and iPad), registered (connected right now) and lastSeenAt.
The desktop app update check is public (no authentication, rate limited per address): GET /v1/app-releases/latest?platform=windows&channel=stable¤t=1.4.2 returns the signed manifest of the latest published version, the file address, updateAvailable and mandatory (installed version lower than minVersion). The file is downloaded from GET /v1/app-releases/files/:platform/:version/:name, with Range request support to resume interrupted downloads. Release management (/v1/app-releases, scope system:read / system:write) is reserved to the platform.
Company activation (GET/PUT /v1/tenants/:id/app, body { "enabled": true }) is reserved for the platform administrator; the response also includes the number of linked devices.