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
m-type media-range, media-range, media-type
discrete-type m-type
composite-type m-type
extension-token discrete-type, composite-type, m-subtype
ietf-token extension-token
x-token extension-token
m-subtype media-range, media-type
iana-token m-subtype
m-parameter media-range, media-type
m-attribute m-parameter
m-value m-parameter
CSeq message-header
Date message-header
SIP-date Date
rfc1123-date SIP-date
date1 rfc1123-date
time rfc1123-date
wkday rfc1123-date
month date1
Error-Info message-header
error-uri Error-Info, Error-Info
Expires message-header
From message-header
from-spec From
from-param from-spec
tag-param from-param, to-param
In-Reply-To message-header
Max-Forwards message-header
MIME-Version message-header
Min-Expires message-header
Organization message-header
Priority message-header
priority-value Priority
other-priority priority-value
Proxy-Authenticate message-header
challenge Proxy-Authenticate, WWW-Authenticate
other-challenge challenge
digest-cln challenge, challenge
realm dig-resp, digest-cln
realm-value realm
domain digest-cln, provider-hostname
URI domain, domain
nonce dig-resp, digest-cln
nonce-value cnonce-value, nextnonce, nonce
opaque dig-resp, digest-cln
stale digest-cln
algorithm dig-resp, digest-cln
qop-options digest-cln
qop-value message-qop, qop-options, qop-options
Proxy-Authorization message-header
Proxy-Require message-header
option-tag Proxy-Require, Proxy-Require, Require, Require, Supported, Supported, Unsupported, Unsupported
Record-Route message-header
rec-route Record-Route, Record-Route
rr-param rec-route, route-param
Reply-To message-header
rplyto-spec Reply-To
rplyto-param rplyto-spec
Require message-header
Retry-After message-header
retry-param Retry-After
Route message-header
route-param Route, Route
Server message-header
server-val Server, Server, User-Agent, User-Agent
product server-val
product-version product
Subject message-header
Supported message-header
Timestamp message-header
delay Timestamp
To message-header
to-param To
Unsupported message-header
User-Agent message-header
Via message-header
via-parm Via, Via
via-params via-parm
via-ttl via-params
via-maddr via-params
via-received via-params
via-branch via-params
via-extension via-params
sent-protocol via-parm
protocol-name sent-protocol
protocol-version sent-protocol
transport sent-protocol
sent-by via-parm
ttl ttl-param, via-ttl
Warning message-header
warning-value Warning, Warning
warn-code warning-value
warn-agent warning-value
warn-text warning-value
pseudonym warn-agent
WWW-Authenticate message-header
extension-header message-header
header-name extension-header
header-value extension-header
message-body Request, Response
telephone-subscriber userinfo
global-phone-number telephone-subscriber
base-phone-number global-phone-number
local-phone-number telephone-subscriber
isdn-subaddress global-phone-number, local-phone-number
post-dial global-phone-number, local-phone-number
area-specifier global-phone-number, local-phone-number, local-phone-number
phone-context-tag area-specifier
phone-context-ident area-specifier
network-prefix phone-context-ident
global-network-prefix network-prefix
local-network-prefix network-prefix
private-prefix phone-context-ident
service-provider global-phone-number, local-phone-number
provider-tag service-provider
provider-hostname service-provider
future-extension global-phone-number, local-phone-number
token-char future-extension, future-extension, future-extension
phonedigit base-phone-number, local-phone-number, isdn-subaddress, post-dial, global-network-prefix, local-network-prefix
visual-separator phonedigit
pause-character local-phone-number, post-dial, local-network-prefix
one-second-pause pause-character
wait-for-dial-tone pause-character
dtmf-digit local-phone-number, post-dial, local-network-prefix

General Directions

Rule-Names

References