|
|
|
|
ABNF for SIP -- Header Fields
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Accept-Contact | = |
( "Accept-Contact" / "a" )
HCOLON ac-value
*(COMMA ac-value)
; examples:
;
Accept-Contact: *;audio;require
;
Accept-Contact: *;video;explicit
;
Accept-Contact: *;methods="BYE";class="business";q=1.0
|
| ac-value | = |
"*"
*(SEMI ac-params)
|
| ac-params | = |
feature-param
/ req-param
/ explicit-param
/ generic-param
|
| req-param | = |
"require"
|
| explicit-param | = |
"explicit"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Accept-Language | = |
"Accept-Language"
HCOLON
[ language
*(COMMA language) ]
; example:
;
Accept-Language: da, en-gb;q=0.8, en;q=0.7
|
| language | = |
language-range
*(SEMI accept-param)
|
| language-range | = |
( ( 1*8ALPHA *( "-"
1*8ALPHA ) ) / "*" )
|
|
|
|
|
|
|
|
| Accept-Resource-Priority | = |
"Accept-Resource-Priority"
HCOLON [r-value
*(COMMA r-value)]
; example:
;
Accept-Resource-Priority: dsn.flash-override,
;
dsn.flash, dsn.immediate, dsn.priority, dsn.routine
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Allow | = |
"Allow"
HCOLON
[Method
*(COMMA
Method)]
; example:
;
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Authorization | = |
"Authorization"
HCOLON credentials
; example:
;
Authorization: Digest username="bob", realm="atlanta.example.com"
;
nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="",
;
uri="sips:ss2.biloxi.example.com",
;
response="dfe56131d1958046689d83306477ecc"
|
| credentials | = |
("Digest"
LWS
digest-response)
/ other-response
|
| digest-response | = |
dig-resp
*(COMMA dig-resp)
|
| dig-resp | = |
username
/ realm
/ nonce
/ digest-uri
/ dresponse
/ algorithm
/ cnonce
/ opaque
/ message-qop
/ nonce-count
/ auth-param
/ auts
|
| username | = |
"username"
EQUAL
username-value
|
| username-value | = |
quoted-string
|
| digest-uri | = |
"uri"
EQUAL
LDQUOT
digest-uri-value RDQUOT
|
| digest-uri-value | = |
request-uri
; equal to request-uri as specified by HTTP/1.1
|
| message-qop | = |
"qop"
EQUAL
qop-value
|
| cnonce | = |
"cnonce"
EQUAL
cnonce-value
|
| cnonce-value | = |
nonce-value
|
| nonce-count | = |
"nc"
EQUAL
nc-value
|
| nc-value | = |
8LHEX
|
| dresponse | = |
"response"
EQUAL
request-digest
|
| request-digest | = |
LDQUOT
32LHEX RDQUOT
|
| auth-param | = |
auth-param-name
EQUAL
( token
/ quoted-string )
|
| auth-param-name | = |
token
|
| other-response | = |
auth-scheme
LWS auth-param
*(COMMA auth-param)
|
| auth-scheme | = |
token
|
| auts | = |
"auts"
EQUAL
auts-param
|
| auts-param | = |
LDQUOT
auts-value RDQUOT
|
| auts-value | = |
<base64 encoding of AUTS>
|
|
|
|
|
|
|
|
| Call-ID | = |
( "Call-ID" / "i" )
HCOLON callid
; example:
;
Call-ID: 3848276298220188511@atlanta.example.com
|
|
|
|
|
|
|
|
| Call-Info | = |
"Call-Info"
HCOLON info
*(COMMA info)
; example:
;
Call-Info: <http://wwww.example.com/alice/photo.jpg> ;purpose=icon,
;
<http://www.example.com/alice/> ;purpose=info
|
| info | = |
LAQUOT
absoluteURI
RAQUOT
*( SEMI info-param )
|
| info-param | = |
( "purpose"
EQUAL
( "icon"
/ "info"
/ "card" / token ) )
/ generic-param
|
|
|
|
|
|
|
|
| Contact | = |
( "Contact" / "m" )
HCOLON
( STAR / (contact-param
*(COMMA
contact-param)))
; example:
;
Contact: <sip:bob@client.biloxi.example.com;transport=tcp>
|
| contact-param | = |
(name-addr
/ addr-spec) *( SEMI
contact-params)
|
| contact-params | = |
c-p-q /
c-p-expires /
feature-param /
contact-extension
|
| c-p-q | = |
"q" EQUAL
qvalue
|
| c-p-expires | = |
"expires" EQUAL
delta-seconds
|
| feature-param | = |
enc-feature-tag
[EQUAL
LDQUOT
LDQUOT (tag-value-list
/ string-value) RDQUOT]
|
| enc-feature-tag | = |
base-tags
/ other-tags
|
| 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
|
| 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
|
| contact-extension | = |
generic-param
|
|
|
|
|
|
|
|
| Content-Disposition | = |
"Content-Disposition"
HCOLON disp-type
*( SEMI disp-param )
; example:
;
Content-Disposition: session;handling=optional
|
| disp-type | = |
"render"
/ "session"
/ "icon"
/ "alert"
/ "aib"
/ "early-session"
/ disp-extension-token
; "aib" is defined in [ RFC3893]
; "early-session" is defined in [ RFC3959]
|
| disp-param | = |
handling-param
/ generic-param
|
| handling-param | = |
"handling"
EQUAL
( "optional"
/ "required"
/ other-handling )
|
| other-handling | = |
token
|
| disp-extension-token | = |
token
|
|
|
|
|
|
|
|
| Content-Encoding | = |
( "Content-Encoding" / "e" )
HCOLON
content-coding
*(COMMA content-coding)
; example:
;
Content-Encoding: gzip
|
| content-coding | = |
token
|
|
|
|
|
|
|
|
| Content-Language | = |
"Content-Language"
HCOLON
language-tag
*(COMMA language-tag)
; example:
;
Content-Language: fr
|
| language-tag | = |
primary-tag
*( "-"
subtag )
|
| primary-tag | = |
1*8ALPHA
|
| subtag | = |
1*8ALPHA
|
|
|
|
|
|
|
|
| Content-Length | = |
( "Content-Length" / "l" )
HCOLON 1*DIGIT
; example:
;
Content-Length: 0
|
|
|
|
|
|
|
|
| Content-Type | = |
( "Content-Type" / "c" )
HCOLON media-type
; example:
;
Content-Type: application/sdp
|
| media-type | = |
m-type SLASH
m-subtype *( SEMI
m-parameter)
|
| m-type | = |
discrete-type /
composite-type
|
| discrete-type | = |
"text"
/ "image"
/ "audio"
/ "video"
/ "application"
/ extension-token
|
| composite-type | = |
"message"
/ "multipart"
/ extension-token
|
| extension-token | = |
ietf-token
/ x-token
|
| ietf-token | = |
token
|
| x-token | = |
"x-" token
|
| m-subtype | = |
extension-token /
iana-token
|
| iana-token | = |
token
|
| m-parameter | = |
m-attribute EQUAL
m-value
|
| m-attribute | = |
token
|
| m-value | = |
token / quoted-string
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Date | = |
"Date"
HCOLON SIP-date
; example:
;
Date: Thu, 21 Feb 2002 13:02:03 GMT
|
| SIP-date | = |
rfc1123-date
|
| rfc1123-date | = |
wkday
","
SP date1
SP time
SP "GMT"
|
| date1 | = |
2DIGIT SP month SP 4DIGIT
; day month year (e.g., 02 Jun 1982)
|
| time | = |
2DIGIT ":"
2DIGIT ":" 2DIGIT
; 00:00:00 - 23:59:59
|
| wkday | = |
"Mon"
/ "Tue"
/ "Wed"
/ "Thu"
/ "Fri"
/ "Sat"
/ "Sun"
|
| month | = |
"Jan"
/ "Feb"
/ "Mar"
/ "Apr"
/ "May"
/ "Jun"
/ "Jul"
/ "Aug"
/ "Sep"
/ "Oct"
/ "Nov"
/ "Dec"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Event | = |
( "Event" / "o" )
HCOLON event-type
*( SEMI event-param )
; example:
;
Event: refer
|
| event-type | = |
event-package
*( "."
event-template )
|
| event-package | = |
token-nodot
|
| event-template | = |
token-nodot
|
| token-nodot | = |
1*( alphanum
/ "-"
/ "!"
/ "%"
/ "*"
/ "_"
/ "+"
/ "`"
/ "'"
/ "~" )
|
| event-param | = |
generic-param
/ ( "id" EQUAL
token )
/ call-ident
/ from-tag
/ to-tag
/ with-sessd
; defined in [ RFC4235]
|
| call-ident | = |
"call-id"
EQUAL
( token
/ DQUOTE
callid
DQUOTE )
; NOTE: any DQUOTEs inside callid MUST be escaped!
|
| with-sessd | = |
"include-session-description"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| From | = |
( "From" / "f" )
HCOLON from-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 )
*( SEMI
from-param )
|
| from-param | = |
tag-param /
generic-param
|
| tag-param | = |
"tag"
EQUAL
token
|
|
|
|
|
|
|
|
| History-Info | = |
"History-Info"
HCOLON hi-entry
*(COMMA hi-entry)
; example:
;
History-Info:<sip:UserA@ims.example.com?Reason=SIP%3B\
;
cause%3D302>;index=1;foo=bar
|
| hi-entry | = |
hi-targeted-to-uri
*( SEMI hi-param )
|
| hi-targeted-to-uri | = |
name-addr
|
| hi-param | = |
hi-index
/ hi-extension
|
| hi-index | = |
"index" EQUAL
1*DIGIT *("." 1*DIGIT)
|
| hi-extension | = |
generic-param
|
|
|
|
|
|
|
|
| Identity | = |
"Identity"
HCOLON signed-identity-digest
|
| signed-identity-digest | = |
LDQUOT 32LHEX RDQUOT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| In-Reply-To | = |
"In-Reply-To"
HCOLON
callid
*(COMMA
callid)
; example:
;
In-Reply-To: 70710@saturn.bell-tel.com, 17320@saturn.bell-tel.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Max-Forwards | = |
"Max-Forwards"
HCOLON 1*DIGIT
; example:
;
Max-Forwards: 69
|
|
|
|
|
|
|
|
| MIME-Version | = |
"MIME-Version"
HCOLON 1*DIGIT "." 1*DIGIT
; example:
;
MIME-Version: 1.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Path | = |
"Path"
HCOLON path-value
*(COMMA path-value)
; example:
;
Path: <sip:P3.EXAMPLEHOME.COM;lr>,<sip:P1.EXAMPLEVISITED.COM;lr>
|
| path-value | = |
name-addr
*( SEMI rr-param )
|
|
|
|
|
|
|
|
| Priority | = |
"Priority"
HCOLON priority-value
; example:
;
Priority: emergency
|
| priority-value | = |
"emergency"
/ "urgent"
/ "normal"
/ "non-urgent"
/ other-priority
|
| other-priority | = |
token
|
|
|
|
|
|
|
|
| Privacy-hdr | = |
"Privacy"
HCOLON priv-value
*(";"
priv-value)
; example:
;
Privacy: id
|
| priv-value | = |
"header"
/ "session"
/ "user"
/ "none"
/ "critical"
/ "id"
/ "history"
/ token
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Proxy-Authorization | = |
"Proxy-Authorization"
HCOLON credentials
; example:
;
Proxy-Authorization: Digest username="alice",
;
realm="atlanta.example.com",
;
nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="",
;
uri="sip:bob@biloxi.example.com",
;
response="42ce3cef44b22f50c6a6071bc8"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Reason | = |
"Reason"
HCOLON reason-value
*(COMMA reason-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-value | = |
protocol
*(SEMI reason-params)
|
| protocol | = |
"SIP"
/ "Q.850"
/ "Preemption" / token
|
| reason-params | = |
protocol-cause
/ reason-text
/ reason-extension
|
| protocol-cause | = |
"cause"
EQUAL
"cause
|
| cause | = |
1*DIGIT
|
| reason-text | = |
"text" EQUAL
quoted-string
|
| reason-extension | = |
generic-param
|
|
|
|
|
|
|
|
| Record-Route | = |
"Record-Route"
HCOLON rec-route
*(COMMA
rec-route)
; example:
;
Record-Route: <sip:ss2.biloxi.example.com;lr>,
;
<sip:ss1.atlanta.example.com;lr>
|
| rec-route | = |
name-addr
*( SEMI
rr-param )
|
| rr-param | = |
generic-param
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Refer-To | = |
( "Refer-To" / "r" )
HCOLON ( name-addr
/ addr-spec )
*(SEMI refer-param)
|
| refer-param | = |
generic-param
/ feature-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
|
|
|
|
|
|
|
|
| Referred-By | = |
( "Referred-By" / "b" )
HCOLON
referrer-uri
*( SEMI
(referredby-id-param
/ generic-param) )
; example:
;
Referred-By: <sip:referrer@referrer.example>
;
;cid="20398823.2UWQFN309shb3@referrer.example"
|
| referrer-uri | = |
( name-addr
/ addr-spec )
|
| referredby-id-param | = |
"cid"
EQUAL
sip-clean-msg-id
|
| sip-clean-msg-id | = |
LDQUOT dot-atom
"@"
(dot-atom
/ host) RDQUOT
|
| dot-atom | = |
atom
*( "."
atom )
|
| atom | = |
1*( alphanum
/ "-"
/ "!"
/ "%"
/ "*"
/ "_"
/ "+"
/ "'"
/ "`"
/ "~" )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Replaces | = |
"Replaces"
HCOLON
callid
*(SEMI
replaces-param)
; example:
;
Replaces: 425928@bobster.example.org;to-tag=7743;from-tag=6472
|
| replaces-param | = |
to-tag
/ from-tag
/ early-flag
/ generic-param
|
| to-tag | = |
"to-tag" EQUAL
token
|
| from-tag | = |
"from-tag" EQUAL
token
|
| early-flag | = |
"early-only"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Request-Disposition | = |
( "Request-Disposition" / "d" )
HCOLON directive
*(COMMA directive)
; example:
;
Request-Disposition: proxy, recurse, parallel
|
| directive | = |
proxy-directive
/ cancel-directive
/ fork-directive
/ recurse-directive
/ parallel-directive
/ queue-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"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Resource-Priority | = |
"Resource-Priority"
HCOLON r-value
*(COMMA r-value)
; example:
;
Resource-Priority: wps.3, dsn.flash
|
| r-value | = |
namespace
"."
r-priority
|
| namespace | = |
token-nodot
|
| r-priority | = |
token-nodot
|
| token-nodot | = |
1*( alphanum
/ "-"
/ "!"
/ "%"
/ "*"
/ "_"
/ "+"
/ "`"
/ "'"
/ "~" )
|
|
|
|
|
|
|
|
|
|