Changelog
New features, improvements, and fixes shipped to DialStack. Newest releases first.
July 20, 2026
New features
Call recording & privacy
- Automatic redaction of sensitive information — accounts can now opt in to have sensitive details (card numbers, Social Security numbers, and personal names and addresses) automatically removed from call transcripts and silenced in the recording audio. Turn it on from the account's Telephony settings. See the Accounts guide.
Softphone SDK
- Multiple calls at once in the softphone — the SDK softphone now handles more than one call at a time: a second incoming call gives a call-waiting alert, and you can swap between calls or transfer between them. See the SDKs documentation.
- Standalone React Native package — the softphone now ships as a dedicated React Native package that any React Native app can embed, with native emergency-address handling built in. See the SDKs documentation and the React Native softphone example.
- Sessions stay connected longer — softphone connections now refresh their access token automatically before it expires, so long-running calls and idle sessions no longer get disconnected and have to reconnect.
Phone numbers
- Per-number caller ID prefix — you can now set a short label on a phone number that is added in front of the caller's name on inbound calls (for example,
[Acme] John Smith), so users can tell at a glance which number a call came in on. See the Numbers guide. - Set routing before a port completes — when you add numbers to an in-progress port order, they now appear right away so you can assign their inbound routing ahead of the scheduled cutover, instead of showing as unroutable until the port finishes. See the Numbers guide.
Webhooks
- Account-scoped webhook endpoints — platforms can now point a specific account's events at their own dedicated webhook receiver, without that receiver seeing any other account's events. See the Webhook Endpoints API and the webhook events guide.
Developer settings
- Rotate live and sandbox keys independently — you can now rotate your live secret key or your sandbox secret key on its own, instead of rotating both at the same time. See the Platform Settings guide.
Accounts
- Non-billable account owner — an account owner can now be designated to sign the subscription agreement and administer the account without being billed as a telephony user. See the Accounts guide.
Bug fixes
- Voice-app calls that dial or transfer to an internal extension now reach the user across all of their devices, along with ring groups, queues, and other voice apps.
- The "Routed to" value on a call log now shows the extension that actually answered, for cases where it could previously display an intermediate number.
- Improved handling of a rare timing case so a parked caller stays connected when the agent who answered from a queue is transferred elsewhere.
- On a ring group, choosing "None (hang up)" as the timeout action now reliably clears a previously configured action.
- A recently cancelled phone number now updates to inactive promptly once the carrier completes the disconnect.
- A call queue's extension now stays displayed correctly after you edit other settings on the queue.
- When a port order is rejected because the account number on file with the current carrier is incorrect, the status now spells out the reason to make it easier to correct.
- Tightened the softphone's emergency-address check so an address is shown as confirmed only once the session's network location has been registered.
July 13, 2026
New features
Softphone SDK
- Embeddable softphone for web and mobile — a complete, ready-to-use softphone dialer now ships with the SDK, built from a single shared codebase that runs on both web and React Native. Drop it into your own application to give users a full calling experience — placing and receiving calls, attended transfer, hold, an incoming ringtone, and emergency-address handling — without building a dialer from scratch. See the SDKs documentation and the React Native softphone example.
Call recording
- Pause and resume recording — an agent can now pause recording while collecting sensitive information (such as a payment card number) and resume afterward. Pause and resume from the API, or with the in-call
*7toggle from the phone. The recording stays a single file with a silent gap. See the Calls API.
Phone numbers
- More inbound routing choices for a number — a number with no target now rings every user on the account instead of dead-ending, and you can also deliberately set a number to "route to nothing" so inbound calls are dropped silently. See the Numbers guide.
Call queues
- Reconnect waiting callers when an agent is made available — making an agent available from the admin portal (or adding a new agent to a queue) now immediately reconnects callers already waiting on hold, instead of waiting for the next queue event. See the Queues guide.
Devices
- One-touch park on Snom phones — a Snom park key now parks a live call with a single press, retrieves the call with a single press, and lights up when a call is waiting. See the Devices guide.
- Clearer Snom status keys — speed-dial, busy-indicator, and park keys on Snom phones now glow green when idle and red during a call, instead of staying dark until a call is in progress.
Platform admin
- Edit account pricing after creation — platform admins can now adjust an account's retail pricing from the account's Pricing card, within the approved bands. See Managing Accounts.
Bug fixes
- Voicemail messages could occasionally be deleted at random when a mailbox reached its message limit; mailboxes now correctly remove only the oldest messages.
- The first second or so of some prompts (voicemail access, on-hold, parking, and dial-plan audio clips) could be clipped; prompts now play from the beginning.
- Voicemail menus were refined: the options menu now announces itself, sitting idle at the PIN prompt now plays a simple goodbye instead of a "too many attempts" message, and pressing a key during a multi-part prompt reliably interrupts it.
- Some inbound calls answered by an external forwarding number never sent a
call.endwebhook; the terminating event is now delivered. - Attended-transfer consultation calls now send a final call event to webhook consumers, instead of appearing to start and never end.
- Voice-app calls that dial or transfer to an outside number now use the account's outbound caller ID instead of being rejected.
- Callers who reach a queue with no available agents now get a clear outcome instead of a repeating ringback tone.
- Fixed a rare timing issue where answering a parking ring-back — when it rang more than one of your devices at once — could fail to reconnect you to the parked caller.
- Creating a number order for a number already in use on another account no longer leaves the number unroutable.
- Emergency-call notification emails for calls placed from a softphone now include the device and the caller's emergency address, matching desk-phone calls.
- Line keys edited directly from a Yealink handset no longer override the managed configuration on the next provisioning cycle.
- Removing a user's extension in the admin portal now saves correctly.
- Adding a device that is already on the account now shows a clear message instead of a generic error.
- Platforms that do not define a dark theme no longer have dark styling appear in the admin portal.
July 6, 2026
New features
Numbers & E911
- Use a temporary number as a location's primary number — a location can now use a temporary number as its primary number, so emergency (E911) service can be set up while a permanent number is still being ported in. See the Locations guide.
Faxes
- Guardrail when auto-deleting faxes — if a fax line is set to delete documents automatically, a notification recipient is now required, so incoming faxes are always delivered somewhere before they're removed. See the Faxes guide.
Call queues
- Smarter waiting-caller routing — several refinements to how queued callers are matched to agents: a waiting caller is connected as soon as an agent frees up, and no-answer handling moves smoothly through the available agents. See the Queues guide.
Call parking
- More parking slots — accounts can now use many more call parking slots, supporting larger multi-location businesses. See the Parking guide.
Platform admin
- Hide the built-in AI voice agent — platforms that provide their own AI voice solution can now hide DialStack's default AI agent option from their accounts.
Bug fixes
- Completing an attended or cross-region transfer no longer occasionally drops the connected call; the remaining parties now stay on the line as expected.
- Fixed a failure that could stop call listening, AI voice, and transcription audio from starting.
- Opening a link straight to a specific port order or call log in the admin portal now loads the right account instead of a blank account picker.
- The busy indicator (BLF) light for a parked call now lights reliably on subscribed phones.
- Fixed the voicemail waiting light on Snom DECT phones, which was not being driven correctly.
- Speed-dial and busy-indicator keys on Snom phones now show the assigned name and a working status light instead of a raw identifier.
- Admins with both platform and account access can once again switch between accounts in the account picker.
- When creating an account fails, the portal now shows the actual reason instead of a generic error.
June 29, 2026
New features
Platform admin
- Create accounts with billing and pricing in one step — the Create Account flow now captures the billing address and the agreed retail pricing as part of creating a customer account, with the option to send an onboarding invite immediately. See Managing Accounts. Note for API users:
POST /v1/accountsnow requiresbilling_addressandpricing. See the Accounts API.
Developers
- Configurable webhook endpoints — you can now register multiple webhook endpoints and subscribe each to only the event types it cares about (for example one endpoint for call events and another for voicemails), instead of every event going to a single URL. Endpoints are also scoped by mode, so sandbox traffic never reaches a live URL. See the Webhook Endpoints API.
- Voicemail summary webhook — a new
voicemail.summary.completeevent fires when the AI-generated summary of a voicemail is ready; fetch the summary text from the Voicemails API.
Devices
- Snom D812 support — the Snom D812 desk phone can now be added and provisioned. See the Devices guide.
Bug fixes
- Fixed a bug that prevented recording, and the resulting transcript and summary, for some inbound calls answered automatically (for example by a voice app, menu, or queue).
- A number port that had been approved but not yet submitted to the carrier was shown with a confirmed-looking status and transfer date, implying the port was already scheduled. It now reads "Ready to Submit" with no date until it is actually submitted.
- After a number was re-ported and the transfer completed, the number could incorrectly appear under the "Cancelled" tab and could not be assigned routing from the portal. Such numbers are now correctly shown as active.
- Fixed a rare case where retrieving a parked call that had been parked during an attended transfer left the caller hearing only hold music for the rest of the call.
- A parking-slot busy lamp on Yealink phones could stay lit after the parked call was picked up; it now clears correctly.
- The hardware Message/voicemail key on Yealink phones could return a fast-busy instead of reaching the mailbox; it now connects reliably.
- Fixed certain Snom desk phone models not lighting their message-waiting lamp when a new voicemail arrived.
- A device assigned to a button template can no longer lose its primary line key, which previously could prevent held calls from being retrieved on some phones.
- Sandbox-mode accounts could not place internal extension-to-extension calls, so those calls produced no events or webhooks. Internal calls in sandbox now connect and emit events; only calls to the public phone network remain blocked.
- Opening a fax from the account portal no longer stacks two detail dialogs; faxes now open as a normal page.
- Fixed platform branding changes failing to save with a generic error.
- The documentation support assistant now works for visitors who are not signed in.
June 22, 2026
New features
WebRTC
- Early media on outbound calls — outbound WebRTC calls now play early media before the call connects: carrier ringback, busy and other in-band tones, and any pre-answer announcements or auto-attendant audio. Previously the caller heard silence until the other side answered. See the WebRTC guide.
- Local ringback tone — for internal calls and when an out-of-band ringing signal is received, the SDK now generates a ringback tone locally so the caller hears ringing instead of silence while the call is connecting.
Extensions
- Assisted extension-length renumbering — changing an account's extension length now opens a confirmation dialog that previews and applies a renumbering of every existing extension so they keep working at the new length, updates speed-dial buttons that point at them, and reprovisions the account's phones automatically. See Changing the extension length.
Numbers
- Set up routing before a number is active — you can now assign call routing to a number that is still porting in or being provisioned, so it rings the right place the moment it activates instead of needing a manual change after the fact.
Platform admin
- Subscription agreement acceptance — account owners now review and accept the DialStack service subscription agreement (including the 911/E911 acknowledgement) at first sign-in, and the accepted version, date, and IP are recorded.
Developers
- User presence API — a new read-only presence resource reports whether a user is reachable, offline, or on a call right now, for both the signed-in user and any user on the account. See the Presence API.
- Voicemails linked to their call — a voicemail now references the call that produced it; request
expand[]=callto inline the full call object. See the Voicemails API.
Bug fixes
- Click-to-call (calls started from the API or app) now follows the user's full Find Me / Follow Me sequence instead of ringing only the first step.
- The
recording.transcription.completeandrecording.summary.completewebhooks now send the call identifier in the same format as every other event and the documentation. - The SDK event stream now stops trying to reconnect once a session has expired or been revoked, instead of retrying indefinitely with a stale token.
- Number port rejections now report a specific, actionable reason (such as an invalid porting PIN) instead of a generic carrier error.
- Removing a line from a device no longer leaves the user unable to be assigned a new device.
- Fixed certain Snom phone models incorrectly showing buttons as unsupported when applying a button template, even though the model does support them.
- When call recording is turned off but transcription is on, the audio captured only to produce the transcript is now reliably deleted even if transcription fails.
June 15, 2026
New features
Fax
- Fax is now available — send and receive faxes from DialStack. A new Faxes page in the account portal lets you send a fax by picking a fax-enabled number and uploading a PDF, browse inbound and outbound faxes with filtering by direction, status, and number, open any fax in an in-app viewer, and see at a glance which inbound faxes are unread. Enable fax on a dedicated phone number — while fax is on, that number receives inbound faxes instead of voice calls — and add email recipients to be notified when one arrives. See the Faxes guide and the Fax API.
Voice apps
- Transfer to an external SIP endpoint — a dial plan transfer can now target a SIP address (for example, an external AI voice agent), in addition to extensions and phone numbers. See the Voice Apps guide.
- AI agent call transfer — the built-in voice AI agent can now hand a caller off to an extension or phone number after its closing message, with no dead air. See the voice AI guide.
Devices
- Ordered hardware in the Devices section — hardware you have ordered but not yet received now appears under Devices, where you can pre-stage each unit (who it is for and which location) before it ships.
- Base station deletion preserves handsets — deleting a DECT base station no longer deletes its paired handsets; the handsets remain so they can be re-paired to another base.
- Reorder phone buttons — programmable button templates now support drag-and-drop reordering. See the Button Templates guide.
Platform admin
- Agreed pricing in the admin portal — the agreed retail pricing added through the API last release can now be set directly in the UI, on the Create Account form and in a new Pricing section on the account page. See Managing Accounts.
- Troubleshooting and network requirement guides — new Basic Troubleshooting and Network Requirements guides are now available under Platform Admin. See Basic Troubleshooting.
WebRTC
- Longer-lived sessions and instant revocation — WebRTC user session tokens now last 24 hours by default and can be configured up to 7 days, reducing how often your app has to refresh them, and a new endpoint immediately revokes all of a user's active sessions. See the API.
Misc
- Tabbed account settings — the Account Settings page is now organized into tabs (General, Telephony, Locations, Devices, Activity) instead of one long scrolling page.
- Dial plan editor zoom — the dial plan editor now zooms with the scroll wheel, centered on the cursor; drag to pan.
Bug fixes
- Fixed a case where audio could be silent toward the other party after answering an incoming WebRTC call, so the far end now reliably hears the browser microphone.
- Fixed incoming WebRTC calls that could fail to connect on the first press of Answer — a rare timing issue while the browser was still prompting for microphone access; a second press worked.
- Resubmitting a number port order now reports a clear, actionable reason when something needs attention (such as a scheduled date that has passed) instead of a generic error, and an approved order whose submission failed can now be edited and resubmitted.
- Fixed the call logs page failing to load for an account when a call had incomplete direction information.
- Fixed a registered device that could incorrectly show as Offline because of a username letter-case mismatch.
- Fixed a "no SIP lines configured" error when rebooting or resyncing shared devices that are not assigned to a user.
- Assigning a device to a user who already has one now shows a clear message instead of a raw error.
- Setting or changing a voicemail PIN by phone now works reliably; digits pressed while the prompt is still playing are no longer discarded.
- The hardware Voicemail key on Yealink phones and Snom DECT handsets now reliably dials your mailbox.
- Extended the busy-lamp fix so a monitored extension's indicator clears reliably in ring groups, queues, and Find Me / Follow Me scenarios.
- Transferring a call to 911 no longer attaches an incorrect dispatchable location; the emergency operator determines the location instead.
June 8, 2026
New features
WebRTC
- Call transfer — WebRTC users can now transfer calls, both blind (transfer immediately) and attended (consult the destination first, then complete). Available in the SDK and the softphone example.
- E911 emergency calling — WebRTC users can now register a validated emergency address that is bound to their device and used to route 911 with a dispatchable location. Emergency calls are never blocked. With emergency calling in place, WebRTC users can now place regular outbound calls to the public phone network, which were held back until E911 support was ready. See the emergency calling guide.
Platform admin
- Agreed pricing — platforms can now set and retrieve agreed retail pricing per account through the API, supporting platform-initiated onboarding.
Devices
- Programmable phone buttons — configure the buttons on desk phones and DECT handsets through reusable templates. Rather than picking low-level key types, you choose what each button should do — speed dial, busy-lamp/presence monitoring of another extension, or a shared mailbox key that lights when messages wait, dials in to listen, and can transfer a caller into the box — and bind the template to devices, with per-device overrides. See the Button Templates guide.
- DECT handset improvements — the handset model can now be edited from the device page, and the add-device hardware selection flow has been refreshed. See Managing Devices.
- Faster line updates on assignment — assigning, reassigning, or unassigning a user on a device now refreshes the affected phones immediately, with no manual reload prompt.
Bug fixes
- Hanging up an answered incoming call from the WebRTC softphone now reliably ends the call for both parties.
- Fixed a rare timing issue where a call could keep ringing even after it was answered, instead of connecting.
- Searching for available numbers by an unsupported ZIP code now returns a clear, actionable message instead of a generic error.
- Deleting an account now correctly disconnects its numbers.
- Fixed a busy-lamp indicator that could stay lit on Yealink desk phones after a monitored extension's call ended.
- Fixed a failure that prevented voicemails left in a shared mailbox from being saved.
- Fixed an occasional incorrect voicemail transcription summary.
June 1, 2026
New features
WebRTC
- WebRTC initial release — users can now make and receive calls over WebRTC. Up to 8 simultaneous calls per user are supported, with hold/resume functionality. See the WebRTC guide for more details. Limitations: outbound calls to the public phone network are temporarily disabled while we finish emergency-calling support (expected within a week), and more advanced features (e.g. call transfer) will follow soon.
- Softphone example — a ready-to-run browser softphone built on the SDK is now included in the SDK examples.
Voice apps
- Notify mode — the Voice App dial-plan node now supports a Notify mode for streaming live call audio to an external listener (for example, an AI agent or observer) without joining the call. Pick the mode directly in the dial-plan editor.
Locations
- Main location — every account now has a designated main location used to determine tax jurisdiction and regulatory fees for users and numbers without a location of their own (such as WebRTC-only users). The first location you create is set automatically; swap it any time from Account Settings. The main does not affect E911 — emergency calls always use the calling device's own location. See the Locations guide.
Misc
- The holiday exit for schedule nodes is back in the dial plan editor, allowing separate call routing on holidays.
Bug fixes
- Call logs that intermittently failed to load now load reliably.
- Creating a new queue from the dial-plan editor no longer fails.
- Fixed a bug where phones dialed for a queue or Find Me / Follow Me call would sometimes not stop ringing when the call was abandoned before being answered.
- Ordering a new (fake) number in sandbox mode now works reliably.
- Fixed a failure when porting a number to DialStack.
May 25, 2026
New features
Queues
- Position announcements — callers waiting in queues now hear their position.
- Queue UX overhaul — saner defaults, dispatch warnings, queue-member auto-login on add, and settings polish.
- Lifecycle webhook events — new webhook events for queue state transitions.
Devices
- DECT handsets — handsets are now a supported device type in
/v1/devices: add-device flow, handset detail page, nullable paired base, per-device location for E911. - Devices section redesign — the Devices UI has been refreshed.
Call parking
- Configurable park timeout — set the call-parking timeout under account settings.
- New docs — see the Call Parking guide.
Call routing
- Connected-line identity is now stamped on calls from the PSTN to a user's devices, internal dials, queue ringback, and ring-group ringback — callers and callees see the right name and number.
hang_updial-plan node — an explicit hangup step is now available in the dial-plan editor.
Bug fixes
- When a parked caller hangs up, all phones that were ringing them back now stop ringing immediately.
- Helper CDRs are filtered out of call logs.