Files
call-center/docs/runbooks/track11-live-operator-call-control.md
T

77 lines
2.1 KiB
Markdown

# Runbook - Track 11 Live Operator Call Control
Use this runbook to verify the accepted call-control path introduced in Track 11.
For the current operator UX and active/recent call behavior, use `docs/runbooks/track12-operator-voice-ux.md`.
## Preconditions
- Track 9 bridge works: `/proxy/asterisk-bridge/asterisk/status` returns `ami_connected=true`
- operator SIP extensions exist in Asterisk: `2001`, `2002`
- bridge env includes:
- `ASTERISK_CALLCONTROL_ENABLED=1`
- `ASTERISK_OPERATOR_EXTENSION_MAP_JSON`
- `ASTERISK_TRANSFER_TARGET_MAP_JSON`
## 1) Start the QA stack
```powershell
powershell -ExecutionPolicy Bypass -File scripts\start_track9_qa.ps1
```
Verify:
```powershell
curl http://127.0.0.1:8080/proxy/asterisk-bridge/asterisk/status
```
## 2) Real call scenario
1. Register caller softphone `1001`.
2. Register operator softphone `2001`.
3. Make call `1001 -> 7000`.
4. Open `http://127.0.0.1:8080/operator` as `operator`.
5. In `Живые звонки`:
- select the active call
- click `Принять в работу`
6. Speak in `MicroSIP/Zoiper`.
7. Finish with one of:
- `Завершить`
- `Передать`
## 3) Verify persisted events
Expected event types for the same call:
- `call.started`
- `call.connected`
- `call.ended`
- `recording.ready`
- optional `call.transferred`
## 4) Verify recording playback
1. Open `http://127.0.0.1:8080/supervisor`.
2. In `Записи`, load the latest recording for the call.
3. Check inline playback: `audio/*`, HTTP `200`.
## 5) Inspect action log
```powershell
curl -H "X-User: operator_a" -H "X-Role: operator" ^
http://127.0.0.1:8080/proxy/asterisk-bridge/asterisk/live-calls/<call_id>/actions
```
Each action should have:
- `action_type` in `claim|hangup|blind-transfer`
- `result_status=ok`
- `ami_action_id` for a successful AMI call
## 6) Failure handling
- `403 Operator can control only own claimed call`
- use the correct operator account or claim the call first
- `409 Unable to resolve active channel for call`
- check AMI permissions and channel resolution
- `Unknown transfer queue_code`
- fix `ASTERISK_TRANSFER_TARGET_MAP_JSON`