Browser Phone Simulator
Run a phone-shaped RIFF call in the browser with caller identity, routed line, Live audio, DTMF, FSM state, and provider telemetry visible together.
Open it
http://127.0.0.1:8765/voice.html?flow=property_management
Enter the caller number in From, select +1 (510) 216-0079 in To, and click start conversation. The # control opens the keypad after a caller and line are configured.
Live provider boundary. A simulated caller number can access records associated with that identity. The simulator is a loopback operator tool. Ticket creation, editing, and cancellation are blocked unless Allow create, edit, cancel is checked before the call starts.
What matches a phone call
| Layer | Simulator behavior |
|---|---|
| Identity | Caller and called numbers normalize to E.164; Replicant identify runs before provider tools are assembled. |
| Audio | The browser Live microphone, playback gate, static audio, and barge-in path remain active. |
| Keypad | Typed DTMF calls the production handle_dtmf_digit resolver; digits are not sent as speech. |
| Debugging | FSM state, transitions, prompts, transcript, tools, slots, and timeline stay visible on one page. |
| Evidence | Sessions are tagged as simulated and cannot be represented as OTA phone evidence. |
Existing-request check
- Enter the authorized caller number and select the Property Management line.
- Leave mutations disabled and start the conversation.
- Ask to see an existing maintenance request.
- Confirm identity is resolved before
replicant_list_tickets. - Confirm each ticket label is spoken and the state does not loop through unavailable and menu.
- Use the keypad for a DTMF pass, stop the call, then open Review.
Evidence limit
This is L2/L3 browser and provider-path evidence. It does not prove carrier media, PSTN audio, Telnyx DTMF delivery, or OTA routing. An external call still requires explicit human GO.