-- ****************************************************************************
-- ****************************************************************************
--
--  File: MX-VOICEIF-MIB.my
--
--  Package: MediatrixMibs
--
-- ****************************************************************************
-- ****************************************************************************
--
--      Copyright(c) 2001-2005 Mediatrix Telecom, Inc.
--      Copyright(c) 2007 Media5 Corporation. ("Media5")
--
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Media5.
--
--   Media5 reserves all rights to this document as well as to the Intellectual
--   Property of the document and the technology and know-how that it includes
--   and represents.
--
--   This publication cannot be reproduced, neither in whole nor in part, in
--   any form whatsoever without written prior approval by Media5.
--
--   Media5 reserves the right to revise this publication and make changes at
--   any time and without the obligation to notify any person and/or entity of
--   such revisions and/or changes.
--
-- ****************************************************************************
-- ****************************************************************************

MX-VOICEIF-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Unsigned32
    FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
    FROM SNMPv2-CONF
        ifIndex
    FROM RFC1213-MIB
        MxFloatingPoint,
        MxEnableState
    FROM MX-TC
        mediatrixConfig
    FROM MX-SMI;

voiceIfMIB MODULE-IDENTITY
    LAST-UPDATED "200908310000Z"
    ORGANIZATION "Mediatrix Telecom"
    CONTACT-INFO "Mediatrix Telecom
                  4229, Garlock Street
                  Sherbrooke (Quebec)
                  Canada
                  Phone: (819) 829-8749
                  "
    DESCRIPTION  "This MIB provides information to configure voice interface
                  (such as analog line, etc.) on a per interface basis."
    -- ************************************************************************
    -- Revision history
    -- ************************************************************************
    REVISION    "200908310000Z"
    DESCRIPTION "Added voiceIfDtmfDetectionRiseTimeCriteria."
    REVISION    "200904060000Z"
    DESCRIPTION "Added voiceIfDtmfDetectionMinDuration."
    REVISION    "200904010000Z"
    DESCRIPTION "Added voiceIfDtmfDetectionTable."
    REVISION    "200902110000Z"
    DESCRIPTION "Added voiceIfSignalLimiterLevel variable."
    REVISION    "200811070000Z"
    DESCRIPTION "Update the voiceIfCodecG723Enable description"
    REVISION    "200804080000Z"
    DESCRIPTION "Added variable voiceIfAllowDtmfOobRecovery"
    REVISION    "200710100000Z"
    DESCRIPTION "Specify to refer to documentation for
                 voiceIfMaxJitterBufferLength variable"
    REVISION    "200707040000Z"
    DESCRIPTION "Reactivated variable voiceIfEchoCancellationEnable."
    REVISION    "200603060000Z"
    DESCRIPTION "Updated the description of all ptime related variables."
    REVISION    "200507180000Z"
    DESCRIPTION "Added voiceIfDtmfEnforceDefaultEvents to voiceIfDtmfTransportTable."
    REVISION    "200503170000Z"
    DESCRIPTION "Added voiceIfCodecG726Enable, voiceIfCodecG726MinPTime,
                 voiceIfCodecG726MaxPTime.
                 Modified voiceIfG711ComfortNoiseGenerationEnable and
                 voiceIfG711VoiceActivityDetectionEnable to include G.726."
    REVISION    "200405250000Z"
    DESCRIPTION "Added valid range in description of voiceIfUserInputGainOffset
                 and voiceIfUserOutputGainOffset"
    REVISION    "200404130000Z"
    DESCRIPTION "Added voiceIfDtmfPayloadType"
    REVISION    "200311100000Z"
    DESCRIPTION "Deprecated voiceIfNlpThresholdLevel."
    REVISION    "200308120000Z"
    DESCRIPTION "Updated voiceIfG723VoiceActivityDetectionEnable description
                 to be hardware specific."
    REVISION    "200308060000Z"
    DESCRIPTION "added voiceIfG723VoiceActivityDetectionEnable."
    REVISION    "200307240000Z"
    DESCRIPTION "added voiceIfG729VoiceActivityDetectionEnable."
    REVISION    "200307210000Z"
    DESCRIPTION "Added voiceIfNlpThresholdLevel variable."
    REVISION    "200306200000Z"
    DESCRIPTION "voiceIfEchoCancellationEnable MAX-ACCESS is now
                 'read-only'."
    REVISION    "200305210000Z"
    DESCRIPTION "voiceIfEchoCancellationEnable STATUS is now 'deprecated'."
    REVISION    "200305010000Z"
    DESCRIPTION "Update the voiceIfCodecG723Enable DESCRIPTION to remove
                 confusion about the choices meaning"
    REVISION    "200304010000Z"
    DESCRIPTION "Removed incorrect information from DESCRIPTION of some MIB
                 variables"
    REVISION    "200302110000Z"
    DESCRIPTION "Changed the default value of voiceIfMaxJitterBufferLength,
                 from 150 to 125 to make sure it is suitable for all
                 hardware platforms."
    REVISION    "200301160000Z"
    DESCRIPTION "Changed the description of voiceIfDtmfTransport."
    REVISION    "200212190000Z"
    DESCRIPTION "The variables voiceIfBaseGainConfigurationSource,
                 voiceIfBaseInputGain, voiceIfBaseOutputGain,
                 voiceIfBaseInputGainOffset, voiceIfBaseOutputGainOffset
                 are deprecated because voiceIfUserInputGainOffset and
                 voiceIfUserOutputGainOffset allow the administrator to
                 customize the gains in a simple way. The use of the
                 deprecated variable was error-prone."
    REVISION    "200209160000Z"
    DESCRIPTION "Improved voiceIfVoiceActivityDetectionEnable and
                 voiceIfG711ComfortNoiseGenerationEnable (variable name,
                 values names and description)."
    REVISION    "200208300000Z"
    DESCRIPTION "Updated range and default values of
                 voiceIfCodecGXXXMinPTime and voiceIfCodecGXXXMaxPTime to
                 reflect values supported by RTP."
    REVISION    "200208120000Z"
    DESCRIPTION "Performed editions in some DESCRIPTIONs to clarify."
    REVISION    "200207310000Z"
    DESCRIPTION "Explained the way voiceIfCodecGXXXMinPTime and
                 voiceIfCodecGXXXMaxPTime are interpreted in SIP."
    REVISION    "200206060000Z"
    DESCRIPTION "Added 120 as option for voiceIfCodecG723MinPTime and
                 voiceIfCodecG723MaxPTime.
                 Modified the allowed value range for
                 voiceIfTargetJitterBufferLength and
                 voiceIfMaxJitterBufferLength."
    REVISION    "200204260000Z"
    DESCRIPTION "Added signalingProtocolDependent choice in voiceIfDtmfTransport."
    REVISION    "200201110000Z"
    DESCRIPTION "Added voiceIfBaseGainConfigurationSource variable.
                 Changed DEFVAL of the voiceIfUserInputGainOffset,
                 voiceIfUserOutputGainOffset, voiceIfBaseInputGain and
                 voiceIfBaseOutputGain."
    REVISION    "200108220000Z"
    DESCRIPTION "Creation"
    ::= { mediatrixConfig 30 }

voiceIfMIBObjects  OBJECT IDENTIFIER ::= { voiceIfMIB 1 }
voiceIfConformance OBJECT IDENTIFIER ::= { voiceIfMIB 2 }

    voiceIfAllowDtmfOobRecovery OBJECT-TYPE
        SYNTAX      MxEnableState
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Allows faster recovery when playing back an out-of-band DTMF
                     whose end bit has not been received.

                     disable:
                        The DTMF stops playing after 700 RTP packets are
                        received (~7-60 seconds).

                     enable:
                        The DTMF stops playing after 10 RTP packets are received
                        (~1 second).

                     This variable's semantics are different depending on
                     protocol and/or hardware platforms.
                     Please refer to the documentation for more details."
        DEFVAL { disable }
        ::= { voiceIfMIBObjects 5 }

    -- ************************************************************************
    -- Voice interface configuration Table
    -- ************************************************************************
    voiceIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VoiceIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table of configuration for each voice over IP interface."
        ::= { voiceIfMIBObjects 10 }

        voiceIfEntry OBJECT-TYPE
            SYNTAX      VoiceIfEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "A row in the voiceIfTable used to configure each port."
            INDEX       {
                         ifIndex
                        }
            ::= { voiceIfTable 1 }

            VoiceIfEntry ::= SEQUENCE
            {
                voiceIfAdaptativeJitterBufferEnable     INTEGER,
                voiceIfTargetJitterBufferLength         Unsigned32,
                voiceIfMaxJitterBufferLength            Unsigned32,
                voiceIfG711VoiceActivityDetectionEnable INTEGER,
                voiceIfEchoCancellationEnable           MxEnableState,
                voiceIfG711ComfortNoiseGenerationEnable INTEGER,
                voiceIfBaseGainConfigurationSource      INTEGER,
                voiceIfUserInputGainOffset              MxFloatingPoint,
                voiceIfUserOutputGainOffset             MxFloatingPoint,
                voiceIfBaseInputGain                    Unsigned32,
                voiceIfBaseOutputGain                   Unsigned32,
                voiceIfBaseInputGainOffset              MxFloatingPoint,
                voiceIfBaseOutputGainOffset             MxFloatingPoint,
                voiceIfNlpThresholdLevel                Unsigned32,
                voiceIfG729VoiceActivityDetectionEnable MxEnableState,
                voiceIfG723VoiceActivityDetectionEnable MxEnableState,
                voiceIfSignalLimiterLevel               INTEGER
            }


            voiceIfAdaptativeJitterBufferEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Jitter is an abrupt and unwanted variation of one or more signal
                             characteristics, such as the interval between successive pulses,
                             or the frequency or phase of successive cycles. An adaptive jitter
                             buffer usually consists of an elastic buffer in which the signal is
                             temporarily stored and then retransmitted at a rate based on the
                             average rate of the incoming signal."
                DEFVAL      { enable }
                ::= { voiceIfEntry 5 }

            voiceIfTargetJitterBufferLength OBJECT-TYPE
                SYNTAX      Unsigned32 (0..300)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The adaptive jitter buffer attempts to hold packets to the target
                             holding time. This is the minimum delay the jitter buffer adds to
                             the system. The target jitter buffer length is in ms. The target
                             jitter buffer MUST be equal to or smaller than the maximum jitter buffer."
                DEFVAL      { 30 }
                ::= { voiceIfEntry 6 }

            voiceIfMaxJitterBufferLength OBJECT-TYPE
                SYNTAX      Unsigned32 (0..300)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This is the maximum jitter the adaptive jitter buffer can handle.
                             The jitter buffer length is in ms. The maximum jitter buffer MUST
                             be equal to or greater than the target jitter buffer. The maximum jitter
                             buffer length allowed on some Mediatrix products is smaller than
                             300 ms.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 125 }
                ::= { voiceIfEntry 7 }

            voiceIfG711VoiceActivityDetectionEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     transparent(1),
                                     conservative(2)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If Voice Activity Detection (VAD) is enabled, then
                             speech frames are only sent during talkspurts (periods
                             of audio activity).

                             During silence periods, no speech frames are sent,
                             but Comfort Noise (CN) packets containing
                             information about background noise may be sent
                             (c.f. RFC3389). This variable
                             specifies the sensitivity of the VAD algorithm to
                             silence periods.

                             Note that this setting will also be applied in case
                             G.726 is enabled.

                             disable      : VAD disabled
                             transparent  : VAD enabled - low sensitivity to
                                            silence period)
                             conservative : VAD enabled - normal sensitivity to
                                            silence period"
                DEFVAL      { conservative }
                ::= { voiceIfEntry 10 }

            voiceIfEchoCancellationEnable OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "An echo is a signal that has been reflected or otherwise returned
                             with sufficient magnitude and delay to be perceived. The echo
                             cancellation is usually an active process in which echo signals are
                             measured and cancelled or eliminated by combining an inverted signal
                             with the echo signal.

                             disable:
                                The DSP does not use echo cancellation on the related port.

                             enable:
                                The default state.  The DSP proceeds to cancel signals
                                that are recognized as echo when appropriate."
                DEFVAL      { enable }
                ::= { voiceIfEntry 11 }

            voiceIfG711ComfortNoiseGenerationEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                      disable(0),
                                      whiteNoise(1),
                                      customNoise(2)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "During silence periods, Comfort Noise (CN) packets
                             containing information about background noise may
                             be received (c.f. RFC3389).

                             If Comfort Noise Generation (CNG) is enabled, then
                             those packets are used to generate local comfort
                             noise. This variable specifies the type of this
                             comfort noise. Changing this variable requires a
                             reboot of the unit in order to take effect.

                             Note that this setting will also be applied in case
                             G.726 is enabled.

                             Note that G.723 and G.729 CNG is not configurable
                             because it is built-in in the codec, while it is
                             generic in G.711 and G.726.

                             disable     : CNG disabled
                             whiteNoise  : CNG enabled - white noise
                             customNoise : CNG enabled - custom noise (better)"
                DEFVAL      { customNoise }
                ::= { voiceIfEntry 12 }

            voiceIfBaseGainConfigurationSource OBJECT-TYPE
                SYNTAX      INTEGER {
                                      useCustomConfiguration(0),
                                      useDefaultCountryConfiguration(1)
                                    }
                MAX-ACCESS read-write
                STATUS     deprecated
                DESCRIPTION "Specify how the base gain is configured.
                             When using the custom configuration, you must set the following variables:
                                voiceIfBaseInputGain,
                                voiceIfBaseOutputGain,
                                voiceIfBaseInputGainOffset,
                                voiceIfBaseOutputGainOffset.
                             Warning: Custom configuration should be used with care.

                             This object is deprecated. This means some agents may implement it and some
                             agents may not implement it."
                DEFVAL      { useDefaultCountryConfiguration }
                ::= { voiceIfEntry 17 }

            voiceIfUserInputGainOffset OBJECT-TYPE
                SYNTAX      MxFloatingPoint
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The user input gain offset is added to the base input gain to
                             compute the total input gain. The user input gain is in dB.
                             Valid input gain range is between -30 dB and 20 dB."
                DEFVAL      { "0" }
                ::= { voiceIfEntry 20 }

            voiceIfUserOutputGainOffset OBJECT-TYPE
                SYNTAX      MxFloatingPoint
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The user output gain offset is added to the base output gain to
                             compute the total output gain. The user ouput gain is in dB.
                             Valid output gain range is between -30 dB and 20 dB."
                DEFVAL      { "0" }
                ::= { voiceIfEntry 21 }

            voiceIfBaseInputGain OBJECT-TYPE
                SYNTAX      Unsigned32 (0..65535)
                MAX-ACCESS  read-write
                STATUS      deprecated
                DESCRIPTION "The base input gain. This is an absolute value which is used
                             in conjunction with the user input gain and the base input gain
                             offset to compute the total input gain.

                             This object is deprecated. This means some agents may implement it and some
                             agents may not implement it."
                DEFVAL      { 5785 }
                ::= { voiceIfEntry 22 }

            voiceIfBaseOutputGain OBJECT-TYPE
                SYNTAX      Unsigned32 (0..65535)
                MAX-ACCESS  read-write
                STATUS      deprecated
                DESCRIPTION "The base output gain. This is an absolute value which is used
                             in conjunction with the user output gain and the base output gain
                             offset to compute the total output gain.

                             This object is deprecated. This means some agents may implement it and some
                             agents may not implement it."
                DEFVAL      { 2052 }
                ::= { voiceIfEntry 23 }

            voiceIfBaseInputGainOffset OBJECT-TYPE
                SYNTAX      MxFloatingPoint
                MAX-ACCESS  read-write
                STATUS      deprecated
                DESCRIPTION "The base input gain offset. This value is used in the calibration
                             to adjust the total input gain to an offset in dB from the base input
                             gain. This value is in dB.

                             This object is deprecated. This means some agents may implement it and some
                             agents may not implement it."
                DEFVAL      { "0" }
                ::= { voiceIfEntry 24 }

            voiceIfBaseOutputGainOffset OBJECT-TYPE
                SYNTAX      MxFloatingPoint
                MAX-ACCESS  read-write
                STATUS      deprecated
                DESCRIPTION "The base output gain offset. This value is used in the calibration
                             to adjust the total output gain to an offset in dB from the base output
                             gain. This value is in dB.

                             This object is deprecated. This means some agents may implement it and some
                             agents may not implement it."
                DEFVAL      { "0" }
                ::= { voiceIfEntry 25 }

            voiceIfNlpThresholdLevel OBJECT-TYPE
                SYNTAX      Unsigned32 (0..4)
                MAX-ACCESS  read-write
                STATUS      deprecated
                DESCRIPTION "The echo cancellation NLP threshold level.

                             0 : Strongest echo cancellation, weakest double-talk detection.
                             4 : Weakest echo cancellation, strongest double-talk detection.

                             Increase the value if cuts in the voice stream are present, decrease it if too
                             much echo can be heard.

                             This variable's semantics are different depending on protocol and/or hardware
                             platforms. Please refer to the documentation for more details.

                             This object is deprecated. Agents may or may not implement it."
                DEFVAL      { 0 }
                ::= { voiceIfEntry 35 }

           voiceIfG729VoiceActivityDetectionEnable OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If Voice Activity Detection (VAD) is enabled, then
                             speech frames are only sent during talkspurts (periods
                             of audio activity).

                             During silence periods, no speech frames are sent,
                             but Comfort Noise (CN) packets containing
                             information about background noise may be sent
                             in accordance with annex B of G.729.

                             disable      : G.729 uses annex A only
                             enable       : G.729 annex A is used with annex B"
                DEFVAL      { enable }
                ::= { voiceIfEntry 50 }

           voiceIfG723VoiceActivityDetectionEnable OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If Voice Activity Detection (VAD) is enabled, then
                             speech frames are only sent during talkspurts (periods
                             of audio activity).

                             During silence periods, no speech frames are sent,
                             but Comfort Noise (CN) packets containing
                             information about background noise may be sent
                             in accordance with annex A of G.723.1.

                             disable      : G.723.1 is used without annex A
                             enable       : G.723.1 is used with annex A

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { enable }
                ::= { voiceIfEntry 80 }

            voiceIfSignalLimiterLevel OBJECT-TYPE
                SYNTAX      INTEGER (0..5)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When enabled, the Signal Limiter attenuates or
                             removes peaks in voice signal.

                             This may reduce the presence of echo but may impair DTMF detection
                             because of signal distortion.

                             0: Disable Signal Limiter
                             1: Most aggressive
                             ...
                             5: Least aggressive

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 0 }
                ::= { voiceIfEntry 90 }

    -- ************************************************************************
    -- Voice interface codec configuration table parameters
    -- ************************************************************************
    voiceIfCodecTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VoiceIfCodecEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the parameters that define the
                     codecs used.

                     PCMA and PCMU are specified in ITU-T Recommendation G.711. Audio
                     data is encoded as eight bits per sample, after logarithmic
                     scaling. PCMU denotes mu-law scaling, PCMA A-law scaling.

                     G723.1 is specified in ITU Recommendation G.723.1, Dual-rate speech
                     coder for multimedia communications transmitting at 5.3 and 6.3
                     kbit/s. This Recommendation specifies a coded representation that can
                     be used for compressing the speech signal component of multi-media
                     services at a very low bit rate. Audio is encoded in 30 ms frames.
                     A G.723.1 frame can be one of three sizes: 24 octets (6.3 kb/s frame),
                     20 octets (5.3 kb/s frame), or 4 octets. These 4-octet frames are
                     called SID frames (Silence Insertion Descriptor) and are used to
                     specify comfort noise parameters.

                     G.726 is specified in ITU-T Recommendation G.726: 40, 32, 24,
                     16 kbit/s adaptive differential pulse code modulation (ADPCM).
                     It describes the algorithm recommended for conversion of a single
                     64 kbit/s A-law or U-law PCM channel encoded at 8000 samples/sec to
                     and from a 40, 32, 24, or 16 kbit/s channel. The conversion is
                     applied to the PCM stream using an Adaptive Differential Pulse Code
                     Modulation (ADPCM) transcoding technique.

                     G729 is specified in ITU-T Recommendation G.729, Coding of speech at
                     8 kbit/s using conjugate structure-algebraic code excited linear
                     prediction (CS-ACELP). For all data rates, the sampling frequency
                     (and RTP timestamp clock rate) is 8000 Hz. A voice activity detector
                     (VAD) and comfort noise generator (CNG) algorithm in Annex B of G.729
                     is RECOMMENDED for digital simultaneous voice and data applications
                     and can be used in conjunction with G.729 or G.729 Annex A. A G.729
                     or G.729 Annex A frame contains 10 octets, while the G.729 Annex B
                     comfort noise frame occupies 2 octets."
        ::= { voiceIfMIBObjects 20 }

        voiceIfCodecEntry OBJECT-TYPE
            SYNTAX      VoiceIfCodecEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "Codec table parameter entries."
            INDEX       {
                         ifIndex
                        }
            ::= { voiceIfCodecTable 1 }

            VoiceIfCodecEntry ::= SEQUENCE
                {
                    voiceIfCodecPreferred       INTEGER,
                    voiceIfCodecPcmuEnable      INTEGER,
                    voiceIfCodecPcmuMinPTime    Unsigned32,
                    voiceIfCodecPcmuMaxPTime    Unsigned32,
                    voiceIfCodecPcmaEnable      INTEGER,
                    voiceIfCodecPcmaMinPTime    Unsigned32,
                    voiceIfCodecPcmaMaxPTime    Unsigned32,
                    voiceIfCodecG723Enable      INTEGER,
                    voiceIfCodecG723MinPTime    Unsigned32,
                    voiceIfCodecG723MaxPTime    Unsigned32,
                    voiceIfCodecG729Enable      INTEGER,
                    voiceIfCodecG729MinPTime    Unsigned32,
                    voiceIfCodecG729MaxPTime            Unsigned32,
                    voiceIfCodecG72616kbpsEnable        INTEGER,
                    voiceIfCodecG72616kbpsPayloadType   Unsigned32,
                    voiceIfCodecG72616kbpsMinPTime      Unsigned32,
                    voiceIfCodecG72616kbpsMaxPTime      Unsigned32,
                    voiceIfCodecG72624kbpsEnable        INTEGER,
                    voiceIfCodecG72624kbpsPayloadType   Unsigned32,
                    voiceIfCodecG72624kbpsMinPTime      Unsigned32,
                    voiceIfCodecG72624kbpsMaxPTime      Unsigned32,
                    voiceIfCodecG72632kbpsEnable        INTEGER,
                    voiceIfCodecG72632kbpsPayloadType   Unsigned32,
                    voiceIfCodecG72632kbpsMinPTime      Unsigned32,
                    voiceIfCodecG72632kbpsMaxPTime      Unsigned32,
                    voiceIfCodecG72640kbpsEnable        INTEGER,
                    voiceIfCodecG72640kbpsPayloadType   Unsigned32,
                    voiceIfCodecG72640kbpsMinPTime      Unsigned32,
                    voiceIfCodecG72640kbpsMaxPTime      Unsigned32
                }

            voiceIfCodecPreferred OBJECT-TYPE
                SYNTAX      INTEGER {
                                     pcmu(1),
                                     pcma(2),
                                     g723(3),
                                     g729(4),
                                     g726-16kbps(5),
                                     g726-24kbps(6),
                                     g726-32kbps(7),
                                     g726-40kbps(8)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates the preferred type of codec for voice
                             transmission. If the selected codec is disabled,
                             this preferred type of codec will be ignored.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { pcmu }
                ::= { voiceIfCodecEntry 1 }

            voiceIfCodecPcmuEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec will be listed
                             as supported for this specific endpoint. Otherwise,
                             it will be ignored."
                DEFVAL      { enable }
                ::= { voiceIfCodecEntry 5 }

            voiceIfCodecPcmuMinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the PCMU codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecPcmuMaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 6 }

            voiceIfCodecPcmuMaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the PCMU codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecPcmuMinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 7 }

            voiceIfCodecPcmaEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec will be listed
                             as supported for this specific endpoint. Otherwise,
                             it will be ignored."
                DEFVAL      { enable }
                ::= { voiceIfCodecEntry 11 }

            voiceIfCodecPcmaMinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the PCMA codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecPcmaMaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 12 }

            voiceIfCodecPcmaMaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the PCMA codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecPcmaMinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 13 }

            voiceIfCodecG723Enable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     g723-53kbs(1),
                                     g723-63kbs(2)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If not disabled, this codec is listed
                             as supported for this specific endpoint. Otherwise,
                             it is ignored.

                             - disable: Disable G.723
                             - g723-53kbs: Use G.723 at 5.3 kbps
                             - g723-63kbs: Use G.723 at 6.3 kbps

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { g723-63kbs }
                ::= { voiceIfCodecEntry 17 }

            voiceIfCodecG723MinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (30|60|90|120)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the G.723 codec.

                             Expressed in milliseconds.  Authorized values start at 30 and
                             come in discrete steps of 30 ms up to the one specified
                             by variable voiceIfCodecG723MaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 30 }
                ::= { voiceIfCodecEntry 18 }

            voiceIfCodecG723MaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (30|60|90|120)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the G.723 codec.

                             Expressed in milliseconds.  Authorized values go up to 120,
                             in discrete steps of 30 ms, and start at the one specified
                             by variable voiceIfCodecG723MinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 120 }
                ::= { voiceIfCodecEntry 19 }

            voiceIfCodecG729Enable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec will be listed
                             as supported for this specific endpoint. Otherwise,
                             it will be ignored."
                DEFVAL      { enable }
                ::= { voiceIfCodecEntry 23 }

            voiceIfCodecG729MinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the G.729 codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecG729MaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 24 }

            voiceIfCodecG729MaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the G.729 codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecG729MinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 25 }

            voiceIfCodecG72616kbpsEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec is listed
                             as supported for this specific endpoint. Otherwise,
                             it is ignored.

                             Note that if G.726 at 16 kbps is enabled, voice activity
                             detection and comfort noise generation can be controlled
                             via the voiceIfG711VoiceActivityDetectionEnable and
                             voiceIfG711ComfortNoiseGenerationEnable variables.

                             - disable: Disable G.726 at 16 kbps
                             - enable: Enable G.726 at 16 kbps

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { disable }
                ::= { voiceIfCodecEntry 50 }

            voiceIfCodecG72616kbpsPayloadType OBJECT-TYPE
                SYNTAX      Unsigned32 (96..127)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When enabling G.726 at 16 kbps for voice transmission, this
                             variable determines the actual RTP dynamic payload type used
                             in an initial offer.

                             The payload types available are as per RFC 3551.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 97 }
                ::= { voiceIfCodecEntry 55 }

            voiceIfCodecG72616kbpsMinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the G.726-16kbps codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecG72616kbpsMaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 60 }

            voiceIfCodecG72616kbpsMaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the G.726-16kbps codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecG72616kbpsMinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 65 }

            voiceIfCodecG72624kbpsEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec is listed
                             as supported for this specific endpoint. Otherwise,
                             it is ignored.

                             Note that if G.726 at 24 kbps is enabled, voice activity
                             detection and comfort noise generation can be controlled
                             via the voiceIfG711VoiceActivityDetectionEnable and
                             voiceIfG711ComfortNoiseGenerationEnable variables.

                             - disable: Disable G.726 at 24 kbps
                             - enable: Enable G.726 at 24 kbps

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { disable }
                ::= { voiceIfCodecEntry 70 }

            voiceIfCodecG72624kbpsPayloadType OBJECT-TYPE
                SYNTAX      Unsigned32 (96..127)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When enabling G.726 at 24 kbps for voice transmission, this
                             variable determines the actual RTP dynamic payload type used
                             in an initial offer.

                             The payload types available are as per RFC 3551.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 98 }
                ::= { voiceIfCodecEntry 75 }

            voiceIfCodecG72624kbpsMinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the G.726-24kbps codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecG72624kbpsMaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 80 }

            voiceIfCodecG72624kbpsMaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the G.726-24kbps codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecG72624kbpsMinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 85 }

            voiceIfCodecG72632kbpsEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec is listed
                             as supported for this specific endpoint. Otherwise,
                             it is ignored.

                             Note that if G.726 at 32 kbps is enabled, voice activity
                             detection and comfort noise generation can be controlled
                             via the voiceIfG711VoiceActivityDetectionEnable and
                             voiceIfG711ComfortNoiseGenerationEnable variables.

                             - disable: Disable G.726 at 32 kbps
                             - enable: Enable G.726 at 32 kbps

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { disable }
                ::= { voiceIfCodecEntry 90 }

            voiceIfCodecG72632kbpsPayloadType OBJECT-TYPE
                SYNTAX      Unsigned32 (96..127)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When enabling G.726 at 32 kbps for voice transmission, this
                             variable determines the actual RTP dynamic payload type used
                             in an initial offer.

                             The payload types available are as per RFC 3551.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 99 }
                ::= { voiceIfCodecEntry 100 }

            voiceIfCodecG72632kbpsMinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the G.726-32kbps codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecG72632kbpsMaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 105 }

            voiceIfCodecG72632kbpsMaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the G.726-32kbps codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecG72632kbpsMinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 110 }

            voiceIfCodecG72640kbpsEnable OBJECT-TYPE
                SYNTAX      INTEGER {
                                     disable(0),
                                     enable(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates if the codec can be selected for voice
                             transmission. If enabled, this codec is listed
                             as supported for this specific endpoint. Otherwise,
                             it is ignored.

                             Note that if G.726 at 40 kbps is enabled, voice activity
                             detection and comfort noise generation can be controlled
                             via the voiceIfG711VoiceActivityDetectionEnable and
                             voiceIfG711ComfortNoiseGenerationEnable variables.

                             - disable: Disable G.726 at 40 kbps
                             - enable: Enable G.726 at 40 kbps

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { disable }
                ::= { voiceIfCodecEntry 115 }

            voiceIfCodecG72640kbpsPayloadType OBJECT-TYPE
                SYNTAX      Unsigned32 (96..127)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When enabling G.726 at 40 kbps for voice transmission, this
                             variable determines the actual RTP dynamic payload type used
                             in an initial offer.

                             The payload types available are as per RFC 3551.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 120 }

            voiceIfCodecG72640kbpsMinPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Shortest packetization period allowed for the G.726-40kbps codec.

                             Expressed in milliseconds.  Authorized values start at 10 and
                             come in discrete steps of 10 ms up to the one specified
                             by variable voiceIfCodecG72640kbpsMaxPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 10 }
                ::= { voiceIfCodecEntry 125 }

            voiceIfCodecG72640kbpsMaxPTime OBJECT-TYPE
                SYNTAX      Unsigned32 (10|20|30|40|50|60|70|80|90|100)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Longest packetization period allowed for the G.726-40kbps codec.

                             Expressed in milliseconds.  Authorized values go up to 100,
                             in discrete steps of 10 ms, and start at the one specified
                             by variable voiceIfCodecG72640kbpsMinPTime.

                             This variable's semantics are different depending on
                             protocol and/or hardware platforms.
                             Please refer to the documentation for more details."
                DEFVAL      { 100 }
                ::= { voiceIfCodecEntry 130 }

    -- ************************************************************************
    -- Voice DTMF transport configuration table parameters
    -- ************************************************************************
    voiceIfDtmfTransportTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VoiceIfDtmfTransportEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the parameters that define the
                     DTMF transport."
        ::= { voiceIfMIBObjects 30 }

        voiceIfDtmfTransportEntry OBJECT-TYPE
            SYNTAX      VoiceIfDtmfTransportEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "DTMF transport table parameter entries."
            INDEX       {
                         ifIndex
                        }
            ::= { voiceIfDtmfTransportTable 1 }

            VoiceIfDtmfTransportEntry ::= SEQUENCE
                {
                    voiceIfDtmfTransport            INTEGER,
                    voiceIfDtmfPayloadType          Unsigned32,
                    voiceIfDtmfEnforceDefaultEvents MxEnableState
                }

            voiceIfDtmfTransport OBJECT-TYPE
                SYNTAX      INTEGER {
                                     inBand(0),
                                     outOfBandUsingRtp(1),
                                     outOfBandUsingSignalingProtocol(2),
                                     signalingProtocolDependent(3)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Type of DTMF transport. If signalingProtocolDependent is selected, the
                             signaling protocol has the control to select the DTMF transport mode.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { inBand }
                ::= { voiceIfDtmfTransportEntry 1 }

            voiceIfDtmfPayloadType OBJECT-TYPE
                SYNTAX      Unsigned32 (96..127)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When selecting outOfBandUsingRtp(1) as DTMF transport mode
                             (see variable voiceIfDtmfTransport), this variable determines
                             the actual RTP dynamic payload type used for telephone-event
                             in an initial offer.
                             The payload types available are as per RFC 1890.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 96 }
                ::= { voiceIfDtmfTransportEntry 5 }

            voiceIfDtmfEnforceDefaultEvents OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This variable is used when a deliberate deviance to RFC 2833
                             is required.

                             When enabled, conformance is enforced and support for RFC 2833
                             will imply the support of basic telephony-events.  When setting the
                             variable voiceIfDtmfTransport to outOfBandUsingRtp, or the
                             variable telephonyAttributesHookFlashProcessing to outOfBandUsingRtp,
                             the unit will advertise the support for events 0-15; it will assume
                             support for events 0-15 when support for RFC 2833 is received in an
                             announcement.

                             When disabled, support of basic events is not automatic.  The variables
                             voiceIfDtmfTransport and telephonyAttributesHookFlashProcessing then
                             act independently to specify which events will be relayed via RFC 2833.
                             If Hook Flash relay is enabled by itself, support of event 16 alone
                             will be advertised; if both Hook Flash and DTMF relay are activated,
                             events 0-16 are supported.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { enable }
                ::= { voiceIfDtmfTransportEntry 55 }


    -- ************************************************************************
    -- Voice DTMF detection configuration table parameters
    -- ************************************************************************
    voiceIfDtmfDetectionTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VoiceIfDtmfDetectionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds DTMF detection parameters
                     indexed by endpoint number."
        ::= { voiceIfMIBObjects 40 }

        voiceIfDtmfDetectionEntry OBJECT-TYPE
            SYNTAX      VoiceIfDtmfDetectionEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "DTMF detection entry."
            INDEX       {
                         ifIndex
                        }
            ::= { voiceIfDtmfDetectionTable 1 }

            VoiceIfDtmfDetectionEntry ::= SEQUENCE
                {
                    voiceIfDtmfDetectionRiseTimeCriteria    INTEGER,
                    voiceIfDtmfDetectionMaxPowerThreshold   Integer32,
                    voiceIfDtmfDetectionMinPowerThreshold   Integer32,
                    voiceIfDtmfDetectionBreakPowerThreshold Integer32,
                    voiceIfDtmfDetectionPositiveTwist       Unsigned32,
                    voiceIfDtmfDetectionNegativeTwist       Unsigned32,
                    voiceIfDtmfDetectionMinDuration         Unsigned32
                }

            voiceIfDtmfDetectionRiseTimeCriteria OBJECT-TYPE
                SYNTAX      INTEGER {
                                     checkSr(100),
                                     confirmSnr(200),
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Defines how the Rise Time criteria should be configured
                             for DTMF detection.

                             checkSr: Enable the Step Rise criteria and disable the
                             Confirm DTMF SNR criteria.

                             confirmSnr: Enable the Confirm DTMF SNR criteria and
                             disable the Step Rise criteria.

                             The Step Rise criteria compares the current frame energy to the
                             high frequency power of the previous frame. If the current frame energy
                             is high enough, then it passes the test, further validating the DTMF.

                             Disabling the Step Rise criteria may result in deteriorated
                             talk-off performance, but increases the detection of malformed DTMF.

                             The Confirm DTMF SNR criteria is an additional Signal-to-noise
                             ratio test performed before a confirmed DTMF report is sent to finally
                             validate the DTMF.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { confirmSnr }
                ::= { voiceIfDtmfDetectionEntry 10 }

            voiceIfDtmfDetectionMaxPowerThreshold OBJECT-TYPE
                SYNTAX      Integer32 (-20..1)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Maximum absolute power threshold (dBm0) for off-on
                             transition of a DTMF.

                             Raising this value increases the sensitivity of the DTMF detection.
                             Raising this value too high may also cause false detections of DTMFs.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 1 }
                ::= { voiceIfDtmfDetectionEntry 20 }

            voiceIfDtmfDetectionMinPowerThreshold OBJECT-TYPE
                SYNTAX      Integer32 (-45..-10)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Minimum absolute power threshold (dBm0) for off-on
                             transition of a DTMF.

                             Raising this value reduces the sensitivity to DTMF detection.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { -30 }
                ::= { voiceIfDtmfDetectionEntry 30 }

            voiceIfDtmfDetectionBreakPowerThreshold OBJECT-TYPE
                SYNTAX      Integer32 (-45..-12)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Break absolute power threshold (dBm0) for on-off transition
                             of a DTMF.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { -32 }
                ::= { voiceIfDtmfDetectionEntry 40 }

            voiceIfDtmfDetectionPositiveTwist OBJECT-TYPE
                SYNTAX      Unsigned32 (1..10)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When the high-group frequency of a DTMF is more powerful
                             than the low-group frequency, the difference between the
                             high-group frequency absolute power and the low-group
                             frequency absolute power must be smaller than or equal to the
                             value set in this variable. Otherwise, the DTMF is not
                             detected.

                             Raising this value increases the sensitivity of DTMF detection.
                             Raising this value too high may also cause false detections of DTMFs.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 6 }
                ::= { voiceIfDtmfDetectionEntry 50 }

            voiceIfDtmfDetectionNegativeTwist OBJECT-TYPE
                SYNTAX      Unsigned32 (1..10)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "When the low-group frequency of a DTMF is more powerful
                             than the high-group frequency, the difference between the
                             low-group frequency absolute power and the high-group
                             frequency absolute power must be smaller than or equal to the
                             value set in this variable. Otherwise, the DTMF is not
                             detected.

                             Raising this value increases the sensitivity of DTMF detection.
                             Raising this value too high may also cause false detections of DTMFs.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 9 }
                ::= { voiceIfDtmfDetectionEntry 60 }

            voiceIfDtmfDetectionMinDuration OBJECT-TYPE
                SYNTAX      Unsigned32 (30..5000)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Defines the minimum duration a DTMF must last to be detected. A DTMF
                             whose duration is less than the configured value is not detected.
                             A higher value may help prevent false DTMF detection. However,
                             increasing the minimum duration can impact jitter if
                             voiceIfDtmfTransport is configured for out-of-band DTMF.

                             This value is expressed in milliseconds.

                             This variable's semantics are different depending on protocol and/or
                             hardware platforms. Please refer to the documentation
                             for more details."
                DEFVAL      { 30 }
                ::= { voiceIfDtmfDetectionEntry 70 }


    -- ************************************************************************
    -- Conformance information
    -- ************************************************************************
    voiceIfCompliances OBJECT IDENTIFIER ::= { voiceIfConformance 1 }

    voiceIfComplVer1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "List of groups required to support analog ports parameters."
        MODULE -- This Module
            MANDATORY-GROUPS {
                                 voiceIfBasicGroupVer1,
                                 voiceIfCodecGroupVer1,
                                 voiceIfDtmfTransportBasicGroupVer1
                             }
        ::= { voiceIfCompliances 1 }

    -- ************************************************************************
    -- MIB variable grouping
    -- ************************************************************************
    voiceIfGroups OBJECT IDENTIFIER ::= { voiceIfConformance 2 }

    voiceIfCodecGroupVer1 OBJECT-GROUP
        OBJECTS {
                    voiceIfCodecPreferred,
                    voiceIfCodecPcmuEnable,
                    voiceIfCodecPcmuMinPTime,
                    voiceIfCodecPcmuMaxPTime,
                    voiceIfCodecPcmaEnable,
                    voiceIfCodecPcmaMinPTime,
                    voiceIfCodecPcmaMaxPTime,
                    voiceIfCodecG723Enable,
                    voiceIfCodecG723MinPTime,
                    voiceIfCodecG723MaxPTime,
                    voiceIfCodecG729Enable,
                    voiceIfCodecG729MinPTime,
                    voiceIfCodecG729MaxPTime,
                    voiceIfCodecG72616kbpsEnable,
                    voiceIfCodecG72616kbpsPayloadType,
                    voiceIfCodecG72616kbpsMinPTime,
                    voiceIfCodecG72616kbpsMaxPTime,
                    voiceIfCodecG72624kbpsEnable,
                    voiceIfCodecG72624kbpsPayloadType,
                    voiceIfCodecG72624kbpsMinPTime,
                    voiceIfCodecG72624kbpsMaxPTime,
                    voiceIfCodecG72632kbpsEnable,
                    voiceIfCodecG72632kbpsPayloadType,
                    voiceIfCodecG72632kbpsMinPTime,
                    voiceIfCodecG72632kbpsMaxPTime,
                    voiceIfCodecG72640kbpsEnable,
                    voiceIfCodecG72640kbpsPayloadType,
                    voiceIfCodecG72640kbpsMinPTime,
                    voiceIfCodecG72640kbpsMaxPTime
                }
        STATUS current
        DESCRIPTION
            "A collection of objects that defines a list of codecs and their packetization time."
        ::= { voiceIfGroups 1 }

    voiceIfBasicGroupVer1 OBJECT-GROUP
        OBJECTS {
                    voiceIfAdaptativeJitterBufferEnable,
                    voiceIfTargetJitterBufferLength,
                    voiceIfMaxJitterBufferLength,
                    voiceIfG711VoiceActivityDetectionEnable,
                    voiceIfEchoCancellationEnable,
                    voiceIfG711ComfortNoiseGenerationEnable,
                    voiceIfBaseGainConfigurationSource,
                    voiceIfUserInputGainOffset,
                    voiceIfUserOutputGainOffset,
                    voiceIfBaseInputGain,
                    voiceIfBaseOutputGain,
                    voiceIfBaseInputGainOffset,
                    voiceIfBaseOutputGainOffset,
                    voiceIfNlpThresholdLevel,
                    voiceIfG729VoiceActivityDetectionEnable,
                    voiceIfG723VoiceActivityDetectionEnable,
                    voiceIfSignalLimiterLevel
                }
        STATUS current
        DESCRIPTION
            "A collection of objects that defines the programmable parameters for the different
            codecs."
        ::= { voiceIfGroups 2 }

    voiceIfDtmfTransportBasicGroupVer1 OBJECT-GROUP
        OBJECTS {
                    voiceIfDtmfTransport,
                    voiceIfDtmfPayloadType,
                    voiceIfDtmfEnforceDefaultEvents
                }
        STATUS current
        DESCRIPTION
            "A collection of objects that defines the programmable
            parameters for the DTMF transport."
        ::= { voiceIfGroups 3 }



END
