RFC 3891: The Session Initiation Protocol (SIP) "Replaces" Header

2026-06-30

RFC: RFC 3891

Published: 2004

Authors: R. Mahy, B. Biggs, R. Dean

If you've ever transferred a call on a modern VoIP system, picked up a ringing line from a different desk phone, or moved an in-progress conversation from your desk to your mobile without dropping it, you've used RFC 3891. It's a tiny three-line addition to SIP that quietly powers some of the most useful telephony features of the last twenty years.

The problem. SIP (RFC 3261) was designed around a clean model: INVITE creates a dialog, BYE tears it down, and each dialog is identified by a Call-ID plus two tags. But real telephony needs dialog substitution — the ability for one endpoint to say "take this existing call I'm in, and hand it to that other endpoint instead, atomically." Classic three-way call transfers (REFER + new INVITE) work, but they don't cover scenarios like:

The design. RFC 3891 defines exactly one new header. An INVITE can carry a Replaces header naming an existing dialog by its three identifiers:

Replaces: [email protected];to-tag=7743;from-tag=6472

When a UA receives an INVITE with Replaces, it matches the header to a confirmed dialog it's participating in. If the match succeeds and the policy checks pass, it accepts the new INVITE as if it were a re-INVITE on that dialog, then sends BYE on the old dialog. The result: media flows shift to the new peer atomically, with no ring, no glare, no awkward gap.

Why the design choices matter. A few details look pedantic but are load-bearing:

Why it still matters. Every PBX, softswitch, and SBC speaking SIP — Asterisk, FreeSWITCH, Cisco CUCM, Avaya, Microsoft Teams' SIP gateway, Zoom Phone, all the carrier-grade kit — implements Replaces. The "blind transfer," "consultative transfer," "directed pickup," and "call park" buttons on hundreds of millions of desk phones are essentially UI veneers over a REFER carrying a Replaces. WebRTC-to-SIP gateways translate browser handoffs through the same mechanism. And as enterprises lift voice into the cloud, Replaces is the primitive that lets a call walk from your desktop softphone to your mobile mid-sentence.

It's a beautiful example of minimal extension design: one header, ten pages of spec, an enormous behavioral payoff.

Why it matters: The "Replaces" header is the one-line SIP extension that makes call transfer, pickup, park, and seamless device handoff possible on virtually every VoIP system in the world.

All newsletters