-- ****************************************************************************
-- ****************************************************************************
--
--             Copyright(c) 2001-2002 Mediatrix Telecom, Inc.
--
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Mediatrix Telecom, Inc.
--
--   Mediatrix Telecom, Inc. 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
--   Mediatrix Telecom, Inc.
--
--   Mediatrix Telecom, Inc. 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-RTP-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Unsigned32
    FROM SNMPv2-SMI
        OBJECT-GROUP,
        MODULE-COMPLIANCE
    FROM SNMPv2-CONF
        mediatrixMgmt,
        mediatrixConfig
    FROM MX-SMI;

rtpMIB MODULE-IDENTITY
    LAST-UPDATED "0310270000Z"
    ORGANIZATION "Mediatrix Telecom, Inc."
    CONTACT-INFO "Mediatrix Telecom, Inc.
                  4229, Garlock Street
                  Sherbrooke (Quebec)
                  Canada
                  Phone: (819) 829-8749
                  "
    DESCRIPTION "This MIB contains RTP statistics data."

    -- ************************************************************************
    -- Revision history
    -- ************************************************************************
    REVISION    "0310270000Z"
    DESCRIPTION "October 27th, 2003
                    Corrected value range for rtpConfigBasePort
                 October 22nd, 2003
                    Updated rtpConfigBasePort variable description.
                 September 18, 2003
                    Added rtpConfig and rtpConfigBasePort.
                 September 26, 2002
                    Detailed how the latency is computed.
                 May 14, 2002
                    Added the statistics for interarrival jitter and latency.
                 August 02, 2001
                    Creation"
    ::= { mediatrixMgmt 50 }

rtpMIBObjects               OBJECT IDENTIFIER ::= { rtpMIB 1 }
rtpConformance              OBJECT IDENTIFIER ::= { rtpMIB 2 }

rtpStats                    OBJECT IDENTIFIER ::= { rtpMIBObjects 2 }

rtpStatsLastConnectionStatistics OBJECT IDENTIFIER ::= { rtpStats 5 }
rtpStatsCurrentStatistics        OBJECT IDENTIFIER ::= { rtpStats 10 }
rtpStatsCumulatedStatistics      OBJECT IDENTIFIER ::= { rtpStats 15 }

  -- RTP LastConnection Statistics

    rtpStatsLastConnNumberOctetsTransmitted OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of octets transmitted during the last connection."
        ::= { rtpStatsLastConnectionStatistics 1 }

    rtpStatsLastConnNumberOctetsReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of octets received during the last connection."
        ::= { rtpStatsLastConnectionStatistics 2 }

    rtpStatsLastConnNumberPacketsTransmitted OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of packets transmitted during the last connection."
        ::= { rtpStatsLastConnectionStatistics 3 }

    rtpStatsLastConnNumberPacketsReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of packets received during the last connection."
        ::= { rtpStatsLastConnectionStatistics 4 }

    rtpStatsLastConnNumberPacketsLost OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of packets lost during the last connection."
        ::= { rtpStatsLastConnectionStatistics 5 }

    rtpStatsLastConnPercentPacketsLost OBJECT-TYPE
        SYNTAX      Unsigned32 (0..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Percentage of packets lost during the last connection."
        ::= { rtpStatsLastConnectionStatistics 6 }

    rtpStatsLastConnInterarrivalJitterMin OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Minimum interarrival time in milliseconds during the last connection."
        ::= { rtpStatsLastConnectionStatistics 7 }

    rtpStatsLastConnInterarrivalJitterMax OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Maximum interarrival time in milliseconds during the last connection."
        ::= { rtpStatsLastConnectionStatistics 8 }

    rtpStatsLastConnInterarrivalJitterAvg OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Average interarrival time in milliseconds during the last connection."
        ::= { rtpStatsLastConnectionStatistics 9 }

    rtpStatsLastConnLatencyMin OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Minimum latency in milliseconds during the last connection.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsLastConnectionStatistics 10 }

    rtpStatsLastConnLatencyMax OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Maximum latency in milliseconds during the last connection.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsLastConnectionStatistics 11 }

    rtpStatsLastConnLatencyAvg OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Average latency in milliseconds during the last connection.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsLastConnectionStatistics 12 }


  -- RTP Current Statistics

    rtpStatsCurrentTotalOctetsTransmitted OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Total number of octets transmitted so far in the current
                     statistics period."
        ::= { rtpStatsCurrentStatistics 1 }

    rtpStatsCurrentTotalOctetsReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Total number of octets received so far in the current
                     statistics period."
        ::= { rtpStatsCurrentStatistics 2 }

    rtpStatsCurrentTotalPacketsTransmitted OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Total number of packets transmitted so far in the current
                     statistics period."
        ::= { rtpStatsCurrentStatistics 3 }

    rtpStatsCurrentTotalPacketsReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Total number of packets received so far in the current
                     statistics period."
        ::= { rtpStatsCurrentStatistics 4 }

    rtpStatsCurrentTotalPacketsLost OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Total number of packets lost so far in the current
                     statistics period."
        ::= { rtpStatsCurrentStatistics 5 }

    rtpStatsCurrentTotalPercentPacketsLost OBJECT-TYPE
        SYNTAX      Unsigned32 (0..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Percentage of packets lost so far in the current
                     statistics period."
        ::= { rtpStatsCurrentStatistics 6 }

    rtpStatsCurrentTotalInterarrivalJitterMin OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Minimum interarrival time in milliseconds so far in
                     the current statistics period."
        ::= { rtpStatsCurrentStatistics 7 }

    rtpStatsCurrentTotalInterarrivalJitterMax OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Maximum interarrival time in milliseconds so far in
                     the current statistics period."
        ::= { rtpStatsCurrentStatistics 8 }

    rtpStatsCurrentTotalInterarrivalJitterAvg OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Average interarrival time in milliseconds so far in
                     the current statistics period."
        ::= { rtpStatsCurrentStatistics 9 }

    rtpStatsCurrentTotalLatencyMin OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Minimum latency in milliseconds so far in the current
                     statistics period.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsCurrentStatistics 10 }

    rtpStatsCurrentTotalLatencyMax OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Maximum latency in milliseconds so far in the current
                     statistics period.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsCurrentStatistics 11 }

    rtpStatsCurrentTotalLatencyAvg OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Average latency in milliseconds so far in the current
                     statistics period.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsCurrentStatistics 12 }


  -- RTP Cumulated Statistics

    rtpStatsCumulatedTotalOctetsTransmitted OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Cumulated total of octets transmitted during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 1 }

    rtpStatsCumulatedTotalOctetsReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Cumulated total of octets received during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 2 }

    rtpStatsCumulatedTotalPacketsTransmitted OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Cumulated total of packets transmitted during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 3 }

    rtpStatsCumulatedTotalPacketsReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Cumulated total of packets received during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 4 }

    rtpStatsCumulatedTotalPacketsLost OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Cumulated total of packets lost during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 5 }

    rtpStatsCumulatedTotalPercentPacketsLost OBJECT-TYPE
        SYNTAX      Unsigned32 (0..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Percentage of packets lost during the cumulated period."
        DEFVAL      { 0 }
        ::= { rtpStatsCumulatedStatistics 6 }

    rtpStatsCumulatedTotalInterarrivalJitterMin OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Minimum interarrival time in milliseconds during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 7 }

    rtpStatsCumulatedTotalInterarrivalJitterMax OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION "Maximum interarrival time in milliseconds during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 8 }

    rtpStatsCumulatedTotalInterarrivalJitterAvg OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION "Average interarrival time in milliseconds during the cumulated period."
        ::= { rtpStatsCumulatedStatistics 9 }

    rtpStatsCumulatedTotalLatencyMin OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Minimum latency in milliseconds during the cumulated period.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsCumulatedStatistics 10 }

    rtpStatsCumulatedTotalLatencyMax OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Maximum latency in milliseconds during the cumulated period.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsCumulatedStatistics 11 }

    rtpStatsCumulatedTotalLatencyAvg OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Average latency in milliseconds during the cumulated period.
                     The latency value is computed as one half of the
                     round-trip time, as measured through RTCP."
        ::= { rtpStatsCumulatedStatistics 12 }


    -- *************************************************************************
    -- RTP config
    -- *************************************************************************
    rtpConfig OBJECT-IDENTITY
        STATUS current
        DESCRIPTION "This object is the root of the configurable RTP objects."
        ::= { mediatrixConfig 115 }

        rtpConfigBasePort OBJECT-TYPE
            SYNTAX      Unsigned32 (1025..64535)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "UDP base port for the RTP/RTCP protocols.

                         The RTP/RTCP ports are allocated starting from this base port.

                         The unit may use two or four RTP/RTCP ports per FXS/FXO interface.

                         It uses 2 ports in case of a standard call, while it uses 4 ports
                         in other types of calls such as a conference call, a call transfer, etc.

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

                            - if there is currently a standard call on FXS connector 1 and FXS
                              connector 2 has a conference call, then FXS connector 2 will use
                              the RTP/RTCP ports 5006, 5007, 5008, and 5009, which are the next
                              available ports.

                         This variables semantics are different depending on protocol and/or
                         hardware platforms.
                         Please refer to the documentation shipped with your device for more details."
            DEFVAL { 5004 }
            ::=  {  rtpConfig 5 }


    -- ************************************************************************
    -- Conformance information
    -- ************************************************************************
    rtpCompliances OBJECT IDENTIFIER ::= { rtpConformance 1 }

    rtpBasicComplVer1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "Minimal definitions for the RTP group."
        MODULE -- This Module
            MANDATORY-GROUPS {
                                rtpStatsBasicGroupVer1,
                                rtpConfigBasicGroupVer1
                             }
        ::= { rtpCompliances 1 }

    -- ************************************************************************
    -- MIB variable grouping
    -- ************************************************************************
    rtpGroups OBJECT IDENTIFIER ::= {rtpConformance 2 }

    rtpStatsBasicGroupVer1 OBJECT-GROUP
        OBJECTS {
                  rtpStatsLastConnNumberOctetsTransmitted,
                  rtpStatsLastConnNumberOctetsReceived,
                  rtpStatsLastConnNumberPacketsTransmitted,
                  rtpStatsLastConnNumberPacketsReceived,
                  rtpStatsLastConnNumberPacketsLost,
                  rtpStatsLastConnPercentPacketsLost,
                  rtpStatsLastConnInterarrivalJitterMin,
                  rtpStatsLastConnInterarrivalJitterMax,
                  rtpStatsLastConnInterarrivalJitterAvg,
                  rtpStatsLastConnLatencyMin,
                  rtpStatsLastConnLatencyMax,
                  rtpStatsLastConnLatencyAvg,
                  rtpStatsCurrentTotalOctetsTransmitted,
                  rtpStatsCurrentTotalOctetsReceived,
                  rtpStatsCurrentTotalPacketsTransmitted,
                  rtpStatsCurrentTotalPacketsReceived,
                  rtpStatsCurrentTotalPacketsLost,
                  rtpStatsCurrentTotalPercentPacketsLost,
                  rtpStatsCurrentTotalInterarrivalJitterMin,
                  rtpStatsCurrentTotalInterarrivalJitterMax,
                  rtpStatsCurrentTotalInterarrivalJitterAvg,
                  rtpStatsCurrentTotalLatencyMin,
                  rtpStatsCurrentTotalLatencyMax,
                  rtpStatsCurrentTotalLatencyAvg,
                  rtpStatsCumulatedTotalOctetsTransmitted,
                  rtpStatsCumulatedTotalOctetsReceived,
                  rtpStatsCumulatedTotalPacketsTransmitted,
                  rtpStatsCumulatedTotalPacketsReceived,
                  rtpStatsCumulatedTotalPacketsLost,
                  rtpStatsCumulatedTotalPercentPacketsLost,
                  rtpStatsCumulatedTotalInterarrivalJitterMin,
                  rtpStatsCumulatedTotalInterarrivalJitterMax,
                  rtpStatsCumulatedTotalInterarrivalJitterAvg,
                  rtpStatsCumulatedTotalLatencyMin,
                  rtpStatsCumulatedTotalLatencyMax,
                  rtpStatsCumulatedTotalLatencyAvg
                }

        STATUS current
        DESCRIPTION "This group holds the objects that define the basic
                     statistics group."
        ::= { rtpGroups 1 }

    rtpConfigBasicGroupVer1 OBJECT-GROUP
        OBJECTS {
                  rtpConfigBasePort
                }

        STATUS current
        DESCRIPTION "This group holds the objects that define the basic RTP
                     configuration group."
        ::= { rtpGroups 2 }
END