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 | |
|---|---|---|
| MGCPMessage | = | MGCPCommand / MGCPResponse |
| = | MGCPCommandLine 0*(MGCPParameter) [EOL *SDPinformation] | |
| = | MGCPVerb 1*(WSP) transaction-id 1*(WSP) endpointName 1*(WSP) MGCPversion EOL | |
| = | "EPCF" / "CRCX" / "MDCX" / "DLCX" / "RQNT" / "NTFY" / "AUEP" / "AUCX" / "RSIP" / extensionVerb | |
| = | ALPHA 3(ALPHA / DIGIT) ; experimental starts with X
|
|
| = | 1*9(DIGIT) | |
| = | LocalEndpointName "@" DomainName | |
| = | LocalNamePart 0*("/" LocalNamePart) | |
| = | AnyName / AllName / NameString | |
| = | "$" | |
| = | "*" | |
| = | 1*(range-of-allowed-characters) ; VCHAR except "$", "*", "/", "@"
|
|
| = | %x21-23 / %x25-29 / %x2B-2E / %x30-3F / %x41-7E | |
| = | 1*(ALPHA / DIGIT / "." / "-") ; as defined
/ "#" number ; in RFC 821 / "[" IPv4address / IPv6address "]" ; see RFC 2373 ; Rewritten to ABNF from RFC 821 |
|
| = | 1*DIGIT ;From RFC 2373
|
|
| = | hexpart [":" IPv4address] | |
| = | 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT ; this production, while occurring in RFC2373, is not referenced
; IPv6prefix = hexpart "/" 1*2DIGIT |
|
| = | hexseq / hexseq "::" [hexseq] / "::" [hexseq] | |
| = | hex4 *(":" hex4) | |
| = | 1*4HEXDIG | |
| = | "MGCP" 1*(WSP) 1*(DIGIT) "." 1*(DIGIT) [1*(WSP) ProfileName] | |
| = | VCHAR *(WSP / VCHAR) | |
| = | ParameterValue EOL ; Check infoCode if more parameter values defined
; Most optional values can only be omitted when auditing |
|
| = | ("K" ":" 0*(WSP) [ResponseAck]) / ("B" ":" 0*(WSP) [BearerInformation]) / ("C" ":" 0*(WSP) CallId) / ("I" ":" 0*(WSP) [ConnectionId]) / ("N" ":" 0*(WSP) [NotifiedEntity]) / ("X" ":" 0*(WSP) [RequestIdentifier]) / ("L" ":" 0*(WSP) [LocalConnectionOptions]) / ("M" ":" 0*(WSP) ConnectionMode) / ("R" ":" 0*(WSP) [RequestedEvents]) / ("S" ":" 0*(WSP) [SignalRequests]) / ("D" ":" 0*(WSP) [DigitMap]) / ("O" ":" 0*(WSP) [ObservedEvents]) / ("P" ":" 0*(WSP) [ConnectionParameters]) / ("E" ":" 0*(WSP) ReasonCode) / ("Z" ":" 0*(WSP) [SpecificEndpointID]) / ("Z2" ":" 0*(WSP) SecondEndpointID) / ("I2" ":" 0*(WSP) SecondConnectionID) / ("F" ":" 0*(WSP) [RequestedInfo]) / ("Q" ":" 0*(WSP) QuarantineHandling) / ("T" ":" 0*(WSP) [DetectEvents]) / ("RM" ":" 0*(WSP) RestartMethod) / ("RD" ":" 0*(WSP) RestartDelay) / ("A" ":" 0*(WSP) [Capabilities]) / ("ES" ":" 0*(WSP) [EventStates]) / ("PL" ":" 0*(WSP) [PackageList]) ; Auditing only
/ ("MD" ":" 0*(WSP) MaxMGCPDatagram) ; Auditing only / (extensionParameter ":" 0*(WSP) [parameterString]) ; A final response may include an empty ResponseAck |
|
| = | confirmedTransactionIdRange *("," 0*(WSP) confirmedTransactionIdRange) | |
| = | transaction-id ["-" transaction-id] | |
| = | BearerAttribute 0*("," 0*(WSP) BearerAttribute) | |
| = | ("e" ":" BearerEncoding) / (BearerExtensionName [":" BearerExtensionValue]) | |
| = | PackageLCOExtensionName | |
| = | LocalOptionExtensionValue | |
| = | "A" / "mu" | |
| = | 1*32(HEXDIG) ; The audit request response may include a list of identifiers
|
|
| = | 1*32(HEXDIG) 0*("," 0*(WSP) 1*32(HEXDIG)) | |
| = | ConnectionId | |
| = | [LocalName "@"] DomainName [":" portNumber] | |
| = | LocalEndpointName ; No internal structure
|
|
| = | 1*5(DIGIT) | |
| = | 1*32(HEXDIG) | |
| = | LocalOptionValue 0*(WSP) 0*("," 0*(WSP) LocalOptionValue 0*(WSP)) | |
| = | ("p" ":" packetizationPeriod) / ("a" ":" compressionAlgorithm) / ("b" ":" bandwidth) / ("e" ":" echoCancellation) / ("gc" ":" gainControl) / ("s" ":" silenceSuppression) / ("t" ":" typeOfService) / ("r" ":" resourceReservation) / ("k" ":" encryptiondata) / ("nt" ":" (typeOfNetwork / supportedTypeOfNetwork)) / (LocalOptionExtensionName [":" LocalOptionExtensionValue]) | |
| = | CapabilityValue 0*(WSP) 0*("," 0*(WSP) CapabilityValue 0*(WSP)) | |
| = | LocalOptionValue / ("v" ":" supportedPackages) / ("m" ":" supportedModes) | |
| = | pkgNameAndVers 0*("," pkgNameAndVers) | |
| = | packageName ":" packageVersion | |
| = | 1*(DIGIT) | |
| = | 1*4(DIGIT) ["-" 1*4(DIGIT)] | |
| = | algorithmName 0*(";" algorithmName) | |
| = | 1*(SuitableLCOCharacter) | |
| = | 1*4(DIGIT) ["-" 1*4(DIGIT)] | |
| = | "on" / "off" | |
| = | "auto" / ["-"] 1*4(DIGIT) | |
| = | "on" / "off" | |
| = | 1*2(HEXDIG) ; 1 hex only for capabilities
|
|
| = | "g" / "cl" / "be" ;encryption parameters are coded as in SDP (RFC 2327)
;NOTE: encryption key may contain an algorithm as specified in RFC 1890 |
|
| = | ("clear" ":" encryptionKey) / ("base64" ":" encodedEncryptionKey) / ("uri" ":" URItoObtainKey) / ("prompt") ; defined in SDP, not usable in MGCP!
|
|
| = | 1*(SuitableLCOCharacter) / quotedString ; See RFC 2045
|
|
| = | 1*(ALPHA / DIGIT / "+" / "/" / "=") | |
| = | 1*(SuitableLCOCharacter) / quotedString | |
| = | "IN" / "ATM" / "LOCAL" / OtherTypeOfNetwork ; Registered with IANA - see RFC 2327
|
|
| = | 1*(SuitableLCOCharacter) | |
| = | typeOfNetwork *(";" typeOfNetwork) | |
| = | ConnectionMode 0*(";" ConnectionMode) | |
| = | packageName 0*(";" packageName) | |
| = | 1*(ALPHA / DIGIT / HYPHEN) ; Hyphen neither first or last
|
|
| = | VendorLCOExtensionName / PackageLCOExtensionName / OtherLCOExtensionName | |
| = | "x" ("+" / "-") 1*32(SuitableExtLCOCharacter) | |
| = | packageName "/" 1*32(SuitablePkgExtLCOCharacter) ; must not start with "x-" or "x+"
|
|
| = | 1*32(SuitableExtLCOCharacter) | |
| = | (1*(SuitableExtLCOValChar) / quotedString) *(";" (1*(SuitableExtLCOValChar) / quotedString)) ;Note: No "data" mode.
|
|
| = | "sendonly" / "recvonly" / "sendrecv" / "confrnce" / "inactive" / "loopback" / "conttest" / "netwloop" / "netwtest" / ExtensionConnectionMode | |
| = | PkgExtConnectionMode | |
| = | packageName "/" 1*(ALPHA / DIGIT) | |
| = | requestedEvent 0*("," 0*(WSP) requestedEvent) | |
| = | (eventName ["(" requestedActions ")"]) / (eventName "(" requestedActions ")" "(" eventParameters ")") | |
| = | [(packageName / "*") "/"] (eventId / "all" / eventRange / "*" / "#") ["@" (ConnectionId / "$" / "*")] ; for DTMF
|
|
| = | 1*(ALPHA / DIGIT / HYPHEN) ; Hyphen neither first nor last
|
|
| = | "[" 1*(DigitMapLetter / (DIGIT "-" DIGIT) / (DTMFLetter "-" DTMFLetter)) "]" | |
| = | "A" / "B" / "C" / "D" | |
| = | requestedAction 0*("," 0*(WSP) requestedAction) | |
| = | "N" / "A" / "D" / "S" / "I" / "K" / "E" "(" EmbeddedRequest ")" / ExtensionAction | |
| = | PackageExtAction | |
| = | packageName "/" Action ["(" ActionParameters ")"] | |
| = | 1*ALPHA | |
| = | eventParameters ; May contain actions
;NOTE: Should tolerate different order when receiving, e.g., for NCS. |
|
| = | ("R" "(" EmbeddedRequestList ")" ["," 0*(WSP) "S" "(" EmbeddedSignalRequest ")"] ["," 0*(WSP) "D" "(" EmbeddedDigitMap ")"]) / ("S" "(" EmbeddedSignalRequest ")" ["," 0*(WSP) "D" "(" EmbeddedDigitMap ")"]) / ("D" "(" EmbeddedDigitMap ")") | |
| = | RequestedEvents | |
| = | SignalRequests | |
| = | DigitMap | |
| = | SignalRequest 0*("," 0*(WSP) SignalRequest) | |
| = | eventName ["(" eventParameters ")"] | |
| = | eventParameter 0*("," 0*(WSP) eventParameter) | |
| = | eventParameterValue / eventParameterName "=" eventParameter / eventParameterName "(" eventParameters ")" | |
| = | 1*(SuitableEventParamCharacter) | |
| = | eventParameterString | |
| = | eventParameterString / quotedString | |
| = | DigitString / "(" DigitStringList ")" | |
| = | DigitString 0*("|" DigitString) | |
| = | 1*(DigitStringElement) | |
| = | DigitPosition ["."] | |
| = | DigitMapLetter / DigitMapRange ; NOTE "X" is now included
|
|
| = | DIGIT / "#" / "*" / "A" / "B" / "C" / "D" / "T" / "X" / ExtensionDigitMapLetter | |
| = | "E" / "F" / "G" / "H" / "I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" / "Q" / "R" / "S" / "U" / "V" / "W" / "Y" / "Z" ; NOTE "[x]" is now allowed
|
|
| = | "[" 1*DigitLetter "]" | |
| = | *((DIGIT "-" DIGIT) / DigitMapLetter) | |
| = | SignalRequests | |
| = | SignalRequests | |
| = | ConnectionParameter 0*("," 0*(WSP) ConnectionParameter) | |
| = | ("PS" "=" packetsSent) / ("OS" "=" octetsSent) / ("PR" "=" packetsReceived) / ("OR" "=" octetsReceived) / ("PL" "=" packetsLost) / ("JI" "=" jitter) / ("LA" "=" averageLatency) / (ConnectionParameterExtensionName "=" ConnectionParameterExtensionValue) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | VendorCPExtensionName / PackageCPExtensionName | |
| = | "X" "-" 2*ALPHA | |
| = | packageName "/" CPName | |
| = | 1*(ALPHA / DIGIT / HYPHEN) | |
| = | 1*9(DIGIT) | |
| = | 1*9(DIGIT) | |
| = | 3DIGIT [1*(WSP) "/" packageName] [WSP 1*(%x20-7E)] ; Only for 8xx
|
|
| = | endpointName | |
| = | endpointName | |
| = | infoCode 0*("," 0*(WSP) infoCode) | |
| = | "B" / "C" / "I" / "N" / "X" / "L" / "M" / "R" / "S" / "D" / "O" / "P" / "E" / "Z" / "Q" / "T" / "RC" / "LC" / "A" / "ES" / "RM" / "RD" / "PL" / "MD" / extensionParameter | |
| = | loopControl / processControl / (loopControl "," 0*(WSP) processControl) | |
| = | "step" / "loop" | |
| = | "process" / "discard" | |
| = | SignalRequests | |
| = | "graceful" / "forced" / "restart" / "disconnected" / "cancel-graceful" / extensionRestartMethod | |
| = | PackageExtensionRM | |
| = | packageName "/" 1*32(ALPHA / DIGIT / HYPHEN) | |
| = | 1*6(DIGIT) | |
| = | VendorExtensionParameter / PackageExtensionParameter / OtherExtensionParameter | |
| = | "X" ("-" / "+") 1*6(ALPHA / DIGIT) | |
| = | packageName "/" 1*32(ALPHA / DIGIT / HYPHEN) ; must not start with "x-" or x+"
|
|
| = | 1*32(ALPHA / DIGIT / HYPHEN) ;If first character is a double-quote, then it is a quoted-string
|
|
| = | (%x21 / %x23-7F) *(%x20-7F) ; first and last must not
; be white space / quotedString |
|
| = | MGCPResponseLine 0*(MGCPParameter) *2(EOL *SDPinformation) | |
| = | responseCode 1*(WSP) transaction-id [1*(WSP) "/" packageName] [WSP responseString] EOL ; Only for 8xx
|
|
| = | 3DIGIT | |
| = | *(%x20-7E) | |
| = | SuitableLCOCharacter | |
| = | DIGIT / ALPHA / "+" / "-" / "_" / "&" / "!" / "'" / "|" / "=" / "#" / "?" / "." / "$" / "*" / "@" / "[" / "]" / "^" / "`" / "{" / "}" / "~" | |
| = | SuitableExtLCOCharacter / "/" | |
| = | SuitableLCOCharacter / ":" ; VCHAR except """, "(", ")", ",", and "="
|
|
| = | %x21 / %x23-27 / %x2A-2B / %x2D-3C / %x3E-7E ; NOTE: UTF8 encoded
|
|
| = | DQUOTE 0*(quoteEscape / quoteChar) DQUOTE | |
| = | DQUOTE DQUOTE | |
| = | (%x00-21 / %x23-FF) | |
| = | CRLF / LF | |
| = | "-" ; See RFC 2327 for proper SDP grammar instead.
|
|
| = | SDPLine CRLF *(SDPLine CRLF) ; see RFC 2327
|
|
| = | 1*(%x01-09 / %x0B / %x0C / %x0E-FF) ; for proper def.
|
|
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.