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 | |
|---|---|---|
| megacoMessage | = | LWSP [authenticationHeader SEP] message |
| = | AuthToken EQUAL SecurityParmIndex COLON SequenceNum COLON AuthData | |
| = | "0x" 8(HEXDIG) | |
| = | "0x" 8(HEXDIG) | |
| = | "0x" 24*64(HEXDIG) | |
| = | MegacopToken SLASH Version SEP mId SEP ; The version of the protocol defined here is equal to 1.
|
|
| messageBody | = | (errorDescriptor / transactionList) |
| = | 1*(transactionRequest / transactionReply / transactionPending / transactionResponseAck) ;Use of response acks is dependent on underlying transport
|
|
| = | PendingToken EQUAL TransactionID LBRKT RBRKT | |
| = | ResponseAckToken LBRKT transactionAck *(COMMA transactionAck) RBRKT | |
| = | transactionID / (transactionID "-" transactionID) | |
| = | TransToken EQUAL TransactionID LBRKT actionRequest *(COMMA actionRequest) RBRKT | |
| = | CtxToken EQUAL ContextID LBRKT ((contextRequest [COMMA commandRequestList]) / commandRequestList) RBRKT | |
| = | ((contextProperties [COMMA contextAudit]) / contextAudit) | |
| = | contextProperty *(COMMA contextProperty) ; at-most-once
|
|
| = | (topologyDescriptor / priority / EmergencyToken) | |
| = | ContextAuditToken LBRKT contextAuditProperties *(COMMA contextAuditProperties) RBRKT ; at-most-once
|
|
| = | (TopologyToken / EmergencyToken / PriorityToken) ; "O-" indicates an optional command
; "W-" indicates a wildcarded response to a command |
|
| = | ["O-"] ["W-"] commandRequest *(COMMA ["O-"] ["W-"] commandRequest) | |
| = | (ammRequest / subtractRequest / auditRequest / notifyRequest / serviceChangeRequest) | |
| = | ReplyToken EQUAL TransactionID LBRKT [ImmAckRequiredToken COMMA] (errorDescriptor / actionReplyList) RBRKT | |
| = | actionReply *(COMMA actionReply) | |
| = | CtxToken EQUAL ContextID LBRKT (errorDescriptor / commandReply) / (commandReply COMMA errorDescriptor) RBRKT | |
| = | ((contextProperties [COMMA commandReplyList]) / commandReplyList) | |
| = | commandReplys *(COMMA commandReplys) | |
| = | (serviceChangeReply / auditReply / ammsReply / notifyReply) ;Add Move and Modify have the same request parameters
|
|
| = | (AddToken / MoveToken / ModifyToken) EQUAL TerminationID [LBRKT ammParameter *(COMMA ammParameter) RBRKT] ;at-most-once
|
|
| = | (mediaDescriptor / modemDescriptor / muxDescriptor / eventsDescriptor / signalsDescriptor / digitMapDescriptor / eventBufferDescriptor / auditDescriptor) | |
| = | (AddToken / MoveToken / ModifyToken / SubtractToken) EQUAL TerminationID [LBRKT terminationAudit RBRKT] | |
| = | SubtractToken EQUAL TerminationID [LBRKT auditDescriptor RBRKT] | |
| = | (AuditValueToken / AuditCapToken) EQUAL TerminationID LBRKT auditDescriptor RBRKT | |
| = | (AuditValueToken / AuditCapToken) (contextTerminationAudit / auditOther) | |
| = | EQUAL TerminationID [LBRKT terminationAudit RBRKT] | |
| = | auditReturnParameter *(COMMA auditReturnParameter) | |
| = | EQUAL CtxToken (terminationIDList / LBRKT errorDescriptor RBRKT) | |
| = | (mediaDescriptor / modemDescriptor / muxDescriptor / eventsDescriptor / signalsDescriptor / digitMapDescriptor / observedEventsDescriptor / eventBufferDescriptor / statisticsDescriptor / packagesDescriptor / errorDescriptor / auditItem) | |
| = | AuditToken LBRKT [auditItem *(COMMA auditItem)] RBRKT | |
| = | NotifyToken EQUAL TerminationID LBRKT (observedEventsDescriptor [COMMA errorDescriptor]) RBRKT | |
| = | NotifyToken EQUAL TerminationID [LBRKT errorDescriptor RBRKT] | |
| = | ServiceChangeToken EQUAL TerminationID LBRKT serviceChangeDescriptor RBRKT | |
| = | ServiceChangeToken EQUAL TerminationID [LBRKT (errorDescriptor / serviceChangeReplyDescriptor) RBRKT] | |
| = | ErrorToken EQUAL ErrorCode LBRKT [quotedString] RBRKT | |
| = | 1*4(DIGIT) ; could be extended
|
|
| = | UINT32 | |
| = | ((domainAddress / domainName) [":" portNumber]) / mtpAddress / deviceName ; ABNF allows two or more consecutive "." although it is meaningless
; in a domain name. |
|
| = | "<" (ALPHA / DIGIT) *63(ALPHA / DIGIT / "-" / ".") ">" | |
| = | pathNAME ;The values 0x0, 0xFFFFFFFE and 0xFFFFFFFF are reserved.
|
|
| = | (UINT32 / "*" / "-" / "$") | |
| = | "[" (IPv4address / IPv6address) "]" ;RFC2373 contains the definition of IP6Addresses.
|
|
| = | hexpart [":" IPv4address] | |
| = | V4hex DOT V4hex DOT V4hex DOT V4hex | |
| = | 1*3(DIGIT) ; "0".."255"
; this production, while occurring in RFC2373, is not referenced ; IPv6prefix = hexpart SLASH 1*2DIGIT |
|
| = | hexseq "::" [hexseq] / "::" [hexseq] / hexseq | |
| = | hex4 *(":" hex4) | |
| = | 1*4HEXDIG | |
| = | UINT16 ; Addressing structure of mtpAddress:
; 25 - 15 0 ; | PC | NI | ; 24 - 14 bits 2 bits ; Note: 14 bits are defined for international use. ; Two national options exist where the point code is 16 or 24 bits. ; To octet align the mtpAddress the MSBs shall be encoded as 0s. ; An octet shall be represented by 2 hex digits. |
|
| = | MTPToken LBRKT 4*8(HEXDIG) RBRKT | |
| = | LBRKT TerminationID *(COMMA TerminationID) RBRKT ; Total length of pathNAME must not exceed 64 chars.
|
|
| = | ["*"] NAME *("/" / "*" / ALPHA / DIGIT / "_" / "$") ["@" pathDomainName] ; ABNF allows two or more consecutive "." although it is meaningless
; in a path domain name. |
|
| = | (ALPHA / DIGIT / "*") *63(ALPHA / DIGIT / "-" / "*" / ".") | |
| = | "ROOT" / pathNAME / "$" / "*" | |
| = | MediaToken LBRKT mediaParm *(COMMA mediaParm) RBRKT ; at-most one terminationStateDescriptor
; and either streamParm(s) or streamDescriptor(s) but not both |
|
| = | (streamParm / streamDescriptor / terminationStateDescriptor) ; at-most-once per item
|
|
| = | (localDescriptor / remoteDescriptor / localControlDescriptor) | |
| = | StreamToken EQUAL StreamID LBRKT streamParm *(COMMA streamParm) RBRKT | |
| = | LocalControlToken LBRKT localParm *(COMMA localParm) RBRKT ; at-most-once per item except for propertyParm
|
|
| = | (streamMode / propertyParm / reservedValueMode / reservedGroupMode) | |
| = | ReservedValueToken EQUAL ("ON" / "OFF") | |
| = | ReservedGroupToken EQUAL ("ON" / "OFF") | |
| = | ModeToken EQUAL streamModes | |
| = | (SendonlyToken / RecvonlyToken / SendrecvToken / InactiveToken / LoopbackToken) | |
| = | pkgdName parmValue | |
| = | (EQUAL alternativeValue / INEQUAL VALUE) | |
| = | (VALUE / LSBRKT VALUE *(COMMA VALUE) RSBRKT ; sublist (i.e., A AND B AND ...)
/ LBRKT VALUE *(COMMA VALUE) RBRKT ; alternatives (i.e., A OR B OR ...) / LSBRKT VALUE COLON VALUE RSBRKT) ; range |
|
| = | LWSP (">" / "<" / "#") LWSP | |
| = | LWSP "[" LWSP | |
| = | LWSP "]" LWSP ; Note - The octet zero is not among the permitted characters in
; octet string. As the current definition is limited to SDP, and a ; zero octet would not be a legal character in SDP, this is not a ; concern. |
|
| = | LocalToken LBRKT octetString RBRKT | |
| = | RemoteToken LBRKT octetString RBRKT | |
| = | EventBufferToken [LBRKT eventSpec *(COMMA eventSpec) RBRKT] | |
| = | pkgdName [LBRKT eventSpecParameter *(COMMA eventSpecParameter) RBRKT] | |
| = | (eventStream / eventOther) | |
| = | BufferToken EQUAL ("OFF" / LockStepToken) | |
| = | TerminationStateToken LBRKT terminationStateParm *(COMMA terminationStateParm) RBRKT ; at-most-once per item except for propertyParm
|
|
| = | (propertyParm / serviceStates / eventBufferControl) | |
| = | ServiceStatesToken EQUAL (TestToken / OutOfSvcToken / InSvcToken) | |
| = | MuxToken EQUAL MuxType terminationIDList | |
| = | (H221Token / H223Token / H226Token / V76Token / extensionParameter) | |
| = | UINT16 | |
| = | (PackageName SLASH ItemID) ;specific item
/ (PackageName SLASH "*") ;all items in package / ("*" SLASH "*") ; all items supported by the MG |
|
| = | NAME | |
| = | NAME | |
| = | EventsToken [EQUAL RequestID LBRKT requestedEvent *(COMMA requestedEvent) RBRKT] | |
| = | pkgdName [LBRKT eventParameter *(COMMA eventParameter) RBRKT] ; at-most-once each of KeepActiveToken , eventDM and eventStream
;at most one of either embedWithSig or embedNoSig but not both ;KeepActiveToken and embedWithSig must not both be present |
|
| = | (embedWithSig / embedNoSig / KeepActiveToken / eventDM / eventStream / eventOther) | |
| = | EmbedToken LBRKT signalsDescriptor [COMMA embedFirst] RBRKT | |
| = | EmbedToken LBRKT embedFirst RBRKT ; at-most-once of each
|
|
| = | EventsToken [EQUAL RequestID LBRKT secondRequestedEvent *(COMMA secondRequestedEvent) RBRKT] | |
| = | pkgdName [LBRKT secondEventParameter *(COMMA secondEventParameter) RBRKT] ; at-most-once each of embedSig , KeepActiveToken, eventDM or
; eventStream ; KeepActiveToken and embedSig must not both be present |
|
| = | (embedSig / KeepActiveToken / eventDM / eventStream / eventOther) | |
| = | EmbedToken LBRKT signalsDescriptor RBRKT | |
| = | StreamToken EQUAL StreamID | |
| = | eventParameterName parmValue | |
| = | NAME | |
| = | DigitMapToken EQUAL | |
| = | SignalsToken LBRKT [signalParm *(COMMA signalParm)] RBRKT | |
| = | signalList / signalRequest | |
| = | signalName [LBRKT sigParameter *(COMMA sigParameter) RBRKT] | |
| = | SignalListToken EQUAL signalListId LBRKT signalListParm *(COMMA signalListParm) RBRKT | |
| = | UINT16 ;exactly once signalType, at most once duration and every signal
;parameter |
|
| = | signalRequest | |
| = | pkgdName ;at-most-once sigStream, at-most-once sigSignalType,
;at-most-once sigDuration, every signalParameterName at most once |
|
| = | sigStream / sigSignalType / sigDuration / sigOther / notifyCompletion / KeepActiveToken | |
| = | StreamToken EQUAL StreamID | |
| = | sigParameterName parmValue | |
| = | NAME | |
| = | SignalTypeToken EQUAL signalType | |
| = | (OnOffToken / TimeOutToken / BriefToken) | |
| = | DurationToken EQUAL UINT16 | |
| = | NotifyCompletionToken EQUAL (LBRKT notificationReason *(COMMA notificationReason) RBRKT) | |
| = | (TimeOutToken / InterruptByEventToken / InterruptByNewSignalsDescrToken / OtherReasonToken) | |
| = | ObservedEventsToken EQUAL RequestID LBRKT observedEvent *(COMMA observedEvent) RBRKT ;time per event, because it might be buffered
|
|
| = | [TimeStamp LWSP COLON] LWSP pkgdName [LBRKT observedEventParameter *(COMMA observedEventParameter) RBRKT] ;at-most-once eventStream, every eventParameterName at most once
|
|
| = | eventStream / eventOther ; For an AuditCapReply with all events, the RequestID should be ALL.
|
|
| = | (UINT32 / "*") | |
| = | ModemToken ((EQUAL modemType) / (LSBRKT modemType *(COMMA modemType) RSBRKT)) [LBRKT propertyParm *(COMMA propertyParm) RBRKT] ; at-most-once except for extensionParameter
|
|
| = | (V32bisToken / V22bisToken / V18Token / V22Token / V32Token / V34Token / V90Token / V91Token / SynchISDNToken / extensionParameter) | |
| = | DigitMapToken EQUAL ((LBRKT digitMapValue RBRKT) / (digitMapName [LBRKT digitMapValue RBRKT])) | |
| = | NAME | |
| = | ["T" COLON Timer COMMA] ["S" COLON Timer COMMA] ["L" COLON Timer COMMA] digitMap | |
| = | 1*2DIGIT ; Units are seconds for T, S, and L timers, and hundreds of
; milliseconds for Z timer. Thus T, S, and L range from 1 to 99 ; seconds and Z from 100 ms to 9.9 s |
|
| = | (digitString / LWSP "(" LWSP digitStringList LWSP ")" LWSP) | |
| = | digitString *(LWSP "|" LWSP digitString) | |
| = | 1*(digitStringElement) | |
| = | digitPosition [DOT] | |
| = | digitMapLetter / digitMapRange | |
| = | ("x" / (LWSP "[" LWSP digitLetter LWSP "]" LWSP)) | |
| = | *((DIGIT "-" DIGIT) / digitMapLetter) | |
| = | DIGIT ;Basic event symbols
/ %x41-4B / %x61-6B ; a-k, A-K / "L" / "S" ;Inter-event timers (long, short) / "Z" ;Long duration modifier ;at-most-once, and DigitMapToken and PackagesToken are not allowed ;in AuditCapabilities command |
|
| = | (MuxToken / ModemToken / MediaToken / SignalsToken / EventBufferToken / DigitMapToken / StatsToken / EventsToken / ObservedEventsToken / PackagesToken) | |
| = | ServicesToken LBRKT serviceChangeParm *(COMMA serviceChangeParm) RBRKT ; each parameter at-most-once
; at most one of either serviceChangeAddress or serviceChangeMgcId ; but not both ; serviceChangeMethod and serviceChangeReason are REQUIRED |
|
| = | (serviceChangeMethod / serviceChangeReason / serviceChangeDelay / serviceChangeAddress / serviceChangeProfile / extension / TimeStamp / serviceChangeMgcId / serviceChangeVersion) | |
| = | ServicesToken LBRKT servChgReplyParm *(COMMA servChgReplyParm) RBRKT ; at-most-once. Version is REQUIRED on first ServiceChange response
; at most one of either serviceChangeAddress or serviceChangeMgcId ; but not both |
|
| = | (serviceChangeAddress / serviceChangeMgcId / serviceChangeProfile / serviceChangeVersion / TimeStamp) | |
| = | MethodToken EQUAL (FailoverToken / ForcedToken / GracefulToken / RestartToken / DisconnectedToken / HandOffToken / extensionParameter) ; A serviceChangeReason consists of a numeric reason code
; and an optional text description. ; A serviceChangeReason MUST be encoded using the quotedString ; form of VALUE. ; The quotedString SHALL contain a decimal reason code, ; optionally followed by a single space character and a ; textual description string. |
|
| = | ReasonToken EQUAL VALUE | |
| = | DelayToken EQUAL UINT32 | |
| = | ServiceChangeAddressToken EQUAL (mId / portNumber) | |
| = | MgcIdToken EQUAL mId | |
| = | ProfileToken EQUAL NAME SLASH Version | |
| = | VersionToken EQUAL Version | |
| = | extensionParameter parmValue | |
| = | PackagesToken LBRKT packagesItem *(COMMA packagesItem) RBRKT | |
| = | 1*2(DIGIT) | |
| = | NAME "-" UINT16 | |
| = | Date "T" Time ; per ISO 8601:1988
; Date = yyyymmdd |
|
| = | 8(DIGIT) ; Time = hhmmssss
|
|
| = | 8(DIGIT) | |
| = | StatsToken LBRKT statisticsParameter *(COMMA statisticsParameter) RBRKT ;at-most-once per item
|
|
| = | pkgdName [EQUAL VALUE] | |
| = | TopologyToken LBRKT topologyTriple *(COMMA topologyTriple) RBRKT | |
| = | terminationA COMMA terminationB COMMA topologyDirection | |
| = | TerminationID | |
| = | TerminationID | |
| = | BothwayToken / IsolateToken / OnewayToken | |
| = | PriorityToken EQUAL UINT16 | |
| = | "X" ("-" / "+") 1*6(ALPHA / DIGIT) ; octetString is used to describe SDP defined in RFC2327.
; Caution should be taken if CRLF in RFC2327 is used. ; To be safe, use EOL in this ABNF. ; Whenever "}" appears in SDP, it is escaped by "\", e.g., "\}" |
|
| = | *(nonEscapeChar) | |
| = | ("\}" / %x01-7C / %x7E-FF) ; Note - The double-quote character is not allowed in quotedString.
|
|
| = | DQUOTE *(SafeChar / RestChar / WSP) DQUOTE | |
| = | 1*5(DIGIT) ; %x0-FFFF
|
|
| = | 1*10(DIGIT) ; %x0-FFFFFFFF
|
|
| = | ALPHA *63(ALPHA / DIGIT / "_") | |
| = | quotedString / 1*(SafeChar) | |
| = | DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" / "\'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" / "(" / ")" / "%" / "|" / "." | |
| = | LWSP %x3D LWSP ; "="
|
|
| = | %x3A ; ":"
|
|
| = | LWSP %x7B LWSP ; "{"
|
|
| = | LWSP %x7D LWSP ; "}"
|
|
| = | LWSP %x2C LWSP ; ","
|
|
| = | %x2E ; "."
|
|
| = | %x2F ; "/"
|
|
| = | %x41-5A / %x61-7A ; A-Z / a-z
|
|
| = | %x30-39 ; 0-9
|
|
| = | %x22 ; " (Double Quote)
|
|
| = | (DIGIT / "A" / "B" / "C" / "D" / "E" / "F") | |
| = | %x20 ; space
|
|
| = | %x09 ; horizontal tab
|
|
| = | %x0D ; Carriage return
|
|
| = | %x0A ; linefeed
|
|
| = | *(WSP / COMMENT / EOL) | |
| = | (CR [LF] / LF) | |
| = | SP / HTAB ; white space
|
|
| = | (WSP / EOL / COMMENT) LWSP | |
| = | ";" *(SafeChar / RestChar / WSP / %x22) EOL | |
| = | ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" / "<" / ">" / "=" ; New Tokens added to sigParameter must take the format of SPA*
; * may be of any form i.e., SPAM ; New Tokens added to eventParameter must take the form of EPA* ; * may be of any form i.e., EPAD |
|
| = | ("Add" / "A") | |
| = | ("Audit" / "AT") | |
| = | ("AuditCapability" / "AC") | |
| = | ("AuditValue" / "AV") | |
| = | ("Authentication" / "AU") | |
| = | ("Bothway" / "BW") | |
| = | ("Brief" / "BR") | |
| = | ("Buffer" / "BF") | |
| = | ("Context" / "C") | |
| = | ("ContextAudit" / "CA") | |
| = | ("DigitMap" / "DM") | |
| = | ("Disconnected" / "DC") | |
| = | ("Delay" / "DL") | |
| = | ("Duration" / "DR") | |
| = | ("Embed" / "EM") | |
| = | ("Emergency" / "EG") | |
| = | ("Error" / "ER") | |
| = | ("EventBuffer" / "EB") | |
| = | ("Events" / "E") | |
| = | ("Failover" / "FL") | |
| = | ("Forced" / "FO") | |
| = | ("Graceful" / "GR") | |
| = | ("H221") | |
| = | ("H223") | |
| = | ("H226") | |
| = | ("HandOff" / "HO") | |
| = | ("ImmAckRequired" / "IA") | |
| = | ("Inactive" / "IN") | |
| = | ("Isolate" / "IS") | |
| = | ("InService" / "IV") | |
| = | ("IntByEvent" / "IBE") | |
| = | ("IntBySigDescr" / "IBS") | |
| = | ("KeepActive" / "KA") | |
| = | ("Local" / "L") | |
| = | ("LocalControl" / "O") | |
| = | ("LockStep" / "SP") | |
| = | ("Loopback" / "LB") | |
| = | ("Media" / "M") | |
| = | ("MEGACO" / "!") | |
| = | ("Method" / "MT") | |
| = | ("MgcIdToTry" / "MG") | |
| = | ("Mode" / "MO") | |
| = | ("Modify" / "MF") | |
| = | ("Modem" / "MD") | |
| = | ("Move" / "MV") | |
| = | ("MTP") | |
| = | ("Mux" / "MX") | |
| = | ("Notify" / "N") | |
| = | ("NotifyCompletion" / "NC") | |
| = | ("ObservedEvents" / "OE") | |
| = | ("Oneway" / "OW") | |
| = | ("OnOff" / "OO") | |
| = | ("OtherReason" / "OR") | |
| = | ("OutOfService" / "OS") | |
| = | ("Packages" / "PG") | |
| = | ("Pending" / "PN") | |
| = | ("Priority" / "PR") | |
| = | ("Profile" / "PF") | |
| = | ("Reason" / "RE") | |
| = | ("ReceiveOnly" / "RC") | |
| = | ("Reply" / "P") | |
| = | ("Restart" / "RS") | |
| = | ("Remote" / "R") | |
| = | ("ReservedGroup" / "RG") | |
| = | ("ReservedValue" / "RV") | |
| = | ("SendOnly" / "SO") | |
| = | ("SendReceive" / "SR") | |
| = | ("Services" / "SV") | |
| = | ("ServiceStates" / "SI") | |
| = | ("ServiceChange" / "SC") | |
| = | ("ServiceChangeAddress" / "AD") | |
| = | ("SignalList" / "SL") | |
| = | ("Signals" / "SG") | |
| = | ("SignalType" / "SY") | |
| = | ("Statistics" / "SA") | |
| = | ("Stream" / "ST") | |
| = | ("Subtract" / "S") | |
| = | ("SynchISDN" / "SN") | |
| = | ("TerminationState" / "TS") | |
| = | ("Test" / "TE") | |
| = | ("TimeOut" / "TO") | |
| = | ("Topology" / "TP") | |
| = | ("Transaction" / "T") | |
| = | ("TransactionResponseAck" / "K") | |
| = | ("V18") | |
| = | ("V22") | |
| = | ("V22b") | |
| = | ("V32") | |
| = | ("V32b") | |
| = | ("V34") | |
| = | ("V76") | |
| = | ("V90") | |
| = | ("V91") | |
| = | ("Version" / "V") | |
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.