VA-10: push WebRTC ICE config to agent + browser #56
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/VA-10-webrtc-ice-push"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Server side of the WebRTC data-channel tunnel upgrade (VA-10; agent side: vervain-agent PR). The agent and the browser both need the domain's ICE (STUN/TURN) servers to negotiate the data channel; this wires one config source to both.
What changed
meshcentral-config: newDomain::ice_serversfield, read from theiceserversdomain key (raw JSON array ofRTCIceServerobjects; array-typed only).meshcentral-webagent channel: on agent authentication, push{"action":"webrtcconfig","iceServers":[...]}to the agent over its control channel (fire-and-forget; the agent caches it and falls back to host candidates when absent).meshcentral-webserverinfo: surface the same config to the browser aswebrtcconfig(wrapped as anRTCConfigurationobject), whichagent-redir-ws-0.1.1.jsfeeds tonew RTCPeerConnection(...).Follow-up (not in this PR)
Browser SPA, needs live-browser QA: flip
attemptWebRTCon and consumeserverinfo.webrtcconfigin the redirect setup so the browser actually offers the upgrade.Validation
clippy --deny warnings and the serverinfo tests pass on the touched crates.
Refs VA-10.
Server side of the WebRTC data-channel tunnel upgrade (VA-10, vervain-agent). The agent and the browser both need the domain's ICE (STUN/TURN) servers to negotiate the data channel; this wires a single config source to both. - `meshcentral-config`: new `Domain::ice_servers` field, read from the `iceservers` domain key (raw JSON array of `RTCIceServer` objects), array-typed only. - `meshcentral-web` agent channel: on agent authentication, push `{"action":"webrtcconfig","iceServers":[...]}` to the agent over its control channel (fire-and-forget; the agent caches it and falls back to host candidates when absent). - `meshcentral-web` serverinfo: surface the same config to the browser as `webrtcconfig` (wrapped as an `RTCConfiguration` object), which `agent-redir-ws-0.1.1.js` feeds to `new RTCPeerConnection(...)`. Follow-up (browser SPA, not in this PR, needs live-browser QA): flip `attemptWebRTC` on and consume `serverinfo.webrtcconfig` in the redirect setup so the browser actually offers the upgrade. Verified: clippy --deny warnings and the serverinfo tests pass on the touched crates. #VA-10 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>