diff options
Diffstat (limited to 'lib/megaco/src/binary/MEDIA-GATEWAY-CONTROL-v3.asn')
-rw-r--r-- | lib/megaco/src/binary/MEDIA-GATEWAY-CONTROL-v3.asn | 1068 |
1 files changed, 1068 insertions, 0 deletions
diff --git a/lib/megaco/src/binary/MEDIA-GATEWAY-CONTROL-v3.asn b/lib/megaco/src/binary/MEDIA-GATEWAY-CONTROL-v3.asn new file mode 100644 index 0000000000..644a35ffee --- /dev/null +++ b/lib/megaco/src/binary/MEDIA-GATEWAY-CONTROL-v3.asn @@ -0,0 +1,1068 @@ +MEDIA-GATEWAY-CONTROL-v3 +{itu-t(0) recommendation(0) h(8) h248(248) + modules(0) media-gateway-control(0) version3(3)} +DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + + +MegacoMessage ::= SEQUENCE + { + authHeader AuthenticationHeader OPTIONAL, + mess Message + } + +AuthenticationHeader ::= SEQUENCE + { + secParmIndex SecurityParmIndex, + seqNum SequenceNum, + ad AuthData + } + +SecurityParmIndex ::= OCTET STRING(SIZE(4)) + +SequenceNum ::= OCTET STRING(SIZE(4)) + +AuthData ::= OCTET STRING (SIZE (12..32)) + +Message ::= SEQUENCE + { + version INTEGER(0..99), + -- The version of the protocol defined here is equal to 3. + mId MId, -- Name/address of message originator + messageBody CHOICE + { + messageError ErrorDescriptor, + transactions SEQUENCE OF Transaction + }, + ... + } + +MId ::= CHOICE + { + ip4Address IP4Address, + ip6Address IP6Address, + domainName DomainName, + deviceName PathName, + mtpAddress OCTET STRING(SIZE(2..4)), + -- 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. + ... + } + +DomainName ::= SEQUENCE + { + name IA5String, + -- The name starts with an alphanumeric digit followed by a + -- sequence of alphanumeric digits, hyphens and dots. No two + -- dots shall occur consecutively. + portNumber INTEGER(0..65535) OPTIONAL + } + +IP4Address ::= SEQUENCE + { + address OCTET STRING (SIZE(4)), + portNumber INTEGER(0..65535) OPTIONAL + } + +IP6Address ::= SEQUENCE + { + address OCTET STRING (SIZE(16)), + portNumber INTEGER(0..65535) OPTIONAL + } + +PathName ::= IA5String(SIZE (1..64)) +-- See A.3 + +Transaction ::= CHOICE + { + transactionRequest TransactionRequest, + transactionPending TransactionPending, + transactionReply TransactionReply, + transactionResponseAck TransactionResponseAck, + -- use of response acks is dependent on underlying transport + ..., + segmentReply SegmentReply + } + +TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer + +TransactionRequest ::= SEQUENCE + { + transactionId TransactionId, + actions SEQUENCE OF ActionRequest, + ... + } + +TransactionPending ::= SEQUENCE + { + transactionId TransactionId, + ... + } + +TransactionReply ::= SEQUENCE + { + transactionId TransactionId, + immAckRequired NULL OPTIONAL, + transactionResult CHOICE + { + transactionError ErrorDescriptor, + actionReplies SEQUENCE OF ActionReply + }, + ..., + segmentNumber SegmentNumber OPTIONAL, + segmentationComplete NULL OPTIONAL + } + +SegmentReply ::= SEQUENCE + { + transactionId TransactionId, + segmentNumber SegmentNumber, + segmentationComplete NULL OPTIONAL, + ... + } + +SegmentNumber ::= INTEGER(0..65535) + +TransactionResponseAck ::= SEQUENCE OF TransactionAck +TransactionAck ::= SEQUENCE + { + firstAck TransactionId, + lastAck TransactionId OPTIONAL + } + +ErrorDescriptor ::= SEQUENCE + { + errorCode ErrorCode, + errorText ErrorText OPTIONAL + } + +ErrorCode ::= INTEGER(0..65535) +-- See clause 14 for IANA considerations with respect to error codes +ErrorText ::= IA5String + +ContextID ::= INTEGER(0..4294967295) +-- Context NULL Value: 0 +-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE) +-- Context ALL Value: 4294967295 (0xFFFFFFFF) + + +ActionRequest ::= SEQUENCE + { + contextId ContextID, + contextRequest ContextRequest OPTIONAL, + contextAttrAuditReq ContextAttrAuditRequest OPTIONAL, + commandRequests SEQUENCE OF CommandRequest + } + +ActionReply ::= SEQUENCE + { + contextId ContextID, + errorDescriptor ErrorDescriptor OPTIONAL, + contextReply ContextRequest OPTIONAL, + commandReply SEQUENCE OF CommandReply + } + +ContextRequest ::= SEQUENCE + { + priority INTEGER(0..15) OPTIONAL, + emergency BOOLEAN OPTIONAL, + topologyReq SEQUENCE OF TopologyRequest OPTIONAL, + ..., + iepscallind BOOLEAN OPTIONAL, + contextProp SEQUENCE OF PropertyParm OPTIONAL, + contextList SEQUENCE OF ContextID OPTIONAL + } +-- When returning a contextList, the contextId in the ActionReply +-- construct will return the contextId from the associated ActionRequest. + +ContextAttrAuditRequest ::= SEQUENCE + { + topology NULL OPTIONAL, + emergency NULL OPTIONAL, + priority NULL OPTIONAL, + ..., + iepscallind NULL OPTIONAL, + contextPropAud SEQUENCE OF IndAudPropertyParm OPTIONAL, + + selectpriority INTEGER(0..15) OPTIONAL, + -- to select given priority + + selectemergency BOOLEAN OPTIONAL, + -- to select if emergency set/not set (T/F) + + selectiepscallind BOOLEAN OPTIONAL, + -- to select if IEPS set/not set (T/F) + + selectLogic SelectLogic OPTIONAL -- default is AND + } + +SelectLogic ::= CHOICE + { + andAUDITSelect NULL, -- all selection conditions satisfied + orAUDITSelect NULL, -- at least one selection condition satisfied + ... + } + + +CommandRequest ::= SEQUENCE + { + command Command, + optional NULL OPTIONAL, + wildcardReturn NULL OPTIONAL, + ... + } + +Command ::= CHOICE + { + addReq AmmRequest, + moveReq AmmRequest, + modReq AmmRequest, + -- Add, Move, Modify requests have the same parameters + subtractReq SubtractRequest, + auditCapRequest AuditRequest, + auditValueRequest AuditRequest, + notifyReq NotifyRequest, + serviceChangeReq ServiceChangeRequest, + ... + } + +CommandReply ::= CHOICE + { + addReply AmmsReply, + moveReply AmmsReply, + modReply AmmsReply, + subtractReply AmmsReply, + -- Add, Move, Modify, Subtract replies have the same parameters + auditCapReply AuditReply, + auditValueReply AuditReply, + notifyReply NotifyReply, + serviceChangeReply ServiceChangeReply, + ... + } + +TopologyRequest ::= SEQUENCE + { + terminationFrom TerminationID, + terminationTo TerminationID, + topologyDirection ENUMERATED + { + bothway(0), + isolate(1), + oneway(2) + }, + ..., + streamID StreamID OPTIONAL, + topologyDirectionExtension ENUMERATED + { + onewayexternal(0), + onewayboth(1), + ... + } OPTIONAL + -- This is not according to the standard, but without it + -- the TopologyRequest will be useless since topologyDirection + -- and topologyDirectionExtension are contradictory. + } + +AmmRequest ::= SEQUENCE + { + terminationID TerminationIDList, + descriptors SEQUENCE OF AmmDescriptor, + -- At most one descriptor of each type (see AmmDescriptor) + -- allowed in the sequence. + ... + } + +AmmDescriptor ::= CHOICE + { + mediaDescriptor MediaDescriptor, + modemDescriptor ModemDescriptor, + muxDescriptor MuxDescriptor, + eventsDescriptor EventsDescriptor, + eventBufferDescriptor EventBufferDescriptor, + signalsDescriptor SignalsDescriptor, + digitMapDescriptor DigitMapDescriptor, + auditDescriptor AuditDescriptor, + ..., + statisticsDescriptor StatisticsDescriptor + } + + +AmmsReply ::= SEQUENCE + { + terminationID TerminationIDList, + terminationAudit TerminationAudit OPTIONAL, + ... + } + +SubtractRequest ::= SEQUENCE + { + terminationID TerminationIDList, + auditDescriptor AuditDescriptor OPTIONAL, + ... + } + +AuditRequest ::= SEQUENCE + { + terminationID TerminationID, + auditDescriptor AuditDescriptor, + ..., + terminationIDList TerminationIDList OPTIONAL + } +-- terminationID shall contain the first termination in the +-- list when using the terminationIDList construct in AuditRequest + +AuditReply ::= CHOICE + { + contextAuditResult TerminationIDList, + error ErrorDescriptor, + auditResult AuditResult, + ..., + auditResultTermList TermListAuditResult + } + +AuditResult ::= SEQUENCE + { + + terminationID TerminationID, + terminationAuditResult TerminationAudit + } + +TermListAuditResult ::= SEQUENCE + { + terminationIDList TerminationIDList, + terminationAuditResult TerminationAudit, + ... + } + +TerminationAudit ::= SEQUENCE OF AuditReturnParameter + +AuditReturnParameter ::= CHOICE + { + errorDescriptor ErrorDescriptor, + mediaDescriptor MediaDescriptor, + modemDescriptor ModemDescriptor, + muxDescriptor MuxDescriptor, + eventsDescriptor EventsDescriptor, + eventBufferDescriptor EventBufferDescriptor, + signalsDescriptor SignalsDescriptor, + digitMapDescriptor DigitMapDescriptor, + observedEventsDescriptor ObservedEventsDescriptor, + statisticsDescriptor StatisticsDescriptor, + packagesDescriptor PackagesDescriptor, + emptyDescriptors AuditDescriptor, + ... + } + +AuditDescriptor ::= SEQUENCE + { + auditToken BIT STRING + { + muxToken(0), modemToken(1), mediaToken(2), + eventsToken(3), signalsToken(4), + digitMapToken(5), statsToken(6), + observedEventsToken(7), + packagesToken(8), eventBufferToken(9) + } OPTIONAL, + ..., + auditPropertyToken SEQUENCE OF IndAuditParameter OPTIONAL + } + + +IndAuditParameter ::= CHOICE + { + -- Note that the lower/upper case letters of the tags have + -- been changed. The same changes has been made in text... + indAudMediaDescriptor IndAudMediaDescriptor, + indAudEventsDescriptor IndAudEventsDescriptor, + indAudEventBufferDescriptor IndAudEventBufferDescriptor, + indAudSignalsDescriptor IndAudSignalsDescriptor, + indAudDigitMapDescriptor IndAudDigitMapDescriptor, + indAudStatisticsDescriptor IndAudStatisticsDescriptor, + indAudPackagesDescriptor IndAudPackagesDescriptor, + ... + } + +IndAudMediaDescriptor ::= SEQUENCE + { + + termStateDescr IndAudTerminationStateDescriptor OPTIONAL, + streams CHOICE + { + oneStream IndAudStreamParms, + multiStream SEQUENCE OF IndAudStreamDescriptor + } OPTIONAL, + ... + } + +IndAudStreamDescriptor ::= SEQUENCE + { + streamID StreamID, + streamParms IndAudStreamParms + } + +IndAudStreamParms ::= SEQUENCE + { + localControlDescriptor IndAudLocalControlDescriptor OPTIONAL, + localDescriptor IndAudLocalRemoteDescriptor OPTIONAL, + remoteDescriptor IndAudLocalRemoteDescriptor OPTIONAL, + ..., + statisticsDescriptor IndAudStatisticsDescriptor OPTIONAL + } + +IndAudLocalControlDescriptor ::= SEQUENCE + { + streamMode NULL OPTIONAL, + reserveValue NULL OPTIONAL, + reserveGroup NULL OPTIONAL, + propertyParms SEQUENCE OF IndAudPropertyParm OPTIONAL, + ..., + streamModeSel StreamMode OPTIONAL + -- must not have both streamMode and streamModeSel + -- if both are present only streamModeSel shall be honoured + } + +IndAudPropertyParm ::= SEQUENCE + { + name PkgdName, + ..., + propertyParms PropertyParm OPTIONAL + } +-- to select based on property values +-- AND/OR selection logic is specified at context level + +IndAudLocalRemoteDescriptor ::= SEQUENCE + { + propGroupID INTEGER(0..65535) OPTIONAL, + propGrps IndAudPropertyGroup, + ... + } + +IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm + +IndAudTerminationStateDescriptor ::= SEQUENCE + { + propertyParms SEQUENCE OF IndAudPropertyParm, + eventBufferControl NULL OPTIONAL, + serviceState NULL OPTIONAL, + ..., + serviceStateSel ServiceState OPTIONAL + -- must not have both serviceState and serviceStateSel + -- if both are present only serviceStateSel shall be honoured + } + +IndAudEventsDescriptor ::= SEQUENCE + { + requestID RequestID OPTIONAL, + pkgdName PkgdName, + streamID StreamID OPTIONAL, + ... + } + +IndAudEventBufferDescriptor ::= SEQUENCE + { + eventName PkgdName, + streamID StreamID OPTIONAL, + ... + } + +IndAudSignalsDescriptor ::=CHOICE + { + signal IndAudSignal, + seqSigList IndAudSeqSigList, + ... + } + +IndAudSeqSigList ::= SEQUENCE + { + id INTEGER(0..65535), + signalList IndAudSignal OPTIONAL + } + +IndAudSignal ::= SEQUENCE + { + signalName PkgdName, + streamID StreamID OPTIONAL, + ..., + signalRequestID RequestID OPTIONAL + } + +IndAudDigitMapDescriptor ::= SEQUENCE + { + digitMapName DigitMapName OPTIONAL + } + +IndAudStatisticsDescriptor ::= SEQUENCE + { + statName PkgdName + } + +IndAudPackagesDescriptor ::= SEQUENCE + { + packageName Name, + packageVersion INTEGER(0..99), + ... + } + +NotifyRequest ::= SEQUENCE + { + terminationID TerminationIDList, + observedEventsDescriptor ObservedEventsDescriptor, + errorDescriptor ErrorDescriptor OPTIONAL, + ... + } + +NotifyReply ::= SEQUENCE + { + terminationID TerminationIDList, + errorDescriptor ErrorDescriptor OPTIONAL, + ... + } + +ObservedEventsDescriptor ::= SEQUENCE + { + requestId RequestID, + observedEventLst SEQUENCE OF ObservedEvent + } + +ObservedEvent ::= SEQUENCE + { + eventName EventName, + streamID StreamID OPTIONAL, + eventParList SEQUENCE OF EventParameter, + timeNotation TimeNotation OPTIONAL, + ... + } + +EventName ::= PkgdName + +EventParameter ::= SEQUENCE + { + eventParameterName Name, + value Value, + -- For use of extraInfo see the comment related to PropertyParm + extraInfo CHOICE + { + relation Relation, + range BOOLEAN, + sublist BOOLEAN + } OPTIONAL, + ... + + } + +ServiceChangeRequest ::= SEQUENCE + { + terminationID TerminationIDList, + serviceChangeParms ServiceChangeParm, + ... + } + +ServiceChangeReply ::= SEQUENCE + { + terminationID TerminationIDList, + serviceChangeResult ServiceChangeResult, + ... + } + +-- For ServiceChangeResult, no parameters are mandatory. Hence the +-- distinction between ServiceChangeParm and ServiceChangeResParm. +ServiceChangeResult ::= CHOICE + { + errorDescriptor ErrorDescriptor, + serviceChangeResParms ServiceChangeResParm + } + +WildcardField ::= OCTET STRING(SIZE(1)) + +TerminationID ::= SEQUENCE + { + wildcard SEQUENCE OF WildcardField, + id OCTET STRING(SIZE(1..8)), + ... + } +-- See A.1 for explanation of wildcarding mechanism. +-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination. + +TerminationIDList ::= SEQUENCE OF TerminationID + +MediaDescriptor ::= SEQUENCE + { + termStateDescr TerminationStateDescriptor OPTIONAL, + streams CHOICE + { + oneStream StreamParms, + multiStream SEQUENCE OF StreamDescriptor + } OPTIONAL, + ... + } + +StreamDescriptor ::= SEQUENCE + { + streamID StreamID, + streamParms StreamParms + } + +StreamParms ::= SEQUENCE + { + localControlDescriptor LocalControlDescriptor OPTIONAL, + localDescriptor LocalRemoteDescriptor OPTIONAL, + remoteDescriptor LocalRemoteDescriptor OPTIONAL, + ..., + statisticsDescriptor StatisticsDescriptor OPTIONAL + } + +LocalControlDescriptor ::= SEQUENCE + { + streamMode StreamMode OPTIONAL, + reserveValue BOOLEAN OPTIONAL, + reserveGroup BOOLEAN OPTIONAL, + propertyParms SEQUENCE OF PropertyParm, + ... + } + +StreamMode ::= ENUMERATED + { + sendOnly(0), + recvOnly(1), + sendRecv(2), + inactive(3), + loopBack(4), + ... + } + +-- In PropertyParm, value is a SEQUENCE OF octet string. When sent +-- by an MGC the interpretation is as follows: +-- empty sequence means CHOOSE +-- one element sequence specifies value +-- If the sublist field is not selected, a longer sequence means +-- "choose one of the values" (i.e. value1 OR value2 OR ...) +-- If the sublist field is selected, +-- a sequence with more than one element encodes the value of a +-- list-valued property (i.e. value1 AND value2 AND ...). +-- The relation field may only be selected if the value sequence +-- has length 1. It indicates that the MG has to choose a value +-- for the property. E.g. x > 3 (using the greaterThan +-- value for relation) instructs the MG to choose any value larger +-- than 3 for property x. +-- The range field may only be selected if the value sequence +-- has length 2. It indicates that the MG has to choose a value +-- in the range between the first octet in the value sequence and +-- the trailing octet in the value sequence, including the +-- boundary values. +-- When sent by the MG, only responses to an AuditCapability request +-- may contain multiple values, a range, or a relation field. + +PropertyParm ::= SEQUENCE + { + name PkgdName, + value SEQUENCE OF OCTET STRING, + extraInfo CHOICE + { + relation Relation, + range BOOLEAN, + sublist BOOLEAN + } OPTIONAL, + ... + } + +Name ::= OCTET STRING(SIZE(2)) + +PkgdName ::= OCTET STRING(SIZE(4)) +-- represents Package Name (2 octets) plus Property, Event, +-- Signal Names or Statistics ID. (2 octets) +-- To wildcard a package use 0xFFFF for first two octets, choose +-- is not allowed. To reference native property tag specified in +-- Annex C, use 0x0000 as first two octets. +-- To wildcard a Property, Event, Signal, or Statistics ID, use +-- 0xFFFF for last two octets, choose is not allowed. +-- Wildcarding of Package Name is permitted only if Property, +-- Event, Signal, or Statistics ID are +-- also wildcarded. + +Relation ::= ENUMERATED + { + greaterThan(0), + smallerThan(1), + unequalTo(2), + ... + } + +LocalRemoteDescriptor ::= SEQUENCE + { + propGrps SEQUENCE OF PropertyGroup, + ... + } + +PropertyGroup ::= SEQUENCE OF PropertyParm + +TerminationStateDescriptor ::= SEQUENCE + { + propertyParms SEQUENCE OF PropertyParm, + eventBufferControl EventBufferControl OPTIONAL, + serviceState ServiceState OPTIONAL, + ... + } + +EventBufferControl ::= ENUMERATED + { + off(0), + lockStep(1), + ... + } + +ServiceState ::= ENUMERATED + { + test(0), + outOfSvc(1), + inSvc(2), + ... + } + +MuxDescriptor ::= SEQUENCE + { + muxType MuxType, + termList SEQUENCE OF TerminationID, + nonStandardData NonStandardData OPTIONAL, + ... + } + +MuxType ::= ENUMERATED + { + h221(0), + h223(1), + h226(2), + v76(3), + ..., + nx64k(4) + } + +StreamID ::= INTEGER(0..65535) -- 16-bit unsigned integer + +EventsDescriptor ::= SEQUENCE + { + requestID RequestID OPTIONAL, + -- RequestID must be present if eventList + -- is non empty + eventList SEQUENCE OF RequestedEvent, + ... + } + +RequestedEvent ::= SEQUENCE + { + pkgdName PkgdName, + streamID StreamID OPTIONAL, + eventAction RequestedActions OPTIONAL, + evParList SEQUENCE OF EventParameter, + ... + } + +RegulatedEmbeddedDescriptor ::= SEQUENCE + { + secondEvent SecondEventsDescriptor OPTIONAL, + signalsDescriptor SignalsDescriptor OPTIONAL, + ... + } + +NotifyBehaviour ::= CHOICE + { + notifyImmediate NULL, + notifyRegulated RegulatedEmbeddedDescriptor, + neverNotify NULL, + ... + } + +RequestedActions ::= SEQUENCE + { + keepActive BOOLEAN OPTIONAL, + eventDM EventDM OPTIONAL, + secondEvent SecondEventsDescriptor OPTIONAL, + signalsDescriptor SignalsDescriptor OPTIONAL, + ..., + notifyBehaviour NotifyBehaviour OPTIONAL, + resetEventsDescriptor NULL OPTIONAL + } + +EventDM ::= CHOICE + { + digitMapName DigitMapName, + digitMapValue DigitMapValue + } + +SecondEventsDescriptor ::= SEQUENCE + { + requestID RequestID OPTIONAL, + eventList SEQUENCE OF SecondRequestedEvent, + ... + } + +SecondRequestedEvent ::= SEQUENCE + { + pkgdName PkgdName, + streamID StreamID OPTIONAL, + eventAction SecondRequestedActions OPTIONAL, + evParList SEQUENCE OF EventParameter, + ... + } + +SecondRequestedActions ::= SEQUENCE + { + keepActive BOOLEAN OPTIONAL, + eventDM EventDM OPTIONAL, + signalsDescriptor SignalsDescriptor OPTIONAL, + ..., + notifyBehaviour NotifyBehaviour OPTIONAL, + resetEventsDescriptor NULL OPTIONAL + } + +EventBufferDescriptor ::= SEQUENCE OF EventSpec + +EventSpec ::= SEQUENCE + { + eventName EventName, + streamID StreamID OPTIONAL, + eventParList SEQUENCE OF EventParameter, + ... + } + + +SignalsDescriptor ::= SEQUENCE OF SignalRequest + +SignalRequest ::= CHOICE + { + signal Signal, + seqSigList SeqSigList, + ... + } + +SeqSigList ::= SEQUENCE + { + id INTEGER(0..65535), + signalList SEQUENCE OF Signal + } + +Signal ::= SEQUENCE + { + signalName SignalName, + streamID StreamID OPTIONAL, + sigType SignalType OPTIONAL, + duration INTEGER (0..65535) OPTIONAL, + notifyCompletion NotifyCompletion OPTIONAL, + keepActive BOOLEAN OPTIONAL, + sigParList SEQUENCE OF SigParameter, + ..., + direction SignalDirection OPTIONAL, + requestID RequestID OPTIONAL, + intersigDelay INTEGER (0..65535) OPTIONAL + } + +SignalType ::= ENUMERATED + { + brief(0), + onOff(1), + timeOut(2), + ... + } + +SignalDirection ::= ENUMERATED + { + internal(0), + external(1), + both(3), + ... + } + +SignalName ::= PkgdName + +NotifyCompletion ::= BIT STRING + { + onTimeOut(0), onInterruptByEvent(1), + onInterruptByNewSignalDescr(2), otherReason(3), onIteration(4) + } + +SigParameter ::= SEQUENCE + { + sigParameterName Name, + value Value, + -- For use of extraInfo see the comment related to PropertyParm + extraInfo CHOICE + { + relation Relation, + range BOOLEAN, + sublist BOOLEAN + } OPTIONAL, + ... + } + +-- For an AuditCapReply with all events, the RequestID SHALL be ALL. +-- ALL is represented by 0xffffffff. +RequestID ::= INTEGER(0..4294967295) -- 32-bit unsigned integer + +ModemDescriptor ::= SEQUENCE + { + mtl SEQUENCE OF ModemType, + mpl SEQUENCE OF PropertyParm, + nonStandardData NonStandardData OPTIONAL + } + +ModemType ::= ENUMERATED + { + v18(0), + v22(1), + v22bis(2), + v32(3), + v32bis(4), + v34(5), + v90(6), + v91(7), + synchISDN(8), + ... + } + +DigitMapDescriptor ::= SEQUENCE + { + digitMapName DigitMapName OPTIONAL, + digitMapValue DigitMapValue OPTIONAL + } + +DigitMapName ::= Name + +DigitMapValue ::= SEQUENCE + { + startTimer INTEGER(0..99) OPTIONAL, + shortTimer INTEGER(0..99) OPTIONAL, + longTimer INTEGER(0..99) OPTIONAL, + digitMapBody IA5String, + -- Units are seconds for start, short and long timers, and + -- hundreds of milliseconds for duration timer. Thus start, + -- short, and long range from 1 to 99 seconds and duration + -- from 100 ms to 9.9 s + -- See A.3 for explanation of digit map syntax + ..., + durationTimer INTEGER (0..99) OPTIONAL + } + +ServiceChangeParm ::= SEQUENCE + { + serviceChangeMethod ServiceChangeMethod, + serviceChangeAddress ServiceChangeAddress OPTIONAL, + serviceChangeVersion INTEGER(0..99) OPTIONAL, + serviceChangeProfile ServiceChangeProfile OPTIONAL, + serviceChangeReason Value, + -- A serviceChangeReason consists of a numeric reason code + -- and an optional text description. + -- The serviceChangeReason SHALL be a string consisting of + -- a decimal reason code, optionally followed by a single + -- space character and a textual description string. + -- This string is first BER-encoded as an IA5String. + -- The result of this BER-encoding is then encoded as + -- an ASN.1 OCTET STRING type, "double wrapping" the + -- value + -- as was done for package elements. + serviceChangeDelay INTEGER(0..4294967295) OPTIONAL, + -- 32-bit unsigned integer + serviceChangeMgcId MId OPTIONAL, + timeStamp TimeNotation OPTIONAL, + nonStandardData NonStandardData OPTIONAL, + ..., + serviceChangeInfo AuditDescriptor OPTIONAL, + serviceChangeIncompleteFlag NULL OPTIONAL + } + +ServiceChangeAddress ::= CHOICE + { + portNumber INTEGER(0..65535), -- TCP/UDP port number + ip4Address IP4Address, + ip6Address IP6Address, + domainName DomainName, + deviceName PathName, + mtpAddress OCTET STRING(SIZE(2..4)), + ... + } + +ServiceChangeResParm ::= SEQUENCE + { + serviceChangeMgcId MId OPTIONAL, + serviceChangeAddress ServiceChangeAddress OPTIONAL, + serviceChangeVersion INTEGER(0..99) OPTIONAL, + serviceChangeProfile ServiceChangeProfile OPTIONAL, + timestamp TimeNotation OPTIONAL, + ... + } + +ServiceChangeMethod ::= ENUMERATED + { + failover(0), + forced(1), + graceful(2), + restart(3), + disconnected(4), + handOff(5), + ... + } + +ServiceChangeProfile ::= SEQUENCE + { + profileName IA5String(SIZE (1..67)) + + -- 64 characters for name, 1 for "/", 2 for version to match ABNF + } + +PackagesDescriptor ::= SEQUENCE OF PackagesItem + +PackagesItem ::= SEQUENCE + { + packageName Name, + packageVersion INTEGER(0..99), + ... + } + +StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter + +StatisticsParameter ::= SEQUENCE + { + statName PkgdName, + statValue Value OPTIONAL + } + +-- If statistic consists of a sub-list there will be more than one +-- octetstring in statValue. + +NonStandardData ::= SEQUENCE + { + nonStandardIdentifier NonStandardIdentifier, + data OCTET STRING + } + +NonStandardIdentifier ::= CHOICE + { + object OBJECT IDENTIFIER, + h221NonStandard H221NonStandard, + experimental IA5String(SIZE(8)), + -- first two characters SHOULD be "X-" or "X+" + ... + } + +H221NonStandard ::= SEQUENCE + { t35CountryCode1 INTEGER(0..255), + t35CountryCode2 INTEGER(0..255), -- country, as per T.35 + t35Extension INTEGER(0..255), -- assigned nationally + manufacturerCode INTEGER(0..65535), -- assigned nationally + ... + } + +TimeNotation ::= SEQUENCE + { + date IA5String(SIZE(8)), -- yyyymmdd format + time IA5String(SIZE(8)) -- hhmmssss format + -- per ISO 8601:1988 + } + +Value ::= SEQUENCE OF OCTET STRING + +END |