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 | |
|---|---|---|
| = | %x00-FF ; |
|
| = | %x00-7F ; |
|
| = | %x41-5A ; |
|
| = | %x61-7A | |
| = | UPALPHA / LOALPHA ; |
|
| = | %x30-39 ; |
|
| CTL | = | %x00-1F / %x7F ; |
| = | %x0D ; |
|
| = | %x0A ; |
|
| = | %x20 ; |
|
| = | %x09 ; |
|
| = | %x22 | |
| = | CR LF | |
| = | [CRLF] 1*(SP / HT) | |
| = | <any OCTET except CTLs> | |
| tspecials | = | "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}" / SP / HT |
| = | 1*<any CHAR except CTLs or tspecials> | |
| = | (DQUOTE *(qdtext) DQUOTE) | |
| = | <any TEXT except DQUOTE> | |
| = | "\" CHAR | |
| = | "$" / "-" / "_" / "." / "+" | |
| = | "!" / "*" / "'" / "(" / ")" / "," | |
| = | DIGIT / "A" / "B" / "C" / "D" / "E" / "F" / "a" / "b" / "c" / "d" / "e" / "f" | |
| = | "%" hex hex | |
| = | ";" / "/" / "?" / ":" / "@" / "&" / "=" | |
| = | ALPHA / DIGIT / safe / extra | |
| = | unreserved / reserved / escape | |
| = | uchar / ":" / "@" / "&" / "=" / "+" | |
| = | unreserved / escape | |
| = | ("rtsp:" / "rtspu:") "//" host [":" port] [abs_path] ;
|
|
| = | IPv4address | |
| = | 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT | |
| = | *DIGIT | |
| = | scheme ":" *(uchar / reserved) | |
| = | net_path / abs_path / rel_path | |
| = | "//" net_loc [abs_path] | |
| = | "/" rel_path | |
| = | [path] [";" params] ["?" query] | |
| = | fsegment *("/" segment) | |
| = | 1*(ALPHA / DIGIT / "+" / "-" / ".") | |
| = | *(pchar / ";" / "?") | |
| = | 1*pchar | |
| = | *pchar | |
| = | param *(";" param) | |
| = | *(pchar / "/") | |
| = | *(uchar / reserved) | |
| = | 1*xchar | |
| RTSP-message | = | Request / Response ; RTSP/1.1 messages
|
| = | Request-Line *(general-header / request-header / entity-header) CRLF [message-body] | |
| = | Status-Line *(general-header / response-header / entity-header) CRLF [message-body] | |
| = | Method SP Request-URI SP RTSP-Version CRLF | |
| = | RTSP-Version SP Status-Code SP Reason-Phrase CRLF | |
| = | Cache-Control / Connection-header / Date / Via | |
| = | Accept / Accept-Encoding / Accept-Language / Authorization / From / If-Modified-Since / Range / Referer / User-Agent / Bandwidth / Blocksize / Conference / Host / If-Match | |
| = | Location / Proxy-Authenticate / Public / Retry-After / Server / Vary / WWW-Authenticate | |
| = | Allow / Content-Base / Content-Encoding / Content-Language / Content-Length / Content-Location / Content-Type / Expires / Last-Modified / extension-header | |
| = | message-header | |
| = | field-name ":" [field-value] CRLF | |
| = | token | |
| = | *(field-content / LWS) | |
| = | <the OCTETs making up the field-value and consisting of either *TEXT or combinations of token, tspecials, and quoted-string> | |
| = | entity-body / <entity-body encoded as per Transfer-Encoding> | |
| = | *OCTET | |
| = | "DESCRIBE" / "ANNOUNCE" / "GET_PARAMETER" / "OPTIONS" / "PAUSE" / "PLAY" / "RECORD" / "REDIRECT" / "SETUP" / "SET_PARAMETER" / "TEARDOWN" / extension-method | |
| = | token | |
| = | "*" / absoluteURI | |
| = | "RTSP" "/" 1*DIGIT "." 1*DIGIT | |
| = | "100" ; Continue
/ "200" ; OK / "201" ; Created / "250" ; Low on Storage Space / "300" ; Multiple Choices / "301" ; Moved Permanently / "302" ; Moved Temporarily / "303" ; See Other / "304" ; Not Modified / "305" ; Use Proxy / "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 Time-out / "410" ; Gone / "411" ; Length Required / "412" ; Precondition Failed / "413" ; Request Entity Too Large / "414" ; Request-URI Too Large / "415" ; Unsupported Media Type / "451" ; Parameter Not Understood / "452" ; Conference Not Found / "453" ; Not Enough Bandwidth / "454" ; Session Not Found / "455" ; Method Not Valid in This State / "456" ; Header Field Not Valid for Resource / "457" ; Invalid Range / "458" ; Parameter Is Read-Only / "459" ; Aggregate operation not allowed / "460" ; Only aggregate operation allowed / "461" ; Unsupported transport / "462" ; Destination unreachable / "500" ; Internal Server Error / "501" ; Not Implemented / "502" ; Bad Gateway / "503" ; Service Unavailable / "504" ; Gateway Time-out / "505" ; RTSP Version not supported / "551" ; Option not supported / extension-code |
|
| = | 3DIGIT | |
| = | *<TEXT, excluding CR, LF> | |
| = | "Accept" ":" [media-range [accept-params] *("," media-range [accept-params])] | |
| = | ("*/*" / (type "/" "*") / (type "/" subtype)) *(";" parameter) | |
| = | attribute "=" value | |
| = | token | |
| = | token / quoted-string | |
| = | ";" "q" "=" qvalue *(accept-extension) | |
| = | ("0" ["." 0*3DIGIT]) / ("1" ["." 0*3("0")]) | |
| = | ";" token ["=" (token / quoted-string)] | |
| = | "Accept-Encoding" ":" [content-coding *("," content-coding)] | |
| = | token | |
| = | "Accept-Language" ":" (language-range [";" "q" "=" qvalue]) *("," language-range [";" "q" "=" qvalue]) | |
| = | ((1*8ALPHA *("-" 1*8ALPHA)) / "*") | |
| = | "Allow" ":" Method *("," Method) | |
| = | "Authorization" ":" credentials | |
| = | basic-credentials / auth-scheme [auth-param *("," auth-param)] | |
| = | "Basic" SP basic-cookie | |
| = | <base64 [7] encoding of user-pass, except not limited to 76 char/line> | |
| user-pass | = | userid ":" password |
| = | *<TEXT excluding ":"> | |
| = | *TEXT | |
| = | token | |
| = | token "=" quoted-string | |
| = | auth-scheme 1*SP realm *("," auth-param) | |
| = | "realm" "=" realm-value | |
| = | quoted-string | |
| = | "Bandwidth" ":" 1*DIGIT ; positive decimal number
|
|
| = | "Blocksize" ":" 1*DIGIT | |
| = | "Cache-Control" ":" cache-directive *("," cache-directive) | |
| = | cache-request-directive / cache-response-directive | |
| = | "no-cache" / "max-stale" / "min-fresh" / "only-if-cached" / cache-extension | |
| = | "public" / "private" / "no-cache" / "no-transform" / "must-revalidate" / "proxy-revalidate" / "max-age" "=" delta-seconds / cache-extension | |
| = | 1*DIGIT | |
| = | token ["=" (token / quoted-string)] | |
| = | "Conference" ":" conference-id | |
| = | 1*xchar | |
| = | "Connection" ":" connection-token *("," connection-token) | |
| = | token | |
| = | "Content-Base" ":" absoluteURI | |
| = | "Content-Encoding" ":" content-coding *("," content-coding) | |
| = | "Content-Language" ":" language-tag *("," language-tag) | |
| = | primary-tag *("-" subtag) | |
| = | 1*8ALPHA | |
| = | 1*8ALPHA | |
| = | "Content-Length" ":" 1*DIGIT | |
| = | "Content-Location" ":" (absoluteURI / relativeURI) | |
| = | "Content-Type" ":" media-type | |
| = | type "/" subtype *(";" parameter) | |
| = | token | |
| = | token | |
| CSeq | = | "CSeq" ":" 1*DIGIT |
| = | "Date" ":" HTTP-date | |
| = | rfc1123-date / rfc850-date / asctime-date | |
| = | wkday "," SP date1 SP time SP "GMT" | |
| = | weekday "," SP date2 SP time SP "GMT" | |
| = | wkday SP date3 SP time SP 4DIGIT | |
| = | 2DIGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982)
|
|
| = | 2DIGIT "-" month "-" 2DIGIT ; day-month-year (e.g., 02-Jun-82)
|
|
| = | month SP (2DIGIT / (SP 1DIGIT)) ; month day (e.g., Jun 2)
|
|
| = | 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 - 23:59:59
|
|
| = | "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun" | |
| = | "Monday" / "Tuesday" / "Wednesday" / "Thursday" / "Friday" / "Saturday" / "Sunday" | |
| = | "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" | |
| = | "Expires" ":" HTTP-date | |
| = | "From" ":" mailbox | |
| = | addr-spec ; simple address
/ [phrase] route-addr ; name & addr-spec |
|
| = | local-part "@" domain ; global address
|
|
| = | word *("." word) ; uninterpreted
|
|
| = | sub-domain *("." sub-domain) | |
| = | domain-ref / domain-literal | |
| = | atom ; symbolic reference
|
|
| = | "[" *(dtext / quoted-pair) "]" | |
| = | <any CHAR excluding "[", "]", "\" & CR, & including linear-white-space> | |
| = | 1*word ; Sequence of words
|
|
| = | atom / quoted-string | |
| = | 1*<any CHAR except specials, SPACE and CTLs> | |
| specials | = | "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / DQUOTE / "." / "[" / "]" |
| = | "<" [route] addr-spec ">" | |
| = | "@" domain *("," "@" domain) ":" ; path-relative
|
|
| = | "Host" ":" host [":" port] | |
| = | "If-Match" ":" ("*" / (entity-tag *("," entity-tag))) | |
| = | [weak] opaque-tag | |
| = | "W/" | |
| = | quoted-string | |
| = | "If-Modified-Since" ":" HTTP-date | |
| = | "Last-Modified" ":" HTTP-date | |
| = | "Location" ":" absoluteURI | |
| = | "Proxy-Authenticate" ":" challenge | |
| Proxy-Require | = | "Proxy-Require" ":" option-tag *("," option-tag) |
| = | "Public" ":" Method *("," Method) | |
| = | "Range" ":" ranges-specifier *("," ranges-specifier) [";" "time" "=" utc-time] | |
| = | npt-range / utc-range / smpte-range | |
| = | (npt-time "-" [npt-time]) / ("-" npt-time) | |
| = | "now" / npt-sec / npt-hhmmss | |
| = | 1*DIGIT ["." *DIGIT] | |
| = | npt-hh ":" npt-mm ":" npt-ss ["." *DIGIT] | |
| = | 1*DIGIT ; any positive number
|
|
| = | 1*2DIGIT ; 0-59
|
|
| = | 1*2DIGIT ; 0-59
|
|
| = | "clock" "=" utc-datetime "-" [utc-datetime] | |
| = | utc-date "T" utc-time "Z" | |
| = | 8DIGIT ; < YYYYMMDD >
|
|
| = | 6DIGIT ["." fraction] ; < HHMMSS.fraction >
|
|
| = | *DIGIT | |
| = | smpte-type "=" smpte-time "-" [smpte-time] | |
| = | "smpte" / "smpte-30-drop" / "smpte-25" ; other timecodes may be added
|
|
| = | 1*2DIGIT ":" 1*2DIGIT ":" 1*2DIGIT [":" 1*2DIGIT] ["." 1*2DIGIT] | |
| = | "Referer" ":" (absoluteURI / relativeURI) | |
| = | "Retry-After" ":" (HTTP-date / delta-seconds) | |
| Require | = | "Require" ":" option-tag *("," option-tag) |
| RTP-Info | = | "RTP-Info" ":" stream-url *("," stream-url) 1*RTP-parameter |
| = | "url" "=" rtsp_URL ;url
|
|
| = | ";" "seq" "=" 1*DIGIT / ";" "rtptime" "=" 1*DIGIT | |
| Scale | = | "Scale" ":" ["-"] 1*DIGIT ["." *DIGIT] |
| Speed | = | "Speed" ":" 1*DIGIT ["." *DIGIT] |
| = | "Server" ":" 1*(product / comment) | |
| = | token ["/" product-version] | |
| = | token | |
| = | "(" *(ctext / comment) ")" | |
| = | <any TEXT excluding "(" and ")"> | |
| Session | = | "Session" ":" session-id [";" "timeout" "=" delta-seconds] |
| = | 1*(ALPHA / DIGIT / safe) | |
| Timestamp | = | "Timestamp" ":" *(DIGIT) ["." *(DIGIT)] [delay] |
| = | *(DIGIT) ["." *(DIGIT)] | |
| Transport | = | "Transport" ":" transport-spec *("," transport-spec) |
| = | transport-protocol "/" profile ["/" lower-transport] *transport-parameter | |
| = | "RTP" | |
| = | "AVP" | |
| = | "TCP" / "UDP" | |
| = | ("unicast" / "multicast") / ";" "destination" ["=" address] / ";" "interleaved" "=" channel ["-" channel] / ";" "append" / ";" "ttl" "=" ttl / ";" "layers" "=" 1*DIGIT / ";" "port" "=" port ["-" port] / ";" "client_port" "=" port ["-" port] / ";" "server_port" "=" port ["-" port] / ";" "ssrc" "=" ssrc / ";" "mode" "=" DQUOTE mode *("," mode) DQUOTE | |
| = | 1*3(DIGIT) ;port = 1*5(DIGIT)
|
|
| = | 8*8(hex) | |
| = | 1*3(DIGIT) | |
| = | host | |
| = | DQUOTE *Method DQUOTE / Method | |
| Unsupported | = | "Unsupported" ":" option-tag *("," option-tag) |
| = | "User-Agent" ":" 1*(product / comment) | |
| = | "Vary" ":" ("*" / (field-name *("," field-name))) | |
| = | "Via" ":" (received-protocol received-by [comment]) *("," received-protocol received-by [comment]) | |
| = | [protocol-name "/"] protocol-version | |
| = | token | |
| = | token | |
| = | (host [":" port]) / pseudonym | |
| = | token | |
| = | "WWW-Authenticate" ":" challenge *("," challenge) | |
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.