
-- MIB created 4/24/97 18:23:11, by
--   SMIC (the next generation) version 1.6.29, November 22, 1994.

ISDN-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        NOTIFICATION-TYPE,
        OBJECT-TYPE,
        Counter32,
        Gauge32,
        Integer32
                FROM SNMPv2-SMI
        DisplayString,
        TruthValue,
        TimeStamp,
        RowStatus,
        TestAndIncr,
        TEXTUAL-CONVENTION
                 FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ifIndex,
        InterfaceIndex
                FROM IF-MIB
        IANAifType
                FROM IANAifType-MIB
        transmission
                FROM RFC1213-MIB;

isdnMib MODULE-IDENTITY
        LAST-UPDATED    "9609231642Z" -- Sep 23, 1996
        ORGANIZATION    "IETF ISDN MIB Working Group"
        CONTACT-INFO
            "        Guenter Roeck
             Postal: cisco Systems
                     170 West Tasman Drive
                     San Jose, CA 95134
                     U.S.A.
             Phone:  +1 408 527 3143
             E-mail: groeck@cisco.com"
        DESCRIPTION
            "The MIB module to describe the
             management of ISDN interfaces."
        ::= { transmission 20 }

-- The ISDN hardware interface (BRI or PRI) is represented
-- by a media specific ifEntry.
--
-- For basic rate lines, the media specifics for the physical interface
-- is defined in the physical interface group of the ISDN MIB.
-- The ifType for physical basic rate interfaces is isdns(75)
-- or isdnu(76), whichever is appropriate.
--
-- For primary rate, the media specifics are defined in the Trunk
-- MIB and the ifType has a value of ds1(18).

-- Each signaling channel is represented by an entry
-- in the isdnSignalingTable.
-- The signaling channel has an ifType value of isdn(63).
-- Each B channel is also represented as an entry
-- in the ifTable. The B channels have an ifType value
-- of ds0(81).
-- This model is used while defining objects and tables
-- for management.
-- The ISDN MIB allows sub-layers. For example, the data transfer
-- over a B channel may take place with PPP encapsulation. While the
-- ISDN MIB describes the D and B channels, a media specific MIB
-- for PPP can be used on a layered basis. This is as per
-- the interfaces MIB.

-- Textual conventions

IsdnSignalingProtocol ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
            "This data type is used as the syntax of the
             isdnSignalingProtocol object in the
             definition of ISDN-MIB's isdnSignalingTable.

             The definition of this textual convention with the
             addition of newly assigned values is published
             periodically by the IANA, in either the Assigned
             Numbers RFC, or some derivative of it specific to
             Internet Network Management number assignments.  (The
             latest arrangements can be obtained by contacting the
             IANA.)

             Requests for new values should be made to IANA via
             email (iana@iana.org)."
        SYNTAX      INTEGER {
             other(1),          -- none of the following
             dss1(2),           -- ITU DSS1 (formerly CCITT) Q.931
             etsi(3),           -- Europe / ETSI ETS300-102
                                -- plus supplementary services
                                -- (ETSI 300-xxx)
                                -- note that NET3, NET5 define
                                -- test procedures for ETS300-102
                                -- and have been replaced by
                                -- I-CTR 3 and I-CTR 4.
             dass2(4),          -- U.K.   / DASS2 (PRI)
             ess4(5),           -- U.S.A. / AT&T 4ESS
             ess5(6),           -- U.S.A. / AT&T 5ESS
             dms100(7),         -- U.S.A. / Northern Telecom DMS100
             dms250(8),         -- U.S.A. / Northern Telecom DMS250
             ni1(9),            -- U.S.A. / National ISDN 1 (BRI)
             ni2(10),           -- U.S.A. / National ISDN 2 (BRI, PRI)
             ni3(11),           -- U.S.A. / next one
             vn2(12),           -- France / VN2
             vn3(13),           -- France / VN3
             vn4(14),           -- France / VN4 (ETSI with changes)
             vn6(15),           -- France / VN6 (ETSI with changes)
                                -- delta document CSE P 10-21 A
                                -- test document  CSE P 10-20 A
             kdd(16),           -- Japan  / KDD
             ins64(17),         -- Japan  / NTT INS64
             ins1500(18),       -- Japan  / NTT INS1500
             itr6(19),          -- Germany/ 1TR6 (BRI, PRI)
             cornet(20),        -- Germany/ Siemens HiCom CORNET
             ts013(21),         -- Australia / TS013
                                -- (formerly TPH 1962, BRI)
             ts014(22),         -- Australia / TS014
                                -- (formerly TPH 1856, PRI)
             qsig(23),          -- Q.SIG
             swissnet2(24),     -- SwissNet-2
             swissnet3(25)      -- SwissNet-3
        }

-- Isdn Mib objects definitions

isdnMibObjects OBJECT IDENTIFIER ::= { isdnMib 1 }

-- ISDN physical interface group

-- This group describes physical basic rate interfaces.

isdnBasicRateGroup      OBJECT IDENTIFIER ::= { isdnMibObjects 1 }


isdnBasicRateTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnBasicRateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table containing configuration and operational
         parameters for all physical Basic Rate
         interfaces on this managed device."
    ::= { isdnBasicRateGroup 1 }

isdnBasicRateEntry OBJECT-TYPE
    SYNTAX IsdnBasicRateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the ISDN Basic Rate Table."
    INDEX { ifIndex }
    ::= { isdnBasicRateTable 1 }

IsdnBasicRateEntry ::= SEQUENCE {
    isdnBasicRateIfType INTEGER,
    isdnBasicRateLineTopology INTEGER,
    isdnBasicRateIfMode INTEGER,
    isdnBasicRateSignalMode INTEGER
    }

isdnBasicRateIfType OBJECT-TYPE
    SYNTAX INTEGER {
        isdns(75),
        isdnu(76)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The physical interface type. For 'S/T' interfaces,
         also called 'Four-wire Basic Access Interface',
         the value of this object is isdns(75).
         For 'U' interfaces, also called 'Two-wire Basic
         Access Interface', the value of this object is
         isdnu(76)."
    ::= { isdnBasicRateEntry 1 }

isdnBasicRateLineTopology OBJECT-TYPE
    SYNTAX INTEGER {
        pointToPoint(1),
        pointToMultipoint(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The line topology to be used for this interface.
         Note that setting isdnBasicRateIfType to isdns(75)
         does not necessarily mean a line topology of


         point-to-multipoint."
    ::= { isdnBasicRateEntry 2 }

isdnBasicRateIfMode OBJECT-TYPE
    SYNTAX INTEGER {
        te(1),
        nt(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The physical interface mode. For TE mode, the value
         of this object is te(1). For NT mode, the value
         of this object is nt(2)."
    ::= { isdnBasicRateEntry 3 }

isdnBasicRateSignalMode OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        inactive(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The signaling channel operational mode for this interface.
         If active(1) there is a signaling channel on this
         interface. If inactive(2) a signaling channel is
         not available."
    ::= { isdnBasicRateEntry 4 }

isdnBearerGroup OBJECT IDENTIFIER ::= { isdnMibObjects 2 }

isdnBearerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnBearerEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table defines port specific operational, statistics


         and active call data for ISDN B channels. Each entry
         in this table describes one B (bearer) channel."
    ::= { isdnBearerGroup 1 }

isdnBearerEntry OBJECT-TYPE
    SYNTAX IsdnBearerEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Operational and statistics information relating to
         one port. A port is a single B channel."
    INDEX { ifIndex }
    ::= { isdnBearerTable 1 }

IsdnBearerEntry ::= SEQUENCE {
    isdnBearerChannelType INTEGER,
    isdnBearerOperStatus INTEGER,
    isdnBearerChannelNumber INTEGER,
    isdnBearerPeerAddress DisplayString,
    isdnBearerPeerSubAddress DisplayString,
    isdnBearerCallOrigin INTEGER,
    isdnBearerInfoType INTEGER,
    isdnBearerMultirate TruthValue,
    isdnBearerCallSetupTime TimeStamp,
    isdnBearerCallConnectTime TimeStamp,
    isdnBearerChargedUnits Gauge32
    }

isdnBearerChannelType OBJECT-TYPE
    SYNTAX INTEGER {
        dialup(1),
        leased(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The B channel type. If the B channel is connected
         to a dialup line, this object has a value of
         dialup(1). In this case, it is controlled by
         an associated signaling channel. If the B channel
         is connected to a leased line, this object has
         a value of leased(2). For leased line B channels, there
         is no signaling channel control available."
    ::= { isdnBearerEntry 1 }

isdnBearerOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        idle(1),
        connecting(2),
        connected(3),
        active(4)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The current call control state for this port.
         idle(1):       The B channel is idle.
                        No call or call attempt is going on.
         connecting(2): A connection attempt (outgoing call)
                        is being made on this interface.
         connected(3):  An incoming call is in the process
                        of validation.
         active(4):     A call is active on this interface."
    ::= { isdnBearerEntry 2 }

isdnBearerChannelNumber OBJECT-TYPE
    SYNTAX INTEGER(1..30)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The identifier being used by a signaling protocol
         to identify this B channel, also referred to as
         B channel number. If the Agent also supports the DS0 MIB,
         the values of isdnBearerChannelNumber and dsx0Ds0Number
         must be identical for a given B channel."
    ::= { isdnBearerEntry 3 }

isdnBearerPeerAddress OBJECT-TYPE
    SYNTAX DisplayString
--    Rsyntax OCTET STRING(SIZE(0..255))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ISDN address the current or last call is or was
         connected to.

         In some cases, the format of this information can not
         be predicted, since it largely depends on the type
         of switch or PBX the device is connected to. Therefore,
         the detailed format of this information is not
         specified and is implementation dependent.

         If possible, the agent should supply this information
         using the E.164 format. In this case, the number must
         start with '+'. Otherwise, IA5 number digits must be used.


         If the peer ISDN address is not available,
         this object has a length of zero."
    REFERENCE
        "ITU-T E.164, Q.931 chapter 4.5.10"
    ::= { isdnBearerEntry 4 }

isdnBearerPeerSubAddress OBJECT-TYPE
    SYNTAX DisplayString
--    Rsyntax OCTET STRING(SIZE(0..255))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ISDN subaddress the current or last call is or was
         connected to.

         The subaddress is an user supplied string of up to 20
         IA5 characters and is transmitted transparently through
         the network.

         If the peer subaddress is not available, this object
         has a length of zero."
    REFERENCE
        "ITU-T I.330, Q.931 chapter 4.5.11"
    ::= { isdnBearerEntry 5 }

isdnBearerCallOrigin OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        originate(2),
        answer(3),
        callback(4)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The call origin for the current or last call. If since
         system startup there was no call on this interface,
         this object has a value of unknown(1)."
    ::= { isdnBearerEntry 6 }

isdnBearerInfoType OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        speech(2),
        unrestrictedDigital(3),
        unrestrictedDigital56(4),
        restrictedDigital(5),
        audio31(6),
        audio7(7),
        video(8),
        packetSwitched(9)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Information Transfer Capability for the current
         or last call.

         speech(2) refers to a non-data connection, whereas
         audio31(6) and audio7(7) refer to data mode connections.

         Note that Q.931, chapter 4.5.5, originally defined
         audio7(7) as '7 kHz audio' and now defines it as
         'Unrestricted digital information with tones/
         announcements'.

         If since system startup there has been no call on this
         interface, this object has a value of unknown(1)."
    REFERENCE
        "Q.931 [8], chapter 4.5.5, octet 3 of bearer capability
         information element, combined with the User Rate
         (as defined in octets 5 and 5a to 5d), if rate adaption
         is being used."
    ::= { isdnBearerEntry 7 }

isdnBearerMultirate OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This flag indicates if the current or last call used
         multirate. The actual information transfer rate,
         in detail specified in octet 4.1 (rate multiplier),
         is the sum of all B channel ifSpeed values for
         the hyperchannel.

         If since system startup there was no call on this
         interface, this object has a value of false(2)."
    REFERENCE
        "Q.931 [8], chapter 4.5.5."
    ::= { isdnBearerEntry 8 }

isdnBearerCallSetupTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime when the ISDN setup message for
         the current or last call was sent or received. If since
         system startup there has been no call on this interface,
         this object has a value of zero."
    ::= { isdnBearerEntry 9 }

isdnBearerCallConnectTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime when the ISDN connect message for
         the current or last call was sent or received. If since
         system startup there has been no call on this interface,
         this object has a value of zero."
    ::= { isdnBearerEntry 10 }

isdnBearerChargedUnits OBJECT-TYPE
    SYNTAX Gauge32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of charged units for the current or last
         connection. For incoming calls or if charging information
         is not supplied by the switch, the value of this object
         is zero."
    ::= { isdnBearerEntry 11 }

isdnSignalingGroup OBJECT IDENTIFIER ::= { isdnMibObjects 3 }

isdnSignalingGetIndex OBJECT-TYPE
    SYNTAX TestAndIncr
--    Rsyntax INTEGER(0..2147483647)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The recommended procedure for selecting a new index for
         isdnSignalingTable row creation is to GET the value of
         this object, and then to SET the object with the same
         value. If the SET operation succeeds, the manager can use
         this value as an index to create a new row in this table."
    REFERENCE
        "RFC1903, TestAndIncr textual convention."
    ::= { isdnSignalingGroup 1 }

isdnSignalingTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnSignalingEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "ISDN signaling table containing configuration and
         operational parameters for all ISDN signaling
         channels on this managed device."
    ::= { isdnSignalingGroup 2 }

isdnSignalingEntry OBJECT-TYPE
    SYNTAX IsdnSignalingEntry
--    MAX-ACCESS not-accessible robi
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "An entry in the ISDN Signaling Table. To create a new
         entry, only isdnSignalingProtocol needs to be specified
         before isdnSignalingStatus can become active(1)."
    INDEX { isdnSignalingIndex }
    ::= { isdnSignalingTable 1 }

IsdnSignalingEntry ::= SEQUENCE {
    isdnSignalingIndex INTEGER,
    isdnSignalingIfIndex InterfaceIndex,
    isdnSignalingProtocol IsdnSignalingProtocol,
    isdnSignalingCallingAddress DisplayString,
    isdnSignalingSubAddress DisplayString,
    isdnSignalingBchannelCount Integer32,
    isdnSignalingInfoTrapEnable INTEGER,
    isdnSignalingStatus RowStatus
    }

isdnSignalingIndex OBJECT-TYPE
    SYNTAX INTEGER(1..2147483647)
--    MAX-ACCESS not-accessible robi
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The index value which uniquely identifies an entry
         in the isdnSignalingTable."
    ::= { isdnSignalingEntry 1 }

isdnSignalingIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
--    Rsyntax Integer32(1..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ifIndex value of the interface associated with this
         signaling channel."
    ::= { isdnSignalingEntry 2 }

isdnSignalingProtocol OBJECT-TYPE
    SYNTAX IsdnSignalingProtocol
--    Rsyntax INTEGER {
--        other(1),
--        dss1(2),
--        etsi(3),
--        dass2(4),
--        ess4(5),
--        ess5(6),
--        dms100(7),
--        dms250(8),
--        ni1(9),
--        ni2(10),
--        ni3(11),
--        vn2(12),
--        vn3(13),
--        vn4(14),
--        vn6(15),
--        kdd(16),
--        ins64(17),
--        ins1500(18),
--        itr6(19),
--        cornet(20),
--        ts013(21),
--        ts014(22),
--        qsig(23),
--        swissnet2(24),
--        swissnet3(25)
--        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The particular protocol type supported by the
         switch providing access to the ISDN network
         to which this signaling channel is connected."
    ::= { isdnSignalingEntry 3 }

isdnSignalingCallingAddress OBJECT-TYPE
    SYNTAX DisplayString
--    Rsyntax OCTET STRING(SIZE(0..255))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The ISDN Address to be assigned to this signaling
         channel. More specifically, this is the 'Calling Address
         information element' as being passed to the switch
         in outgoing call setup messages.

         It can be an EAZ (1TR6), a calling number (DSS1, ETSI)
         or any other number necessary to identify a signaling
         interface. If there is no such number defined or required,
         this is a zero length string. It is represented in
         DisplayString form.

         Incoming calls can also be identified by this number.


         If the Directory Number, i.e. the Called Number in
         incoming calls, is different to this number, the
         isdnDirectoryTable has to be used to specify all
         possible Directory Numbers.

         The format of this information largely depends on the type
         of switch or PBX the device is connected to. Therefore,
         the detailed format of this information is not
         specified and is implementation dependent.

         If possible, the agent should implement this information
         using the E.164 number format. In this case, the number
         must start with '+'. Otherwise, IA5 number digits must
         be used."
    REFERENCE
        "ITU-T E.164, Q.931 chapter 4.5.10"
    DEFVAL { "" }
    ::= { isdnSignalingEntry 4 }

isdnSignalingSubAddress OBJECT-TYPE
    SYNTAX DisplayString
--    Rsyntax OCTET STRING(SIZE(0..255))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Supplementary information to the ISDN address assigned
         to this signaling channel. Usually, this is the
         subaddress as defined in Q.931.
         If there is no such number defined or required, this is
         a zero length string.
         The subaddress is used for incoming calls as well as
         for outgoing calls.
         The subaddress is an user supplied string of up to 20
         IA5 characters and is transmitted transparently through
         the network."
    REFERENCE
        "ITU-T I.330, Q.931 chapter 4.5.11"
    DEFVAL { "" }
    ::= { isdnSignalingEntry 5 }

isdnSignalingBchannelCount OBJECT-TYPE
    SYNTAX Integer32(1..65535)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The total number of B channels (bearer channels)
         managed by this signaling channel. The default value
         of this object depends on the physical interface type
         and is either 2 for Basic Rate interfaces or


         24 (30) for Primary Rate interfaces."
    ::= { isdnSignalingEntry 6 }

isdnSignalingInfoTrapEnable OBJECT-TYPE
    SYNTAX INTEGER {
        enabled(1),
        disabled(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Indicates whether isdnMibCallInformation traps
         should be generated for calls on this signaling
         channel."
    DEFVAL { disabled }
    ::= { isdnSignalingEntry 7 }

isdnSignalingStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "This object is used to create and delete rows in the
         isdnSignalingTable."
    ::= { isdnSignalingEntry 8 }

isdnSignalingStatsTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnSignalingStatsEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "ISDN signaling table containing statistics
         information for all ISDN signaling channels
         on this managed device.
         Only statistical information which is not already being
         counted in the ifTable is being defined in this table."
    ::= { isdnSignalingGroup 3 }

isdnSignalingStatsEntry OBJECT-TYPE
    SYNTAX IsdnSignalingStatsEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the ISDN Signaling statistics Table."
    INDEX { isdnSignalingIndex }
-- Augments isdnSignalingEntry
    ::= { isdnSignalingStatsTable 1 }

IsdnSignalingStatsEntry ::= SEQUENCE {
    isdnSigStatsInCalls Counter32,
    isdnSigStatsInConnected Counter32,
    isdnSigStatsOutCalls Counter32,
    isdnSigStatsOutConnected Counter32,
    isdnSigStatsChargedUnits Counter32
    }

isdnSigStatsInCalls OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of incoming calls on this interface."
    ::= { isdnSignalingStatsEntry 1 }

isdnSigStatsInConnected OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of incoming calls on this interface
         which were actually connected."
    ::= { isdnSignalingStatsEntry 2 }

isdnSigStatsOutCalls OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of outgoing calls on this interface."
    ::= { isdnSignalingStatsEntry 3 }

isdnSigStatsOutConnected OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of outgoing calls on this interface
         which were actually connected."
    ::= { isdnSignalingStatsEntry 4 }

isdnSigStatsChargedUnits OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of charging units on this interface since
         system startup.
         Only the charging units applying to the local interface,
         i.e. for originated calls or for calls with 'Reverse
         charging' being active, are counted here."
    ::= { isdnSignalingStatsEntry 5 }

isdnLapdTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnLapdEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table containing configuration and statistics
         information for all LAPD (D channel Data Link)
         interfaces on this managed device.
         Only statistical information which is not already being
         counted in the ifTable is being defined in this table."
    ::= { isdnSignalingGroup 4 }

isdnLapdEntry OBJECT-TYPE
    SYNTAX IsdnLapdEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the LAPD Table."
    INDEX { ifIndex }
    ::= { isdnLapdTable 1 }

IsdnLapdEntry ::= SEQUENCE {
    isdnLapdPrimaryChannel TruthValue,
    isdnLapdOperStatus INTEGER,
    isdnLapdPeerSabme Counter32,
    isdnLapdRecvdFrmr Counter32
    }

isdnLapdPrimaryChannel OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "If set to true(1), this D channel is the designated
         primary D channel if D channel backup is active.


         There must be exactly one primary D channel
         configured. If D channel backup is not used, this
         object has a value of true(1)."
    REFERENCE
        "Q.931 [8], Annex F, D channel backup procedures."
    ::= { isdnLapdEntry 1 }

isdnLapdOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        inactive(1),
        l1Active(2),
        l2Active(3)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The operational status of this interface:

         inactive  all layers are inactive
         l1Active  layer 1 is activated,
                   layer 2 datalink not established
         l2Active  layer 1 is activated,
                   layer 2 datalink established."
    ::= { isdnLapdEntry 2 }

isdnLapdPeerSabme OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of peer SABME frames received on this
         interface. This is the number of peer-initiated
         new connections on this interface."
    ::= { isdnLapdEntry 3 }

isdnLapdRecvdFrmr OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of LAPD FRMR response frames received.
         This is the number of framing errors on this
         interface."
    ::= { isdnLapdEntry 4 }

isdnEndpointGroup OBJECT IDENTIFIER ::= { isdnMibObjects 4 }

isdnEndpointGetIndex OBJECT-TYPE
    SYNTAX TestAndIncr
--    Rsyntax INTEGER(0..2147483647)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The recommended procedure for selecting a new index for
         isdnEndpointTable row creation is to GET the value of
         this object, and then to SET the object with the same
         value. If the SET operation succeeds, the manager can use
         this value as an index to create a new row in this table."
    REFERENCE
        "RFC1903, TestAndIncr textual convention."
    ::= { isdnEndpointGroup 1 }

isdnEndpointTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnEndpointEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table containing configuration for Terminal
         Endpoints."
    ::= { isdnEndpointGroup 2 }


isdnEndpointEntry OBJECT-TYPE
    SYNTAX IsdnEndpointEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the Terminal Endpoint Table. The value
         of isdnEndpointIfType must be supplied for a row
         in this table to become active."
    INDEX { isdnEndpointIndex }
    ::= { isdnEndpointTable 1 }

IsdnEndpointEntry ::= SEQUENCE {
    isdnEndpointIndex INTEGER,
    isdnEndpointIfIndex InterfaceIndex,
    isdnEndpointIfType IANAifType,
    isdnEndpointTeiType INTEGER,
    isdnEndpointTeiValue INTEGER,
    isdnEndpointSpid DisplayString,
    isdnEndpointStatus RowStatus
    }

isdnEndpointIndex OBJECT-TYPE
    SYNTAX INTEGER(1..2147483647)
--  MAX-ACCESS not-accessible robi
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The index value which uniquely identifies an entry
         in the isdnEndpointTable."
    ::= { isdnEndpointEntry 1 }

isdnEndpointIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
--    Rsyntax Integer32(1..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ifIndex value of the interface associated with this
         Terminal Endpoint."
    ::= { isdnEndpointEntry 2 }

isdnEndpointIfType OBJECT-TYPE
    SYNTAX IANAifType
--    Rsyntax INTEGER {
--        other(1),
--        regular1822(2),
--        hdh1822(3),
--        ddnX25(4),
--        rfc877x25(5),
--        ethernetCsmacd(6),
--        iso88023Csmacd(7),
--        iso88024TokenBus(8),
--        iso88025TokenRing(9),
--        iso88026Man(10),
--        starLan(11),
--        proteon10Mbit(12),
--        proteon80Mbit(13),
--        hyperchannel(14),
--        fddi(15),
--        lapb(16),
--        sdlc(17),
--        ds1(18),
--        e1(19),
--        basicISDN(20),
--        primaryISDN(21),
--        propPointToPointSerial(22),
--        ppp(23),
--        softwareLoopback(24),
--        eon(25),
--        ethernet3Mbit(26),
--        nsip(27),
--        slip(28),
--        ultra(29),
--        ds3(30),
--        sip(31),
--        frameRelay(32),
--        rs232(33),
--        para(34),
--        arcnet(35),
--        arcnetPlus(36),
--        atm(37),
--        miox25(38),
--        sonet(39),
--        x25ple(40),
--        iso88022llc(41),
--        localTalk(42),
--        smdsDxi(43),
--        frameRelayService(44),
--        v35(45),
--        hssi(46),
--        hippi(47),
--        modem(48),
--        aal5(49),
--        sonetPath(50),
--        sonetVT(51),
--        smdsIcip(52),
--        propVirtual(53),
--        propMultiplexor(54)
--        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The interface type for this Terminal Endpoint.
         Interface types of x25ple(40) and isdn(63) are allowed.
         The interface type is identical to the value of
         ifType in the associated ifEntry."
    ::= { isdnEndpointEntry 3 }

isdnEndpointTeiType OBJECT-TYPE
    SYNTAX INTEGER {
        dynamic(1),
        static(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The type of TEI (Terminal Endpoint Identifier)
         used for this Terminal Endpoint. In case of dynamic(1),
         the TEI value is selected by the switch. In
         case of static(2), a valid TEI value has to be
         entered in the isdnEndpointTeiValue object.
         The default value for this object depends on the


         interface type as well as the Terminal Endpoint type.
         On Primary Rate interfaces the default value is
         static(2). On Basic Rate interfaces the default value
         is dynamic(1) for isdn(63) Terminal Endpoints and
         static(2) for x25ple(40) Terminal Endpoints."
    ::= { isdnEndpointEntry 4 }

isdnEndpointTeiValue OBJECT-TYPE
    SYNTAX INTEGER(0..255)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The TEI (Terminal Endpoint Identifier) value
         for this Terminal Endpoint. If isdnEndpointTeiType
         is set to static(2), valid numbers are 0..63,
         while otherwise the value is set internally.
         The default value of this object is 0 for static
         TEI assignment.
         The default value for dynamic TEI assignment is also
         0 as long as no TEI has been assigned. After TEI
         assignment, the assigned TEI value is returned."
    ::= { isdnEndpointEntry 5 }

isdnEndpointSpid OBJECT-TYPE
    SYNTAX DisplayString
--    Rsyntax OCTET STRING(SIZE(0..255))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The Service profile IDentifier (SPID) information
         for this Terminal Endpoint.

         The SPID is composed of 9-20 numeric characters.

         This information has to be defined in addition to
         the local number for some switch protocol types,
         e.g. Bellcore NI-1 and NI-2.

         If this object is not required, it is a
         zero length string."
    REFERENCE
        "Bellcore SR-NWT-001953, Generic Guidelines for ISDN
         Terminal Equipment on Basic Access Interfaces,
         Chapter 8.5.1."
    DEFVAL { "" }
    ::= { isdnEndpointEntry 6 }

isdnEndpointStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "This object is used to create and delete rows in the
         isdnEndpointTable."
    ::= { isdnEndpointEntry 7 }

isdnDirectoryGroup OBJECT IDENTIFIER ::= { isdnMibObjects 5 }

isdnDirectoryTable OBJECT-TYPE
    SYNTAX SEQUENCE OF IsdnDirectoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table containing Directory Numbers."
    ::= { isdnDirectoryGroup 1 }

isdnDirectoryEntry OBJECT-TYPE
    SYNTAX IsdnDirectoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the Directory Number Table. All objects
         in an entry must be set for a new row to become active."
    INDEX { isdnDirectoryIndex }
    ::= { isdnDirectoryTable 1 }

IsdnDirectoryEntry ::= SEQUENCE {
    isdnDirectoryIndex INTEGER,
    isdnDirectoryNumber DisplayString,
    isdnDirectorySigIndex INTEGER,
    isdnDirectoryStatus RowStatus
    }

isdnDirectoryIndex OBJECT-TYPE
    SYNTAX INTEGER(1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The index value which uniquely identifies an entry
         in the isdnDirectoryTable."
    ::= { isdnDirectoryEntry 1 }

isdnDirectoryNumber OBJECT-TYPE
    SYNTAX DisplayString
--    Rsyntax OCTET STRING(SIZE(0..255))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "A Directory Number. Directory Numbers are used
         to identify incoming calls on the signaling
         channel given in isdnDirectorySigIndex.

         The format of this information largely depends on the type
         of switch or PBX the device is connected to. Therefore,
         the detailed format of this information is not
         specified and is implementation dependent.

         If possible, the agent should implement this information
         using the E.164 number format. In this case, the number
         must start with '+'. Otherwise, IA5 number digits must
         be used."
    REFERENCE
        "ITU-T E.164, Q.931 chapter 4.5.10"
    ::= { isdnDirectoryEntry 2 }

isdnDirectorySigIndex OBJECT-TYPE
    SYNTAX INTEGER(1..2147483647)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "An index pointing to an ISDN signaling channel.
         Incoming calls are accepted on this
         signaling channel if the isdnDirectoryNumber is
         presented as Called Number in the SETUP message."
    ::= { isdnDirectoryEntry 3 }

isdnDirectoryStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "This object is used to create and delete rows in the
         isdnDirectoryTable."
    ::= { isdnDirectoryEntry 4 }

-- Traps

isdnMibTrapPrefix OBJECT IDENTIFIER ::= { isdnMib 2 }
isdnMibTraps OBJECT IDENTIFIER ::= { isdnMibTrapPrefix 0 }

isdnMibCallInformation NOTIFICATION-TYPE
        OBJECTS {
            ifIndex,                    -- isdnBearerTable ifIndex
            isdnBearerOperStatus,
            isdnBearerPeerAddress,
            isdnBearerPeerSubAddress,
            isdnBearerCallSetupTime,
            isdnBearerInfoType,
            isdnBearerCallOrigin
        }
        STATUS      current
        DESCRIPTION
            "This trap/inform is sent to the manager under the
             following condidions:
             - on incoming calls for each call which is rejected for
               policy reasons (e.g. unknown neighbor or access
               violation)
             - on outgoing calls whenever a call attempt is determined
               to have ultimately failed. In the event that call retry
               is active, then this will be after all retry attempts
               have failed.
             - whenever a call connects. In this case, the object
               isdnBearerCallConnectTime should be included in the
               trap.

             Only one such trap is sent in between successful or
             unsuccessful call attempts from or to a single neighbor;
             subsequent call attempts result in no trap.

             If the Dial Control MIB objects dialCtlNbrCfgId and
             dialCtlNbrCfgIndex are known by the entity generating
             this trap, both objects should be included in the trap
             as well. The receipt of this trap with no dial neighbor
             information indicates that the manager must poll the
             callHistoryTable of the Dial Control MIB to see what
             changed."
        ::= { isdnMibTraps 1 }

--
-- conformance information
--

isdnMibConformance OBJECT IDENTIFIER ::= { isdnMib 2 }
isdnMibCompliances OBJECT IDENTIFIER ::= { isdnMibConformance 1 }
isdnMibGroups      OBJECT IDENTIFIER ::= { isdnMibConformance 2 }

-- compliance statements

isdnMibCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "The compliance statement for entities which implement
             the ISDN MIB."
        MODULE       -- this module

-- unconditionally mandatory groups
        MANDATORY-GROUPS {
            isdnMibSignalingGroup,
            isdnMibBearerGroup,
            isdnMibNotificationsGroup
        }

-- conditionally mandatory group
        GROUP       isdnMibBasicRateGroup
        DESCRIPTION
            "The isdnMibBasicRateGroup is mandatory for entities
             supporting ISDN Basic Rate interfaces."

-- optional groups
        GROUP       isdnMibEndpointGroup
        DESCRIPTION
            "Implementation of this group is optional for all systems
             that attach to ISDN interfaces."

        GROUP       isdnMibDirectoryGroup
        DESCRIPTION
            "Implementation of this group is optional for all systems
             that attach to ISDN interfaces."

        OBJECT      isdnBasicRateIfType
        MIN-ACCESS  read-only
        DESCRIPTION
            "It is conformant to implement this object as read-only."

        OBJECT      isdnBasicRateLineTopology
        MIN-ACCESS  read-only
        DESCRIPTION
            "It is conformant to implement this object as read-only."

        OBJECT      isdnBasicRateIfMode
        MIN-ACCESS  read-only
        DESCRIPTION
            "It is conformant to implement this object as read-only."

        OBJECT      isdnBasicRateSignalMode
        MIN-ACCESS  read-only
        DESCRIPTION
            "It is conformant to implement this object as read-only."
        ::= { isdnMibCompliances 1 }

-- units of conformance

isdnMibBasicRateGroup OBJECT-GROUP
        OBJECTS {
            isdnBasicRateIfType,
            isdnBasicRateLineTopology,
            isdnBasicRateIfMode,
            isdnBasicRateSignalMode
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects required for ISDN Basic Rate
             physical interface configuration and statistics."
        ::= { isdnMibGroups 1 }

isdnMibBearerGroup OBJECT-GROUP
        OBJECTS {
            isdnBearerChannelType,
            isdnBearerOperStatus,
            isdnBearerChannelNumber,
            isdnBearerPeerAddress,
            isdnBearerPeerSubAddress,
            isdnBearerCallOrigin,
            isdnBearerInfoType,
            isdnBearerMultirate,
            isdnBearerCallSetupTime,
            isdnBearerCallConnectTime,
            isdnBearerChargedUnits
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects required for ISDN Bearer channel
             control and statistics."
        ::= { isdnMibGroups 2 }

isdnMibSignalingGroup OBJECT-GROUP
        OBJECTS {
            isdnSignalingGetIndex,
            isdnSignalingIfIndex,
            isdnSignalingProtocol,
            isdnSignalingCallingAddress,
            isdnSignalingSubAddress,
            isdnSignalingBchannelCount,
            isdnSignalingInfoTrapEnable,
            isdnSignalingStatus,
            isdnSigStatsInCalls,
            isdnSigStatsInConnected,
            isdnSigStatsOutCalls,
            isdnSigStatsOutConnected,
            isdnSigStatsChargedUnits,
            isdnLapdPrimaryChannel,
            isdnLapdOperStatus,
            isdnLapdPeerSabme,
            isdnLapdRecvdFrmr
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects required for ISDN D channel
             configuration and statistics."
        ::= { isdnMibGroups 3 }

isdnMibEndpointGroup OBJECT-GROUP
        OBJECTS {
            isdnEndpointGetIndex,
            isdnEndpointIfIndex,
            isdnEndpointIfType,
            isdnEndpointTeiType,
            isdnEndpointTeiValue,
            isdnEndpointSpid,
            isdnEndpointStatus
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects describing Terminal Endpoints."
        ::= { isdnMibGroups 4 }

isdnMibDirectoryGroup OBJECT-GROUP
        OBJECTS {
            isdnDirectoryNumber,
            isdnDirectorySigIndex,
            isdnDirectoryStatus
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects describing directory numbers."
        ::= { isdnMibGroups 5 }

isdnMibNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { isdnMibCallInformation }
    STATUS        current
    DESCRIPTION
            "The notifications which a ISDN MIB entity is
             required to implement."
    ::= { isdnMibGroups 6 }
END

