Changelog

Notable changes to the VoiceDock platform, API, and documentation.

Notable, user-facing changes to the VoiceDock platform and API, newest first. Dates reflect public availability.

August 2026

  • Correction: provider costs were billed about 4.6% too high, and are now converted at the daily ECB rate. Model usage is priced by providers in dollars and passed through to you in euros, which means a conversion rate. That rate was updated by hand and had stood still for 55 days, so every provider cost on your invoice during that period was converted at a stale rate and came out roughly 4.6% too high. It is now fetched from the European Central Bank every day and needs no maintenance. If something on an invoice still looks inconsistent to you, get in touch and we will look at it with you.
  • A managed phone number that was switched off now asks for balance before it comes back on, and charges the monthly fee. Until now a number that we deactivated for insufficient balance could be switched straight back on from the dashboard, which meant the month went unpaid. Turning it back on now requires enough balance to cover the monthly fee and charges that fee immediately, at most once per calendar month per number. If the monthly job already charged you this month, switching the number back on costs nothing extra. Numbers on your own SIP trunk have no monthly fee and are unaffected. See Billing.
  • You now hear about it before a number goes off, and again when it does. Three signals where there were none. Around the 25th of the month you get an email if your balance will not cover the numbers you have on the first, with the amount, the shortfall and the numbers listed. If a number is deactivated anyway, you get a second email at that moment explaining why and what to do. A failed charge is also written to your transaction history as its own line, so the billing page can show the reason a line went quiet instead of leaving an unexplained gap. The line moves no credits; the amount that could not be charged is recorded with it.
  • Signalling on the trunk is now encrypted. SIP to our platform runs over TLS on port 5061 and media on the trunk leg is encrypted with SRTP. New outbound trunks are created with encryption enabled; existing trunks are left as they are, so nothing changes for a line that works today. Browser-to-platform calls were already encrypted and are unchanged.
  • Retention now also covers chats and campaign leads. Your retention window already applied to calls, transcripts, recordings and analyses. It now covers chat conversations and the personal data on campaign leads as well, on the same schedule. Nothing to configure. See Privacy and compliance.
  • The API reference now matches the API. Twelve places where the documentation described something other than what the platform does, which matters more than usual here because the MCP server builds its tools from this specification. The workflow endpoints were missing entirely and are now documented, all four of them, including the rules a definition has to satisfy. POST /v1/byok/config was documented as a GET that does not exist. A schema reference in the outbound-call request pointed at a type that had never been created. The analysis-template endpoints advertised limit and offset parameters that did nothing and described response envelopes that did not match. There is now a check in our build that fails if the specification and the routes drift apart again.
  • max_duration_seconds is validated on assistants. The field went into the database unchecked, which meant a value in milliseconds or a typo was accepted and only surfaced later. It is now rejected unless it is a whole positive number of seconds at or below the platform ceiling of twelve hours. Existing assistants are unaffected.
  • Fix: amounts in the dashboard follow the language you use. Euro amounts and counts appeared with a decimal point in the Dutch interface and, in a couple of places, with a comma in the English one. Sometimes both notations sat on the same page, over money. All amounts now use the separator of your interface language.

July 2026

  • Grok Voice Think Fast 2.0 is available for xAI Realtime assistants. xAI's newest speech-to-speech model can now be selected on any assistant using xAI Realtime. It is backwards compatible with the 1.0 settings, so your voice and turn-taking configuration carries over unchanged and only the model name differs. It is not the default, and existing assistants keep running 1.0 until you change them yourself. The reason is price: 2.0 costs $0.08 per minute against $0.05 for 1.0, and because provider usage is passed through at cost, that difference lands on your invoice. xAI reports improvements in reasoning, transcription accuracy and time to first audio; those are their published figures, not our measurements. One thing worth knowing if you use the rolling grok-voice-latest alias: xAI moves it from 1.0 to 2.0 on 5 August 2026, which changes both the model and the per-minute price without any action on your side. Pin an explicit model name if you would rather decide that moment yourself. See xAI Grok integration.
  • Speech recognition moved to Deepgram's EU endpoint, and out of model training. All Deepgram speech-to-text now runs against api.eu.deepgram.com with the Model Improvement Program switched off, so call audio stays in the EU and is never used to train their models or shared with third parties for benchmarking. This is a platform default, deliberately not configurable per assistant: an account should not be able to move its callers outside the EU or into a training set by accident. Nothing to change on your side, and no price difference. See Privacy and compliance.
  • Retention windows are now enforced automatically. Your configured retention period is applied every night: transcripts, summaries and analyses are stripped and recordings are deleted from storage once a call passes the window, with phone numbers and call events following a separate, longer window. Until now the setting described an intention; it is now the mechanism. Existing calls are covered as well. See Privacy and compliance.
  • Turn-taking settings for xAI Grok Realtime. Three fields on the assistant let you tune when Grok decides the caller has stopped speaking: silence before end of turn, speech threshold, and lead-in audio. Leave a field empty and the provider default applies, so existing assistants behave exactly as before. Configure it under Language Model in the dashboard, or set llm_config.turn_detection through the API. See xAI Grok integration.
  • Interruption detection now runs on our own infrastructure. Deciding whether a sound is a real interruption or just a listener saying "mm-hm" previously called a hosted service on every interruption, which added an external dependency to the live call path and carried a request ceiling. That work now happens locally. No configuration and no behaviour change to tune; it removes a moving part from the path a call depends on.
  • Fix: telephony lines on your own SIP trunk no longer show a carrier. Calls on a bring-your-own trunk listed our carrier and its tariff class in the cost breakdown, even though the leg was never priced by us and never billed. Those lines now correctly show no provider and no tariff class. Managed numbers are unchanged. See Billing.
  • Fix: parts of the dashboard showed Dutch text in the English interface. The advanced turn-taking panels for xAI Grok Realtime and Gemini Live were not translated.
  • Automatic failover — our first stable release (1.0). VoiceDock now runs active-passive: a warm standby mirrors production continuously and takes over automatically if the primary stops responding, typically within about 90 seconds and with nothing to change on your side. We verified it end to end on production with a controlled outage — a real inbound call was answered on the standby with recording, analysis and billing intact. If a failover ever happens, we are paged automatically.
  • Sign in to the MCP server with your account (OAuth 2.1). Connect Claude, Claude Code, Cursor, or any MCP client to the MCP server with just the URL — no API key to copy. Your client opens a browser, you log in with your VoiceDock account and approve access on a consent screen, and it works against your organization. A raw API key still works as a bearer token for CI and scripts.
  • Multiple recipients and action buttons for end-of-call reports. Send the post-call report email to up to five addresses per assistant, and choose which buttons the email shows — an "Open in dashboard" link, a direct "Listen to recording" button, both, or neither. Configure it on the assistant in the dashboard. See Call analysis.
  • Itemized telephony costs on managed numbers. Calls on platform-managed phone numbers now meter the phone legs as a provider cost at carrier list rates, itemized per call in the cost breakdown next to model usage, on top of the unchanged €0,07/min orchestration fee. A transferred call shows the inbound line and the outbound leg to the destination as separate lines; unanswered transfer attempts cost nothing. On a transferred call the per-minute rate stops at the moment the transfer connects, so the human-to-human part of the conversation carries telephony cost only, with no model usage and no orchestration fee. Numbers on your own SIP trunk are exempt, exactly like BYOK for models. See Billing.
  • No-answer handling for call transfers. Transfers can now wait for the destination to actually answer before connecting the caller (wait_for_answer on the transfer tool). If nobody picks up within the configurable timeout — or the line is busy — the assistant stays with the caller and can take a message, try one of the configurable backup numbers (fallback_destinations, tried in order), or end the call politely. Existing transfers are unchanged: without the flag, transfers connect immediately as before. See Call Transfers.
  • Workflows (Beta). Build multi-step call flows on a visual canvas: conversation steps with their own instructions — and optionally their own model, voice, text-to-speech or speech-recognition settings — background tool calls that always run, guaranteed human transfers and clean endings. Global steps such as "back to reception" are reachable from anywhere without drawing lines. One assistant keeps supplying the defaults and call settings; the workflow drives inbound calls on the numbers it is attached to. Attach a workflow to a phone number in the dashboard or via the API. See Workflows and the Workflows API.
  • Webhooks per phone number. A webhook can now be set directly on a phone number, alongside per-assistant and account-wide webhooks. For each event, VoiceDock delivers to exactly one endpoint, with precedence assistant → phone number → account: a number's webhook is used when its assigned assistant has none, and takes precedence over the account webhook. See Webhooks overview.

June 2026

  • Developer logs. A new Logs page in the dashboard shows what happens on each call — when it starts and ends, and the errors that stop a call, such as an unknown model or an invalid tool definition. Scoped to your own organization, so you can debug an assistant without opening a support ticket.
  • More natural call endings. Assistants now finish their closing line cleanly before hanging up, with no mid-sentence cut-off or trailing silence, including on realtime speech-to-speech models.
  • End-of-call reports for platform-key assistants. Assistants running on platform-provided keys (without BYOK) now also receive a post-call summary and structured analysis, just like BYOK assistants. See Call analysis.
  • Usage-based, at-cost pricing. You pay for actual model usage at cost, plus a flat €0.07 per minute orchestration fee. Vertex AI Live is a flat €0.25 per minute, all-in. See Billing.
  • Bring-your-own-key (BYOK) is now optional. Assistants work out of the box on platform-provided keys; add your own provider keys only if you want to. See BYOK setup.

May 2026

  • Documentation and full API reference launched — complete guides plus an interactive REST API reference. Start at the Quickstart.
  • xAI Grok for realtime voice — low-latency realtime speech, plus a Grok text-to-speech option. See xAI Grok integration.
  • Branded end-of-call report emails — per-organization branding, an "Open in dashboard" link, and a recording hint.
  • Configurable call duration up to 30 minutes per assistant (max_duration_seconds). See Assistants.

April 2026

  • Google Gemini Live added as a realtime speech-to-speech provider, including a Vertex AI option. See Provider pricing.
  • Google Gemini text-to-speech added as a provider.
  • Email notifications for web calls.

March 2026

  • Official Node.js / TypeScript SDK released — install hmsovereign from npm. See Node SDK.
  • MCP server for the platform, hosted at mcp.hmsovereign.com. See MCP server.
  • Recording consent flow (DTMF) — callers can be asked to press 1 to consent before any processing begins. See Privacy & compliance.
  • More providers — Mistral (Voxtral) speech-to-text and Inworld text-to-speech.
  • Improved multilingual turn detection and interruption handling.

February 2026

  • More provider options — Mistral and xAI Grok as text models, Gladia and ElevenLabs Scribe as speech-to-text.
  • GDPR mode for per-assistant data-retention control. See Privacy & compliance.
  • Configurable silence timeout with a faster default.

January 2026

  • Web calls — browser-based WebRTC calls, with a public embeddable web-calls API and whitelabel support. See Web calls.
  • Call recording with signed URLs for secure access.
  • Voicemail detection and a configurable voicemail message. See Voicemail detection.
  • Autonomous silence handling — recurring prompts when a caller goes quiet. See Autonomous silence handling.
  • Outbound campaigns — campaign tracking for outbound calls. See Campaigns.
  • Assistants can speak while running a tool, with async tool results fed back into the conversation. See Custom tools.
  • Richer webhook events — deterministic end reasons, call timestamps, and phone-number and direction fields.
  • Real-time sync webhook API, replacing polling.
  • Free local voices for text-to-speech.
  • Prompt template variables such as {{ now }}.

December 2025

  • Public API foundations — assistants, calls, and phone numbers as first-class resources, with agent configuration separated from phone numbers.
  • Webhooks — assistant-request (pre-call config override), status-update, tool-calls (function calling), and end-of-call-report with full transcript. See Webhooks.
  • Live Call Control API — inject context, speak, transfer, or end a call mid-conversation.
  • Built-in call control — LLM-controlled end_call and call transfer. See Call transfers.
  • Outbound call API.
  • Post-call structured analysis. See Call analysis.
  • Bring-your-own-key (BYOK) providers and SIP trunk support. See SIP trunks.
  • xAI Grok realtime speech-to-speech provider.
  • Whitelabel support — child organizations, per-organization email domains, and branded summaries. See Whitelabel.
  • Usage-based billing in credits, at a flat €0.07 per minute.
  • Multilingual emails and call summaries.

On this page