-- ==========================================================
-- Copyright (C) 2002 by HUAWEI TECHNOLOGIES. All rights reserved.
--
-- Description: This file describes the huawei mib implementation of ISDN
-- Reference:
-- Version: V1.4
-- History:
--  V1.0 Initial version
--  V1.1 2004-10-27 updated by gaolong
--       Modify IMPORTS clause.
--       Remove object oid comments from MIB
--       Correct DEFVAL value of hwChanbIsdnPermit
--  V1.2 2005-03-22 updated by songjie
--       Add table: hwQ931IsdnTable.
--       Add traps: hwQ931IsdnCallSetup, hwQ931IsdnCallClear.
--  V1.3 2009-05-22 updated by chengtiesheng
--       Add table: hwLapdIsdnTable.
--  V1.4 2009-10-15 updated by chengtiesheng
--       Modify leaf node: hwLapdIsdnProtocol, add value ni(9).
--       Change MAX-ACCESS of hwLapdIsdnIf.
--       Add leaf node: hwLapdStatusTrapEnable.
--       Add trap:  hwLapdIsdnStatusChange.
-- ==============================================================
HUAWEI-ISDN-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            mlsr
                FROM HUAWEI-3COM-OID-MIB
            Integer32, Counter32, OBJECT-TYPE, MODULE-IDENTITY,
            NOTIFICATION-TYPE
                FROM SNMPv2-SMI
            DisplayString, TimeStamp, DateAndTime, RowStatus
                FROM SNMPv2-TC;

--
-- Node definitions
--

        hwIsdnMib MODULE-IDENTITY
            LAST-UPDATED "200112200000Z"
            ORGANIZATION    "Huawei Technologies Co., Ltd"
            CONTACT-INFO
                "VRP Team Huawei Technologies co.,Ltd.
                Huawei Bld.,NO.3 Xinxi Rd.,
                Shang-Di Information Industry Base,
                Hai-Dian District Beijing P.R. China
                http://www.huawei.com
                Zip:100085"
            DESCRIPTION
                "This file describes the huawei mib implementation of ISDN"
            ::= { mlsr 9 }

--  Isdn Mib objects definitions
        hwIsdnMibObjects OBJECT IDENTIFIER ::= { hwIsdnMib 1 }

        isdnChannelB OBJECT IDENTIFIER ::= { hwIsdnMibObjects 1 }

        hwChanbIsdnTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HWChanbIsdnEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This table is used to describe the router's B Channels
                 infomation"
            ::= { isdnChannelB 1 }

        hwChanbIsdnEntry OBJECT-TYPE
            SYNTAX HWChanbIsdnEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                " A single B channels"
            INDEX { hwChanbIsdnIf }
            ::= { hwChanbIsdnTable 1 }

        HWChanbIsdnEntry ::=
            SEQUENCE {
                hwChanbIsdnIf
                    INTEGER,
                hwChanbIsdnPermit
                    INTEGER,
                hwChanbIsdnAddr
                    DisplayString,
                hwChanbIsdnCallerAddr
                    DisplayString,
                hwChanbIsdnCallType
                    INTEGER,
                hwChanbIsdnInfoType
                    INTEGER,
                hwChanbIsdnState
                    INTEGER,
                hwChanbIsdnCallFreeReason
                    DisplayString,
                hwChanbIsdnCallFreeCode
                    INTEGER,
                hwChanbIsdnCallAccept
                    Counter32,
                hwChanbIsdnCallReject
                    Counter32,
                hwChanbIsdnCallSuccess
                    Counter32,
                hwChanbIsdnCallFailure
                    Counter32,
                hwChanbIsdnMaxKeepTime
                    Integer32,
                hwChanbIsdnLastKeepTime
                    Integer32,
                hwChanbIsdnLastCallTime
                    TimeStamp
             }

        hwChanbIsdnIf OBJECT-TYPE
            SYNTAX INTEGER
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                " this object is used to describe the virtual
                interface value associated with one neighbor.   "
            ::= { hwChanbIsdnEntry 1 }

        hwChanbIsdnPermit OBJECT-TYPE
            SYNTAX INTEGER
                {
                callOut(1),
                callIn(2),
                callBidirection(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                " this object is used to describe the call permissions."
            DEFVAL { callBidirection }
            ::= { hwChanbIsdnEntry 2 }

        hwChanbIsdnAddr OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to descirbe the call address
                by which we call one nieghbor."
            ::= { hwChanbIsdnEntry 3 }

        hwChanbIsdnCallerAddr OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the callser address
                which will be known by B channels."
            ::= { hwChanbIsdnEntry 4 }

        hwChanbIsdnCallType OBJECT-TYPE
            SYNTAX INTEGER
                {
                nocall(0),
                call(1),
                answer(2)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe that whether it is an
                incoming call or an outging call."
            ::= { hwChanbIsdnEntry 5 }

        hwChanbIsdnInfoType OBJECT-TYPE
            SYNTAX INTEGER
                {
                unknown(1),
                speech(2),
                unrestrDigit(3),
                unrestrDigit56(4),
                restrictDigit(5),
                audio31(6),
                audio7(7),
                video(8),
                swithchedPacket(9)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the information type
                on the call"
            ::= { hwChanbIsdnEntry 6 }

        hwChanbIsdnState OBJECT-TYPE
            SYNTAX INTEGER
                {
                idle(1),
                connecting(2),
                active(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to manage the call by NMS"
            ::= { hwChanbIsdnEntry 7 }

        hwChanbIsdnCallFreeReason OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the reason why last
                call is cleard"
            ::= { hwChanbIsdnEntry 8 }

        hwChanbIsdnCallFreeCode OBJECT-TYPE
            SYNTAX INTEGER
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the reason code for
                the last call down."
            ::= { hwChanbIsdnEntry 9 }

        hwChanbIsdnCallAccept OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the accepted call
                number from the B channels"
            ::= { hwChanbIsdnEntry 10 }

        hwChanbIsdnCallReject OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the refused call
                number from B channels ."
            ::= { hwChanbIsdnEntry 11 }

        hwChanbIsdnCallSuccess OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the successful call
                number to B channels after
                system restart."
            ::= { hwChanbIsdnEntry 12 }

        hwChanbIsdnCallFailure OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the failing call number
                 to B channels after system restart"
            ::= { hwChanbIsdnEntry 13 }

        hwChanbIsdnMaxKeepTime OBJECT-TYPE
            SYNTAX Integer32
            UNITS "milliseconds"
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object is used to descirbe the maximum duration
                time in milliseconds."
            DEFVAL { 2147483647 }
            ::= { hwChanbIsdnEntry 14 }

        hwChanbIsdnLastKeepTime OBJECT-TYPE
            SYNTAX Integer32
            UNITS "milliseconds"
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the last call duration
                 time in milliseconds"
            ::= { hwChanbIsdnEntry 15 }

        hwChanbIsdnLastCallTime OBJECT-TYPE
            SYNTAX TimeStamp
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "this object is used to describe the sysUpTime after
                last call attempt was made."
            ::= { hwChanbIsdnEntry 16 }

        hwChanbTrapEnable OBJECT-TYPE
            SYNTAX INTEGER { enabled(1), disabled(2) }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object is used to control  sending trap"
            ::= { isdnChannelB 2 }

        isdnQ931 OBJECT IDENTIFIER ::= { hwIsdnMibObjects 2 }

        hwQ931IsdnControl OBJECT IDENTIFIER ::= { isdnQ931 1 }

        hwQ931CallSetupTrapEnable OBJECT-TYPE
            SYNTAX INTEGER
            {
                enabled(1),
                disabled(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object is used to control sending callsetup trap."
            ::= { hwQ931IsdnControl 1 }

        hwQ931CallClearTrapEnable OBJECT-TYPE
            SYNTAX INTEGER
            {
                enabled(1),
                disabled(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object is used to control sending callclear trap"
            ::= { hwQ931IsdnControl 2 }

        hwQ931IsdnTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwQ931IsdnEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This table describes B channel information for the
                use of Q931"
            ::= { isdnQ931 2 }

        hwQ931IsdnEntry OBJECT-TYPE
            SYNTAX HwQ931IsdnEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A B channel entry in the Q931."
            INDEX {  hwQ931IsdnOpIndex }
            ::= { hwQ931IsdnTable 1 }

        HwQ931IsdnEntry ::=
            SEQUENCE
            {
                hwQ931IsdnOpIndex
                    Integer32,
                hwQ931IsdnLastCalled
                    DisplayString,
                hwQ931IsdnLastCalling
                    DisplayString,
                hwQ931IsdnLastCauseDisc
                    INTEGER,
                hwQ931IsdnCallDirection
                    INTEGER,
                hwQ931IsdnCallTimeOpen
                    DateAndTime,
                hwQ931IsdnCallTimeClose
                    DateAndTime
            }

        hwQ931IsdnOpIndex OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Index of the B ISDN channel interface managed by Q93"
            ::= { hwQ931IsdnEntry 1 }

        hwQ931IsdnLastCalled OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object describes the called ISDN number.
                When an outgoing call is established successfully, the
                value of this node is the call number of this device,
                otherwise the value is null string"
            ::= { hwQ931IsdnEntry 2 }

        hwQ931IsdnLastCalling OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object describes the calling ISDN number.
                When an incoming call is established successfully, the
                value of this node is the call number of peer device,
                otherwise the value is null string."
            ::= { hwQ931IsdnEntry 3 }

        hwQ931IsdnLastCauseDisc OBJECT-TYPE
            SYNTAX INTEGER
            {
                unknown(1),
                normCallClr(2),
                noRouteToTransNet(3),
                noRouteToDest(4),
                switchEquCongest(5),
                netOutofOrder(6)
            }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object describes last cause of disconnection.
                In hwQ931IsdnCallClear trap, the value of this node is
                the reason of disconnection, this node is only valid
                for hwQ931IsdnCallClear trap, the value of this node
                is unknown in other situation.
                unknown:            unknown error.
                normCallClr:        normal call clearing.
                noRouteToTransNet:  no route to specified transit network.
                noRouteToDest:      no route to destination.
                switchEquCongest:   switching equipment congestion.
                netOutofOrder:      network out of order."
            ::= { hwQ931IsdnEntry 4 }

        hwQ931IsdnCallDirection OBJECT-TYPE
            SYNTAX INTEGER
            {
                incoming(1),
                outgoing(2)
            }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object describes the direction of the current call."
            ::= { hwQ931IsdnEntry 5 }

        hwQ931IsdnCallTimeOpen OBJECT-TYPE
            SYNTAX DateAndTime
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object describes the start time of this call.
                start time is the time of an existent call that
                has just been established."
            ::= { hwQ931IsdnEntry 6 }

        hwQ931IsdnCallTimeClose OBJECT-TYPE
            SYNTAX DateAndTime
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object describes the close time of this call.
                This node is only vaild for hwQ931IsdnCallClear trap.
                In other situation the value of this node is zero.
                In hwQ931IsdnCallClear trap, this node provides the
                time of an existent call that the call has just been
                cleared."
            ::= { hwQ931IsdnEntry 7 }

-- Define hwLapdIsdnTable

        hwIsdnLapd OBJECT IDENTIFIER ::= { hwIsdnMibObjects 3 }

        hwLapdIsdnTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwLapdIsdnEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This table is used to describe the config of ISDN D channel."
            ::= { hwIsdnLapd 1 }

        hwLapdIsdnEntry OBJECT-TYPE
            SYNTAX HwLapdIsdnEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "ISDN D channel config"
            INDEX { hwLapdIsdnIf }
            ::= { hwLapdIsdnTable 1 }

        HwLapdIsdnEntry ::=
            SEQUENCE {
                hwLapdIsdnIf
                    Integer32,
                hwLapdIsdnProtocol
                    INTEGER,
                hwLapdIsdnIfMode
                    INTEGER,
                hwLapdIsdnLinkStatus
                    INTEGER
             }

        hwLapdIsdnIf OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "This object is used to describe the D channel
                interface value associated with one neighbor."
            ::= { hwLapdIsdnEntry 1 }

        hwLapdIsdnProtocol OBJECT-TYPE
            SYNTAX INTEGER
                {
                dss1(1),
                qsig(2),
                etsi(3),
                ess5(4),
                ansi(5),
                ni2(6),
                ntt(7),
                att(8),
                ni(9)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object is used to describe the protocol D channel applied.
                For E1, the protocol may be dss1, qsig, etsi.
                For T1, the protocol may be ess5, ansi, att, dss1, etsi, ni2,
                ntt, qsig.
                For BRI, the protocol may be ansi, dss1, etsi, ni, ntt."
            DEFVAL { dss1 }
            ::= { hwLapdIsdnEntry 2 }

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

        hwLapdIsdnLinkStatus 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.
               "
            ::= { hwLapdIsdnEntry 4 }

        hwLapdIsdnControl OBJECT IDENTIFIER ::= { hwIsdnLapd 2 }
        hwLapdStatusTrapEnable OBJECT-TYPE
            SYNTAX INTEGER
            {
                enabled(1),
                disabled(2)
            }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "This object is used to control sending hwLapdIsdnStatusChange
                trap."
            DEFVAL { enabled }
            ::= { hwLapdIsdnControl 1 }

--  Traps related to Connection management
        hwIsdnMibTraps OBJECT IDENTIFIER ::= { hwIsdnMib 2 }

        hwChanbIsdnCall NOTIFICATION-TYPE
        OBJECTS { hwChanbIsdnIf,
            hwChanbIsdnAddr,
            hwChanbIsdnCallType,
            hwChanbIsdnCallerAddr,
            hwChanbIsdnInfoType,
            hwChanbIsdnLastKeepTime,
            hwChanbIsdnCallFreeReason,
            hwChanbIsdnCallFreeCode
            }
        STATUS current
        DESCRIPTION
        "When one call is setup ,cleard or determined , the trap
        is sent to NMS"
        ::= { hwIsdnMibTraps 1 }

        hwQ931IsdnCallSetup NOTIFICATION-TYPE
            OBJECTS {
                hwQ931IsdnOpIndex,
                hwQ931IsdnLastCalled,
                hwQ931IsdnLastCalling,
                hwQ931IsdnCallDirection,
                hwQ931IsdnCallTimeOpen
            }
            STATUS      current
            DESCRIPTION
                "This trap/inform is sent to the manager whenever a call
                is established successfully."
            ::= { hwIsdnMibTraps 2 }

        hwQ931IsdnCallClear NOTIFICATION-TYPE
            OBJECTS {
                hwQ931IsdnOpIndex,
                hwQ931IsdnLastCalled,
                hwQ931IsdnLastCalling,
                hwQ931IsdnLastCauseDisc,
                hwQ931IsdnCallDirection,
                hwQ931IsdnCallTimeOpen,
                hwQ931IsdnCallTimeClose
            }
            STATUS current
            DESCRIPTION
                "This trap/inform is sent to the manager under the following
                conditions:
                - an existent call is normally cleared.
                - an existent call is determined to have ultimately
                  failed, and has been cleared.
                - the existent call is cleared when the BRI/PRI port is
                  down.
                - the existent call is cleared when the dialer rule is
                  down."
            ::= { hwIsdnMibTraps 3 }

        hwLapdIsdnStatusChange NOTIFICATION-TYPE
            OBJECTS {
                hwLapdIsdnIf,
                hwLapdIsdnLinkStatus
            }
            STATUS current
            DESCRIPTION
                "This trap/inform is sent to the manager whenever the
                 D-channel of an interface changes state."
            ::= { hwIsdnMibTraps 4 }

    END
