HD call audio, a choice of HTTPS port during installation, LAN trunks and gateways that advertise the right address, safer repeat imports from 3CX, phone links that open the dialer, and easier voicemail and call-history cleanup.
Check after updating
- Local trunks and gateways have a LAN mode. For a provider appliance or FXO gateway on your
network, check Admin → Connectivity → Network → Host IP Address, then turn on
Use the configured LAN address for this SIP peer in the trunk's Options. Existing trunks
keep their previous mode until you choose it. IP-authenticated LAN peers use the PBX's LAN SIP
port 5082; registering gateways still register on 5060. Keep 5082 on the LAN, and leave
the public IP set to the real public address. See LAN trunks and gateways.
- Existing HTTPS installations stay on 443. No setting needs to be added to a working system.
New installations can choose a different port; forward the selected TCP port to the same port
on the host. Automatic certificate issuance still needs port 80 to reach Exovo.
- Update the Exovo app for HD audio and phone links. These app changes ship in 1.10.8.9;
updating the PBX alone does not update an installed app.
New
- Choose the HTTPS port during onboarding. Install on 5001, or another available port,
when 443 is already used at the public address. The console, provisioning, public links and
browser softphone use the selected port. Native backups record it, restore onboarding lets
you choose the destination port, and the SBC installer uses it for enrollment. SIP and tunnel
ports do not change. See installation.
- LAN mode for trunks and gateways. Local SIP peers can advertise the configured LAN address
for signaling and audio independently of the public IP used by internet providers and remote
clients. This avoids one-way audio and calls that stay connected after the far end hangs up
when a local peer is given an unreachable public address.
- Phone links open the dialer.
tel:, callto: and sip: links fill in the number in the
web client and Windows app. They prepare the call rather than placing it without confirmation.
- Administrator-controlled app enrollment. Untick Users can set up the Exovo app themselves
under Connectivity → Mobile to require an administrator-issued pairing code. Devices
already enrolled keep working; an administrator can revoke them separately.
- Bulk voicemail deletion and personal history cleanup. Select several voicemail messages
and delete them together. Remove from my history hides a call from your own list without
deleting the system's call record or other participants' history.
Improved
- HD audio throughout the call path. The system and Exovo app offer Opus and G.722 ahead of
G.711, and a bridged call offers the caller's codec first while retaining compatible alternatives.
Desk-phone defaults prefer G.722, analog adapters stay on G.711, and the Telnyx template includes
the HD codecs. Outside calls can stay in HD when the carrier and the other end support it;
narrowband-only routes still work. Hold music is also served at HD sample rates.
- One Windows app instance. Opening the app again or clicking a phone link brings the running
copy forward instead of starting a second app with its own connection.
- Copy chat messages in the app. Right-click a message and choose Copy on Windows, or
double-tap a message to copy it.
- Import capacity is checked before changes are made. The backup-import preview checks new
extension numbers against the license and tenant quota. If they will not fit, import is blocked
with an explanation instead of silently leaving out extensions above the limit. Updates to
existing extensions do not consume more capacity.
- Diagnostics show the SIP addresses in use. Support bundles include the configured and live
advertised addresses and profile ports, making a public-IP, LAN-IP or container-IP mismatch
easier to identify.
- Yealink T4x provisioning. Templates use fixed codec slots and the account's ring type, and
a provisioning refresh no longer asks the phone to reboot unnecessarily.
- voip.ms API credentials use a masked field in the provider template.
Fixed
- Holding the wrong side of a call from the web client. Hold now targets the extension's own
call leg rather than the other party's.
- Silence while a recorded inbound call rings. A default ringback is supplied when the
incoming call does not already have one.
- Duplicate voicemail on repeat 3CX imports. Delivered messages are tracked and skipped when
the same backup is imported again, including messages a user has since deleted. Matching copies
from older imports are also recognized. This prevents new duplicates; it does not bulk-delete
duplicates already in a mailbox.
- Gateway edits left the live identity behind. Saving a trunk now refreshes its running
gateway configuration, including authentication-ID changes, instead of requiring a core restart
to pick them up.
- Inbound caller ID became the gateway's name. Authenticated gateways no longer replace the
caller's name with a label such as SN4114-1. IP-authenticated provider trunks are unaffected.
- The configured host IP could lose to the container address. The saved network address takes
precedence, and the telephony core validates its SIP configuration before starting rather than
starting with an invalid advertised address.
- Short numbers matched unrelated DIDs. Suffix matching now needs at least four digits, so a
three-digit extension cannot accidentally match the end of a public telephone number.
- Outside callers could reach internal feature codes. Calls entering directly from a trunk
or bridge no longer get the site's intercom, pickup, parking or status codes. Normal internal
use and transfers of inbound calls remain available.
- Extension 112 can be created and imported. It is no longer in the reserved-extension list;
the other reserved numbers remain unchanged.
Office hours that close, a dial-out PIN for restricted phones, queue position announcements and callbacks offered while callers hold, remote restart, logs and updates for on-site SBCs, a voicemail menu on 3CX's keys, faxing from PNG and JPEG, and dozens of settings that were saved but never applied now doing what they say.
Check after updating
- Office hours now apply. Hours set under Office Hours were not being applied to calls or texts,
so inbound rules, ring groups, queues, IVRs and SMS always behaved as if the office were open (see
Fixed). From this release, calls outside your hours go to the out-of-hours destinations you set. If
those destinations were never tested, check them now.
- Voicemail uses 3CX's keys. Anyone used to the previous menu will find the keys have moved; the
new layout is under Improved.
- Queue callbacks are no longer offered at the start of the call. A queue with callbacks on
used to play the callback announcement before the caller started holding. Callers now go straight
into the queue, and unless the queue's Offer the callback is set to announce it while they
wait, they only learn about callbacks from your intro or comfort prompt.
New
- Dial-out PIN for restricted phones. Under a user's Permissions, Require a PIN to call
outside makes the phone ask for a code before any outside call, for rooms where not everyone
should be able to dial out. The code is stored encrypted, separately from the voicemail PIN, and
never written to logs. It can stay valid for a set number of seconds, or be asked every time. Five
wrong codes lock the phone for ten minutes, and resetting the PIN frees it at once. Emergency
numbers are never gated, even while the phone is locked out.
- Queue position and estimated wait. Queue Announcements (queue Options) tells holding callers
"you are number three in line", or an estimated hold time worked out from how long the queue's
recent answered calls took, shared among the agents signed in. Until there is enough history to
average, callers hear nothing rather than a guess.
- Queue callbacks, offered while callers hold. Callers go straight into the queue, and pressing
1 or 2 at any point books a callback and ends the call. Offer the callback (queue
Advanced) chooses how they find out: say it in your own intro or comfort prompt, have the callback
announcement play over the music while they wait, or book one automatically when the maximum wait
runs out. The system calls them back through your outbound rules once an agent is free, gives up
after a time you set, and emails the queue's supervisors when a callback is placed or fails.
- On-site SBCs managed from the system. Each branch SBC appears on the Services page with its
status, version and when it was last heard from, and can be restarted or have its log read
remotely. The Updates page lists each SBC against the build its channel offers, and Update
has it pull and restart itself. An SBC installed before remote updates existed says so and asks for
the installer to be run on it once.
- Install a site SBC from the installer. The installer that sets up a system now has a fourth
option that sets up a branch SBC: paste the settings the SBC page gives you, and it checks from the
box that the system can be reached before installing. The SBC image no longer needs a license key
to download.
- After-hours route for a trunk's default route. The default route takes the trunk's main number
and any number no inbound rule claims. Route differently outside office hours gives it a second
destination, usually voicemail, and a 3CX import brings its catch-all's out-of-hours destination
across.
- System › Dialling. Country, calling code, international prefix and area code now have a page.
Every system had been running on United States defaults with no way to change them, which affected
number handling in the app, CRM matching, Microsoft 365 contact sync and the country-code gate.
- Fax from pictures. PNG and JPEG attachments, from the web client or by email, are converted
and sent. A phone photo is turned the right way up, and a transparent background prints as white.
- Accept multiple calls. Turned off in a status profile, a call that arrives while the person is
already on one is treated as busy and follows their forwarding instead of beeping in their ear.
- Who answered, in the Call Log. Each call records its route: the ring group, queue, IVR or
mailbox it passed through, how long it waited or rang at each, and who picked up. An attended
transfer reads as one call with the consult call inside it. Scheduled call-log reports gain
Answered By and Route columns.
- Agent Login History lists real queue sessions (log in, log out, duration), including agents
who use the dial codes on a desk phone. It was previously built from web sign-ins.
- SIP trace on the Dashboard's Diagnostics line records the SIP exchange for fifteen minutes so a
diagnostics bundle can show it.
Improved
- Voicemail follows 3CX's layout. After a message: 0 next, 1 previous, 2 repeat,
3 delete (also while it is playing), 4 call back, 5 forward to another mailbox, 9
options, # exit. 6 save, 7 email and 8 undelete also work. Main menu: * play
new messages, 1 saved messages, 9 options, # exit. Options: 2 choose greeting,
5 record your name, 7 change PIN, 8 record greeting, # back. The spoken menus say
exactly these keys.
- Faxes and queue callbacks follow your outbound rules. They take the trunk and number format a
desk phone dialling the same number would, rather than the first trunk found with the number as
typed, and present a caller ID the carrier accepts. Fax numbers are stored in international format.
- Queue settings that now apply: maximum callers, priority queue, comfort prompts, and per-agent
wrap-up and ring time that no longer depend on which queue was saved last. "Next Agent" and "Hunt
Random Start" now do what their names say; strategies that were never implemented, and settings
nothing applied (queue language, play full intro, target agents on a call, per-queue recording),
are gone from the page.
- Queue and ring-group calls are recorded for the person who answers, when their own recording
setting is on.
- Allowed Country Codes are enforced on every call that reaches a carrier, including forwards,
callbacks and faxes. The list was previously saved and not checked.
- Retention is enforced. "Delete recordings / voicemail older than N days" now runs, removes
archived copies too, and cannot be set shorter than the auto-archive age.
- Group Admins and Managers can see every user but act only on users in their own groups.
- Allow Chat now turns internal chat off; the app hides the message box when it is off. SMS and
website chat are unaffected.
- Status profiles: Accept calls from Ring Groups and Log out from queues now apply.
- Alerts go to real recipients, and each ticked box subscribes to the events it names. Boxes
with nothing behind them are hidden.
- Outbound rules honour Calls from Groups, and trunks send the Diversion header on
forwarded calls when that option is on.
- Call History filters, time ranges, counts and Export now work, and Dial pad opens the
softphone.
- Per-agent queue statistics show each agent's own calls, and voicemail Used space is
measured instead of shown as zero.
- Browser softphone reconnects on its own after a restart or network drop, and every registered
device of a ring-group member rings.
- Phones behind a branch SBC are reachable again within seconds of the system restarting, rather
than after their own re-registration.
- Update problems explained: a failed update or update check says whether the cause is DNS, the
network, the license key or the registry, and a red banner names a container with no working DNS.
- Team card and Panel Call buttons dial; Grandstream phones refresh the company phonebook;
notification email footers show a 12-hour time.
Fixed
- Office hours were never applied. The hours were saved in a form the call routing could not read,
and the failure was silent, so every call and text was treated as within hours.
- Times in the wrong zone. Voicemail read message times back in UTC (a 12:18 message announced as
4:18 pm), office hours with no time zone of their own used UTC, and "today" in reports started the
evening before. All now use the system's time zone.
- Voicemail unreachable on a system whose voicemail number had been changed from the default.
- Email footers showed raw placeholders such as
${tenant_name}.
- Queue callbacks booked nothing when the key was pressed; carrier callers who were offered one
were sent to the trunk's default route instead of the queue; and callbacks went out through the
wrong trunk with no caller ID, which carriers refused.
- Fax attachments in PNG or JPEG went out as the cover page alone and were reported as sent. A
document that cannot be read now fails with a reason, and a fax whose result never arrives is
marked failed after thirty minutes instead of staying in progress.
- "Voicemail" in forwarding rules saved nothing, so an Away profile rang the phone instead.
- Voicemail was marked read when clicked, before anyone heard it, which also turned off the
message light. It is marked read when played.
- Cisco conferencing on LAN phones now works for calls the phone answered, and Decline works.
- SMS from voip.ms: inbound messages were being dropped, and a delivery receipt the system did not
recognise made the carrier resend it every eight seconds.
- Missed-call emails and reports mis-filed bridged calls, and turned-away scanner calls appeared
in the Call Log as missed calls.
- Deleting a user now retires their chat identity, so the next person given that number does not
inherit their conversations.
- The event log was flooded with "Unidentified inbound call" entries from toll-fraud scanners
trying every dialing prefix to reach overseas numbers, thousands a day. A call to a number no
carrier would deliver is now recognized as a probe: the scanner is reported to the abuse guard,
which blocks it at the firewall, and nothing is written to the event log. A call your carrier
genuinely delivers to a number you have not set up is still recorded, once per number per day
rather than once per attempt.
- High CPU after a telephony restart, with live channels and registrations frozen until the web
app was restarted, and a "phone system is not responding" banner that stayed after the system had
recovered.
A one-click diagnostics bundle for support, conference calling on Cisco phones that register directly to the system, voicemail and missed-call emails for every user, dependable email delivery, a voicemail lamp that lights when the message lands, SMS that threads correctly on national-format carriers, optional beeps that announce a completed transfer, and calls that survive a locked screen in the Android app.
New
- Diagnostics bundle. The Dashboard's Storage & Maintenance panel gains a Diagnostics
line with two actions. Download gathers everything support needs into one zip: every
container's logs with timestamps, the telephony core's own log, live registrations, trunks,
channels and SIP profiles, versions, storage, license state, and a configuration summary.
Submit sends the same bundle straight to the Exovo Portal, after a confirmation, where
Exovo support and your managing partner can download it from your system's page. Passwords,
tokens and SIP digest responses are removed before anything leaves the box, and both actions are
recorded in the audit log.
- Voicemail-to-email and missed-call emails for users. Each user's Voicemail email option
(a notification, the message attached, or attached and then removed from the mailbox) and
Send email on missed calls are now honored. The voicemail email includes the transcription
when transcription is on. A ring-group call a colleague answered is not reported as missed, and
queue calls are left to the queue's own notifications.
- Confirmation beeps. Two switches under System › Options, off by default: play two short
beeps to both parties the moment a transfer completes, and to the room when someone joins a
conference.
- Android app: calls keep going with the screen locked. A call now runs under a foreground
service, so locking the phone or switching apps no longer stalls the audio. The call appears
as an ongoing-call notification on the lock screen and in the shade, with a running timer and
a Hang up button.
Improved
- Email delivery you can rely on. Messages to one server are sent one at a time, a temporary
refusal or a dropped connection is retried with a short pause, a hung connection times out in
seconds rather than minutes, and a message that still cannot be delivered is recorded as a
warning with the server and subject. Previously a burst of fax, voicemail and alert mail meant
several simultaneous logins, which Google's servers throttle, and most failures were swallowed
silently.
- Registration cap actually raised. The higher default announced last release never reached
existing systems because the original value had been stored on first use. Systems still
carrying that original value are lifted automatically; a value an administrator set by hand is
left alone. The telephony core also clears registration records left by earlier container
hostnames on start-up, so they no longer count against the cap.
- Portal admin pages lay out their panels across both columns instead of stacking nearly
everything on the right.
Fixed
- Conference calling on Cisco desk phones in LAN mode. The merge added in 1.8.8.7 only
worked for phones on a site connector or the built-in VPN; a phone registered directly to the
system on the LAN, the default provisioning mode, sent its merge request to the telephony core,
which accepted it and did nothing. The merge is now driven from the core's own event for that
request, so it works on every path.
- Voicemail lamp lights when the message lands. Cisco phones never subscribe for message
waiting, and phones that do subscribe were asking about a different domain than the one
voicemail is deposited against, so the lamp only refreshed at the next registration, which is
why it appeared after making a call. The indicator is now pushed over the registration the
moment a message is left, and subscriptions are matched to the mailbox.
- SMS on carriers that use national number format. voip.ms in its default NANPA dialing mode
delivers bare ten-digit senders, which were stored as short codes: replies were disabled and
inbound messages never joined the outbound thread. Such senders are now recognised and threaded
as full international numbers. Outbound still needs the carrier account in E164 mode, as the
SMS setup guide now explains. The messaging API key is stored as a secret in the trunk template.
- Two telephony events were never delivered to the system's event listener because of the
order they were requested in, one of them the new Cisco merge signal and the other the core's
shutdown notice. Both are received now.
- Recordings page shows a person's own recordings, gated by their Show recordings
permission, rather than the whole library; the library stays under Office › Recordings. The
3CX importer carries each user's show and delete recording rights across, and the apps say
"you don't have permission" rather than implying calls are not recorded.
Archived recordings, voicemail and faxes are back at your fingertips, IVRs shrug off robocallers, a complete 3CX voicemail migration with original dates, desk phones and apps coexist on one extension, browser tabs that tell your systems apart, and a batch of fixes from the first LAN-trunk migration.
New
- Archived folders on Recordings, Voicemail and Fax. Media the system has moved to your
remote storage (SFTP, FTP or S3) is no longer out of reach. Each page gains an Archived
folder that lists what is in the store, and playing or downloading an archived item fetches it
back with a progress bar so the wait is visible rather than a frozen player. The remote layout
now mirrors 3CX's (
recordings/, voicemails/, faxes/, one folder per extension), so a store
that already holds a site's 3CX archive shows those files too, with caller, callee and time read
from 3CX's own file names.
- Robocaller defence for IVRs. Auto-dialers that punch extension numbers into a menu used to
be able to reach anything the dialplan knew. Direct dialing from an IVR now only reaches
extensions that actually exist, and each IVR gets a Max time in this IVR setting that ends a
call that has sat in the menu too long.
- One extension, several devices. A desk phone, the browser softphone, the Windows app and
the mobile app can now all be registered on the same extension at once, and an inbound call
rings them together. Previously each new device registration silently replaced the last one,
so a desk phone and a softphone on one extension took turns being reachable.
- Voicemail can be marked unread again. A Mark unread link beside the READ badge puts the
NEW badge back and re-lights the phone's message-waiting indicator.
- Browser tabs that name the system. Every page title now reads page · organization, so
several Exovo consoles open at once are easy to tell apart. Set the organization name under System › Options; until then the
tab shows the system's address.
- Zero-touch cutover for LAN phones migrating from 3CX. Yealink phones already on the LAN are
re-provisioned in place with a check-sync from the new system — no factory reset, no visit to
each desk.
- Spectrum Business SIP trunk template, plus a fix to the provider codec seed that had never
applied.
- The Exovo app. Key tones on the dialer and in-call keypad on every platform, low-latency
tones on Windows, proper earpiece/speaker routing and microphone permission handling on
Android, a native QR scanner for enrollment, E.164 dialing that follows the system's settings,
instant tab switching, and the in-call screen names the other party.
Improved
- 3CX voicemail migrates completely. Imported voicemail now lands in each mailbox with its
original received date and heard state, its caller name cleaned of the number 3CX glues on,
and a progress counter with a real total. The importer verifies each message actually reached
the mailbox and reports any that did not, instead of counting them as imported.
- 3CX import captures phone models and BLF keys. Phones arrive with their exact model and
template rather than a generic entry, and each user's programmable keys come across.
- Physical gateways in the 3CX import become registering device trunks (the Patton units
register to Exovo), with a configuration the device can load straight from the trunk page.
The Trunks page shows a gateway's own registration state, and its ports are treated as
hardware while concurrent calls stay the administrator's limit.
- Condensed Voicemail and Recordings lists. The waveform sits beside the number instead of on
its own line, so a list shows about half again as many items.
- Inbound Rules. Click a rule's name to edit it, and the In-office / Out-of-office columns
show the destination as number name (for example EX 100 Front Desk).
- Dashboard tiles tell the truth. The license tile counts this tenant's users, active calls
include callers sitting in an IVR, IP-authenticated trunks count as online, and Active Calls
shows the external capacity separately from the system limit.
- Call log and inbound routing. Calls are classified inbound and outbound reliably, a call
to a number with no inbound rule falls back to the trunk's destination, and 3CX call history
imports with its real outcomes (redirected, busy, cancelled) instead of everything unanswered
reading as Missed.
- Phone web-UI proxy reaches end-of-life phones. Older Yealink firmware speaks a TLS that
modern clients refuse; the proxy now negotiates it, and strips the phone's own redirect
script that sent the page into a reload loop.
- Queue changes take effect immediately — creating, editing or deleting a queue updates the
running call-center engine without a restart.
- Devices page: SIP scanners spoofing phone user-agents can no longer appear as phones.
- Registration cap raised. The default for
MAX_REGISTRATIONS_PER_EXTENSION is now 10, so a
person with a phone and three apps does not hit it. A leaked credential is still bounded.
Fixed
- Slow, garbled IVR, voicemail and hold music on some SIP trunks. When a provider refused a
T.38 fax negotiation, FreeSWITCH left the channel without an audio flag and every prompt
played at the wrong rate. Exovo now ships FreeSWITCH with the fix applied (also submitted
upstream).
- Call transfers on IP-authenticated trunks landed in the wrong dialplan context and failed;
they are steered into the default context now.
- Forwarding to voicemail deposited nothing — a forward whose destination is a mailbox now
goes straight to that mailbox instead of ringing the extension.
- Forwarding loops are capped: a chain that comes back to itself, or exceeds the hop limit,
drops to voicemail instead of ringing forever.
- Remote archiving could silently stop. A restart during an archive run left the subsystem
marked "archiving" forever and it was skipped on every cycle after; it resumes on its own now.
The voicemail archiver also walks the real mailbox layout, which it had never matched.
- IVR max-time no longer cuts off answered calls. In the first build of the dwell cap, the timer
kept running after the caller pressed a key and was talking to an extension, and ended the call at
the limit. The timer is now cancelled the moment a caller leaves the menu for anything other than
another IVR, verified on a live call.
- Registrations no longer pile up across updates. FreeSWITCH keeps its registration and
presence-subscription records on disk tagged with its hostname and only clears the ones carrying
its own; each update gave the phone-system container a fresh hostname, so the rows from before an
update lingered forever - showing up as extra registered softphones on the Devices page and, worse,
counting against the per-extension registration cap until a desk phone was refused. The container
now keeps one hostname, so stale rows are swept normally. Leftovers from earlier updates clear on
the first restart after this one.
- Browser tab titles actually update. The page title had been fixed at "Exovo" regardless of the
page since the web client moved to interactive rendering; titles now reach the tab, which is what
makes the organization naming above visible.
- Windows and mobile apps identify themselves. They register as Exovo Windows Desktop /
Android / iOS with the app version, and the Devices page lists them as software rather than
as an unknown SIP stack.
- Partner field issues: bans that were reported but not applied,
# as a dial terminator,
toll-fraud tolerance, and the SIP-exposure banner now only fires on the profile that is
evidence of a misconfiguration.
- Enrollment QR codes were undecodable in two ways; both fixed.
- Android: the app answers the system's keep-alive and voicemail notifications, and call
audio routes through the platform's communication-device path on recent versions.
Live team-state everywhere, conference calling on Cisco desk phones, a full transfer toolkit in the web softphone, install-as-an-app for the web client, smarter call history, proactive warning banners, and a large batch of reliability fixes from the first partner field testing.
New
- Conference calling on Cisco desk phones. Cisco 8800-series enterprise phones don't merge
three-way calls on the phone — they ask their call manager to do it. Exovo now answers that
request: press Conference, dial the second party, press Conference again, and the
system joins all three of you. Works for phones on a site connector and on the built-in VPN
alike, with nothing to change on the phones.
- A full transfer toolkit in the web softphone. The transfer panel now offers three ways to
hand a caller off: Blind (straight over), Attended ("ask first" — the caller waits on
hold while you announce them, then one click completes the handover, or hang up to take them
back), and Voicemail (drop the caller into a colleague's mailbox to leave a message). The
target field searches your extensions and contacts as you type.
- Install the web client like an app. Exovo can now be installed straight from the browser —
look for the install icon in the address bar — and opens in its own window with its own icon,
on desktop and mobile. No download, nothing to keep updated: it's the web client, one click
closer.
- Live call state, everywhere. The system now streams call-state changes the moment they
happen: the Exovo app's programmable keys light up per-key as extensions ring, talk, or hold;
Team dots follow along; and the Trunks page's Online column updates by itself the moment a
trunk registers or drops — including right after "Refresh registration".
- Per-trunk codec priority. Each trunk can now carry its own codec order — pre-filled from
the provider's template (voip.ms, for example, wants G.711/G.729) and editable on the trunk
page. Calls out that trunk offer exactly those codecs, in that order, which fixes providers
that refuse calls led by a codec they don't carry.
- The console speaks up when something needs you. Administrators now see a clear banner —
not a buried log line — when a saved setting needs a phone-system restart (with a link to
Services, self-clearing once the restart happens), when the phone system stops responding,
when scheduled backups are being skipped because no backup passphrase is set, and when SIP
scanning from the internet is detected — the sign of a port-forward rule left over from a
previous phone system that should be removed. The setup guide now calls that trap out
prominently too.
- Dial-by-name directory. The IVR's "Name Directory" option now works: callers spell the
first letters of a name on the keypad and are connected to the matching extension.
- End a call from the Panel. Administrators get an End action on any live call in the
operator panel — audited, admin-only.
- The Exovo app for Windows keeps itself up to date. The desktop app now installs from
the website as a signed package that checks for updates automatically. This release's app
also ships a 40% smaller install, automatic tunnel reconnection after a network drop, and a
Directory tab with the full phonebook — Personal, Group, Company, and CRM-synced contacts
alongside your extensions.
Improved
- Call history knows who that was. Recents in the apps now name what the phone network
didn't: calls to the voicemail or conference service, ring groups, queues, and IVRs show
their names, and external numbers match your phonebook in any format — +1 513 742 3100 and
513-742-3100 land on the same contact. Applies to existing history too.
- Cisco 8800 provisioning refined from field testing. The 8845/8865 video models get their
own template with the correct firmware family (the shared template could offer them the wrong
load), the in-call recording indication beep is gone, and dialing completes a second faster.
- MP3 uploads now play. Hold music, IVR greetings, and announcements uploaded as MP3 play
correctly — previously they were accepted but played silence (WAV remains the recommended
format). Already-uploaded MP3s start working on update, no re-upload needed.
- IVR "connect to external number" now routes through your outbound rules — the right
trunk, caller ID, and dialing permissions — instead of failing with dead air.
- The web softphone shows the codec each call actually negotiated instead of a fixed label,
and its Conference button now works (call, New Call, second party, Conference — all
three joined).
- Setup guide additions: a "set the time zone first" step, and every copy-pasteable number
range in the docs now pastes cleanly into firewall configs.
Fixed
- Emergency calls could fail during a rare internal race. A concurrency bug in the call
routing path could leave a 911 call unroutable and has been eliminated; emergency-call
notifications now run fully isolated from call setup. Related: filtering the Event Log no
longer errors.
- Answering the web softphone from a desk phone produced silent calls. The system offered
the browser an unreachable media address in one direction; both directions now connect
reliably.
- Ghost calls clean themselves up. A call that ended uncleanly (for example a transfer that
went wrong mid-flight) could linger forever as a phantom "active call", light up busy lamps,
and hold presence — the system now reconciles against the switch every minute and clears
such remnants automatically.
- The Exovo app's microphone audio now reaches every destination: calls bridged to outside
numbers were silent toward the far party (the audio was sent in oversized packets carriers
discard); the app now paces standard 20 ms media. Echo tests were unaffected, which is why
this hid.
The Exovo app for Windows — a full desktop softphone over the encrypted tunnel, with chat and SMS shared live with the web client — plus route context on ringing calls, on-demand recording, and self-service app enrollment.
New
- The Exovo app for Windows. A compact desktop softphone that connects to your system over
the same encrypted tunnel the connectors use — one outbound connection, no VPN, no port
forwarding, working from anywhere. Calls ring on your PC with your headset: dialer with live
name-and-number suggestions, hold with music, blind and attended transfer ("ask first",
then hand the caller over), in-call keypad, mute, and a programmable-key strip that mirrors
your desk phone's keys — tap a key to dial, or to transfer the caller mid-call. Team presence,
company directory, call history, and voicemail (with transcriptions, playback, and a Saved
folder that follows you between devices) are all live views of your system. Light and dark
theme, keyboard dialing, and a fixed-width companion layout designed to sit beside your work.
- Chat, everywhere you're signed in. The app carries your Exovo chat — direct messages,
groups, and channels — live in both directions with the web client: send from either side and
it appears on the other instantly, read state and unread counts included. SMS conversations
from your text-enabled trunks appear in the same list, with delivery status on every message
and the same claim-on-reply teamwork rules as the web client.
- Sign in, and the app sets itself up. Enter your system's address and the app shows that
system's own sign-in options — the same ones your web client login offers, including your
identity provider. Signing in enrolls the device automatically: certificate, phone
registration, and data access in one step, shown as a short setup checklist. Prefer not to
type a password into a device? Any signed-in web client can mint a one-time pairing code
(or QR, for the mobile apps to come) from the "Provision apps" button — it works once and
expires. Every enrolled device is listed under Connectivity → Mobile, and revoking one
cuts off its calls and its data access together.
- Know which line is ringing. Calls that reach you through a ring group or queue now show
their route — via Ring All 802 — while ringing and in your call history, so reception knows
how to answer before picking up. Ringing calls also gain a third choice beside answer and
decline: send to voicemail.
- Set your status from the app. The presence menu sets your profile (Available, Away, Do Not
Disturb, and your custom profiles) plus a free-text status note — visible to your team in the
app and honored by your forwarding rules, same as changing it in the web client.
- Record a call while it's happening. A Record control in the app starts and stops recording
on the live call; recordings land in the system's recording store, and users whose extension
allows it can play back and manage their own recordings right in the app.
- Desk phone control. Point the app's dialer at your desk phone instead: dialing from the
app (or a programmable key, or call history) rings your desk phone and places the call there —
the classic CTI workflow, with the app as the directory and the phone as the handset.
- Made for the front desk. System-wide keyboard shortcuts (answer, hang up, mute, transfer,
and more — recordable on the Hotkeys page and working even when the app isn't focused), call
controls from HID headsets (answer, hang up, and mute from the headset's own buttons, with
the headset's lights kept in sync), echo cancellation, and a CRM screen pop that opens
your CRM to the caller's record on ring or on answer using a URL template.
- Lives in your tray. The app minimizes to the system tray, can start when you sign in to
Windows (minimized if you like), and can bring itself to the front when a call rings.
- Meetings at hand. The app lists your scheduled meetings and standing rooms, starts your
meeting room in one click, and joins by code — video meetings open in the browser as before.
- Trial licensing. New systems can start on a 30-day trial of a real capacity band and
convert to a paid license in one step, keeping everything in place.
Improved
- One look across every surface. The app and the web client now share the same design
language end to end — including a full dark theme in the app — and primary buttons across the
product use a deeper accent shade that meets WCAG AA contrast with white text.
- Voicemail message actions. The app's voicemail rows expand in place with the full
transcription, mark themselves heard as you read, and support save and delete.
Fixed
- Your other devices' messages now appear live in the web client. Previously, a message you
sent from one device (for example the new app) reached the other side instantly but didn't
appear in your own open web client until a refresh.
- Exports and downloads through the phone connector. Downloading files from a phone's web
interface proxied through an on-site connector (for example a Yealink diagnostics export) now
saves correctly instead of failing silently.
Cisco 8800 Series phones on Enterprise firmware — on-site, behind a connector, or over their built-in VPN — plus inter-PBX bridges, a real event log, and a round of fixes from the first on-site deployment.
New
- Cisco 8800 Series on Enterprise firmware. Cisco's 8800 desk phones (8841, 8845, 8851, 8861,
8865) running the standard Enterprise (CUCM) SIP load can now be provisioned by Exovo — no
reflash to Multiplatform firmware required. Turn on the opt-in TFTP server under
Connectivity → TFTP, and the phones pick up their configuration exactly the way they would
from a CUCM: per-phone config, dial plan, soft keys, an XML directory on the Directories key
(extensions and company contacts), and locale packs. Phones at a remote site work through an
on-site Exovo connector, which serves their provisioning locally. A Multiplatform-firmware
template for the same models is included too.
- Cisco phone VPN. Remote Cisco Enterprise phones can now connect straight to Exovo over the
phone's built-in AnyConnect VPN — no connector or site-to-site tunnel needed. Exovo runs the VPN
service itself, and the phone authenticates with its factory-installed Cisco certificate, so there
is nothing to type on the phone: plug it in at home, and it registers. Enable it under
Connectivity → VPN; the phone's configuration is updated automatically. The VPN is built to stay
up unattended: it uses SIP over TCP so a dropped connection is detected and re-established within
seconds, provides its own in-tunnel DNS, and is multi-tenant aware — each tenant gets its own VPN
address space and gateway. A watchdog that can restart a phone remotely remains as a backstop.
- Bridges between phone systems. The Trunks page gains Add Bridge: join two Exovo systems —
or an Exovo system and a 3CX — so extensions on either side can call each other directly by
number. Between Exovo systems the bridge rides the same encrypted tunnel the connectors and mobile
apps use (one outbound port on the remote side, no SIP or media exposed to the internet); a direct
SIP bridge is available for 3CX. The Trunks list shows each bridge's live status, and creating one
hands you a one-time credential card for the other end.
- A real event log. The system Event Log is rebuilt around a catalogue of named events with
severity, a source, and structured details you can expand in place. Filter by source or event
type, page through history, set how long events are kept, and — under Alerts — have Exovo
email you when selected events occur or when anything at or above a chosen severity is logged.
Resource monitoring (CPU, memory, disk, recording quota) now raises events too, with hysteresis so
a value hovering at its limit doesn't flood you.
Improved
- Trunks and Devices. DECT base stations and analog (FXS) adapters move from the Trunks page to
their own Devices page, so Trunks now lists only carriers, gateways and bridges. Bridge
counts on the Trunks page are now accurate, and a phone's web password can be copied from its
row. The VPN page is organised into tabs.
- Provisioning on sites without internal DNS. Phones provisioned over the local network are now
given a provisioning address they can actually reach — the system's LAN IP, served over plain
HTTP — instead of the public host name. Previously a phone on a network that couldn't resolve the
system's public address would fetch its configuration once and then loop forever trying to
re-provision.
- IP Phone settings. The Network Interface selector on a user's IP Phone tab now lists the
system's configured LAN address (it previously listed internal container addresses), and the
choice is remembered per phone.
- Analog adapters over cellular internet. Grandstream HT80x adapters on an OpenVPN connection
that rides a cellular or other reduced-MTU WAN now register, place calls and serve their web UI
reliably; the adapters' codec settings are also rendered correctly (previously a mismatch could
silently leave the factory codec in place).
- The Event Log no longer logs every periodic trunk or bridge re-registration — only genuine
up/down transitions.
- Supporting services (the connector terminator and the phone web-UI proxy) now survive a restart
of the telephony core without needing to be restarted themselves.
Fixed
- Saving a user with an assigned phone silently reverted your changes. Editing the name or any
other field of a user who had a desk phone assigned reported success, but the phone save that
followed overwrote the user record with its previous values. Users without phones were unaffected,
which made it look specific to phones imported from 3CX.
- Users imported from 3CX (or created through the API without a group) had no group membership at
all; the editor showed "Default" selected but nothing was saved until you re-selected it.
Every user now belongs to the default group unless another is chosen, and existing users are
corrected the next time they are saved.
- A legacy caller ID or mobile number in a non-E.164 format — common after a 3CX import — blocked
every save on that user, even when you hadn't touched the number. Validation now applies only to
numbers you change.
- Transferring an inbound call to an external number via a BLF key was rejected as a toll-fraud
attempt when the carrier sends from an address other than its registrar. Calls transferred by an
authenticated extension are now recognised as such.
- The local (HTTP) provisioning address was redirected to HTTPS, which a phone provisioning by IP
address cannot complete. Provisioning now stays on plain HTTP while everything else still redirects.
- The phone web-UI proxy's auto-login could submit the phone's login form twice.
Free Exovo addresses — set up a new system as yourcompany.exovo.us with DNS and HTTPS handled for you — plus phone-home and remote-storage fixes.
New
- Free Exovo addresses. Setting up a new system no longer requires bringing your own domain:
the setup wizard now offers "Get a free Exovo address" — pick a name, and your system becomes
yourcompany.exovo.us (or .exovo.net). The DNS record is created for you, the HTTPS
certificate still issues automatically, and the address follows your public IP — if your
internet connection's address changes, the record is corrected within about a minute, with no
dynamic-DNS service or router configuration on your side. Your traffic still flows directly to
your system — only the DNS record is managed centrally, nothing is proxied. Partners can also
reserve an address for a license key ahead of an install, straight from the Portal.
Fixed
- A system could show as offline in the Portal — "last seen" frozen for hours — while running
perfectly. One slow Portal response could silently stop the system's periodic check-in until the
next restart. Check-ins now shrug off a slow or failed contact and simply retry.
- With remote storage enabled but no path saved, the archive cycle failed every minute with a
cryptic low-level error. An empty target is now treated as "not configured," and the storage
page refuses to save an enabled configuration without one.
Faster, smarter voicemail transcription and a hardened FreeSWITCH core — plus the security fixes from FreeSWITCH 1.11.2.
New
- Faster transcription with the Large v3 Turbo model. The transcription model picker adds
Large v3 Turbo — close to Large v3's accuracy at several times the speed, with under half the
download and RAM. A good default when you want high-quality transcripts without a large machine.
- Skip silence. Transcription now detects speech before it runs: a voicemail or recording with
no speech is left with an empty transcript instead of being run through the model, and audio
padded with silence (most voicemail) is trimmed to just its speech first — so transcripts come
back sooner and use less CPU. On by default; find it under Admin → Integrations →
Transcription. The small speech-detection model it needs downloads itself the first time.
Improved
- A hardened telephony core. Exovo now runs FreeSWITCH 1.11.2, which brings extensive upstream
security hardening across the media and SIP paths. On top of that, Exovo locks the engine down to
exactly the capabilities it uses — shell execution, scripting and other unused internals are
switched off entirely, so a would-be attacker has far less to reach for even in the event of a
breach elsewhere. No configuration changes are required.
Fixed
- Remote analog adapters and desk phones behind an on-site connector could, after a brief network
hiccup at the connector, be handed an unusable address for their outbound proxy and stop
registering until reconfigured. The connector now only ever advertises a real, reachable address,
and Exovo refuses anything else — so a momentary blip can no longer knock those phones offline.
Grandstream HT801 V2 and HT802 V2 support with fully automatic OpenVPN — a remote analog adapter is now plug-in-anywhere — plus a device web console and registration status for adapters and gateways.
New
- Grandstream HT801 V2 / HT802 V2 support, with zero-touch VPN. Exovo now provisions
Grandstream's current analog telephone adapters — and on these models, the built-in VPN needs
no hands at all: choose OpenVPN as the connection when adding the device, and it receives
its certificates inside its configuration file, brings up the tunnel, and registers through it.
A fax machine, elevator phone or door intercom at a remote site becomes a
plug-in-anywhere-with-internet device — no router changes, no certificate uploads, nothing
exposed. See analog devices over VPN.
- Device web console for adapters and gateways. The same proxied web-UI access desk phones
have is now on every DECT/FXS device and VoIP gateway: ⋮ → Open Device GUI opens the
device's own interface in a new tab, wherever the device is — including a VPN adapter at a
remote site, reached over its tunnel. Adapters sign you in automatically with their
provisioning-time password; gateways open at their login page.
- Copy Provisioning URL. One click on a device or gateway row puts the provisioning address
on your clipboard, ready to paste into the device's config-server field.
Improved
- The Trunks page tells you what's registered. Trunks & gateways and DECT/FXS devices each
have their own labelled section with a live registration count, DECT/FXS rows show per-port
status ("2 / 2 registered" — a base with one dead handset no longer looks healthy), and a new
DECT/FXS stat card sits alongside the gateway card.
- Grandstream devices no longer talk to Grandstream's cloud. The HT80x V2 family ships from
the factory with TR-069 enabled and pointed at Grandstream's own management service, where an
unclaimed device sits waiting to be adopted. Exovo's configuration now switches that off — your
devices are managed by your system and nothing else.
- Provisioned devices ignore DHCP redirects. All Grandstream adapter and FXS-gateway
templates now disable DHCP option 66 override once the device is configured, so a site router
handing out its own provisioning address can't quietly redirect a working device. A factory-
fresh device can still bootstrap from option 66 — it just stops listening once it's yours.
Fixed
- Automatic re-provisioning of DECT/FXS devices and gateways works reliably now. The
configuration Exovo served was overwriting the device's own config-server address with an
empty value, so the first fetch succeeded and every later one silently never happened —
changes made in the console only reached the device after a manual reconfigure. Devices now
keep their provisioning address and pick up changes on their normal schedule.
Full 3CX and Yeastar backups can now be imported from the server instead of the browser, however large they are, and imported call recordings archive on schedule again.
New
- Import a backup straight from the server. A backup of a busy phone system with years of call
recordings runs to tens of gigabytes, which is more than a browser upload can carry reliably. Copy
the file to
/var/lib/exovo/import-drop on the Exovo host and the restore wizard lists it with its
size and date — pick it and the import starts immediately. Nothing is copied and nothing is
uploaded, so the size of the backup stops mattering. Exovo reads the file where it sits and leaves
it alone afterwards, so it is yours to keep or delete. Browser upload is still there and still the
easier route for anything up to a few gigabytes. See
migrating from 3CX and
from Yeastar.
Improved
- Large backups are no longer rejected. The wizard previously refused any upload over 2 GB, which
ruled out most real 3CX backups. That limit is gone — free disk space is now the only constraint.
Plan on having roughly twice the size of the backup file free while the import runs: the archive and
the recordings unpacked from it briefly exist side by side. The space is released when the import
finishes.
- Reading a backup is now isolated from the phone system. Backups are opened by a separate,
purpose-built program rather than inside the web application. A corrupt, truncated or malicious
backup file can no longer disturb the running system — the worst it can do is fail its own import
and report why.
Fixed
- Imported call recordings now archive on schedule. Remote archiving decides what to move by a
recording's age, but it was using the date the record was added to Exovo rather than the date of the
call. Imported recordings therefore looked brand new no matter how old the calls were, so they stayed
on local disk for the full retention window — and then all became eligible at once. Age is now taken
from the call itself, which is what the retention setting has always meant.
- Imports no longer leave their working files behind. Extracted call data was kept after each import
and could accumulate to several gigabytes on a large system.
- An interrupted import no longer discards the work in progress. Closing the browser or losing
connection part-way through left the import running but cleared the files it was still reading.
- Backup and recording sizes over a gigabyte are now shown in GB rather than as four- and five-digit
megabyte figures.
Upgrading
- This release adds a mount for the new import directory, so apply it with
docker compose up -d
rather than only pulling the new images.
- If you have previously imported call history, those recordings become eligible for remote
archiving immediately, so the next archive cycle will move a large batch to your remote store in one
pass instead of doing nothing. This is the intended behaviour and the recordings remain available
from the remote store, but it is worth expecting rather than discovering.
Partner management arrives on the dashboard and in the portal, licensed extension limits are now enforced, and the SBC appliance gets dramatically lighter.
New
- Your partner, on your dashboard. The LICENSE INFORMATION card now shows the partner looking
after your system, and an admin can set, change or clear the six-digit partner ID from the
dashboard at any time. Linking is always your choice — the system stays yours, and you can unlink
just as easily.
- A portal for partners. Partners signing in at portal.exovo.tel get a fleet view of every
system assigned to them — status, version, extensions and licence health, worst first — along
with the licence keys issued to them and a direct support channel back to Exovo. Each partner
keeps a company profile that feeds the public partner directory.
- Support runs through your partner. Exovo is sold and supported through partners, so the
customer portal now names the partner who looks after your system — phone, email and website —
rather than offering a ticket form. They are the fastest route to a fix, and they escalate to us
when they need to.
Improved
- The licensed extension limit is now enforced. Your licence band — for example "50
extensions" — was shown but never applied. Creating an extension beyond the band is now blocked
with a clear message and an upgrade path, and the users page shows how many of your licensed
extensions are in use. Nothing is ever removed: a system already above its band keeps every
extension it has, and only new ones are refused. See
licensing.
- Licence type reads as a band. The dashboard and the portal now say "50 extensions" instead of
a plan name, matching the published pricing.
- A much lighter SBC appliance. The on-site SBC and the tunnel terminator now ship as native
binaries. The images are 44% smaller — 340 MB down to 191 MB — and the SBC settles at around 7 MB
of memory instead of 63 MB. Worth having if you run the appliance on modest hardware.
Fixed
- Portal sign-in links no longer fail on the first click. Mail-scanning systems that pre-fetch links
were spending the single-use token before it reached you; signing in now takes one explicit
confirmation step, so the link still works when you get there.
- The extension count on the dashboard no longer includes the machine operator, so it agrees with
the total shown on the users page.
Release channels arrive — follow stable or latest per system — plus clearer service naming and operator-console fixes.
New
- Release channels. Every system now follows a channel: stable (tested releases,
moved only when a release like this one is promoted), latest (every published build),
or an exact version pin. Set with
EXOVO_CHANNEL in the stack's .env — new installations
default to stable, and the Updates page shows which channel the system follows. See
release channels.
- This page. Release notes are now published for every stable release, with the current
stable version always shown at the top.
Improved
- The telephony core is now named for what it is: Exovo Core (with its FreeSWITCH
engine noted in the description) on the Services and Updates pages, and System Core
on the dashboard health card.
Fixed
- The operator console no longer shows a stray horizontal scrollbar, and the operator
banner no longer leaves a matching band of empty space at the bottom of the page.
The launch baseline — the first release promoted to the stable channel, recording the product as stable begins.
This is Exovo's first stable release — the baseline every entry after this one builds on.
From here forward, each release on this page is a tested image set promoted to the stable
channel, with notes on what changed. This first entry instead records what the product already
is as stable begins.
In the box
- Calling — extensions, ring groups, call queues with callbacks, digital receptionists
(IVR), parking and pickup, BLF, Find Me / Follow Me, and per-call outbound caller-ID
selection from the softphone.
- Video meetings — meet now or scheduled, with browser guest links, screen share,
recording, virtual backgrounds and phone dial-in.
- Messaging — team chat, business SMS/MMS on your own trunk numbers, and a
live-chat widget that routes website visitors into the same
team inbox.
- Microsoft 365 — Entra ID user sync, "Sign in with Microsoft", and contact sync from
personal and shared mailboxes, all sharing one connection.
- Integrations — 17 CRM templates with caller-ID lookup and journaling, fax, a REST API,
and BI reporting views in your own PostgreSQL.
- Devices & remote work — zero-touch provisioning for desk phones, DECT bases and
gateways, on the LAN or through the Exovo SBC; a backup SIP
server can be provisioned to phones for failover.
- Migrations — import users, trunks, routing and settings straight from a
3CX or
Yeastar P-Series backup.
- Operations & security — encrypted backups, one-click updates, call recording with
on-box transcription, a hypervisor-HA reference architecture,
TLS/SRTP, SIP scanner auto-banning, toll-fraud protection, 2FA and SSO.
- Multi-tenant hosting — isolated tenants on one machine with a cross-tenant operator
console and per-tenant restore.
The full picture is on the features page; what's coming next is on the
roadmap. This release also introduces release channels themselves: systems
follow stable, latest, or an exact version pin,
and new installations default to stable.