FreeCallMe
Guide6 min read

WebRTC explained: the tech that lets you call from a browser

You click a call link and start talking. No download, no account, no plugin. Something has to make that work, and that something is WebRTC. You've probably used it dozens of times without ever hearing the name.

JP
John PatinoยทFounder, FreeCallMe
On this page

The short answer

WebRTC is why you don't need to install anything to make a browser call. It's built into your browser, finds a connection path automatically, encrypts everything by default, and uses a high-quality audio codec made for real-time communication. It's been quietly powering internet calling for over a decade. Google Meet runs on it, Discord uses it for voice, and it's what powers every browser call on FreeCallMe.

What WebRTC is

WebRTC stands for Web Real-Time Communication. It's an open-source project, originally developed by Google and standardized by the W3C and IETF, that gives browsers built-in capabilities for real-time audio, video, and data exchange.

The key word is built-in. WebRTC is part of Chrome, Firefox, Safari, and Edge, and it has been since the early 2010s, shipping quietly with every browser update. Because of that, any website can reach your microphone and camera, open encrypted connections to other browsers, and stream audio and video in real time, all without asking you to install a single thing.

That's a bigger deal than it sounds. Before WebRTC, browser-based communication leaned on plugins like Flash or Java. Every plugin was a security risk, a compatibility headache, and one more install step that a share of users would simply abandon. WebRTC swept all of that away.

The three core problems WebRTC solves

Making a real-time call between two browsers is harder than it looks. Three specific problems have to be solved.

  1. Getting the media

    Your browser needs to reach your microphone, and your camera too on a video call. WebRTC's getUserMedia API handles that. It asks for permission, captures the stream, and hands it to the calling app. You see this as the little microphone icon that pops up in your browser's address bar.

  2. Finding each other

    This is the surprisingly hard part. Two browsers on the internet are almost never directly reachable. Both usually sit behind NAT (Network Address Translation), where your home router hands you a local IP address that the outside world can't see. WebRTC works around this with ICE, described just below.

  3. Negotiating the call

    Once a path exists, the two browsers have to agree on codecs (how audio and video get encoded), network parameters, and security keys. That happens through SDP (Session Description Protocol), a structured way of describing what each side can do and what it wants. This back-and-forth is the signaling phase, and it usually runs through a server. FreeCallMe uses Supabase Realtime for it. After signaling finishes, the media flows directly between the two browsers, peer-to-peer.

How browsers find each other: ICE

To get past NAT, WebRTC uses a process called ICE (Interactive Connectivity Establishment). It tries several approaches in order until one works.

  • Direct connection

    Can the two browsers just talk to each other directly? Sometimes yes, if they're on the same network or the router plays nicely.

  • STUN (Session Traversal Utilities for NAT)

    A STUN server tells each browser its own public IP address and port, so the two can attempt a direct connection even through NAT.

  • TURN (Traversal Using Relays around NAT)

    If a direct connection won't form, a TURN server relays the traffic between the two browsers. It always works, at the cost of a little added latency. FreeCallMe runs Cloudflare TURN servers for reliable connectivity across every network setup.

See WebRTC in action

Generate a call link and start talking. The connection is peer-to-peer and encrypted by default.

A free private room for two. Open the link, hit join. No waiting room, no sign in.

Why peer-to-peer matters for privacy

In a peer-to-peer WebRTC call, your audio and video travel directly between your browser and the other person's. Once the connection is up, the call doesn't pass through FreeCallMe's servers.

WebRTC also enforces DTLS-SRTP encryption on every media stream, a combination of Datagram Transport Layer Security and Secure Real-time Transport Protocol. This isn't optional. There's no toggle to turn it off. Every WebRTC call is encrypted in transit.

In plain terms: your calls are encrypted, and they don't run through a central server where they could be logged or recorded. That's a real privacy property, and one that apps relying on their own servers don't share.

WebRTC and call quality

WebRTC uses adaptive codecs. For audio, the standard is Opus, and it's excellent. Opus was designed specifically for real-time communication and adjusts its bitrate on the fly based on your network. On a good connection it sounds noticeably better than a standard phone call. On a shaky one it scales down gracefully and stays intelligible.

Video usually runs on VP8, VP9, or H.264, depending on what each browser prefers. FreeCallMe's video calls use whichever your browser handles most efficiently.

The upshot is simple: WebRTC calls tend to look and sound good because the codec was built for exactly this, not borrowed from somewhere else.

What WebRTC doesn't do

WebRTC is for browser-to-browser and browser-to-app calls. It doesn't connect directly to the traditional phone network.

When you use FreeCallMe's dialer to call a real mobile or landline, that call leaves the WebRTC world. Your browser sends audio to FreeCallMe's VoIP backend, which routes it through a licensed telephony partner to the recipient's carrier. Their phone rings normally. That's VoIP termination, a separate system from WebRTC, though your end of the call still runs in the browser. If you want the bigger picture there, our explainer on VoIP covers how that handoff works.

Frequently asked questions

What does WebRTC stand for?
WebRTC stands for Web Real-Time Communication. It's an open-source project, originally built by Google and standardized by the W3C and IETF, that gives browsers built-in tools for real-time audio, video, and data exchange.
Do I need to install WebRTC?
No. WebRTC is already part of Chrome, Firefox, Safari, and Edge, and has been since the early 2010s. It ships with every browser update. That's the whole point: any site can make calls without asking you to install a plugin.
Are WebRTC calls encrypted?
Yes, always. WebRTC enforces DTLS-SRTP encryption on every media stream, and there's no setting to switch it off. Every WebRTC call is encrypted in transit by default.
Does my call really go directly between browsers?
In a peer-to-peer WebRTC call, yes. Once the connection is established, your audio and video travel straight between your browser and the other person's, without passing through FreeCallMe's servers. A TURN relay is only used as a fallback when a direct path can't be found.
Why do WebRTC calls sound good?
WebRTC uses Opus for audio, a codec designed specifically for real-time communication. It adjusts its bitrate to your network on the fly. On a solid connection it can sound noticeably better than a standard phone call, and on a weak one it scales down gracefully to stay intelligible.
Can WebRTC call a real phone number?
Not on its own. WebRTC is for browser-to-browser or browser-to-app calls. When you dial a real mobile or landline through FreeCallMe's dialer, your browser sends audio to a VoIP backend that routes it through a licensed telephony partner to the recipient's carrier. Your end still runs in the browser, but that leg of the call is VoIP termination, a separate system.
What other apps use WebRTC?
Plenty. Google Meet runs on it, Discord uses it for voice channels, and Clubhouse was built on it. If you've made a browser call in the last decade, you've almost certainly used WebRTC without knowing the name.

Try it now

Generate a call link and start talking. WebRTC handles the rest.

A free private room for two. Open the link, hit join. No waiting room, no sign in.

JP

John Patino

Founder of FreeCallMe. Building the simplest way to call someone online.

Updated

Keep reading