--------------------------------------------------------------------------------
-- ACMEPACKET-CODEC-MIB:  Acme Packet codec MIB file
--
-- February 2008
--
-- Copyright (c) by Acme Packet, Inc.
-- All rights reserved.
--------------------------------------------------------------------------------
-- This MIB provides a means to gather codec and transcoding information 
-- generated by Acme Packet Session Router and Session Director
-- 

APCODEC-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
	Integer32, Counter32, Gauge32
					FROM SNMPv2-SMI
	DisplayString
					FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
					FROM SNMPv2-CONF
	acmepacketMgmt			FROM ACMEPACKET-SMI
	apSigRealmStatsEntry		FROM APSYSMGMT-MIB
	TEXTUAL-CONVENTION		FROM SNMPv2-TC
	ApPercentage                    FROM ACMEPACKET-TC;

apCodecModule	MODULE-IDENTITY
	       LAST-UPDATED     "201207160000Z"
   	       ORGANIZATION     "Acme Packet, Inc"
	       CONTACT-INFO
			"           	Customer Service
		 	Postal:		Acme Packet, Inc
					100 Crosby Drive 
					Bedford, MA 01730
					US
		    	Tel:		1-781-328-4400
		 	E-mail:		support@acmepacket.com"	
		DESCRIPTION
			"The codec and transcoding MIB for Acme Packet"

         	REVISION     "201207160000Z"
    		DESCRIPTION
			"Updated contact information."
        	REVISION     "201206221000Z"
	        DESCRIPTION
			" adding global transcoding stats"
	        ::= { acmepacketMgmt 7 }

apCodecMIBObjects  OBJECT IDENTIFIER ::= { apCodecModule 1 }

-- Codec realm stats table
apCodecRealmStatsTable OBJECT-TYPE
        SYNTAX  	SEQUENCE OF ApCodecRealmStatsEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "The table of codec statistics per-realm.  The table provides
		additional statistics augmenting the apSigRealmStatsTable."
        ::= { apCodecMIBObjects 1 }

apCodecRealmStatsEntry OBJECT-TYPE
        SYNTAX  	ApCodecRealmStatsEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "Additional per-realm statistics for codecs"
        AUGMENTS	{ apSigRealmStatsEntry }
        ::= { apCodecRealmStatsTable 1 }


ApCodecRealmStatsEntry ::=
        SEQUENCE {
                apCodecRealmCountOther  	Counter32,
                apCodecRealmCountPCMU		Counter32,
                apCodecRealmCountPCMA		Counter32,
                apCodecRealmCountG722		Counter32,
                apCodecRealmCountG723		Counter32,
                apCodecRealmCountG726-16	Counter32,
                apCodecRealmCountG726-24	Counter32,
                apCodecRealmCountG726-32	Counter32,
                apCodecRealmCountG726-40	Counter32,
                apCodecRealmCountG728		Counter32,
                apCodecRealmCountG729		Counter32,
                apCodecRealmCountGSM		Counter32,
                apCodecRealmCountILBC		Counter32,
                apCodecRealmCountAMR		Counter32,
		apCodecRealmCountEVRC		Counter32,
		apCodecRealmCountH261		Counter32,
                apCodecRealmCountH263		Counter32,
                apCodecRealmCountT38		Counter32
		}
	
apCodecRealmCountOther OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to a codec not defined in this table."
        ::= { apCodecRealmStatsEntry 1 }

apCodecRealmCountPCMU OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the PCMU codec."
        ::= { apCodecRealmStatsEntry 2 }

apCodecRealmCountPCMA OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the PCMA codec."
        ::= { apCodecRealmStatsEntry 3 }

apCodecRealmCountG722 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G722 codec."
        ::= { apCodecRealmStatsEntry 4 }

apCodecRealmCountG723 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G723 codec."
        ::= { apCodecRealmStatsEntry 5 }

apCodecRealmCountG726-16 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G726-16 codec."
        ::= { apCodecRealmStatsEntry 6 }

apCodecRealmCountG726-24 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G726-24 codec."
        ::= { apCodecRealmStatsEntry 7 }

apCodecRealmCountG726-32 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G726-32 codec."
        ::= { apCodecRealmStatsEntry 8 }

apCodecRealmCountG726-40 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G726-40 codec."
        ::= { apCodecRealmStatsEntry 9 }

apCodecRealmCountG728 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G728 codec."
        ::= { apCodecRealmStatsEntry 10 }

apCodecRealmCountG729 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the G729 codec."
        ::= { apCodecRealmStatsEntry 11 }

apCodecRealmCountGSM OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the GSM codec."
        ::= { apCodecRealmStatsEntry 12 }

apCodecRealmCountILBC OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the iLBC codec."
        ::= { apCodecRealmStatsEntry 13 }
    
apCodecRealmCountAMR OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the AMR codec."
        ::= { apCodecRealmStatsEntry 14 }

apCodecRealmCountEVRC OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the EVRC codec."
        ::= { apCodecRealmStatsEntry 15 }

apCodecRealmCountH261 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the H261 codec."
        ::= { apCodecRealmStatsEntry 16 }

apCodecRealmCountH263 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the H263 codec."
        ::= { apCodecRealmStatsEntry 17 }

apCodecRealmCountT38 OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The count of SDP media streams received in the realm
		which negotiated to the T.38 codec."
        ::= { apCodecRealmStatsEntry 18 }

-- Transcoding MIBs
apCodecTranscodingMIBObjects OBJECT IDENTIFIER ::= { apCodecModule 2 }

-- Transcoding realm stats table
apCodecTranscodingRealmStatsTable OBJECT-TYPE
        SYNTAX  	SEQUENCE OF ApCodecTranscodingRealmStatsEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "The table of transcoding statistics per-realm.  The table
		provides additional statistics augmenting the
		apSigRealmStatsTable."
        ::= { apCodecTranscodingMIBObjects 1 }

apCodecTranscodingRealmStatsEntry OBJECT-TYPE
        SYNTAX  	ApCodecTranscodingRealmStatsEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "Additional per-realm statistics for transcoding"
        AUGMENTS	{ apSigRealmStatsEntry }
        ::= { apCodecTranscodingRealmStatsTable 1 }


ApCodecTranscodingRealmStatsEntry ::=
        SEQUENCE {
                apCodecRealmSessionsTransparent		Counter32,
                apCodecRealmSessionsTransrated		Counter32,
                apCodecRealmSessionsTranscoded		Counter32
		}
	
apCodecRealmSessionsTransparent OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "Number of sessions in the realm that did not use any
		DSP resources for transcoding or transrating."
        ::= { apCodecTranscodingRealmStatsEntry 1 }

apCodecRealmSessionsTransrated OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "Number of sessions in the realm that had a common
		codec but used DSP resources to modify packetizaton rate."
        ::= { apCodecTranscodingRealmStatsEntry 2 }

apCodecRealmSessionsTranscoded OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "Number of sessions in the realm that had used DSP
		resources to transcode between codecs."
        ::= { apCodecTranscodingRealmStatsEntry 3 }

ApCodecDigitTypes ::= TEXTUAL-CONVENTION
	STATUS	current
	DESCRIPTION
	       	"Digit types in codec transcoding"
	SYNTAX	INTEGER {
			unknown(0),
			none(1),
			inband(2),
			rfc2833(3),
			noneDual(4),
                        inbandTrans(5),
			inbandDual(6),
			rfc2833Trans(7),
			rfc2833Dual(8)
			}

apCodecTranscodingResourceMIBObjects  OBJECT IDENTIFIER 
	::= { apCodecTranscodingMIBObjects 2 }


apCodecTranscodingResourcesTotal OBJECT-TYPE
        SYNTAX		Integer32 (0..2147483647)
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "Total number of transcoding resources."
        ::= { apCodecTranscodingResourceMIBObjects 1 }

apCodecTranscodingResourcesCurrent OBJECT-TYPE
        SYNTAX		Gauge32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "Number of transcoding resources currently in-use."
        ::= { apCodecTranscodingResourceMIBObjects 2 }

apCodecTranscodingResourcesHigh OBJECT-TYPE
        SYNTAX		Counter32
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The highest number of transcoding resources in-use in the past."
        ::= { apCodecTranscodingResourceMIBObjects 3 }

apCodecTranscodingInUsePercentCurrent OBJECT-TYPE
        SYNTAX		ApPercentage
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The percentage of transcoding resources currently in-use. 
		The algorithm considers actual resources the current codec transcoding consumed."
        ::= { apCodecTranscodingResourceMIBObjects 4 }

apCodecTranscodingInUsePercentHigh OBJECT-TYPE
        SYNTAX		ApPercentage
        MAX-ACCESS	read-only
        STATUS		current
        DESCRIPTION
                "The highest percentage number of transcoding resources in-use in the past."
        ::= { apCodecTranscodingResourceMIBObjects 5 }

apCodecTable OBJECT-TYPE
        SYNTAX  	SEQUENCE OF ApCodecEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "The table of supported codecs."
        ::= { apCodecTranscodingMIBObjects 3 }

apCodecEntry OBJECT-TYPE
        SYNTAX  	ApCodecEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "supported codec."
        INDEX	{ apCodecIndex }
        ::= { apCodecTable 1 }


ApCodecEntry ::=
        SEQUENCE {
                apCodecIndex			Integer32,
                apCodecName				DisplayString
		}
	
apCodecIndex		OBJECT-TYPE
        SYNTAX			Integer32 (0..2147483647)
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "An integer for the sole purpose of indexing the codec entry."
	::= { apCodecEntry 1 }

apCodecName 		OBJECT-TYPE
	SYNTAX 			DisplayString (SIZE (0..255))
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
	    "The codec name."
	::= { apCodecEntry 2 }

apCodecPairStatsTable OBJECT-TYPE
        SYNTAX  	SEQUENCE OF ApCodecPairStatsEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "The table of codec-pairs being supported."
        ::= { apCodecTranscodingMIBObjects 4 }

apCodecPairStatsEntry OBJECT-TYPE
        SYNTAX  	ApCodecPairStatsEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "statistics per transcoding codec pair. In a codec pair, 
		the transcoding is two directional. To avoid duplication, 
		the rule is that the end point A is the one with 
		smaller or equal apCodecIndex."
        INDEX	{ 
		apCodecPairAIndex, 
		apCodecPairBIndex, 
		apCodecPairAPValue, 
		apCodecPairBPValue, 
		apCodecPairADigitType, 
		apCodecPairBDigitType }
        ::= { apCodecPairStatsTable 1 }


ApCodecPairStatsEntry ::=
        SEQUENCE {
                apCodecPairAIndex			Integer32,
                apCodecPairBIndex			Integer32,
                apCodecPairAPValue			Integer32,
                apCodecPairBPValue			Integer32,
                apCodecPairADigitType			ApCodecDigitTypes,
                apCodecPairBDigitType			ApCodecDigitTypes,
                apCodecPairTranscodingCurrent		Gauge32,
		apCodecPairTranscodingHigh		Counter32
		}
	
apCodecPairAIndex		OBJECT-TYPE
        SYNTAX			Integer32
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "The index of the first codec in the pair."
	::= { apCodecPairStatsEntry 1 }

apCodecPairBIndex		OBJECT-TYPE
        SYNTAX			Integer32
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "The index of the second codec in the pair."
	::= { apCodecPairStatsEntry 2 }

apCodecPairAPValue		OBJECT-TYPE
        SYNTAX			Integer32 (0..2147483647)
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "The p value in the end point A. A value of zero
	    indicates the value is not provided."
	::= { apCodecPairStatsEntry 3 }

apCodecPairBPValue		OBJECT-TYPE
        SYNTAX			Integer32 (0..2147483647)
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "The p value in the end point B. A value of zero
	    indicates the value is not provided."
	::= { apCodecPairStatsEntry 4 }

apCodecPairADigitType		OBJECT-TYPE
        SYNTAX			ApCodecDigitTypes
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "The digit type index in the end point A."
	::= { apCodecPairStatsEntry 5 }

apCodecPairBDigitType		OBJECT-TYPE
        SYNTAX			ApCodecDigitTypes
        MAX-ACCESS		not-accessible
        STATUS			current
        DESCRIPTION
	    "The digit type index in the end point B."
	::= { apCodecPairStatsEntry 6 }

apCodecPairTranscodingCurrent	OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS 		read-only
	STATUS			current
	DESCRIPTION
	    "The number of transcodings for this codec-pair current in process."
	::= { apCodecPairStatsEntry 7 }

apCodecPairTranscodingHigh	OBJECT-TYPE
	SYNTAX			Counter32
	MAX-ACCESS 		read-only
	STATUS			current
	DESCRIPTION
	    "The highest number of transcodings for this codec-pair in the past."
	::= { apCodecPairStatsEntry 8 }

-- Notification MIBs

apCodecNotificationObjects OBJECT IDENTIFIER ::= { apCodecModule 3 }


-- Notifications

apCodecNotificationPrefix OBJECT IDENTIFIER ::= { apCodecModule 4 }
apCodecNotifications OBJECT IDENTIFIER ::= { apCodecNotificationPrefix 0 }

-- Conformance information

apCodecConformance OBJECT IDENTIFIER ::= { apCodecModule 5 }
apCodecCompliances OBJECT IDENTIFIER ::= { apCodecConformance 1 }
apCodecGroups   OBJECT IDENTIFIER ::= { apCodecConformance 2 }
apCodecNotificationsGroups OBJECT IDENTIFIER ::= { apCodecConformance 3 }
				 
-- Compliance statements

-- Units of conformance

apCodecRealmStatsObjectsGroup OBJECT-GROUP
        OBJECTS  {
                apCodecRealmCountOther,
                apCodecRealmCountPCMU,
                apCodecRealmCountPCMA,
                apCodecRealmCountG722,
                apCodecRealmCountG723,
                apCodecRealmCountG726-16,
                apCodecRealmCountG726-24,
                apCodecRealmCountG726-32,
                apCodecRealmCountG726-40,
                apCodecRealmCountG728,
                apCodecRealmCountG729,
                apCodecRealmCountGSM,
                apCodecRealmCountILBC,
                apCodecRealmCountH261,
                apCodecRealmCountH263,
                apCodecRealmCountT38
		}
	STATUS          current
        DESCRIPTION
		"A collection of objects providing realm codec statistics"
	::= { apCodecGroups 1 }

apCodecMediaProcessingObjectsGroup OBJECT-GROUP
        OBJECTS  {
                apCodecRealmSessionsTransparent,
                apCodecRealmSessionsTransrated,
                apCodecRealmSessionsTranscoded
		}
	STATUS          current
        DESCRIPTION
		"A collection of objects providing realm transcoding statistics"
	::= { apCodecGroups 2 }

apCodecRealmStatsObjectsGroup2 OBJECT-GROUP
        OBJECTS  {
                apCodecRealmCountAMR,
                apCodecRealmCountEVRC
		}
	STATUS          current
        DESCRIPTION
		"A collection of objects providing additional realm codec statistics"
	::= { apCodecGroups 3 }

apCodecTranscodingStatsGroup OBJECT-GROUP
        OBJECTS  {
		apCodecTranscodingResourcesTotal,
		apCodecTranscodingResourcesCurrent,
		apCodecTranscodingResourcesHigh,
		apCodecTranscodingInUsePercentCurrent,
		apCodecTranscodingInUsePercentHigh,
		apCodecName,
                apCodecPairTranscodingCurrent,
		apCodecPairTranscodingHigh
		}
	STATUS          current
        DESCRIPTION
		"A collection of objects providing additional codec statistics"
	::= { apCodecGroups 4 }

END


