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 | |
|---|---|---|
| announcement | = | proto-version origin-field session-name-field information-field uri-field email-fields phone-fields connection-field bandwidth-fields time-fields key-field attribute-fields media-descriptions |
| = | "v=" 1*DIGIT CRLF ;this memo describes version 0
|
|
| = | "o=" username space sess-id space sess-version space nettype space addrtype space addr CRLF | |
| = | "s=" text CRLF | |
| = | ["i=" text CRLF] | |
| = | ["u=" uri CRLF] | |
| = | *("e=" email-address CRLF) | |
| = | *("p=" phone-number CRLF) | |
| = | ["c=" nettype space addrtype space connection-address CRLF] ;a connection field must be present
;in every media description or at the ;session-level |
|
| = | *("b=" bwtype ":" bandwidth CRLF) | |
| = | 1*("t=" start-time space stop-time *(CRLF repeat-fields) CRLF) [zone-adjustments CRLF] | |
| = | "r=" repeat-interval space typed-time 1*(space typed-time) | |
| = | time space ["-"] typed-time *(space time space ["-"] typed-time) | |
| = | ["k=" key-type CRLF] | |
| = | "prompt" / "clear:" key-data / "base64:" key-data / "uri:" uri | |
| = | email-safe / "~" | |
| = | *("a=" attribute CRLF) | |
| = | *(media-field information-field *(connection-field) bandwidth-fields key-field attribute-fields) | |
| = | "m=" media space port ["/" integer] space proto 1*(space fmt) CRLF | |
| = | 1*(alpha-numeric) ;typically "audio", "video", "application"
;or "data" |
|
| = | 1*(alpha-numeric) ;typically an RTP payload type for audio
;and video media |
|
| = | 1*(alpha-numeric) ;typically "RTP/AVP" or "udp" for IP4
|
|
| = | 1*(DIGIT) ;should in the range "1024" to "65535" inclusive
;for UDP based media |
|
| = | (att-field ":" att-value) / att-field | |
| = | 1*(alpha-numeric) | |
| = | byte-string | |
| = | 1*(DIGIT) ;should be unique for this originating username/host
|
|
| = | 1*(DIGIT) ;0 is a new session
|
|
| = | multicast-address / addr | |
| = | 3*(decimal-uchar ".") decimal-uchar "/" ttl ["/" integer] ;multicast addresses may be in the range
;224.0.0.0 to 239.255.255.255 |
|
| = | decimal-uchar | |
| = | time / "0" | |
| = | time / "0" | |
| = | POS-DIGIT 9*(DIGIT) ;sufficient for 2 more centuries
|
|
| = | typed-time | |
| = | 1*(DIGIT) [fixed-len-time-unit] | |
| = | "d" / "h" / "m" / "s" | |
| = | 1*(alpha-numeric) | |
| = | 1*(DIGIT) | |
| = | safe ;pretty wide definition, but doesn't include space
|
|
| = | email / email "(" email-safe ")" / email-safe "<" email ">" ;email = ;defined in RFC822
;uri= ;defined in RFC1630 |
|
| = | phone / phone "(" email-safe ")" / email-safe "<" phone ">" | |
| = | "+" POS-DIGIT 1*(space / "-" / DIGIT) ;there must be a space or hyphen between the
;international code and the rest of the number. |
|
| = | "IN" ;list to be extended
|
|
| = | "IP4" / "IP6" ;list to be extended
|
|
| = | FQDN / unicast-address | |
| = | 4*(alpha-numeric / "-" / ".") ;fully qualified domain name as specified in RFC1035
|
|
| = | IP4-address / IP6-address | |
| = | b1 "." decimal-uchar "." decimal-uchar "." b4 | |
| = | decimal-uchar ;less than "224"; not "0" or "127"
|
|
| = | decimal-uchar ;not "0"
;IP6-address = ;to be defined |
|
| = | byte-string ;default is to interpret this as IS0-10646 UTF8
;ISO 8859-1 requires a "a=charset:ISO-8859-1" ;session-level attribute to be used |
|
| = | 1*(0x01 / 0x0b / 0x0c / 0x0e) ;any byte except NUL, CR or LF
|
|
| = | DIGIT / POS-DIGIT DIGIT / ("1" 2*(DIGIT)) / ("2" ("0" / "1" / "2" / "3" / "4") DIGIT) / ("2" "5" ("0" / "1" / "2" / "3" / "4" / "5")) | |
| = | POS-DIGIT *(DIGIT) | |
| = | ALPHA / DIGIT | |
| = | "0" / POS-DIGIT | |
| = | "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" | |
| = | "a" / "b" / "c" / "d" / "e" / "f" / "g" / "h" / "i" / "j" / "k" / "l" / "m" / "n" / "o " / "p" / "q" / "r" / "s" / "t" / "u" / "v" / "w" / "x" / "y" / "z" / "A" / "B" / "C " / "D" / "E" / "F" / "G" / "H" / "I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" / " Q" / "R" / "S" / "T" / "U" / "V" / "W" / "X" / "Y" / "Z" | |
| = | safe / space / tab | |
| = | alpha-numeric / "'" / "'" / "-" / "." / "/" / ":" / "?" / DQUOTE / "#" / "$" / "&" / "*" / ";" / "=" / "@" / "[" / "]" / "^" / "_" / "`" / "{" / "|" / "}" / "+" / "~" | |
| = | %d32 | |
| = | %d9 | |
| = | %d13.10 | |
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.