-- ****************************************************************************
-- ****************************************************************************
--
--      Copyright(c) 2001-2005 Mediatrix Telecom, Inc.
--      Copyright(c) 2010 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-DATAIF-MIB
DEFINITIONS ::= BEGIN

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

dataIfMIB MODULE-IDENTITY
    LAST-UPDATED "201002160000Z"
    ORGANIZATION "Mediatrix Telecom, Inc."
    CONTACT-INFO "Mediatrix Telecom, Inc.
                  4229, Garlock Street
                  Sherbrooke (Quebec)
                  Canada
                  Phone: (819) 829-8749
                  "
    DESCRIPTION  "This MIB provides information to configure data interface
                  (such as T.38, Fax, etc.) on a per interface basis."
    -- ************************************************************************
    -- Revision history
    -- ************************************************************************
    REVISION    "201002160000Z"
    DESCRIPTION "Added dataIfAnalogCedDetectionBehavior"
    REVISION    "200909100000Z"
    DESCRIPTION "Added dataIfCedFaxToneEnable"
    REVISION    "200906120000Z"
    DESCRIPTION "Added option noPreferredCodec and more details to the variable
                 dataIfClearChannelCodecPreferred."
    REVISION    "200505100000Z"
    DESCRIPTION "Removed MGCP and SIP specific informations about the variable
                 dataIfCodecMediaTypeImageEnable."
    REVISION    "200504290000Z"
    DESCRIPTION "Removed G.726-16 and G.726-24 from
                 dataIfClearChannelCodecPreferred."
    REVISION    "200504280000Z"
    DESCRIPTION "Added G.726 for dataIfCodecMediaTypeImageEnable."
    REVISION    "200504190000Z"
    DESCRIPTION "Change the maximum range value of dataIfT38NoSignalTimeout."
    REVISION    "200503170000Z"
    DESCRIPTION "Added G.726 for dataIfClearChannelCodecPreferred.  Updated
                 dataIfCodecMediaTypeImageEnable to take G.726 into account."
    REVISION    "200503160000Z"
    DESCRIPTION "Added dataIfT38NoSignalEnable and dataIfT38NoSignalTimeout."
    REVISION    "200503150000Z"
    DESCRIPTION "Added dataIfTable."
    REVISION    "200502180000Z"
    DESCRIPTION "Changed the description of dataIfCodecT38Enable to mention that
                 the variable's semantics are different depending on protocol
                 and/or hardware platforms."
    REVISION    "200402180000Z"
    DESCRIPTION "Corrected dataIfT38BasePort default value"
    REVISION    "200310270000Z"
    DESCRIPTION "Corrected value range for dataIfT38BasePort"
    REVISION    "200310220000Z"
    DESCRIPTION "Updated dataIfT38BasePort variable description."
    REVISION    "200310020000Z"
    DESCRIPTION "Added the dataIfT38FinalFramesRedundancy variable."
    REVISION    "200309150000Z"
    DESCRIPTION "Added the dataIfT38BasePort variable."
    REVISION    "200302200000Z"
    DESCRIPTION "Amended the description of the dataIfClearChannelCodecPreferred
                 variable to point out that it is used differently depending
                 on the signaling protocol."
    REVISION    "200312180000Z"
    DESCRIPTION "Added dataIfClearChannelCodecPreferred for selection of the
                 preferred clear channel codec for fax transmissions."
    REVISION    "200209300000Z"
    DESCRIPTION "Updated description of dataIfCodecMediaTypeImageEnable."
    REVISION    "200207240000Z"
    DESCRIPTION "Specified that dataIfCodecMediaTypeImageEnable applies only
                 to MGCP and NCS."
    REVISION    "200204260000Z"
    DESCRIPTION "Added signalingProtocolDependent in dataIfCodecT38Enable."
    REVISION    "200108220000Z"
    DESCRIPTION "Creation"
    ::= { mediatrixConfig 35 }

dataIfMIBObjects OBJECT IDENTIFIER ::= { dataIfMIB 1 }
dataIfConformance OBJECT IDENTIFIER ::= { dataIfMIB 2 }

    -- *************************************************************************
    -- Data interface T.38 base port
    -- *************************************************************************
    dataIfT38BasePort OBJECT-TYPE
        SYNTAX      Unsigned32 (1025..64535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "T.38 base port.

                     The T.38 ports are allocated starting from this base port.
                     The units use as many T.38 ports as the number of FXS/FXO interfaces.

                     E.g.: let's say for instance that a unit has two FXS interfaces and
                     the base port is defined on 6004:
                        - if there is currently no ongoing call and FXS connector 1 has an
                          incoming or outgoing call, it will use the T.38 port 6004.

                        - if there is currently a call on FXS connector 1 and FXS connector 2
                          has an incoming or outgoing call, then FXS connector 2 will use the
                          T.38 port 6005."


        DEFVAL { 6004 }
        ::=  {  dataIfMIBObjects 15 }

    -- ************************************************************************
    -- Data interface configuration table
    -- ************************************************************************
    dataIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DataIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Data interface configuration table."
        ::= { dataIfMIBObjects 18 }

        dataIfEntry OBJECT-TYPE
            SYNTAX      DataIfEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "A row in dataIfTable."
            INDEX       {
                         ifIndex
                        }
            ::= { dataIfTable 50 }

            DataIfEntry ::= SEQUENCE
                {
                    dataIfCngToneDetectionEnable        MxEnableState,
                    dataIfCedFaxToneEnable              MxEnableState,
                    dataIfAnalogCedDetectionBehavior    INTEGER
                }

            dataIfCngToneDetectionEnable OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Enables fax calling tone (CNG tone) detection.

                             enable: Upon recognition of the CNG tone, the unit
                             switches the communication from voice mode to fax
                             mode and the CNG is transferred using the preferred
                             fax codec.
                             NOTE: This option allows for quicker fax detection,
                             but it also increases the risk of false detection.

                             disable: The CNG tone does not trigger a transition
                             from voice to data and the CNG is transferred in
                             the voice channel.
                             NOTE: With this option, faxes are detected later,
                             but the risk of false detection is reduced."
                DEFVAL      { enable }
                ::= { dataIfEntry 50 }

            dataIfCedFaxToneEnable OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Defines the behaviour of the unit upon reception of
                             a CED fax tone from the network.

                             enable: Upon reception of a CED tone following a
                             sent CNG tone, the unit switches the communication
                             from voice mode to fax mode and the CED is transferred
                             by using the preferred fax codec.

                             disable: The CED tone does not trigger a transition
                             from voice to data and the CED is transferred in
                             the voice channel.

                             This configuration has no effect if the
                             dataIfCngToneDetectionEnable variable is set to
                             'Enable'."
                DEFVAL      { disable }
                ::= { dataIfEntry 100 }

            dataIfAnalogCedDetectionBehavior OBJECT-TYPE
                SYNTAX      INTEGER {
                             passthrough(100),
                             faxmode(200)
                            }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Defines the behaviour of the unit upon reception of
                             a CED fax tone from the analog port.

                             passthrough: In passthrough mode the CED tone does not
                             trigger a transition from voice to data and is transferred
                             in the voice channel. Use this setting when any kind of analog
                             device (i.e.: telephone, fax or modem) can be connected
                             to this port.

                             faxmode: In 'fax mode', upon reception of a CED tone the unit
                             switches the communication from voice mode to fax mode and the
                             CED is transferred by using the preferred fax codec. Only a fax
                             can then be connected to this port.

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

    -- ************************************************************************
    -- Data interface codec configuration table parameters
    -- ************************************************************************
    dataIfCodecTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DataIfCodecEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table that contains data interface configuration parameters."
        ::= { dataIfMIBObjects 20 }

        dataIfCodecEntry OBJECT-TYPE
            SYNTAX      DataIfCodecEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "Table entry of the data interface table."
            INDEX       {
                         ifIndex
                        }
            ::= { dataIfCodecTable 1 }

            DataIfCodecEntry ::= SEQUENCE
                {
                    dataIfCodecT38Enable                INTEGER,
                    dataIfCodecMediaTypeImageEnable     INTEGER,
                    dataIfClearChannelCodecPreferred    INTEGER,
                    dataIfCodecT38ProtectionLevel       Unsigned32
                }

            dataIfCodecMediaTypeImageEnable OBJECT-TYPE
                SYNTAX      INTEGER  {
                             disable(0),
                             pcmu(1),
                             pcma(2),
                             pcmu-pcma(3),
                             g726(4),
                             pcmu-g726(5),
                             pcma-g726(6),
                             pcmu-pcma-g726(7)
                            }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "disable        : image media type is not present in the SDP.
                             pcmu           : image media type is present in the SDP for PCMU only.
                             pcma           : image media type is present in the SDP for PCMA only.
                             pcmu-pcma      : image media type is present in the SDP for PCMU and PCMA.
                             g726           : image media type is present in the SDP for G726 only.
                             pcmu-g726      : image media type is present in the SDP for PCMU and G726.
                             pcma-g726      : image media type is present in the SDP for PCMA and G726.
                             pcmu-pcma-g726 : image media type is present in the SDP for PCMU, PCMA and G726.

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

                             Note: The G.726 flavours supported in the media
                             type image are G.726-32 and G.726-40.  G.726-16
                             and G.726-24 will not appear in the media type
                             image."
                DEFVAL      { pcmu-pcma }
                ::= { dataIfCodecEntry 1 }

            dataIfClearChannelCodecPreferred OBJECT-TYPE
                SYNTAX      INTEGER {
                                     pcmu(1),
                                     pcma(2),
                                     g726-32kbs(5),
                                     g726-40kbs(6),
                                     noPreferredCodec(7)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates the preferred clear channel type of codec
                             for fax transmission.

                             This variable increases the relative priority of
                             the selected codec vs other data-capable codecs.
                             However, the priority of the preferred data codec
                             remains lower than the preferred Voice codec.

                             When no data-capable codec is part of the list of
                             negotiated codecs, this variable indicates which
                             codec to use when fax or modem tones are detected.
                             If the negotiated voice codec is data-capable, it
                             is be used for data instead of the preferred data
                             codec.

                             Note: When noPreferredCodec is selected and no
                             data-capable codecs are negociated, data
                             transmission may fail.

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

            dataIfCodecT38Enable OBJECT-TYPE
                SYNTAX      INTEGER {
                             disable(0),
                             enable(1),
                             signalingProtocolDependent(2)
                            }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If enabled, the T.38 protocol will be used for Fax transmission.
                             If signalingProtocolDependent is selected, the signaling protocol
                             has the control to enable or disable T.38.

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

            dataIfCodecT38ProtectionLevel OBJECT-TYPE
                SYNTAX      Unsigned32 (1..5)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The number of redundancy packets. This is the standard
                             redundancy offered by T.38.

                             Please see dataIfT38FinalFramesRedundancy for additional
                             reliability options for T.38."
                DEFVAL      { 3 }
                ::=    { dataIfCodecEntry  6 }

    -- ************************************************************************
    -- T38 final frames redundancy
    -- ************************************************************************
    dataIfT38FinalFramesRedundancy OBJECT-TYPE
        SYNTAX      Unsigned32 (0..3)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Defines the number of times T.38 packets will be retransmitted.
                              This only applies to the T.38 packets where the PrimaryUDPTL
                              contains the following T.38 data type:
                                HDLC_SIG_END,
                                HDLC_FCS_OK_SIG_END,
                                HDLC_FCS_BAD_SIG_END and
                                T4_NON_ECM_SIG_END

                              Please see dataIfCodecT38ProtectionLevel for standard T.38 reliability
                              options."
        DEFVAL      { 0 }
        ::=    { dataIfMIBObjects  40 }

    -- ************************************************************************
    -- T38 no-signal variables.
    -- ************************************************************************
    dataIfT38NoSignalEnable OBJECT-TYPE
        SYNTAX      MxEnableState
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable/disable the sending of T.38 no-signal packets.
                     When enabled, the unit will ensure that, during a T.38 fax
                     transmission, data is sent out at least every time the
                     dataIfT38NoSignalTimeout delay expires.  In the absence of
                     meaningful data to send, no-signal packets are output."
        DEFVAL { disable }
        ::=  { dataIfMIBObjects 90 }

    dataIfT38NoSignalTimeout OBJECT-TYPE
        SYNTAX      Unsigned32 (1..2147483647)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The period, in seconds, at which no-signal packets are
                     sent during a T.38 transmission, in the absence of valid data."
        DEFVAL      { 1 }
        ::=  { dataIfMIBObjects 140 }


    -- ************************************************************************
    -- Conformance information
    -- ************************************************************************
    dataIfCompliances OBJECT IDENTIFIER ::= { dataIfConformance 1 }

    dataIfComplVer1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "Basic data interface requirements."
        MODULE -- This Module
            MANDATORY-GROUPS {
                              dataIfGroupVer1
                             }
        ::= { dataIfCompliances 1 }

    -- ************************************************************************
    -- MIB variable grouping
    -- ************************************************************************
    dataIfGroups OBJECT IDENTIFIER ::= { dataIfConformance 2 }

    dataIfGroupVer1 OBJECT-GROUP
        OBJECTS {
                 dataIfCngToneDetectionEnable,
                 dataIfCedFaxToneEnable,
                 dataIfAnalogCedDetectionBehavior,
                 dataIfCodecT38Enable,
                 dataIfCodecMediaTypeImageEnable,
                 dataIfClearChannelCodecPreferred,
                 dataIfCodecT38ProtectionLevel,
                 dataIfT38FinalFramesRedundancy,
                 dataIfT38NoSignalEnable,
                 dataIfT38NoSignalTimeout,
                 dataIfT38BasePort
                }
        STATUS current
        DESCRIPTION
            "This group holds the objects necessary to control data transmission."
        ::= { dataIfGroups 1 }

END
