v2.2.0-beta — Inbound Voice AI Infrastructure
·
243 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
This release focuses on three infrastructure changes that make inbound voice AI production-ready.
Breaking change:
transfer_toreplacestoin 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_callresume_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_callandresume_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
tototransfer_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