-- ==========================================================================
-- Copyright (C) 2004-2010 by H3C Technologies. All rights reserved.
--
-- Description: The purpose of this MIB file is to provide the definition of
--              voice call record.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2008-02-17 Initial version, created by Tian Xiaoqiang, Qu Jin
-- V1.1 2009-12-09 Add g729br8 to "H3cCodecType", Wang Tong
-- ==========================================================================
A3COM-HUAWEI-VOICE-CALL-HISTORY-MIB DEFINITIONS ::= BEGIN
IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY, Integer32, Gauge32
    FROM SNMPv2-SMI
        InetAddressType, InetAddress
    FROM INET-ADDRESS-MIB
        InterfaceIndexOrZero
    FROM IF-MIB
        AbsoluteCounter32
    FROM DIAL-CONTROL-MIB
        TEXTUAL-CONVENTION, DisplayString, TimeStamp
    FROM SNMPv2-TC
        h3cVoice
    FROM A3COM-HUAWEI-OID-MIB;

h3cVoCallHistory MODULE-IDENTITY
    LAST-UPDATED "200802170000Z"
    ORGANIZATION
        "H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         Http://www.h3c.com
         Zip:100085"
    DESCRIPTION
        "This MIB file is to provide the definition of voice call
        history record information."
    REVISION "200802170000Z"
    DESCRIPTION
        "The initial version of this MIB file."
    ::= { h3cVoice 16 }

-- ======================================
--          Type declaration
-- ======================================

H3cGUid ::= TEXTUAL-CONVENTION
STATUS       current
DESCRIPTION
        "Represents a global call identifier.  The global call identifier is
         used as a unique identifier for an end-to-end call.  A zero length
         H3cGUid indicates no value for the global call identifier."
SYNTAX       OCTET STRING(SIZE(0..16))

H3cCodecType      ::= TEXTUAL-CONVENTION
STATUS       current
DESCRIPTION
        "Type of Codec."
SYNTAX  INTEGER
        {
        g711a(1),
        g711u(2),
        g723r53(3),
        g723r63(4),
        g729r8(5),
        g729a(6),
        g726r16(7),
        g726r24(8),
        g726r32(9),
        g726r40(10),
        unknown(11),
        g729br8(12)
        }

h3cVoiceCallHistoryObjects OBJECT IDENTIFIER ::= { h3cVoCallHistory 1 }

-- ===========================================================================
--                        h3cCallHistoryTable
-- ===========================================================================
-- callHistoryTable
-- Table to store the past call information.  The destination number
-- and the call connect and disconnect time, and the disconnection
-- cause are stored.  These calls could be circuit switched or virtual
-- circuits.  History of each and every call is stored, of successful
-- calls as well as of unsuccessful and rejected calls.  An entry will
-- be created when a call is cleared.

h3cCallHistoryTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF H3cCallHistoryEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing information about specific
             calls to a specific destination."
        ::= { h3cVoiceCallHistoryObjects 1 }

h3cCallHistoryEntry OBJECT-TYPE
        SYNTAX      H3cCallHistoryEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The information regarding a single connection."
        INDEX       { h3cCallHistoryIndex }
        ::= { h3cCallHistoryTable 1 }


H3cCallHistoryEntry ::=
        SEQUENCE {
            h3cCallHistoryIndex                     Integer32,
            h3cCallHistorySetupTime                 TimeStamp,
            h3cCallHistoryConnectTime               TimeStamp,
            h3cCallHistoryTerminateTime             TimeStamp,
            h3cCallHistoryPeerAddress               DisplayString,
            h3cCallHistoryPeerId                    Integer32,
            h3cCallHistoryLogicalIfIndex            InterfaceIndexOrZero,
            h3cCallHistoryCallOrigin                INTEGER,
            h3cCallHistoryChargedUnits              AbsoluteCounter32,
            h3cCallHistoryInfoType                  INTEGER,
            h3cCallHistoryTransmitPackets           AbsoluteCounter32,
            h3cCallHistoryTransmitBytes             AbsoluteCounter32,
            h3cCallHistoryReceivePackets            AbsoluteCounter32,
            h3cCallHistoryReceiveBytes              AbsoluteCounter32
        }

h3cCallHistoryIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The index of the call history table.  It's a monotonically
             increasing integer for the sole purpose of indexing call
             disconnection events.  When it reaches to the maximum value,
             the value will back to 1."
        ::= { h3cCallHistoryEntry 1 }

h3cCallHistorySetupTime OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The value of sysUpTime when the call was started."
        ::= { h3cCallHistoryEntry 2 }

h3cCallHistoryConnectTime OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The value of sysUpTime when the call was connected.
             If the call is not connected, this object will have a
             value of zero."
        ::= { h3cCallHistoryEntry 3 }

h3cCallHistoryTerminateTime OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The value of sysUpTime when the call was terminated."
        ::= { h3cCallHistoryEntry 4 }

h3cCallHistoryPeerAddress OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number this call was connected to.  If the number is
             not available, it will have a length of zero."
        ::= { h3cCallHistoryEntry 5 }

h3cCallHistoryPeerId OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object identifies a single peer.  This is the Id value
             of the peer table entry to which this call was made.  If a
             peer table entry for this call does not exist or is unknown,
             the value of this object will be zero."
        ::= { h3cCallHistoryEntry 6 }

h3cCallHistoryLogicalIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndexOrZero
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This is the ifIndex value of the logical interface through
             which this call was made.  For ISDN media, this would be
             the ifIndex of the B channel which was used for this call.
             If the ifIndex value is unknown, the value of this object
             will be zero."
        ::= { h3cCallHistoryEntry 7 }

h3cCallHistoryCallOrigin OBJECT-TYPE
        SYNTAX      INTEGER {
            originate(1),
            answer(2),
            callback(3)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The call origin.
             originate        The call that is initiated.
             answer           The call that is accepted.
             callback         Either rejects the call and then calls back,
                              or uses the 'Reverse charging' information
                              element if it is available. Note that callback(3)
                              is supposed to control charging, not security,
                              and applies to callback prior to accepting a call.
                              Callback for security reasons can be handled using
                              PPP callback."
        ::= { h3cCallHistoryEntry 8 }

h3cCallHistoryChargedUnits OBJECT-TYPE
        SYNTAX      AbsoluteCounter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of charged units for this connection.
             For incoming calls or if charging information is
             not supplied by the switch, the value of this object
             will be zero."
        ::= { h3cCallHistoryEntry 9 }

h3cCallHistoryInfoType OBJECT-TYPE
        SYNTAX      INTEGER {
            other(1),
            speech(2),
            unrestrictedDigital(3),
            unrestrictedDigital56(4),
            restrictedDigital(5),
            audio31(6),
            audio7(7),
            video(8),
            packetSwitched(9),
            fax(10)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The information type for this call.
             other                          E.g. for non-isdn media.
             speech                         Speech.
             unrestrictedDigital            Unrestricted digital information
                                            with 64k rate adaption.
             unrestrictedDigital56          Unrestricted digital information
                                            with 56k rate adaption.
             restrictedDigital              Restricted digital information.
             audio31                        3.1 kHz audio.
             audio7                         7 kHz audio.
             video                          Video.
             packetSwitched                 Packetswitch.
             fax                            Fax."
        ::= { h3cCallHistoryEntry 10 }

h3cCallHistoryTransmitPackets OBJECT-TYPE
        SYNTAX      AbsoluteCounter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of packets which were transmitted while this
             call was active."
        ::= { h3cCallHistoryEntry 11 }

h3cCallHistoryTransmitBytes OBJECT-TYPE
        SYNTAX      AbsoluteCounter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of bytes which were transmitted for this call."
        ::= { h3cCallHistoryEntry 12 }

h3cCallHistoryReceivePackets OBJECT-TYPE
        SYNTAX      AbsoluteCounter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of packets which were received for this call."
        ::= { h3cCallHistoryEntry 13 }

h3cCallHistoryReceiveBytes OBJECT-TYPE
        SYNTAX      AbsoluteCounter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of bytes which were received for this call."
        ::= { h3cCallHistoryEntry 14 }

-- ===========================================================================
--                        h3cVoiceCallHistoryTable
-- ===========================================================================

h3cVoiceCallHistoryTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF H3cVoiceCallHistoryEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table is the voice extension to the call history table
            of DIAL-CONTROL-MIB.  It contains voice encapsulation call
            leg information that is derived from the statistics of lower
            layer telephony interface."
        ::= { h3cVoiceCallHistoryObjects 2 }

h3cVoiceCallHistoryEntry OBJECT-TYPE
        SYNTAX      H3cVoiceCallHistoryEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The information regarding a extended voice call history information."
        INDEX { h3cCallHistoryIndex }
        ::= { h3cVoiceCallHistoryTable 1 }

H3cVoiceCallHistoryEntry ::= SEQUENCE {
        h3cVoCallHistoryConnectionId    H3cGUid,
        h3cVoCallHistoryTxDuration      Gauge32,
        h3cVoCallHistoryVoiceTxDuration Gauge32,
        h3cVoCallHistoryFaxTxDuration   Gauge32,
        h3cVoCallHistoryCoderType       H3cCodecType,
        h3cVoCallHistoryImgPageCount    Gauge32
    }

h3cVoCallHistoryConnectionId OBJECT-TYPE
        SYNTAX      H3cGUid
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The global call identifier of circuit switched network for
            the gateway call."
        ::= { h3cVoiceCallHistoryEntry 1 }

h3cVoCallHistoryTxDuration OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Duration of transmit path open from this peer to the
            voice gateway for the call.  The units is milliseconds."
        ::= { h3cVoiceCallHistoryEntry 2 }

h3cVoCallHistoryVoiceTxDuration OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Duration of voice transmitted from this peer to voice
            gateway for this call.  The voice utilization rate can be
            obtained by dividing this by h3cVoCallHistoryTxDuration object.
            The units is milliseconds."
        ::= { h3cVoiceCallHistoryEntry 3 }

h3cVoCallHistoryFaxTxDuration OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Duration of fax transmitted from this peer to voice gateway
            for this call.  The fax utilization rate can be obtained by
            dividing this by h3cVoCallHistoryTxDuration object.  The units
            is milliseconds."
        ::= { h3cVoiceCallHistoryEntry 4 }

h3cVoCallHistoryCoderType OBJECT-TYPE
        SYNTAX      H3cCodecType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The negotiated coder type.  It specifies the encode type to
            the PSTN leg of a call."
        ::= { h3cVoiceCallHistoryEntry 5 }

h3cVoCallHistoryImgPageCount OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of fax related image pages are received or
            transmitted via the peer for the call.  The units is page."
        ::= { h3cVoiceCallHistoryEntry 6 }

-- ===========================================================================
--                        h3cVoiceVoIPCallHistoryTable
-- ===========================================================================
h3cVoiceVoIPCallHistoryTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF H3cVoiceVoIPCallHistoryEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table is the VoIP extension to the call active table of
            DIAL-CONTROL-MIB.  It contains VoIP call leg information about
            specific VoIP call destination."
        ::= { h3cVoiceCallHistoryObjects 3 }

h3cVoiceVoIPCallHistoryEntry OBJECT-TYPE
        SYNTAX      H3cVoiceVoIPCallHistoryEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The information regarding a extended VoIP call history
            information."
        INDEX {h3cCallHistoryIndex }
        ::= { h3cVoiceVoIPCallHistoryTable 1 }

H3cVoiceVoIPCallHistoryEntry ::= SEQUENCE {
        h3cVoVoIPCallHistoryConnectionId    H3cGUid,
        h3cVoVoIPCallHistoryRemSigIPType    InetAddressType,
        h3cVoVoIPCallHistoryRemSigIPAddr    InetAddress,
        h3cVoVoIPCallHistoryRemSigPort      Integer32,
        h3cVoVoIPCallHistoryRemMedIPType    InetAddressType,
        h3cVoVoIPCallHistoryRemMedIPAddr    InetAddress,
        h3cVoVoIPCallHistoryRemMedPort      Integer32,
        h3cVoVoIPCallHistorySessProtocol    INTEGER,
        h3cVoVoIPCallHistoryCoderType       H3cCodecType
    }

h3cVoVoIPCallHistoryConnectionId OBJECT-TYPE
        SYNTAX      H3cGUid
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The global call identifier of packet-switched network for the
            gateway call."
        ::= { h3cVoiceVoIPCallHistoryEntry 1 }

h3cVoVoIPCallHistoryRemSigIPType OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The type of remote system signalling IP address for the VoIP call."
        ::= { h3cVoiceVoIPCallHistoryEntry 2 }

h3cVoVoIPCallHistoryRemSigIPAddr OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Remote system signalling IP address for the VoIP call."
        ::= { h3cVoiceVoIPCallHistoryEntry 3 }

h3cVoVoIPCallHistoryRemSigPort OBJECT-TYPE
        SYNTAX      Integer32(0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Remote system UDP listener signalling port to which to
            transmit voice packets."
        ::= { h3cVoiceVoIPCallHistoryEntry 4 }

h3cVoVoIPCallHistoryRemMedIPType OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The type of remote system media IP address for the VoIP call."
        ::= { h3cVoiceVoIPCallHistoryEntry 5 }

h3cVoVoIPCallHistoryRemMedIPAddr OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Remote system media IP address for the VoIP call."
        ::= { h3cVoiceVoIPCallHistoryEntry 6 }

h3cVoVoIPCallHistoryRemMedPort OBJECT-TYPE
        SYNTAX      Integer32(0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Remote system UDP listener media port to which to transmit voice
            packets."
        ::= { h3cVoiceVoIPCallHistoryEntry 7 }

h3cVoVoIPCallHistorySessProtocol OBJECT-TYPE
        SYNTAX INTEGER {
            unknown(1),
            h323(2),
            sip(3)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The object specifies the session protocol to be used for internet
            call between local and remote router via IP backbone.
            unknown        The protocol is unknown.
            h323           The protocol is H323.
            sip            The protocol is session initiation."
        ::= { h3cVoiceVoIPCallHistoryEntry 8 }

h3cVoVoIPCallHistoryCoderType OBJECT-TYPE
        SYNTAX      H3cCodecType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The negotiated coder type.  It specifies the encode type to the
            VoIP leg of a call."
        ::= { h3cVoiceVoIPCallHistoryEntry 9 }

END

