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.This file consists of:
The productions for the ABNF specification are provided below.
| Rule Name | Production or Comment | |
|---|---|---|
| = | %x41-5A / %x61-7A ; A-Z / a-z
|
|
| = | %x0D ; carriage return
|
|
| = | CR LF ; Internet standard newline
|
|
| = | %x30-39 ; 0-9
|
|
| = | %x22 ; " (Double Quote)
|
|
| = | DIGIT / "A" / "B" / "C" / "D" / "E" / "F" | |
| = | %x09 ; horizontal tab
|
|
| = | %x0A ; linefeed
|
|
| = | %x00-FF ; 8 bits of data
|
|
| = | %x20 ; space
|
|
| = | SP / HTAB | |
| = | ALPHA / DIGIT | |
| = | ";" / "/" / "?" / ":" / "@" / "&" / "=" / "+" / "$" / "," | |
| = | alphanum / mark | |
| = | "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")" | |
| = | "%" HEXDIG HEXDIG | |
| = | [*WSP CRLF] 1*WSP ; linear whitespace
|
|
| = | [LWS] ; sep whitespace
|
|
| = | *(SP / HTAB) ":" SWS | |
| = | 1*TEXT-UTF8char *(*LWS TEXT-UTF8char) | |
| = | %x21-7E / UTF8-NONASCII | |
| = | %xC0-DF 1UTF8-CONT / %xE0-EF 2UTF8-CONT / %xF0-F7 3UTF8-CONT / %xF8-Fb 4UTF8-CONT / %xFC-FD 5UTF8-CONT | |
| = | %x80-BF | |
| = | DIGIT / %x61-66 ;lowercase a-f
|
|
| = | 1*(alphanum / "-" / "." / "!" / "%" / "*" / "_" / "+" / "`" / "'" / "~") | |
| = | 1*(alphanum / "-" / "." / "!" / "%" / "*" / "_" / "+" / "`" / "'" / "~" / "(" / ")" / "<" / ">" / ":" / "\" / DQUOTE / "/" / "[" / "]" / "?" / "{" / "}") | |
| = | SWS "*" SWS ; asterisk
|
|
| = | SWS "/" SWS ; slash
|
|
| = | SWS "=" SWS ; equal
|
|
| = | SWS "(" SWS ; left parenthesis
|
|
| = | SWS ")" SWS ; right parenthesis
|
|
| = | ">" SWS ; right angle quote
|
|
| = | SWS "<" ; left angle quote
|
|
| = | SWS "," SWS ; comma
|
|
| = | SWS ";" SWS ; semicolon
|
|
| = | SWS ":" SWS ; colon
|
|
| = | SWS DQUOTE ; open double quotation mark
|
|
| = | DQUOTE SWS ; close double quotation mark
|
|
| = | LPAREN *(ctext / quoted-pair / comment) RPAREN | |
| = | %x21-27 / %x2A-5B / %x5D-7E / UTF8-NONASCII / LWS | |
| = | SWS DQUOTE *(qdtext / quoted-pair) DQUOTE | |
| = | LWS / %x21 / %x23-5B / %x5D-7E / UTF8-NONASCII | |
| = | "\" (%x00-09 / %x0B-0C / %x0E-7F) | |
| = | "sip:" [userinfo] hostport uri-parameters [headers] | |
| = | "sips:" [userinfo] hostport uri-parameters [headers] | |
| = | (user / telephone-subscriber) [":" password] "@" | |
| = | 1*(unreserved / escaped / user-unreserved) | |
| = | "&" / "=" / "+" / "$" / "," / ";" / "?" / "/" | |
| = | *(unreserved / escaped / "&" / "=" / "+" / "$" / ",") | |
| = | host [":" port] | |
| = | hostname / IPv4address / IPv6reference | |
| = | *(domainlabel ".") toplabel ["."] | |
| = | alphanum / alphanum *(alphanum / "-") alphanum | |
| = | ALPHA / ALPHA *(alphanum / "-") alphanum | |
| = | 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT | |
| = | "[" IPv6address "]" | |
| = | hexpart [":" IPv4address] | |
| = | hexseq / hexseq "::" [hexseq] / "::" [hexseq] | |
| = | hex4 *(":" hex4) | |
| = | 1*4HEXDIG | |
| = | 1*DIGIT | |
| = | *(";" uri-parameter) | |
| = | transport-param / user-param / method-param / ttl-param / maddr-param / lr-param / other-param | |
| = | "transport=" ("udp" / "tcp" / "sctp" / "tls" / other-transport) | |
| = | token | |
| = | "user=" ("phone" / "ip" / other-user) | |
| = | token | |
| = | "method=" Method | |
| = | "ttl=" ttl | |
| = | "maddr=" host | |
| = | "lr" | |
| = | pname ["=" pvalue] | |
| = | 1*paramchar | |
| = | 1*paramchar | |
| = | param-unreserved / unreserved / escaped | |
| = | "[" / "]" / "/" / ":" / "&" / "+" / "$" | |
| = | "?" header *("&" header) | |
| = | hname "=" hvalue | |
| = | 1*(hnv-unreserved / unreserved / escaped) | |
| = | *(hnv-unreserved / unreserved / escaped) | |
| = | "[" / "]" / "/" / "?" / ":" / "+" / "$" | |
| SIP-message | = | Request / Response |
| = | Request-Line *(message-header) CRLF [message-body] | |
| = | Method SP Request-URI SP SIP-Version CRLF | |
| = | SIP-URI / SIPS-URI / absoluteURI | |
| = | scheme ":" (hier-part / opaque-part) | |
| = | (net-path / abs-path) ["?" query] | |
| = | "//" authority [abs-path] | |
| = | "/" path-segments | |
| = | uric-no-slash *uric | |
| = | reserved / unreserved / escaped | |
| = | unreserved / escaped / ";" / "?" / ":" / "@" / "&" / "=" / "+" / "$" / "," | |
| = | segment *("/" segment) | |
| = | *pchar *(";" param) | |
| = | *pchar | |
| = | unreserved / escaped / ":" / "@" / "&" / "=" / "+" / "$" / "," | |
| = | ALPHA *(ALPHA / DIGIT / "+" / "-" / ".") | |
| = | srvr / reg-name | |
| = | [[userinfo "@"] hostport] | |
| = | 1*(unreserved / escaped / "$" / "," / ";" / ":" / "@" / "&" / "=" / "+") | |
| = | *uric | |
| = | "SIP" "/" 1*DIGIT "." 1*DIGIT | |
| = | (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 | |
| = | %x49.4E.56.49.54.45 ; INVITE in caps
|
|
| = | %x41.43.4B ; ACK in caps
|
|
| = | %x4F.50.54.49.4F.4E.53 ; OPTIONS in caps
|
|
| = | %x42.59.45 ; BYE in caps
|
|
| = | %x43.41.4E.43.45.4C ; CANCEL in caps
|
|
| = | %x52.45.47.49.53.54.45.52 ; REGISTER in caps
|
|
| = | INVITEm / ACKm / OPTIONSm / BYEm / CANCELm / REGISTERm / extension-method | |
| = | token | |
| = | Status-Line *(message-header) CRLF [message-body] | |
| = | SIP-Version SP Status-Code SP Reason-Phrase CRLF | |
| = | Informational / Redirection / Success / Client-Error / Server-Error / Global-Failure / extension-code | |
| = | 3DIGIT | |
| = | *(reserved / unreserved / escaped / UTF8-NONASCII / UTF8-CONT / SP / HTAB) | |
| = | "100" ; Trying
/ "180" ; Ringing / "181" ; Call Is Being Forwarded / "182" ; Queued / "183" ; Session Progress |
|
| = | "200" ; OK
|
|
| = | "300" ; Multiple Choices
/ "301" ; Moved Permanently / "302" ; Moved Temporarily / "305" ; Use Proxy / "380" ; Alternative Service |
|
| = | "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 |
|
| = | "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 |
|
| = | "600" ; Busy Everywhere
/ "603" ; Decline / "604" ; Does not exist anywhere / "606" ; Not Acceptable |
|
| = | "Accept" HCOLON [accept-range *(COMMA accept-range)] | |
| = | media-range *(SEMI accept-param) | |
| = | ("*/*" / (m-type SLASH "*") / (m-type SLASH m-subtype)) *(SEMI m-parameter) | |
| = | ("q" EQUAL qvalue) / generic-param | |
| = | ("0" ["." 0*3DIGIT]) / ("1" ["." 0*3("0")]) | |
| = | token [EQUAL gen-value] | |
| = | token / host / quoted-string | |
| = | "Accept-Encoding" HCOLON [encoding *(COMMA encoding)] | |
| = | codings *(SEMI accept-param) | |
| = | content-coding / "*" | |
| = | token | |
| = | "Accept-Language" HCOLON [language *(COMMA language)] | |
| = | language-range *(SEMI accept-param) | |
| = | ((1*8ALPHA *("-" 1*8ALPHA)) / "*") | |
| = | "Alert-Info" HCOLON alert-param *(COMMA alert-param) | |
| = | LAQUOT absoluteURI RAQUOT *(SEMI generic-param) | |
| = | "Allow" HCOLON [Method *(COMMA Method)] | |
| = | "Authorization" HCOLON credentials | |
| = | ("Digest" LWS digest-response) / other-response | |
| = | dig-resp *(COMMA dig-resp) | |
| = | username / realm / nonce / digest-uri / dresponse / algorithm / cnonce / opaque / message-qop / nonce-count / auth-param | |
| = | "username" EQUAL username-value | |
| = | quoted-string | |
| = | "uri" EQUAL LDQUOT digest-uri-value RDQUOT | |
| = | Request-URI ; Equal to request-uri as specified by HTTP/1.1
|
|
| = | "qop" EQUAL qop-value | |
| = | "cnonce" EQUAL cnonce-value | |
| = | nonce-value | |
| = | "nc" EQUAL nc-value | |
| = | 8LHEX | |
| = | "response" EQUAL request-digest | |
| = | LDQUOT 32LHEX RDQUOT | |
| = | auth-param-name EQUAL (token / quoted-string) | |
| = | token | |
| = | auth-scheme LWS auth-param *(COMMA auth-param) | |
| = | token | |
| = | "Authentication-Info" HCOLON ainfo *(COMMA ainfo) | |
| = | nextnonce / message-qop / response-auth / cnonce / nonce-count | |
| = | "nextnonce" EQUAL nonce-value | |
| = | "rspauth" EQUAL response-digest | |
| = | LDQUOT *LHEX RDQUOT | |
| = | ("Call-ID" / "i") HCOLON callid | |
| = | word ["@" word] | |
| = | "Call-Info" HCOLON info *(COMMA info) | |
| = | LAQUOT absoluteURI RAQUOT *(SEMI info-param) | |
| = | ("purpose" EQUAL ("icon" / "info" / "card" / token)) / generic-param | |
| = | ("Contact" / "m") HCOLON (STAR / (contact-param *(COMMA contact-param))) | |
| = | (name-addr / addr-spec) *(SEMI contact-params) | |
| = | [display-name] LAQUOT addr-spec RAQUOT | |
| = | SIP-URI / SIPS-URI / absoluteURI | |
| = | *(token LWS) / quoted-string | |
| = | c-p-q / c-p-expires / contact-extension | |
| = | "q" EQUAL qvalue | |
| = | "expires" EQUAL delta-seconds | |
| = | generic-param | |
| = | 1*DIGIT | |
| = | "Content-Disposition" HCOLON disp-type *(SEMI disp-param) | |
| = | "render" / "session" / "icon" / "alert" / disp-extension-token | |
| = | handling-param / generic-param | |
| = | "handling" EQUAL ("optional" / "required" / other-handling) | |
| = | token | |
| = | token | |
| = | ("Content-Encoding" / "e") HCOLON content-coding *(COMMA content-coding) | |
| = | "Content-Language" HCOLON language-tag *(COMMA language-tag) | |
| = | primary-tag *("-" subtag) | |
| = | 1*8ALPHA | |
| = | 1*8ALPHA | |
| = | ("Content-Length" / "l") HCOLON 1*DIGIT | |
| = | ("Content-Type" / "c") HCOLON media-type | |
| = | m-type SLASH m-subtype *(SEMI m-parameter) | |
| = | discrete-type / composite-type | |
| = | "text" / "image" / "audio" / "video" / "application" / extension-token | |
| = | "message" / "multipart" / extension-token | |
| = | ietf-token / x-token | |
| = | token | |
| = | "x-" token | |
| = | extension-token / iana-token | |
| = | token | |
| = | m-attribute EQUAL m-value | |
| = | token | |
| = | token / quoted-string | |
| = | "CSeq" HCOLON 1*DIGIT LWS Method | |
| = | "Date" HCOLON SIP-date | |
| = | rfc1123-date | |
| = | wkday "," SP date1 SP time SP "GMT" | |
| = | 2DIGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982)
|
|
| = | 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 - 23:59:59
|
|
| = | "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun" | |
| = | "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" | |
| = | "Error-Info" HCOLON error-uri *(COMMA error-uri) | |
| = | LAQUOT absoluteURI RAQUOT *(SEMI generic-param) | |
| = | "Expires" HCOLON delta-seconds | |
| = | ("From" / "f") HCOLON from-spec | |
| = | (name-addr / addr-spec) *(SEMI from-param) | |
| = | tag-param / generic-param | |
| = | "tag" EQUAL token | |
| = | "In-Reply-To" HCOLON callid *(COMMA callid) | |
| = | "Max-Forwards" HCOLON 1*DIGIT | |
| = | "MIME-Version" HCOLON 1*DIGIT "." 1*DIGIT | |
| = | "Min-Expires" HCOLON delta-seconds | |
| = | "Organization" HCOLON [TEXT-UTF8-TRIM] | |
| = | "Priority" HCOLON priority-value | |
| = | "emergency" / "urgent" / "normal" / "non-urgent" / other-priority | |
| = | token | |
| = | "Proxy-Authenticate" HCOLON challenge | |
| = | ("Digest" LWS digest-cln *(COMMA digest-cln)) / other-challenge | |
| = | auth-scheme LWS auth-param *(COMMA auth-param) | |
| = | realm / domain / nonce / opaque / stale / algorithm / qop-options / auth-param | |
| = | "realm" EQUAL realm-value | |
| = | quoted-string | |
| = | "domain" EQUAL LDQUOT URI *(1*SP URI) RDQUOT | |
| = | absoluteURI / abs-path | |
| = | "nonce" EQUAL nonce-value | |
| = | quoted-string | |
| = | "opaque" EQUAL quoted-string | |
| = | "stale" EQUAL ("true" / "false") | |
| = | "algorithm" EQUAL ("MD5" / "MD5-sess" / token) | |
| = | "qop" EQUAL LDQUOT qop-value *("," qop-value) RDQUOT | |
| = | "auth" / "auth-int" / token | |
| = | "Proxy-Authorization" HCOLON credentials | |
| = | "Proxy-Require" HCOLON option-tag *(COMMA option-tag) | |
| = | token | |
| = | "Record-Route" HCOLON rec-route *(COMMA rec-route) | |
| = | name-addr *(SEMI rr-param) | |
| = | generic-param | |
| = | "Reply-To" HCOLON rplyto-spec | |
| = | (name-addr / addr-spec) *(SEMI rplyto-param) | |
| = | generic-param | |
| = | "Require" HCOLON option-tag *(COMMA option-tag) | |
| = | "Retry-After" HCOLON delta-seconds [comment] *(SEMI retry-param) | |
| = | ("duration" EQUAL delta-seconds) / generic-param | |
| = | "Route" HCOLON route-param *(COMMA route-param) | |
| = | name-addr *(SEMI rr-param) | |
| = | "Server" HCOLON server-val *(LWS server-val) | |
| = | product / comment | |
| = | token [SLASH product-version] | |
| = | token | |
| = | ("Subject" / "s") HCOLON [TEXT-UTF8-TRIM] | |
| = | ("Supported" / "k") HCOLON [option-tag *(COMMA option-tag)] | |
| = | "Timestamp" HCOLON 1*(DIGIT) ["." *(DIGIT)] [LWS delay] | |
| = | *(DIGIT) ["." *(DIGIT)] | |
| = | ("To" / "t") HCOLON (name-addr / addr-spec) *(SEMI to-param) | |
| = | tag-param / generic-param | |
| = | "Unsupported" HCOLON option-tag *(COMMA option-tag) | |
| = | "User-Agent" HCOLON server-val *(LWS server-val) | |
| = | ("Via" / "v") HCOLON via-parm *(COMMA via-parm) | |
| = | sent-protocol LWS sent-by *(SEMI via-params) | |
| = | via-ttl / via-maddr / via-received / via-branch / via-extension | |
| = | "ttl" EQUAL ttl | |
| = | "maddr" EQUAL host | |
| = | "received" EQUAL (IPv4address / IPv6address) | |
| = | "branch" EQUAL token | |
| = | generic-param | |
| = | protocol-name SLASH protocol-version SLASH transport | |
| = | "SIP" / token | |
| = | token | |
| = | "UDP" / "TCP" / "TLS" / "SCTP" / other-transport | |
| = | host [COLON port] | |
| = | 1*3DIGIT ; 0 to 255
|
|
| = | "Warning" HCOLON warning-value *(COMMA warning-value) | |
| = | warn-code SP warn-agent SP warn-text | |
| = | 3DIGIT | |
| = | hostport / pseudonym ; the name or pseudonym of the server adding
; the Warning header, for use in debugging |
|
| = | quoted-string | |
| = | token | |
| = | "WWW-Authenticate" HCOLON challenge | |
| = | header-name HCOLON header-value | |
| = | token | |
| = | *(TEXT-UTF8char / UTF8-CONT / LWS) | |
| = | *OCTET ;;;;;;;;;;;;;;;;;;;
; from RFC2806 ;;;;;;;;;;;;;;;;;;; |
|
| = | global-phone-number / local-phone-number | |
| = | "+" base-phone-number [isdn-subaddress] [post-dial] *(area-specifier / service-provider / future-extension) | |
| = | 1*phonedigit | |
| = | 1*(phonedigit / dtmf-digit / pause-character) [isdn-subaddress] [post-dial] area-specifier *(area-specifier / service-provider / future-extension) | |
| = | ";isub=" 1*phonedigit | |
| = | ";postd=" 1*(phonedigit / dtmf-digit / pause-character) | |
| = | ";" phone-context-tag "=" phone-context-ident | |
| = | "phone-context" | |
| = | network-prefix / private-prefix | |
| = | global-network-prefix / local-network-prefix | |
| = | "+" 1*phonedigit | |
| = | 1*(phonedigit / dtmf-digit / pause-character) | |
| = | (%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 |
|
| = | ";" provider-tag "=" provider-hostname | |
| = | "tsp" | |
| = | domain ; ; See section 2.5.10 |
|
| = | ";" 1*(token-char) ["=" ((1*(token-char) ["?" 1*(token-char)]) / quoted-string)] ; See section 2.5.11 and [RFC2543]
|
|
| = | (%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 |
|
| = | DIGIT / visual-separator | |
| = | "-" / "." / "(" / ")" | |
| = | one-second-pause / wait-for-dial-tone | |
| = | "p" | |
| = | "w" | |
| = | "*" / "#" / "A" / "B" / "C" / "D" ;;;;;;;;;;;;;;;;;;;
; RFC2806 End ;;;;;;;;;;;;;;;;;;; |
|
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.