HTML Version of ABNF for <sip_3261.abnf>

This HTML version of ABNF is automatically generated using Jabnf. The protocol syntax is presented in ABNF according to RFC 2234 This version of ABNF is for informational purposes only. It is intended as a tool to help read the ABNF. Errors may have been introduced in translating to HTML. The original ABNF2HTML tool is implemeted by perl and provited by Inet Technologies, Inc.

COPYRIGHT 2005-2007 by Juphoon System Software, Inc. All rights reserved.
Written by Jalor You. For the ABNF parser technical support please mail to vik.qian@juphoon.com

This file consists of:

ABNF Specification

The productions for the ABNF specification are provided below.

ABNF Productions
Rule Name Production or Comment

ALPHA

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

CR

= %x0D   ; carriage return

CRLF

= CR LF   ; Internet standard newline

DIGIT

= %x30-39   ; 0-9

DQUOTE

= %x22   ; " (Double Quote)

HEXDIG

= DIGIT / "A" / "B" / "C" / "D" / "E" / "F"

HTAB

= %x09   ; horizontal tab

LF

= %x0A   ; linefeed

OCTET

= %x00-FF   ; 8 bits of data

SP

= %x20   ; space

WSP

= SP / HTAB

alphanum

= ALPHA / DIGIT

reserved

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

unreserved

= alphanum / mark

mark

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

escaped

= "%" HEXDIG HEXDIG

LWS

= [*WSP CRLF] 1*WSP   ; linear whitespace

SWS

= [LWS]   ; sep whitespace

HCOLON

= *(SP / HTAB) ":" SWS

TEXT-UTF8-TRIM

= 1*TEXT-UTF8char *(*LWS TEXT-UTF8char)

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

LHEX

= DIGIT / %x61-66   ;lowercase a-f

token

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

word

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

STAR

= SWS "*" SWS   ; asterisk

SLASH

= SWS "/" SWS   ; slash

EQUAL

= SWS "=" SWS   ; equal

LPAREN

= SWS "(" SWS   ; left parenthesis

RPAREN

= SWS ")" SWS   ; right parenthesis

RAQUOT

= ">" SWS   ; right angle quote

LAQUOT

= SWS "<"   ; left angle quote

COMMA

= SWS "," SWS   ; comma

SEMI

= SWS ";" SWS   ; semicolon

COLON

= SWS ":" SWS   ; colon

LDQUOT

= SWS DQUOTE   ; open double quotation mark

RDQUOT

= DQUOTE SWS   ; close double quotation mark

comment

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

ctext

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

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)

SIP-URI

= "sip:" [userinfo] hostport uri-parameters [headers]

SIPS-URI

= "sips:" [userinfo] hostport uri-parameters [headers]

userinfo

= (user / telephone-subscriber) [":" password] "@"

user

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

user-unreserved

= "&" / "=" / "+" / "$" / "," / ";" / "?" / "/"

password

= *(unreserved / escaped / "&" / "=" / "+" / "$" / ",")

hostport

= host [":" port]

host

= hostname / IPv4address / IPv6reference

hostname

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

domainlabel

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

toplabel

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

IPv4address

= 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT

IPv6reference

= "[" IPv6address "]"

IPv6address

= hexpart [":" IPv4address]

hexpart

= hexseq / hexseq "::" [hexseq] / "::" [hexseq]

hexseq

= hex4 *(":" hex4)

hex4

= 1*4HEXDIG

port

= 1*DIGIT

uri-parameters

= *(";" uri-parameter)

uri-parameter

= transport-param / user-param / method-param / ttl-param / maddr-param / lr-param / other-param

transport-param

= "transport=" ("udp" / "tcp" / "sctp" / "tls" / other-transport)

other-transport

= token

user-param

= "user=" ("phone" / "ip" / other-user)

other-user

= token

method-param

= "method=" Method

ttl-param

= "ttl=" ttl

maddr-param

= "maddr=" host

lr-param

= "lr"

other-param

= pname ["=" pvalue]

pname

= 1*paramchar

pvalue

= 1*paramchar

paramchar

= param-unreserved / unreserved / escaped

param-unreserved

= "[" / "]" / "/" / ":" / "&" / "+" / "$"

headers

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

header

= hname "=" hvalue

hname

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

hvalue

= *(hnv-unreserved / unreserved / escaped)

hnv-unreserved

= "[" / "]" / "/" / "?" / ":" / "+" / "$"
SIP-message = Request / Response

Request

= Request-Line *(message-header) CRLF [message-body]

Request-Line

= Method SP Request-URI SP SIP-Version CRLF

Request-URI

= SIP-URI / SIPS-URI / absoluteURI

absoluteURI

= scheme ":" (hier-part / opaque-part)

hier-part

= (net-path / abs-path) ["?" query]

net-path

= "//" authority [abs-path]

abs-path

= "/" path-segments

opaque-part

= uric-no-slash *uric

uric

= reserved / unreserved / escaped

uric-no-slash

= unreserved / escaped / ";" / "?" / ":" / "@" / "&" / "=" / "+" / "$" / ","

path-segments

= segment *("/" segment)

segment

= *pchar *(";" param)

param

= *pchar

pchar

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

scheme

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

authority

= srvr / reg-name

srvr

= [[userinfo "@"] hostport]

reg-name

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

query

= *uric

SIP-Version

= "SIP" "/" 1*DIGIT "." 1*DIGIT

message-header

= (Accept / Accept-Encoding / Accept-Language / Alert-Info / Allow / Authentication-Info / Authorization / Call-ID / Call-Info / Contact / Content-Disposition / Content-Encoding / Content-Language / Content-Length / Content-Type / CSeq / Date / Error-Info / Expires / From / In-Reply-To / Max-Forwards / MIME-Version / Min-Expires / Organization / Priority / Proxy-Authenticate / Proxy-Authorization / Proxy-Require / Record-Route / Reply-To / Require / Retry-After / Route / Server / Subject / Supported / Timestamp / To / Unsupported / User-Agent / Via / Warning / WWW-Authenticate / extension-header) CRLF

INVITEm

= %x49.4E.56.49.54.45   ; INVITE in caps

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

Method

= INVITEm / ACKm / OPTIONSm / BYEm / CANCELm / REGISTERm / extension-method

extension-method

= token

Response

= Status-Line *(message-header) CRLF [message-body]

Status-Line

= SIP-Version SP Status-Code SP Reason-Phrase CRLF

Status-Code

= Informational / Redirection / Success / Client-Error / Server-Error / Global-Failure / extension-code

extension-code

= 3DIGIT

Reason-Phrase

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

Informational

= "100"   ; Trying
/ "180"   ; Ringing
/ "181"   ; Call Is Being Forwarded
/ "182"   ; Queued
/ "183"   ; Session Progress

Success

= "200"   ; OK

Redirection

= "300"   ; Multiple Choices
/ "301"   ; Moved Permanently
/ "302"   ; Moved Temporarily
/ "305"   ; Use Proxy
/ "380"   ; Alternative Service

Client-Error

= "400"   ; Bad Request
/ "401"   ; Unauthorized
/ "402"   ; Payment Required
/ "403"   ; Forbidden
/ "404"   ; Not Found
/ "405"   ; Method Not Allowed
/ "406"   ; Not Acceptable
/ "407"   ; Proxy Authentication Required
/ "408"   ; Request Timeout
/ "410"   ; Gone
/ "413"   ; Request Entity Too Large
/ "414"   ; Request-URI Too Large
/ "415"   ; Unsupported Media Type
/ "416"   ; Unsupported URI Scheme
/ "420"   ; Bad Extension
/ "421"   ; Extension Required
/ "423"   ; Interval Too Brief
/ "480"   ; Temporarily not available
/ "481"   ; Call Leg/Transaction Does Not Exist
/ "482"   ; Loop Detected
/ "483"   ; Too Many Hops
/ "484"   ; Address Incomplete
/ "485"   ; Ambiguous
/ "486"   ; Busy Here
/ "487"   ; Request Terminated
/ "488"   ; Not Acceptable Here
/ "491"   ; Request Pending
/ "493"   ; Undecipherable

Server-Error

= "500"   ; Internal Server Error
/ "501"   ; Not Implemented
/ "502"   ; Bad Gateway
/ "503"   ; Service Unavailable
/ "504"   ; Server Time-out
/ "505"   ; SIP Version not supported
/ "513"   ; Message Too Large

Global-Failure

= "600"   ; Busy Everywhere
/ "603"   ; Decline
/ "604"   ; Does not exist anywhere
/ "606"   ; Not Acceptable

Accept

= "Accept" HCOLON [accept-range *(COMMA accept-range)]

accept-range

= media-range *(SEMI accept-param)

media-range

= ("*/*" / (m-type SLASH "*") / (m-type SLASH m-subtype)) *(SEMI m-parameter)

accept-param

= ("q" EQUAL qvalue) / generic-param

qvalue

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

generic-param

= token [EQUAL gen-value]

gen-value

= token / host / quoted-string

Accept-Encoding

= "Accept-Encoding" HCOLON [encoding *(COMMA encoding)]

encoding

= codings *(SEMI accept-param)

codings

= content-coding / "*"

content-coding

= token

Accept-Language

= "Accept-Language" HCOLON [language *(COMMA language)]

language

= language-range *(SEMI accept-param)

language-range

= ((1*8ALPHA *("-" 1*8ALPHA)) / "*")

Alert-Info

= "Alert-Info" HCOLON alert-param *(COMMA alert-param)

alert-param

= LAQUOT absoluteURI RAQUOT *(SEMI generic-param)

Allow

= "Allow" HCOLON [Method *(COMMA Method)]

Authorization

= "Authorization" HCOLON credentials

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

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

Authentication-Info

= "Authentication-Info" HCOLON ainfo *(COMMA ainfo)

ainfo

= nextnonce / message-qop / response-auth / cnonce / nonce-count

nextnonce

= "nextnonce" EQUAL nonce-value

response-auth

= "rspauth" EQUAL response-digest

response-digest

= LDQUOT *LHEX RDQUOT

Call-ID

= ("Call-ID" / "i") HCOLON callid

callid

= word ["@" word]

Call-Info

= "Call-Info" HCOLON info *(COMMA 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)))

contact-param

= (name-addr / addr-spec) *(SEMI contact-params)

name-addr

= [display-name] LAQUOT addr-spec RAQUOT

addr-spec

= SIP-URI / SIPS-URI / absoluteURI

display-name

= *(token LWS) / quoted-string

contact-params

= c-p-q / c-p-expires / contact-extension

c-p-q

= "q" EQUAL qvalue

c-p-expires

= "expires" EQUAL delta-seconds

contact-extension

= generic-param

delta-seconds

= 1*DIGIT

Content-Disposition

= "Content-Disposition" HCOLON disp-type *(SEMI disp-param)

disp-type

= "render" / "session" / "icon" / "alert" / disp-extension-token

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)

Content-Language

= "Content-Language" HCOLON language-tag *(COMMA language-tag)

language-tag

= primary-tag *("-" subtag)

primary-tag

= 1*8ALPHA

subtag

= 1*8ALPHA

Content-Length

= ("Content-Length" / "l") HCOLON 1*DIGIT

Content-Type

= ("Content-Type" / "c") HCOLON media-type

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

CSeq

= "CSeq" HCOLON 1*DIGIT LWS Method

Date

= "Date" HCOLON SIP-date

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"

Error-Info

= "Error-Info" HCOLON error-uri *(COMMA error-uri)

error-uri

= LAQUOT absoluteURI RAQUOT *(SEMI generic-param)

Expires

= "Expires" HCOLON delta-seconds

From

= ("From" / "f") HCOLON from-spec

from-spec

= (name-addr / addr-spec) *(SEMI from-param)

from-param

= tag-param / generic-param

tag-param

= "tag" EQUAL token

In-Reply-To

= "In-Reply-To" HCOLON callid *(COMMA callid)

Max-Forwards

= "Max-Forwards" HCOLON 1*DIGIT

MIME-Version

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

Min-Expires

= "Min-Expires" HCOLON delta-seconds

Organization

= "Organization" HCOLON [TEXT-UTF8-TRIM]

Priority

= "Priority" HCOLON priority-value

priority-value

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

other-priority

= token

Proxy-Authenticate

= "Proxy-Authenticate" HCOLON challenge

challenge

= ("Digest" LWS digest-cln *(COMMA digest-cln)) / other-challenge

other-challenge

= auth-scheme LWS auth-param *(COMMA auth-param)

digest-cln

= realm / domain / nonce / opaque / stale / algorithm / qop-options / auth-param

realm

= "realm" EQUAL realm-value

realm-value

= quoted-string

domain

= "domain" EQUAL LDQUOT URI *(1*SP URI) RDQUOT

URI

= absoluteURI / abs-path

nonce

= "nonce" EQUAL nonce-value

nonce-value

= quoted-string

opaque

= "opaque" EQUAL quoted-string

stale

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

algorithm

= "algorithm" EQUAL ("MD5" / "MD5-sess" / token)

qop-options

= "qop" EQUAL LDQUOT qop-value *("," qop-value) RDQUOT

qop-value

= "auth" / "auth-int" / token

Proxy-Authorization

= "Proxy-Authorization" HCOLON credentials

Proxy-Require

= "Proxy-Require" HCOLON option-tag *(COMMA option-tag)

option-tag

= token

Record-Route

= "Record-Route" HCOLON rec-route *(COMMA rec-route)

rec-route

= name-addr *(SEMI rr-param)

rr-param

= generic-param

Reply-To

= "Reply-To" HCOLON rplyto-spec

rplyto-spec

= (name-addr / addr-spec) *(SEMI rplyto-param)

rplyto-param

= generic-param

Require

= "Require" HCOLON option-tag *(COMMA option-tag)

Retry-After

= "Retry-After" HCOLON delta-seconds [comment] *(SEMI retry-param)

retry-param

= ("duration" EQUAL delta-seconds) / generic-param

Route

= "Route" HCOLON route-param *(COMMA route-param)

route-param

= name-addr *(SEMI rr-param)

Server

= "Server" HCOLON server-val *(LWS server-val)

server-val

= product / comment

product

= token [SLASH product-version]

product-version

= token

Subject

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

Supported

= ("Supported" / "k") HCOLON [option-tag *(COMMA option-tag)]

Timestamp

= "Timestamp" HCOLON 1*(DIGIT) ["." *(DIGIT)] [LWS delay]

delay

= *(DIGIT) ["." *(DIGIT)]

To

= ("To" / "t") HCOLON (name-addr / addr-spec) *(SEMI to-param)

to-param

= tag-param / generic-param

Unsupported

= "Unsupported" HCOLON option-tag *(COMMA option-tag)

User-Agent

= "User-Agent" HCOLON server-val *(LWS server-val)

Via

= ("Via" / "v") HCOLON via-parm *(COMMA via-parm)

via-parm

= sent-protocol LWS sent-by *(SEMI via-params)

via-params

= via-ttl / via-maddr / via-received / via-branch / via-extension

via-ttl

= "ttl" EQUAL ttl

via-maddr

= "maddr" EQUAL host

via-received

= "received" EQUAL (IPv4address / IPv6address)

via-branch

= "branch" EQUAL token

via-extension

= generic-param

sent-protocol

= protocol-name SLASH protocol-version SLASH transport

protocol-name

= "SIP" / token

protocol-version

= token

transport

= "UDP" / "TCP" / "TLS" / "SCTP" / other-transport

sent-by

= host [COLON port]

ttl

= 1*3DIGIT   ; 0 to 255

Warning

= "Warning" HCOLON warning-value *(COMMA warning-value)

warning-value

= warn-code SP warn-agent SP warn-text

warn-code

= 3DIGIT

warn-agent

= hostport / pseudonym   ; the name or pseudonym of the server adding
   ; the Warning header, for use in debugging

warn-text

= quoted-string

pseudonym

= token

WWW-Authenticate

= "WWW-Authenticate" HCOLON challenge

extension-header

= header-name HCOLON header-value

header-name

= token

header-value

= *(TEXT-UTF8char / UTF8-CONT / LWS)

message-body

= *OCTET   ;;;;;;;;;;;;;;;;;;;
   ; from RFC2806
   ;;;;;;;;;;;;;;;;;;;

telephone-subscriber

= global-phone-number / local-phone-number

global-phone-number

= "+" base-phone-number [isdn-subaddress] [post-dial] *(area-specifier / service-provider / future-extension)

base-phone-number

= 1*phonedigit

local-phone-number

= 1*(phonedigit / dtmf-digit / pause-character) [isdn-subaddress] [post-dial] area-specifier *(area-specifier / service-provider / future-extension)

isdn-subaddress

= ";isub=" 1*phonedigit

post-dial

= ";postd=" 1*(phonedigit / dtmf-digit / pause-character)

area-specifier

= ";" phone-context-tag "=" phone-context-ident

phone-context-tag

= "phone-context"

phone-context-ident

= network-prefix / private-prefix

network-prefix

= global-network-prefix / local-network-prefix

global-network-prefix

= "+" 1*phonedigit

local-network-prefix

= 1*(phonedigit / dtmf-digit / pause-character)

private-prefix

= (%x21-22 / %x24-27 / %x2C / %x2F / %x3A / %x3C-40 / %x45-4F / %x51-56 / %x58-60 / %x65-6F / %x71-76 / %x78-7E) *(%x21-3A / %x3C-7E)   ; Characters in URLs must follow escaping rules
   ; as explained in [RFC2396]
   ; See sections 1.2 and 2.5.2

service-provider

= ";" provider-tag "=" provider-hostname

provider-tag

= "tsp"

provider-hostname

= domain   ; is defined in [RFC1035]
   ; See section 2.5.10

future-extension

= ";" 1*(token-char) ["=" ((1*(token-char) ["?" 1*(token-char)]) / quoted-string)]   ; See section 2.5.11 and [RFC2543]

token-char

= (%x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39 / %x41-5A / %x5E-7A / %x7C / %x7E)   ; Characters in URLs must follow escaping rules
   ; as explained in [RFC2396]
   ; See sections 1.2 and 2.5.11

phonedigit

= DIGIT / visual-separator

visual-separator

= "-" / "." / "(" / ")"

pause-character

= one-second-pause / wait-for-dial-tone

one-second-pause

= "p"

wait-for-dial-tone

= "w"

dtmf-digit

= "*" / "#" / "A" / "B" / "C" / "D"   ;;;;;;;;;;;;;;;;;;;
   ; RFC2806 End
   ;;;;;;;;;;;;;;;;;;;

Symbol Cross Reference List

Following is a cross-reference list for the ABNF.On the left are references to productions, on the right are links to the rules in which those productions are referenced.

Symbol Cross-Reference Table
Reference Productions which Reference this Symbol
ALPHA alphanum, toplabel, toplabel, scheme, scheme, language-range, language-range, primary-tag, subtag
CR CRLF
CRLF LWS, Request, Request-Line, message-header, Response, Status-Line
DIGIT HEXDIG, alphanum, LHEX, IPv4address, IPv4address, IPv4address, IPv4address, port, scheme, SIP-Version, SIP-Version, extension-code, qvalue, delta-seconds, Content-Length, CSeq, date1, date1, time, time, time, Max-Forwards, MIME-Version, MIME-Version, Timestamp, Timestamp, delay, delay, ttl, warn-code, phonedigit
DQUOTE word, LDQUOT, RDQUOT, quoted-string, quoted-string
HEXDIG escaped, escaped, hex4
HTAB WSP, HCOLON, Reason-Phrase
LF CRLF
OCTET message-body
SP WSP, HCOLON, Request-Line, Request-Line, Status-Line, Status-Line, Reason-Phrase, rfc1123-date, rfc1123-date, rfc1123-date, date1, date1, domain, warning-value, warning-value
WSP LWS, LWS
alphanum unreserved, token, word, domainlabel, domainlabel, domainlabel, domainlabel, toplabel, toplabel
reserved uric, Reason-Phrase
unreserved user, password, paramchar, hname, hvalue, uric, uric-no-slash, pchar, reg-name, Reason-Phrase
mark unreserved
escaped user, password, paramchar, hname, hvalue, uric, uric-no-slash, pchar, reg-name, Reason-Phrase
LWS SWS, TEXT-UTF8-TRIM, ctext, qdtext, credentials, other-response, display-name, CSeq, challenge, other-challenge, Server, Timestamp, User-Agent, via-parm, header-value
SWS HCOLON, STAR, STAR, SLASH, SLASH, EQUAL, EQUAL, LPAREN, LPAREN, RPAREN, RPAREN, RAQUOT, LAQUOT, COMMA, COMMA, SEMI, SEMI, COLON, COLON, LDQUOT, RDQUOT, quoted-string
HCOLON Accept, Accept-Encoding, Accept-Language, Alert-Info, Allow, Authorization, Authentication-Info, Call-ID, Call-Info, Contact, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-Type, CSeq, Date, Error-Info, Expires, From, In-Reply-To, Max-Forwards, MIME-Version, Min-Expires, Organization, Priority, Proxy-Authenticate, Proxy-Authorization, Proxy-Require, Record-Route, Reply-To, Require, Retry-After, Route, Server, Subject, Supported, Timestamp, To, Unsupported, User-Agent, Via, Warning, WWW-Authenticate, extension-header
TEXT-UTF8-TRIM Organization, Subject
TEXT-UTF8char TEXT-UTF8-TRIM, TEXT-UTF8-TRIM, header-value
UTF8-NONASCII TEXT-UTF8char, ctext, qdtext, Reason-Phrase
UTF8-CONT UTF8-NONASCII, UTF8-NONASCII, UTF8-NONASCII, UTF8-NONASCII, UTF8-NONASCII, Reason-Phrase, header-value
LHEX nc-value, request-digest, response-digest
token other-transport, other-user, extension-method, generic-param, gen-value, content-coding, auth-param, auth-param-name, auth-scheme, info-param, display-name, other-handling, disp-extension-token, ietf-token, x-token, iana-token, m-attribute, m-value, tag-param, other-priority, algorithm, qop-value, option-tag, product, product-version, via-branch, protocol-name, protocol-version, pseudonym, header-name
word callid, callid
STAR Contact
SLASH media-range, media-range, media-type, product, sent-protocol, sent-protocol
EQUAL accept-param, generic-param, username, digest-uri, message-qop, cnonce, nonce-count, dresponse, auth-param, nextnonce, response-auth, info-param, c-p-q, c-p-expires, handling-param, m-parameter, tag-param, realm, domain, nonce, opaque, stale, algorithm, qop-options, retry-param, via-ttl, via-maddr, via-received, via-branch
LPAREN comment
RPAREN comment
RAQUOT alert-param, info, name-addr, error-uri
LAQUOT alert-param, info, name-addr, error-uri
COMMA Accept, Accept-Encoding, Accept-Language, Alert-Info, Allow, digest-response, other-response, Authentication-Info, Call-Info, Contact, Content-Encoding, Content-Language, Error-Info, In-Reply-To, challenge, other-challenge, Proxy-Require, Record-Route, Require, Route, Supported, Unsupported, Via, Warning
SEMI accept-range, media-range, encoding, language, alert-param, info, contact-param, Content-Disposition, media-type, error-uri, from-spec, rec-route, rplyto-spec, Retry-After, route-param, To, via-parm
COLON sent-by
LDQUOT digest-uri, request-digest, response-digest, domain, qop-options
RDQUOT digest-uri, request-digest, response-digest, domain, qop-options
comment comment, Retry-After, server-val
ctext comment
quoted-string gen-value, username-value, auth-param, display-name, m-value, realm-value, nonce-value, opaque, warn-text, future-extension
qdtext quoted-string
quoted-pair comment, quoted-string
SIP-URI Request-URI, addr-spec
SIPS-URI Request-URI, addr-spec
userinfo SIP-URI, SIPS-URI, srvr
user userinfo
user-unreserved user
password userinfo
hostport SIP-URI, SIPS-URI, srvr, warn-agent
host hostport, maddr-param, gen-value, via-maddr, sent-by
hostname host
domainlabel hostname
toplabel hostname
IPv4address host, IPv6address, via-received
IPv6reference host
IPv6address IPv6reference, via-received
hexpart IPv6address
hexseq hexpart, hexpart, hexpart, hexpart
hex4 hexseq, hexseq
port hostport, sent-by
uri-parameters SIP-URI, SIPS-URI
uri-parameter uri-parameters
transport-param uri-parameter
other-transport transport-param, transport
user-param uri-parameter
other-user user-param
method-param uri-parameter
ttl-param uri-parameter
maddr-param uri-parameter
lr-param uri-parameter
other-param uri-parameter
pname other-param
pvalue other-param
paramchar pname, pvalue
param-unreserved paramchar
headers SIP-URI, SIPS-URI
header headers, headers
hname header
hvalue header
hnv-unreserved hname, hvalue
Request SIP-message
Request-Line Request
Request-URI Request-Line, digest-uri-value
absoluteURI Request-URI, alert-param, info, addr-spec, error-uri, URI
hier-part absoluteURI
net-path hier-part
abs-path hier-part, net-path, URI
opaque-part absoluteURI
uric opaque-part, query
uric-no-slash opaque-part
path-segments abs-path
segment path-segments, path-segments
param segment
pchar segment, param
scheme absoluteURI
authority net-path
srvr authority
reg-name authority
query hier-part
SIP-Version Request-Line, Status-Line
message-header Request, Response
INVITEm Method
ACKm Method
OPTIONSm Method
BYEm Method
CANCELm Method
REGISTERm Method
Method method-param, Request-Line, Allow, Allow, CSeq
extension-method Method
Response SIP-message
Status-Line Response
Status-Code Status-Line
extension-code Status-Code
Reason-Phrase Status-Line
Informational Status-Code
Success Status-Code
Redirection Status-Code
Client-Error Status-Code
Server-Error Status-Code
Global-Failure Status-Code
Accept message-header
accept-range Accept, Accept
media-range accept-range
accept-param accept-range, encoding, language
qvalue accept-param, c-p-q
generic-param accept-param, alert-param, info-param, contact-extension, disp-param, error-uri, from-param, rr-param, rplyto-param, retry-param, to-param, via-extension
gen-value generic-param
Accept-Encoding message-header
encoding Accept-Encoding, Accept-Encoding
codings encoding
content-coding codings, Content-Encoding, Content-Encoding
Accept-Language message-header
language Accept-Language, Accept-Language
language-range language
Alert-Info message-header
alert-param Alert-Info, Alert-Info
Allow message-header
Authorization message-header
credentials Authorization, Proxy-Authorization
digest-response credentials
dig-resp digest-response, digest-response
username dig-resp
username-value username
digest-uri dig-resp
digest-uri-value digest-uri
message-qop dig-resp, ainfo
cnonce dig-resp, ainfo
cnonce-value cnonce
nonce-count dig-resp, ainfo
nc-value nonce-count
dresponse dig-resp
request-digest dresponse
auth-param dig-resp, other-response, other-response, other-challenge, other-challenge, digest-cln
auth-param-name auth-param
other-response credentials
auth-scheme other-response, other-challenge
Authentication-Info message-header
ainfo Authentication-Info, Authentication-Info
nextnonce ainfo
response-auth ainfo
response-digest response-auth
Call-ID message-header
callid Call-ID, In-Reply-To, In-Reply-To
Call-Info message-header
info Call-Info, Call-Info
info-param info
Contact message-header
contact-param Contact, Contact
name-addr contact-param, from-spec, rec-route, rplyto-spec, route-param, To
addr-spec contact-param, name-addr, from-spec, rplyto-spec, To
display-name name-addr
contact-params contact-param
c-p-q contact-params
c-p-expires contact-params
contact-extension contact-params
delta-seconds c-p-expires, Expires, Min-Expires, Retry-After, retry-param
Content-Disposition message-header
disp-type Content-Disposition
disp-param Content-Disposition
handling-param disp-param
other-handling handling-param
disp-extension-token disp-type
Content-Encoding message-header
Content-Language message-header
language-tag Content-Language, Content-Language
primary-tag language-tag
subtag language-tag
Content-Length message-header
Content-Type message-header
media-type Content-Type