# Track 14 Browser Softphone Runbook ## Preconditions - `ASTERISK_WEBRTC_ENABLED=1` - `ASTERISK_WEBRTC_WS_URL` points to the Asterisk WSS endpoint - `ASTERISK_BROWSER_SIP_MAP_JSON` contains a mapping for the operator app user - Asterisk `http.conf`, `rtp.conf`, and `pjsip.conf` from `deployment/asterisk/` are applied on the lab VM - The operator workstation trusts the QA certificate used by Asterisk WSS - Chrome or Edge is used for `/operator` ## Browser config contract Bridge route: - `/proxy/asterisk-bridge/asterisk/browser-softphone/config` Expected config fields: - `enabled` - `ws_url` - `sip_uri` - `authorization_username` - `password` - `display_name` - `ice_servers` - `operator_extension` If the logged-in app user has no browser SIP mapping, the route returns `403`. ## QA startup flow 1. Open `/operator` in Chrome or Edge. 2. Log in with a user that has: - operator role access - a browser SIP mapping in `ASTERISK_BROWSER_SIP_MAP_JSON` 3. Click `Подключить browser softphone`. 4. Allow microphone access. 5. Confirm the `Browser Softphone` block reaches `Зарегистрирован`. ## Inbound QA call flow 1. Place a lab call from `1001` to `7000`. 2. Wait for the incoming browser banner. 3. Click `Answer`. 4. The browser tries to auto-claim the live call. 5. If auto-claim does not happen because matching is ambiguous, click `Принять в работу` manually. 6. Click `Hang up` in the browser block or `Завершить` in the live-call block. 7. Confirm the call moves to `Только что завершённые`. 8. Confirm the recording is available in `/supervisor`. ## Coexistence notes - `MicroSIP/Zoiper` remains supported in QA. - Browser softphone does not replace the accepted Track 11/12 control-path. - Browser `Hang up` still uses the accepted bridge hangup route when a live call match exists. ## Common failures ### Browser softphone config missing - Check `ASTERISK_BROWSER_SIP_MAP_JSON` - Check that the app user name matches the mapping key exactly ### WSS registration fails - Check Asterisk `http.conf` - Check that the workstation trusts the QA certificate - Check `ASTERISK_WEBRTC_WS_URL` ### Browser answer works but auto-claim does not - The current rule requires exactly one active ringing call for the operator extension - If more than one candidate exists, use manual `Принять в работу`