Servers never mix the video. A signalling service (over WebSockets) lets participants swap connection offers; most 1:1 calls then connect peer-to-peer, with TURN relays for the ones blocked by firewalls. Group calls send each participant's stream once to a Selective Forwarding Unit, which forwards it to everyone else, and can fork it to a recording pipeline.
Functional requirements
- 1:1 and group audio/video calls in browsers and apps
- Screen sharing and in-call chat
- Join rooms by link with authentication
- Optional recording
Non-functional requirements
- Under ~150 ms one-way latency for natural conversation
- Works behind corporate firewalls and mobile NATs
- Adapts quality to each participant's bandwidth
- Media encrypted in transit
Extensions
- Live captions using speech-to-text on forked audio.
- Large-audience broadcast by converting to HLS.
- End-to-end encryption with insertable streams.