The dock opens a panel with a 12-key dialpad (typing, paste normalization, Enter) and microphone/speaker selection. Call cards have mute, hold, keypad (DTMF) and transfer: "Transfer now" (blind) or "Talk first" (attended, with Complete/Cancel). An incoming call opens a dialog when idle, or a card during a call (call waiting holds the first call). A synthesized WebAudio ringtone and desktop notifications, auto-answer for Call-Info answer-after=0, and a poor-connection warning from getStats. One tab registers: a Web Lock plus a BroadcastChannel "Use here". Found by e2e: Chrome can report canInsertDTMF=false, so DTMF falls back to SIP INFO; after a REFER's 2xx NOTIFY the browser sends BYE itself (RFC 5589), otherwise SIP.js keeps the call up. apps/web/TESTING.md is the 12-step manual run for Chrome and Firefox (still open, roadmap note); e2e m5-t2 automates most of it in headless Edge. Task: M5-T2
5.7 KiB
5.7 KiB
Browser softphone — manual test (M5-T2)
Run all 12 steps in Chrome and again in Firefox, on the real server behind the reverse
proxy (https://<your host>/me). You need: a user with an extension that has the browser
softphone on (say 101), a second phone (desk phone or phone app, say 102), and a third extension
to transfer to (say 103, any phone). Headphones help with echo.
| # | Do this | Pass when |
|---|---|---|
| 1 | Sign in as the user, click Enable softphone, allow the microphone. | Status turns Ready; Admin → Dashboard shows 101 online. |
| 2 | Reload the page. | It comes back Ready without asking again. |
| 3 | Open /me in a second tab. |
The second tab says Active in another tab. Click Use here: it becomes Ready and the first tab says Active in another tab. Close the second tab and click Use here in the first. |
| 4 | Open Keypad, type 102 (also try typing on the keyboard and pressing Enter), call. |
102 rings; when answered both sides hear each other; the card shows a running timer. |
| 5 | Press Mute, talk, then Unmute. | 102 hears nothing while muted, then hears you again. |
| 6 | Press Hold, then Resume. | 102 hears hold music, then you again; the card says On hold meanwhile. |
| 7 | During the call open the call's Keypad and press 1 2 3. If 102 is a voicemail menu or an IVR, it reacts; otherwise call *97 instead and enter your PIN. |
The tones are recognized. |
| 8 | Hang up. From 102 call 101. | The Incoming call dialog shows 102's name, the ringtone plays; Answer connects with two-way audio. Hang up from 102: the card goes away. |
| 9 | Switch to another tab or app, then have 102 call 101 again (first allow notifications with Notify me of calls). | A desktop notification appears; clicking it brings the tab back. Decline sends 102 to busy/voicemail. |
| 10 | While on a call with 102, have 103 call 101. | A second, smaller Incoming call card appears (no dialog). Answer puts 102 on hold (hears music) and connects 103. Hang up both. |
| 11 | Call 102, Transfer → type 103 → Transfer now. |
102 is connected to 103; the browser call ends. |
| 12 | Call 102, Transfer → 103 → Talk first; talk to 103; Complete transfer. Repeat with Cancel instead. |
Complete: 102 and 103 are connected, the browser is out. Cancel: 103's call ends and you're back with 102. Also check Microphone/Speaker selects list your devices and a change takes effect on the next call. |
Record the result (browser, version, pass/fail per step) in the PR or issue for M5-T2.