1.8 KiB
1.8 KiB
Wave 2 / Track 12 - Operator Voice UX Hardening
Status: Accepted
Track 12 hardens the accepted Track 11 voice-control baseline without changing the telephony architecture.
Goal
Keep the current Asterisk plus MicroSIP/Zoiper model, but make the operator voice flow predictable and readable.
Accepted outcome:
/operatorshows only real bridge-backed calls- active and recently ended calls are separated
- browser actions behave consistently
- recent calls stay visible briefly instead of disappearing immediately
Scope
In scope:
GET /asterisk/recent-calls- additive live-call metadata
- operator UI split into
Активные звонкиandТолько что завершённые - clearer labels and SIP-versus-browser hint text
- removal of interaction-based live-call guessing
- QA acceptance for active/recent call behavior
Out of scope:
- WebRTC or browser softphone
- claim-first telephony redesign
- ARI
- attended transfer or conference
- production cutover
Deliverables
- Backend:
services/asterisk_bridge_service/app.pyservices/shared/models.pygateway/app.py
- Operator UI:
ui/operator/index.htmlui/operator/app.jsui/operator/styles.css
- Evidence and docs:
docs/runbooks/track12-operator-voice-ux.mddocs/acceptance/track12/track12-acceptance.template.md
Accepted baseline
Track 12 is frozen with these guarantees:
Живые звонкиnever falls back tointeraction:int_*placeholder cardsreconciledservice traces do not remove an active call earlyhangupandblind transfermove the card into the recent bucket- recent cards stay visible for the short configured window
- Track 11 control-path behavior and recording playback remain green
This is the current operator voice UX baseline.