OpenPhonexDocs

Release log

Major OpenPhonex releases, with links to the features and guides you can use today.

Major product updates, newest first. Follow the links in each entry to configure or use the feature.

The initial roundup covers 18–31 August 2026. Dates are in UTC and follow verified production deployments, not pull-request merge dates. For features released across several services, an entry uses the date by which the required services were confirmed deployed.

9 September 2026

Every automatic ending now records its reason

  • A call ended by the platform records ended_reason on the call and on its terminal webhook; previously that field was left empty on calls the media worker ended, so the reason existed in the event and never reached the record.
  • The five reasons are unchanged: hangup_requested, remote_party_disconnected, max_call_duration_reached, no_caller_speech_after_answer and agent_completed.
  • A call that has not ended, or that failed before connecting, still reports no reason; failures keep reporting through technical_failure.failure_reason_code instead.
  • Why a call ended

The maximum length and the silence window are per-agent

  • Each agent can now set its own maximum call length and its own after-answer silence window, instead of inheriting one platform value.
  • An agent that sets neither keeps the platform defaults, so existing agents are unchanged.
  • A call ended by either rule reports the same reasons it always did, max_call_duration_reached and no_caller_speech_after_answer, so nothing downstream needs to change.
  • When a call ends automatically

A call the agent finishes now says so

  • A call the agent ends itself — its script reaches a goodbye, or its workflow completes — now reports ended_reason agent_completed, where that reason was previously empty.
  • This is the commonest ending in a scripted workflow, so it closes the largest remaining gap in "why did this call end": before, a conversation that simply finished looked the same as one with no reason recorded at all.
  • The four platform endings are unchanged and keep their own reasons; agent_completed is never reported for a hang-up, a call that hit a limit, or a call that failed before connecting.
  • Why a call ended · When a call ends automatically

Outbound calls and Simulations Lab runs need nothing installed

  • One hosted dialer places every managed outbound call and one hosted runner drives every real-time Simulations Lab session, for every workspace: there is no worker to run, no worker key to install and no gateway deployment to register before POST /v1/calls works.
  • Each job's workspace, project, agent, caller number and destination are read from the call record itself, and every room's metadata and evidence receipts stay bound to the workspace and run that asked for it.
  • A workspace that runs its own self-hosted gateway in queue mode keeps dialing through that gateway; what outbound depends on is your outbound authorization, not any setup of your own.
  • A gateway token minted without an explicit scopes list now carries only gateways:report and calls:authorize; selfhost-bootstrap.sh and the workspace's Gateway Tokens action request the full runtime set instead, and tokens that already exist keep the scopes they were stored with.
  • Hosted workers hold no workspace credential · Deployment modes · Simulations Lab · Outbound authorization

8 September 2026

Calls that end themselves

  • OpenPhonex now ends a live call on its own, so a call cannot run unattended against your balance, when: nobody left on the call, 29 minutes reached, or nobody heard for 20 seconds after answer, reported as remote_party_disconnected, max_call_duration_reached and no_caller_speech_after_answer.
  • A caller who leaves is now noticed even when the network never says so: the media server is asked who is on the call every 15 seconds, and a call empty for 15 seconds continuously ends.
  • All three values are platform-wide and cannot be set per agent yet. A call ended by a rule is billed exactly like any other completed call, and ends sooner, so it can only cost less.
  • An ordinary hang-up by the other party is now reported as remote_party_disconnected on the call detail and in the call.completed and call.ended webhooks, where that reason was previously empty.
  • When a call ends automatically

End a live call, and see why a call ended

  • POST /v1/calls/{call_id}/hangup asks a call that is already live to hang up; it answers 202 with hangup_requested_at and never reports the call as ended, because the media session is torn down separately and the call then completes through its ordinary path.
  • Asking twice returns the original request rather than starting a second teardown, and an unacknowledged request stays visible so a request nothing acted on is something you can see.
  • A call still queued for origination is refused with a pointer to POST /v1/calls/{call_id}/cancel, which remains the right tool before anything dials.
  • A completed call now carries ended_reason: remote_party_disconnected, hangup_requested, max_call_duration_reached or no_caller_speech_after_answer. It is empty on calls that completed before this shipped, and a failed call still reports technical_failure.failure_reason_code instead.
  • End a call that is still running · Why a call ended · Customer REST operations

Carrier verification progress reaches your number request on its own

  • A business profile whose identity is with the carrier is now re-checked on a schedule instead of only when someone presses Sync, so progress is picked up without anyone watching for it.
  • Your number request moves to the state the carrier check actually implies in the same pass, so a request no longer sits on "awaiting verification" while the carrier already has the identity.
  • When the carrier verifies the identity, the request continues from there without an operator step.
  • Customer REST operations

Post-call extraction runs without being asked twice

  • An agent with an active extraction schema now has its calls extracted automatically: the extraction worker is a deployed role, so call.post_call_extraction work is claimed as it is queued instead of waiting for someone to run it.
  • call.extraction.ready and call.extraction.failed webhooks fire for those calls, so an integration that derives an outcome from them stops seeing silence.
  • Calls that queued before this release are extracted too, oldest first, as long as their transcript is still retained.
  • Extraction remains opt-in per agent, and nothing changes for an agent without a schema.
  • Optional post-call extraction · Configure an event endpoint

Transcript confidence is a measurement, or nothing

  • GET /v1/calls/{call_id}/transcript returns confidence: null for a turn whose speech recogniser reported no confidence, instead of the fixed placeholder every turn used to carry.
  • Deepgram reports a real per-utterance confidence; Azure does not report one at all, so calls on an Azure recogniser return null for every turn.
  • Turn boundaries (start_ms, end_ms) are now the measured ones. A turn nothing measured has an equal start and end rather than an invented length.
  • Read call evidence

A longer endpointing hold, and per-agent thresholds in every language

  • Agents in a language with no trained turn detector now hold 800 ms after the caller stops speaking before treating the turn as finished, replacing a 200 ms-era default that could end a turn during a mid-sentence pause.
  • min_speech_ms and silence_hold_ms are explicit numbers and now apply in every language, overriding any sensitivity preset and the platform hold.
  • A min_speech_ms below the 500 ms interruption floor is raised to it on a phone call, because shorter bursts of background noise were cutting agents off mid-word.
  • interruption_sensitivity remains English-only, because a preset is a name for a measurement taken on English audio; set the two explicit values instead on an agent in another language.
  • Interruptions and barge-in

7 September 2026

Simpler workspace capabilities and optional destination restrictions

  • Open Capabilities to see available destinations first, followed by channels, effective call limits, and explanations of voice spending, wallet spending and simultaneous calls.
  • Add optional country restrictions for outbound calls and SMS; removing them restores only destinations already available to your workspace.
  • Request higher limits from the page without changing caps, prices or wallet funds; higher-limit requests still go through operator review.
  • Syria is no longer blanket-blocked by OpenPhonex; carrier availability, number rules, pricing checks and other applicable safeguards still apply.
  • Destination controls · Workspace limits

Import a campaign contact list from an Excel workbook

  • The campaign wizard's contacts step now accepts a CSV or an .xlsx workbook; both are read in your browser and post the same rows to POST /v1/contact-lists, so the two produce identical lists and per-row reports.
  • Date and number cells arrive as the text the sheet displays, not an Excel serial number or a rounded float — keep an account reference or a phone number in a text-formatted column.
  • Every contact list now records a source (api, csv, xlsx, or mcp) so you can see how its rows arrived.
  • Contact lists · Build the list

Several obligations per contact, a payment reminder that reads contact variables, per-contact languages

  • A contact variable may be a list of flat objects (one debtor, several loans): at most 16 items of 16 keys, string or number values, within the same 4 KB row budget. The workspace wizard groups several CSV rows per phone number into one contact's obligations (Several rows per phone number).
  • A conversation workflow speaks a list only through a section you author in a disclosing step ({{#obligations}} … {{/obligations}}), once per item, in your own words; the all-or-nothing rules extend to lists.
  • New starter template Payment reminder from contact variables (payment_reminder_variables): the payment reminder whose one read tool is served from the campaign contact's own variables, with the same verification-before-disclosure gate and no customer endpoint.
  • Each contact's language is the language its calls are made in (the campaign's language is the default); a contact whose language the AI agent does not publish ends pre_dial_failed with skip_reason language_not_published, and a contact with no language on a multilingual agent ends language_required.
  • Contact lists · Languages · Several obligations on one account

Campaign results with business outcomes, and a review inbox

  • The results export (GET /v1/campaigns/{campaign_id}/export) keeps its columns and appends the last call's business outcome: the workflow outcome and its label, the interrupt that ended the call, the post-call extraction status and one extraction.<field> column per field of the AI agent's extraction schema, and whether a recording and a transcript exist; GET /v1/campaigns/{campaign_id}/results is the same as JSON.
  • The review inbox lists the attempts whose workflow asked for a person (promise to pay, already paid, dispute, hardship, callback, language request, wrong party) with the call's evidence inline; a reviewer resolves each with a note (POST /v1/campaigns/{campaign_id}/reviews/{attempt_id}/resolve, audited, one resolution per attempt) and exports the resolved set (GET .../reviews/export).
  • The workspace shows Review inbox (N) on every campaign; the inbox filters by state, outcome and language, plays the recording, links the transcript and shows the extracted fields.
  • Campaigns · Review inbox · Post-call results

Campaigns open to every active workspace

  • Campaigns and authorized application batches are part of what every active workspace may do; the per-profile switch campaigns_allowed and the launch reason code campaigns_not_in_profile no longer exist.
  • A call sent with bulk: true, your own batch label as campaign_id and a user_authorization.authorized_by is an ordinary authorized call on any active workspace; a batch without an authorizer or with an unknown relationship is still held, and the custom implementation-services profile still sends every launch and batch to an operator (needs_review.custom_always_review).
  • The campaign wizard's review step previews each launch check — sanctioned destinations, workspace state, voice, your destination allowlist, purpose, consent basis, operator review — and says how many days a list takes under the tighter of your daily call cap and unique-destinations cap.
  • The Capabilities page shows a Campaigns row and labels every cap in force, including operator-set spend caps.
  • Launch a campaign · Campaigns · Policy & outbound · Authorized application batches

6 September 2026

Capabilities

  • The workspace outbound permission record is now called capabilities across the API, the MCP tools and the workspace, with no compatibility aliases: GET/POST /v1/organizations/{organization_id}/capabilities and POST .../accept-policy replace the outbound-permit routes, get_capabilities / request_capabilities replace the permit tools, the response key is capabilities, and authorization decisions carry capabilities_snapshot and the reason code channel_not_enabled.
  • Every workspace has exactly one record from the moment it is created (not_activated), and activation is automatic through both trust doors — an operator approving your business verification, or your first registration-free number — granting the default profile with its caps, the channels your workspace holds, and every destination except sanctioned countries; the states are not_activated, pending_review, active and suspended.
  • A request must choose its destinations: all_countries: true, or at least one country code; an unrecognized entry is refused by name.
  • The Capabilities page in the workspace shows the record, the caps in force, usage and open reviews, and takes requests with a searchable destination picker; calling rules attached by an operator are returned as calling_rules with calling_rules_active, and metadata.operational_profile is gone.
  • Your workspace capabilities · API reference · Tool reference

Destination countries required for the outbound permit

  • Requesting or replacing the outbound permit now requires at least one destination country; an empty or unrecognized list is refused instead of authorizing every destination.
  • The three outbound permit routes (GET/POST /v1/organizations/{organization_id}/outbound-permit and POST .../accept-policy) are documented in the API reference.
  • Outbound permits · API reference

Outbound permit

  • The self-serve outbound permission, formerly called the risk envelope, is renamed across the API, MCP tools, and the workspace, with no compatibility aliases.
  • Read or request it at GET /v1/organizations/{organization_id}/outbound-permit, or through the get_outbound_permit / request_outbound_permit MCP tools.
  • Request and track your permit from the Onboarding page: choose one or more use-case profiles, the channels you need, and destination countries, then accept the outbound policy.
  • Approval is instant once business verification (KYB) is complete; adding the custom implementation-services profile always goes to operator review.
  • Request your outbound permit · Tool reference

Delivery and acknowledgements controls in the agent editor

  • Delivery profiles and acknowledgements, previously API and MCP only, now have full controls in the agent editor.
  • Inside Voice stack, a chooser under each voice offers Provider default and the four delivery profiles, each labelled with what it changes and audible on the same Listen preview a call uses.
  • Acknowledgements gets its own section: an on/off switch, up to six phrases of your own, a delay from 0.6 to 3.0 seconds, and a preview in your agent's own voice.
  • Both controls stay off or unset for every agent until you change them.
  • Choose a delivery profile in the editor · Switch on acknowledgements in the editor

Self-serve outbound campaigns

  • Upload a contact list, set calling windows and a retry policy, and launch an agent at your own customers or consented contacts, without an operator.
  • The four-step wizard checks column mapping, calling hours and the cost estimate before launch.
  • Every campaign call clears the do-not-call register when placed and again when the agent starts talking.
  • Cold sales and telemarketing still go through operator review.
  • Read Campaigns · Build your do-not-call register

Edit a launched campaign, and export results

  • A scheduled or paused campaign can now be edited without cancelling it, in the workspace or through PATCH /v1/campaigns/{campaign_id} and the MCP update_campaign tool.
  • Editable fields include caller IDs, calling windows, retry policy, concurrency, and end date; the start time is editable only while still scheduled.
  • Duplicating a campaign now opens the copy in the wizard instead of a fresh blank draft.
  • Export CSV downloads every contact's status, disposition, attempts, and call outcome for a run.
  • Edit a campaign · Export campaign results

Campaigns page loading again for every workspace

  • Opening Campaigns briefly returned "This page could not be loaded" for every workspace instead of the dashboard.
  • The cause was in the workspace shell's page loader, not in campaign data or configuration.
  • No campaign, contact list, schedule, or call was affected, and the API, MCP tools, and webhooks kept working throughout.
  • The page loads normally again.
  • Read Campaigns

Auto multilingual: follow the caller across every supported language

  • Auto multilingual in the agent editor now offers All supported languages alongside Selected languages only.
  • The API carries the same choice: follow_caller: {"enabled": true, "scope": "all"} on PATCH /v1/agents/{agent_id}/voice-stack or the MCP set_agent_voice_stack tool.
  • This resolves every language your selected transcriber and voice actually support, instead of listing them one at a time; leaving scope unset keeps an agent's existing selected-languages behavior.
  • The accepted set still comes from the real call configuration, not every language any provider advertises anywhere.
  • A transcriber's simultaneous-candidate limit can still refuse an "all" publish that is too large — choose a smaller set or another transcriber.
  • Configure Auto multilingual · Follow the caller across languages

Tool-wait feedback: what a caller hears while a slow tool call runs

  • voice_polish.tool_wait fills the wait during a slow integration action, knowledge search, or webhook.
  • Choose off (default, not stored), sound (a quiet looping keyboard-typing bed, wordless in every language), or acknowledge (a short reviewed phrase in the agent's own voice).
  • A delay from 0.6 to 3.0 seconds controls how long a tool may run before feedback starts; most tools finish inside it and the caller hears nothing.
  • The control lives in the agent editor's Voice & behaviour page, next to Acknowledgements, with Hear the phrase and Hear the typing sound previews.
  • The Calls page now shows a Tool waits section on call detail, listing the setting the call ran with and each start, cut, or skip with its reason and offset.
  • Turn on tool-wait feedback

5 September 2026

Delivery profiles for agent voices

  • An agent's voice can now perform its speech in one of four ways: natural, lively, calm, or precise.
  • Set voice_polish.delivery on PATCH /v1/agents/{agent_id}/voice-stack, through the MCP set_agent_voice_stack tool, or per request on POST /v1/voice-previews to hear a profile before saving.
  • Each profile drives one allowlisted control per provider and model, and the preview response reports what was actually applied.
  • Leaving delivery unset keeps the provider's own defaults, so an agent that never chooses a profile sounds exactly as before.
  • Fish and Azure voices accept and store a profile but do not change their audio yet.
  • Choose a delivery profile · Hear it before you save

Acknowledgements while a slow reply is prepared

  • An agent can now say one short phrase in its own voice while a slow answer is still being written, instead of leaving the caller in dead air.
  • Enable voice_polish.acknowledgements on PATCH /v1/agents/{agent_id}/voice-stack or the MCP set_agent_voice_stack tool, with up to six phrases of your own and a delay of 600 to 3000 ms.
  • The phrase plays on its own audio track and is cancelled the moment the real reply or the caller starts, at most once per turn and never during a goodbye.
  • It is off unless you enable it, is not a transcript line, and a language with no reviewed phrases stays silent rather than falling back to English.
  • Turn on acknowledgements · Set the delay and phrases

4 September 2026

Ten numbers and ten simultaneous calls on pay as you go

  • PAYG now includes an allowance of 10 billed phone numbers and 10 simultaneous live calls per workspace; number rental and call usage remain separately charged.
  • Contact us for higher capacity.
  • Numbers, Billing, and number checkout show your billed-number usage and remaining allowance before you order.
  • Changing a use-case profile no longer changes your concurrency limit; explicit operator limits, available funds, rate limits, and carrier capacity still apply.
  • Check your workspace allowance · Open Phone numbers

3 September 2026

Grant bundles and a scope catalogue for API keys

  • A workspace API key's scopes can now name a grant bundle — all, all-read, or all-write — instead of listing every scope by hand.
  • A bundle is stored on the key by name and expanded against the live scope catalogue at use time.
  • A scope added later is covered automatically, with no need to reissue the key.
  • No bundle ever yields an operator-only or specialized-principal scope, and existing keys minted with an explicit scope list are unchanged.
  • GET /v1/api-keys/scopes returns each bundle's current expansion, every customer-grantable scope by namespace, and the operator-only scopes no workspace key can hold; the workspace API Keys key-creation dialog reads from the same endpoint.
  • Mint a key with a grant bundle · Read the grant catalogue

2 September 2026

Actionable technical evidence for failed calls

  • Failed calls now carry a bounded, versioned technical_failure object in signed lifecycle results, GET /v1/call-results, and the Calls workspace.
  • It identifies an allowlisted terminal status, reason, and failure stage without exposing raw provider errors, SIP headers, transcripts, phone numbers, credentials, or stack traces.
  • OpenPhonex reports no_answer only when a durable ringing-timeout event proves it.
  • Historical or unclassified failures remain explicitly unknown instead of being reinterpreted from call duration or current configuration.
  • Read post-call technical evidence · Inspect call evidence

More reliable spoken endings and call evidence

  • Affected ElevenLabs v3 dialogue voices now use a streaming synthesis path that preserves the audible decay of final words, instead of the provider websocket path that clipped every turn.
  • Other providers and ElevenLabs' regular low-latency websocket remain on their existing transports.
  • Terminal farewells now finish their bounded playout and evidence handoff before the worker seals the call, and stored agent clips end at the last audible room audio.
  • Room-disconnect teardown is bounded so usage, evidence, lifecycle, and cleanup can finish instead of leaving an otherwise completed call orphaned.
  • Choose and preview a voice · Understand call evidence

Multilingual calls continue after a language switch

  • An applied language switch now keeps the call's shared simultaneous recognizer attached, so the agent continues hearing the caller after changing its spoken language.
  • Applied switches and out-of-set refusals both produce a spoken next turn rather than leaving the caller in silence.
  • Structured switch evidence is preserved after the call.
  • Configure Follow the caller · Read language-switch evidence

1 September 2026

Audio environments for agents and simulations

  • Add an optional version-pinned ambience to an agent's outgoing audio, or give an adaptive-voice simulation a separate caller-side noise condition.
  • The five initial environments are quiet office, call centre, cafe, street, and television; Off is the quiet baseline.
  • Agent output volume and simulated caller noise level remain independent controls.
  • The same catalogue and configuration are available through the public API and MCP, and voice previews preserve your selected language and text while applying the chosen ambience.
  • Configure audio environments · Test noisy callers in Simulations Lab

Offline adaptive-voice simulations

  • Hosted Simulations Lab can now run the offline adaptive-voice runner for supported agents, generating and transcribing caller audio to test recognition robustness, including the caller-noise environments above.
  • Offline adaptive voice now supports both eligible Deepgram-based stacks and an Azure-pinned Speech component.
  • Azure tests keep that pinned transcription or synthesis provider, use the selected language's exact locale, and never fall back to another provider.
  • This mode still does not prove LiveKit room timing, barge-in behavior, or teardown timing; those require a realtime-room validation path.
  • Use Simulations Lab

31 August 2026

Follow the caller across languages

  • One agent can use several published languages, with a shared voice and optional language-specific voices and greetings.
  • Follow the caller adds controlled switching within that set during supported browser tests and phone calls.
  • After call evidence arrives, call details distinguish applied language changes from rejected or failed attempts.
  • Follow mode requires a compatible shared transcriber; workflow-bound calls remain fixed-language, and detection and explicit switch requests depend on the configured provider.
  • Configure multilingual agents · Read call evidence

Microsoft Azure AI Speech voices

  • Azure AI Speech joins the voice providers available in the library.
  • Browse its voices and locales, audition text, and select a supported voice for your agent.
  • Provider credentials and the selected voice's capabilities still determine availability.
  • Explore the Voice Library

Agent configuration and simulation runs through MCP

  • MCP clients can configure agents and voice stacks, discover voice choices, and preview voices with the appropriate permissions.
  • You can also author simulation suites, preview a run's cost, start supported runs, and read their results; suite execution is now accessible from the agent workspace as well.
  • Deterministic and adaptive-chat tests are available.
  • Adaptive-voice testing is not enabled in the hosted service at the time of this roundup; check the supported runners returned by the run preview before starting a suite.
  • Connect through MCP · Use Simulations Lab

30 August 2026

Pay as you go, with browser-testing credit

  • PAYG has no monthly platform subscription.
  • Eligible customers receive a one-time USD $5 browser-testing credit, separate from purchased funds.
  • Phone calls, SMS, and phone numbers still require purchased funds and incur their applicable charges.
  • Understand billing and browser credit

A larger, provider-backed Voice Library

  • Browse provider-backed voice inventories with combined language, accent, character, and provider filters; search and pagination let you explore larger catalogs without loading every voice at once.
  • A voice is grouped with its supported model choices instead of being repeated for each model.
  • Cartesia Sonic 3.6 is among the supported provider choices, and you can audition your own text.
  • Provider inventory refreshes retain the previous successful catalog if a refresh fails, a removed voice is not silently replaced on saved agents, and availability depends on the provider and account configuration.
  • Browse and audition voices

Published multilingual profiles

  • Choose several languages on one agent and select a published starting language for each call.
  • Share the agent's instructions, tools, and knowledge while using language-specific greetings and optional voice overrides.
  • Calls keep their admitted configuration even if the agent is edited later.
  • Set up language profiles

26 August 2026

Simulations Lab: repeatable agent tests

  • Create caller scenarios against a pinned agent version and inspect transcripts and rule-based results.
  • Use deterministic checks for exact behavior, or adaptive chat for a model-generated caller.
  • Simulation-only tool fixtures keep these tests separate from real customer actions.
  • Adaptive runs have provider costs and explicit budgets.
  • Create a simulation suite

Customer-owned DIDLogic accounts

  • Imported, customer-owned DIDLogic accounts can be used with hosted agents while the carrier continues billing the customer directly.
  • OpenPhonex bills its applicable agent components without charging that externally billed carrier usage to the workspace wallet again.
  • Understand deployment and billing ownership

25 August 2026

Locally initiated calls from self-hosted gateways

  • Self-hosted gateways can initiate admitted outbound calls with their deployment-bound credential, without requiring a broad workspace API key.
  • Workspace policy, authorization, and billing admission still apply.
  • Choose a deployment mode

On this page

9 September 2026Every automatic ending now records its reasonThe maximum length and the silence window are per-agentA call the agent finishes now says soOutbound calls and Simulations Lab runs need nothing installed8 September 2026Calls that end themselvesEnd a live call, and see why a call endedCarrier verification progress reaches your number request on its ownPost-call extraction runs without being asked twiceTranscript confidence is a measurement, or nothingA longer endpointing hold, and per-agent thresholds in every language7 September 2026Simpler workspace capabilities and optional destination restrictionsImport a campaign contact list from an Excel workbookSeveral obligations per contact, a payment reminder that reads contact variables, per-contact languagesCampaign results with business outcomes, and a review inboxCampaigns open to every active workspace6 September 2026CapabilitiesDestination countries required for the outbound permitOutbound permitDelivery and acknowledgements controls in the agent editorSelf-serve outbound campaignsEdit a launched campaign, and export resultsCampaigns page loading again for every workspaceAuto multilingual: follow the caller across every supported languageTool-wait feedback: what a caller hears while a slow tool call runs5 September 2026Delivery profiles for agent voicesAcknowledgements while a slow reply is prepared4 September 2026Ten numbers and ten simultaneous calls on pay as you go3 September 2026Grant bundles and a scope catalogue for API keys2 September 2026Actionable technical evidence for failed callsMore reliable spoken endings and call evidenceMultilingual calls continue after a language switch1 September 2026Audio environments for agents and simulationsOffline adaptive-voice simulations31 August 2026Follow the caller across languagesMicrosoft Azure AI Speech voicesAgent configuration and simulation runs through MCP30 August 2026Pay as you go, with browser-testing creditA larger, provider-backed Voice LibraryPublished multilingual profiles26 August 2026Simulations Lab: repeatable agent testsCustomer-owned DIDLogic accounts25 August 2026Locally initiated calls from self-hosted gateways