feat(webrtc): end-to-end encrypted voice & video calls with adaptive codecs
Add 1:1 voice and video calling over the existing SAS-verified peer connection. Audio and video tracks ride the same RTCPeerConnection as the chat, bundled onto one DTLS-SRTP transport, so media inherits the session's end-to-end encryption. SDP offer/answer is renegotiated in-band over the verified data channel — no signalling server, so the media's DTLS fingerprints are authenticated end-to-end. Calls are gated on a connected, SAS-verified session. Codecs & adaptation: - Opus tuned for lossy links (in-band FEC, DTX, RED redundancy); audio is bandwidth-prioritised and never throttled. - VP9/AV1 single-encoding SVC with H.264/VP8 fallback; video degrades by spatial/temporal layer. - Runtime NetworkAdaptationController trims video bitrate on loss/RTT and recovers as the link clears — no renegotiation. Live connection-quality indicator (Excellent/Good/Fair/Weak) in the call UI. In-call controls: mute, camera on/off (voice→video upgrade in-band), camera flip, minimize-to-widget, hang up, and accept/decline for incoming calls. Production logging disabled (DEBUG_MODE=false); temporary call diagnostic logger removed. Codec rationale in docs/webrtc-config.md.
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"version": "1784757947117",
|
||||
"buildVersion": "1784757947117",
|
||||
"appVersion": "5.4.10",
|
||||
"buildTime": "2026-07-22T22:05:47.156Z",
|
||||
"buildId": "1784757947117-c98a01b",
|
||||
"gitHash": "c98a01b",
|
||||
"version": "1784825757783",
|
||||
"buildVersion": "1784825757783",
|
||||
"appVersion": "5.5.0",
|
||||
"buildTime": "2026-07-23T16:55:57.822Z",
|
||||
"buildId": "1784825757783-e544593",
|
||||
"gitHash": "e544593",
|
||||
"generated": true,
|
||||
"generatedAt": "2026-07-22T22:05:47.157Z"
|
||||
"generatedAt": "2026-07-23T16:55:57.823Z"
|
||||
}
|
||||
Reference in New Issue
Block a user