Re-INVITE and UPDATE both modify an active SIP dialog — for hold/unhold, codec changes, media bypass, or session refresh. They are not interchangeable. UPDATE was added in RFC 3311 to fill specific gaps in re-INVITE, and choosing the wrong one causes interoperability failures.
Both re-INVITE and UPDATE modify an established SIP session. They differ in three key ways:
| Aspect | Re-INVITE | UPDATE |
|---|---|---|
| RFC defined in | RFC 3261 | RFC 3311 |
| Allowed in early dialog | No | Yes |
| Allowed in confirmed dialog | Yes | Yes |
| Requires ACK | Yes | No |
| Universal endpoint support | Yes | No (must be in Allow header) |
| Risk of glare | Yes (491) | Yes (491) |
The most important practical difference is that UPDATE works in early dialogs (before answer) while re-INVITE does not. This matters for negotiating session parameters during ringing — for example, codec changes that need to take effect before the user picks up.
Re-INVITE is a regular INVITE sent within an established dialog. It carries the same Call-ID and From-tag as the original, plus the To-tag established at confirmation. The CSeq increments.
Re-INVITE follows the full INVITE transaction lifecycle:
The most common uses of re-INVITE:
If the recipient rejects re-INVITE, the dialog continues with the previous parameters. Failure of a re-INVITE does not terminate the call.
UPDATE is similar to re-INVITE but designed specifically for cases where re-INVITE is not appropriate. RFC 3311 introduced it to solve two problems with re-INVITE:
Before answer, the original INVITE transaction is still pending. Sending another INVITE for the same dialog would be ambiguous — is it a re-INVITE or a duplicate? RFC 3261 forbids re-INVITE in early dialogs. UPDATE works in early dialogs because it is a different transaction that does not conflict.
If a re-INVITE could be sent in early dialogs, the response would have to be reliable (PRACK) to know it was received. UPDATE sidesteps this by being its own transaction with its own response.
UPDATE is shorter and simpler than re-INVITE. The lack of ACK and provisional responses means it is faster, with less risk of mid-update interruption.
The decision tree:
RFC 4028 (session timers) recommends UPDATE if both sides support it for refresh, falling back to re-INVITE if not. This is one of the cleanest examples of UPDATE's intended use.
UPDATE is not as universally supported as re-INVITE. The reasons are historical: re-INVITE was in RFC 3261 from the start, while UPDATE was added later in RFC 3311. Implementations from before UPDATE was widely adopted may not support it.
Endpoints advertise UPDATE support via the Allow header. Sending UPDATE to an endpoint that does not list it in Allow risks 405 Method Not Allowed. The fix is to fall back to re-INVITE.
Common interop issues:
What to look for in a trace involving session changes:
Re-INVITE is a full INVITE transaction sent within an established dialog. It works in confirmed dialogs only and requires ACK. UPDATE was defined in RFC 3311 to allow session parameter changes in both early and confirmed dialogs without requiring ACK. UPDATE is faster and works before call answer, but is not as universally supported as re-INVITE.
Use UPDATE when modifying session parameters before the call is answered (in an early dialog), for session timer refresh per RFC 4028, or when you want a lighter transaction without ACK overhead. Use re-INVITE when the dialog is confirmed and you need full provisional response support, when endpoint UPDATE support is uncertain, or for significant changes like media path switches that benefit from PRACK.
No. RFC 3261 forbids re-INVITE in early dialogs because the original INVITE transaction is still pending and a second INVITE for the same dialog would be ambiguous. UPDATE was specifically added in RFC 3311 to allow session parameter changes in early dialogs. If you need to renegotiate codecs or media before the call is answered, use UPDATE.
Paste your SIP trace into SIPSymposium. The analyzer tracks re-INVITE and UPDATE patterns, SDP changes, and Allow header mismatches that cause mid-dialog renegotiation failures.