-- =========================================================================
-- Copyright (C) 2004 by H3C TECHNOLOGIES. All rights reserved.
--
-- Description: Implement the parameters configuration and information browser
--              of the SIP module.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2005-03-22 Initial version by Yang Youku
-- =========================================================================
H3C-VOSIP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, IpAddress
         FROM SNMPv2-SMI
    Integer32, Counter32, NOTIFICATION-TYPE
         FROM SNMPv2-SMI
    RowStatus
         FROM SNMPv2-TC
    InetAddressType, InetAddress
         FROM INET-ADDRESS-MIB
    h3cVoice
         FROM HUAWEI-3COM-OID-MIB;


    h3cVoSIP MODULE-IDENTITY
        LAST-UPDATED "200503150000Z"
        ORGANIZATION                                   
            "Hangzhou H3C Tech. Co., Ltd."             
        CONTACT-INFO                                   
            "Platform Team Hangzhou H3C Tech. Co., Ltd.
            Hai-Dian District Beijing P.R. China       
            http://www.h3c.com                         
            Zip:100085                                 
            "                                          
        DESCRIPTION
            "This MIB contains objects to manage the SIP client configuration.
             Session Initiation Protocol (SIP) is an application layer control
             protocol that can establish, modify, and terminate multimedia
             sessions such as IP phone calls, multimedia distribution, and
             multimedia conferences.
             "
        REVISION "200503150000Z"
        DESCRIPTION
             "The initial revision of this MIB module."
        ::= { h3cVoice 12 }

--================================
-- Structure declaration
--================================
    SipMsgType ::= INTEGER
        {
        unknown (1),
        register(2),
        invite(3),
        ack(4),
        prack(5),
        cancel(6),
        bye(7),
        info(8)
        }


--===============================
-- Node definitions
--===============================
    h3cSIPClientMIB OBJECT IDENTIFIER ::= { h3cVoSIP 1 }


--===============================
-- h3cSIPClientConfigObjects
--===============================
    h3cSIPClientConfigObjects OBJECT IDENTIFIER ::= { h3cSIPClientMIB 1 }


    h3cSIPID OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (1..32))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The unique identification of a SIP gateway.
            This value couldn't be modified unless
            h3cSIPRegisterEnable is 'off'."
        ::= { h3cSIPClientConfigObjects 1 }


    h3cSIPPasswordType OBJECT-TYPE
        SYNTAX INTEGER
            {
            simple(1),
            cipher(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The display type of a SIP gateway password. By default,
            this object should have the value simple(1).
            This value couldn't be modified unless
            h3cSIPRegisterEnable is 'off'."
        ::= { h3cSIPClientConfigObjects 2 }


    h3cSIPPassword OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "A SIP gateway password.  This value couldn't be
            modified unless h3cSIPRegisterEnable is 'off'."
        ::= { h3cSIPClientConfigObjects 3 }

    h3cSIPSourceIPAddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The source IP address type of the local peer acting
            as UA (User Agent).
            This value couldn't be modified unless
            h3cSIPRegisterEnable is 'off'."
        ::= { h3cSIPClientConfigObjects 4 }

    h3cSIPSourceIP OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The source IP address of the local peer acting
            as UA (User Agent).
            This value couldn't be modified unless
            h3cSIPRegisterEnable is 'off'."
        ::= { h3cSIPClientConfigObjects 5 }

    h3cSIPRegisterMode OBJECT-TYPE
        SYNTAX INTEGER
            {
             gatewayAll(1),
             gatewaySingle(2),
             phoneNumber(3)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The object describes the method to send the type of telephone number.
             gatewayAll       The register mode is gateway mode and the register
                              message contains all the POTS numbers.
             gatewaySingle    The register mode is gateway mode and every register
                              message contains only one POTS number.
             phoneNumber      The register mode is phone mode.

             Note: Please configure the object hwSIPRegisterPhoneNumber
                   after hwSIPRegisterMode has been set to phoneNumber.
                   This value couldn't be modified unless
                   h3cSIPRegisterEnable is 'off'."
        ::= { h3cSIPClientConfigObjects 6 }

    h3cSIPRegisterPhoneNumber OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The object describes the telephone number which is going to be 
            registered.
            Note: Please set value of the object h3cIPRegisterMode to 
                  phoneNumber before configure this node.
                  This value couldn't be modified unless
                  h3cSIPRegisterEnable is 'off'."
       ::= { h3cSIPClientConfigObjects 7 }

    h3cSIPRegisterEnable OBJECT-TYPE
        SYNTAX INTEGER
            {
            on(1),
            off(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The object describes register enable or not, default is off.
            Only if h3cSIPServerConfigTable is configured well, then this
            node could be set 'on(1)' successfully."
        ::= { h3cSIPClientConfigObjects 8 }


    h3cSIPTrapsControl OBJECT-TYPE
        SYNTAX INTEGER
            {
            enabled(1),
            disabled(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates whether the SIP module is permitted to generate traps."
        ::= { h3cSIPClientConfigObjects 9 }

    h3cSIPStatisticClear OBJECT-TYPE
        SYNTAX INTEGER
            {
            clear(1)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The object is used to clear the statistic information of a SIP 
            gateway.
            Note: this object only supports set operation. "
        ::= { h3cSIPClientConfigObjects 10 }


--=======================================
-- h3cSIPServerConfigTable
--=======================================
    h3cSIPServerConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CSIPServerConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of the SIP server configuration entries."
        ::= { h3cSIPClientMIB 2 }


    h3cSIPServerConfigEntry OBJECT-TYPE
        SYNTAX H3CSIPServerConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A SIP server configuration entry contains some associated 
            information, e.g. IP address, port, etc."
        INDEX { h3cSIPServerIPAddressType, h3cSIPServerIPAddress, h3cSIPServerPort}
        ::= { h3cSIPServerConfigTable 1 }


    H3CSIPServerConfigEntry ::=
        SEQUENCE {
            h3cSIPServerIPAddressType
                InetAddressType,
            h3cSIPServerIPAddress
                InetAddress,
            h3cSIPServerPort
                Integer32,
            h3cSIPServerType
                INTEGER,
            h3cSIPAcceptType
                INTEGER,
            h3cSIPServerStatus
                RowStatus
         }

    h3cSIPServerIPAddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The source IP address type of a SIP server."
        ::= { h3cSIPServerConfigEntry 1 }

    h3cSIPServerIPAddress OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The IP address of a SIP server."
        ::= { h3cSIPServerConfigEntry 2 }

    h3cSIPServerPort OBJECT-TYPE
        SYNTAX Integer32(1..65535)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The port of a SIP server."
        DEFVAL { 5060 }
        ::= { h3cSIPServerConfigEntry 3 }


    h3cSIPServerType OBJECT-TYPE
        SYNTAX INTEGER
            {
            master(1),
            slave(2)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of SIP Server."
        ::= { h3cSIPServerConfigEntry 4 }


    h3cSIPAcceptType OBJECT-TYPE
        SYNTAX INTEGER
            {
            inbound(1),
            all(2)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The accept type of SIP calls. By default, the object value is all(2)."
        ::= { h3cSIPServerConfigEntry 5 }


    h3cSIPServerStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object is used to create, delete or modify a row in this table.
            To create a new row, hwSIPServerType must be specified.
            Note: h3cSIPRegisterEnable must be specifed 'off' before
            modifing or destroying an existing row or creating a new row.
            "
        ::= { h3cSIPServerConfigEntry 6 }


--=======================================
-- h3cSIPMsgStatTable
--=======================================
    h3cSIPMsgStatTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CSIPMsgStatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of SIP message statistics entries. "
        ::= { h3cSIPClientMIB 3 }


    h3cSIPMsgStatEntry OBJECT-TYPE
        SYNTAX H3CSIPMsgStatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A collection of statistics kept for a SIP
            message. "
        INDEX { h3cSIPMsgIndex }
        ::= { h3cSIPMsgStatTable 1 }

    H3CSIPMsgStatEntry ::=
        SEQUENCE {
            h3cSIPMsgIndex
                SipMsgType,
            h3cSIPMsgName
                OCTET STRING,    
            h3cSIPMsgSend
                Counter32,
            h3cSIPMsgOKSend
                Counter32,
            h3cSIPMsgReceive
                Counter32,
            h3cSIPMsgOKReceive
                Counter32
         }

    h3cSIPMsgIndex OBJECT-TYPE
        SYNTAX SipMsgType
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The index of a SIP message."
        ::= { h3cSIPMsgStatEntry 1 }
        
    h3cSIPMsgName OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The name of a SIP message."
        ::= { h3cSIPMsgStatEntry 2 }

    h3cSIPMsgSend OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of messages which a SIP gateway has sent."
        ::= { h3cSIPMsgStatEntry 3 }

    h3cSIPMsgOKSend OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of successful messages which a SIP gateway has sent."
        ::= { h3cSIPMsgStatEntry 4 }

    h3cSIPMsgReceive OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of messages which a SIP gateway has received."
        ::= { h3cSIPMsgStatEntry 5 }

    h3cSIPMsgOKReceive OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of successful messages which a SIP gateway has received."
        ::= { h3cSIPMsgStatEntry 6 }


--=======================================
-- h3cSIPMsgResponseStatTable
--=======================================
    h3cSIPMsgResponseStatTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CSIPMsgResponseStatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of the SIP message response code statistic entries."
        ::= { h3cSIPClientMIB 4 }


    h3cSIPMsgResponseStatEntry OBJECT-TYPE
        SYNTAX H3CSIPMsgResponseStatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The information of SIP response code."
        INDEX { h3cSIPMsgResponseIndex }
        ::= { h3cSIPMsgResponseStatTable 1 }

    H3CSIPMsgResponseStatEntry ::=
        SEQUENCE {
            h3cSIPMsgResponseIndex
                Integer32,
            h3cSIPMsgResponseCode
                OCTET STRING,
            h3cSIPResCodeRecvCount
                Counter32,
            h3cSIPResCodeSendCount
                Counter32
         }

    h3cSIPMsgResponseIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The index of a SIP message response code."
        ::= { h3cSIPMsgResponseStatEntry 1 }

    h3cSIPMsgResponseCode OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The SIP message response code."
        ::= { h3cSIPMsgResponseStatEntry 2 }

    h3cSIPResCodeRecvCount OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of SIP response code which a SIP gateway has received."
        ::= { h3cSIPMsgResponseStatEntry 3 }

    h3cSIPResCodeSendCount OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of SIP response code which a SIP gateway has sent."
        ::= { h3cSIPMsgResponseStatEntry 4 }


--=======================================
-- h3cSIPTrapStubObjects
--=======================================
    h3cSIPTrapStubObjects OBJECT IDENTIFIER ::= { h3cVoSIP 3 }


    h3cSIPRegisterFailReason OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..31))
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The object describes the reason that a SIP gateway fails to register."
        ::= { h3cSIPTrapStubObjects 1 }


    h3cSIPAuthenReqMethod OBJECT-TYPE
        SYNTAX SipMsgType
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The object denotes the method of a request that fails to authenticate."
        ::= { h3cSIPTrapStubObjects 2 }


--=======================================
-- h3cSIPClientNotifications
--=======================================
    h3cSIPClientNotifications OBJECT IDENTIFIER ::= { h3cVoSIP 4 }


    h3cSIPRegisterFailure NOTIFICATION-TYPE
        OBJECTS { h3cSIPID, h3cSIPServerIPAddressType, h3cSIPServerIPAddress,
                  h3cSIPServerPort, h3cSIPRegisterFailReason }
        STATUS current
        DESCRIPTION
            "The trap is generated when a SIP gateway fails to register."
        ::= { h3cSIPClientNotifications 1 }


    h3cSIPAuthenticateFailure NOTIFICATION-TYPE
        OBJECTS { h3cSIPID, h3cSIPAuthenReqMethod }
        STATUS current
        DESCRIPTION
            "The trap is generated when a request with its credential fail to 
            authenticate."
        ::= { h3cSIPClientNotifications 2 }


    h3cSIPServerSwitch NOTIFICATION-TYPE
        STATUS current
        DESCRIPTION
            "The trap is generated when a switch happens between master and 
            slave SIP server."
        ::= { h3cSIPClientNotifications 3 }

END
