forked from osmocom/wireshark
8c608e6e82
Change-Id: Ie476c6f82f318188b41ed922b92c6fec119ea954 Reviewed-on: https://code.wireshark.org/review/244 Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com> Tested-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
1101 lines
27 KiB
Groff
1101 lines
27 KiB
Groff
MEDIA-GATEWAY-CONTROL {itu-t(0) recommendation(0) h(8) h248(248) modules(0)
|
|
media-gateway-control(0) version3(3)}
|
|
--
|
|
-- Module MEDIA-GATEWAY-CONTROL (H.248.1:09/2005)
|
|
-- See also ITU-T H.248.1 v3 (2005) Amend. 1 (05/2008)
|
|
--
|
|
--DEFINITIONS AUTOMATIC TAGS ::=
|
|
--BEGIN
|
|
-- Has been modified to pass through the ASN2ETH compiler
|
|
-- (we dont support automatic tags yet so the tags had to be added by
|
|
-- hand)
|
|
DEFINITIONS IMPLICIT TAGS ::=
|
|
BEGIN
|
|
MegacoMessage ::= SEQUENCE
|
|
{
|
|
authHeader [0] AuthenticationHeader OPTIONAL,
|
|
mess [1] Message
|
|
}
|
|
|
|
AuthenticationHeader ::= SEQUENCE
|
|
{
|
|
secParmIndex [0] SecurityParmIndex,
|
|
seqNum [1] SequenceNum,
|
|
ad [2] AuthData
|
|
}
|
|
|
|
SecurityParmIndex ::= OCTET STRING(SIZE(4))
|
|
|
|
SequenceNum ::= OCTET STRING(SIZE(4))
|
|
|
|
AuthData ::= OCTET STRING (SIZE (12..32))
|
|
|
|
Message ::= SEQUENCE
|
|
{
|
|
version [0] INTEGER(0..99),
|
|
-- The version of the protocol defined here is equal to 3.
|
|
mId [1] MId, -- Name/address of message originator
|
|
messageBody [2] CHOICE
|
|
{
|
|
messageError [0] ErrorDescriptor,
|
|
transactions [1] SEQUENCE OF Transaction
|
|
},
|
|
...
|
|
}
|
|
|
|
MId ::= CHOICE
|
|
{
|
|
ip4Address [0] IP4Address,
|
|
ip6Address [1] IP6Address,
|
|
domainName [2] DomainName,
|
|
deviceName [3] PathName,
|
|
mtpAddress [4] 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.
|
|
...
|
|
}
|
|
-- Wireshark specific
|
|
MtpAddress ::= OCTET STRING(SIZE(2..4))
|
|
|
|
DomainName ::= SEQUENCE
|
|
{
|
|
name [0] 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] INTEGER(0..65535) OPTIONAL
|
|
}
|
|
|
|
IP4Address ::= SEQUENCE
|
|
{
|
|
address [0] OCTET STRING (SIZE(4)),
|
|
portNumber [1] INTEGER(0..65535) OPTIONAL
|
|
}
|
|
|
|
IP6Address ::= SEQUENCE
|
|
{
|
|
address [0] OCTET STRING (SIZE(16)),
|
|
portNumber [1] INTEGER(0..65535) OPTIONAL
|
|
}
|
|
|
|
PathName ::= IA5String(SIZE (1..64))
|
|
-- See A.3
|
|
|
|
Transaction ::= CHOICE
|
|
{
|
|
transactionRequest [0] TransactionRequest,
|
|
transactionPending [1] TransactionPending,
|
|
transactionReply [2] TransactionReply,
|
|
transactionResponseAck [3] TransactionResponseAck,
|
|
-- use of response acks is dependent on underlying transport
|
|
...,
|
|
segmentReply [4] SegmentReply
|
|
}
|
|
|
|
TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
|
|
|
|
TransactionRequest ::= SEQUENCE
|
|
{
|
|
transactionId [0] TransactionId,
|
|
actions [1] SEQUENCE OF ActionRequest,
|
|
...
|
|
}
|
|
|
|
TransactionPending ::= SEQUENCE
|
|
{
|
|
transactionId [0] TransactionId,
|
|
...
|
|
}
|
|
|
|
TransactionReply ::= SEQUENCE
|
|
{
|
|
transactionId [0] TransactionId,
|
|
immAckRequired [1] NULL OPTIONAL,
|
|
transactionResult [2] CHOICE
|
|
{
|
|
transactionError [0]ErrorDescriptor,
|
|
actionReplies [1] SEQUENCE OF ActionReply
|
|
},
|
|
...,
|
|
segmentNumber [3] SegmentNumber OPTIONAL,
|
|
segmentationComplete [4] NULL OPTIONAL
|
|
}
|
|
|
|
SegmentReply ::= SEQUENCE
|
|
{
|
|
transactionId [0] TransactionId,
|
|
segmentNumber [1] SegmentNumber,
|
|
segmentationComplete [2] NULL OPTIONAL,
|
|
...
|
|
}
|
|
|
|
SegmentNumber ::= INTEGER(0..65535)
|
|
|
|
TransactionResponseAck ::= SEQUENCE OF TransactionAck
|
|
|
|
TransactionAck ::= SEQUENCE
|
|
{
|
|
firstAck [0] TransactionId,
|
|
lastAck [1] TransactionId OPTIONAL
|
|
}
|
|
|
|
ErrorDescriptor ::= SEQUENCE
|
|
{
|
|
errorCode [0] ErrorCode,
|
|
errorText [1] 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] ContextID,
|
|
contextRequest [1] ContextRequest OPTIONAL,
|
|
contextAttrAuditReq [2] ContextAttrAuditRequest OPTIONAL,
|
|
commandRequests [3] SEQUENCE OF CommandRequest
|
|
}
|
|
|
|
ActionReply ::= SEQUENCE
|
|
{
|
|
contextId [0] ContextID,
|
|
errorDescriptor [1] ErrorDescriptor OPTIONAL,
|
|
contextReply [2] ContextRequest OPTIONAL,
|
|
commandReply [3] SEQUENCE OF CommandReply
|
|
}
|
|
|
|
-- WireShark Specific
|
|
ContextIDinList ::= INTEGER(0..4294967295)
|
|
|
|
ContextRequest ::= SEQUENCE
|
|
{
|
|
priority [0] INTEGER(0..15) OPTIONAL,
|
|
emergency [1] BOOLEAN OPTIONAL,
|
|
topologyReq [2] SEQUENCE OF TopologyRequest OPTIONAL,
|
|
...,
|
|
iepscallind [3] BOOLEAN OPTIONAL,
|
|
contextProp [4] SEQUENCE OF PropertyParm OPTIONAL,
|
|
|
|
-- WireShark Specific
|
|
-- contextList [5] SEQUENCE OF ContextID OPTIONAL
|
|
contextList [5] SEQUENCE OF ContextIDinList OPTIONAL
|
|
-- Currently the way that WS tracing code's persistent data is
|
|
-- organized disallows to relate a request to multiple contexts
|
|
}
|
|
|
|
-- When returning a contextList, the contextId in the ActionReply construct will
|
|
-- return the contextId from the associated ActionRequest.
|
|
|
|
ContextAttrAuditRequest ::= SEQUENCE
|
|
{
|
|
topology [0] NULL OPTIONAL,
|
|
emergency [1] NULL OPTIONAL,
|
|
priority [2] NULL OPTIONAL,
|
|
...,
|
|
iepscallind [3] NULL OPTIONAL,
|
|
contextPropAud [4] SEQUENCE OF IndAudPropertyParm OPTIONAL,
|
|
selectpriority [5] INTEGER(0..15) OPTIONAL,
|
|
-- to select given priority
|
|
selectemergency [6] BOOLEAN OPTIONAL,
|
|
-- to select if emergency set/not set (T/F)
|
|
selectiepscallind [7] BOOLEAN OPTIONAL,
|
|
-- to select if IEPS set/not set (T/F)
|
|
selectLogic [8] SelectLogic OPTIONAL -- default is AND
|
|
}
|
|
|
|
SelectLogic ::= CHOICE
|
|
{
|
|
andAUDITSelect [0] NULL, -- all filter conditions satisfied
|
|
orAUDITSelect [1] NULL, -- at least one filter condition satisfied
|
|
...
|
|
}
|
|
|
|
CommandRequest ::= SEQUENCE
|
|
{
|
|
command [0] Command,
|
|
optional [1] NULL OPTIONAL,
|
|
wildcardReturn [2] NULL OPTIONAL,
|
|
...
|
|
}
|
|
|
|
Command ::= CHOICE
|
|
{
|
|
addReq [0] AmmRequest,
|
|
moveReq [1] AmmRequest,
|
|
modReq [2] AmmRequest,
|
|
-- Add, Move, Modify requests have the same parameters
|
|
subtractReq [3] SubtractRequest,
|
|
auditCapRequest [4] AuditRequest,
|
|
auditValueRequest [5] AuditRequest,
|
|
notifyReq [6] NotifyRequest,
|
|
serviceChangeReq [7] ServiceChangeRequest,
|
|
...
|
|
}
|
|
|
|
CommandReply ::= CHOICE
|
|
{
|
|
addReply [0] AmmsReply,
|
|
moveReply [1] AmmsReply,
|
|
modReply [2] AmmsReply,
|
|
subtractReply [3] AmmsReply,
|
|
-- Add, Move, Modify, Subtract replies have the same parameters
|
|
auditCapReply [4] AuditReply,
|
|
auditValueReply [5] AuditReply,
|
|
notifyReply [6] NotifyReply,
|
|
serviceChangeReply [7] ServiceChangeReply,
|
|
...
|
|
}
|
|
|
|
TopologyRequest ::= SEQUENCE
|
|
{
|
|
terminationFrom [0] TerminationID,
|
|
terminationTo [1] TerminationID,
|
|
topologyDirection [2] ENUMERATED
|
|
{
|
|
bothway(0),
|
|
isolate(1),
|
|
oneway(2)
|
|
},
|
|
...,
|
|
streamID [3]StreamID OPTIONAL,
|
|
topologyDirectionExtension [4] ENUMERATED
|
|
{
|
|
onewayexternal(0),
|
|
onewayboth(1),
|
|
...
|
|
} OPTIONAL
|
|
}
|
|
|
|
AmmRequest ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
descriptors [1] SEQUENCE OF AmmDescriptor,
|
|
-- At most one descriptor of each type (see AmmDescriptor)
|
|
-- allowed in the sequence.
|
|
...
|
|
}
|
|
|
|
AmmDescriptor ::= CHOICE
|
|
{
|
|
mediaDescriptor [0] MediaDescriptor,
|
|
modemDescriptor [1] ModemDescriptor,
|
|
muxDescriptor [2] MuxDescriptor,
|
|
eventsDescriptor [3] EventsDescriptor,
|
|
eventBufferDescriptor [4] EventBufferDescriptor,
|
|
signalsDescriptor [5] SignalsDescriptor,
|
|
digitMapDescriptor [6] DigitMapDescriptor,
|
|
auditDescriptor [7] AuditDescriptor,
|
|
...,
|
|
statisticsDescriptor [8] StatisticsDescriptor
|
|
}
|
|
|
|
AmmsReply ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
terminationAudit [1]TerminationAudit OPTIONAL,
|
|
...
|
|
}
|
|
|
|
SubtractRequest ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
auditDescriptor [1] AuditDescriptor OPTIONAL,
|
|
...
|
|
}
|
|
|
|
AuditRequest ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationID,
|
|
auditDescriptor [1] AuditDescriptor,
|
|
...,
|
|
terminationIDList [3] TerminationIDList OPTIONAL
|
|
}
|
|
-- terminationID shall contain the first termination in the
|
|
-- list when using the terminationIDList construct in AuditRequest
|
|
|
|
AuditReply ::= CHOICE
|
|
{
|
|
contextAuditResult [0] TerminationIDList,
|
|
error [1] ErrorDescriptor,
|
|
auditResult [2] AuditResult,
|
|
...,
|
|
auditResultTermList [3] TermListAuditResult
|
|
}
|
|
|
|
AuditResult ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationID,
|
|
terminationAuditResult [1] TerminationAudit
|
|
}
|
|
|
|
TermListAuditResult ::= SEQUENCE
|
|
{
|
|
terminationIDList [0] TerminationIDList,
|
|
terminationAuditResult [1] TerminationAudit,
|
|
...
|
|
}
|
|
|
|
TerminationAudit ::= SEQUENCE OF AuditReturnParameter
|
|
|
|
AuditReturnParameter ::= CHOICE
|
|
{
|
|
errorDescriptor [0] ErrorDescriptor,
|
|
mediaDescriptor [1] MediaDescriptor,
|
|
modemDescriptor [2] ModemDescriptor,
|
|
muxDescriptor [3] MuxDescriptor,
|
|
eventsDescriptor [4] EventsDescriptor,
|
|
eventBufferDescriptor [5] EventBufferDescriptor,
|
|
signalsDescriptor [6] SignalsDescriptor,
|
|
digitMapDescriptor [7] DigitMapDescriptor,
|
|
observedEventsDescriptor [8] ObservedEventsDescriptor,
|
|
statisticsDescriptor [9] StatisticsDescriptor,
|
|
packagesDescriptor [10] PackagesDescriptor,
|
|
emptyDescriptors [11] AuditDescriptor,
|
|
...
|
|
}
|
|
|
|
AuditDescriptor ::= SEQUENCE
|
|
{
|
|
auditToken [0] 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] SEQUENCE OF IndAuditParameter OPTIONAL
|
|
}
|
|
|
|
IndAuditParameter ::= CHOICE
|
|
{
|
|
indaudmediaDescriptor [0] IndAudMediaDescriptor,
|
|
indaudeventsDescriptor [1] IndAudEventsDescriptor,
|
|
indaudeventBufferDescriptor [2] IndAudEventBufferDescriptor,
|
|
indaudsignalsDescriptor [3] IndAudSignalsDescriptor,
|
|
indauddigitMapDescriptor [4] IndAudDigitMapDescriptor,
|
|
indaudstatisticsDescriptor [5] IndAudStatisticsDescriptor,
|
|
indaudpackagesDescriptor [6] IndAudPackagesDescriptor,
|
|
...
|
|
}
|
|
|
|
IndAudMediaDescriptor ::= SEQUENCE
|
|
{
|
|
termStateDescr [0] IndAudTerminationStateDescriptor OPTIONAL,
|
|
streams [1] CHOICE
|
|
{
|
|
oneStream [0] IndAudStreamParms,
|
|
multiStream [1] SEQUENCE OF IndAudStreamDescriptor
|
|
} OPTIONAL,
|
|
...
|
|
}
|
|
|
|
IndAudStreamDescriptor ::= SEQUENCE
|
|
{
|
|
streamID [0] StreamID,
|
|
streamParms [1] IndAudStreamParms
|
|
}
|
|
|
|
IndAudStreamParms ::= SEQUENCE
|
|
{
|
|
localControlDescriptor [0] IndAudLocalControlDescriptor OPTIONAL,
|
|
localDescriptor [1] IndAudLocalRemoteDescriptor OPTIONAL,
|
|
remoteDescriptor [2] IndAudLocalRemoteDescriptor OPTIONAL,
|
|
...,
|
|
statisticsDescriptor [3] IndAudStatisticsDescriptor OPTIONAL
|
|
}
|
|
|
|
IndAudLocalControlDescriptor ::= SEQUENCE
|
|
{
|
|
streamMode [0] NULL OPTIONAL,
|
|
reserveValue [1] NULL OPTIONAL,
|
|
reserveGroup [2] NULL OPTIONAL,
|
|
propertyParms [3] SEQUENCE OF IndAudPropertyParm OPTIONAL,
|
|
...,
|
|
streamModeSel [4] StreamMode OPTIONAL
|
|
}
|
|
-- must not have both streamMode and streamModeSel
|
|
-- if both are present only streamModeSel shall be honoured
|
|
|
|
IndAudPropertyParm ::= SEQUENCE
|
|
{
|
|
name [0] PkgdName,
|
|
...,
|
|
propertyParms [1] PropertyParm OPTIONAL
|
|
}
|
|
-- to select based on property values
|
|
-- AND/OR selection logic is specified at context level
|
|
|
|
IndAudLocalRemoteDescriptor ::= SEQUENCE
|
|
{
|
|
propGroupID [0] INTEGER(0..65535) OPTIONAL,
|
|
propGrps [1] IndAudPropertyGroup,
|
|
...
|
|
}
|
|
|
|
IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm
|
|
|
|
IndAudTerminationStateDescriptor ::= SEQUENCE
|
|
{
|
|
propertyParms [0] SEQUENCE OF IndAudPropertyParm,
|
|
eventBufferControl [1] NULL OPTIONAL,
|
|
serviceState [2] NULL OPTIONAL,
|
|
...,
|
|
serviceStateSel [3] ServiceState OPTIONAL
|
|
}
|
|
-- must not have both serviceState and serviceStateSel
|
|
-- if both are present only serviceStateSel shall be honoured
|
|
|
|
IndAudEventsDescriptor ::= SEQUENCE
|
|
{
|
|
requestID [0] RequestID OPTIONAL,
|
|
pkgdName [1] PkgdName,
|
|
streamID [2] StreamID OPTIONAL,
|
|
...
|
|
}
|
|
|
|
IndAudEventBufferDescriptor ::= SEQUENCE
|
|
{
|
|
eventName [0] PkgdName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
...
|
|
}
|
|
|
|
IndAudSignalsDescriptor ::=CHOICE
|
|
{
|
|
signal [0] IndAudSignal,
|
|
seqSigList [1] IndAudSeqSigList,
|
|
...
|
|
}
|
|
|
|
IndAudSeqSigList ::= SEQUENCE
|
|
{
|
|
id [0] INTEGER(0..65535),
|
|
signalList [1] IndAudSignal OPTIONAL
|
|
}
|
|
|
|
IndAudSignal ::= SEQUENCE
|
|
{
|
|
signalName [0] PkgdName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
...,
|
|
signalRequestID [2] RequestID OPTIONAL
|
|
}
|
|
|
|
IndAudDigitMapDescriptor ::= SEQUENCE
|
|
{
|
|
digitMapName [0] DigitMapName OPTIONAL
|
|
}
|
|
|
|
IndAudStatisticsDescriptor ::= SEQUENCE
|
|
{
|
|
statName [0] PkgdName
|
|
}
|
|
|
|
IndAudPackagesDescriptor ::= SEQUENCE
|
|
{
|
|
packageName [0] Name,
|
|
packageVersion [1] INTEGER(0..99),
|
|
...
|
|
}
|
|
|
|
NotifyRequest ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
observedEventsDescriptor [1] ObservedEventsDescriptor,
|
|
errorDescriptor [2] ErrorDescriptor OPTIONAL,
|
|
...
|
|
}
|
|
|
|
NotifyReply ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
errorDescriptor [1] ErrorDescriptor OPTIONAL,
|
|
...
|
|
}
|
|
|
|
ObservedEventsDescriptor ::= SEQUENCE
|
|
{
|
|
requestId [0] RequestID,
|
|
observedEventLst [1] SEQUENCE OF ObservedEvent
|
|
}
|
|
|
|
ObservedEvent ::= SEQUENCE
|
|
{
|
|
eventName [0] EventName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
eventParList [2] SEQUENCE OF EventParameter,
|
|
timeNotation [3] TimeNotation OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- EventName ::= PkgdName
|
|
EventName ::= OCTET STRING
|
|
|
|
EventParameter ::= SEQUENCE
|
|
{
|
|
-- Wireshark specific
|
|
-- eventParameterName [0] Name,
|
|
-- value [1] Value,
|
|
eventParameterName [0] EventParameterName,
|
|
eventParamValue [1] EventParamValues,
|
|
-- end
|
|
-- For use of extraInfos see the comment related to PropertyParm
|
|
extraInfo [2] CHOICE
|
|
{
|
|
relation [0] Relation,
|
|
range [1] BOOLEAN,
|
|
sublist [2] BOOLEAN
|
|
} OPTIONAL,
|
|
...
|
|
}
|
|
-- Wireshark specific
|
|
EventParameterName ::= Name
|
|
|
|
EventParamValues ::= SEQUENCE OF EventParamValue
|
|
|
|
EventParamValue ::= OCTET STRING
|
|
-- end
|
|
ServiceChangeRequest ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
serviceChangeParms [1] ServiceChangeParm,
|
|
...
|
|
}
|
|
|
|
ServiceChangeReply ::= SEQUENCE
|
|
{
|
|
terminationID [0] TerminationIDList,
|
|
serviceChangeResult [1] ServiceChangeResult,
|
|
...
|
|
}
|
|
-- For ServiceChangeResult, no parameters are mandatory. Hence the
|
|
-- distinction between ServiceChangeParm and ServiceChangeResParm.
|
|
|
|
ServiceChangeResult ::= CHOICE
|
|
{
|
|
errorDescriptor [0] ErrorDescriptor,
|
|
serviceChangeResParms [1] ServiceChangeResParm
|
|
}
|
|
|
|
WildcardField ::= OCTET STRING(SIZE(1))
|
|
|
|
TerminationID ::= SEQUENCE
|
|
{
|
|
wildcard [0] SEQUENCE OF WildcardField,
|
|
id [1] OCTET STRING(SIZE(1..8)),
|
|
...
|
|
}
|
|
-- See A.1 for explanation of wildcarding mechanism.
|
|
-- TerminationID 0xFFFFFFFFFFFFFFFF indicates the Root Termination.
|
|
|
|
TerminationIDList ::= SEQUENCE OF TerminationID
|
|
|
|
MediaDescriptor ::= SEQUENCE
|
|
{
|
|
termStateDescr [0] TerminationStateDescriptor OPTIONAL,
|
|
streams [1] CHOICE
|
|
{
|
|
oneStream [0] StreamParms,
|
|
multiStream [1] SEQUENCE OF StreamDescriptor
|
|
} OPTIONAL,
|
|
...
|
|
}
|
|
|
|
StreamDescriptor ::= SEQUENCE
|
|
{
|
|
streamID [0] StreamID,
|
|
streamParms [1] StreamParms
|
|
}
|
|
|
|
StreamParms ::= SEQUENCE
|
|
{
|
|
localControlDescriptor [0] LocalControlDescriptor OPTIONAL,
|
|
localDescriptor [1] LocalRemoteDescriptor OPTIONAL,
|
|
remoteDescriptor [2] LocalRemoteDescriptor OPTIONAL,
|
|
...,
|
|
statisticsDescriptor [3] StatisticsDescriptor OPTIONAL
|
|
}
|
|
|
|
LocalControlDescriptor ::= SEQUENCE
|
|
{
|
|
streamMode [0] StreamMode OPTIONAL,
|
|
reserveValue [1] BOOLEAN OPTIONAL,
|
|
reserveGroup [2] BOOLEAN OPTIONAL,
|
|
propertyParms [3] 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 [0] PkgdName,
|
|
propertyName [0] PkgdName,
|
|
-- value [1] SEQUENCE OF OCTET STRING,
|
|
value [1] SEQUENCE OF PropertyID,
|
|
extraInfo [2] CHOICE
|
|
{
|
|
relation [0] Relation,
|
|
range [1] BOOLEAN,
|
|
sublist [2] BOOLEAN
|
|
} OPTIONAL,
|
|
...
|
|
}
|
|
|
|
Name ::= OCTET STRING(SIZE(2))
|
|
|
|
PkgdName ::= OCTET STRING(SIZE(4))
|
|
-- represents Package Name (2 octets) plus property, event,
|
|
-- signal names or StatisticsID. (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 PropertyID, EventID, SignalID, or StatisticsID, use
|
|
-- 0xFFFF for last two octets, CHOOSE is not allowed.
|
|
-- Wildcarding of Package Name is permitted only if PropertyID,
|
|
-- EventID, SignalID, or StatisticsID are also wildcarded.
|
|
-- Wireshark specific
|
|
PropertyID ::= OCTET STRING
|
|
|
|
Relation ::= ENUMERATED
|
|
{
|
|
greaterThan(0),
|
|
smallerThan(1),
|
|
unequalTo(2),
|
|
...
|
|
}
|
|
|
|
LocalRemoteDescriptor ::= SEQUENCE
|
|
{
|
|
propGrps [0] SEQUENCE OF PropertyGroup,
|
|
...
|
|
}
|
|
|
|
PropertyGroup ::= SEQUENCE OF PropertyParm
|
|
|
|
TerminationStateDescriptor ::= SEQUENCE
|
|
{
|
|
propertyParms [0] SEQUENCE OF PropertyParm,
|
|
eventBufferControl [1] EventBufferControl OPTIONAL,
|
|
serviceState [2] ServiceState OPTIONAL,
|
|
...
|
|
}
|
|
|
|
EventBufferControl ::= ENUMERATED
|
|
{
|
|
off(0),
|
|
lockStep(1),
|
|
...
|
|
}
|
|
|
|
ServiceState ::= ENUMERATED
|
|
{
|
|
test(0),
|
|
outOfSvc(1),
|
|
inSvc(2),
|
|
...
|
|
}
|
|
|
|
MuxDescriptor ::= SEQUENCE
|
|
{
|
|
muxType [0] MuxType,
|
|
termList [1] SEQUENCE OF TerminationID,
|
|
nonStandardData [2] 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] RequestID OPTIONAL,
|
|
-- RequestID must be present if eventList
|
|
-- is non empty
|
|
eventList [1] SEQUENCE OF RequestedEvent,
|
|
...
|
|
}
|
|
|
|
RequestedEvent ::= SEQUENCE
|
|
{
|
|
-- pkgdName [0] PkgdName,
|
|
eventName [0] EventName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
eventAction [2] RequestedActions OPTIONAL,
|
|
evParList [3] SEQUENCE OF EventParameter,
|
|
...
|
|
}
|
|
|
|
RegulatedEmbeddedDescriptor ::= SEQUENCE
|
|
{
|
|
secondEvent [0] SecondEventsDescriptor OPTIONAL,
|
|
signalsDescriptor [1] SignalsDescriptor OPTIONAL,
|
|
...
|
|
}
|
|
|
|
NotifyBehaviour ::= CHOICE
|
|
{
|
|
notifyImmediate [0] NULL,
|
|
notifyRegulated [1] RegulatedEmbeddedDescriptor,
|
|
neverNotify [2] NULL,
|
|
...
|
|
}
|
|
|
|
RequestedActions ::= SEQUENCE
|
|
{
|
|
keepActive [0] BOOLEAN OPTIONAL,
|
|
eventDM [1] EventDM OPTIONAL,
|
|
secondEvent [2] SecondEventsDescriptor OPTIONAL,
|
|
signalsDescriptor [3] SignalsDescriptor OPTIONAL,
|
|
...,
|
|
notifyBehaviour [4] NotifyBehaviour OPTIONAL,
|
|
resetEventsDescriptor [5] NULL OPTIONAL
|
|
}
|
|
|
|
EventDM ::= CHOICE
|
|
{
|
|
digitMapName [0] DigitMapName,
|
|
digitMapValue [1] DigitMapValue
|
|
}
|
|
|
|
SecondEventsDescriptor ::= SEQUENCE
|
|
{
|
|
requestID [0] RequestID OPTIONAL,
|
|
eventList [1] SEQUENCE OF SecondRequestedEvent,
|
|
...
|
|
}
|
|
|
|
SecondRequestedEvent ::= SEQUENCE
|
|
{
|
|
pkgdName [0] PkgdName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
eventAction [2] SecondRequestedActions OPTIONAL,
|
|
evParList [3] SEQUENCE OF EventParameter,
|
|
...
|
|
}
|
|
|
|
SecondRequestedActions ::= SEQUENCE
|
|
{
|
|
keepActive [0] BOOLEAN OPTIONAL,
|
|
eventDM [1] EventDM OPTIONAL,
|
|
signalsDescriptor [2] SignalsDescriptor OPTIONAL,
|
|
...,
|
|
notifyBehaviour [3] NotifyBehaviour OPTIONAL,
|
|
resetEventsDescriptor [4] NULL OPTIONAL
|
|
}
|
|
|
|
EventBufferDescriptor ::= SEQUENCE OF EventSpec
|
|
|
|
EventSpec ::= SEQUENCE
|
|
{
|
|
eventName [0] EventName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
eventParList [2] SEQUENCE OF EventParameter,
|
|
...
|
|
}
|
|
|
|
SignalsDescriptor ::= SEQUENCE OF SignalRequest
|
|
|
|
SignalRequest ::=CHOICE
|
|
{
|
|
signal [0] Signal,
|
|
seqSigList [1] SeqSigList,
|
|
...
|
|
}
|
|
|
|
SeqSigList ::= SEQUENCE
|
|
{
|
|
id [0] INTEGER(0..65535),
|
|
signalList [1] SEQUENCE OF Signal
|
|
}
|
|
|
|
Signal ::= SEQUENCE
|
|
{
|
|
signalName [0] SignalName,
|
|
streamID [1] StreamID OPTIONAL,
|
|
sigType [2] SignalType OPTIONAL,
|
|
duration [3] INTEGER (0..65535) OPTIONAL,
|
|
notifyCompletion [4] NotifyCompletion OPTIONAL,
|
|
keepActive [5] BOOLEAN OPTIONAL,
|
|
sigParList [6] SEQUENCE OF SigParameter,
|
|
...,
|
|
direction [7] SignalDirection OPTIONAL,
|
|
requestID [8] RequestID OPTIONAL,
|
|
intersigDelay [9] INTEGER (0..65535) OPTIONAL
|
|
}
|
|
|
|
SignalType ::= ENUMERATED
|
|
{
|
|
brief(0),
|
|
onOff(1),
|
|
timeOut(2),
|
|
...
|
|
}
|
|
|
|
SignalDirection ::= ENUMERATED
|
|
{
|
|
internal(0),
|
|
external(1),
|
|
both(2),
|
|
...
|
|
}
|
|
|
|
-- SignalName ::= PkgdName
|
|
SignalName ::= OCTET STRING
|
|
|
|
NotifyCompletion ::= BIT STRING
|
|
{
|
|
onTimeOut(0), onInterruptByEvent(1),
|
|
onInterruptByNewSignalDescr(2), otherReason(3), onIteration(4)
|
|
}
|
|
|
|
SigParameter ::= SEQUENCE
|
|
{
|
|
-- sigParameterName [0] Name,
|
|
-- value [1] Value,
|
|
sigParameterName [0] SigParameterName,
|
|
value [1] SigParamValues,
|
|
-- For use of extraInfo see the comment related to PropertyParm
|
|
extraInfo [2] CHOICE
|
|
{
|
|
relation [0] Relation,
|
|
range [1] BOOLEAN,
|
|
sublist [2] BOOLEAN
|
|
} OPTIONAL,
|
|
...
|
|
}
|
|
-- Wireshark specific
|
|
SigParameterName ::= Name
|
|
|
|
SigParamValues ::= SEQUENCE OF SigParamValue
|
|
|
|
SigParamValue ::= OCTET STRING
|
|
-- end
|
|
-- 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] SEQUENCE OF ModemType,
|
|
mpl [1] SEQUENCE OF PropertyParm,
|
|
nonStandardData [2] 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] DigitMapName OPTIONAL,
|
|
digitMapValue [1] DigitMapValue OPTIONAL
|
|
}
|
|
|
|
DigitMapName ::= Name
|
|
|
|
DigitMapValue ::= SEQUENCE
|
|
{
|
|
startTimer [0] INTEGER(0..99) OPTIONAL,
|
|
shortTimer [1] INTEGER(0..99) OPTIONAL,
|
|
longTimer [2] INTEGER(0..99) OPTIONAL,
|
|
digitMapBody [3] 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 DigitMap syntax
|
|
...,
|
|
durationTimer [4] INTEGER (0..99) OPTIONAL
|
|
}
|
|
|
|
ServiceChangeParm ::= SEQUENCE
|
|
{
|
|
serviceChangeMethod [0] ServiceChangeMethod,
|
|
serviceChangeAddress [1] ServiceChangeAddress OPTIONAL,
|
|
serviceChangeVersion [2] INTEGER(0..99) OPTIONAL,
|
|
serviceChangeProfile [3] ServiceChangeProfile OPTIONAL,
|
|
-- serviceChangeReason [4] Value,
|
|
serviceChangeReason [4] SCreasonValue,
|
|
-- 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] INTEGER(0..4294967295) OPTIONAL,
|
|
-- 32-bit unsigned integer
|
|
serviceChangeMgcId [6] MId OPTIONAL,
|
|
timeStamp [7] TimeNotation OPTIONAL,
|
|
nonStandardData [8] NonStandardData OPTIONAL,
|
|
...,
|
|
serviceChangeInfo [9] AuditDescriptor OPTIONAL,
|
|
serviceChangeIncompleteFlag [10] NULL OPTIONAL
|
|
}
|
|
|
|
-- Wireshark extension to decode serviceChangeReason
|
|
SCreasonValue ::= SEQUENCE OF SCreasonValueOctetStr
|
|
SCreasonValueOctetStr ::= OCTET STRING
|
|
ServiceChangeReasonStr ::= IA5String
|
|
-- end
|
|
|
|
ServiceChangeAddress ::= CHOICE
|
|
{
|
|
portNumber [0] INTEGER(0..65535), -- TCP/UDP port number
|
|
ip4Address [1] IP4Address,
|
|
ip6Address [2] IP6Address,
|
|
domainName [3] DomainName,
|
|
deviceName [4] PathName,
|
|
mtpAddress [5] MtpAddress,
|
|
...
|
|
}
|
|
|
|
ServiceChangeResParm ::= SEQUENCE
|
|
{
|
|
serviceChangeMgcId [0] MId OPTIONAL,
|
|
serviceChangeAddress [1] ServiceChangeAddress OPTIONAL,
|
|
serviceChangeVersion [2] INTEGER(0..99) OPTIONAL,
|
|
serviceChangeProfile [3] ServiceChangeProfile OPTIONAL,
|
|
timestamp [4] TimeNotation OPTIONAL,
|
|
...
|
|
}
|
|
|
|
ServiceChangeMethod ::= ENUMERATED
|
|
{
|
|
failover(0),
|
|
forced(1),
|
|
graceful(2),
|
|
restart(3),
|
|
disconnected(4),
|
|
handOff(5),
|
|
...
|
|
}
|
|
|
|
ServiceChangeProfile ::= SEQUENCE
|
|
{
|
|
profileName [0] IA5String(SIZE (1..67))
|
|
-- 64 characters for name, 1 for "/", 2 for version to match ABNF
|
|
}
|
|
|
|
PackagesDescriptor ::= SEQUENCE OF PackagesItem
|
|
|
|
PackagesItem ::= SEQUENCE
|
|
{
|
|
packageName [0] Name,
|
|
packageVersion [1] INTEGER(0..99),
|
|
...
|
|
}
|
|
|
|
StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
|
|
|
|
StatisticsParameter ::= SEQUENCE
|
|
{
|
|
statName [0] PkgdName,
|
|
statValue [1] Value OPTIONAL
|
|
}
|
|
-- If statistic consists of a sub-lists there will be more than
|
|
-- one octetstring in statValue.
|
|
NonStandardData ::= SEQUENCE
|
|
{
|
|
nonStandardIdentifier [0] NonStandardIdentifier,
|
|
data [1] OCTET STRING
|
|
}
|
|
|
|
NonStandardIdentifier ::= CHOICE
|
|
{
|
|
object [0] OBJECT IDENTIFIER,
|
|
h221NonStandard [1] H221NonStandard,
|
|
experimental [2] IA5String(SIZE(8)),
|
|
-- first two characters should be "X-" or "X+"
|
|
...
|
|
}
|
|
|
|
H221NonStandard ::= SEQUENCE
|
|
{
|
|
t35CountryCode1 [0] INTEGER(0..255),
|
|
t35CountryCode2 [1] INTEGER(0..255), -- country, as per T.35
|
|
t35Extension [2] INTEGER(0..255), -- assigned nationally
|
|
manufacturerCode [3] INTEGER(0..65535), -- assigned nationally
|
|
...
|
|
}
|
|
|
|
TimeNotation ::= SEQUENCE
|
|
{
|
|
date [0] IA5String(SIZE(8)), -- yyyymmdd format
|
|
time [1] IA5String(SIZE(8)) -- hhmmssss format
|
|
-- per ISO 8601:2004
|
|
}
|
|
|
|
Value ::= SEQUENCE OF OCTET STRING
|
|
|
|
END |