# Track 9 Acceptance (Latest QA Run) ## Environment - Date: `2026-03-05` - Host: local QA lab (`127.0.0.1`) - Gateway URL: `http://127.0.0.1:8080` - Asterisk VM host: `92.38.48.166` - Database URL (masked): `sqlite:///.data_local/mvp_cc.db` - Evidence package: [20260305_160002](/e:/Zhan/docs/acceptance/track9/20260305_160002) ## Executed scenario 1. Softphone `1001` called `7000`. 2. Bridge reported AMI connected. 3. `call.started` received from Asterisk source. 4. `call.ended` received. 5. `recording.ready` processed and recording uploaded. 6. Recording playback validated in supervisor shell. ## Validation commands ```powershell python scripts\track9_preflight.py --base-url --check-sftp python scripts\asterisk_lab_smoke.py --base-url --database-url --require-recording python scripts\track9_check.py --base-url --database-url --require-recording python scripts\track9_collect_evidence.py --base-url --database-url --run-checks --require-recording ``` ## Result summary - AMI connected: `yes` - call.started present: `yes` - call.ended present: `yes` - call links present: `yes` - recording imported: `yes` - failed bridge events: `0` - smoke: `PASS` - track9_check: `PASS` - preflight: `PASS` ## Risks / open items - Asterisk dialplan still emits some duplicate/late lifecycle signals in lab runs; bridge reconciliation masks this and keeps platform data consistent. - For production cutover, keep strict auth and rollback window from Track 9.2 sheet. ## Decision - [x] GO - [ ] NO-GO