Skip to content

v2.2.0-beta — Inbound Voice AI Infrastructure

Choose a tag to compare

@iamprashant iamprashant released this 28 Apr 10:30
· 243 commits to main since this release
Immutable release. Only release title and notes can be modified.
d23874a

This release focuses on three infrastructure changes that make inbound voice AI production-ready.


Breaking change: transfer_to replaces to in transfer tool calls. Update your configs before upgrading.


Distributed SIP Registration

The registration flow is now based on explicit ownership and reconciliation:

  • Each DID is claimed through Redis-backed ownership
  • One instance becomes the active owner for that DID
  • The owner performs SIP registration and keeps it active
  • If that owner disappears, another instance can claim the DID and restore service

This is a key step toward making inbound voice AI reliable in multi-instance deployments.

Multi-Server Ownership and Failover

The registration pipeline now separates ownership, registration, and active-state handling more cleanly:

  • Clearer ownership semantics per DID
  • Safer failover across replicas
  • Fewer single-node assumptions
  • More predictable behavior in horizontally scaled deployments

Multi-Target SIP Transfer Failover

SIP transfer now supports multiple ordered transfer_to targets:

  • Try target 1
  • If target 1 fails or does not answer, try target 2
  • Continue until a target connects or the list is exhausted

Defined Post-Transfer Behavior

Transfer now has explicit post-transfer behavior for SIP:

  • end_call
  • resume_ai

Engineer-Facing Changelog

SIP Registration

  • Added distributed SIP registration manager
  • Added Redis-backed DID ownership flow
  • Added multi-server registration pipeline
  • Separated claim ownership, register, and mark-active stages
  • Improved reconcile behavior for active and removed registrations
  • Improved ownership release behavior for failover and cleanup

SIP Transfer

  • Added support for ordered multi-target transfer via transfer_to
  • Added per-target transfer retry/failover flow
  • Added explicit post-transfer behavior with end_call and resume_ai
  • Improved transfer handling in SIP pipeline and streamer path
  • Aligned transfer behavior for channels where multi-target transfer does not apply

Telephony and Session Behavior

  • Improved metadata alignment across telephony paths
  • Improved transfer-related session state handling
  • Improved observer/event behavior around transfer lifecycle
  • Reduced undefined behavior after operator hangup

Tooling and API Cleanup

  • Renamed transfer argument from to to transfer_to
  • Improved transfer tool call handling
  • Improved downstream transfer orchestration consistency

Stability and Tests

  • Added and updated tests around transfer behavior
  • Improved dispatch-related test coverage
  • Fixed call-flow edge cases around tool calls and injected messages
  • Refined dispatch behavior for transfer and tool-call flows

Full Changelog: v2.1.0...v2.2.0