diff options
Diffstat (limited to 'epan/dissectors/asn1/h248/MEGACO.asn')
-rw-r--r-- | epan/dissectors/asn1/h248/MEGACO.asn | 987 |
1 files changed, 987 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h248/MEGACO.asn b/epan/dissectors/asn1/h248/MEGACO.asn new file mode 100644 index 0000000000..aab13234c9 --- /dev/null +++ b/epan/dissectors/asn1/h248/MEGACO.asn @@ -0,0 +1,987 @@ +-- This ASN definition is taken from +-- http://132.151.1.19/internet-drafts/draft-ietf-megaco-h248v2-04.txt +-- +-- and has been modified to pass through the ASN2ETH compiler +-- (we dont support automatic tags yet so the tags had to be added by +-- hand) + +MEDIA-GATEWAY-CONTROL {itu-t(0) recommendation(0) h(8) h248(248) +modules(0) media-gateway-control(0) version2(2)} +DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + + MegacoMessage ::= SEQUENCE + { + authHeader [0] IMPLICIT AuthenticationHeader OPTIONAL, + mess [1] IMPLICIT Message + } + + AuthenticationHeader ::= SEQUENCE + { + secParmIndex [0] IMPLICIT SecurityParmIndex, + seqNum [1] IMPLICIT SequenceNum, + ad [2] IMPLICIT AuthData + } + + SecurityParmIndex ::= OCTET STRING(SIZE(4)) + + SequenceNum ::= OCTET STRING(SIZE(4)) + + AuthData ::= OCTET STRING (SIZE (12..32)) + + Message ::= SEQUENCE + { + version [0] IMPLICIT INTEGER(0..99), + -- The version of the protocol defined here is equal to 2. + mId [1] MId, -- Name/address of message originator + messageBody [2] CHOICE + { + messageError [0] IMPLICIT ErrorDescriptor, + transactions [1] IMPLICIT SEQUENCE OF Transaction + }, + ... + } + + MId ::= CHOICE + { + ip4Address [0] IMPLICIT IP4Address, + ip6Address [1] IMPLICIT IP6Address, + domainName [2] IMPLICIT DomainName, + deviceName [3] IMPLICIT PathName, + mtpAddress [4] IMPLICIT MtpAddress, + -- 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. + ... + } + + MtpAddress ::= OCTET STRING(SIZE(2..4)) + + DomainName ::= SEQUENCE + { + name [0] IMPLICIT 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 [1] IMPLICIT INTEGER(0..65535) OPTIONAL + } + + IP4Address ::= SEQUENCE + { + address [0] IMPLICIT OCTET STRING (SIZE(4)), + portNumber [1] IMPLICIT INTEGER(0..65535) OPTIONAL + } + + IP6Address ::= SEQUENCE + { + address [0] IMPLICIT OCTET STRING (SIZE(16)), + portNumber [1] IMPLICIT INTEGER(0..65535) OPTIONAL + } + + PathName ::= IA5String(SIZE (1..64)) + -- See A.3 + + Transaction ::= CHOICE + { + transactionRequest [0] IMPLICIT TransactionRequest, + transactionPending [1] IMPLICIT TransactionPending, + transactionReply [2] IMPLICIT TransactionReply, + transactionResponseAck [3] IMPLICIT TransactionResponseAck, + -- use of response acks is dependent on underlying transport + ... + } + + TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer + + TransactionRequest ::= SEQUENCE + { + transactionId [0] IMPLICIT TransactionId, + actions [1] IMPLICIT SEQUENCE OF ActionRequest, + ... + } + + TransactionPending ::= SEQUENCE + { + transactionId [0] IMPLICIT TransactionId, + ... + } + + TransactionReply ::= SEQUENCE + { + transactionId [0] IMPLICIT TransactionId, + immAckRequired [1] IMPLICIT NULL OPTIONAL, + transactionResult [2] CHOICE + { + transactionError [0] IMPLICIT ErrorDescriptor, + actionReplies [1] IMPLICIT SEQUENCE OF ActionReply + }, + ... + } + + TransactionResponseAck ::= SEQUENCE OF TransactionAck + TransactionAck ::= SEQUENCE + { + firstAck [0] IMPLICIT TransactionId, + lastAck [1] IMPLICIT TransactionId OPTIONAL + } + + ErrorDescriptor ::= SEQUENCE + { + errorCode [0] IMPLICIT ErrorCode, + errorText [1] IMPLICIT 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 [0] IMPLICIT ContextID, + contextRequest [1] IMPLICIT ContextRequest OPTIONAL, + contextAttrAuditReq [2] IMPLICIT ContextAttrAuditRequest OPTIONAL, + commandRequests [3] IMPLICIT SEQUENCE OF CommandRequest + } + + ActionReply ::= SEQUENCE + { + contextId [0] IMPLICIT ContextID, + errorDescriptor [1] IMPLICIT ErrorDescriptor OPTIONAL, + contextReply [2] IMPLICIT ContextRequest OPTIONAL, + commandReply [3] IMPLICIT SEQUENCE OF CommandReply + } + + ContextRequest ::= SEQUENCE + { + priority [0] IMPLICIT INTEGER(0..15) OPTIONAL, + emergency [1] IMPLICIT BOOLEAN OPTIONAL, + topologyReq [2] IMPLICIT SEQUENCE OF TopologyRequest OPTIONAL, + ... + } + + ContextAttrAuditRequest ::= SEQUENCE + { + topology [0] IMPLICIT NULL OPTIONAL, + emergency [1] IMPLICIT NULL OPTIONAL, + priority [2] IMPLICIT NULL OPTIONAL, + ... + } + + CommandRequest ::= SEQUENCE + { + command [0] Command, + optional [1] IMPLICIT NULL OPTIONAL, + wildcardReturn [2] IMPLICIT NULL OPTIONAL, + ... + } + + Command ::= CHOICE + { + addReq [0] IMPLICIT AmmRequest, + moveReq [1] IMPLICIT AmmRequest, + modReq [2] IMPLICIT AmmRequest, + -- Add, Move, Modify requests have the same parameters + subtractReq [3] IMPLICIT SubtractRequest, + auditCapRequest [4] IMPLICIT AuditRequest, + auditValueRequest [5] IMPLICIT AuditRequest, + notifyReq [6] IMPLICIT NotifyRequest, + serviceChangeReq [7] IMPLICIT ServiceChangeRequest, + ... + } + + CommandReply ::= CHOICE + { + addReply [0] IMPLICIT AmmsReply, + moveReply [1] IMPLICIT AmmsReply, + modReply [2] IMPLICIT AmmsReply, + subtractReply [3] IMPLICIT AmmsReply, + -- Add, Move, Modify, Subtract replies have the same parameters + auditCapReply [4] AuditReply, + auditValueReply [5] AuditReply, + notifyReply [6] IMPLICIT NotifyReply, + serviceChangeReply [7] IMPLICIT ServiceChangeReply, + ... + } + + TopologyRequest ::= SEQUENCE + { + terminationFrom [0] IMPLICIT TerminationID, + terminationTo [1] IMPLICIT TerminationID, + topologyDirection [2] IMPLICIT ENUMERATED + { + bothway(0), + isolate(1), + oneway(2) + }, + ..., + streamID [3] IMPLICIT StreamID OPTIONAL + } + + AmmRequest ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + descriptors [1] IMPLICIT SEQUENCE OF AmmDescriptor, + -- At most one descriptor of each type (see AmmDescriptor) + -- allowed in the sequence. + ... + } + + AmmDescriptor ::= CHOICE + { + mediaDescriptor [0] IMPLICIT MediaDescriptor, + modemDescriptor [1] IMPLICIT ModemDescriptor, + muxDescriptor [2] IMPLICIT MuxDescriptor, + eventsDescriptor [3] IMPLICIT EventsDescriptor, + eventBufferDescriptor [4] IMPLICIT EventBufferDescriptor, + signalsDescriptor [5] IMPLICIT SignalsDescriptor, + digitMapDescriptor [6] IMPLICIT DigitMapDescriptor, + auditDescriptor [7] IMPLICIT AuditDescriptor, + ... + } + + + AmmsReply ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + terminationAudit [1] IMPLICIT TerminationAudit OPTIONAL, + ... + } + + SubtractRequest ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + auditDescriptor [1] IMPLICIT AuditDescriptor OPTIONAL, + ... + } + + AuditRequest ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationID, + auditDescriptor [1] IMPLICIT AuditDescriptor, + ... + } + + AuditReply ::= CHOICE + { + contextAuditResult [0] IMPLICIT TerminationIDList, + error [1] IMPLICIT ErrorDescriptor, + auditResult [2] IMPLICIT AuditResult, + ... + } + + AuditResult ::= SEQUENCE + { + + terminationID [0] IMPLICIT TerminationID, + terminationAuditResult [1] IMPLICIT TerminationAudit + } + + + + TerminationAudit ::= SEQUENCE OF AuditReturnParameter + + AuditReturnParameter ::= CHOICE + { + errorDescriptor [0] IMPLICIT ErrorDescriptor, + mediaDescriptor [1] IMPLICIT MediaDescriptor, + modemDescriptor [2] IMPLICIT ModemDescriptor, + muxDescriptor [3] IMPLICIT MuxDescriptor, + eventsDescriptor [4] IMPLICIT EventsDescriptor, + eventBufferDescriptor [5] IMPLICIT EventBufferDescriptor, + signalsDescriptor [6] IMPLICIT SignalsDescriptor, + digitMapDescriptor [7] IMPLICIT DigitMapDescriptor, + observedEventsDescriptor [8] IMPLICIT ObservedEventsDescriptor, + statisticsDescriptor [9] IMPLICIT StatisticsDescriptor, + packagesDescriptor [10] IMPLICIT PackagesDescriptor, + emptyDescriptors [11] IMPLICIT AuditDescriptor, + ... + } + + AuditDescriptor ::= SEQUENCE + { + auditToken [0] IMPLICIT BIT STRING + { + muxToken(0), modemToken(1), mediaToken(2), + eventsToken(3), signalsToken(4), + digitMapToken(5), statsToken(6), + observedEventsToken(7), + packagesToken(8), eventBufferToken(9) + } OPTIONAL, + ..., + auditPropertyToken [1] IMPLICIT SEQUENCE OF IndAuditParameter OPTIONAL + } + + IndAuditParameter ::= CHOICE + { + indaudmediaDescriptor [0] IMPLICIT IndAudMediaDescriptor, + indaudeventsDescriptor [1] IMPLICIT IndAudEventsDescriptor, + indaudeventBufferDescriptor [2] IMPLICIT IndAudEventBufferDescriptor, + indaudsignalsDescriptor [3] IndAudSignalsDescriptor, + indauddigitMapDescriptor [4] IMPLICIT IndAudDigitMapDescriptor, + indaudstatisticsDescriptor [5] IMPLICIT IndAudStatisticsDescriptor, + indaudpackagesDescriptor [6] IMPLICIT IndAudPackagesDescriptor, + ... + } + + IndAudMediaDescriptor ::= SEQUENCE + { + + termStateDescr [0] IMPLICIT IndAudTerminationStateDescriptor OPTIONAL, + streams [1] CHOICE + { + oneStream [0] IMPLICIT IndAudStreamParms, + multiStream [1] IMPLICIT SEQUENCE OF IndAudStreamDescriptor + } OPTIONAL, + ... + } + + IndAudStreamDescriptor ::= SEQUENCE + { + streamID [0] IMPLICIT StreamID, + streamParms [1] IMPLICIT IndAudStreamParms + } + + IndAudStreamParms ::= SEQUENCE + { + localControlDescriptor [0] IMPLICIT IndAudLocalControlDescriptor OPTIONAL, + localDescriptor [1] IMPLICIT IndAudLocalRemoteDescriptor OPTIONAL, + remoteDescriptor [2] IMPLICIT IndAudLocalRemoteDescriptor OPTIONAL, + ... + } + + IndAudLocalControlDescriptor ::= SEQUENCE + { + streamMode [0] IMPLICIT NULL OPTIONAL, + reserveValue [1] IMPLICIT NULL OPTIONAL, + reserveGroup [2] IMPLICIT NULL OPTIONAL, + propertyParms [3] IMPLICIT IndAudPropertyParms OPTIONAL, + ... + } + + IndAudPropertyParm ::= SEQUENCE + { + name [0] IMPLICIT PkgdName, + ... + } + + IndAudPropertyParms ::= SEQUENCE OF IndAudPropertyParm + + IndAudLocalRemoteDescriptor ::= SEQUENCE + { + propGroupID [0] IMPLICIT INTEGER(0..65535) OPTIONAL, + propGrps [1] IMPLICIT IndAudPropertyGroup, + ... + } + + IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm + + IndAudTerminationStateDescriptor ::= SEQUENCE + { + propertyParms [0] IMPLICIT IndAudPropertyParms, + eventBufferControl [1] IMPLICIT NULL OPTIONAL, + serviceState [2] IMPLICIT NULL OPTIONAL, + ... + } + + IndAudEventsDescriptor ::= SEQUENCE + { + requestID [0] IMPLICIT RequestID OPTIONAL, + pkgdName [1] IMPLICIT PkgdName, + streamID [2] IMPLICIT StreamID OPTIONAL, + ... + } + + IndAudEventBufferDescriptor ::= SEQUENCE + { + eventName [0] IMPLICIT PkgdName, + streamID [1] IMPLICIT StreamID OPTIONAL, + ... + } + + IndAudSignalsDescriptor ::=CHOICE + { + signal [0] IMPLICIT IndAudSignal, + seqSigList [1] IMPLICIT IndAudSeqSigList, + ... + } + + IndAudSeqSigList ::= SEQUENCE + { + id [0] IMPLICIT INTEGER(0..65535), + signalList [1] IMPLICIT IndAudSignal OPTIONAL + } + + IndAudSignal ::= SEQUENCE + { + signalName [0] IMPLICIT PkgdName, + streamID [1] IMPLICIT StreamID OPTIONAL, + ... + } + + IndAudDigitMapDescriptor ::= SEQUENCE + { + digitMapName [0] IMPLICIT DigitMapName OPTIONAL + } + + IndAudStatisticsDescriptor ::= SEQUENCE + { + statName [0] IMPLICIT PkgdName + } + + IndAudPackagesDescriptor ::= SEQUENCE + { + packageName [0] IMPLICIT Name, + packageVersion [1] IMPLICIT INTEGER(0..99), + ... + } + + NotifyRequest ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + observedEventsDescriptor [1] IMPLICIT ObservedEventsDescriptor, + errorDescriptor [2] IMPLICIT ErrorDescriptor OPTIONAL, + ... + } + + NotifyReply ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + errorDescriptor [1] IMPLICIT ErrorDescriptor OPTIONAL, + ... + } + + ObservedEventsDescriptor ::= SEQUENCE + { + requestId [0] IMPLICIT RequestID, + observedEventLst [1] IMPLICIT SEQUENCE OF ObservedEvent + } + + ObservedEvent ::= SEQUENCE + { + eventName [0] IMPLICIT EventName, + streamID [1] IMPLICIT StreamID OPTIONAL, + eventParList [2] IMPLICIT EventParameters, + timeNotation [3] IMPLICIT TimeNotation OPTIONAL, + ... + } + + EventName ::= OCTET STRING + + ExtraInfo ::= CHOICE + { + relation [0] IMPLICIT Relation, + range [1] IMPLICIT BOOLEAN, + sublist [2] IMPLICIT BOOLEAN + } + + EventParameter ::= SEQUENCE + { + eventParameterName [0] IMPLICIT EventParameterName, + eventParamValue [1] IMPLICIT EventParamValues, + + -- For use of extraInfo see the comment related to PropertyParm + extraInfo [2] ExtraInfo OPTIONAL, + ... + + } + + EventParameterName ::= Name + + EventParamValues ::= SEQUENCE OF EventParamValue + + EventParamValue ::= OCTET STRING + + EventParameters ::= SEQUENCE OF EventParameter + + ServiceChangeRequest ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + serviceChangeParms [1] IMPLICIT ServiceChangeParm, + ... + } + + ServiceChangeReply ::= SEQUENCE + { + terminationID [0] IMPLICIT TerminationIDList, + serviceChangeResult [1] ServiceChangeResult, + ... + } + + -- For ServiceChangeResult, no parameters are mandatory. Hence the + -- distinction between ServiceChangeParm and ServiceChangeResParm. + + ServiceChangeResult ::= CHOICE + { + errorDescriptor [0] IMPLICIT ErrorDescriptor, + serviceChangeResParms [1] IMPLICIT ServiceChangeResParm + } + + WildcardField ::= OCTET STRING(SIZE(1)) + + TerminationID ::= SEQUENCE + { + wildcard [0] IMPLICIT SEQUENCE OF WildcardField, + id [1] IMPLICIT 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 [0] IMPLICIT TerminationStateDescriptor OPTIONAL, + streams [1] CHOICE + { + oneStream [0] IMPLICIT StreamParms, + multiStream [1] IMPLICIT SEQUENCE OF StreamDescriptor + } OPTIONAL, + ... + } + + StreamDescriptor ::= SEQUENCE + { + streamID [0] IMPLICIT StreamID, + streamParms [1] IMPLICIT StreamParms + } + + StreamParms ::= SEQUENCE + { + localControlDescriptor [0] IMPLICIT LocalControlDescriptor OPTIONAL, + localDescriptor [1] IMPLICIT LocalRemoteDescriptor OPTIONAL, + remoteDescriptor [2] IMPLICIT LocalRemoteDescriptor OPTIONAL, + ... + } + + LocalControlDescriptor ::= SEQUENCE + { + streamMode [0] IMPLICIT StreamMode OPTIONAL, + reserveValue [1] IMPLICIT BOOLEAN OPTIONAL, + reserveGroup [2] IMPLICIT BOOLEAN OPTIONAL, + propertyParms [3] IMPLICIT PropertyParms, + ... + } + + 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 + { + propertyName [0] IMPLICIT PkgdName, + value [1] IMPLICIT SEQUENCE OF PropertyID, + extraInfo [2] ExtraInfo OPTIONAL, + ... + } + + PropertyParms ::= SEQUENCE OF PropertyParm + + 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. + PropertyID ::= OCTET STRING + + Relation ::= ENUMERATED + { + greaterThan(0), + smallerThan(1), + unequalTo(2), + ... + } + + LocalRemoteDescriptor ::= SEQUENCE + { + propGrps [0] IMPLICIT SEQUENCE OF PropertyGroup, + ... + } + + PropertyGroup ::= SEQUENCE OF PropertyParm + + TerminationStateDescriptor ::= SEQUENCE + { + propertyParms [0] IMPLICIT PropertyParms, + eventBufferControl [1] IMPLICIT EventBufferControl OPTIONAL, + serviceState [2] IMPLICIT ServiceState OPTIONAL, + ... + } + + EventBufferControl ::= ENUMERATED + { + off(0), + lockStep(1), + ... + } + + ServiceState ::= ENUMERATED + { + test(0), + outOfSvc(1), + inSvc(2), + ... + } + + MuxDescriptor ::= SEQUENCE + { + muxType [0] IMPLICIT MuxType, + termList [1] IMPLICIT SEQUENCE OF TerminationID, + nonStandardData [2] IMPLICIT 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 [0] IMPLICIT RequestID OPTIONAL, + -- RequestID must be present if eventList + -- is non empty + eventList [1] IMPLICIT RequestedEvents, + ... + } + + RequestedEvent ::= SEQUENCE + { + pkgdName [0] IMPLICIT EventName, + streamID [1] IMPLICIT StreamID OPTIONAL, + eventAction [2] IMPLICIT RequestedActions OPTIONAL, + evParList [3] IMPLICIT EventParameters, + ... + } + + RequestedEvents ::= SEQUENCE OF RequestedEvent + + RequestedActions ::= SEQUENCE + { + keepActive [0] IMPLICIT BOOLEAN OPTIONAL, + eventDM [1] EventDM OPTIONAL, + secondEvent [2] IMPLICIT SecondEventsDescriptor OPTIONAL, + signalsDescriptor [3] IMPLICIT SignalsDescriptor OPTIONAL, + ... + } + + EventDM ::= CHOICE + { + digitMapName [0] IMPLICIT DigitMapName, + digitMapValue [1] IMPLICIT DigitMapValue + } + + SecondEventsDescriptor ::= SEQUENCE + { + requestID [0] IMPLICIT RequestID OPTIONAL, + eventList [1] IMPLICIT SEQUENCE OF SecondRequestedEvent, + ... + } + + SecondRequestedEvent ::= SEQUENCE + { + pkgdName [0] IMPLICIT EventName, + streamID [1] IMPLICIT StreamID OPTIONAL, + eventAction [2] IMPLICIT SecondRequestedActions OPTIONAL, + evParList [3] IMPLICIT EventParameters, + ... + } + + SecondRequestedActions ::= SEQUENCE + { + keepActive [0] IMPLICIT BOOLEAN OPTIONAL, + eventDM [1] EventDM OPTIONAL, + signalsDescriptor [2] IMPLICIT SignalsDescriptor OPTIONAL, + ... + } + + EventBufferDescriptor ::= SEQUENCE OF EventSpec + + EventSpec ::= SEQUENCE + { + eventName [0] IMPLICIT EventName, + streamID [1] IMPLICIT StreamID OPTIONAL, + eventParList [2] IMPLICIT EventParameters, + ... + } + + + SignalsDescriptor ::= SEQUENCE OF SignalRequest + + SignalRequest ::= CHOICE + { + signal [0] IMPLICIT Signal, + seqSigList [1] IMPLICIT SeqSigList, + ... + } + + SeqSigList ::= SEQUENCE + { + id [0] IMPLICIT INTEGER(0..65535), + signalList [1] IMPLICIT SEQUENCE OF Signal + } + + Signal ::= SEQUENCE + { + signalName [0] IMPLICIT SignalName, + streamID [1] IMPLICIT StreamID OPTIONAL, + sigType [2] IMPLICIT SignalType OPTIONAL, + duration [3] IMPLICIT INTEGER (0..65535) OPTIONAL, + notifyCompletion [4] IMPLICIT NotifyCompletion OPTIONAL, + keepActive [5] IMPLICIT BOOLEAN OPTIONAL, + sigParList [6] IMPLICIT SEQUENCE OF SigParameter, + ... + } + + SignalType ::= ENUMERATED + { + brief(0), + onOff(1), + timeOut(2), + ... + } + + SignalName ::= OCTET STRING + + NotifyCompletion ::= BIT STRING + { + onTimeOut(0), onInterruptByEvent(1), + onInterruptByNewSignalDescr(2), otherReason(3) + } + + SigParameter ::= SEQUENCE + { + sigParameterName [0] IMPLICIT SigParameterName, + sigParameterValue [1] IMPLICIT SigParamValues, + -- For use of extraInfo see the comment related to PropertyParm + extraInfo [2] ExtraInfo OPTIONAL, + ... + } + + SigParameterName ::= Name + + SigParamValues ::= SEQUENCE OF SigParamValue + + SigParamValue ::= OCTET STRING + + -- 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 [0] IMPLICIT SEQUENCE OF ModemType, + mpl [1] IMPLICIT PropertyParms, + nonStandardData [2] IMPLICIT 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 [0] IMPLICIT DigitMapName OPTIONAL, + digitMapValue [1] IMPLICIT DigitMapValue OPTIONAL + } + + DigitMapName ::= Name + + DigitMapValue ::= SEQUENCE + { + startTimer [0] IMPLICIT INTEGER(0..99) OPTIONAL, + shortTimer [1] IMPLICIT INTEGER(0..99) OPTIONAL, + longTimer [2] IMPLICIT INTEGER(0..99) OPTIONAL, + digitMapBody [3] IMPLICIT 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 [4] IMPLICIT INTEGER (0..99) OPTIONAL + } + + ServiceChangeParm ::= SEQUENCE + { + serviceChangeMethod [0] IMPLICIT ServiceChangeMethod, + serviceChangeAddress [1] ServiceChangeAddress OPTIONAL, + serviceChangeVersion [2] IMPLICIT INTEGER(0..99) OPTIONAL, + serviceChangeProfile [3] IMPLICIT ServiceChangeProfile OPTIONAL, + serviceChangeReason [4] IMPLICIT 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 [5] IMPLICIT INTEGER(0..4294967295) OPTIONAL, + -- 32-bit unsigned integer + serviceChangeMgcId [6] MId OPTIONAL, + timeStamp [7] IMPLICIT TimeNotation OPTIONAL, + nonStandardData [8] IMPLICIT NonStandardData OPTIONAL, + ..., + serviceChangeInfo [9] IMPLICIT AuditDescriptor OPTIONAL + } + + ServiceChangeAddress ::= CHOICE + { + portNumber [0] IMPLICIT INTEGER(0..65535), -- TCP/UDP port number + ip4Address [1] IMPLICIT IP4Address, + ip6Address [2] IMPLICIT IP6Address, + domainName [3] IMPLICIT DomainName, + deviceName [4] IMPLICIT PathName, + mtpAddress [5] IMPLICIT MtpAddress, + ... + } + + ServiceChangeResParm ::= SEQUENCE + { + serviceChangeMgcId [0] MId OPTIONAL, + serviceChangeAddress [1] ServiceChangeAddress OPTIONAL, + serviceChangeVersion [2] IMPLICIT INTEGER(0..99) OPTIONAL, + serviceChangeProfile [3] IMPLICIT ServiceChangeProfile OPTIONAL, + timestamp [4] IMPLICIT TimeNotation OPTIONAL, + ... + } + + ServiceChangeMethod ::= ENUMERATED + { + failover(0), + forced(1), + graceful(2), + restart(3), + disconnected(4), + handOff(5), + ... + } + + ServiceChangeProfile ::= SEQUENCE + { + profileName [0] IMPLICIT IA5String(SIZE (1..67)) + + -- 64 characters for name, 1 for "/", 2 for version to match ABNF + } + + PackagesDescriptor ::= SEQUENCE OF PackagesItem + + PackagesItem ::= SEQUENCE + { + packageName [0] IMPLICIT Name, + packageVersion [1] IMPLICIT INTEGER(0..99), + ... + } + + StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter + + StatisticsParameter ::= SEQUENCE + { + statName [0] IMPLICIT PkgdName, + statValue [1] IMPLICIT Value OPTIONAL + } + + NonStandardData ::= SEQUENCE + { + nonStandardIdentifier [0] NonStandardIdentifier, + data [1] IMPLICIT OCTET STRING + } + + NonStandardIdentifier ::= CHOICE + { + object [0] IMPLICIT OBJECT IDENTIFIER, + h221NonStandard [1] IMPLICIT H221NonStandard, + experimental [2] IMPLICIT IA5String(SIZE(8)), + -- first two characters SHOULD be "X-" or "X+" + ... + } + + H221NonStandard ::= SEQUENCE + { t35CountryCode1 [0] IMPLICIT INTEGER(0..255), + t35CountryCode2 [1] IMPLICIT INTEGER(0..255), -- country, as per T.35 + t35Extension [2] IMPLICIT INTEGER(0..255), -- assigned nationally + manufacturerCode [3] IMPLICIT INTEGER(0..65535), -- assigned nationally + ... + } + + TimeNotation ::= SEQUENCE + { + date [0] IMPLICIT IA5String(SIZE(8)), -- yyyymmdd format + time [1] IMPLICIT IA5String(SIZE(8)) -- hhmmssss format + -- per ISO 8601:1988 + } + + Value ::= SEQUENCE OF OCTET STRING + + END |