Calls
A call carries live audio and video between people. WebRTC was built for this case first. The browser captures the camera and microphone, encodes the media, and sends it over an encrypted connection that adapts as the network changes.
What it enables
Real-time conversation in the browser with no plugin and no install. One-to-one calls connect two people directly. Group calls connect more, either by meshing every peer to every other peer or by routing through a media server that forwards streams.
The browser handles the parts that are easy to get wrong: echo cancellation, noise suppression, gain control, and the constant adjustment of quality to fit the available bandwidth.
How it works (high level)
A call starts by asking for hardware. getUserMedia prompts the user for camera and microphone access and returns a MediaStream made of tracks, one per source. The application adds those tracks to the peer connection.
Each track is negotiated in the SDP exchange. The two peers agree on codecs, such as Opus for audio and VP8, VP9, or H.264 for video, and on resolution and bitrate limits. Once the connection opens, media flows over SRTP, the encrypted form of RTP.
Quality is not fixed. The connection measures loss and round-trip time, then raises or lowers bitrate and resolution to match. A call that starts at high definition will drop to a lower resolution rather than freeze when bandwidth falls.
Group calls scale differently. A mesh keeps everything peer-to-peer but multiplies the upload cost per participant. An SFU (selective forwarding unit) takes each peer's stream once and forwards it to the others, trading the server cost for room to grow.
Where it's used
Video conferencing, voice chat, telehealth visits, customer support widgets, and live tutoring all run on this model. Any feature where two or more people see and hear each other in real time is a call.