home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / openh323.tar.gz / openh323.tar / openh323 / src / h248.asn < prev    next >
Text File  |  2002-11-27  |  20KB  |  971 lines

  1. -- H.248 (Megaco) ASN from Temporary Document 31r1
  2.  
  3.  
  4. MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
  5. BEGIN
  6.  
  7.  
  8. MegacoMessage ::= SEQUENCE
  9. {
  10.     authHeader      AuthenticationHeader OPTIONAL,
  11.     mess         Message
  12. }
  13.  
  14. AuthenticationHeader ::= SEQUENCE
  15. {
  16.     secParmIndex    SecurityParmIndex,
  17.     seqNum        SequenceNum,
  18.     ad        AuthData
  19. }
  20.  
  21. SecurityParmIndex ::= OCTET STRING(SIZE(4))
  22.  
  23. SequenceNum       ::= OCTET STRING(SIZE(4))
  24.  
  25. AuthData          ::= OCTET STRING (SIZE (12..32))
  26.  
  27. Message ::= SEQUENCE
  28. {
  29.     version            INTEGER(0..99),
  30.     -- The version of the protocol defined here is equal to 2.
  31.     mId              MId,    -- Name/address of message originator
  32.     messageBody    CHOICE
  33.     {
  34.         messageError    ErrorDescriptor,
  35.         transactions     SEQUENCE OF Transaction
  36.     },
  37.     ...
  38. }
  39.  
  40. MId ::= CHOICE
  41. {
  42.     ip4Address     IP4Address,
  43.     ip6Address    IP6Address,
  44.     domainName       DomainName,
  45.     deviceName       PathName,
  46.     mtpAddress    OCTET STRING(SIZE(2..4)),
  47.      -- Addressing structure of mtpAddress:
  48.      --      25-15                0
  49.      --        |  PC        | NI |
  50.      --        24 - 14 bits    2 bits
  51.      -- Note: 14 bits are defined for international use.
  52.      -- Two national options exist where the point code is 16 or 24  
  53.      -- bits.
  54.      -- To octet align the mtpAddress the MSBs shall be encoded as 0s.
  55.     ...
  56. }
  57.  
  58. DomainName ::= SEQUENCE
  59. {
  60.     name        IA5String,
  61.     -- The name starts with an alphanumeric digit followed by a
  62.     -- sequence of alphanumeric digits, hyphens and dots.  No two
  63.     -- dots shall occur consecutively.
  64.     portNumber    INTEGER(0..65535) OPTIONAL
  65. }
  66.  
  67. IP4Address ::= SEQUENCE
  68. {
  69.     address        OCTET STRING (SIZE(4)),
  70.     portNumber    INTEGER(0..65535) OPTIONAL
  71. }
  72.  
  73. IP6Address ::= SEQUENCE
  74. {
  75.     address        OCTET STRING (SIZE(16)),
  76.     portNumber    INTEGER(0..65535) OPTIONAL
  77. }
  78.  
  79. PathName ::= IA5String(SIZE (1..64))
  80. -- See section A.3
  81.  
  82. Transaction ::= CHOICE
  83. {
  84.     transactionRequest      TransactionRequest,
  85.     transactionPending     TransactionPending,
  86.     transactionReply       TransactionReply,
  87.     transactionResponseAck    TransactionResponseAck,
  88.           -- use of response acks is dependent on underlying transport
  89.     ...
  90. }
  91.  
  92. TransactionId ::= INTEGER(0..4294967295)  -- 32 bit unsigned integer
  93.  
  94. TransactionRequest ::= SEQUENCE
  95. {
  96.     transactionId     TransactionId,
  97.     actions           SEQUENCE OF ActionRequest,
  98.     ...
  99. }
  100.  
  101. TransactionPending ::= SEQUENCE
  102. {
  103.     transactionId     TransactionId,
  104.     ...
  105. }
  106.  
  107. TransactionReply ::= SEQUENCE
  108. {
  109.     transactionId         TransactionId,
  110.     immAckRequired        NULL OPTIONAL,
  111.     transactionResult     CHOICE
  112.     {
  113.          transactionError    ErrorDescriptor,
  114.          actionReplies    SEQUENCE OF ActionReply
  115.     },
  116.     ...
  117. }
  118.  
  119. TransactionResponseAck ::= SEQUENCE OF TransactionAck
  120.  
  121. TransactionAck ::= SEQUENCE
  122. {
  123.     firstAck    TransactionId,
  124.     lastAck        TransactionId OPTIONAL
  125. }
  126.  
  127. ErrorDescriptor ::= SEQUENCE
  128. {
  129.     errorCode     ErrorCode,
  130.     errorText     ErrorText OPTIONAL
  131. }
  132.  
  133. ErrorCode ::= INTEGER(0..65535)
  134. -- See section 13 for IANA considerations with respect to error codes
  135.  
  136. ErrorText ::= IA5String
  137.  
  138. ContextID ::= INTEGER(0..4294967295)
  139.  
  140. -- Context NULL Value: 0
  141. -- Context CHOOSE Value: 4294967294 (0xFFFFFFFE) 
  142. -- Context ALL Value: 4294967295 (0xFFFFFFFF)
  143.  
  144.  
  145. ActionRequest ::= SEQUENCE
  146. {
  147.     contextId        ContextID,
  148.     contextRequest        ContextRequest OPTIONAL,
  149.     contextAttrAuditReq    ContextAttrAuditRequest OPTIONAL,
  150.     commandRequests        SEQUENCE OF CommandRequest
  151. }
  152.  
  153. ActionReply ::= SEQUENCE
  154. {
  155.     contextId     ContextID,
  156.     errorDescriptor    ErrorDescriptor OPTIONAL,
  157.     contextReply    ContextRequest OPTIONAL,
  158.     commandReply     SEQUENCE OF CommandReply
  159. }
  160.  
  161. ContextRequest ::= SEQUENCE
  162. {
  163.     priority    INTEGER(0..15) OPTIONAL,
  164.     emergency    BOOLEAN OPTIONAL,
  165.     topologyReq    SEQUENCE OF TopologyRequest OPTIONAL,
  166.     ...
  167.     
  168. }
  169.  
  170. ContextAttrAuditRequest ::= SEQUENCE
  171. {
  172.     topology    NULL OPTIONAL,
  173.     emergency    NULL OPTIONAL,
  174.     priority    NULL OPTIONAL,
  175.     ...
  176. }
  177.  
  178. CommandRequest ::= SEQUENCE
  179. {
  180.     command        Command,
  181.     optional    NULL OPTIONAL,
  182.     wildcardReturn    NULL OPTIONAL,
  183.     ...
  184. }
  185.  
  186. Command ::= CHOICE
  187. {
  188.     addReq             AmmRequest,
  189.     moveReq               AmmRequest,
  190.     modReq                AmmRequest,
  191.     -- Add, Move, Modify requests have the same parameters
  192.     subtractReq           SubtractRequest,
  193.     auditCapRequest       AuditRequest,
  194.     auditValueRequest     AuditRequest,
  195.     notifyReq             NotifyRequest,
  196.     serviceChangeReq      ServiceChangeRequest,
  197.     ...
  198. }
  199.  
  200. CommandReply ::= CHOICE
  201. {
  202.     addReply               AmmsReply,
  203.     moveReply              AmmsReply,
  204.     modReply               AmmsReply,
  205.     subtractReply          AmmsReply,
  206.     -- Add, Move, Modify, Subtract replies have the same parameters
  207.     auditCapReply          AuditReply,
  208.     auditValueReply        AuditReply,
  209.     notifyReply            NotifyReply,
  210.     serviceChangeReply     ServiceChangeReply,
  211.     ...
  212. }
  213.  
  214. TopologyRequest ::= SEQUENCE
  215. {
  216.     terminationFrom          TerminationID,
  217.     terminationTo          TerminationID,
  218.     topologyDirection     ENUMERATED
  219.     {
  220.         bothway(0),
  221.         isolate(1),
  222.         oneway(2)
  223.  
  224.     },
  225.     ...,
  226.     streamID        StreamID OPTIONAL
  227. }
  228.  
  229. AmmRequest ::= SEQUENCE
  230. {
  231.     terminationID    TerminationIDList,
  232.     descriptors    SEQUENCE OF AmmDescriptor,
  233.     -- At most one descriptor of each type (see AmmDescriptor)
  234.     -- allowed in the sequence.
  235.     ...
  236. }
  237.  
  238. AmmDescriptor ::= CHOICE
  239. {
  240.     mediaDescriptor        MediaDescriptor,
  241.     modemDescriptor        ModemDescriptor,
  242.     muxDescriptor        MuxDescriptor,
  243.     eventsDescriptor    EventsDescriptor,
  244.     eventBufferDescriptor    EventBufferDescriptor,
  245.     signalsDescriptor    SignalsDescriptor,
  246.     digitMapDescriptor    DigitMapDescriptor,
  247.     auditDescriptor        AuditDescriptor,
  248.     ...
  249. }
  250.  
  251.  
  252. AmmsReply ::= SEQUENCE
  253. {
  254.     terminationID         TerminationIDList,
  255.     terminationAudit     TerminationAudit OPTIONAL,
  256.     ...
  257. }
  258.  
  259. SubtractRequest ::= SEQUENCE
  260. {
  261.     terminationID       TerminationIDList,
  262.     auditDescriptor     AuditDescriptor OPTIONAL,
  263.     ...
  264. }
  265.  
  266. AuditRequest ::= SEQUENCE
  267. {
  268.     terminationID        TerminationID,
  269.     auditDescriptor        AuditDescriptor,
  270.     ...
  271. }
  272.  
  273. AuditReply ::= CHOICE
  274. {
  275.     contextAuditResult    TerminationIDList,
  276.     error            ErrorDescriptor,
  277.     auditResult        AuditResult,
  278.     ...
  279. }
  280.  
  281. AuditResult ::= SEQUENCE
  282. {
  283.     
  284.     terminationID        TerminationID,
  285.     terminationAuditResult    TerminationAudit
  286. }
  287.  
  288.  
  289.  
  290. TerminationAudit ::= SEQUENCE OF AuditReturnParameter
  291.  
  292. AuditReturnParameter ::= CHOICE
  293. {
  294.     errorDescriptor            ErrorDescriptor,
  295.     mediaDescriptor         MediaDescriptor,
  296.     modemDescriptor         ModemDescriptor,
  297.     muxDescriptor             MuxDescriptor,
  298.     eventsDescriptor              EventsDescriptor,
  299.     eventBufferDescriptor        EventBufferDescriptor,
  300.     signalsDescriptor             SignalsDescriptor,
  301.     digitMapDescriptor          DigitMapDescriptor,
  302.     observedEventsDescriptor     ObservedEventsDescriptor,
  303.     statisticsDescriptor         StatisticsDescriptor,
  304.     packagesDescriptor           PackagesDescriptor,
  305.     emptyDescriptors        AuditDescriptor,
  306.     ...
  307. }
  308.  
  309. AuditDescriptor ::= SEQUENCE
  310. {
  311.     auditToken    BIT STRING
  312.     {
  313.         muxToken(0), modemToken(1), mediaToken(2),
  314.         eventsToken(3), signalsToken(4),
  315.         digitMapToken(5), statsToken(6),
  316.         observedEventsToken(7),
  317.         packagesToken(8), eventBufferToken(9)
  318.     } OPTIONAL,
  319.     ...,
  320.     auditPropertyToken SEQUENCE OF IndAuditParameter OPTIONAL
  321. }
  322.  
  323. IndAuditParameter ::= CHOICE
  324. {
  325.     indaudmediaDescriptor         IndAudMediaDescriptor,
  326.     indaudeventsDescriptor          IndAudEventsDescriptor,
  327.     indaudeventBufferDescriptor    IndAudEventBufferDescriptor,
  328.     indaudsignalsDescriptor         IndAudSignalsDescriptor,
  329.     indauddigitMapDescriptor    IndAudDigitMapDescriptor,
  330.     indaudstatisticsDescriptor    IndAudStatisticsDescriptor,
  331.     indaudpackagesDescriptor    IndAudPackagesDescriptor,
  332. ...
  333. }
  334.  
  335. IndAudMediaDescriptor ::= SEQUENCE
  336. {
  337.     
  338.     termStateDescr    IndAudTerminationStateDescriptor OPTIONAL,
  339.     streams    CHOICE
  340.     {
  341.         oneStream    IndAudStreamParms,
  342.         multiStream    SEQUENCE OF IndAudStreamDescriptor
  343.     } OPTIONAL,
  344.     ...
  345. }
  346.  
  347. IndAudStreamDescriptor ::= SEQUENCE
  348. {
  349.     streamID        StreamID,
  350.     streamParms    IndAudStreamParms
  351. }
  352.  
  353. IndAudStreamParms ::= SEQUENCE
  354. {
  355.     localControlDescriptor     IndAudLocalControlDescriptor OPTIONAL,
  356.     localDescriptor            IndAudLocalRemoteDescriptor OPTIONAL,
  357.     remoteDescriptor           IndAudLocalRemoteDescriptor OPTIONAL,
  358.     ...
  359. }
  360.  
  361. IndAudLocalControlDescriptor ::= SEQUENCE
  362. {
  363.     streamMode        NULL OPTIONAL,
  364.     reserveValue    NULL OPTIONAL,
  365.     reserveGroup    NULL OPTIONAL,
  366.     propertyParms     SEQUENCE OF IndAudPropertyParm OPTIONAL,
  367.     ...
  368. }
  369.  
  370. IndAudPropertyParm ::= SEQUENCE
  371. {
  372.     name         PkgdName,
  373.     ...
  374. }
  375.  
  376. IndAudLocalRemoteDescriptor ::= SEQUENCE
  377. {
  378.     propGroupID    INTEGER(0..65535) OPTIONAL,
  379.     propGrps    IndAudPropertyGroup,
  380.     ...
  381. }
  382.  
  383. IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm
  384.  
  385. IndAudTerminationStateDescriptor ::= SEQUENCE 
  386. {
  387.     propertyParms           SEQUENCE OF IndAudPropertyParm,
  388.     eventBufferControl    NULL OPTIONAL,
  389.     serviceState            NULL OPTIONAL,
  390.     ...
  391. }
  392.  
  393. IndAudEventsDescriptor ::= SEQUENCE
  394. {
  395.     requestID    RequestID OPTIONAL,
  396.     pkgdName        PkgdName,
  397.     streamID    StreamID OPTIONAL,
  398.     ...
  399. }
  400.  
  401. IndAudEventBufferDescriptor ::= SEQUENCE
  402. {
  403.     eventName    PkgdName,
  404.     streamID    StreamID OPTIONAL,
  405.     ...
  406. }
  407.  
  408. IndAudSignalsDescriptor ::=CHOICE
  409. {
  410.     signal        IndAudSignal,
  411.     seqSigList    IndAudSeqSigList,
  412.     ...
  413. }
  414.  
  415. IndAudSeqSigList ::= SEQUENCE
  416. {
  417.     id        INTEGER(0..65535),
  418.     signalList    IndAudSignal OPTIONAL
  419. }
  420.  
  421. IndAudSignal ::= SEQUENCE
  422. {
  423.     signalName     PkgdName,
  424.     streamID    StreamID OPTIONAL,
  425.     ...
  426. }
  427.  
  428.  
  429.  
  430. IndAudDigitMapDescriptor ::= SEQUENCE
  431. {
  432.     digitMapName      DigitMapName    OPTIONAL
  433. }
  434.  
  435. IndAudStatisticsDescriptor ::= SEQUENCE 
  436. {
  437.     statName     PkgdName
  438. }
  439.  
  440. IndAudPackagesDescriptor ::= SEQUENCE
  441. {
  442.     packageName    Name,
  443.     packageVersion    INTEGER(0..99),
  444.     ...
  445. }
  446.  
  447. NotifyRequest ::= SEQUENCE
  448. {
  449.     terminationID                TerminationIDList,
  450.     observedEventsDescriptor     ObservedEventsDescriptor,
  451.     errorDescriptor            ErrorDescriptor OPTIONAL,
  452.     ...
  453. }
  454.  
  455. NotifyReply ::= SEQUENCE
  456. {
  457.     terminationID       TerminationIDList,
  458.     errorDescriptor     ErrorDescriptor OPTIONAL,
  459.     ...
  460. }
  461.  
  462. ObservedEventsDescriptor ::= SEQUENCE
  463. {
  464.     requestId            RequestID,
  465.     observedEventLst     SEQUENCE OF ObservedEvent
  466. }
  467.  
  468. ObservedEvent ::= SEQUENCE
  469. {
  470.     eventName    EventName,
  471.     streamID    StreamID OPTIONAL,
  472.     eventParList    SEQUENCE OF EventParameter,
  473.     timeNotation      TimeNotation OPTIONAL,
  474.     ...
  475. }
  476.  
  477. EventName ::= PkgdName
  478.  
  479. EventParameter ::= SEQUENCE
  480. {
  481.     eventParameterName    Name,
  482.     value                 Value,
  483.     -- For use of extraInfo see the comment related to PropertyParm
  484.     extraInfo CHOICE
  485.     {
  486.         relation    Relation,
  487.         range        BOOLEAN,
  488.         sublist    BOOLEAN
  489.     } OPTIONAL,
  490.     ...
  491. }
  492.  
  493. ServiceChangeRequest ::= SEQUENCE
  494. {
  495.     terminationID          TerminationIDList,
  496.     serviceChangeParms     ServiceChangeParm,
  497.     ...
  498. }
  499.  
  500. ServiceChangeReply ::= SEQUENCE
  501. {
  502.     terminationID           TerminationIDList,
  503.     serviceChangeResult     ServiceChangeResult,
  504.     ...
  505. }
  506.  
  507. -- For ServiceChangeResult, no parameters are mandatory.  Hence the
  508. -- distinction between ServiceChangeParm and ServiceChangeResParm.
  509.  
  510. ServiceChangeResult ::= CHOICE
  511. {
  512.     errorDescriptor           ErrorDescriptor,
  513.     serviceChangeResParms     ServiceChangeResParm
  514. }
  515.  
  516. WildcardField ::= OCTET STRING(SIZE(1))
  517.  
  518. TerminationID ::= SEQUENCE
  519. {
  520.     wildcard    SEQUENCE OF WildcardField, 
  521.     id        OCTET STRING(SIZE(1..8)),
  522.     ...
  523. }
  524. -- See Section A.1 for explanation of wildcarding mechanism.
  525. -- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
  526.  
  527. TerminationIDList ::= SEQUENCE OF TerminationID
  528.  
  529. MediaDescriptor ::= SEQUENCE
  530. {
  531.     
  532.     termStateDescr    TerminationStateDescriptor OPTIONAL,
  533.     streams        CHOICE
  534.     {
  535.         oneStream    StreamParms,
  536.         multiStream    SEQUENCE OF StreamDescriptor
  537.     } OPTIONAL,
  538.     ...
  539. }
  540.  
  541. StreamDescriptor ::= SEQUENCE
  542. {
  543.     streamID        StreamID,
  544.     streamParms    StreamParms
  545. }
  546.  
  547. StreamParms ::= SEQUENCE
  548. {
  549.     localControlDescriptor     LocalControlDescriptor OPTIONAL,
  550.     localDescriptor            LocalRemoteDescriptor OPTIONAL,
  551.     remoteDescriptor           LocalRemoteDescriptor OPTIONAL,
  552.     ...
  553. }
  554.  
  555. LocalControlDescriptor ::= SEQUENCE
  556. {
  557.     streamMode        StreamMode OPTIONAL,
  558.     reserveValue    BOOLEAN OPTIONAL,
  559.     reserveGroup    BOOLEAN OPTIONAL,
  560.     propertyParms     SEQUENCE OF PropertyParm,
  561.     ...
  562. }
  563.  
  564. StreamMode ::= ENUMERATED 
  565. {
  566.     sendOnly(0),
  567.     recvOnly(1),
  568.     sendRecv(2),
  569.     inactive(3),
  570.     loopBack(4),
  571.     ...
  572. }
  573.  
  574. -- In PropertyParm, value is a SEQUENCE OF octet string.  When sent
  575. -- by an MGC the interpretation is as follows:
  576. -- empty sequence means CHOOSE
  577. -- one element sequence specifies value
  578. -- If the sublist field is not selected, a longer sequence means
  579. -- "choose one of the values" (i.e. value1 OR value2 OR ...)
  580. -- If the sublist field is selected,
  581. -- a sequence with more than one element encodes the value of a
  582. -- list-valued property (i.e. value1 AND value2 AND ...).
  583. -- The relation field may only be selected if the value sequence
  584. -- has length 1.  It indicates that the MG has to choose a value
  585. -- for the property. E.g., x > 3 (using the greaterThan
  586. -- value for relation) instructs the MG to choose any value larger
  587. -- than 3 for property x.
  588. -- The range field may only be selected if the value sequence
  589. -- has length 2.  It indicates that the MG has to choose a value
  590. -- in the range between the first octet in the value sequence and
  591. -- the trailing octet in the value sequence, including the
  592. -- boundary values.
  593. -- When sent by the MG, only responses to an AuditCapability request
  594. -- may contain multiple values, a range, or a relation field.
  595.  
  596. PropertyParm ::= SEQUENCE
  597. {
  598.     name         PkgdName,
  599.     value         SEQUENCE OF OCTET STRING,
  600.     extraInfo    CHOICE
  601.     {
  602.         relation    Relation,
  603.         range        BOOLEAN,
  604.         sublist        BOOLEAN
  605.     } OPTIONAL,
  606.     ...
  607. }
  608.  
  609. Name ::= OCTET STRING(SIZE(2))
  610.  
  611. PkgdName ::= OCTET STRING(SIZE(4))
  612. -- represents Package Name (2 octets) plus Property, Event,
  613. -- Signal Names or Statistics ID. (2 octets)
  614. -- To wildcard a package use 0xFFFF for first two octets, choose
  615. -- is not allowed. To reference native property tag specified in
  616. -- Annex C, use 0x0000 as first two octets.
  617. -- To wildcard a Property, Event, Signal, or Statistics ID, use 
  618. -- 0xFFFF for last two octets, choose is not allowed.
  619. -- Wildcarding of Package Name is permitted only if Property,
  620. --Event, Signal, or Statistics ID is
  621. -- also wildcarded.
  622.  
  623. Relation ::= ENUMERATED
  624. {
  625.     greaterThan(0),
  626.     smallerThan(1),
  627.     unequalTo(2),
  628.     ...
  629. }
  630.  
  631. LocalRemoteDescriptor ::= SEQUENCE
  632. {
  633.     propGrps    SEQUENCE OF PropertyGroup,
  634.     ...
  635. }
  636.  
  637. PropertyGroup ::= SEQUENCE OF PropertyParm
  638.  
  639. TerminationStateDescriptor ::= SEQUENCE 
  640. {
  641.     propertyParms        SEQUENCE OF PropertyParm,
  642.     eventBufferControl    EventBufferControl OPTIONAL,
  643.     serviceState        ServiceState OPTIONAL,
  644.     ...
  645. }
  646.  
  647. EventBufferControl ::= ENUMERATED
  648. {
  649.     off(0),
  650.     lockStep(1),
  651.     ...
  652. }
  653.  
  654. ServiceState ::= ENUMERATED
  655. {
  656.     test(0),
  657.     outOfSvc(1),
  658.     inSvc(2),
  659.       ...
  660. }
  661.  
  662. MuxDescriptor   ::= SEQUENCE
  663. {
  664.     muxType             MuxType,
  665.     termList              SEQUENCE OF TerminationID,
  666.     nonStandardData        NonStandardData OPTIONAL,
  667.     ...
  668. }
  669.  
  670. MuxType ::= ENUMERATED
  671. {
  672.     h221(0),
  673.     h223(1),
  674.     h226(2),
  675.     v76(3),
  676.     ...,
  677.     nx64k(4)
  678. }
  679.  
  680. StreamID ::= INTEGER(0..65535)  -- 16 bit unsigned integer
  681.  
  682. EventsDescriptor ::= SEQUENCE
  683. {
  684.     requestID    RequestID OPTIONAL,
  685.     -- RequestID must be present if eventList is non empty,
  686.     eventList      SEQUENCE OF RequestedEvent,
  687.     ...
  688. }
  689.  
  690. RequestedEvent ::= SEQUENCE
  691. {
  692.     pkgdName        PkgdName,
  693.     streamID    StreamID OPTIONAL,
  694.     eventAction     RequestedActions OPTIONAL,
  695.     evParList       SEQUENCE OF EventParameter,
  696.     ...
  697. }
  698.  
  699. RequestedActions ::= SEQUENCE
  700. {
  701.     keepActive        BOOLEAN OPTIONAL,
  702.     eventDM            EventDM OPTIONAL,
  703.     secondEvent             SecondEventsDescriptor OPTIONAL,
  704.     signalsDescriptor       SignalsDescriptor OPTIONAL,
  705.     ...
  706. }
  707.  
  708.  
  709. EventDM ::= CHOICE
  710. {    digitMapName    DigitMapName,
  711.     digitMapValue    DigitMapValue
  712. }
  713.  
  714. SecondEventsDescriptor ::= SEQUENCE
  715. {
  716.     requestID     RequestID OPTIONAL,
  717.     eventList     SEQUENCE OF SecondRequestedEvent,
  718.     ...
  719. }
  720.  
  721. SecondRequestedEvent ::= SEQUENCE
  722. {
  723.     pkgdName        PkgdName,
  724.     streamID    StreamID OPTIONAL,
  725.     eventAction     SecondRequestedActions OPTIONAL,
  726.     evParList       SEQUENCE OF EventParameter,
  727.     ...
  728. }
  729.  
  730. SecondRequestedActions ::= SEQUENCE
  731. {
  732.     keepActive        BOOLEAN OPTIONAL,
  733.     eventDM            EventDM OPTIONAL,
  734.     signalsDescriptor     SignalsDescriptor OPTIONAL,
  735.     ...
  736. }
  737.  
  738. EventBufferDescriptor ::= SEQUENCE OF EventSpec
  739.  
  740. EventSpec ::= SEQUENCE
  741. {
  742.     eventName    EventName,
  743.     streamID    StreamID OPTIONAL,
  744.     eventParList    SEQUENCE OF EventParameter,
  745.     ...
  746. }
  747.  
  748.  
  749. SignalsDescriptor ::= SEQUENCE OF SignalRequest
  750.  
  751. SignalRequest ::= CHOICE
  752. {
  753.     signal        Signal,
  754.     seqSigList    SeqSigList,
  755.     ...
  756. }
  757.  
  758. SeqSigList ::= SEQUENCE
  759. {
  760.     id            INTEGER(0..65535),
  761.     signalList        SEQUENCE OF Signal
  762. }
  763.  
  764. Signal ::= SEQUENCE
  765. {
  766.     signalName         SignalName,
  767.     streamID        StreamID OPTIONAL,
  768.     sigType            SignalType OPTIONAL,
  769.     duration        INTEGER (0..65535) OPTIONAL,
  770.     notifyCompletion    NotifyCompletion OPTIONAL,
  771.     keepActive        BOOLEAN OPTIONAL,
  772.     sigParList         SEQUENCE OF SigParameter,
  773.     ...
  774. }
  775.  
  776. SignalType ::= ENUMERATED
  777. {
  778.     brief(0),
  779.     onOff(1),
  780.     timeOut(2),
  781.     ...
  782. }
  783.  
  784. SignalName ::= PkgdName
  785.  
  786. NotifyCompletion ::= BIT STRING
  787. {
  788.     onTimeOut(0), onInterruptByEvent(1),
  789.     onInterruptByNewSignalDescr(2), otherReason(3)
  790. }
  791.  
  792. SigParameter ::= SEQUENCE
  793. {
  794.     sigParameterName    Name,
  795.     value                Value,
  796.     -- For use of extraInfo see the comment related to PropertyParm
  797.     extraInfo         CHOICE
  798.     {
  799.         relation    Relation,
  800.         range        BOOLEAN,
  801.         sublist    BOOLEAN
  802.     } OPTIONAL,
  803.     ...
  804. }
  805.  
  806. -- For an AuditCapReply with all events, the RequestID SHALL be ALL.
  807. -- ALL is represented by 0xffffffff.
  808.  
  809. RequestID ::= INTEGER(0..4294967295)   -- 32 bit unsigned integer
  810.  
  811. ModemDescriptor ::= SEQUENCE
  812. {
  813.     mtl     SEQUENCE OF ModemType, 
  814.     mpl     SEQUENCE OF PropertyParm,
  815.     nonStandardData    NonStandardData OPTIONAL
  816. }
  817.  
  818. ModemType ::= ENUMERATED
  819. {
  820.     v18(0),
  821.     v22(1),
  822.     v22bis(2),
  823.     v32(3),
  824.     v32bis(4),
  825.     v34(5),
  826.     v90(6),
  827.     v91(7),
  828.     synchISDN(8),
  829.     ...
  830. }
  831.  
  832. DigitMapDescriptor ::= SEQUENCE
  833. {
  834.     digitMapName      DigitMapName    OPTIONAL,
  835.     digitMapValue     DigitMapValue    OPTIONAL
  836. }
  837.  
  838. DigitMapName ::= Name
  839.  
  840. DigitMapValue ::= SEQUENCE
  841. {
  842.     startTimer     INTEGER(0..99) OPTIONAL,
  843.     shortTimer     INTEGER(0..99) OPTIONAL,
  844.     longTimer      INTEGER(0..99) OPTIONAL,
  845.     digitMapBody     IA5String,
  846.     -- Units are seconds for start, short and long timers, and
  847.     -- hundreds of milliseconds for duration timer. Thus start,
  848.     -- short, and long range from 1 to 99 seconds and duration
  849.     -- from 100 ms to 9.9 s
  850.     -- See Section A.3 for explanation of digit map syntax
  851.     ...,
  852.     durationTimer     INTEGER(0..99) OPTIONAL
  853. }
  854.  
  855. ServiceChangeParm ::= SEQUENCE
  856. {
  857.     serviceChangeMethod      ServiceChangeMethod,
  858.     serviceChangeAddress    ServiceChangeAddress OPTIONAL,
  859.     serviceChangeVersion    INTEGER(0..99) OPTIONAL,
  860.     serviceChangeProfile     ServiceChangeProfile OPTIONAL,
  861.     serviceChangeReason      Value, 
  862.     -- A serviceChangeReason consists of a numeric reason code
  863.     -- and an optional text description.
  864.     -- The serviceChangeReason SHALL be a string consisting of 
  865.     -- a decimal reason code, optionally followed by a single 
  866.     -- space character and a textual description string.
  867.     -- This string is first BER-encoded as an IA5String.
  868.     -- The result of this BER-encoding is then encoded as
  869.     -- an ASN.1 OCTET STRING type, "double wrapping" the 
  870.     --value
  871.     -- as was done for package elements.
  872.     serviceChangeDelay       INTEGER(0..4294967295) OPTIONAL,
  873.     -- 32 bit unsigned integer
  874.     serviceChangeMgcId       MId OPTIONAL,
  875.     timeStamp        TimeNotation OPTIONAL,
  876.     nonStandardData        NonStandardData OPTIONAL,
  877.     ...,
  878.     serviceChangeInfo    AuditDescriptor OPTIONAL
  879. }
  880.  
  881. ServiceChangeAddress ::= CHOICE
  882. {
  883.     portNumber    INTEGER(0..65535), -- TCP/UDP port number
  884.     ip4Address     IP4Address,
  885.     ip6Address    IP6Address,
  886.     domainName       DomainName,
  887.     deviceName       PathName,
  888.     mtpAddress    OCTET STRING(SIZE(2..4)),
  889.     ...
  890. }
  891.  
  892. ServiceChangeResParm ::= SEQUENCE
  893. {
  894.     serviceChangeMgcId     MId OPTIONAL,
  895.     serviceChangeAddress    ServiceChangeAddress OPTIONAL,
  896.     serviceChangeVersion    INTEGER(0..99) OPTIONAL,
  897.     serviceChangeProfile    ServiceChangeProfile OPTIONAL,
  898.     timestamp        TimeNotation OPTIONAL,
  899.     ...
  900. }
  901.  
  902. ServiceChangeMethod ::= ENUMERATED
  903. {
  904.     failover(0),
  905.     forced(1),
  906.     graceful(2),
  907.     restart(3),
  908.     disconnected(4),
  909.     handOff(5),
  910.     ...
  911. }
  912.  
  913. ServiceChangeProfile ::= SEQUENCE
  914. {
  915.     profileName     IA5String(SIZE (1..67))
  916.     -- 64 characters for name, 1 for "/", 2 for version to match ABNF
  917. }
  918.  
  919. PackagesDescriptor ::= SEQUENCE OF PackagesItem
  920.  
  921. PackagesItem ::= SEQUENCE
  922. {
  923.     packageName        Name,
  924.     packageVersion    INTEGER(0..99),
  925.     ...
  926. }
  927.  
  928. StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
  929.  
  930. StatisticsParameter ::= SEQUENCE
  931. {
  932.     statName     PkgdName,
  933.     statValue     Value OPTIONAL
  934. }
  935.  
  936. NonStandardData ::= SEQUENCE
  937. {
  938.     nonStandardIdentifier    NonStandardIdentifier,
  939.     data            OCTET STRING
  940. }
  941.  
  942. NonStandardIdentifier        ::= CHOICE
  943. {
  944.     object            OBJECT IDENTIFIER,
  945.     h221NonStandard        H221NonStandard,
  946.     experimental        IA5String(SIZE(8)), 
  947.      -- first two characters should be "X-" or "X+"
  948.     ...
  949. }
  950.  
  951. H221NonStandard ::= SEQUENCE
  952. {
  953.     t35CountryCode1        INTEGER(0..255),
  954.     t35CountryCode2        INTEGER(0..255),    -- country, as per T.35
  955.     t35Extension        INTEGER(0..255),    -- assigned nationally
  956.     manufacturerCode    INTEGER(0..65535),    -- assigned nationally
  957.     ...
  958. }
  959.  
  960. TimeNotation ::= SEQUENCE
  961. {
  962.     date     IA5String(SIZE(8)),  -- yyyymmdd format
  963.     time     IA5String(SIZE(8))   -- hhmmssss format
  964.     -- per ISO 8601:1988
  965. }
  966.  
  967. Value ::= SEQUENCE OF OCTET STRING
  968.  
  969.  
  970. END
  971.