9 digits, one tab, no install.
From the customer pressing Start to your technician seeing pixels: about three seconds, four control-plane hops, one media path.
Customer opens the iOS app and presses Start.
The end user has no account. The app is free. They tap once, get a 9-digit code keyed to your workspace, and read it to the technician, or paste it into the email/chat thread already open.
Technician pastes the code. The server claims a slot.
The technician is already signed in to your workspace: auth and any 2FA happened at the door, not at the code entry. Pasting the code POSTs to the API with the existing session cookie, the server checks workspace membership, and hands back an HMAC-signed signalling token for that one session.
ICE picks the shortest path.
Both sides exchange candidates over the WebSocket signalling channel. We always try peer-to-peer first. If the customer's network blocks it, we fall back to a TURN relay in Ashburn without dropping the session.
Pixels, audit trail, and an honest read on the path.
The technician sees the iPhone live. Every join, leave, and path change is written to the workspace audit log. View-only: Apple's sandbox prohibits remote touch.
Three seconds, roughly.
Pair-to-first-frame on a healthy LAN sits in the low single seconds. WAN P2P adds the ICE round-trip and a renegotiation if a TURN candidate wins.
What the iPhone actually publishes.
ReplayKit broadcast extension at 30 fps, single hardware H.264 encoder, published straight from the extension. Frames are downscaled on-device before they touch the wire.
A silent audio session keeps the broadcast extension alive in the background. It carries no user audio off the device.
iOS sandbox does not allow remote control. AnchorGrid is view-only by design; annotations and pointers ride on top of the technician's browser.