Post
SIP headers explained: the fields that control a call
SIP headers carry transaction identity, dialog state, routing information, contact addresses, and authentication data. They are often more useful than the status code alone when diagnosing a call.
| Header | Practical role |
|---|---|
| Via | Records the transaction path and response route |
| From | Identifies the logical originator and carries a tag |
| To | Identifies the logical destination and gains a tag in the response |
| Contact | Supplies a direct address for future requests |
| Call-ID | Identifies a dialog or related transaction set |
| CSeq | Orders requests within a dialog |
| Route / Record-Route | Controls proxy traversal for subsequent requests |
| Max-Forwards | Limits proxy hops and helps prevent routing loops |
| Authorization | Carries the digest response after a challenge |
| Supported / Require | Advertises or demands extensions |
Common mistakes
- Treating the
Fromnumber as proof of caller identity. - Rewriting
Contactincorrectly across NAT. - Losing route-set headers after a transfer or re-INVITE.
- Comparing messages without matching Call-ID, tags, and CSeq.
Reference: RFC 3261. Related: SIP call flow.