- Ya
- 26 Agosti 2026, 00:30 UTC
- Mwandishi
- kamo
- Ahadi ya
- 7ceafed
A call cannot be moved into a window after it starts — an RTCPeerConnection and its MediaStream are not transferable between browsing contexts, and there is no server-side call handle to re-attach to. So the window has to be the thing that placed the call, which makes it the LINE rather than the call: it opens with the softphone, holds the SIP registration, and every call runs in it. The in-page tool window keeps its place and becomes the remote control. Phase 1 stands alone and ships first: a beforeunload guard while in call, a tool:requestClose veto, a live call counting as session activity, a pagehide drop beacon — and stripping autoDial from the tool-window snapshot, which is why a refresh mid-call currently re-dials the customer. Phase 2's spine is exactly one registrar per browser, elected with Web Locks and coordinated over BroadcastChannel, with the line only moving between documents when no call is live. That is what makes RingCentral's newest-registration-wins rule harmless instead of silently deafening the tab to inbound calls for an hour. Records what the browser will and will not give us, per browser, and the eight things worth verifying before any code — starting with the FreePBX AOR's max_contacts, which is set nowhere in any repo.