Files
call-center/docs/roadmap/06-track10-live-voice-reliability.md
T

66 lines
2.1 KiB
Markdown

# Wave 2 / Track 10 - Live Voice Reliability and Realtime SLA
Track 10 starts after Track 9 QA acceptance is collected and frozen.
## Status Update (2026-03-05)
- Track 10 is closed using acceptance package:
- `docs/acceptance/track10/track10-acceptance.md`
- Closure mode: `GO with exception`
- direct p95 `started->ended` measured `33s` vs target `30s`
- reliability gates for stuck lifecycle/import are green (`active_no_end=0`, `ended_no_recording_upload=0`)
- Follow-up latency tightening is moved to the next track.
## Goal
Move from "Asterisk integration works" to "voice lifecycle is predictably near-realtime".
Required outcome:
- `call.started` appears in supervisor flow quickly and consistently.
- `call.ended` is not delayed by reconciliation paths.
- recording upload latency is measured and controlled.
## Scope
In scope:
- latency/SLA instrumentation for voice lifecycle (`started -> ended -> recording`),
- stricter reconcile behavior for stale AMI events,
- automated latency report as an acceptance artifact,
- Track 10 acceptance checklist and evidence structure.
Out of scope:
- ARI call control,
- operator softphone controls,
- new business voice features.
## Baseline SLO (Track 10 target)
- p95 `call.started -> call.ended` <= `30s` for lab calls.
- p95 `call.ended -> recording uploaded` <= `45s`.
- unresolved `failed bridge events` = `0` for acceptance window.
## Deliverables
1. Latency report script:
- `scripts/track10_voice_latency_report.py`
2. Runbook:
- `docs/runbooks/track10-live-voice-reliability.md`
3. Acceptance evidence folder:
- `docs/acceptance/track10/<timestamp>/`
4. Final decision doc:
- `docs/acceptance/track10/track10-acceptance.md`
## Phase 1 (implemented slice)
Completed:
- added Track 10 latency report script with SLO thresholds and JSON artifacts,
- added `direct` vs `reconciled` split in latency metrics,
- updated bridge path so `recording.ready` can close call lifecycle immediately when `call.ended` is missing.
## Acceptance
Track 10 is accepted when:
- latency report is generated from real calls,
- all mandatory checks pass for the acceptance window,
- `GO` is signed in `track10-acceptance.md`.