Appearance
Changelog
Release notes for the sipgate flow API and SDK. Only customer-visible changes are listed here.
Improvements — October 2026
Experimental STT Provider with Semantic Voice-Activity Detection
Speech recognition can now optionally run through the Azure Voice Live API (provider: "AZURE_VOICE_LIVE" in a configure_transcription action). Its semantic voice-activity detection uses a speech model instead of an energy threshold to decide when a turn starts and ends, making it noticeably more robust against coughs, throat clearing and background noise — fewer interruptions triggered by non-speech sounds, and fewer turns cut short by a pause mid-sentence. The provider accepts multiple language codes like Deepgram does and is experimental: it may not be enabled in every environment, so ask sipgate support before relying on it.
v2.0.0 — September 2026
Voice-to-Voice Mode Removed
The end-to-end voice-to-voice mode (preview) is no longer supported. This is a breaking change in two places:
- The
configure_voice_to_voiceaction is no longer accepted. - The session object on every event no longer contains a
modefield — most noticeably onsession_start:
json
{ "type": "session_start", "session": { "id": "…", "account_id": "…", "phone_number": "…", "direction": "inbound", "from_phone_number": "…", "to_phone_number": "…" } }If your integration validates the presence of session.mode, make the field optional or remove the check. Everything else — all other actions, events and fields — is unchanged.
The TypeScript SDK reflects this in its 2.0.0 release; the removed SessionMode type and configure_voice_to_voice action builder are the reason for the major version bump.
Improvements — September 2026
Outbound Calls Now Reach the Number You Ask For
Outbound calls could be accepted and confirmed without the phone ever ringing: a target given in E.164 without a leading + was interpreted as a number in your own account's local dialling range, so the call went to a number that does not exist. Nothing in the response indicated a problem.
Targets are now always dialled as full international numbers. Both +4915790000687 and 4915790000687 work — the + is added for you when it is missing — so existing integrations start working without any change on your side.
See Outbound Calls.
v1.13.0 — August 2026
A New error Event Tells You When Something Goes Wrong
Until now, most failures during a call were invisible to your application: an action that failed validation, a speech provider that could not be reached, or a synthesis that failed simply happened quietly, and you had to guess from the call's behaviour. Debugging meant working blind.
Your application now receives an error event whenever the service cannot carry something out. Each one carries a stable, machine-readable code you can branch on (for example action_invalid, transcription_unavailable, synthesis_unavailable, transfer_target_invalid) and a severity — warning when the call keeps going, error when the intended effect did not happen — so you can react to what matters and ignore the rest.
Over HTTP you can even respond to an error event with an action, such as answering a failed synthesis with a transfer to a human. The SDK adds an onError handler for it. This is additive: the existing sms_failed event and the transfer_failed_reason field on session_start are unchanged.
See Error Event.
Improvements — August 2026
Empty Webhook Responses No Longer Count as Errors
If your webhook has nothing to do for an event, you can now say so with an empty object ({}) or an empty array ([]) — just like an empty body or 204 No Content. Previously those replies were treated as a malformed action: they produced an error event with code action_invalid on every conversational turn. No-code and low-code flows that always return a JSON body work out of the box now.
Switching Transcription Provider No Longer Risks a Silent Call
Switching the transcription provider mid-call with configure_transcription could leave a session without speech recognition: your assistant still spoke and you still received user_speech_started, but no user_speak event ever followed, so callers were heard by nobody for the rest of the call. This happened when the newly selected provider could not be reached at that moment.
The switch is now only completed once the new provider is actually connected. If it cannot be reached, the session simply stays on the provider it was already using and recognition continues without a gap. See If the New Provider Cannot Be Reached.
v1.12.0 — July 2026
You Now Learn Why a Transfer Did Not Connect
When a transfer with a timeout fails and the caller comes back to your agent, the returning session_start event now tells you why: busy, rejected, no_answer, number_not_found, technical_error or unknown. Your assistant can react appropriately instead of guessing — offer a second target when the line was simply busy, and fall back to taking a message when the number or the route is the problem.
The new transfer_failed_reason field is only present on a returning caller, so it also removes the need to track which sessions you transferred: if the field is there, the call came back. See Failed Transfer.
Improvements — July 2026
Interrupting Kugelaudio Voices Now Cuts Off Cleanly
Interrupting the assistant while it is speaking with a Kugelaudio voice now stops the current sentence immediately. Previously the remainder of the interrupted sentence could still be played after the interruption, overlapping the assistant's next response — most noticeably on longer replies. Barge-in with Kugelaudio now behaves the same as with the other voice providers.
Faster Replies After an Interruption
When a caller interrupts a Kugelaudio voice, the assistant's next response now starts within about a third of a second instead of waiting one to several seconds. The wait used to grow with the length of the sentence that was interrupted; it no longer does. Interrupting a long answer to ask something else now feels like talking over a person rather than over a machine.
v1.11.0 — June 2026
sipgate-Hosted STT Providers: Qwen and Parakeet
Two new speech-to-text providers are now available — Qwen and Parakeet, both hosted entirely on sipgate infrastructure with no third-party cloud involved. Set provider: "SIPGATE_QWEN" or provider: "SIPGATE_PARAKEET" in a configure_transcription action to switch to either provider mid-call.
Both support language hints, custom vocabulary, and the immediate barge-in strategy.
v1.10.0 — June 2026
Kugelaudio TTS Provider
You can now use Kugelaudio as a text-to-speech provider for German and multilingual voice synthesis. Set provider: "kugelaudio" in any speak action's tts config to use it. Six German voices are available, including the familiar sipgate voice (used by default). Speed and language can be configured per action.
Kugelaudio runs entirely on sipgate infrastructure — no third-party cloud service is involved.
v1.9.0 — May 2026
Per-Action VAD Configuration
You can now configure Voice Activity Detection (VAD) individually for each speak action. This lets you fine-tune how sensitive barge-in detection is depending on the context — for example, using stricter VAD during important announcements and more permissive settings during open-ended questions.
Improvements — April 2026
Faster, More Natural Conversation Turns
Upgraded to a next-generation transcription backend with significantly improved end-of-utterance detection. The assistant responds faster at natural sentence endings and is less likely to cut in while the caller is still speaking.
Background Audio Looping (mix_audio)
The mix_audio action now supports looping — play hold music or ambient sound continuously in the background while the assistant speaks, without gaps or manual re-triggering.
Transfer with Timeout Fallback
The transfer action accepts an optional timeout. If the transfer destination does not answer within the configured time, the call returns to your assistant automatically, allowing you to handle the fallback gracefully.
Send SMS During a Call (send_sms)
A new send_sms action lets your assistant send an SMS to the caller while the call is still active — useful for sending confirmation links, reference numbers, or follow-up information in real time.
Keypad (DTMF) Input Support
Your assistant can now react to keypad presses during a call. DTMF digits are delivered as events, enabling menu navigation, PIN entry, and other touch-tone interactions. User input timeouts also reset correctly when the caller presses a key.
Consistent E.164 Phone Numbers in All Events
Caller and callee phone numbers in all events are now consistently formatted as E.164 (e.g. +4921112345678). If you were normalising numbers on your side, this step is no longer necessary.
v1.5.1 — March 2026
Outbound Calls
Initiate AI-powered calls programmatically via POST /ai-flows/:aiFlowId/call. Your assistant handles the call as soon as the recipient picks up — the same event-driven flow as inbound calls. Available on request after a review by sipgate support.
Real-Time Speech Start Event (user_speech_started)
A new user_speech_started event is sent the moment the caller begins speaking — before transcription completes. Use it to interrupt the assistant or trigger visual feedback without waiting for the full transcript.
Faster ElevenLabs Voices
ElevenLabs voices now use the latest eleven_flash_v2_5 model by default, delivering noticeably lower latency for generated speech.
ElevenLabs EU Data Residency
ElevenLabs voices now route through the EU endpoint by default, keeping audio data within the European Union.
Improvements — February 2026
Immediate Barge-In Strategy
A new immediate barge-in strategy detects speech using Voice Activity Detection (VAD) the moment a caller starts talking — typically 20–100 ms before the first word is transcribed. Conversations feel as natural as talking to a real person.
Mid-Call Language and Provider Switching (configure_transcription)
A new configure_transcription action lets your assistant switch the transcription language or provider in the middle of a call — for example, after detecting that the caller speaks a different language, or to adapt recognition parameters dynamically. Supported languages follow BCP-47 tags and work across Azure, Deepgram, and ElevenLabs.
Improvements — January 2026
SSML Support in Speak Actions
The speak action now accepts SSML (Speech Synthesis Markup Language) in addition to plain text. Use SSML to control pronunciation, pauses, emphasis, and speaking rate for fine-tuned voice output.
Early Access — November–December 2025
Multi-Provider Transcription
Deepgram and ElevenLabs are now available as speech-to-text providers alongside Azure. Select the provider that best fits your use case — each offers different strengths in accuracy, latency, and supported languages.
Phone Number Routing
Flows can now be associated with specific phone numbers directly through the API, making it easier to build multi-flow routing logic without external IVR configuration.
SDK Launch
The @sipgate/ai-flow-sdk TypeScript SDK is now publicly available on npm. It provides fully typed event handlers and action builders, removing the need to manage raw WebSocket or HTTP webhook payloads manually.
Note: The Flow API follows continuous delivery — not all improvements correspond to an SDK version bump. Check this page regularly for the latest changes.