back to RFC 3261  

ABNF for SIP: from RFC 3261 and other RFCs

Verification with IANA is in progress
SIP-message =
Request =
Request-Line  *( message-header )  CRLF  [ message-body ]
; Here is an example:

Response =
Status-Line  *(  message-header )  CRLF  [ message-body ]
; Here is an example:

Request-Line =
Status-Line =
Method =
INVITEm /  ACKm /  OPTIONSm /  BYEm /  CANCELm /  REGISTERm /  INFOm /  PRACKm /  SUBSCRIBEm /  NOTIFYm /  UPDATEm /  MESSAGEm /  REFERm /  PUBLISHm /  extension-method

Request-URI =
SIP-Version =
"SIP"   "/"   1*DIGIT  "."   1*DIGIT

Reason-Phrase =
*( reserved /  unreserved /  escaped /  UTF8‑NONASCII /  UTF8‑CONT /  SP /  HTAB )

message-header =
( Accept /  Accept‑Contact /  Accept‑Encoding /  Accept‑Language /  Accept‑Resource‑Priority /  Additional‑Identity /  Alert‑Info /  AlertMsg‑Error /  Allow /  Allow‑Events /  Answer‑Mode /  Attestation‑Info /  Authentication‑Info /  Authorization /  Call‑ID /  Call‑Info /  Cellular‑Network‑Info /  Contact /  Content‑Disposition /  Content‑Encoding /  Content‑ID /  Content‑Language /  Content‑Length /  Content‑Type /  CSeq /  Date /  Error‑Info /  Event /  Expires /  Feature‑Caps /  Flow‑Timer /  From /  Geolocation /  Geolocation‑Error /  Geolocation‑Routing /  History‑Info /  Identity /  Identity‑Info /  Info‑Package /  In‑Reply‑To /  Join /  Max‑Breadth /  Max‑Forwards /  MIME‑Version /  Min‑Expires /  Min‑SE /  Organization /  Origination‑Id /  P‑Access‑Network‑Info /  P‑Answer‑State /  P‑Asserted‑Identity /  P‑Asserted‑Service /  P‑Associated‑URI /  P‑Called‑Party‑ID /  P‑Charge‑Info /  P‑Charging‑Function‑Addresses /  P‑Charging‑Vector /  P‑DCS‑Billing‑Info /  P‑DCS‑LAES /  P‑DCS‑OSPS /  P‑DCS‑Redirect /  P‑DCS‑Trace‑Party‑ID /  P‑Early‑Media /  P‑Media‑Authorization /  P‑Preferred‑Identity /  P‑Preferred‑Service /  P‑Private‑Network‑Indication /  P‑Profile‑Key /  P‑Refused‑URI‑List /  P‑Served‑User /  P‑User‑Database /  P‑Visited‑Network‑ID /  Path /  Permission‑Missing /  Policy‑Contact /  Policy‑ID /  Priority /  Priority‑Share /  Priority‑Verstat /  Privacy /  Priv‑Answer‑Mode /  Proxy‑Authenticate /  Proxy‑Authorization /  Proxy‑Require /  RAck /  Reason /  Record‑Route /  Recv‑Info /  Refer‑Events‑At /  Refer‑Sub /  Refer‑To /  Referred‑By /  Reject‑Contact /  Relayed‑Charge /  Replaces /  Reply‑To /  Request‑Disposition /  Require /  Resource‑Priority /  Resource‑Share /  Response‑Source /  Restoration‑Info /  Retry‑After /  Route /  RSeq /  Security‑Client /  Security‑Server /  Security‑Verify /  Server /  Service‑Interact‑Info /  Service‑Route /  Session‑Expires /  Session‑ID /  SIP‑ETag /  SIP‑If‑Match /  Subject /  Subscription‑State /  Supported /  Suppress‑If‑Match /  Target‑Dialog /  Timestamp /  To /  Trigger‑Consent /  Unsupported /  User‑Agent /  User‑to‑User /  Via /  Warning /  WWW‑Authenticate /  extension‑header )  CRLF

message-body =
extension-header =
header-name =
header-value =
*( TEXT‑UTF8char /  UTF8‑CONT /  LWS )

extension-method =
INVITEm =
%x49.4E.56.49.54.45
; INVITE in caps  
RFC 6026Section 9

ACKm =
%x41.43.4B
; ACK in caps  

OPTIONSm =
%x4F.50.54.49.4F.4E.53
; OPTIONS in caps

BYEm =
%x42.59.45
; BYE in caps

CANCELm =
%x43.41.4E.43.45.4C
; CANCEL in caps

REGISTERm =
%x52.45.47.49.53.54.45.52
; REGISTER in caps

INFOm =
%x49.4E.46.4F
; INFO in caps
RFC 6086Section 11.1

PRACKm =
%x50.52.41.43.4B
; PRACK in caps
RFC 3262Section 6

SUBSCRIBEm =
%x53.55.42.53.43.52.49.42.45
; SUBSCRIBE in caps
RFC 6665Section 8.1.1

NOTIFYm =
%x4E.4F.54.49.46.59
; NOTIFY in caps
RFC 6665Section 8.1.2

UPDATEm =
%x55.50.44.41.54.45
; UPDATE in caps
RFC 3311Section 10

MESSAGEm =
%x4D.45.53.53.41.47.45
; MESSAGE in caps
RFC 3428Section 12

REFERm =
%x52.45.46.45.52
; REFER in caps
RFC 3515Section 7

PUBLISHm =
%x50.55.42.4C.49.53.48
; PUBLISH in caps
RFC 3903Section 13.1
Top
Accept =
"Accept"  HCOLON  [ accept‑range  *( COMMAaccept‑range ) ]

accept-range =
media-range =
( "*/*" /  ( m‑typeSLASH  "*" ) / 
m‑typeSLASHm‑subtype ) )  *( SEMIm‑parameter )
Up
Accept-Contact =
( "Accept‑Contact" /  "a" )  HCOLONac‑value  *( COMMAac‑value )

; examples:
; Accept‑Contact: *;audio;require
; Accept‑Contact: *;video;explicit
; Accept‑Contact: *;methods="BYE";class="business";q=1.0


ac-value =
"*"  *( SEMIac‑params )

ac-params =
req-param =
"require"

explicit-param =
"explicit"
Up
Accept-Encoding =
"Accept‑Encoding"  HCOLON  [ encoding  *( COMMAencoding ) ]

; example:
; Accept‑Encoding: gzip


encoding =
codings  *( SEMIaccept‑param )

codings =
content‑coding /  "*"
Up
Accept-Language =
"Accept-Language"  HCOLON  [ language  *( COMMAlanguage ) ]

; example:
; Accept-Language: da, en-gb;q=0.8, en;q=0.7


language =
language-range =
(  ( 1*8ALPHA  *( "-"  1*8ALPHA ) ) /  "*" )
Up
Accept-Resource-Priority =
"Accept‑Resource‑Priority"  HCOLON  [ r‑value  *( COMMAr‑value ) ]

; example:
; Accept‑Resource‑Priority: dsn.flash‑override,
;  dsn.flash, dsn.immediate, dsn.priority, dsn.routine

Up
Alert-Info =
"Alert-Info"  HCOLONalert‑param  *( COMMAalert‑param )

; example:
; Alert‑Info: <http://www.example.com/sounds/moo.wav>


alert-param =
appearance-param =
"appearance"  EQUAL  1*DIGIT
Up
Allow =
"Allow"  HCOLON  [ Method  *( COMMAMethod ) ]

; example:
; Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY

Up
Allow-Events =
( "Allow‑Events" /  "u" )  HCOLONevent‑type  *( COMMAevent‑type )

; example:
; Allow‑Events: spirits‑INDPs

Up
Answer-Mode =
"Answer‑Mode"  HCOLONanswer‑mode‑value  *( SEMIanswer‑mode‑param )

; example:
; Answer‑Mode: Manual


answer-mode-value =
"Manual" /  "Auto" /  token

answer‑mode‑param =
"require" /  generic‑param
Up
Attestation-Info =
"Attestation‑Info"  HCOLONattestation‑level /  generic‑param

attestation‑level =
( "A" /  "B" /  "C"
Up
Authentication-Info =
"Authentication-Info"  HCOLONainfo  *( COMMAainfo )

; example:
; Authentication-Info: nextnonce="47364c23432d2e131a5fb210812c"


ainfo =
nextnonce =
"nextnonce"  EQUALnonce‑value

response-auth =
"rspauth"  EQUALresponse‑digest

response-digest =
LDQUOT  *LHEXRDQUOT
Up
Authorization =
"Authorization"  HCOLONcredentials

; example:
; Authorization: Digest username="bob", realm="atlanta.example.com"
;  nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="",
;  uri="sips:ss2.biloxi.example.com",
;  response="dfe56131d1958046689d83306477ecc"


credentials =
( "Digest"  LWSdigest‑response ) /  other‑response

digest-response =
dig‑resp  *( COMMAdig‑resp )

dig-resp =
username /
realm /
nonce /
digest‑uri /
dresponse /
algorithm /   ; see  RFC 3310Section 3.1
cnonce /
opaque /
message‑qop /
nonce‑count /
auth‑param /   ; see  3GPP TS 24.229Section 7.2A.2
auts; see  RFC 3310Section 3.4

username =
"username"  EQUALusername‑value

username-value =
digest-uri =
digest-uri-value =
request-uri; equal to request-uri as specified by HTTP/1.1

message-qop =
"qop"  EQUALqop‑value

cnonce =
"cnonce"  EQUALcnonce‑value

cnonce-value =
nonce-count =
"nc"  EQUALnc‑value

nc-value =
8LHEX

dresponse =
"response"  EQUALrequest‑digest

request-digest =
LDQUOT  32LHEXRDQUOT

auth-param =
auth-param =   ; as redefined by 3GPP TS 24.229
"integrity-protected"  EQUAL
( "yes" /  "no" /  "tls‑pending" /  "tls‑yes" /  "ip‑assoc‑pending" /  "ip‑assoc‑yes" /  "auth‑done" )

auth-param-name =
auts =
"auts"  EQUALauts‑param

auts-param =
auts-value =
<base64 encoding of AUTS>

other-response =
auth-scheme = Up
Call-ID =
( "Call-ID" /  "i" )  HCOLONcallid

; example:
; Call-ID: 3848276298220188511@atlanta.example.com

Up
Call-Info =
"Call-Info"  HCOLONinfo  *( COMMAinfo )

; examples:
; Call-Info: <http://www.example.com/alice/photo.jpg> ;purpose=icon,
;  <http://www.example.com/alice/> ;purpose=info
; Call-Info:<sip:456@z.b.com>;purpose=call‑completion;m=NR


info =
info-param =
( "purpose"  EQUAL  (
"icon" /  "info" /  "card" /
"list‑management" /  ; see  RFC 5367Section 9
"call‑completion" /  ; see  RFC 6910Section 12.4
"impp" /  ; see  RFC 6993Section 3
"ccmp" /  ; see  RFC 7082Section 5.1
"EmergencyCallData" /  ; see  RFC 7852Section 11.2
token )
/  ( "m"  EQUAL  ( "BS" /  "NR" /  "NL" ) )     ; see  RFC 6910Section 12.5
generic‑param
Up
Cellular-Network-Info =
"Cellular‑Network‑Info"  HCOLONcellular‑net‑spec

cellular-net-spec =
access-type =
"3GPP‑GERAN" /  "3GPP‑UTRAN‑FDD" /  "3GPP‑UTRAN‑TDD" /  "3GPP‑E‑UTRAN‑FDD" /  "3GPP‑E‑UTRAN‑TDD" /  "3GPP2‑1X‑Femto" /  "3GPP2‑UMB" /  "3GPP2‑1X‑HRPD" /  "3GPP2‑1X" /  "3GPP‑E‑UTRAN‑ProSe‑UNR" /  token

cellular-access-info =
access-info =
cgi-3gpp =
"cgi-3gpp"  EQUAL  ( token /  quoted‑string )

utran-cell-id-3gpp =
"utran-cell-id-3gpp"  EQUAL  ( token /  quoted‑string )

ci-3gpp2 =
"ci-3gpp2"  EQUAL  ( token /  quoted‑string )

ci-3gpp2-femto =
"ci-3gpp2-femto"  EQUAL  ( token /  quoted‑string )

cell-info-age =
"cell-info-age"  EQUAL  1*9DIGIT

extension-access-info = Up
Contact =
( "Contact" /  "m" )  HCOLON  ( STAR /  ( contact‑param  *( COMMAcontact‑param ) ) )

contact-param =
name‑addr /  addr‑spec )  *( SEMIcontact‑params )

contact-params =
c‑p‑q /  c‑p‑expires /  ; see  RFC 3261
feature‑param /  ; see  RFC 3840Section 9
c‑p‑reg /  c‑p‑instance /  ; see  RFC 5626Section 10
temp‑gruu /  pub‑gruu /  ; see  RFC 5627Section 7
temp‑gruu‑cookie /  ; see  RFC 6140Section 9.3
mp‑param /  rc‑param /  np‑param /  ; see  RFC 7044Section 14.3
contact‑extension

c-p-q =
"q"  EQUALqvalue

c-p-expires =
"expires"  EQUALdelta‑seconds

feature-param =
enc-feature-tag =
base-tags =
"audio" /  "automata" /  "class" /  "duplex" /  "data" /  "control" /  "mobility" /  "description" /  "events" /  "priority" /  "methods" /  "schemes" /  "application" /  "video" /  "language" /  "type" /  "isfocus" /  "actor" /  "text" /  "extensions"

other-tags =
"+"  ftag‑name

ftag-name =
ALPHA  *( ALPHA /  DIGIT /  "!" /  "'" /  "." /  "-" /  "%" )

tag-value-list =
tag‑value  *( ","  tag‑value )

tag-value =
[ "!" ]  ( token‑nobang /  boolean /  numeric )

token-nobang =
1*( alphanum /  "-" /  "." /  "%" /  "*" /  "_" /  "+" /  "`" /  "'" /  "~" )

boolean =
"TRUE" /  "FALSE"

numeric =
numeric-relation =
">=" /  "<=" /  "=" /  ( number  ":" )

number =
[ "+" /  "-" ]  1*DIGIT  [ "."  0*DIGIT ]

string-value =
"<"  *( qdtext‑no‑abkt /  quoted‑pair )  ">"

qdtext-no-abkt =
LWS /  %x21 /  %x23‑3B /  %x3D /  %x3F‑5B /  %x5D‑7E /  UTF8‑NONASCII

c-p-reg =
"reg-id"  EQUAL  1*DIGIT
;  1 to (2^31 - 1)

c-p-instance =
"+sip.instance"  EQUALLDQUOT  "<"  instance-val  ">"  RDQUOT

instance-val =
*uric

temp-gruu =
"temp-gruu"  EQUALLDQUOT  *( qdtext /  quoted‑pair )  RDQUOT

pub-gruu =
"pub‑gruu"  EQUALLDQUOT  *( qdtext /  quoted‑pair )  RDQUOT

contact-extension = Up
Content-Disposition =
"Content‑Disposition"  HCOLONdisp‑type  *( SEMIdisp‑param )

; example:
; Content-Disposition: session;handling=optional


disp-type =
"render" /  "session" /  "icon" /  "alert" /  ; see  RFC 3261
"aib" /  ; see  RFC 3893Section 2
"early-session" /  ; see  RFC 3959Section 4
"by-reference" /  ; see  RFC 5621Section 9.4
disp‑extension‑token

disp-extension-token =
disp-param =
handling-param =
"handling"  EQUAL  ( "optional" /  "required" /  other‑handling )

other-handling = Up
Content-Encoding =
( "Content-Encoding" /  "e" )  HCOLONcontent‑coding  *( COMMAcontent‑coding )

; example:
; Content‑Encoding: gzip


content-coding =
token
; see  IANA
Up
Content-ID =
"Content-ID"  HCOLONmsg‑id

; example:
; Content‑ID: <cn35t8jf02@example.com>


msg-id =
"<"  id-left  "@"  id-right  ">"
Up
Content-Language =
"Content-Language"  HCOLONlanguage‑tag  *( COMMAlanguage‑tag )

; example:
; Content‑Language: fr


language-tag =
primary‑tag  *( "-"  subtag )

primary-tag =
1*8ALPHA

subtag =
1*8ALPHA
Up
Content-Length =
( "Content-Length" /  "l" )  HCOLON  1*DIGIT

; example:
; Content‑Length: 0

Up
Content-Type =
( "Content‑Type" /  "c" )  HCOLONmedia‑type

; example:
; Content‑Type: application/sdp


media-type =
m-type =
discrete-type =
"text" /  "image" /  "audio" /  "video" /  "application" /  extension‑token

composite-type =
"message" /  "multipart" /  extension‑token

extension-token =
ietf-token =
x-token =
"x-"  token

m-subtype =
iana-token =
m-parameter =
m-attribute =
m-value = Up
CSeq =
"CSeq"  HCOLON  1*DIGITLWSMethod

; example:
; CSeq: 1 INVITE

Up
Date =
"Date"  HCOLONSIP-date

; example:
; Date: Thu, 21 Feb 2002 13:02:03 GMT


SIP-date =
rfc1123-date =
wkday  ","  SPdate1SPtimeSP  "GMT"

wkday =
"Mon" /  "Tue" /  "Wed" /  "Thu" /  "Fri" /  "Sat" /  "Sun"

date1 =
2DIGITSPmonthSP  4DIGIT
;  day month year (e.g., 02 Jun 1982)

month =
"Jan" /  "Feb" /  "Mar" /  "Apr" /  "May" /  "Jun" /  "Jul" /  "Aug" /  "Oct" /  "Nov" /  "Dec"

time =
2DIGIT  ":"  2DIGIT  ":"  2DIGIT
;  e.g., 00:00:00 - 23:59:59
Up
Error-Info =
"Error-Info"  HCOLONerror‑uri  *( COMMAerror‑uri )

; example:
; Error-Info: <sips:screen-failure-term-ann@annoucement.example.com>


error-uri = Up
Event =
( "Event" /  "o" )  HCOLONevent‑type  *( SEMIevent‑param )

; example:
; Event: refer


event-type =
event‑package  *( "."  event‑template )

; referRFC 3515Section 3
; regRFC 3680Section 4
; message-summaryRFC 3842Section 3
; presenceRFC 3856Section 6
; winfo   (template)RFC 3857Section 4
; spirits-INDPsRFC 3910Section 5.3.2
; spirits-user-profRFC 3910Section 6.3
; dialogRFC 4235Section 3
; poc-settingsRFC 4354Section 5
; conferenceRFC 4575Section 3
; kpmlRFC 4730Section 4
; consent-pending-additionsRFC 5362Section 5
; xcap-diffRFC 5875Section 4
; http-monitorRFC 5989Section 4
; vq-rtcpxrRFC 6035Section 4
; certificateRFC 6072Section 6
; credentialRFC 6072Section 7
; ua-profileRFC 6080Section 6
; session-spec-policyRFC 6795Section 3
; call-completionRFC 6910Section 9
; load-controlRFC 7200Section 4


event-package =
event-template =
token-nodot =
1*( alphanum  /  "-"  /  "!"  /  "%"  /  "*"  /  "_"  /  "+"  /  "`"  /  "'"  /  "~" )

event-param =
generic‑param /  ( "id"  EQUALtoken ) /  ; see  RFC 6665Section 8.4
call‑ident /  from‑tag /  to‑tag /  with‑sessd /  ; see  RFC 4235Section 3.2
body‑event‑param /  ; see  RFC 5989Section 4.2
Profile‑type /  Vendor /  Model /  Version /  Effective‑By /  ; see  RFC 6080Sections 6.2.16.2.26.2.3
max‑rate‑param /  min‑rate‑param /  amin‑rate‑param /  ; see  RFC 6446Section 9.2
"shared"  ; see  RFC 7463Section 13.1

call-ident =
"call‑id"  EQUAL  ( token /  DQUOTEcallidDQUOTE )

with-sessd =
"include‑session‑description"

body-event-param =
"body"  EQUAL  ( "true" /  "false" )

Profile-type =
"profile-type"  EQUALprofile‑value

profile-value =
profile-types =
"device" /  "user" /  "local‑network"

Vendor =
"vendor"  EQUALquoted‑string

Model =
"model"  EQUALquoted‑string

Version =
"version"  EQUALquoted‑string

Effective-By =
"effective-by"  EQUAL  1DIGIT

max-rate-param =
"max‑rate"  EQUAL  ( 1*2DIGIT  [ "."  1*10DIGIT ] )

min-rate-param =
"min‑rate"  EQUAL  ( 1*2DIGIT  [ "."  1*10DIGIT ] )

amin-rate-param =
"adaptive-min-rate"  EQUAL  ( 1*2DIGIT  [ "."  1*10DIGIT ] )
Up
Expires =
"Expires"  HCOLONdelta‑seconds

; example:
; Expires: 7200

Up
Feature-Caps =
"Feature-Caps"  HCOLONfc‑value  *( COMMAfc‑value )

fc-value =
"*"  *( SEMIfeature‑cap )

feature-cap =
"+"  fcap‑name  [ EQUALLDQUOT  ( fcap‑value‑list  /  fcap‑string‑value )  RDQUOT ]

fcap-name =
fcap-value-list =
fcap-string-value = Up
Flow-Timer =
"Flow-Timer"  HCOLON  1*DIGIT

; example:
; Flow‑Timer: 120

Up
From =
( "From" /  "f" )  HCOLONfrom-spec

; examples:
; From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl
; From: "Anonymous" <sip:anonymous@anonymous.invalid>;tag=1928301774


from-spec =
( name‑addr /  addr‑spec )  *( SEMIfrom‑param )

from-param =
tag-param =
"tag"  EQUALtoken
Up
Geolocation-header =
"Geolocation"  HCOLONlocationValue  *( COMMAlocationValue )

; example:
; Geolocation: <cid:target123@atlanta.example.com>


locationValue =
locationURI =
SIP‑URI /  SIPS‑URI /  absoluteURI /  ; see  RFC 3261
pres‑URI /  ; see  RFC 3859Appendix A
http‑URI /  https‑URI /  ; see  RFC 7230Sections 2.7.12.7.2
cid-url; not defined here: see  RFC 2392Section 2

pres-URI =
"pres:"  [ to ]  [ headers ]

to =
mailbox

headers =
"?"  header  *( "&"  header )

header =
hname  "="  hvalue

hname =
*uric

hvalue =
*uric

geoloc-param = Up
Geolocation-Error =
"Geolocation-Error"  HCOLONlocationErrorValue

; example:
; Geolocation-Error: 100 ; code="Cannot Process Location"


locationErrorValue =
location-error-code =
1*3DIGIT

location-error-params =
location-error-code-text =
"code"  EQUALquoted‑string
; 100   "Cannot Process Location"
; 200   "Permission To Use Location Information"
; 201   "Permission To Retransmit Location Information to a Third Party"
; 202   "Permission to Route based on Location Information"
; 300   "Dereference Failure"
Up
Georouting-header =
"Geolocation-Routing"  HCOLON  ( "yes" /  "no" /  generic‑value )

; example:
; Geolocation‑Routing: no


generic-value = Up
History-Info =
"History‑Info"  HCOLONhi‑entry  *( COMMAhi‑entry )

hi-entry =
hi-targeted-to-uri =
hi-param =
hi-index =
"index"  EQUALindex‑val

index-val =
number  *( "."  number )

number =
[ %x31‑39  *DIGIT ]  DIGIT

hi-target-param =
rc-param =
"rc""  EQUALindex‑val

mp-param =
"mp""  EQUALindex‑val

np-param =
"np""  EQUALindex‑val

hi-extension = Up
Identity =
signed-identity-digest =
1*( base64‑char /  "." )

ident-info =
"info"  EQUALident-info-uri

ident-info-uri =
ident-info-params =
ident-info-alg =
"alg"  EQUALtoken

ident-type =
"ppt"  EQUALtoken

ident-info-extension =
base64-char =
ALPHA /  DIGIT /  "/" /  "+"
Up
Up
Info-Package =
"Info‑Package"  HCOLONInfo‑package‑type

; example:
; Info‑Package: foo


Info-package-type =
Info-package-name =
Info-package-param = Up
In-Reply-To =
"In-Reply-To"  HCOLONcallid  *( COMMAcallid )

; example:
; In-Reply-To: 70710@saturn.bell-tel.com, 17320@saturn.bell-tel.com

Up
Join =
"Join"  HCOLONcallid  *( SEMIjoin‑param )

; example:
; Join: 12345600@atlanta.example.com;from-tag=1234567;to-tag=23431


join-param = Up
Max-Breadth =
"Max-Breadth"  HCOLON  1*DIGIT
Up
Max-Forwards =
"Max-Forwards"  HCOLON  1*DIGIT

; example:
; Max-Forwards: 69

Up
MIME-Version =
"MIME-Version"  HCOLON  1*DIGIT  "."  1*DIGIT

; example:
; MIME-Version: 1.0

Up
Min-Expires =
"Min-Expires"  HCOLONdelta‑seconds

; example:
; Min-Expires: 60

Up
Min-SE =
"Min-SE"  HCOLONdelta‑seconds  *( SEMIgeneric‑param )

; example:
; Min-SE: 3600

Up
Organization =
"Organization"  HCOLON  [ TEXT‑UTF8‑TRIM ]

; example:
; Organization: Boxes by Bob

Up
Origination-Id =
"Origination‑Id"  HCOLONoriginator

originator =
UUID
Up
P-Access-Network-Info  =
"P-Access-Network-Info"  HCOLONaccess-net-spec   *( COMMAaccess-net-spec )

access-net-spec =
access-type /  access-class )   *( SEMIaccess-info )

access-type =
"IEEE‑802.11" /  "IEEE‑802.11a" /  "IEEE‑802.11b" /  "IEEE‑802.11g" /  "IEEE‑802.11n" /  "IEEE‑802.3" /  "IEEE‑802.3a" /  "IEEE‑802.3ab" /  "IEEE‑802.3ae" /  "IEEE‑802.3ak" /  "IEEE‑802.3ah" /  "IEEE‑802.3aq" /  "IEEE‑802.3an" /  "IEEE‑802.3e" /  "IEEE‑802.3i" /  "IEEE‑802.3j" /  "IEEE‑802.3u" /  "IEEE‑802.3y" /  "IEEE‑802.3z" /  "3GPP‑GERAN" /  "3GPP‑UTRAN‑FDD" /  "3GPP‑UTRAN‑TDD" /  "3GPP‑E‑UTRAN‑FDD" /  "3GPP‑E‑UTRAN‑TDD" /  "3GPP2‑1X‑Femto" /  "3GPP2‑UMB" /  "3GPP2‑1X‑HRPD" /  "3GPP2‑1X" /  "ADSL" /  "ADSL2" /  "ADSL2+" /  "RADSL" /  "SDSL" /  "HDSL" /  "HDSL2" /  "G.SHDSL" /  "VDSL" /  "IDSL" /  "DOCSIS" /  "GSTN" /  "GPON" /  "XGPON1" /  "DVB‑RCS2" /  token

access-class =
"3GPP‑GERAN" /  "3GPP‑UTRAN" /  "3GPP‑E‑UTRAN" /  "3GPP‑WLAN" /  "3GPP‑GAN" /  "3GPP‑HSPA" /  "3GPP2" /  token

access-info =
cgi‑3gpp /  utran‑cell‑id‑3gpp /  dsl‑location /  i‑wlan‑node‑id /  ci‑3gpp2 /  eth‑location /  ci‑3gpp2‑femto /  fiber‑location /  np /  gstn‑location /  local‑time‑zone /  dvb‑rcs2‑node‑id / 
; updated by RFC 7913:
operator‑specific‑GI /  utran‑sai‑3gpp /  extension‑access‑info

cgi-3gpp =
"cgi‑3gpp"  EQUAL  ( token /  quoted‑string )

utran-cell-id-3gpp =
"utran‑cell‑id‑3gpp"  EQUAL  ( token /  quoted‑string )

dsl-location =
"dsl‑location"  EQUAL  ( token /  quoted‑string )

i-wlan-node-id =
"i‑wlan‑node‑id"  EQUAL  ( token /  quoted‑string )

ci-3gpp2 =
"ci-3gpp2"  EQUAL  ( token /  quoted‑string )

eth-location =
"eth‑location"  EQUAL  ( token /  quoted‑string )

ci-3gpp2-femto =
"ci‑3gpp2‑femto"  EQUAL  ( token /  quoted‑string )

fiber-location =
"fiber‑location"  EQUAL  ( token /  quoted‑string )

np =
"network‑provided"

gstn-location =
"gstn‑location"  EQUAL  ( token /  quoted‑string )

local-time-zone =
"local‑time‑zone"  EQUAL  quoted‑string

dvb-rcs2-node-id =
"dvb‑rcs2‑node‑id"  EQUAL  quoted‑string

extension-access-info =
; updated by RFC 7913:
generic‑param
Up
P-Answer-State =
"P‑Answer‑State"  HCOLONanswer‑type  *( SEMIgeneric‑param )

answer-type =
"Confirmed" /  "Unconfirmed" /  token
Up
PAssertedID =
"P‑Asserted‑Identity"  HCOLONPAssertedID‑value  *( COMMAPAssertedID‑value )

; examples:
; P‑Asserted‑Identity: "Cullen Jennings" <sip:fluffy@cisco.com>
; P‑Asserted‑Identity: tel:+14085264000


PAssertedID-value = Up
PAssertedService =
"P‑Asserted‑Service"  HCOLONPAssertedService‑value

PAssertedService-value =
Service-ID =
"urn:urn‑7:"  urn‑service‑id

urn-service-id =
top‑level  *( "."  sub‑service‑id )

top-level =
let‑dig  [ *26let‑dig ]

sub-service-id =
let‑dig  [ *let‑dig ]

let-dig =
ALPHA /  DIGIT /  "-"
Up
P-Associated-URI =
"P‑Associated‑URI"  HCOLON  [ p‑aso‑uri‑spec ]  *( COMMAp‑aso‑uri‑spec )

p-aso-uri-spec =
name‑addr  *( SEMIai‑param )

ai-param = Up
P-Called-Party-ID =
"P‑Called‑Party‑ID"  HCOLONcalled‑pty‑id‑spec

; example:
; P‑Called‑Party‑ID: sip:user1‑business@example.com


called-pty-id-spec =
cpid-param = Up
P-Charge-Info =
"P-Charge-Info"  HCOLON  ( name‑addr /  addr‑spec )

; examples:
; P-Charge-Info: <sip:+14075550134@example.net;user=phone>
; P-Charge-Info: <sip:+12345550167@example.com>
; P-Charge-Info: <sips:1234@example.com>
; P-Charge-Info: <tel:+14075551234>

Up
P-Charging-Addr =
"P-Charging-Function-Addresses"  HCOLONcharge‑addr‑params
*( COMMAcharge‑addr‑params )

; example:
; P-Charging-Function-Addresses: ccf=192.1.1.1; ccf=192.1.1.2


charge-addr-params =
charge-addr-param =
ccf /  ecf /  ccf‑2 /  ecf‑2 /  generic‑param

ccf =
"ccf"  EQUALgen‑value

ecf =
"ecf"  EQUALgen‑value

ccf-2 =
"ccf‑2"  EQUALgen‑value

ecf-2 =
"ecf‑2"  EQUALgen‑value
Up
P-Charging-Vector =
"P-Charging-Vector"  HCOLONicid‑value  *( SEMIcharge‑params )

; example:
; P‑Charging‑Vector: icid‑value=1234bc9876e;
;    icid‑generated‑at=192.0.6.8; orig‑ioi=home1.net


charge-params =
icid-value =
"icid‑value"  EQUALgen‑value

icid-gen-addr =
"icid-generated-at"  EQUALhost

orig-ioi =
"orig‑ioi"  EQUALgen‑value

term-ioi =
"term-ioi"  EQUALgen‑value

transit-ioi =
"transit‑ioi"  EQUALtransit‑ioi‑list

transit-ioi-list =
transit-ioi-param =
transit-ioi-indexed-value =
transit-ioi-name =
ALPHA  *( ALPHA /  DIGIT )

transit-ioi-index =
1*DIGIT

transit-ioi-void-value =
"void"
related-icid =
"related‑icid"  EQUALgen‑value
related-icid-gen-addr =
"related‑icid‑generated‑at"  EQUALhost
Up
P-DCS-Billing-Info =
"P-DCS-Billing-Info"  HCOLONBilling‑Correlation‑ID  "/"  FEID  *( SEMIBilling‑Info‑param )

Billing-Correlation-ID =
1*48( HEXDIG )

FEID =
1*16( HEXDIG )  "@"  host

Billing-Info-param =
RKS-Group-ID-param =
"rksgroup"  EQUALRKS‑Group‑ID

RKS-Group-ID =
Charge-param =
"charge"  EQUALAcct‑Charge‑URI

Acct-Charge-URI =
Calling-param =
"calling"  EQUALAcct‑Calling‑URI

Acct-Calling-URI =
Called-param =
"called"  EQUALAcct‑Called‑URI

Acct-Called-URI =
Routing-param =
"routing"  EQUALAcct‑Routing‑URI

Acct-Routing-URI =
Loc-Routing-param =
Acct-Loc-Routing-URI =
JIP-param =
"jip"  EQUALjip

jip =
jip-context =
";jip‑context="  jip‑descriptor

jip-descriptor =
global-hex-digits =
"+"  1*3( phonedigit )  *phonedigit‑hex

phonedigit =
phonedigit-hex =
HEXDIG /  "*" /  "#" /  [ visual‑separator ]

visual-separator =
"-" /  "." /  "(" /  ")"
Up
P-DCS-LAES =
"P-DCS-LAES"  HCOLONLaes‑sig  *( SEMILaes‑param )

Laes-sig =
Laes-param =
Laes-content =
"content"  EQUALhostport

Laes-cccid =
"cccid"  EQUAL  1*8( HEXDIG )

Laes-bcid  =
"cccid"  EQUAL   1*48( HEXDIG )
Up
P-DCS-OSPS =
"P-DCS-OSPS"  HCOLONOSPS‑Tag

OSPS-Tag =
"BLV" /  "EI" /  "RING" /  token
Up
P-DCS-Redirect =
"P-DCS-Redirect"  HCOLONCalled‑ID  *( SEMIredir‑params )

Called-ID =
redir-params =
redir-uri-param =
"redirector‑uri"  EQUALRedirector

Redirector =
redir-count-param =
"count"  EQUALRedir‑count

Redir-count =
1*DIGIT
Up
P-DCS-Trace-Party-ID =
"P-DCS-Trace-Party-ID"  HCOLONname‑addr
*1( SEMItimestamp‑param )  *( SEMItrace‑param )

timestamp-param =
"timestamp="  1*DIGIT  [ "."  1*DIGIT ]

trace-param = Up
P-Early-Media =
"P-Early-Media"  HCOLON  [ em‑param  *( COMMAem‑param) ]

em-param =
"sendrecv" /  "sendonly" /  "recvonly" /  "inactive" /  "gated" /  "supported" /  token
Up
P-Media-Authorization =
P-Media-Authorization-Token  =
1*HEXDIG
Up
PPreferredID =
"P-Preferred-Identity"  HCOLONPPreferredID‑value  *( COMMAPPreferredID‑value )

; example:
; P‑Preferred‑Identity: "Cullen Jennings" <sip:fluffy@cisco.com>


PPreferredID-value = Up
PPreferredService =
"P-Preferred-Service"  HCOLONPPreferredService‑value

PPreferredService-value = Up
P-Private-Network-Indication =
"P-Private-Network-Indication"  HCOLONPNI‑value  *( SEMI  PNI‑param )

; example:
; P-Private-Network-Indication: example.com


PNI-value =
PNI-param = Up
P-Profile-Key =
"P-Profile-Key"  HCOLON  ( name‑addr /  addr‑spec )  *( SEMIgeneric‑param )

; example:
; P‑Profile‑Key: <sip:chatroom-!.*!@example.com>

Up
P-Refused-URI-List =
"P-Refused-URI-List"  HCOLONuri‑list‑entry  *( COMMAuri‑list‑entry )

uri-list-entry =
name‑addr /  addr‑spec )  *( SEMIrefused‑param )

refused-param =
members-param =
"members"  EQUALLDQUOT  *( qdtext /  quoted‑pair )  RDQUOT
Up
P-Served-User =
"P-Served-User"  HCOLONPServedUser‑value  *( SEMI  served‑user‑param )

served-user-param =
PServedUser-value =
sessioncase-param =
"sescase"  EQUAL  ( "orig" /  "term" ) /  orig‑cdiv

registration-state-param =
"regstate"  EQUAL  "unreg" /  "reg"

orig-cdiv =
"orig‑cdiv"
Up
P-User-Database =
"P-User-Database"  HCOLONdatabase  *( SEMIgeneric‑param )

database =
LAQUOTDiameterURI   RAQUOT

;  Diameter‑URI is defined in   RFC 3588Section 4.3
; example:
; P-User-Database: <aaa://host.example.com;transport=tcp>

Up
P-Visited-Network-ID =
"P-Visited-Network-ID"  HCOLONvnetwork‑spec  *( COMMAvnetwork‑spec )

; example:
; P‑Visited‑Network‑ID: other.net, "Visited network number 1"


vnetwork-spec =
token /  quoted‑string )  *( SEMIvnetwork‑param )

vnetwork-param = Up
Path =
"Path"  HCOLONpath‑value  *( COMMApath‑value )

; example:
; Path: <sip:P3.EXAMPLEHOME.COM;lr>,<sip:P1.EXAMPLEVISITED.COM;lr>


path-value =
name‑addr  *( SEMIrr‑param )
Up
Permission-Missing =
"Permission‑Missing"  HCOLONper‑miss‑spec  *( COMMAper‑miss‑spec )

; example:
; Permission‑Missing: sip:C@example.com


per-miss-spec =
name‑addr /  addr‑spec )  *( SEMIgeneric‑param )
Up
Policy-Contact =
"Policy‑Contact"  HCOLONpolicyContact‑info  *( COMMApolicyContact‑info )

policyContact-info =
policyContact-uri =
SIP‑URI /  SIPS‑URI /  absoluteURI )

policyContact-param =
( "non‑cacheable" /  policyContact‑alt‑uri /  generic‑param )

policyContact-alt-uri =
"alt‑uri"  EQUALhostname
Up
Policy-ID =
"Policy‑ID"  HCOLONpolicyURI  *( COMMApolicyURI )

policyURI =
SIP‑URI /  SIPS‑URI /  absoluteURI )  [ SEMItoken‑param ]  *( SEMIgeneric‑param )

token-param =
"token="  token
Up
Priority =
"Priority"  HCOLONpriority‑value

; example:
; Priority: emergency


priority-value =
"emergency" /  "urgent" /  "normal" /  "non‑urgent" /  other‑priority

other-priority = Up
priority-share =
"Priority‑Share"  HCOLONpriority‑share‑options  *( SEMIgeneric‑param )

priority-share-options =
"allowed" /  "not‑allowed" /  other‑options

other-options = Up
Privacy-hdr =
"Privacy"  HCOLONpriv‑value  *( ";"  priv‑value )

; example:
; Privacy: id


priv-value =
"header" /  "session" /  "user" /  "none" /  "critical" /  ; see RFC 3323
"id" /  ; see  RFC 3325Section 9.3
"history" /  ; see  RFC 7044Section 14.2
token
Up
Priv-Answer-Mode =
"Priv‑Answer‑Mode"  HCOLONanswer‑mode‑value  *( SEMIanswer‑mode‑param )

; example:
; Priv‑Answer‑Mode: Auto

Up
Proxy-Authenticate =
"Proxy‑Authenticate"  HCOLONchallenge

; example:
; Proxy‑Authenticate: Digest realm="atlanta.example.com", qop="auth",
;    nonce="f84f1cec41e6cbe5aea9c8e88d359",
;    opaque="", stale=FALSE, algorithm=MD5


challenge =
( "Digest"  LWSdigest‑cln  *( COMMAdigest‑cln ) ) /  other‑challenge

other-challenge =
digest-cln =
realm /  domain /  nonce /  opaque /  stale /  algorithm /  qop‑options /  auth‑param

realm =
"realm"  EQUALrealm‑value

realm-value =
domain =
"domain"  EQUALLDQUOTURI  *( 1*SPURI )  RDQUOT

URI =
nonce =
"nonce"  aka‑nonce  ( aka‑nonce /  nonce‑value )

; example: ; nonce rule is as amended by RFC 3310
; nonce="MzQ0a2xrbGtmbGtsZm9wb2tsc2tqaHJzZXNy9uQyMzMzMzQK="


aka-nonce =
aka-nonce-value =
<base64 encoding of RAND, AUTN, and server specific data>

nonce-value =
opaque =
"opaque"  EQUALquoted‑string

stale =
"stale"  EQUAL  ( "true" /  "false" )

algorithm =
"algorithm"  EQUAL  ( aka‑namespace /  algorithm‑value )

; example:
;  algorithm=AKAv1‑MD5


algorithm-value =
( "MD5" /  "MD5‑sess" /  token )

aka-namespace =
aka-version =
"AKAv"  1*DIGIT

; AKAv1RFC 3310Section 3.1

; AKAv2RFC 4169Section 5


qop-options =
"qop"  EQUALLDQUOTqop‑value  *( ","  qop‑value )  RDQUOT

qop-value =
"auth" /  "auth‑int" /  token
Up
Proxy-Authorization =
"Proxy-Authorization"  HCOLONcredentials

; example:
; Proxy‑Authorization: Digest username="alice",
;   realm="atlanta.example.com",
;   nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="",
;   uri="sip:bob@biloxi.example.com",
;   response="42ce3cef44b22f50c6a6071bc8"

Up
Proxy-Require =
"Proxy‑Require"  HCOLONoption‑tag  *( COMMAoption‑tag )

; example:
; Proxy‑Require: sec‑agree

Up
RAck =
"RAck"  HCOLONresponse‑numLWSCSeq‑numLWSMethod

; example:
; RAck: 776656 1 INVITE


response-num =
1*DIGIT

CSeq-num =
1*DIGIT
Up
Reason =
"Reason"  HCOLONreason‑value  *( COMMAreason‑value )

; examples:
;  Reason: SIP;cause=200;text="Call completed elsewhere"
;  Reason: Q.850;cause=16;text="Terminated"
;  Reason: SIP;cause=600;text="Busy Everywhere"
;  Reason: SIP;cause=580;text="Precondition Failure"
;  Reason: preemption;cause=1;text="UA Preemption"
;  Reason: preemption;cause=2;text="Reserved Resources Preempted"
;  Reason: preemption;cause=3;text="Generic Preemption"
;  Reason: preemption;cause=4;text="Non-IP Preemption"


reason-value =
protocol =
"SIP" /  "Q.850" / 
"Preemption" /  ; see  RFC 4411Section 5
; the following in  3GPP TS 24.229Clause 7.2A.18
; -----
"EMM" /
; EPS Mobility Management
; see  3GPP TS 24.301 – subclause 9.9.3.9
"ESM" /
; EPS Session Management
; see  3GPP TS 24.301 – subclause 9.9.4.4
"S1AP-RNL" /
; Radio Network Layer
; see  3GPP TS 36.413
"S1AP-TL" /
; Transport Layer
; see  3GPP TS 36.413
"S1AP-NAS" /
; Non-Access Stratum
; see  3GPP TS 36.413
"S1AP-MISC" /
; Miscellaneous
; see  3GPP TS 36.413
"S1AP-PROT" /
; Protocol
; see  3GPP TS 36.413
"DIAMETER" /
"IKEV2" / "RELEASE_CAUSE" / 
; 1  User ends call
; 2  RTP/RTCP time-out
; 3  Media bearer loss
; 4  SIP timeout - no ACK
; 5  SIP response time-out
; 6  Call-setup time-out
 
"FAILURE_CAUSE" / 
; 1  Media bearer or QoS lost
; 2  Release of signalling bearer
; 3  Indication of failed resources allocation
 
; -----
token

reason-params =
protocol-cause =
"cause"  EQUALcause

cause =
1*DIGIT

reason-text =
"text"  EQUALquoted‑string

isup-cause-location =
"location"  EQUALisup-location-value

isup-location-value =
"U" /
; for  0 0 0 0  user
"LPN" /
; for  0 0 0 1  private network serving the local user
"LN" /
; for  0 0 1 0  public network serving the local user
"TN" /
; for  0 0 1 1  transit network
"RLN" /
; for  0 1 0 0  public network serving the remote user
"RPN" /
; for  0 1 0 1  private network serving the remote user
"LOC-6" /
; for  0 1 1 0  spare
"INTL" /
; for  0 1 1 1  international network
"LOC-8" /
; for  1 0 0 0  spare
"LOC-9" /
; for  1 0 0 1  spare
"BI" /
; for  1 0 1 0  network beyond interworking point
"LOC-11" /
; for  1 0 1 1  spare
"LOC-12" /
; for  1 1 0 0  reserved for national use
"LOC-13" /
; for  1 1 0 1  reserved for national use
"LOC-14" /
; for  1 1 1 0  reserved for national use
"LOC-15" /
; for  1 1 1 1  reserved for national use

reason-extension = Up
Record-Route =
"Record‑Route"  HCOLONrec‑route  *( COMMArec‑route )

; example:
; Record‑Route: <sip:ss2.biloxi.example.com;lr>,
;  <sip:ss1.atlanta.example.com;lr>


rec-route =
name‑addr  *( SEMIrr‑param )

rr-param = Up
Recv-Info =
"Recv‑Info"  HCOLON  [ Info‑package‑list ]

; example:
; Recv‑Info: P, R


Info-package-list = Up
Refer-Events-At =
"Refer-Events-At"  HCOLONLAQUOT  ( SIP‑URI /  SIPS‑URI )  RAQUOT  *( SEMIgeneric‑param )

; example:
; Refer‑Events‑At: <sips:vPT3izGmo8NTxaPADRZvEAY22BKx@example.com;gr>

Up
Refer-Sub =
"Refer‑Sub"  HCOLONrefer‑sub‑value  *( SEMIexten )

refer-sub-value =
"true" /  "false"

exten = Up
Refer-To =
( "Refer‑To" /  "r" )  HCOLON  ( name‑addr /  addr‑spec )  *( SEMIrefer‑param )

; example:
; Refer-To: <sips:a8342043f@atlanta.example.com?Replaces=
;   12345601%40atlanta.example.com%3Bfrom‑tag%3D314159%3Bto‑tag%3D1234567>
; Refer-To: sip:conf44@example.com;isfocus


refer-param = Up
Referred-By =
( "Referred‑By" /  "b" )  HCOLONreferrer‑uri  *( SEMI  ( referredby‑id‑param /  generic‑param ) )

; example:
; Referred-By: <sip:referrer@referrer.example>
;   ;cid="abnf-20398823.2UWQFN309shb3@referrer.example"


referrer-uri =
name‑addr /  addr‑spec )

referredby-id-param =
sip-clean-msg-id =
LDQUOTdot‑atom  "@"  ( dot‑atom /  host )  RDQUOT

dot-atom =
atom  *( "."  atom )

atom =
1*( alphanum /  "-" /  "!" /  "%" /  "*" /  "_" /  "+" /  "'" /  "`" /  "~" )
Up
Reject-Contact =
( "Reject‑Contact" /  "j" )  HCOLONrc‑value  *( COMMArc‑value )

; example:
; Reject‑Contact: *;actor="msg‑taker";video


rc-value =
"*"  *( SEMIrc‑params )

rc-params = Up
Replaces =
"Replaces"  HCOLONcallid  *( SEMIreplaces‑param )

; example:
; Replaces: 425928@bobster.example.org;to-tag=7743;from-tag=6472


replaces-param =
to-tag =
"to‑tag"  EQUALtoken

from-tag =
"from‑tag"  EQUALtoken

early-flag =
"early-only"
Up
Reply-To =
"Reply‑To"  HCOLONrplyto‑spec

; example:
; Reply‑To: Bob <sip:bob@biloxi.com>


rplyto-spec =
name‑addr /  addr‑spec )  *( SEMIrplyto‑param )

rplyto-param = Up
Request-Disposition =
( "Request-Disposition" /  "d" )  HCOLONdirective  *( COMMAdirective )

; example:
; Request‑Disposition: proxy, recurse, parallel


directive =
proxy-directive =
"proxy" /  "redirect"

cancel-directive =
"cancel" /  "no‑cancel"

fork-directive =
"fork" /  "no‑fork"

recurse-directive =
"recurse" /  "no‑recurse"

parallel-directive =
"parallel" /  "sequential"

queue-directive =
"queue" /  "no‑queue"
Up
Require =
"Require"  HCOLONoption‑tag  *( COMMAoption‑tag )

; example:
; Require: 100rel

Up
Resource-Priority =
"Resource‑Priority"  HCOLONr‑value  *( COMMAr‑value )

; example:
; Resource‑Priority: wps.3, dsn.flash


r-value =
namespace =
r-priority =
token-nodot =
1*( alphanum /  "-" /  "!" /  "%" /  "*" /  "_" /  "+" /  "`" /  "'" /  "~" )
Up
relayed-charge =
"Relayed‑Charge"  HCOLONrelayed‑charge‑list

relayed-charge-list =
relayed-charge-item =
relay-source =
"PCSCF" /  "SCSCF" /  "IBCF" /  "transitfunction" /  "ICSCF" /  other‑source

other-source = Up
resource-share =
"Resource‑Share"  HCOLONr‑s‑param

r-s-param =
r-s-supported =
"supported"  [ SEMIorigin ]  *( SEMIgeneric‑param )

r-s-no-media-sharing =
"no-media-sharing"  SEMIorigin  *( SEMIgeneric‑param )

r-s-media-sharing =
"media-sharing"  SEMIoriginSEMIresource‑sharing‑rulesSEMItimestamp  *( SEMIgeneric‑param )

r-s-other =
other-status =
origin =
"session‑initiator" /  "session‑receiver" /  other‑origin

other-origin =
resource-sharing-rules =
resource-sharing-rule =
active-resource-sharing-rule =
new-sharing-key =
existing-sharing-key-list =
directionality =
"UL" /  "DL" /  "UL‑DL" /  other‑directionality

other-directionality =
sharing-key =
generic-rule-param-value =
timestamp =
"timestamp"  EQUAL  1*DIGIT
Up
Response-Source =
"Response‑Source"  HCOLONsource‑info

source-info =
source-params =
source-urn =
source-urn-val =
1*uric
Up
Restoration-Info =
"Restoration‑Info"  HCOLONpcrf‑token /  reason /  generic‑param

pcrf-token =
( "IMSI" /  ext‑type )  EQUALpcrf‑param

pcrf-param =
reason =
noresponse"

ext-type = Up
Retry-After =
"Retry-After"  HCOLONdelta‑seconds  [ comment ]  *( SEMIretry‑param )

; examples:
;  Retry‑After: 18000;duration=3600
;  Retry‑After: 120 (I'm in a meeting)


retry-param =
( "duration"  EQUALdelta‑seconds ) /  generic‑param
Up
Route =
"Route"  HCOLONroute‑param  *( COMMAroute‑param )

; example:
; Route: <sip:ss1.atlanta.example.com;lr>,
;  <sip:ss2.biloxi.example.com;lr>


route-param =
name‑addr  *( SEMIrr‑param )
Up
RSeq =
"RSeq"  HCOLONresponse‑num

; example:
; RSeq: 988789

Up
Security-Client =
"Security‑Client"  HCOLONsec‑mechanism  *( COMMAsec‑mechanism )

sec-mechanism =
mechanism-name =
(
"digest" /  "tls" /  "ipsec‑ike" /  "ipsec‑man" /  ; see  Section 2.2
"ipsec-3gpp" /  ; see  Appendix A
sdes‑srtp‑name /  msrp‑tls‑name /  bfcp‑tls‑name /  udptl‑dtls‑name / 
; see  3GPP TS 24.229Section 7.2A.7
token
 )

sdes-srtp-name =
"sdes‑srtp"

msrp-tls-name =
"msrp‑tls"

bfcp-tls-name =
"bfcp‑tls"

udptl-dtls-name =
"udptl‑dtls"

mech-parameters =
(
preference /  digest‑algorithm /  digest‑qop /  digest‑verify /  ; see  Section 2.2
algorithm /  protocol /  mode /  encrypt‑algorithm /  spi /  port1 /  port2 /  ; see  Appendix A
spi‑c /  spi‑s /  port‑c /  port‑s /  ; see  3GPP TS 33.203 – Annex H
mediasec‑param /  ; see  3GPP TS 24.229Section 7.2A.7
extension
 )

preference =
"q"  EQUALqvalue

digest-algorithm =
"d-alg"  EQUALtoken

digest-qop =
"d-qop"  EQUALtoken

digest-verify =
"d-ver"  EQUALLDQUOT  32LHEXRDQUOT

algorithm =
"alg"  EQUAL  ( "hmac‑md5‑96" /  "hmac‑sha‑1‑96" )

protocol =
"prot"  EQUAL  ( "ah" /  "esp" )

mode =
"mod"  EQUAL  (
"trans" /  "tun" / 
"UDP-enc-tun"  ; see  3GPP TS 33.203 – Annex H
 )

encrypt-algorithm =
"ealg"  EQUAL  (
"des‑ede3‑cbc" /  "null" / 
"aes‑cbc"  ; see  3GPP TS 33.203 – Annex H
 )

spi =
"spi"  EQUALspivalue

spi-c =
"spi‑c"  EQUALspivalue

spi-s =
"spi‑s"  EQUALspivalue

spivalue =
10DIGIT
; 0 to 4294967295

port1 =
"port1"  EQUALport

port2 =
"port2"  EQUALport

port-c =
"port‑c"  EQUALport

port-s =
"port‑s"  EQUALport

port =
1*DIGIT

mediasec-param =
"mediasec"

extension = Up
Security-Server =
"Security‑Server"  HCOLONsec‑mechanism  *( COMMAsec‑mechanism )

; example:
; Security-Server: ipsec-ike;q=0.1

Up
Security-Verify =
"Security‑Verify"  HCOLONsec‑mechanism  *( COMMAsec‑mechanism )

; example:
; Security‑Verify: tls;q=0.2

Up
Server =
"Server"  HCOLONserver‑val  *( LWSserver‑val )

; example:
; Server: HomeServer v2


server-val =
product =
product-version = Up
Service-Interact-Info =
"Service‑Interact‑Info"  HCOLONexecuted‑service‑params  *( COMMAexecuted‑service‑params )

executed-service-params =
executed-service =
"executed-service"  EQUALservice‑spec

avoid-service =
"avoid-service"  EQUALservice‑spec

service-spec =
service-id =
service-param = Up
Service-Route =
"Service‑Route"  HCOLONsr‑value  *( COMMAsr‑value )

; example:
; Service‑Route: <sip:P2.HOME.EXAMPLE.COM;lr>,
;    <sip:HSP.HOME.EXAMPLE.COM;lr>


sr-value =
name‑addr  *( SEMIrr‑param )
Up
Session-Expires =
( "Session‑Expires" /  "x" )  HCOLONdelta‑seconds  *( SEMIse‑params )

; example:
; Session‑Expires: 4000;refresher=uac


se-params =
refresher-param =
"refresher"  EQUAL  ( "uas" /  "uac" )
Up
Session-ID =
"Session‑ID"  HCOLONsession‑id‑value

session-id-value =
local-uuid =
remote-uuid =
sess-uuid =
32 ( DIGIT /  %x61‑66 )
;  32 chars of [0‑9a‑f]

sess-id-param =
remote-param =
"remote"  EQUALremote‑uuid

logme-param =
"logme"

nil =
32 ( "0" )
Up
SIP-ETag =
"SIP‑ETag"  HCOLONentity‑tag

; example:
; SIP‑ETag: dx200xyz


entity-tag = Up
SIP-If-Match =
"SIP‑If‑Match"  HCOLONentity‑tag

; example:
; SIP‑If‑Match: dx200xyz

Up
Subject =
( "Subject" /  "s" )  HCOLON  [ TEXT‑UTF8‑TRIM ]

; example:
; Subject: A tornado is heading our way!

Up
Subscription-State =
"Subscription‑State"  HCOLONsubstate‑value  *( SEMIsubexp‑params )

; example:
; Subscription‑State: active;expires=60


substate-value =
"active" /  "pending" /  "terminated" /  extension‑substate

extension-substate =
subexp-params =
( "reason"  EQUALevent‑reason‑value )  /
( "expires"  EQUALdelta‑seconds )  /
( "retry‑after"  EQUALdelta‑seconds )  /
max‑rate‑param /  min‑rate‑param /  amin‑rate‑param /  generic‑param

event-reason-value =
"deactivated" /  "probation" /  "rejected" /  "timeout" /  "giveup" /  "noresource" /  "invariant" /  event‑reason‑extension

event-reason-extension  = Up
Supported =
( "Supported" /  "k" )  HCOLON  [ option‑tag  *( COMMAoption‑tag ) ]

; example:
; Supported: replaces

Up
Suppress-If-Match =
"Suppress‑If‑Match"  HCOLONentity‑tag

; example:
; Suppress‑If‑Match: dx200xyz

Up
Target-Dialog =
"Target‑Dialog"  HCOLONcallid  *( SEMI  td‑param )

td-param =
remote-param =
"remote‑tag"  EQUALtoken

local-param =
"local‑tag"  EQUALtoken
Up
Timestamp =
"Timestamp"  HCOLON  1*( DIGIT )  [ "."  *( DIGIT ) ]  [ LWSdelay ]

; example:
; Timestamp: 54


delay =
*( DIGIT )  [ "."  *( DIGIT ) ]
Up
To =
( "To" /  "t" )  HCOLON  ( name‑addr /  addr‑spec )  *( SEMIto‑param )

; example:
; To: Bob <sip:bob@biloxi.example.com>;tag=8321234356


to-param = Up
Trigger-Consent =
"Trigger-Consent"  HCOLONtrigger-cons-spec  *( COMMAtrigger-cons-spec )

; example:
; Trigger-Consent: sip:123@relay.example.com
;     ;target-uri="sip:friends@relay.example.com"


trigger-cons-spec =
SIP‑URI /  SIPS‑URI )  *( SEMItrigger‑param )

trigger-param =
target-uri =
"target‑uri"  EQUALLDQUOT  *( qdtext /  quoted‑pair )  RDQUOT
Up
Unsupported =
"Unsupported"  HCOLONoption‑tag  *( COMMAoption‑tag )

; example:
; Unsupported: 100rel

Up
User-Agent =
"User‑Agent"  HCOLONserver‑val  *( LWSserver‑val )

; example:
; User‑Agent: Softphone Beta1.5

Up
UUI =
"User‑to‑User"  HCOLONuui‑value  *( COMMAuui‑value )

uui-value =
uui‑data  *( SEMIuui‑param )

uui-param =
uui-data =
pkg-param =
"purpose"  EQUALpkg‑param‑value

pkg-param-value =
"isdn‑uui" /  ; see  RFC 7434Section 11
token

cont-param =
"content"  EQUALcont‑param‑value

cont-param-value =
"isdn-uui" /  ; see  RFC 7434Section 11
token

enc-param =
"encoding"  EQUALenc‑param‑value

enc-param-value =
token /  "hex" 
Up
Via =
( "Via" /  "v" )  HCOLONvia‑parm  *( COMMAvia‑parm )

via-parm =
sent-protocol =
sent-by =
host  [ COLONport ]

protocol-name =
"SIP" /  token

protocol-version =
transport =
"UDP" /  "TCP" /  "TLS" /  "SCTP" /  ; see  RFC 3261
"TLS-SCTP" /  ; see  RFC 4168Section 4
"WS" /  "WSS" /  ; see  RFC 7118Section 5.1
other-transport

via-params =
via‑ttl /  via‑maddr /  via‑branch /  ; see  RFC 3261
via‑received /  ; see  RFC 3261,   RFC 7118Section 5.3
via‑compression /  ; see  RFC 3486Section 8
response‑port /  ; see  RFC 3581Section 5
via‑sip‑sigcomp‑id /  ; see  RFC 5049Section 9.1
via‑alias /  ; see  RFC 5923Section 7
via‑keep /  ; see  RFC 6223Section 8
oc /  oc‑validity /  oc‑seq /  oc‑algo /  ; see  RFC 7339Section 9
received‑realm /  ; see  RFC 8055Section 5.6.2
via‑extension

via-ttl =
"ttl"  EQUALttl

via-maddr =
"maddr"  EQUALhost

via-received =
"received"  EQUAL  ( IPv4address /  IPv6address )

via-branch =
"branch"  EQUALtoken

via-compression =
"comp"  EQUAL  ( "sigcomp" /  other‑compression )

response-port =
"rport"  [ EQUAL  1*DIGIT ]

via-sip-sigcomp-id =
"sigcomp-id"  EQUALLDQUOT  *( qdtext /  quoted‑pair )  RDQUOT

via-alias =
"alias"

via-keep =
"keep"  [ EQUAL  1*( DIGIT ) ]

oc =
"oc"  [ EQUALoc‑num ]

oc-validity =
"oc‑validity"  [ EQUALdelta‑ms ]

oc-seq =
"oc‑seq"  EQUAL  1*12DIGIT  "."  1*5DIGIT

oc-algo =
"oc‑algo"  EQUALDQUOTEalgo‑list  *( COMMAalgo‑list )  DQUOTE

received-realm =
"received‑realm"  EQUALLDQUOTop‑idCOLONjwsLDQUOT

ttl =
1*3DIGIT     ; 0 to 255

other-compression =
oc-num =
1*DIGIT

algo-list =
"loss"  /
"rate"  /     ; see  RFC 7415 – Section 5
*( other‑algo )

other-algo =
%x41‑5A /  %x61‑7A /  %x30‑39

delta-ms =
1*DIGIT

op-id =
jws =
header  ".."  signature

header =
signature =
base64-char =
ALPHA /  DIGIT /  "/" /  "+"

via-extension = Up
Warning =
"Warning"  HCOLONwarning‑value  *( COMMAwarning‑value )

; example:
; Warning: 301 isi.edu "Incompatible network address type 'E.164'"


warning-value =
warn-code =
3DIGIT

; 300  Incompatible network protocol:
; One or more network protocols contained in the session description are not available.

; 301  Incompatible network address formats:
; One or more network address formats contained in the session description are not available.

; 302  Incompatible transport protocol:
; One or more transport protocols described in the session description are not available.

; 303  Incompatible bandwidth units:
; One or more bandwidth measurement units contained in the session description were not understood.

; 304  Media type not available:
; One or more media types contained in the session description are not available.

; 305  Incompatible media format:
; One or more media formats contained in the session description are not available.

; 306  Attribute not understood:
; One or more of the media attributes in the session description are not supported.

; 307  Session description parameter not understood:
; A parameter other than those listed above was not understood.

; 308  Incompatible language specification:
; Requested languages not supported. Supported languages are [list of supported languages]; supported media are: [list of supported media].
; [RFC 8373]

; 330  Multicast not available:
; The site where the user is located does not support multicast.

; 331  Unicast not available:
; The site where the user is located does not support unicast communication (usually due to the presence of a firewall).

; 370  Insufficient bandwidth:
; The bandwidth specified in the session description or defined by the media exceeds that known to be available.

; 380  SIPS Not Allowed:
; The bandwidth specified in the session description or defined by the media exceeds that known to be available.
; [RFC 5630]

; 381  SIPS Required:
; The UAS or proxy cannot process the request because the SIPS scheme is required.
; [RFC 5630]

; 399  Miscellaneous warning:
; The warning text can include arbitrary information to be presented to a human user or logged. A system receiving this warning MUST NOT take any automated action.


warn-agent =
warn-text =
pseudonym = Up
WWW-Authenticate =
"WWW-Authenticate"  HCOLONchallenge

; SIP example:
; WWW‑Authenticate: Digest realm="atlanta.example.com", qop="auth",
;   nonce="84f1c1ae6cbe5ua9c8e88dfa3ecm3459",
;   opaque="", stale=FALSE, algorithm=MD5


auth-param =
integrity-key =
"ik"  EQUALik‑value

cipher-key =
"ck"  EQUALck‑value

ik-value =
LDQUOT  *( HEXDIG )  RDQUOT

ck-value =
LDQUOT  *( HEXDIG )  RDQUOT

; IMS example:
; SIP/2.0 401 Unauthorized
; ...
; WWW-Authenticate: Digest realm="registrar.home1.net",
;   nonce=base64(RAND + AUTN + server specific data),
;   algorithm=AKAv1‑MD5,
;   ik="00112233445566778899aabbccddeeff",
;   ck="ffeeddccbbaa11223344556677889900"
; CSeq: 1 REGISTER

Up
Status-Code =
extension-code =
Informational =
"100" /   ; Trying   §21.1.1
"180" /   ; Ringing   §21.1.2
"181" /   ; Call Is Being Forwarded   §21.1.3
"182" /   ; Queued   §21.1.4
"183" /   ; Session Progress   §21.1.5
"199"  ; Early Dialog Terminated   RFC 6228Section 11.1

Success =
"200" /   ; OK   §21.2.1
"202" /   ; Accepted (Deprecated)   RFC 6665Section 8.3.1
"204"  ; No Notification   RFC 5839Section 8.1

Redirection =
"300" /   ; Multiple Choices   §21.3.1
"301" /   ; Moved Permanently   §21.3.2
"302" /   ; Moved Temporarily   §21.3.3
"305" /   ; Use Proxy   §21.3.4
"380"  ; Alternative Service   §21.3.5

Client-Error =
"400" /   ; Bad Request   §21.4.1
"401" /   ; Unauthorized   §21.4.2
"402" /   ; Payment Required   §21.4.3
"403" /   ; Forbidden   §21.4.4
"404" /   ; Not Found   §21.4.5
"405" /   ; Method Not Allowed   §21.4.6
"406" /   ; Not Acceptable   §21.4.7
"407" /   ; Proxy Authentication Required   §21.4.8
"408" /   ; Request Timeout   §21.4.9
"410" /   ; Gone   §21.4.10
"412" /   ; Conditional Request Failed   RFC 3903Section 13.2
"413" /   ; Request Entity Too Large   §21.4.11
"414" /   ; Request-URI Too Long   §21.4.12
"415" /   ; Unsupported Media Type   §21.4.13
"416" /   ; Unsupported URI Scheme   §21.4.14
"417" /   ; Unknown Resource-Priority   RFC 4412Section 12.4
"420" /   ; Bad Extension   §21.4.15
"421" /   ; Extension Required   §21.4.16
"422" /   ; Session Interval Too Small   RFC 4028Section 12.2
"423" /   ; Interval Too Brief   §21.4.17
"424" /   ; Bad Location Information   RFC 6442Section 8.4
"425" /   ; Bad Alert Message   RFC 8876Section 10.3
"428" /   ; Use Identity Header   RFC 4474Section 14.2
"429" /   ; Provide Referrer Identity   RFC 3892Section 8
"430" /   ; Flow Failed   RFC 5626Section 11.5
"433" /   ; Anonymity Disallowed   RFC 5079Section 6
"436" /   ; Bad Identity Info   RFC 8224Section 13.2
"437" /   ; Unsupported Credential   RFC 8224Section 13.2
"438" /   ; Invalid Identity Header   RFC 4474Section 14.5Section 14.2
"439" /   ; First Hop Lacks Outbound Support   RFC 5626Section 11.6
"440" /   ; Max-Breadth Exceeded   RFC 5393Section 6.2
"469" /   ; Bad Info Package   RFC 6086Section 11.6
"470" /   ; Consent Needed   RFC 5360Section 6.1
"480" /   ; Temporarily Unavailable   §21.4.18
"481" /   ; Call/Transaction Does Not Exist   §21.4.19
"482" /   ; Loop Detected   §21.4.20
"483" /   ; Too Many Hops   §21.4.21
"484" /   ; Address Incomplete   §21.4.22
"485" /   ; Ambiguous   §21.4.23
"486" /   ; Busy Here   §21.4.24
"487" /   ; Request Terminated   §21.4.25
"488" /   ; Not Acceptable Here   §21.4.26
"489" /   ; Bad Event   RFC 6665Section 8.3.2
"491" /   ; Request Pending   §21.4.27
"493" /   ; Undecipherable   §21.4.28
"494"  ; Security Agreement Required   RFC 3329Section 6.4

Server-Error =
"500" /   ; Server Internal Error   §21.5.1
"501" /   ; Not Implemented   §21.5.2
"502" /   ; Bad Gateway   §21.5.3
"503" /   ; Service Unavailable   §21.5.4
"504" /   ; Server Time-out   §21.5.5
"505" /   ; Version Not Supported   §21.5.6
"513" /   ; Message Too Large   §21.5.7
"555" /   ; Push Notification Service Not Supported   RFC 8599Section 8.1
"580"  ; Precondition Failure   RFC 3312Section 8

Global-Failure =
"600" /   ; Busy Everywhere   §21.6.1
"603" /   ; Decline   §21.6.2
"604" /   ; Does Not Exist Anywhere   §21.6.3
"606" /   ; Not Acceptable   §21.6.4
"607" /   ; Unwanted   RFC 8197Section 5
"608"  ; Rejected   RFC 8688Section 5
Top
SIP-URI =
"sip:"   [ userinfo ]  hostporturi‑parameters  [ headers ]

SIPS-URI =
"sips:"  [ userinfo ]  hostporturi‑parameters  [ headers ]
Top
userinfo =
user /  telephone‑subscriber )  [ ":"  password ]  "@"

; examples:
;   sip:alice@atlanta.com
;   sip:alice:secretword@atlanta.com;transport=tcp
;   sip:+1-212-555-1212:1234@gateway.com;user=phone


user  =
1*( unreserved /  escaped /  user-unreserved )

user-unreserved =
"&" /  "=" /  "+" /  "$" /  "," /  ";" /  "?" /  "/"

password =
*( unreserved /  escaped /  "&" /  "=" /  "+" /  "$" /  "," )
Up
hostport =
host  [ ":"  port ]

; examples:
;   sip:alice@atlanta.com
;   sip:alice:secretword@atlanta.com;transport=tcp
;   sip:+1-212-555-1212:1234@gateway.com;user=phone
;   sip:alice@192.0.2.4


host =
hostname =
*( domainlabel  "." )  toplabel  [ "." ]

domainlabel =
alphanum /  alphanum  *( alphanum /  "-" )  alphanum

toplabel =
ALPHA /  ALPHA  *( alphanum /  "-" )  alphanum

IPv6reference =
"["  IPv6address  "]"

IPv6address =
;  as updated by:   RFC 5954Section 4.1
6( h16  ":" )  ls32  /
"::"  5( h16  ":" )  ls32  /
[ h16 ]  "::"  4( h16  ":" )  ls32  /
[ *1( h16  ":" )  h16 ]  "::"  3( h16  ":" )  ls32  /
[ *2( h16  ":" )  h16 ]  "::"  2( h16  ":" )  ls32  /
[ *3( h16  ":" )  h16 ]  "::"  h16  ":"    ls32  /
[ *4( h16  ":" )  h16 ]  "::"  ls32  /
[ *5( h16  ":" )  h16 ]  "::"  h16  /
[ *6( h16  ":" )  h16 ]  "::"

h16 =
1*4HEXDIG

ls32 =
h16   ":"   h16 ) /  IPv4address

IPv4address =
dec-octet  "."  dec-octet  "."  dec-octet  "."  dec-octet

dec-octet =
DIGIT /  ; 0‑9
%x31‑39   DIGIT /  ; 10‑99
"1"  2DIGIT /  ; 100‑199
"2"  %x30‑34   DIGIT /  ; 200‑249
"25"  %x30‑35  ; 250‑255

port =
1*DIGIT
Up
uri-parameters =
*( ";"  uri-parameter )

uri-parameter =
transport‑param /  user‑param /  method‑param /  ; RFC 3261
ttl‑param /  maddr‑param /  lr‑param /  ; RFC 3261
compression‑param /  ; RFC 3486
annc‑parameters /  dialog‑parameters /  ; RFC 4240
target‑param /  cause‑param /  ; RFC 4458
uri‑sip‑sigcomp‑id /  ; RFC 5049
dialog‑param /  ; RFC 5552
maxage‑param /  maxstale‑param /  method‑param /  ; RFC 5552
postbody‑param /  ccxml‑param /  aai‑param /  ; RFC 5552
ob-param /  ; RFC 5626
gr‑param /  ; RFC 5627
bnc‑param /  sg‑param /  ; RFC 6140
m-param /  ; RFC 6910
iotl-param /  ; RFC 7549
pn-param /  ; RFC 8599
pn-prid /  ; RFC 8599
pn-provider /  ; RFC 8599
pn-purr /  ; RFC 8599
orig /  ; 3GPP TS 24.229
sos-param /  ; 3GPP TS 24.229
other-param

other-param =
pname  [ "="  pvalue ]

pname =
pvalue =
paramchar =
param-unreserved =
"[" /  "]" /  "/" /  ":" /  "&" /  "+" /  "$"

transport-param =
"transport="  (
"udp" /  "tcp" /  "sctp" /  "tls" / 
"ws"     ; WebSocket:   see  RFC 7118
other-transport )

; example:
;   sip:alice:secretword@atlanta.com;transport=tcp


other-transport =
Up
user-param =
"user="  (
"phone" /  "ip" / 
"dialstring" /  ; see  RFC 4967
other-user )

; example:
;   sip:1-212-555-1212:1234@gateway.com;user=phone


other-user =

dialstring =
dialstring-digits =
dialstring-digit =
HEXDIG /  "*" /  "#"


dialstring-element =
dialstring-digit /  "P" /  "X" /  visual‑separator

; example:
;   sip:123;phone-context=atlanta.example.com@example.com;user=dialstring

Up
method-param =
"method="   Method

; example:
;   sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com

Up
ttl-param =
"ttl="   ttl

; example:
;   sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15


maddr-param =
"maddr="   host

; example:
;   sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15


lr-param =
"lr"

; example:
;   Route: <sip:ss2.biloxi.example.com;lr>


compression-param =
"comp="   ( "sigcomp" /  other‑compression )

; example:
;   sip:alice@atlanta.com;comp=sigcomp


other-compression =
ANNC-URL =
sip‑indannc‑ind  "@"  hostportannc‑parametersuri‑parameters

; example:
;   sip:annc@ms.example.net; \
;       play=file://fs.example.net//clips/my-intro.dvi; \
;       content-type=video/mpeg%3bencode%d3314M-25/625-50


sip-ind =
"sip:" /  "sips:"

annc-ind =
"annc"

annc-parameters =
";"  play‑param
[ ";"  delay‑param ]
[ ";"  duration‑param ]
[ ";"  repeat‑param ]
[ ";"  locale‑param ]
[ ";"  variable‑params ]
[ ";"  extension‑params ]

play-param =
"play="  prompt‑url

prompt-url =
"/provisioned/"  announcement‑id

announcement-id =
1*( ALPHA /  DIGIT )

content-param =
"content‑type="  MIME‑type

delay-param =
"delay="  delay‑value

delay-value =
1*DIGIT

duration-param =
"duration="  duration‑value

duration-value =
1*DIGIT

repeat-param =
"repeat="  repeat‑value

repeat-value =
1*DIGIT /  "forever"

locale-param =
"locale="  token

variable-params =
param-name =
"param"  DIGIT

variable-value =
1*( ALPHA /  DIGIT )

extension-params =
extension-param =
token  "="  token
Up
DIALOG-URL =
dialog-ind =
"dialog"

dialog-parameters =
dialog-param =
"voicexml="  vxml‑url

vxml-parameters =
vxml-param =
";"  vxml‑keyword  "="  vxml‑value

vxml-keyword =
vxml-value =
target-param =
"target"   EQUAL   pvalue

; example:
;   sip:voicemail@example.com;target=bob%40example.com;cause=486


cause-param =
"cause"   EQUAL   Status-Code

; 404     Unknown/Not available
; 486     User busy
; 408     No reply
; 302     Unconditional
; 487     Deflection during alerting
; 480     Deflection immediate response
; 503     Mobile subscriber not reachable
; 380     Service number translation   RFC 8119Section 2
; example:
;   sip:voicemail@example.com;target=bob%40example.com;cause=486


uri-sip-sigcomp-id =
"sigcomp-id"   "="  1*paramchar

dialog-param =
"voicexml="  vxml-url     ;  vxml-url follows the URI syntax defined in RFC 3986

maxage-param =
"maxage="  1*DIGIT

maxstale-param =
"maxstale="  1*DIGIT

method-param =
"method="  ( "get" /  "post" )

postbody-param =
"postbody="  token

ccxml-param =
"ccxml="  json‑value

aai-param =
"aai="  json‑value

json-value =
false /  null /  true /  object /  array /  number /  string
;  defined in   RFC 7159

; example:
;   sip:dialog@mediaserver.example.com; \
;       voicexml=http://appserver.example.com/promptcollect.vxml; \
;       maxage=3600;maxstale=0


ob-param =
"ob"

; example:
;   NOTIFY sip:192.0.2.2;transport=tcp;ob SIP/2.0


gr-param =
"gr"   [ "="  pvalue ]

; examples:
;   sip:alice@example.com;gr=kjh29x97us97d
;   sip:asd887f9dfkk76690@example.com;gr


bnc-param =
"bnc"

; example:
;   Contact: <sip:198.51.100.3:5060;bnc>


sg-param =
"sg"

; example:
;   INVITE sip:+12145550102@198.51.100.3;sg=00:05:03:5e:70:a6 SIP/2.0


m-param =
"m="  ( "BS" /  "NR" /  "NL" )

; example:
;   SUBSCRIBE sip:456@b.com;m=NR


iotl-param =
iotl‑tag  "="  iotl‑value  [ "."  iotl‑value ]

iotl-tag =
"iotl"

iotl-value =
"homea‑homeb" /  "homeb‑visitedb" /  "visiteda‑homea" /  "visiteda‑homea" /  "homea‑visiteda" /  "visiteda‑homeb" /  other‑iotl

other-iotl =
iotl-char =
alphanum /  "-"

pn-provider =
"pn-provider"   [ EQUAL   pvalue ]

pn-param =
"pn-param"   EQUAL   pvalue

pn-prid =
"pn-prid"   EQUAL   pvalue


pn-purr =
"pn-purr"   EQUAL   pvalue

orig =
"orig"

sos-param =
"sos"

headers =
"?"  header  *( "&"  header )

; examples:
;   sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com
;   sips:alice@atlanta.com?subject=project%20x&priority=urgent


header =
hname  "="  hvalue

hname =
1*( hnv-unreserved /  unreserved /  escaped )

hvalue =
*( hnv-unreserved /  unreserved /  escaped )

hnv-unreserved =
"[" /  "]" /  "/" /  "?" /  ":" /  "+" /  "$"

absoluteURI =
scheme  ":"  ( hier‑part /  opaque‑part )

scheme =
ALPHA  *( ALPHA /  DIGIT /  "+" /  "-" /  "." )

hier-part =
net‑path /  abs‑path )  [ "?"  query ]

net-path =
"//"  authority  [ abs‑path ]

abs-path =
query =
*uric

authority =
srvr =
[  [ userinfo]  hostport ]

reg-name =
1*( unreserved /  escaped /  "$" /  "," /  ";" /  ":" /  "@" /  "&" /  "=" /  "+" )

path-segments =
segment  *( "/"  segment )

segment =
*pchar  *( ";"  param )

param =
pchar =
unreserved /  escaped /  ":" /  "@" /  "&" /  "=" /  "+" /  "$" /  ","

opaque-part =
uric =
reserved /  unreserved /  escaped

uric-no-slash =
unreserved /  escaped /  ";" /  "?" /  ":" /  "@" /  "&" /  "=" /  "+" /  "$" /  ","

telephone-uri =
"tel:"  telephone‑subscriber

; examples:
;   tel:+1-201-555-0123
;   tel:7042;phone-context=example.com
;   tel:863-1234;phone-context=+1-914-555


telephone-subscriber =
global-number =
global-number-digits =
"+"  *phonedigitDIGIT  *phonedigit

phonedigit =
local-number =
local-number-digits =
*phonedigit-hex  ( HEXDIG /  "*" /  "#" )  *phonedigit‑hex

phonedigit-hex =
HEXDIG /  "*" /  "#" /  [ visual‑separator ]

context =
";phone-context="  descriptor

descriptor =
domainname =
*( domainlabel  "." )  toplabel  [ "." ]

domainlabel =
alphanum /  alphanum  *( alphanum /  "-" )  alphanum

toplabel =
ALPHA /  ALPHA  *( alphanum /  "-" )  alphanum

par =
parameter /  extension /  isdn‑subaddress /  ; see   RFC 3966
rn /  cic /  npdi /  ; see  RFC 4694Section 4
isub‑encoding /  ; see  RFC 4715Section 5
enum‑dip‑indicator /  ; see  RFC 4759Section 3
trunk‑group /  trunk‑context /  ; see  RFC 4904Section 5
premrate /  ; see  3GPP TS 24.229Section 7.2A.17
verstat  ; see  3GPP TS 24.229Section 7.2A.20

parameter =
";"  pname  [ "="  pvalue ]

pname =
1*( alphanum /  "-" )

pvalue =
paramchar =
param-unreserved =
"[" /  "]" /  "/" /  ":" /  "&" /  "+" /  "$"

extension =
";ext="  1*phonedigit

isdn-subaddress =
";isub="  1*uric

uric =
rn =
";rn="  ( global‑rn /  local‑rn )

cic =
";cic="  ( global-cic /  local‑cic )

npdi =
";npdi"

global-rn =
local-rn =
rn-context =
";rn-context="  rn‑descriptor

rn-descriptor =
global-hex-digits =
"+"  1*3( DIGIT )  *hex‑phonedigit

hex-phonedigit =
global-cic =
local-cic =
cic-context =
";cic-context="  rn‑descriptor

isub-encoding =
isub-encoding-tag =
"isub-encoding"

isub-encoding-value =
"nsap-ia5" /  "nsap-bcd" /  "nsap" /  token

enum-dip-indicator =
";enumdi"

trunk-group =
";tgrp="  trunk‑group‑label

trunk-context =
";trunk-context="  descriptor

trunk-group-label =
trunk-group-unreserved =
"/" /  "&" /  "+" /  "$"

pct-encoded =
"%"  HEXDIGHEXDIG

premrate =
premrate-tag =
"premium-rate"

premrate-value =
"information" /  "entertainment"

verstat =
verstat-tag =
"verstat"

verstat-value =
"TN‑Validation‑Passed" /  "TN‑Validation‑Failed" /  "No‑TN‑Validation" /  other‑value

other-value =
visual-separator =
"-" /  "." /  "(" /  ")"
Top
option-tag =
token
; see   IANA
; 100rel  → RFC 3262Section 8.1
; 199  → RFC 6228Section 11.2
; answermode  → RFC 5373Section 8.3
; early-session  → RFC 3959Section 9
; eventlist  → RFC 4662Section 8.1
; explicitsub  → RFC 7614Section 9.1
; from-change  → RFC 4916Section 6
; geolocation-http  → RFC 6442Section 8.3
; geolocation-sip  → RFC 6442Section 8.3
; gin  → RFC 6140Section 9.1
; gruu  → RFC 5627Section 11.3
; histinfo  → RFC 7044Section 14.1
; ice  → RFC 5768Section 7.1
; join  → RFC 3911Section 10.2
; multiple-refer  → RFC 5368Section 11
; norefersub  → RFC 4488Section 7
; nosub  → RFC 7614Section 9.2
; outbound  → RFC 5626Section 11.4
; path  → RFC 3327Section 7
; policy  → RFC 6794Section 6.4
; precondition  → RFC 3312Section 11
; pref  → RFC 3840Section 12.3
; privacy  → RFC 3323Section 7
; recipient-list-invite  → RFC 5366Section 8
; recipient-list-message  → RFC 5365Section 11
; recipient-list-subscribe  → RFC 5367Section 9.2
; record-aware  → RFC 7866Section 11.1.2
; replaces  → RFC 3891Section 9.2
; resource-priority  → RFC 4412Section 12.3
; sdp-anat  → RFC 4092Section 7
; sec-agree  → RFC 3329Section 6.5
; siprec  → RFC 7866Section 11.1.1
; tdialog  → RFC 4538Section 11.3
; timer  → RFC 4028Section 12.3
; uui  → RFC 7433Section 6.6

accept-param =
( "q"  EQUALqvalue ) /  generic‑param

qvalue =
( "0"  [ "."  0*3DIGIT ] ) /  ( "1"  [ "."  0*3( "0" ) ] )

generic-param =
token  [ EQUAL   gen‑value ]

gen-value =
token /  host /  quoted‑string

name-addr =
display‑name ]  LAQUOT  addr‑spec  RAQUOT
;  example:  Bob <sip:bob@biloxi.example.com>

display-name =
*( tokenLWS ) /  quoted‑string

addr-spec =
callid =
word  [ "@"  word ]

delta-seconds =
1*DIGIT
Top
alphanum =
ALPHA /  DIGIT

LHEX =
DIGIT /  %x61‑66
; lowercase a‑f

LWS =
CRLF ]  1*WSP
; linear whitespace

SWS =
LWS ]
; sep whitespace

HCOLON =
*( SP /  HTAB )   ":"   SWS

separators =
"(" /  ")" /  "<" /  ">" /  "@" /  "," /  ";" /  ":" /  "\" /  DQUOTE /  "/" /  "[" /  "]" /  "?" /  "=" /  "{" /  "}" /  SP /  HTAB

STAR =
SWS  "*"  SWS
; asterisk

SLASH =
SWS  "/"  SWS
; slash

EQUAL =
SWS  "="  SWS
; equal

LPAREN =
SWS  "("  SWS
; left parenthesis

RPAREN =
SWS  ")"  SWS
; right parenthesis

LAQUOT =
SWS  "<"
; left angle quote

RAQUOT =
">"  SWS
; right angle quote

COMMA =
SWS  ","  SWS
; comma

SEMI =
SWS  ";"  SWS
; semicolon

COLON =
SWS  ":"  SWS
; colon

LDQUOT =
SWSDQUOTE
; open double quotation mark

RDQUOT =
DQUOTESWS
; close double quotation mark

token =
1*( alphanum /  "-" /  "." /  "!" /  "%" /  "*" /  "_" /  "+" /  "`" /  "'" /  "~" )

quoted-string =
SWS   DQUOTE   *( qdtext /  quoted‑pair )   DQUOTE

qdtext =
LWS /  %x21 /  %x23‑5B /  %x5D‑7E /  UTF8‑NONASCII

quoted-pair =
"\"  ( %x00‑09 /  %x0B‑0C /  %x0E‑7F )

comment =
LPAREN   *( ctext /  quoted‑pair /  comment )   RPAREN

ctext =
%x21‑27 /  %x2A‑5B /  %x5D‑7E /  UTF8‑NONASCII /  LWS

word =
1*( alphanum /  "-" /  "." /  "!" /  "%" /  "*" /  "_" /  "+" /  "`" /  "'" /  "~" /  "(" /  ")" /  "<" /  ">" /  ":" /  "\" /  DQUOTE /  "/" /  "[" /  "]" /  "?" /  "{" /  "}" )

TEXT-UTF8-TRIM =
TEXT-UTF8char =
%x21‑7E /  UTF8‑NONASCII

UTF8-NONASCII =
%xC0-DF   1UTF8‑CONT /
%xE0-EF   2UTF8‑CONT /
%xF0-F7   3UTF8‑CONT /
%xF8-FB   4UTF8‑CONT /
%xFC-FD   5UTF8‑CONT

UTF8-CONT =
%x80-BF

escaped =
"%"   HEXDIG   HEXDIG

mark =
"-" /  "_" /  "." /  "!" /  "~" /  "*" /  "'" /  "(" /  ")"

reserved =
";" /  "/" /  "?" /  ":" /  "@" /  "&" /  "=" /  "+" /  "$" /  ","

unreserved =
alphanum /  mark
Top
OCTET =
%x00-FF
; 8 bits of data

CHAR =
%x01-7F
; any 7-bit US-ASCII character,
; excluding NUL

VCHAR =
%x21-7E
; visible (printing) characters

ALPHA =
%x41‑5A /  %x61‑7A
; A‑Z  /  a‑z

DIGIT =
%x30‑39
; 0-9

CTL =
%x00‑1F /  %x7F
; any US-ASCII control character:
; (octets 0 - 31) and DEL (127)

HTAB =
%x09
; horizontal tab

LF =
%x0A
; linefeed

CR =
%x0D
; carriage return

SP =
%x20
; space

DQUOTE =
%x22
; " (Double Quote)

BIT =
"0" /  "1"

HEXDIG =
DIGIT /  "A" /  "B" /  "C" /  "D" /  "E" /  "F"
; Note: according to the 'char-val' rule,
; letters (A-F) are case insensitive

CRLF =
CRLF
; Internet standard newline

WSP =
SP /  HTAB
; white space

LWSP =
*( WSP /  CRLFWSP )
; linear white space (past newline)

Top