06 Voice And Protocol Expansion
Scope:
- Deepen the unified voice protocol entry
- Land signaling/media providers
- External recording/transcription providers
- Reserve common voice protocol extensions
Constraints:
- The
voicebusiness layer must not depend backward on concrete protocol DTOs - Signaling and media must stay layered
V1 protocol-end-to-end
- [x] Add invite -> answer -> hangup end-to-end tests for the
sipprotocol entry - [x] Add invite -> dtmf -> hangup end-to-end tests for the
sip-wsprotocol entry - [x] Add invite -> transfer -> hangup tests for the
pstn-providerwebhook entry - [x] Add contract tests for
/api/voice/protocols
Acceptance:
- New protocol entries have full HTTP/runtime/voice chain verification, not just adapter unit tests
V2 call-control-semantics
- [x] Add hold event mapping in the unified protocol entry
- [x] Add resume event mapping in the unified protocol entry
- [x] Add transfer event mapping to the
voiceuse case in the unified protocol entry - [x] Clarify the dispatch strategy for DTMF across voice/conversation/automation
Current DTMF strategy:
- Protocol adapters first normalize events into
voiceprotocol.CallEventDTMF - The
voiceruntime receives and keeps the unified entry, and does not write call state directly - If
conversationorautomationlater needs to react, it should subscribe to unifiedvoiceevents instead of depending backward on concrete protocol DTOs
Acceptance:
- Common call control events all flow through the unified normalization model
V3 provider-implementation
- [x] Extract the recording provider from in-memory into a standalone mock/provider package
- [x] Extract the transcription provider from in-memory into a standalone mock/provider package
- [x] Add failure retry and error models for providers
- [x] Reserve async webhook/callback write-back interfaces
Acceptance:
- Recording and transcription providers can be swapped independently without affecting voice use cases
V4 media-topology
- [x] Abstract RTP/SRTP adapter placeholders
- [x] Clarify the WebRTC and RTP bridge contract
- [x] Reserve conference/mixer capability interfaces
- [x] Reserve QoS / voice quality metrics collection points
Acceptance:
- Extending from point-to-point calls to more complex media topologies later will not require tearing down the current structure
V5 protocol-reservation
- [x] Reserve
voiceprotocol.ProtocolH323 - [x] Reserve
voiceprotocol.ProtocolFreeSWITCHEventSocketor similar PBX adaptation capability - [x] Reserve a hosted voice vendor webhook adapter contract
- [x] Write a minimal implementation template document for onboarding new protocols
Acceptance:
- The voice module is not implicitly designed as "SIP only"