Subject: [AVT] Draft RTP-MIBV2 and RTCPXR MIBs in raw format

From: Alan Clark <[email-masked]>
Date: Sun, 19 Feb 2006 20:57:14 -0500

I attach draft smilint'd RTP-MIB V2 and RTCP XR MIBs in raw .mib format. 
Before I put this into I-D format - any comments related to the 
definition of objects or overall structure would be appreciated (I'll 
clean up the descriptive text later).

Regards

Alan Clark
Telchemy

RTCPXR-MIB DEFINITIONS ::= BEGIN
IMPORTS
       mib-2, MODULE-IDENTITY, NOTIFICATION-TYPE, 
       OBJECT-TYPE, Unsigned32, Integer32,
       Gauge32, Counter32                     FROM SNMPv2-SMI
       OBJECT-GROUP, MODULE-COMPLIANCE,
       NOTIFICATION-GROUP                     FROM SNMPv2-CONF
       TEXTUAL-CONVENTION, RowPointer, DateAndTime
                                              FROM SNMPv2-TC
       SnmpAdminString                        FROM SNMP-FRAMEWORK-MIB
       ItuPerceivedSeverity                   FROM ITU-ALARM-TC-MIB
       rtpSessionIndex, rtpSessionRowStatus
                                              FROM RTP-MIB;

rtcpXrMIB MODULE-IDENTITY
    LAST-UPDATED "200510230000Z" 
    ORGANIZATION
        "IETF AVT Working Group"
    CONTACT-INFO
        "IETF AVT Working Group
         Chairs: Colin Perkins, Magnus Westerlund
         Working Group Email:  [email-masked]

         Editors: Alan Clark
                  Telchemy
                  Email: [email-masked]

                  Amy Pendleton
                  Nortel
                  Email: [email-masked]"
   DESCRIPTION  
                 "RTCP Extended Reports MIB
                 Copyright (c) The Internet Society (2005)
                 This version of the MIB module is part of
                 RFC nnnn and is based on RFC3611."

   REVISION      "200510230000Z"
   DESCRIPTION
                 "Initial version, published as RFC nnnn"

-- RFC Ed: replace nnnn (2 occurrences) with the actual RFC number and
-- remove this notice

::= { mib-2 500 }

-- IANA: need assignment of a mib-2 OID for this MIB
-- RFC Ed: replace mmm with IANA assigned number and remove this note 

--
-- RTCP Extended Reports - Voice over IP Metrics
--
-- Description
--    This MIB module provides basic voice quality monitoring
--    capabilities for Voice-over-packet systems. The MIB contains 
--    4 tables of information:-
--         a table of measurement point identifying information
--         a table of basic parameters for each Stream
--         a table of call quality metrics for each Stream
--         a table of aggregate statistics for groups of calls

--
-- TEXTUAL CONVENTIONS
--

LeveldB ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS      current
DESCRIPTION
      "Represents a signal level in decibels (dB)."
SYNTAX      Integer32 (-120..120|127)

Rfactor ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS      current
DESCRIPTION
      "Call or transmission quality expressed as an 
       R factor in the range 0 to 120. A value of
       127 shall be interpreted as NULL or unsupported."
REFERENCE
       "ITU-T G.107"
SYNTAX      Unsigned32 (0..120|127)

ScaledMOSscore ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS      current
DESCRIPTION
       "Call or transmission quality expressed as a 
       MOS score scaled by 10.  MOS is typically represented
       as a 1.0 to 5.0 score with a single decimal place and
       hence in this representation as 10 to 50. A value of
       127 shall be interpreted as NULL or unsupported."
REFERENCE
       "ITU-T P.800"
SYNTAX      Integer32 (10..50|127)

Percentage ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS       current
DESCRIPTION
       "Percentage expressed as a rounded integer."
SYNTAX      Unsigned32 (0..100)

--
-- OBJECTS
--

rtcpXrEvents      OBJECT IDENTIFIER ::= { rtcpXrMIB 0 }
rtcpXrMIBObjects  OBJECT IDENTIFIER ::= { rtcpXrMIB 1 }
rtcpXrConformance OBJECT IDENTIFIER ::= { rtcpXrMIB 2 }

--
-- Table of basic RTP stream parameters
--

rtcpXrBaseParamTable OBJECT-TYPE
    SYNTAX SEQUENCE OF RtcpXrBaseParamEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
     "Table of basic parameters related to RTP sessions in
      the Session table. "
    ::= { rtcpXrMIBObjects 2 }

rtcpXrBaseParamEntry OBJECT-TYPE
    SYNTAX RtcpXrBaseParamEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the table of basic parameters. A row in this table 
         is created for each RTP session endpoint participating."
    INDEX { rtpSessionRowStatus, rtpSessionIndex }
    ::= { rtcpXrBaseParamTable 1 }

RtcpXrBaseParamEntry ::= SEQUENCE {
    rtcpXrBaseParamCodecType                      OCTET STRING,
    rtcpXrBaseParamCodecBitRate                   Unsigned32,
    rtcpXrBaseParamFrameDuration                  Unsigned32,
    rtcpXrBaseParamFramesPerPacket                Unsigned32,
    rtcpXrBaseParamSampleRate                     Unsigned32,
    rtcpXrBaseParamDurationMs                     Counter32,
    rtcpXrBaseParamNetworkLossRate                Percentage,
    rtcpXrBaseParamAvgDiscardRate                 Percentage,
    rtcpXrBaseParamBurstLossDensity               Percentage,
    rtcpXrBaseParamBurstLenMs                     Gauge32,
    rtcpXrBaseParamGapLossDensity                 Percentage,
    rtcpXrBaseParamGapLenMs                       Gauge32,
    rtcpXrBaseParamAvgOWDelay                     Gauge32,
    rtcpXrBaseParamAvgEndSysDelay                 Gauge32,
    rtcpXrBaseParamNoiseLeveldBm                  LeveldB,
    rtcpXrBaseParamSignalLeveldBm                 LeveldB,
    rtcpXrBaseParamLocalRERLdB                    LeveldB,
    rtcpXrBaseParamRemoteRERLdB                   LeveldB,
    rtcpXrBaseParamPlcType                        INTEGER,
    rtcpXrBaseParamJBuffAdaptMode                 INTEGER,    
    rtcpXrBaseParamJBuffAdaptRate                 Unsigned32,
    rtcpXrBaseParamJBuffAverageDelay              Gauge32,
    rtcpXrBaseParamJBuffMaximumDelay              Gauge32,
    rtcpXrBaseParamJBuffAbsMaxDelay               Gauge32,
    rtcpXrBaseParamJitterLevel                    Gauge32
}

rtcpXrBaseParamCodecType OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..32))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Codec type used on this call. The format used shall be
         ITU-T G.7xx, GSM FR, GSM EFR, GSM HR, AMR, AMR WB, iLBC 
         or similar.  For example 'ITU G.729A'. It is recommended
         that Codecs are described in consistently with SDP."
    ::= { rtcpXrBaseParamEntry 1 }
    
rtcpXrBaseParamCodecBitRate OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Codec rate in use at the time this data was captured 
         expressed in bits per second.  For example G.711 would
         have the rate 64000 and G.729 would have the rate 8000."
    ::= { rtcpXrBaseParamEntry 2 }
    
rtcpXrBaseParamFrameDuration OBJECT-TYPE
    SYNTAX Unsigned32 (0..16384)
    UNITS "sample clock ticks"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Companion information to Codec type.  This represents the
         duration of the time interval represented by a frame, which
         is generally equivalent to the nominal spacing of frames.
         This is expressed in sample clock ticks as defined under
         rtxpXrSampleRate.
         This parameter may be equated to the SDP ptime parameter
         which is expressed in milliseconds (however which cannot
         represent certain Codec types, e.g. those with 2.5mS
         frames)."
    ::= { rtcpXrBaseParamEntry 3 }
 
rtcpXrBaseParamFramesPerPacket OBJECT-TYPE
    SYNTAX Unsigned32 (0..65535)
    UNITS "frames per packet"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Number of Codec frames contained in a single IP packet in
         this RTP stream at the time of sampling. The duration of 
         speech per IP packet is the product of Frame Duration and 
         Frames Per Packet. This may vary during a call."
    ::= {rtcpXrBaseParamEntry 4 }
 
rtcpXrBaseParamSampleRate OBJECT-TYPE
    SYNTAX Unsigned32 (0..16777215)
    UNITS "samples per second"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Companion information to Codec type.  This represents the
         rate at which media was sampled (e.g. 8000 for narrowband
         voice, 16000 for wideband voice)."
    ::= { rtcpXrBaseParamEntry 5 }    

rtcpXrBaseParamDurationMs OBJECT-TYPE
    SYNTAX Counter32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Current duration of call in milliseconds if still active,
         duration of call in milliseconds if complete."
    ::= { rtcpXrBaseParamEntry 6 }
    
rtcpXrBaseParamNetworkLossRate OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average rate of network packet loss."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 7 }

rtcpXrBaseParamAvgDiscardRate OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average rate of discards due to jitter."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 8 }

rtcpXrBaseParamBurstLossDensity OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Density of loss and discarded packets during burst periods."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 9 }

rtcpXrBaseParamBurstLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average length of bursts in milliseconds."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 10 }

rtcpXrBaseParamGapLossDensity OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Density of loss and discarded packets during gap periods."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 11 }

rtcpXrBaseParamGapLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average length of gaps in milliseconds."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 12 }

rtcpXrBaseParamAvgOWDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average (symmetric) one way RTCP delay on call. A value of 
         zero indicates that this value has not yet been determined."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 13 }

rtcpXrBaseParamAvgEndSysDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average end system delay on call. A value of zero may 
         indicate that this value has not yet been determined."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 14 }

rtcpXrBaseParamNoiseLeveldBm OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Measured received silent period noise level in dBm.
         A value of 127 indicates that this parameter is not
         available.
         In midpoint applications this parameter may not be
         available.  If this is a midstream device and call
         quality metrics were calculated using the value of
         this parameter reported from the endpoint in an
         RTCP XR payload then the value used in this
         calculation MAY be reported."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 15 }

rtcpXrBaseParamSignalLeveldBm OBJECT-TYPE
    SYNTAX LeveldB 
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Measured received signal level during talkspurts in dBm.
         A value of 127 indicates that this parameter is not
         available.
         In midpoint applications this parameter may not be
         available. If this is a midstream device and call
         quality metrics were calculated using the value of
         this parameter reported from the endpoint in an
         RTCP XR payload then the value used in this
         calculation MAY be reported."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 16 }

rtcpXrBaseParamLocalRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Residual Echo Return Loss measured at this endpoint,
         or at the terminating endpoint of this RTP session.
         This relates to the echo level from the network beyond
         the terminating endpoint and may be interpreted as either
         line echo in the case of a gateway or acoustic echo in the
         case of a handset.  
         Note that this echo affects conversational quality as
         perceived by the user at the originating end of this
         RTP session.
         A value of 127 indicates that this parameter is not
         available.
         In midpoint applications this parameter may not be
         available.  If this is a midstream device and call
         quality metrics were calculated using the value of
         this parameter reported from the endpoint in an
         RTCP XR payload then the value used in this
         calculation MAY be reported."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 17 }

rtcpXrBaseParamRemoteRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Residual Echo Return Loss measured at originating endpoint
         of this RTP session (i.e. the remote endpoint if this MIB
         is implemented in an endpoint).
         Note that this affects the conversational quality 
         metrics reported by the terminating (this) endpoint, hence
         is useful in understanding what has affected the reported
         call quality metrics
         A value of 127 indicates that this parameter is not
         available.
         In midpoint applications this parameter may not be
         available.  If this is a midstream device and call
         quality metrics were calculated using the value of
         this parameter reported from the endpoint in an
         RTCP XR payload then the value used in this
         calculation MAY be reported."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 18 }

rtcpXrBaseParamPlcType OBJECT-TYPE
    SYNTAX INTEGER { disabled(1),
                     enhanced(2), 
                     standard(3),
                     unspecified (4)}
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Defines type of packet loss concealment used on this call."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry  19 }

rtcpXrBaseParamJBuffAdaptMode OBJECT-TYPE
    SYNTAX INTEGER { reserved (1),
                     nonAdaptive (2),
                     adaptive (3),
                     unknown (4) }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Defines if jitter buffer is in fixed or adaptive mode."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry  20 }

rtcpXrBaseParamJBuffAdaptRate OBJECT-TYPE
    SYNTAX Unsigned32 (0..15)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Estimated adaptation rate of jitter buffer."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= {  rtcpXrBaseParamEntry 21 }

rtcpXrBaseParamJBuffAverageDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average size of jitter buffer in mS."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry 22 }

rtcpXrBaseParamJBuffMaximumDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Maximum delay through jitter buffer at current size in mS."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry  23 }

rtcpXrBaseParamJBuffAbsMaxDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Absolute maximum size jitter buffer can reach in mS."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrBaseParamEntry  24 }

rtcpXrBaseParamJitterLevel OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Average jitter level measured according to RFC3550 and
         represented in terms of milliseconds."
    REFERENCE
         "See RFC3550 Section 6.4."
    ::= { rtcpXrBaseParamEntry  25 }

--
-- Table of Call Quality Metrics
--

rtcpXrCallQualityTable OBJECT-TYPE
    SYNTAX SEQUENCE OF RtcpXrCallQualityEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
     "Table of voice quality metrics. A row is created
      in this table for each row in the Session table."
    ::= { rtcpXrMIBObjects 3 }

rtcpXrCallQualityEntry OBJECT-TYPE
    SYNTAX RtcpXrCallQualityEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the table of voice quality metrics.  A row in 
         this table is created for each row in the Session
         table."
    INDEX { rtpSessionRowStatus, rtpSessionIndex }
    ::= { rtcpXrCallQualityTable 1 }

RtcpXrCallQualityEntry ::= SEQUENCE {
    rtcpXrCallQualityRCQ                            Rfactor,
    rtcpXrCallQualityRLQ                            Rfactor,
    rtcpXrCallQualityExternalRCQ                    Rfactor,    
    rtcpXrCallQualityMOSCQ                          ScaledMOSscore,
    rtcpXrCallQualityMOSLQ                          ScaledMOSscore,
    rtcpXrCallQualityRLQestAlgorithm                OCTET STRING,
    rtcpXrCallQualityRCQestAlgorithm                OCTET STRING,
    rtcpXrCallQualityMOSLQEstAlgorithm              OCTET STRING,
    rtcpXrCallQualityMOSCQEstAlgorithm              OCTET STRING
}

rtcpXrCallQualityRCQ OBJECT-TYPE
    SYNTAX Rfactor
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Conversational quality R factor for this call. This value
         SHOULD be calculated using ITU G.107 (The E Model) or 
         extended versions thereof."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrCallQualityEntry 1 }

rtcpXrCallQualityRLQ OBJECT-TYPE
    SYNTAX Rfactor
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Listening quality R factor for this call. This value
         SHOULD be calculated using ITU G.107 (The E Model) or 
         extended versions thereof."
    ::= { rtcpXrCallQualityEntry 2 }

rtcpXrCallQualityExternalRCQ OBJECT-TYPE
    SYNTAX Rfactor
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "External R factor for this call. This value
         SHOULD be calculated using ITU G.107 (The E Model) or 
         extended versions thereof.
         The External R factor relates to the quality of an
         incoming voice from another network segment.  For example
         if a conference bridge terminates and re-creates voice
         streams then an R factor would be calculated at the bridge
         for the endpoint A to bridge segment and relayed to the
         subsequent bridge to endpoint B as an External R factor. 
         This allows endpoint B to estimate the end-to-end call
         quality."
    ::= { rtcpXrCallQualityEntry 3 }

rtcpXrCallQualityMOSCQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Estimated conversational quality MOS for this call
        expressed in MOS x 10 (e.g. 41 = MOS of 4.1). This value
        MAY be calculated by converting the R-CQ value to a MOS."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrCallQualityEntry 4 }

rtcpXrCallQualityMOSLQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Estimated listening quality MOS for this call
       expressed in MOS x 10 (e.g. 41 = MOS of 4.1). This value
        MAY be calculated by converting the R-CQ value to a MOS."
    REFERENCE
         "See RFC3611 Section 4.7."
    ::= { rtcpXrCallQualityEntry 5 }

rtcpXrCallQualityRLQestAlgorithm OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Call quality algorithm used to determine R-LQ factors.
        For example, 'ITU-T G.107' for the ITU G.107 
        E model or 'ETSI TS101329-5E' for ETSI 
        TS 101 329-5 Annex E."
    ::= { rtcpXrCallQualityEntry 6 }

rtcpXrCallQualityRCQestAlgorithm OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Call quality algorithm used to determine R-CQ factors.
        For example, 'ITU-T G.107' for the ITU G.107 
        E model or 'ETSI TS101329-5E' for ETSI 
        TS 101 329-5 Annex E."
    ::= { rtcpXrCallQualityEntry 7 }

rtcpXrCallQualityMOSLQEstAlgorithm OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Call quality algorithm used to determine MOS-LQ scores.
        If any localized parameter scaling is used
        (for example Japan's TTC MOS scaling) then this 
        MUST also be reported."
    ::= { rtcpXrCallQualityEntry 8 }

rtcpXrCallQualityMOSCQEstAlgorithm OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Call quality algorithm used to determine MOS-CQ scores.
        If any localized parameter scaling is used
        (for example Japan's TTC MOS scaling) then this 
        MUST also be reported."
    ::= { rtcpXrCallQualityEntry 9 }

--
-- History Table
--
--

rtcpXrHistoryTable OBJECT-TYPE
    SYNTAX SEQUENCE OF RtcpXrHistoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
     "Table of aggregate measurement data for groups
      of RTP sessions.  A group may be a flow or any
      other logical association of streams."
    ::= { rtcpXrMIBObjects 4 }

rtcpXrHistoryEntry OBJECT-TYPE
    SYNTAX RtcpXrHistoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the table of call history records."
    INDEX { rtcpXrHistoryIndex }
    ::= { rtcpXrHistoryTable 1 }

RtcpXrHistoryEntry ::= SEQUENCE {
    rtcpXrHistoryIndex                             Unsigned32,
    rtcpXrHistoryGroupName                         OCTET STRING,
    rtcpXrHistoryStartTime                         DateAndTime,
    rtcpXrHistoryStopTime                          DateAndTime,
    rtcpXrHistoryNumOfSessions                     Counter32,
    rtcpXrHistoryMinDurationMs                     Gauge32,
    rtcpXrHistoryMaxDurationMs                     Gauge32,
    rtcpXrHistoryAvgDurationMs                     Gauge32,
    rtcpXrHistoryMaxNetworkLossRate                Percentage,
    rtcpXrHistoryAvgNetworkLossRate                Percentage,
    rtcpXrHistoryMaxDiscardRate                    Percentage,
    rtcpXrHistoryAvgDiscardRate                    Percentage,
    rtcpXrHistoryMaxBurstLossDensity               Percentage,
    rtcpXrHistoryAvgBurstLossDensity               Percentage,
    rtcpXrHistoryMinBurstLenMs                     Gauge32,
    rtcpXrHistoryMaxBurstLenMs                     Gauge32,
    rtcpXrHistoryAvgBurstLenMs                     Gauge32,
    rtcpXrHistoryMaxGapLossDensity                 Percentage,
    rtcpXrHistoryAvgGapLossDensity                 Percentage,
    rtcpXrHistoryMinGapLenMs                       Gauge32,
    rtcpXrHistoryMaxGapLenMs                       Gauge32,
    rtcpXrHistoryAvgGapLenMs                       Gauge32,
    rtcpXrHistoryMinOneWayDelay                    Gauge32,
    rtcpXrHistoryMaxOneWayDelay                    Gauge32,
    rtcpXrHistoryAvgOneWayDelay                    Gauge32,
    rtcpXrHistoryOneWayDelayCount                  Counter32,
    rtcpXrHistoryMinEndSystemDelay                 Gauge32,
    rtcpXrHistoryMaxEndSystemDelay                 Gauge32,
    rtcpXrHistoryAvgEndSystemDelay                 Gauge32,
    rtcpXrHistoryEndSystemDelayCount               Counter32,
    rtcpXrHistoryMinJitterLevel                    Gauge32,
    rtcpXrHistoryMaxJitterLevel                    Gauge32,
    rtcpXrHistoryAvgJitterLevel                    Gauge32,
    rtcpXrHistoryMinNoiseLeveldBm                  LeveldB,
    rtcpXrHistoryMaxNoiseLeveldBm                  LeveldB,
    rtcpXrHistoryAvgNoiseLeveldBm                  LeveldB,
    rtcpXrHistoryNoiseLevelCount                   Counter32,
    rtcpXrHistoryMinSignalLeveldBm                 LeveldB,
    rtcpXrHistoryMaxSignalLeveldBm                 LeveldB,
    rtcpXrHistoryAvgSignalLeveldBm                 LeveldB,
    rtcpXrHistorySignalLevelCount                  Counter32,
    rtcpXrHistoryMinLocalRERLdB                    LeveldB,
    rtcpXrHistoryMaxLocalRERLdB                    LeveldB,
    rtcpXrHistoryAvgLocalRERLdB                    LeveldB,
    rtcpXrHistoryLocalRERLCount                    Counter32,
    rtcpXrHistoryMinRemoteRERLdB                   LeveldB,
    rtcpXrHistoryMaxRemoteRERLdB                   LeveldB,
    rtcpXrHistoryAvgRemoteRERLdB                   LeveldB,
    rtcpXrHistoryRemoteRERLCount                   Counter32,
    rtcpXrHistoryMinRCQ                            Rfactor,
    rtcpXrHistoryMaxRCQ                            Rfactor,
    rtcpXrHistoryAvgRCQ                            Rfactor,
    rtcpXrHistoryRCQCount                          Counter32,
    rtcpXrHistoryMinRLQ                            Rfactor,    
    rtcpXrHistoryMaxRLQ                            Rfactor,    
    rtcpXrHistoryAvgRLQ                            Rfactor,    
    rtcpXrHistoryRLQCount                          Counter32,
    rtcpXrHistoryMinMOSCQ                          ScaledMOSscore,
    rtcpXrHistoryMaxMOSCQ                          ScaledMOSscore,
    rtcpXrHistoryAvgMOSCQ                          ScaledMOSscore,
    rtcpXrHistoryMOSCQCount                        Counter32,
    rtcpXrHistoryMinMOSLQ                          ScaledMOSscore,
    rtcpXrHistoryMaxMOSLQ                          ScaledMOSscore,
    rtcpXrHistoryAvgMOSLQ                          ScaledMOSscore,
    rtcpXrHistoryMOSLQCount                        Counter32,
    rtcpXrHistoryCQAlgorithm                       OCTET STRING,
    rtcpXrHistoryReset                             INTEGER
}

rtcpXrHistoryIndex OBJECT-TYPE
    SYNTAX Unsigned32 (0..4294967295)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index for this set of aggregate data."
    ::= { rtcpXrHistoryEntry 1 }

rtcpXrHistoryGroupName OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Name of this set of aggregate data. Examples may include
         a flow, an interface or some other logical grouping of
         RTP sessions."
    ::= { rtcpXrHistoryEntry 2 }
   
rtcpXrHistoryStartTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Time at which this history was reset or started."
    ::= {rtcpXrHistoryEntry 3 }

rtcpXrHistoryStopTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Time at which this history was stopped."
    ::= {rtcpXrHistoryEntry 4 }

rtcpXrHistoryNumOfSessions OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of calls included in this history."
    ::= {rtcpXrHistoryEntry 5 }

rtcpXrHistoryMinDurationMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum duration of calls."
    ::= {rtcpXrHistoryEntry 6 }

rtcpXrHistoryMaxDurationMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum duration of calls."
    ::= {rtcpXrHistoryEntry 7 }

rtcpXrHistoryAvgDurationMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Average duration of calls within this history."
    ::= {rtcpXrHistoryEntry 8 }

rtcpXrHistoryMaxNetworkLossRate OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum loss rate occurring on any call in this history."
    ::= {rtcpXrHistoryEntry 9 }

rtcpXrHistoryAvgNetworkLossRate OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean for all calls in this history of the individual
       per call packet loss rate."
    ::= {rtcpXrHistoryEntry 10 }

rtcpXrHistoryMaxDiscardRate OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum discard rate occurring on any call in this history."
    ::= {rtcpXrHistoryEntry 11 }

rtcpXrHistoryAvgDiscardRate OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean for all calls in this history of the individual
       per call packet discard rate."
    ::= {rtcpXrHistoryEntry 12 }

rtcpXrHistoryMaxBurstLossDensity OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call average burst densities for any
       call in this history. A value of 0 shall be reported if
       no bursts were reported." 
    ::= {rtcpXrHistoryEntry 13 }

rtcpXrHistoryAvgBurstLossDensity OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"  
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean for all calls in this history of the individual
       per call burst density. A value of 0 shall be reported if
       no bursts were reported."
    ::= {rtcpXrHistoryEntry 14 }

rtcpXrHistoryMinBurstLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call burst length for all calls in this
       history for which a burst length was reported. A value of
       0 shall be reported if no bursts were present."
    ::= {rtcpXrHistoryEntry 15 }

rtcpXrHistoryMaxBurstLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call burst length for all calls in this
       history for which a burst length was reported. A value of
       0 shall be reported if no bursts were present."
    ::= {rtcpXrHistoryEntry 16 }

rtcpXrHistoryAvgBurstLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call burst length for all calls in this
       history for which a burst length was reported. A value of
       0 shall be reported if no bursts were present."
    ::= {rtcpXrHistoryEntry 17 }

rtcpXrHistoryMaxGapLossDensity OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call gap density for all calls in this
       history for which a gap density was reported. A value of
       0 shall be reported if no gaps were present."
    ::= {rtcpXrHistoryEntry 18 }

rtcpXrHistoryAvgGapLossDensity OBJECT-TYPE
    SYNTAX Percentage
    UNITS "percent"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call gap density for all calls in this
       history for which a gap density was reported. A value of
       0 shall be reported if no gaps were present."
    ::= {rtcpXrHistoryEntry 19 }

rtcpXrHistoryMinGapLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call gap length for all calls in this
       history for which a gap length was reported. A value of
       0 shall be reported if no gaps were present."
    ::= {rtcpXrHistoryEntry 20 }

rtcpXrHistoryMaxGapLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call gap length for all calls in this
       history for which a gap length was reported. A value of
       0 shall be reported if no gaps were present."
    ::= {rtcpXrHistoryEntry 21 }

rtcpXrHistoryAvgGapLenMs OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call gap length for all calls in this
       history for which a gap length was reported. A value of
       0 shall be reported if no gaps were present."
    ::= {rtcpXrHistoryEntry 22 }

rtcpXrHistoryMinOneWayDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call OW Delays for all calls in this
       history for which a Delay was reported. A value of
       0 shall be reported if no Delay values were reported."
    ::= {rtcpXrHistoryEntry 23 }

rtcpXrHistoryMaxOneWayDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call OW Delays for all calls in this
       history for which a Delay was reported. A value of
       0 shall be reported if no Delay values were reported."
    ::= {rtcpXrHistoryEntry 24 }

rtcpXrHistoryAvgOneWayDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call OW Delays for all calls in this
       history for which a Delay was reported. A value of
       0 shall be reported if no Delay values were reported."
    ::= {rtcpXrHistoryEntry 25 }

rtcpXrHistoryOneWayDelayCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the One Way Delay
       history values (as Delay may not be available on 
       all calls."
    ::= {rtcpXrHistoryEntry 26 }

rtcpXrHistoryMinEndSystemDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call ES Delays for all calls in this
       history for which an ES Delay was reported."
    ::= {rtcpXrHistoryEntry 27 }

rtcpXrHistoryMaxEndSystemDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call ES Delays for all calls in this
       history for which an ES Delay was reported."
    ::= {rtcpXrHistoryEntry 28 }

rtcpXrHistoryAvgEndSystemDelay OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call ES Delays for all calls in this
       history for which an ES Delay was reported."
    ::= {rtcpXrHistoryEntry 29 }

rtcpXrHistoryEndSystemDelayCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the End System 
       Delay history values (as End System Delay 
       may not be available on all calls."
    ::= {rtcpXrHistoryEntry 30 }

rtcpXrHistoryMinJitterLevel OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call jitter for all calls in this
       history for which a jitter value was reported."
    ::= {rtcpXrHistoryEntry 31 }

rtcpXrHistoryMaxJitterLevel OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call jitter for all calls in this
       history for which a jitter value was reported."
    ::= {rtcpXrHistoryEntry 32 }

rtcpXrHistoryAvgJitterLevel OBJECT-TYPE
    SYNTAX Gauge32
    UNITS "milliseconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call jitter for all calls in this
       history for which a jitter value was reported."
    ::= {rtcpXrHistoryEntry 33 }

rtcpXrHistoryMinNoiseLeveldBm OBJECT-TYPE
    SYNTAX LeveldB 
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call Noise Level for all calls in this
       history for which a Noise Level value was reported."
    ::= {rtcpXrHistoryEntry 34 }

rtcpXrHistoryMaxNoiseLeveldBm OBJECT-TYPE
    SYNTAX LeveldB 
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call Noise Level for all calls in this
       history for which a Noise Level value was reported."
    ::= {rtcpXrHistoryEntry 35 }

rtcpXrHistoryAvgNoiseLeveldBm OBJECT-TYPE
    SYNTAX LeveldB 
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call Noise Level for all calls in this
       history for which a Noise Level value was reported."
    ::= {rtcpXrHistoryEntry 36 }

rtcpXrHistoryNoiseLevelCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the Noise Level
       history values (as Noise Level is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 37 }

rtcpXrHistoryMinSignalLeveldBm OBJECT-TYPE
    SYNTAX LeveldB  
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call Signal Level for all calls in this
       history for which a Signal Level value was reported."
    ::= {rtcpXrHistoryEntry 38 }

rtcpXrHistoryMaxSignalLeveldBm OBJECT-TYPE
    SYNTAX LeveldB  
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call Signal Level for all calls in this
       history for which a Signal Level value was reported."
    ::= {rtcpXrHistoryEntry 39 }

rtcpXrHistoryAvgSignalLeveldBm OBJECT-TYPE
    SYNTAX LeveldB  
    UNITS "dBm0"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call Signal Level for all calls in this
       history for which a Signal Level value was reported."
    ::= {rtcpXrHistoryEntry 40 }

rtcpXrHistorySignalLevelCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the Signal Level
       history values (as Signal Level is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 41 }

rtcpXrHistoryMinLocalRERLdB OBJECT-TYPE
    SYNTAX LeveldB 
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call local RERL for all calls in this
       history for which a local RERL value was reported."
    ::= {rtcpXrHistoryEntry 42 }

rtcpXrHistoryMaxLocalRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call local RERL for all calls in this
       history for which a local RERL value was reported."
    ::= {rtcpXrHistoryEntry 43 }

rtcpXrHistoryAvgLocalRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call local RERL for all calls in this
       history for which a local RERL value was reported."
    ::= {rtcpXrHistoryEntry 44 }

rtcpXrHistoryLocalRERLCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the Local RERL
       history values (as Local RERL is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 45 }

rtcpXrHistoryMinRemoteRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call remote RERL for all calls in this
       history for which a remote RERL value was reported."
    ::= {rtcpXrHistoryEntry 46 }

rtcpXrHistoryMaxRemoteRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call remote RERL for all calls in this
       history for which a remote RERL value was reported."
    ::= {rtcpXrHistoryEntry 47 }

rtcpXrHistoryAvgRemoteRERLdB OBJECT-TYPE
    SYNTAX LeveldB
    UNITS "dBm"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call remote RERL for all calls in this
       history for which a remote RERL value was reported."
    ::= {rtcpXrHistoryEntry 48 }

rtcpXrHistoryRemoteRERLCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the Remote RERL
       history values (as Remote RERL is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 49 }

rtcpXrHistoryMinRCQ OBJECT-TYPE
    SYNTAX Rfactor 
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call R-CQ for all calls in this
       history for which an R-CQ value was reported."
    ::= {rtcpXrHistoryEntry 50 }

rtcpXrHistoryMaxRCQ OBJECT-TYPE
    SYNTAX Rfactor 
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call R-CQ for all calls in this
       history for which an R-CQ value was reported."
    ::= {rtcpXrHistoryEntry 51 }

rtcpXrHistoryAvgRCQ OBJECT-TYPE
    SYNTAX Rfactor 
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call R-CQ for all calls in this
       history for which an R-CQ value was reported."
    ::= {rtcpXrHistoryEntry 52 }

rtcpXrHistoryRCQCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the R CQ
       history values (as R CQ is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 53 }

rtcpXrHistoryMinRLQ OBJECT-TYPE
    SYNTAX Rfactor 
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call R-LQ for all calls in this
       history for which an R-LQ value was reported."
    ::= {rtcpXrHistoryEntry 54 }
   
rtcpXrHistoryMaxRLQ OBJECT-TYPE
    SYNTAX Rfactor 
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call R-LQ for all calls in this
       history for which an R-LQ value was reported."
    ::= {rtcpXrHistoryEntry 55 }

rtcpXrHistoryAvgRLQ OBJECT-TYPE
    SYNTAX Rfactor 
    UNITS "R factor"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call R-LQ for all calls in this
       history for which an R-LQ value was reported."
    ::= {rtcpXrHistoryEntry 56 }

rtcpXrHistoryRLQCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the R LQ
       history values (as R LQ is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 57 }
   
rtcpXrHistoryMinMOSCQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call MOS-CQ for all calls in this
       history for which a MOS-CQ value was reported."
    ::= {rtcpXrHistoryEntry 58 }

rtcpXrHistoryMaxMOSCQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call MOS-CQ for all calls in this
       history for which a MOS-CQ value was reported."
    ::= {rtcpXrHistoryEntry 59 }

rtcpXrHistoryAvgMOSCQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call MOS-CQ for all calls in this
       history for which a MOS-CQ value was reported."
    ::= {rtcpXrHistoryEntry 60 }

rtcpXrHistoryMOSCQCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the MOS CQ
       history values (as MOS CQ is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 61 }

rtcpXrHistoryMinMOSLQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Minimum of the per-call MOS-LQ for all calls in this
       history for which a MOS-LQ value was reported."
    ::= {rtcpXrHistoryEntry 62 }

rtcpXrHistoryMaxMOSLQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Maximum of the per-call MOS-LQ for all calls in this
       history for which a MOS-LQ value was reported."
    ::= {rtcpXrHistoryEntry 63 }

rtcpXrHistoryAvgMOSLQ OBJECT-TYPE
    SYNTAX ScaledMOSscore
    UNITS "MOS x 10"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Mean of the per-call MOS-LQ for all calls in this
       history for which a MOS-LQ value was reported."
    ::= {rtcpXrHistoryEntry 64 }

rtcpXrHistoryMOSLQCount OBJECT-TYPE
    SYNTAX Counter32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Number of sessions included in the MOS LQ
       history values (as MOS LQ is an optional
       parameter and may not be present on all calls."
    ::= {rtcpXrHistoryEntry 65 }

rtcpXrHistoryCQAlgorithm OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..32))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Call quality algorithm used - if consistent
       for all calls in this history."
    ::= {rtcpXrHistoryEntry 66 }

rtcpXrHistoryReset OBJECT-TYPE
    SYNTAX INTEGER { running (1),
                     stop (2),
                     reset (3)
                    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "Status of this row in the history table.
       Writing a value of 2 to this object MUST cause 
       history updates to be stopped for this row. Writing 
       a value of 3 to this object MUST cause the history 
       row to be reset. 
       Reads MUST return a value of 1 if the row is still
       being updated or 2 if the row update has stopped."
    ::= {rtcpXrHistoryEntry 67 }

--
-- Notifications
--      

rtcpXrVoipThresholdViolation NOTIFICATION-TYPE
    OBJECTS { rtcpXrVoipAlertSeverity, rtcpXrVoipAlertType, 
              rtcpXrVoipAlertInfoType, rtcpXrVoipAlertPointer }
    STATUS current
    DESCRIPTION
        "Notification that voice quality has changed
         Sent immediately when the condition is detected."
    ::= { rtcpXrEvents 1}

rtcpXrEventParam OBJECT IDENTIFIER ::= { rtcpXrEvents 2 }

rtcpXrVoipAlertType OBJECT-TYPE
    SYNTAX SnmpAdminString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Text description of the type of alert.  Where possible,
        this parameter should be populated with the correct
        rtcpXrVoipEntry or rtcpXrVoipHistory description."
    ::= { rtcpXrEventParam 1 }

rtcpXrVoipAlertInfoType OBJECT-TYPE
    SYNTAX INTEGER {  adminStringOnly (1),
                      sessionPointer (2),
                      historyPointer (3)
                   }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
         "Indicates the type of information returned in the
          rtcpXrVoipAlertInfo parameter."
    ::= { rtcpXrEventParam 2 }

rtcpXrVoipAlertPointer OBJECT-TYPE
    SYNTAX RowPointer
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
         "Pointer to the table of call session information to 
         identify the specific call that triggered the alert."
    ::= { rtcpXrEventParam 3 }

rtcpXrVoipAlertSeverity OBJECT-TYPE
    SYNTAX ItuPerceivedSeverity
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The severity of the alert as defined in ITU-T X.733 and
        RFC3877."
    REFERENCE
        "See Alarm MIB - RFC3877."
    ::= { rtcpXrEventParam 4 }

--
--  MODULE GROUPS
--
-- There are four types of RTCP XR VoIP Metrics System.
-- 
-- RTCP XR VOIP Metrics Systems MUST implement one of the four
-- identified types of system and SHOULD NOT implement the
-- rtcpXrMinimalCompliance system, which is included only
-- for reasons of compatibility with RFC3611's minimal
-- requirements.
--

       rtcpXrCompliances OBJECT IDENTIFIER ::= { rtcpXrConformance 1 }
       rtcpXrGroups OBJECT IDENTIFIER ::= { rtcpXrConformance 2 }

       rtcpXrFullMetricsCompliance MODULE-COMPLIANCE
           STATUS  current
           DESCRIPTION
               "Describes the requirements for conformance to the
                rtcpXr MIB for VoIP devices that support basic
                reporting."
           MODULE  -- this module
           MANDATORY-GROUPS {  
                              rtcpXrBaseParamGroup,
                              rtcpXrCallQualityGroup
                            }
           ::= { rtcpXrCompliances 1 }

       rtcpXrMetricsAlertsCompliance MODULE-COMPLIANCE
           STATUS  current
           DESCRIPTION
               "Describes the requirements for conformance to the
                rtcpXr MIB for VoIP devices that support reporting
                and alerts."
           MODULE  -- this module
           MANDATORY-GROUPS { 
                              rtcpXrBaseParamGroup,
                              rtcpXrCallQualityGroup,
                              rtcpXrNotificationParmsGroup,
                              rtcpXrNotificationsGroup 
                            }
           ::= { rtcpXrCompliances 2 }

       rtcpXrMetricsHistoryCompliance MODULE-COMPLIANCE
           STATUS  current
           DESCRIPTION
               "Describes the requirements for conformance to the
                rtcpXr MIB for VoIP devices that support reporting,
                call history and alerts."
           MODULE  -- this module
           MANDATORY-GROUPS {  
                              rtcpXrBaseParamGroup,
                              rtcpXrCallQualityGroup,
                              rtcpXrMIBHistoryGroup,
                              rtcpXrNotificationParmsGroup,
                              rtcpXrNotificationsGroup }
           ::= { rtcpXrCompliances 3 }

       rtcpXrHistoryCompliance MODULE-COMPLIANCE
           STATUS  current
           DESCRIPTION
               "Describes the requirements for conformance to the
                rtcpXr MIB for VoIP devices that support only
                call history."
           MODULE  -- this module
           MANDATORY-GROUPS { rtcpXrMIBHistoryGroup
                               }
           ::= { rtcpXrCompliances 4 }

      rtcpXrMinimalCompliance MODULE-COMPLIANCE
           STATUS  current
           DESCRIPTION
               "Describes the minimal requirements for conformance to 
                the rtcpXr MIB - NOT RECOMMENDED."
           MODULE  -- this module
           MANDATORY-GROUPS { 
                              rtcpXrBaseParamGroup
                            }
           ::= { rtcpXrCompliances 5 }

      rtcpXrBaseParamGroup OBJECT-GROUP
           OBJECTS {
                   rtcpXrBaseParamCodecType,
                   rtcpXrBaseParamCodecBitRate,
                   rtcpXrBaseParamFrameDuration,
                   rtcpXrBaseParamFramesPerPacket,
                   rtcpXrBaseParamSampleRate,
                   rtcpXrBaseParamDurationMs,
                   rtcpXrBaseParamNetworkLossRate,
                   rtcpXrBaseParamAvgDiscardRate,
                   rtcpXrBaseParamBurstLossDensity,
                   rtcpXrBaseParamBurstLenMs,
                   rtcpXrBaseParamGapLossDensity,
                   rtcpXrBaseParamGapLenMs,
                   rtcpXrBaseParamAvgOWDelay,
                   rtcpXrBaseParamAvgEndSysDelay,
                   rtcpXrBaseParamNoiseLeveldBm,
                   rtcpXrBaseParamSignalLeveldBm,
                   rtcpXrBaseParamLocalRERLdB,
                   rtcpXrBaseParamRemoteRERLdB,
                   rtcpXrBaseParamPlcType,
                   rtcpXrBaseParamJBuffAdaptMode,
                   rtcpXrBaseParamJBuffAdaptRate,
                   rtcpXrBaseParamJBuffAverageDelay,
                   rtcpXrBaseParamJBuffMaximumDelay,
                   rtcpXrBaseParamJBuffAbsMaxDelay,
                   rtcpXrBaseParamJitterLevel
                   }
           STATUS current
           DESCRIPTION
               "Objects used in rtcpXr VoIP Metrics MIB"
           ::= { rtcpXrGroups 1 }

      rtcpXrCallQualityGroup OBJECT-GROUP
           OBJECTS {
                   rtcpXrCallQualityRCQ,
                   rtcpXrCallQualityRLQ,
                   rtcpXrCallQualityExternalRCQ,
                   rtcpXrCallQualityMOSCQ,
                   rtcpXrCallQualityMOSLQ,
                   rtcpXrCallQualityRLQestAlgorithm,
                   rtcpXrCallQualityRCQestAlgorithm,
                   rtcpXrCallQualityMOSLQEstAlgorithm,
                   rtcpXrCallQualityMOSCQEstAlgorithm
                   }
           STATUS current
           DESCRIPTION
               "Call quality objects used in rtcpXr VoIP Metrics MIB"
           ::= { rtcpXrGroups 2 }

       rtcpXrMIBHistoryGroup OBJECT-GROUP
           OBJECTS {
                   rtcpXrHistoryGroupName,
                   rtcpXrHistoryStartTime,
                   rtcpXrHistoryStopTime,
                   rtcpXrHistoryNumOfSessions,
                   rtcpXrHistoryMinDurationMs,
                   rtcpXrHistoryMaxDurationMs,
                   rtcpXrHistoryAvgDurationMs,
                   rtcpXrHistoryMaxNetworkLossRate,
                   rtcpXrHistoryAvgNetworkLossRate,
                   rtcpXrHistoryMaxDiscardRate,
                   rtcpXrHistoryAvgDiscardRate,
                   rtcpXrHistoryMaxBurstLossDensity,
                   rtcpXrHistoryAvgBurstLossDensity,
                   rtcpXrHistoryMinBurstLenMs,
                   rtcpXrHistoryMaxBurstLenMs,
                   rtcpXrHistoryAvgBurstLenMs,
                   rtcpXrHistoryMaxGapLossDensity,
                   rtcpXrHistoryAvgGapLossDensity,
                   rtcpXrHistoryMinGapLenMs,
                   rtcpXrHistoryMaxGapLenMs,
                   rtcpXrHistoryAvgGapLenMs,
                   rtcpXrHistoryMinOneWayDelay,
                   rtcpXrHistoryMaxOneWayDelay,
                   rtcpXrHistoryAvgOneWayDelay,
                   rtcpXrHistoryOneWayDelayCount,
                   rtcpXrHistoryMinEndSystemDelay,
                   rtcpXrHistoryMaxEndSystemDelay,
                   rtcpXrHistoryAvgEndSystemDelay,
                   rtcpXrHistoryEndSystemDelayCount,
                   rtcpXrHistoryAvgJitterLevel,
                   rtcpXrHistoryMinJitterLevel,
                   rtcpXrHistoryMaxJitterLevel,
                   rtcpXrHistoryMinNoiseLeveldBm,
                   rtcpXrHistoryMaxNoiseLeveldBm,
                   rtcpXrHistoryAvgNoiseLeveldBm,
                   rtcpXrHistoryNoiseLevelCount,
                   rtcpXrHistoryMinSignalLeveldBm,
                   rtcpXrHistoryMaxSignalLeveldBm,
                   rtcpXrHistoryAvgSignalLeveldBm,
                   rtcpXrHistorySignalLevelCount,
                   rtcpXrHistoryMinLocalRERLdB,
                   rtcpXrHistoryMaxLocalRERLdB,
                   rtcpXrHistoryAvgLocalRERLdB,
                   rtcpXrHistoryLocalRERLCount,
                   rtcpXrHistoryMinRemoteRERLdB,
                   rtcpXrHistoryMaxRemoteRERLdB,
                   rtcpXrHistoryAvgRemoteRERLdB,
                   rtcpXrHistoryRemoteRERLCount,
                   rtcpXrHistoryMinRCQ,
                   rtcpXrHistoryMaxRCQ,
                   rtcpXrHistoryAvgRCQ,
                   rtcpXrHistoryRCQCount,
                   rtcpXrHistoryMinRLQ,
                   rtcpXrHistoryMaxRLQ,
                   rtcpXrHistoryAvgRLQ,
                   rtcpXrHistoryRLQCount,
                   rtcpXrHistoryMinMOSCQ,
                   rtcpXrHistoryMaxMOSCQ,
                   rtcpXrHistoryAvgMOSCQ,
                   rtcpXrHistoryMOSCQCount,
                   rtcpXrHistoryMinMOSLQ,
                   rtcpXrHistoryMaxMOSLQ,
                   rtcpXrHistoryAvgMOSLQ,
                   rtcpXrHistoryMOSLQCount,
                   rtcpXrHistoryCQAlgorithm,
                   rtcpXrHistoryReset
                 }
           STATUS current
           DESCRIPTION
               "Objects used in rtcpXr VoIP History MIB"
           ::= { rtcpXrGroups 3 }

       rtcpXrNotificationParmsGroup OBJECT-GROUP
           OBJECTS {
                   rtcpXrVoipAlertSeverity,
                   rtcpXrVoipAlertType,
                   rtcpXrVoipAlertInfoType,
                   rtcpXrVoipAlertPointer
                   }
           STATUS current
           DESCRIPTION
               "Notification parameters emitted by a rtcpXr endpoint."
           ::= { rtcpXrGroups 4 }

       rtcpXrNotificationsGroup NOTIFICATION-GROUP
           NOTIFICATIONS { 
                   rtcpXrVoipThresholdViolation 
                   }
           STATUS current
           DESCRIPTION
               "Notifications emitted by a rtcpXr endpoint."
           ::= { rtcpXrGroups 5 }

   END

RTP-MIB DEFINITIONS ::= BEGIN
IMPORTS
       Counter32, Counter64, Gauge32, mib-2, Integer32,
       MODULE-IDENTITY,
       OBJECT-TYPE, Unsigned32                     FROM SNMPv2-SMI
       InetAddressType, InetAddress,
       InetPortNumber                              FROM INET-ADDRESS-MIB
       RowStatus, TestAndIncr,
       TimeStamp, TruthValue, DateAndTime          FROM SNMPv2-TC
       OBJECT-GROUP, MODULE-COMPLIANCE             FROM SNMPv2-CONF
       Utf8String                                  FROM SYSAPPL-MIB
       InterfaceIndex                              FROM IF-MIB;

rtpMIBV2 MODULE-IDENTITY
    LAST-UPDATED "200602190000Z"  -- 19 February 2006
    ORGANIZATION
            "IETF AVT Working Group
             Email: [email-masked]"
    CONTACT-INFO
            "Alan Clark
            Telchemy
            3360 Martins Farm Rd
            Suwanee, GA 20024
            United States
            Email: [email-masked]

            Amy Pendleton
            Nortel
            2380 Performance Drive
            Richardson, TX  75081
            Email: [email-masked]"

        DESCRIPTION
        "The managed objects of RTP systems.  The MIB is
        structured around three types of information.
        1. General information about RTP sessions such
           as the session address.
        2. Information about RTP streams being sent to
           an RTP session by a particular sender.
        3. Information about RTP streams received on an
           RTP session by a particular receiver from a
           particular sender.
         There are two types of RTP Systems, RTP hosts and
         RTP monitors.  As described below, certain objects
         are unique to a particular type of RTP System.   An
         RTP host may also function as an RTP monitor.
         Refer to RFC 3550, 'RTP: A Transport Protocol for
         Real-Time Applications,' section 3.0, for definitions."
   REVISION     "200602190000Z"  -- 19 February 2006
   DESCRIPTION  "Version 2 of this MIB.
                 Published as draft-....."

::= { mib-2 nnn }

--
-- OBJECTS
--
rtpMIBV2Objects OBJECT IDENTIFIER ::= { rtpMIBV2 1 }
rtpConformance OBJECT IDENTIFIER ::= { rtpMIBV2 2 }

--

-- SESSION NEW INDEX
--
rtpSessionNewIndex OBJECT-TYPE
    SYNTAX          TestAndIncr
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
      "This  object  is  used  to  assign  values  to rtpSessionIndex
       as described in 'Textual Conventions  for  SMIv2'.  For an RTP
       system that supports the creation of rows, the  network manager
       would read the  object,  and  then write the value back in
       the Set that creates a new instance  of rtpSessionEntry.   If
       the  Set  fails with the code 'inconsistentValue,' then the
       process must be repeated; If the Set succeeds, then the object
       is incremented, and the  new  instance  is created according to
       the manager's directions.  However, if the RTP agent is not
       acting as a monitor, only the RTP agent may create conceptual
       rows in the RTP session table."
    ::= { rtpMIBV2Objects 1 }

--
-- SESSION INVERSE TABLE
--
rtpSessionInverseTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RtpSessionInverseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Maps source and destination address to or more rtpSessionIndex values, each
       describing a row in the rtpSessionTable.  This makes it possible
       to retrieve the row(s) in the rtpSessionTable corresponding to a
       given session without having to walk the entire (potentially
       large) table."
    ::= { rtpMIBV2Objects 2 }

rtpSessionInverseEntry OBJECT-TYPE
    SYNTAX          RtpSessionInverseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Each entry corresponds to exactly one entry in the
       rtpSessionTable."
    INDEX { rtpSessionSourceIPaddress, rtpSessionSourceRTPport, 
            rtpSessionDestIPaddress,  rtpSessionDestRTPport,
            rtpSessionIndex }
    ::= { rtpSessionInverseTable 1 }

RtpSessionInverseEntry ::= SEQUENCE {
        rtpSessionInverseStartTime     TimeStamp
        }

rtpSessionInverseStartTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The value of SysUpTime at the time that this row was
       created."
    ::= { rtpSessionInverseEntry 1 }

--
--      SESSION TABLE
--
rtpSessionTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RtpSessionEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
          "There's one entry in rtpSessionTable for each RTP session
          on which packets are being sent, received, and/or
          monitored."
    ::= { rtpMIBV2Objects 3 }

rtpSessionEntry OBJECT-TYPE
    SYNTAX          RtpSessionEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Data in rtpSessionTable uniquely identify an RTP session.  A
       host RTP agent MUST create a read-only row for each session to
       which packets are being sent or received.  Rows MUST be created
       by the RTP Agent at the start of a session when one or more
       senders or receivers are observed.  Rows created by an RTP agent
       MUST be deleted when the session is over and there are no
       rtpRcvrEntry and no rtpSenderEntry for this session.  An RTP
       session SHOULD be monitored to create management information on
       all RTP streams being sent or received when the
       rtpSessionMonitor has the TruthValue of 'true(1)'.  An RTP
       monitor SHOULD permit row creation with the side effect of
       causing the RTP System to join the multicast session for the
       purposes of gathering management information  (additional
       conceptual rows are created in the rtpRcvrTable and
       rtpSenderTable).  Thus, rtpSessionTable rows SHOULD be created
       for RTP session monitoring purposes.  Rows created by a
       management application SHOULD be deleted via SNMP operations by
       management applications.  Rows created by management operations
       are deleted by management operations by setting
       rtpSessionRowStatus to 'destroy(6)'."
    INDEX { rtpSessionIndex }
    ::= { rtpSessionTable 1 }

RtpSessionEntry ::= SEQUENCE {
        rtpSessionCallState              INTEGER,
        rtpSessionIndex                  Integer32,
        rtpSessionSessionIdentifier      OCTET STRING,
        rtpSessionStartTime              DateAndTime,
        rtpSessionStopTime               DateAndTime,
        rtpSessionSourceIPtype           InetAddressType,
        rtpSessionSourceIPaddress        InetAddress,
        rtpSessionSourceRTPport          InetPortNumber,
        rtpSessionSourceRTCPport         InetPortNumber,
        rtpSessionDestIPtype             InetAddressType,
        rtpSessionDestIPaddress          InetAddress,
        rtpSessionDestRTPport            InetPortNumber,
        rtpSessionDestRTCPport           InetPortNumber,
        rtpSessionSrceIdenType           INTEGER,
        rtpSessionSrceIdentifier         OCTET STRING,
        rtpSessionDestIdenType           INTEGER,
        rtpSessionDestIdentifier         OCTET STRING,
        rtpSessionIfIndex                InterfaceIndex,
        rtpSessionMonitor                TruthValue,
        rtpSessionSenderJoins            Counter32,
        rtpSessionReceiverJoins          Counter32,
        rtpSessionByes                   Counter32,
        rtpSessionRowStatus              RowStatus
  
 }

rtpSessionCallState OBJECT-TYPE
    SYNTAX INTEGER { active(1),
                     completed(2)
                    }
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index for this session within the Session ID 
         table. The value of this parameter shall be 2 if the
         session is complete or inactive and 1 if the session
         is still active."
    ::= { rtpSessionEntry 1 }

rtpSessionIndex OBJECT-TYPE
    SYNTAX          Integer32 (1..2147483647)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "The index of the conceptual row which is for SNMP purposes
       only and has no relation to any protocol value.  There is
       no requirement that these rows are created or maintained
       sequentially."
    ::= { rtpSessionEntry 2 }

rtpSessionSessionIdentifier OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Unique identifier for this session.  A billing record
         correlation identifier should be used if available, 
         otherwise an identifier such as SSRC can be used." 
    ::= { rtpSessionEntry 3 }    
    
rtpSessionStartTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Call start time for this call. If the start time is not
         known then this represents the earliest known time associated
         with the call." 
    ::= { rtpSessionEntry 4 }

rtpSessionStopTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Call stop time for this call. If the call is still active 
         then this shall have the value 0.  If the call is complete
         but the time is unknown then this shall have the value of the 
         latest time associated with the call." 
    ::= { rtpSessionEntry 5 }

rtpSessionSourceIPtype OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "IP address type for the originating IP endpoint for this
         RTP stream."
    ::= { rtpSessionEntry 6 }

rtpSessionSourceIPaddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "IP address for the originating IP endpoint for this
         RTP stream."
    ::= { rtpSessionEntry 7 }

rtpSessionSourceRTPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Source UDP port for RTP. A value of 0 indicates
         an unknown port number."
    ::= { rtpSessionEntry 8 }

rtpSessionSourceRTCPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Source UDP port for RTCP. A value of 0 indicates
         an unknown port number."
    ::= { rtpSessionEntry 9 }

rtpSessionDestIPtype OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination IP address type for this session."
    ::= { rtpSessionEntry 10 }

rtpSessionDestIPaddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination IP address for this session."
    ::= { rtpSessionEntry 11 }

rtpSessionDestRTPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination UDP port for RTP. A value of 0 indicates
         an unknown port number."
    ::= { rtpSessionEntry 12 }

rtpSessionDestRTCPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination UDP port for RTCP.A value of 0 indicates
         an unknown port number."
    ::= { rtpSessionEntry 13 }

rtpSessionSrceIdenType  OBJECT-TYPE
    SYNTAX INTEGER {dialedNumber (1),
                    urlID (2),
                    other (3) }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Defines the type of address in parameter
        rtpSessionSourceIdentifier"
    ::= { rtpSessionEntry 14 }

rtpSessionSrceIdentifier OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Alternate identifier to the IP address.  This can be E.164, 
         DN, or URL."
    ::= { rtpSessionEntry 15 }

rtpSessionDestIdenType  OBJECT-TYPE
    SYNTAX INTEGER {dialedNumber (1),
                    urlID (2),
                    other (3) }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Defines the type of address in parameter
         rtpSessionDestIdentifier."
    ::= { rtpSessionEntry 16 }

rtpSessionDestIdentifier OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Alternate identifier to the IP address.  This can be E.164, 
         DN, or URL."
    ::= { rtpSessionEntry 17 }

rtpSessionIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
     "The ifIndex value is set to the corresponding value
      from IF-MIB (See RFC 2233, 'The Interfaces Group MIB using
      SMIv2').  This is the interface that the RTP stream is being sent
      to or received from, or in the case of an RTP Monitor the
      interface that RTCP packets will be received on.  Cannot be
      changed if rtpSessionRowStatus is 'active'."
    ::= { rtpSessionEntry 18 }

rtpSessionMonitor OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION

      "Boolean, Set to 'true(1)' if remote senders or receivers in
       addition to the local RTP System are to be monitored using RTCP.
       RTP Monitors MUST initialize to 'true(1)' and RTP Hosts SHOULD
       initialize this 'false(2)'.  Note that because 'host monitor'
       systems are receiving RTCP from their remote participants they
       MUST set this value to 'true(1)'."
    ::= { rtpSessionEntry 19 }

rtpSessionSenderJoins OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The number of senders that have been observed to have
       joined the session since this conceptual row was created
       (rtpSessionStartTime).  A sender 'joins' an RTP
       session by sending to it.  Senders that leave and then
       re-join following an RTCP BYE (see RFC 3550, 'RTP: A
       Transport Protocol for Real-Time Applications,' sec. 6.6)
       or session timeout may be counted twice.  Every time a new
       RTP sender is detected either using RTP or RTCP, this counter
       is incremented."
    ::= { rtpSessionEntry 20 }

rtpSessionReceiverJoins OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The number of receivers that have been been observed to
       have joined this session since this conceptual row was
       created (rtpSessionStartTime).  A receiver 'joins' an RTP
       session by sending RTCP Receiver Reports to the session.
       Receivers that leave and then re-join following an RTCP BYE
       (see RFC 3550, 'RTP: A Transport Protocol for Real-Time
       Applications,' sec. 6.6) or session timeout may be counted
       twice."
    ::= { rtpSessionEntry 21 }

rtpSessionByes OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "A count of RTCP BYE (see RFC 3550, 'RTP: A Transport
       Protocol for Real-Time Applications,' sec. 6.6) messages
       received by this entity."
    ::= { rtpSessionEntry 22 }

rtpSessionRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
      "Value of 'active' when RTP or RTCP messages are being
       sent or received by an RTP System.  A newly-created
       conceptual row must have the all read-create objects
       initialized before becoming 'active'.
       A conceptual row that is in the 'notReady' or 'notInService'
       state MAY be removed after 5  minutes."
    ::= { rtpSessionEntry 23 }

--
-- SENDER INVERSE TABLE
--
rtpSenderInverseTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RtpSenderInverseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Maps rtpSenderIPAddress, rtpSessionIndex, to the rtpSenderSSRC
       index of the rtpSenderTable.  This table allows management
       applications to find entries sorted by Sender IP address rather than
       sorted by rtpSessionIndex.  Given the rtpSessionDomain and
       rtpSenderAddr, a set of rtpSessionIndex and rtpSenderSSRC values
       can be returned from a tree walk.  When rtpSessionIndex is
       specified in the SNMP Get-Next operations, one or more
       rtpSenderSSRC values may be returned."
    ::= { rtpMIBV2Objects 4 }

rtpSenderInverseEntry OBJECT-TYPE
    SYNTAX          RtpSenderInverseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Each entry corresponds to exactly one entry in the
       rtpSenderTable - the entry containing the index pair,
       rtpSessionIndex, rtpSenderSSRC."
    INDEX { rtpSenderIPaddress, rtpSenderRTPport, rtpSessionIndex,
            rtpSenderSSRC }
    ::= { rtpSenderInverseTable 1 }

RtpSenderInverseEntry ::= SEQUENCE {
        rtpSenderInverseStartTime     TimeStamp
        }

rtpSenderInverseStartTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The value of SysUpTime at the time that this row was
       created."
    ::= { rtpSenderInverseEntry 1 }

--
--  SENDERS TABLE
--
rtpSenderTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RtpSenderEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Table of information about a sender or senders to an RTP
       Session. RTP sending hosts MUST have an entry in this table
       for each stream being sent.  RTP receiving hosts MAY have an
       entry in this table for each sending stream being received by
       this host.  RTP monitors MUST create an entry for each observed
       sender to a multicast RTP Session as a side-effect when a
       conceptual row in the rtpSessionTable is made 'active' by a
       manager."
    ::= { rtpMIBV2Objects 5 }

rtpSenderEntry OBJECT-TYPE
    SYNTAX          RtpSenderEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Each entry contains information from a single RTP Sender
       Synchronization Source (SSRC, see RFC 3550 'RTP: A Transport
       Protocol for Real-Time Applications' sec.6).  The session is
       identified to the the SNMP entity by rtpSessionIndex.
       Rows are removed by the RTP agent when a BYE is received
       from the sender or when the sender times out (see RFC
       3550, Sec. 6.2.1) or when the rtpSessionEntry is deleted."
    INDEX { rtpSessionIndex, rtpSenderSSRC }
    ::= { rtpSenderTable 1 }

RtpSenderEntry ::= SEQUENCE {
        rtpSenderSSRC              Unsigned32,
        rtpSenderCNAME             Utf8String,
        rtpSenderIPtype            InetAddressType,
        rtpSenderIPaddress         InetAddress,
        rtpSenderRTPport           InetPortNumber,
        rtpSenderRTCPport          InetPortNumber,
        rtpSenderPackets           Counter64,
        rtpSenderOctets            Counter64,
        rtpSenderTool              Utf8String,
        rtpSenderSRs               Counter32,
        rtpSenderSRTime            TimeStamp,
        rtpSenderPT                Integer32,
        rtpSenderStartTime         TimeStamp
        }

rtpSenderSSRC OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "The RTP SSRC, or synchronization source identifier of the
       sender.  The RTP session address plus an SSRC uniquely
       identify a sender to an RTP session (see RFC 3550, 'RTP: A
       Transport Protocol for Real-Time Applications' sec.3)."
    ::= { rtpSenderEntry 1 }

rtpSenderCNAME OBJECT-TYPE
    SYNTAX          Utf8String
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The RTP canonical name of the sender."
    ::= { rtpSenderEntry 2 }

rtpSenderIPtype OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "IP address type for the originating IP endpoint for this
         RTP stream."
    ::= { rtpSenderEntry 3 }

rtpSenderIPaddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "IP address for the originating IP endpoint for this
         RTP stream."
    ::= { rtpSenderEntry 4 }

rtpSenderRTPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Source UDP port for RTP. A value of 0 indicates
         an unknown port number."
    ::= { rtpSenderEntry 5 }

rtpSenderRTCPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Source UDP port for RTCP. A value of 0 indicates
         an unknown port number."
    ::= { rtpSenderEntry 6 }

rtpSenderPackets OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Count of RTP packets sent by this sender, or observed by

       an RTP monitor, since rtpSenderStartTime."
    ::= { rtpSenderEntry 7 }

rtpSenderOctets OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Count of non-header RTP octets sent by this sender, or observed
       by an RTP monitor, since rtpSenderStartTime."
    ::= { rtpSenderEntry 8 }

rtpSenderTool OBJECT-TYPE
    SYNTAX          Utf8String (SIZE(0..127))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Name of the application program source of the stream."
    ::= { rtpSenderEntry 9 }

rtpSenderSRs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "A count of the number of RTCP Sender Reports that have
       been sent from this sender, or observed if the RTP entity
       is a monitor, since rtpSenderStartTime."
    ::= { rtpSenderEntry 10 }

rtpSenderSRTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "rtpSenderSRTime is the value of SysUpTime at the time that
       the last SR was received from this sender, in the case of a
       monitor or receiving host.  Or sent by this sender, in the
       case of a sending host."
    ::= { rtpSenderEntry 11 }

rtpSenderPT OBJECT-TYPE
    SYNTAX          Integer32(0..127)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Payload type from the RTP header of the most recently received
       RTP Packet (see RFC 3550, 'RTP: A Transport Protocol for

       Real-Time Applications' sec. 5)."
    ::= { rtpSenderEntry 12 }

rtpSenderStartTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The value of SysUpTime at the time that this row was
       created."
    ::= { rtpSenderEntry 13 }

--
-- RECEIVER INVERSE TABLE
--
rtpRcvrInverseTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RtpRcvrInverseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Maps rtpRcvrIPaddress and rtpSessionIndex to the rtpRcvrSRCSSRC and
       rtpRcvrSSRC indexes of the rtpRcvrTable.  This table allows
       management applications to find entries sorted by rtpRcvrIPaddress
       rather than by rtpSessionIndex. Given rtpSessionDomain and
       rtpRcvrIPaddress, a set of rtpSessionIndex, rtpRcvrSRCSSRC, and
       rtpRcvrSSRC values can be returned from a tree walk.  When
       rtpSessionIndex is specified in SNMP Get-Next operations, one or
       more rtpRcvrSRCSSRC and rtpRcvrSSRC pairs may be returned."
    ::= { rtpMIBV2Objects 6 }

rtpRcvrInverseEntry OBJECT-TYPE
    SYNTAX          RtpRcvrInverseEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Each entry corresponds to exactly one entry in the
       rtpRcvrTable - the entry containing the index pair,
       rtpSessionIndex, rtpRcvrSSRC."
    INDEX { rtpRcvrIPaddress,  rtpRcvrRTPport, rtpSessionIndex,
            rtpRcvrSRCSSRC, rtpRcvrSSRC }
    ::= { rtpRcvrInverseTable 1 }

RtpRcvrInverseEntry ::= SEQUENCE {
        rtpRcvrInverseStartTime     TimeStamp
        }

rtpRcvrInverseStartTime OBJECT-TYPE
    SYNTAX          TimeStamp

    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The value of SysUpTime at the time that this row was
       created."
    ::= { rtpRcvrInverseEntry 1 }

--
--  RECEIVERS TABLE
--
rtpRcvrTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RtpRcvrEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Table of information about a receiver or receivers of RTP
       session data. RTP hosts that receive RTP session packets
       MUST create an entry in this table for that receiver/sender
       pair.  RTP hosts that send RTP session packets MAY create
       an entry in this table for each receiver to their stream
       using RTCP feedback from the RTP group.  RTP monitors
       create an entry for each observed RTP session receiver as
       a side effect when a conceptual row in the rtpSessionTable
       is made 'active' by a manager."
    ::= { rtpMIBV2Objects 7 }

rtpRcvrEntry OBJECT-TYPE
    SYNTAX          RtpRcvrEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
      "Each entry contains information from a single RTP
       Synchronization Source that is receiving packets from the
       sender identified by rtpRcvrSRCSSRC (SSRC, see RFC 3550,
       'RTP: A Transport Protocol for Real-Time Applications'
       sec.6).  The session is identified to the the RTP Agent entity
       by rtpSessionIndex.  Rows are removed by the RTP agent when
       a BYE is received from the sender or when the sender times
       out (see RFC 3550, Sec. 6.2.1) or when the rtpSessionEntry is
       deleted."
    INDEX { rtpSessionIndex, rtpRcvrSRCSSRC, rtpRcvrSSRC }
    ::= { rtpRcvrTable 1 }

RtpRcvrEntry ::= SEQUENCE {
        rtpRcvrSRCSSRC        Unsigned32,
        rtpRcvrSSRC           Unsigned32,
        rtpRcvrCNAME          Utf8String,
        rtpRcvrIPtype         InetAddressType,
        rtpRcvrIPaddress      InetAddress,
        rtpRcvrRTPport        InetPortNumber,
        rtpRcvrRTCPport       InetPortNumber,
        rtpRcvrRTT            Gauge32,
        rtpRcvrLostPackets    Counter64,
        rtpRcvrJitter         Gauge32,
        rtpRcvrTool           Utf8String,
        rtpRcvrRRs            Counter32,
        rtpRcvrRRTime         TimeStamp,
        rtpRcvrPT             Integer32,
        rtpRcvrPackets        Counter64,
        rtpRcvrOctets         Counter64,
        rtpRcvrStartTime      TimeStamp
        }

rtpRcvrSRCSSRC OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
      "The RTP SSRC, or synchronization source identifier of the
       sender.  The RTP session address plus an SSRC uniquely
       identify a sender or receiver of an RTP stream (see RFC
       3550, 'RTP:  A Transport Protocol for Real-Time
       Applications' sec.3)."
    ::= { rtpRcvrEntry 1 }

rtpRcvrSSRC OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
      "The RTP SSRC, or synchronization source identifier of the
       receiver.  The RTP session address plus an SSRC uniquely
       identify a receiver of an RTP stream (see RFC 3550, 'RTP:
       A Transport Protocol for Real-Time Applications' sec.3)."
    ::= { rtpRcvrEntry 2 }

rtpRcvrCNAME OBJECT-TYPE
    SYNTAX       Utf8String
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "The RTP canonical name of the receiver."
    ::= { rtpRcvrEntry 3 }

rtpRcvrIPtype OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination IP address type for this session."
    ::= { rtpRcvrEntry 4 }

rtpRcvrIPaddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination IP address for this session."
    ::= { rtpRcvrEntry 5 }

rtpRcvrRTPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination UDP port for RTP. A value of 0 indicates
         an unknown port number."
    ::= { rtpRcvrEntry 6 }

rtpRcvrRTCPport OBJECT-TYPE
    SYNTAX InetPortNumber
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Destination UDP port for RTCP.A value of 0 indicates
         an unknown port number."
    ::= { rtpRcvrEntry 7 }

rtpRcvrRTT OBJECT-TYPE
    SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "The round trip time measurement taken by the source of the
       RTP stream based on the algorithm described on sec. 6 of
       RFC 3550, 'RTP: A Transport Protocol for Real-Time
       Applications.'  This algorithm can produce meaningful
       results when the RTP agent has the same clock as the stream
       sender (when the RTP monitor is also the sending host for the
       particular receiver).  Otherwise, the entity should return
       'noSuchInstance' in response to queries against rtpRcvrRTT."
    ::= { rtpRcvrEntry 8 }

rtpRcvrLostPackets OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "A count of RTP  packets lost as observed by this receiver
       since rtpRcvrStartTime."
    ::= { rtpRcvrEntry 9 }

rtpRcvrJitter OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "An estimate of delay variation as observed by this
       receiver.  (see RFC 3550, 'RTP: A Transport Protocol
       for Real-Time Applications' sec.6.3.1 and A.8)."
    ::= { rtpRcvrEntry 10 }

rtpRcvrTool OBJECT-TYPE
    SYNTAX          Utf8String (SIZE(0..127))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Name of the application program source of the stream."
    ::= { rtpRcvrEntry 11 }

rtpRcvrRRs OBJECT-TYPE
    SYNTAX          Counter32

    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "A count of the number of RTCP Receiver Reports that have
       been sent from this receiver, or observed if the RTP entity
       is a monitor, since rtpRcvrStartTime."
    ::= { rtpRcvrEntry 12 }

rtpRcvrRRTime OBJECT-TYPE
    SYNTAX         TimeStamp
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
      "rtpRcvrRRTime is the value of SysUpTime at the time that the
       last RTCP Receiver Report was received from this receiver, in
       the case of a monitor or RR receiver (the RTP Sender).  It is
       the  value of SysUpTime at the time that the last RR was sent by
       this receiver in the case of an RTP receiver sending the RR."
    ::= { rtpRcvrEntry 13 }

rtpRcvrPT OBJECT-TYPE
    SYNTAX          Integer32(0..127)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Static or dynamic payload type from the RTP header (see
       RFC 3550, 'RTP: A Transport Protocol for Real-Time
       Applications' sec. 5)."
    ::= { rtpRcvrEntry 14 }

rtpRcvrPackets OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Count of RTP packets received by this RTP host receiver
       since rtpRcvrStartTime."
    ::= { rtpRcvrEntry 15 }

rtpRcvrOctets OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "Count of non-header RTP octets received by this receiving RTP
       host since rtpRcvrStartTime."
    ::= { rtpRcvrEntry 16 }

rtpRcvrStartTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
      "The value of SysUpTime at the time that this row was
       created."
    ::= { rtpRcvrEntry 17 }

--
--  MODULE GROUPS
--
--
-- There are two types of RTP Systems, RTP hosts and RTP Monitors.
-- Thus there are three kinds of objects: 1) Objects common to both
-- kinds of systems, 2) Objects unique to RTP Hosts and 3) Objects
-- unique to RTP Monitors.  There is a fourth group, 4) Objects that
-- SHOULD be implemented by Multicast hosts and RTP Monitors

rtpGroups OBJECT IDENTIFIER ::= { rtpConformance 1 }
rtpSystemGroup      OBJECT-GROUP
    OBJECTS         {
                    rtpSessionSessionIdentifier,
                    rtpSessionStartTime,
                    rtpSessionStopTime,
                    rtpSessionDestIPtype,
                    rtpSessionDestIPaddress,
                    rtpSessionDestRTPport,
                    rtpSessionDestRTCPport,
                    rtpSessionSrceIdenType,
                    rtpSessionSrceIdentifier,
                    rtpSessionDestIdenType,
                    rtpSessionDestIdentifier,
                    rtpSessionIfIndex,
                    rtpSessionSenderJoins,
                    rtpSessionReceiverJoins,
                    rtpSessionStartTime,
                    rtpSessionByes,
                    rtpSessionMonitor,
                    rtpSenderCNAME,
                    rtpSenderIPtype,
                    rtpSenderIPaddress,
                    rtpSenderRTPport,
                    rtpSenderRTCPport,
                    rtpSenderPackets,
                    rtpSenderOctets,
                    rtpSenderTool,
                    rtpSenderSRs,
                    rtpSenderSRTime,
                    rtpSenderStartTime,
                    rtpRcvrCNAME,
                    rtpRcvrIPtype,
                    rtpRcvrIPaddress,
                    rtpRcvrRTPport,
                    rtpRcvrRTCPport,
                    rtpRcvrLostPackets,
                    rtpRcvrJitter,
                    rtpRcvrTool,
                    rtpRcvrRRs,
                    rtpRcvrRRTime,
                    rtpRcvrStartTime
                    }
    STATUS          current

    DESCRIPTION
        "Objects available to all RTP Systems."
    ::= { rtpGroups 1 }

rtpHostGroup    OBJECT-GROUP
    OBJECTS     {
                rtpSessionSourceIPtype,
                rtpSessionSourceIPaddress,
                rtpSessionSourceRTPport,
                rtpSessionSourceRTCPport,
                rtpSenderPT,
                rtpRcvrPT,
                rtpRcvrRTT,
                rtpRcvrOctets,
                rtpRcvrPackets
                }
    STATUS      current
    DESCRIPTION
           "Objects that are available to RTP Host systems, but may not
            be available to RTP Monitor systems."
    ::= { rtpGroups 2 }

rtpMonitorGroup OBJECT-GROUP
    OBJECTS     {
                rtpSessionNewIndex,
                rtpSessionRowStatus
                }
    STATUS      current
    DESCRIPTION
        "Objects used to create rows in the RTP Session Table.  These
        objects are not needed if the system does not create rows."
    ::= { rtpGroups 3 }

rtpInverseGroup OBJECT-GROUP
    OBJECTS     {
                rtpSessionInverseStartTime,
                rtpSenderInverseStartTime,
                rtpRcvrInverseStartTime
                }
    STATUS      current
    DESCRIPTION
            "Objects used in the Inverse Lookup Tables."
    ::= { rtpGroups 4 }

--
--  Compliance
--
rtpCompliances OBJECT IDENTIFIER ::= { rtpConformance 2 }

rtpHostCompliance MODULE-COMPLIANCE
    STATUS          current

    DESCRIPTION
            "Host implementations MUST comply."
    MODULE           RTP-MIB
    MANDATORY-GROUPS {
                     rtpSystemGroup,
                     rtpHostGroup
                     }
    GROUP            rtpMonitorGroup
    DESCRIPTION
        "Host systems my optionally support row creation and deletion.
         This would allow an RTP Host system to act as an RTP Monitor."
    GROUP            rtpInverseGroup
    DESCRIPTION
        "Multicast RTP Systems SHOULD implement the optional
         tables."
        OBJECT  rtpSessionNewIndex
            MIN-ACCESS not-accessible
                DESCRIPTION
                 "RTP system implementations support of
                  row creation and deletion is OPTIONAL so
                  implementation of this object is OPTIONAL."
        OBJECT  rtpSessionDestIPtype
            MIN-ACCESS read-only
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionDestIPaddress
            MIN-ACCESS read-only
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionDestRTPport
            MIN-ACCESS read-only
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionDestRTCPport
            MIN-ACCESS read-only
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionIfIndex
            MIN-ACCESS read-only
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionRowStatus
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionInverseStartTime
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Multicast RTP Systems SHOULD implement the optional
                tables."

        OBJECT  rtpSenderInverseStartTime
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Multicast RTP Systems SHOULD implement the optional
                tables."
        OBJECT  rtpRcvrInverseStartTime
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Multicast RTP Systems SHOULD implement the optional
                tables."
    ::= { rtpCompliances 1 }

rtpMonitorCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
          "Monitor implementations must comply.  RTP Monitors are not
          required to support creation or deletion."
    MODULE           RTP-MIB
    MANDATORY-GROUPS     {
                         rtpSystemGroup,
                         rtpMonitorGroup
                         }
    GROUP                rtpHostGroup
    DESCRIPTION
        "Monitor implementations may not have access to values in the
         rtpHostGroup."
    GROUP                rtpInverseGroup
    DESCRIPTION
        "Multicast RTP Systems SHOULD implement the optional
         tables."
       OBJECT  rtpSessionSourceIPtype
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor sourcing of RTP or RTCP data packets
                is OPTIONAL and implementation of this object is
                OPTIONAL."
       OBJECT  rtpSessionSourceIPaddress
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor sourcing of RTP or RTCP data packets
                is OPTIONAL and implementation of this object is
                OPTIONAL."
       OBJECT  rtpSessionSourceRTPport
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor sourcing of RTP or RTCP data packets
                is OPTIONAL and implementation of this object is
                OPTIONAL."
       OBJECT  rtpSessionSourceRTCPport
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor sourcing of RTP or RTCP data packets
                is OPTIONAL and implementation of this object is
                OPTIONAL."
        OBJECT  rtpRcvrPT
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor systems may not support
                retrieval of the RTP Payload Type from the RTP
                header (and may receive RTCP messages only).  When
                queried for the payload type information"
        OBJECT  rtpSenderPT
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor systems may not support
                retrieval of the RTP Payload Type from the RTP

                header (and may receive RTCP messages only).  When
                queried for the payload type information."
        OBJECT  rtpRcvrOctets
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor systems may receive only the RTCP messages
                and not the RTP messages that contain the octet count
                of the RTP message.  Thus implementation of this
                object is OPTIONAL"
        OBJECT  rtpRcvrPackets
            MIN-ACCESS not-accessible
              DESCRIPTION
               "RTP monitor systems may receive only the RTCP messages
                and not the RTP messages that contain the octet count
                of the RTP message.  Thus implementation of this
                object is OPTIONAL."
        OBJECT  rtpSessionIfIndex
            MIN-ACCESS read-only
              DESCRIPTION
               "Row creation and deletion is OPTIONAL so
                read-create access to this object is OPTIONAL."
        OBJECT  rtpSessionInverseStartTime
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Multicast RTP Systems SHOULD implement the optional
                tables."
        OBJECT  rtpSenderInverseStartTime
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Multicast RTP Systems SHOULD implement the optional
                tables."
        OBJECT  rtpRcvrInverseStartTime
            MIN-ACCESS not-accessible
              DESCRIPTION
               "Multicast RTP Systems SHOULD implement the optional
                tables."
    ::= { rtpCompliances 2 }
END
_______________________________________________
Audio/Video Transport Working Group
[email-masked]
https://www1.ietf.org/mailman/listinfo/avt