SIP Parameters - NormB/sipnab GitHub Wiki

This page lists every SIP URI parameter, header-field parameter and option tag in the IANA registry. For each entry it gives:

  • the RFC that defines it,
  • whether sipnab parses it today.

This page comes from the IANA registries directly. sip-response-codes.md and sip-methods.md come from them the same way. So the tables move when IANA does, not when someone remembers.

What sipnab parses

Three parameters, deliberately stated conservatively:

  • branch (top Via)
  • tag (From/To)
  • expires (Contact parameter, falling back to the Expires header)

The expires parameter on Subscription-State is a different registration. sipnab does not read it.

  • A NOTIFY contributes its Subscription-State value token: active, pending, terminated.
  • The parameters after the ; go unread.

An earlier draft of this page computed the column by grepping the source for each parameter name. That reported 41 of 204.

  • That number was wrong and flattering.
    • m, code, alg and count all appear in unrelated code.
    • A substring match is not evidence of parsing.
  • The list below names only what traces to an actual extraction site. So it understates rather than overstates.

sipnab carries everything else in these tables verbatim.

  • sipnab preserves the full header.
  • So an unparsed parameter is visible in get_message, the TUI detail pane and any export.
  • Unparsed means "not given a named accessor or a filter field". It does not mean "discarded".

SIP/SIPS URI parameters (35)

Parameters after a ; in a SIP URI, e.g. sip:[email protected];transport=tcp.

Parameter Predefined values Defined by sipnab parses
aai No RFC 5552 —
bnc No RFC 6140 —
cause Yes RFC 4458, RFC 8119 —
ccxml No RFC 5552 —
comp Yes RFC 3486 —
content-type No RFC 4240 —
delay No RFC 4240 —
duration No RFC 4240 —
extension No RFC 4240 —
gr No RFC 5627 —
iotl Yes RFC 7549 —
locale No RFC 4240 —
lr No RFC 3261 —
m Yes RFC 6910 —
maddr No RFC 3261 —
maxage No RFC 5552 —
maxstale No RFC 5552 —
method "get" / "post" RFC 5552 —
method Yes RFC 3261 —
ob No RFC 5626 —
param[n] No RFC 4240 —
play No RFC 4240 —
pn-param No RFC 8599 —
pn-prid No RFC 8599 —
pn-provider No RFC 8599 —
pn-purr No RFC 8599 —
postbody No RFC 5552 —
repeat No RFC 4240 —
sg No RFC 6140 —
sigcomp-id No RFC 5049 —
target No RFC 4458 —
transport Yes RFC 3261, RFC 7118 —
ttl No RFC 3261 —
user Yes RFC 3261, RFC 4967 —
voicexml No RFC 4240 —

Header field parameters (201)

Parameters attached to a specific header field.

  • The same name can mean different things on different headers.
  • That is why the header is part of the registration.
Header field Parameter Predefined values Defined by sipnab parses
Accept q No RFC 3261 —
Accept-Encoding q No RFC 3261 —
Accept-Language q No RFC 3261 —
Alert-Info appearance No RFC 7463 —
AlertMsg-Error code no RFC 8876 —
Answer-Mode require No RFC 5373 —
Authentication-Info cnonce No RFC 3261 —
Authentication-Info nc No RFC 3261 —
Authentication-Info nextnonce No RFC 3261 —
Authentication-Info qop Yes RFC 3261 —
Authentication-Info rspauth No RFC 3261 —
Authorization algorithm Yes RFC 3261, RFC 3310 —
Authorization auts No RFC 3310 —
Authorization cnonce No RFC 3261 —
Authorization nc No RFC 3261 —
Authorization nonce No RFC 3261 —
Authorization opaque No RFC 3261 —
Authorization qop Yes RFC 3261 —
Authorization realm No RFC 3261 —
Authorization response No RFC 3261 —
Authorization uri No RFC 3261 —
Authorization username No RFC 3261 —
Call-Info call-reason No RFC 9796 —
Call-Info integrity No RFC 9796 —
Call-Info m Yes RFC 6910 —
Call-Info purpose Yes RFC 3261, RFC 5367, RFC 6910, RFC 6993, RFC 7082, RFC 7852, RFC 8688, RFC 9248, RFC 9796 —
Call-Info verified Yes RFC 9796 —
Contact expires No RFC 3261 yes
Contact mp No RFC 7044 —
Contact np No RFC 7044 —
Contact pub-gruu No RFC 5627 —
Contact q No RFC 3261 —
Contact rc No RFC 7044 —
Contact reg-id No RFC 5626 —
Contact temp-gruu No RFC 5627 —
Contact temp-gruu-cookie No RFC 6140 —
Content-Disposition handling Yes RFC 3204, RFC 3261, RFC 3459, RFC 5621 —
Event adaptive-min-rate No RFC 6446 —
Event body Yes RFC 5989 —
Event call-id No RFC 4235 —
Event effective-by No RFC 6080 —
Event from-tag No RFC 4235 —
Event id No RFC 6665 —
Event include-session-description No RFC 4235 —
Event max-rate No RFC 6446 —
Event min-rate No RFC 6446 —
Event model No RFC 6080 —
Event profile-type Yes RFC 6080 —
Event shared No RFC 7463 —
Event to-tag No RFC 4235 —
Event vendor No RFC 6080 —
Event version No RFC 6080 —
Feature-Caps fcap-name [7] No RFC 6809 —
From tag No RFC 3261 yes
Geolocation loc-src No RFC 8787 —
Geolocation-Error code Yes RFC 6442 —
History-Info mp No RFC 7044 —
History-Info np No RFC 7044 —
History-Info rc No RFC 7044 —
P-Access-Network-Info cgi-3gpp No RFC 7315 —
P-Access-Network-Info ci-3gpp2 No RFC 7315 —
P-Access-Network-Info ci-3gpp2-femto No RFC 7315 —
P-Access-Network-Info dsl-location No RFC 7315 —
P-Access-Network-Info dvb-rcs2-node-id No RFC 7315 —
P-Access-Network-Info eth-location No RFC 7315 —
P-Access-Network-Info fiber-location No RFC 7315 —
P-Access-Network-Info gstn-location No RFC 7315 —
P-Access-Network-Info i-wlan-node-id No RFC 7315 —
P-Access-Network-Info local-time-zone No RFC 7315 —
P-Access-Network-Info operator-specific-GI No RFC 7315 —
P-Access-Network-Info utran-cell-id-3gpp No RFC 7315 —
P-Access-Network-Info utran-sai-3gpp No RFC 7315 —
P-Charging-Function-Addresses ccf No RFC 7315 —
P-Charging-Function-Addresses ccf-2 No RFC 7315 —
P-Charging-Function-Addresses ecf No RFC 7315 —
P-Charging-Function-Addresses ecf-2 No RFC 7315 —
P-Charging-Vector icid-generated-at No RFC 7315 —
P-Charging-Vector icid-value No RFC 7315 —
P-Charging-Vector orig-ioi No RFC 7315 —
P-Charging-Vector related-icid No RFC 7315 —
P-Charging-Vector related-icid-generated-at No RFC 7315 —
P-Charging-Vector term-ioi No RFC 7315 —
P-Charging-Vector transit-ioi No RFC 7315 —
P-DCS-Billing-Info called No RFC 5503 —
P-DCS-Billing-Info calling No RFC 5503 —
P-DCS-Billing-Info charge No RFC 5503 —
P-DCS-Billing-Info jip No RFC 5503 —
P-DCS-Billing-Info locroute No RFC 5503 —
P-DCS-Billing-Info rksgroup No RFC 5503 —
P-DCS-Billing-Info routing No RFC 5503 —
P-DCS-LAES bcid No RFC 5503 —
P-DCS-LAES cccid No RFC 5503 —
P-DCS-LAES content No RFC 5503 —
P-DCS-LAES key (OBSOLETED) No RFC 3603, RFC 5503 —
P-DCS-Redirect count No RFC 5503 —
P-DCS-Redirect redirector-uri No RFC 5503 —
P-DCS-Trace-Party-ID timestamp No RFC 5503 —
P-Refused-URI-List members No RFC 5318 —
P-Served-User orig-cdiv No RFC 8498 —
P-Served-User regstate Yes RFC 5502 —
P-Served-User sescase Yes RFC 5502 —
Policy-Contact non-cacheable Yes RFC 6794 —
Priv-Answer-Mode require No RFC 5373 —
Proxy-Authenticate algorithm Yes RFC 3261, RFC 3310 —
Proxy-Authenticate authz_server No RFC 8898 —
Proxy-Authenticate domain No RFC 3261 —
Proxy-Authenticate error No RFC 8898 —
Proxy-Authenticate nonce No RFC 3261 —
Proxy-Authenticate opaque No RFC 3261 —
Proxy-Authenticate qop Yes RFC 3261 —
Proxy-Authenticate realm No RFC 3261 —
Proxy-Authenticate scope No RFC 8898 —
Proxy-Authenticate stale Yes RFC 3261 —
Proxy-Authorization algorithm Yes RFC 3261, RFC 3310 —
Proxy-Authorization auts No RFC 3310 —
Proxy-Authorization cnonce No RFC 3261 —
Proxy-Authorization nc No RFC 3261 —
Proxy-Authorization nonce No RFC 3261 —
Proxy-Authorization opaque No RFC 3261 —
Proxy-Authorization qop Yes RFC 3261 —
Proxy-Authorization realm No RFC 3261 —
Proxy-Authorization response No RFC 3261 —
Proxy-Authorization uri No RFC 3261 —
Proxy-Authorization username No RFC 3261 —
Reason cause Yes RFC 3326 —
Reason location Yes RFC 8606 —
Reason ppi No RFC 9410 —
Reason text No RFC 3326 —
Retry-After duration No RFC 3261 —
Security-Client alg Yes RFC 3329 —
Security-Client d-alg Yes RFC 3329 —
Security-Client d-qop Yes RFC 3329 —
Security-Client d-ver No RFC 3329 —
Security-Client ealg Yes RFC 3329 —
Security-Client mod Yes RFC 3329 —
Security-Client port1 No RFC 3329 —
Security-Client port2 No RFC 3329 —
Security-Client prot Yes RFC 3329 —
Security-Client q No RFC 3329 —
Security-Client spi No RFC 3329 —
Security-Server alg Yes RFC 3329 —
Security-Server d-alg Yes RFC 3329 —
Security-Server d-qop Yes RFC 3329 —
Security-Server d-ver No RFC 3329 —
Security-Server ealg Yes RFC 3329 —
Security-Server mod Yes RFC 3329 —
Security-Server port1 No RFC 3329 —
Security-Server port2 No RFC 3329 —
Security-Server prot Yes RFC 3329 —
Security-Server q No RFC 3329 —
Security-Server spi No RFC 3329 —
Security-Verify alg Yes RFC 3329 —
Security-Verify d-alg Yes RFC 3329 —
Security-Verify d-qop Yes RFC 3329 —
Security-Verify d-ver No RFC 3329 —
Security-Verify ealg Yes RFC 3329 —
Security-Verify mod Yes RFC 3329 —
Security-Verify port1 No RFC 3329 —
Security-Verify port2 No RFC 3329 —
Security-Verify prot Yes RFC 3329 —
Security-Verify q No RFC 3329 —
Security-Verify spi No RFC 3329 —
Session-ID logme No (no values are allowed) RFC 8497 —
Session-ID remote No RFC 7989 —
Subscription-State adaptive-min-rate No RFC 6446 —
Subscription-State expires No RFC 6665 —
Subscription-State max-rate No RFC 6446 —
Subscription-State min-rate No RFC 6446 —
Subscription-State reason Yes RFC 6665 —
Subscription-State retry-after No RFC 6665 —
Target-Dialog local-tag No RFC 4538 —
Target-Dialog remote-tag No RFC 4538 —
To tag No RFC 3261 yes
Trigger-Consent target-uri No RFC 5360 —
User-to-User content No RFC 7433 —
User-to-User encoding Yes RFC 7433 —
User-to-User purpose No RFC 7433 —
Via alias No RFC 5923 —
Via branch No RFC 3261 yes
Via comp Yes RFC 3486 —
Via keep No RFC 6223 —
Via maddr No RFC 3261 —
Via oc Yes RFC 7339 —
Via oc-algo Yes RFC 7339, RFC 7415 —
Via oc-seq Yes RFC 7339 —
Via oc-validity Yes RFC 7339 —
Via received No RFC 3261, RFC 7118 —
Via received-realm No RFC 8055 —
Via rport No RFC 3581 —
Via sigcomp-id No RFC 5049 —
Via ttl No RFC 3261 —
WWW-Authenticate algorithm Yes RFC 3261, RFC 3310 —
WWW-Authenticate authz_server No RFC 8898 —
WWW-Authenticate domain Yes RFC 3261 —
WWW-Authenticate error No RFC 8898 —
WWW-Authenticate nonce No RFC 3261 —
WWW-Authenticate opaque No RFC 3261 —
WWW-Authenticate qop Yes RFC 3261 —
WWW-Authenticate realm No RFC 3261 —
WWW-Authenticate scope No RFC 8898 —
WWW-Authenticate stale Yes RFC 3261 —

Option tags (36)

Values for Require, Supported, Proxy-Require and Unsupported.

  • They negotiate extensions.
  • So a 420 Bad Extension is usually an option tag that one end required and the other did not support.
  • Compare the two lists.
Option tag Defined by
100rel RFC 3262
199 RFC 6228
answermode RFC 5373
early-session RFC 3959
eventlist RFC 4662
explicitsub RFC 7614
from-change RFC 4916
geolocation-http RFC 6442
geolocation-sip RFC 6442
gin RFC 6140
gruu RFC 5627
histinfo RFC 7044
ice RFC 5768
join RFC 3911
multiple-refer RFC 5368
norefersub RFC 4488
nosub RFC 7614
outbound RFC 5626
path RFC 3327
policy RFC 6794
precondition RFC 3312
pref RFC 3840
privacy RFC 3323
recipient-list-invite RFC 5366
recipient-list-message RFC 5365
recipient-list-subscribe RFC 5367
record-aware RFC 7866
replaces RFC 3891
resource-priority RFC 4412
sdp-anat RFC 4092
sec-agree RFC 3329
siprec RFC 7866
tdialog RFC 4538
timer RFC 4028
trickle-ice RFC 8840
uui RFC 7433