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

2.1 KiB

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.