# Runbook - Track 12 Operator Voice UX Use this runbook to validate the frozen operator voice baseline after Track 12. ## Preconditions - Platform is running locally or in QA - `ASTERISK_CALLCONTROL_ENABLED=1` - operator softphone is registered: `2001` or `2002` - caller softphone `1001` can call `7000` ## Operator model - The phone answer happens in `MicroSIP/Zoiper` - Browser action `Принять в работу` does not answer media - Browser actions manage ownership and call-control in the platform - `Активные звонки` shows only live bridge-backed calls - `Только что завершённые` shows short-lived recent terminal calls ## Happy path 1. Open `/operator` and log in as `operator / op12345`. 2. Place a call `1001 -> 7000`. 3. Answer in `MicroSIP/Zoiper`. 4. Confirm the card appears in `Активные звонки`. 5. Click `Принять в работу`. 6. Confirm the card stays in `Активные звонки`. 7. Click `Завершить`. 8. Confirm the card moves to `Только что завершённые`. 9. Open `/supervisor` and verify the imported recording. ## Transfer path 1. Repeat the call flow. 2. Click `Принять в работу`. 3. Set: - `target type = extension` - `target value = 2002` 4. Click `Передать`. 5. Confirm the card moves to `Только что завершённые`. 6. Confirm the recent card shows transfer as the terminal action. ## Passive path 1. Place a call and answer it in SIP. 2. Do not click any browser action for at least 30-40 seconds. 3. Confirm the call stays in `Активные звонки` until the real hangup. ## Failure cues - If `Живые звонки` shows `interaction:int_*`, the browser is using stale assets - If a call disappears before the real hangup, inspect bridge reconciliation behavior - If `Передать` succeeds in SIP but not in UI, inspect `/asterisk/live-calls/{call_id}/actions`