-- -- Juniper Enterprise Specific MIB: Sip Common MIB -- -- Copyright (c) 2009, Juniper Networks, Inc. -- All rights reserved. -- -- The contents of this document are subject to change without notice. -- JUNIPER-SIP-COMMON-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, TimeTicks FROM SNMPv2-SMI DisplayString FROM SNMPv2-TC jnxVoip FROM JUNIPER-JS-SMI SnmpAdminString FROM SNMP-FRAMEWORK-MIB InetPortNumber FROM INET-ADDRESS-MIB; jnxSipCommonMIB MODULE-IDENTITY LAST-UPDATED "200902092000Z" ORGANIZATION "Juniper Networks, Inc." CONTACT-INFO "Juniper Technical Assistance Center Juniper Networks, Inc. 1133 Innovation Way Sunnyvale, CA 94089 E-mail: support@juniper.net" DESCRIPTION "This is Juniper Networks' implementation of enterprise specific MIB for SIP. This module defines objects which may be common to all SIP entities." ::= { jnxSip 1 } jnxSip OBJECT IDENTIFIER ::= { jnxVoip 2 } jnxSipCommonMIBObjects OBJECT IDENTIFIER ::= { jnxSipCommonMIB 1 } -- Common Configuration Objects jnxSipCommonCfgTable OBJECT-TYPE SYNTAX SEQUENCE OF JnxSipCommonCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the common configuration objects applicable to all SIP entities." ::= { jnxSipCommonMIBObjects 1 } jnxSipCommonCfgEntry OBJECT-TYPE SYNTAX JnxSipCommonCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of common configuration. Each row represents objects for a particular SIP entity instance present in this system." INDEX { jnxSipCfgApplName } ::= { jnxSipCommonCfgTable 1 } JnxSipCommonCfgEntry ::= SEQUENCE { jnxSipCfgApplName DisplayString, jnxSipCommonCfgProtocolVersion SnmpAdminString, jnxSipCommonCfgServiceOperStatus INTEGER, jnxSipCommonCfgServiceStartTime TimeTicks, jnxSipCommonCfgServiceLastChange TimeTicks, jnxSipCommonCfgOrganization SnmpAdminString, jnxSipCommonCfgMaxTransactions Unsigned32, jnxSipCommonCfgEntityType BITS } jnxSipCfgApplName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the network application which uniquely identifies the application to which this entry is applicable." ::= { jnxSipCommonCfgEntry 1 } jnxSipCommonCfgProtocolVersion OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object will reflect the version of SIP supported by this SIP entity. It will follow the same format as SIP version information contained in the SIP messages generated by this SIP entity. For example, entities supporting SIP version 2 will return 'SIP/2.0' as dictated by the standard." ::= { jnxSipCommonCfgEntry 2 } jnxSipCommonCfgServiceOperStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), up(2), down(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the current operational state of the SIP application. unknown : The operational status cannot be determined for some reason. up : The application is operating normally, and is processing (receiving and possibly issuing) SIP requests and responses. down : The application is currently unable to process SIP messages." ::= { jnxSipCommonCfgEntry 3 } jnxSipCommonCfgServiceStartTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time the SIP entity was last started. If started prior to the last re-initialization of the local network management subsystem, then this object contains a zero value." ::= { jnxSipCommonCfgEntry 4 } jnxSipCommonCfgServiceLastChange OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time the SIP entity entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this object contains a zero value." ::= { jnxSipCommonCfgEntry 5 } jnxSipCommonCfgOrganization OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the organization name which the SIP entity inserts into Organization headers of SIP messages processed by this system. If the string is empty, no Organization header is to be generated." ::= { jnxSipCommonCfgEntry 6 } jnxSipCommonCfgMaxTransactions OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the maximum number of simultaneous transactions per second that the SIP entity can manage. In general, the value of this object SHOULD reflect a level of transaction processing per second that is considered high enough to impact the system's CPU and/or memory resources to the point of deteriorating SIP call processing but not high enough to cause catastrophic system failure." ::= { jnxSipCommonCfgEntry 7 } jnxSipCommonCfgEntityType OBJECT-TYPE SYNTAX BITS { other(0), userAgent(1), proxyServer(2), redirectServer(3), registrarServer(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object identifies the list of SIP entities this row is related to. It is defined as a bit map. Each bit represents a type of SIP entity. If a bit has value 1, the SIP entity represented by this row plays the role of this entity type. If a bit has value 0, the SIP entity represented by this row does not act as this entity type Combinations of bits can be set when the SIP entity plays multiple SIP roles." ::= { jnxSipCommonCfgEntry 8 } -- Support for multiple ports jnxSipCommonPortTable OBJECT-TYPE SYNTAX SEQUENCE OF JnxSipCommonPortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the list of ports that each SIP entity in this system is allowed to use. These ports can be advertised using the Contact header in a REGISTER request or response." ::= { jnxSipCommonMIBObjects 2 } jnxSipCommonPortEntry OBJECT-TYPE SYNTAX JnxSipCommonPortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Specification of a particular port. Each row represents those objects for a particular SIP entity present in this system." INDEX { jnxSipPortApplName, jnxSipCommonPort } ::= { jnxSipCommonPortTable 1 } JnxSipCommonPortEntry ::= SEQUENCE { jnxSipPortApplName DisplayString, jnxSipCommonPort InetPortNumber, jnxSipCommonPortTransportRcv BITS } jnxSipPortApplName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the network application which uniquely identifies the application to which this entry is applicable." ::= { jnxSipCommonPortEntry 1 } jnxSipCommonPort OBJECT-TYPE SYNTAX InetPortNumber (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object reflects a particular port that can be used by the SIP application." ::= { jnxSipCommonPortEntry 2 } jnxSipCommonPortTransportRcv OBJECT-TYPE SYNTAX BITS { other(0), -- none of the following udp(1), tcp(2), sctp(3), tlsTcp(4), tlsSctp(5) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object will specify the transport protocol the SIP entity will use to receive SIP messages. This object is a bit map. Each bit represents a transport protocol. If a bit has value 1, then that transport protocol is currently being used. If a bit has value 0, then that transport protocol is currently not being used." ::= { jnxSipCommonPortEntry 3 } -- Support for SIP option tags (SIP extensions). jnxSipCommonOptionTagTable OBJECT-TYPE SYNTAX SEQUENCE OF JnxSipCommonOptionTagEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains a list of the SIP option tags (SIP extensions) that either required, supported, or unsupported by the SIP entity. These option tags are used in the Require, Proxy-Require, Supported and Unsupported header fields. Example: if a user agent client supports and requires the server to support reliability of provisional responses (IETF RFC 3262), this table contains a row with the option tag string '100rel' in jnxSipCommonOptionTag and the OCTET STRING value of '1010 0000' or '0xA0' in jnxSipCommonOptionTagHeaderField. If a server does not support the required feature (indicated in a Require header to a UAS, or in a Proxy-Require to a Proxy Server), the server returns a 420 Bad Extension listing the feature in an Unsupported header. Normally the list of such features supported by an entity is static (i.e. will not change over time)." ::= { jnxSipCommonMIBObjects 3 } jnxSipCommonOptionTagEntry OBJECT-TYPE SYNTAX JnxSipCommonOptionTagEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A particular SIP option tag (extension) supported or unsupported by the SIP entity, and which may be supported or required by a peer. Each row represents those objects for a particular SIP entity present in this system." INDEX { jnxSipOptionTagApplName, jnxSipCommonOptionTagIndex } ::= { jnxSipCommonOptionTagTable 1 } JnxSipCommonOptionTagEntry ::= SEQUENCE { jnxSipOptionTagApplName DisplayString, jnxSipCommonOptionTagIndex Unsigned32, jnxSipCommonOptionTag SnmpAdminString, jnxSipCommonOptionTagHeaderField BITS } jnxSipOptionTagApplName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the network application which uniquely identifies the application to which this entry is applicable." ::= { jnxSipCommonOptionTagEntry 1 } jnxSipCommonOptionTagIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object uniquely identifies a conceptual row in the table." ::= { jnxSipCommonOptionTagEntry 2 } jnxSipCommonOptionTag OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the SIP option tag. The option tag names are registered with IANA and available at http://www.iana.org/." ::= { jnxSipCommonOptionTagEntry 3 } jnxSipCommonOptionTagHeaderField OBJECT-TYPE SYNTAX BITS { require(0), -- Require header proxyRequire(1), -- Proxy-Require header supported(2), -- Supported header unsupported(3) -- Unsupported header } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates whether the SIP option tag is supported (Supported header), unsupported (Unsupported header), required (Require or Proxy-Require header) by the SIP entity. A SIP option tag may be both supported and required." ::= { jnxSipCommonOptionTagEntry 4 } -- Supported SIP Methods jnxSipCommonMethodSupportedTable OBJECT-TYPE SYNTAX SEQUENCE OF JnxSipCommonMethodSupportedEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains a list of methods supported by each SIP entity in this system (see the standard set of SIP methods in Section 7.1 of RFC 3261). Any additional methods that may be incorporated into the SIP protocol can be represented by this table without any requirement to update this MIB module. The table is informational in nature; conveying to the NMS capabilities of the managed system." ::= { jnxSipCommonMIBObjects 4 } jnxSipCommonMethodSupportedEntry OBJECT-TYPE SYNTAX JnxSipCommonMethodSupportedEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A particular method supported by the SIP entity. Each row represents those objects for a particular SIP entity present in this system." INDEX { jnxSipMethodSupportedApplName, jnxSipCommonMethodSupportedIndex } ::= { jnxSipCommonMethodSupportedTable 1 } JnxSipCommonMethodSupportedEntry ::= SEQUENCE { jnxSipMethodSupportedApplName DisplayString, jnxSipCommonMethodSupportedIndex Unsigned32, jnxSipCommonMethodSupportedName OCTET STRING } jnxSipMethodSupportedApplName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the network application which uniquely identifies the application to which this entry is applicable." ::= { jnxSipCommonMethodSupportedEntry 1 } jnxSipCommonMethodSupportedIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object uniquely identifies a conceptual row in the table for a specific SIP method." ::= { jnxSipCommonMethodSupportedEntry 2 } jnxSipCommonMethodSupportedName OBJECT-TYPE SYNTAX OCTET STRING (SIZE (1..100)) MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the supported method's name. The method name MUST be all upper case (e.g, 'INVITE')." ::= { jnxSipCommonMethodSupportedEntry 3 } -- SIP Timer Configuration jnxSipCommonCfgTimerTable OBJECT-TYPE SYNTAX SEQUENCE OF JnxSipCommonCfgTimerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains timer configuration objects applicable to SIP user agent and SIP stateful Proxy Server entities." ::= { jnxSipCommonMIBObjects 5 } jnxSipCommonCfgTimerEntry OBJECT-TYPE SYNTAX JnxSipCommonCfgTimerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of timer configuration. Each row represents those objects for a particular SIP entity present in this system." INDEX { jnxSipCfgTimerApplName } ::= { jnxSipCommonCfgTimerTable 1 } JnxSipCommonCfgTimerEntry ::= SEQUENCE { jnxSipCfgTimerApplName DisplayString, jnxSipCommonCfgTimerA Unsigned32, jnxSipCommonCfgTimerB Unsigned32, jnxSipCommonCfgTimerC Unsigned32, jnxSipCommonCfgTimerD Unsigned32, jnxSipCommonCfgTimerE Unsigned32, jnxSipCommonCfgTimerF Unsigned32, jnxSipCommonCfgTimerG Unsigned32, jnxSipCommonCfgTimerH Unsigned32, jnxSipCommonCfgTimerI Unsigned32, jnxSipCommonCfgTimerJ Unsigned32, jnxSipCommonCfgTimerK Unsigned32, jnxSipCommonCfgTimerT1 Unsigned32, jnxSipCommonCfgTimerT2 Unsigned32, jnxSipCommonCfgTimerT4 Unsigned32 } jnxSipCfgTimerApplName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the network application which uniquely identifies the application to which this entry is applicable." ::= { jnxSipCommonCfgTimerEntry 1 } jnxSipCommonCfgTimerA OBJECT-TYPE SYNTAX Unsigned32 (100..1000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the initial value for the retransmit timer for the INVITE method. The retransmit timer doubles after each retransmission, ensuring an exponential backoff in network traffic. This object represents the initial time a SIP entity will wait to receive a provisional response to an INVITE before resending the INVITE request." DEFVAL { 500 } ::= { jnxSipCommonCfgTimerEntry 2 } jnxSipCommonCfgTimerB OBJECT-TYPE SYNTAX Unsigned32 (32000..300000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a SIP entity will wait to receive a final response to an INVITE. The timer is started upon transmission of the initial INVITE request." DEFVAL { 32000 } ::= { jnxSipCommonCfgTimerEntry 3 } jnxSipCommonCfgTimerC OBJECT-TYPE SYNTAX Unsigned32 (180000..300000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a SIP Proxy Server will wait to receive a provisional response to an INVITE. The Timer C MUST be set for each client transaction when an INVITE request is proxied." DEFVAL { 180000 } ::= { jnxSipCommonCfgTimerEntry 4 } jnxSipCommonCfgTimerD OBJECT-TYPE SYNTAX Unsigned32 (0..300000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the amount of time that the server transaction can remain in the 'Completed' state when unreliable transports are used. The default value MUST be equal to or greater than 32000 for UDP transport, and its value MUST be 0 for TCP/SCTP transport." DEFVAL { 32000 } ::= { jnxSipCommonCfgTimerEntry 5 } jnxSipCommonCfgTimerE OBJECT-TYPE SYNTAX Unsigned32 (100..1000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the initial value for the retransmit timer for a non-INVITE method while in 'Trying' state. The retransmit timer doubles after each retransmission until it reaches T2 to ensure an exponential backoff in network traffic. This object represents the initial time a SIP entity will wait to receive a provisional response to the request before resending the non-INVITE request." DEFVAL { 500 } ::= { jnxSipCommonCfgTimerEntry 6 } jnxSipCommonCfgTimerF OBJECT-TYPE SYNTAX Unsigned32 (32000..300000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a SIP entity will wait to receive a final response to a non-INVITE request. The timer is started upon transmission of the initial request." DEFVAL { 32000 } ::= { jnxSipCommonCfgTimerEntry 7 } jnxSipCommonCfgTimerG OBJECT-TYPE SYNTAX Unsigned32 (0..1000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the initial value for the retransmit timer for final responses to INVITE requests. If timer G fires, the response is passed to the transport layer again for retransmission, and timer G is set to fire in MIN(2*T1, T2) seconds. From then on, when timer G fires, the response is passed to the transport again for transmission, and timer G is reset with a value that doubles, unless that value exceeds T2, in which case, it is reset with the value of T2. The default value MUST be T1 for UDP transport, and its value MUST be 0 for reliable transport like TCP/SCTP." DEFVAL { 500 } ::= { jnxSipCommonCfgTimerEntry 8 } jnxSipCommonCfgTimerH OBJECT-TYPE SYNTAX Unsigned32 (32000..300000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a server will wait to receive an ACK before it abandons retransmitting the response. The timer is started upon entering the 'Completed' state." DEFVAL { 32000 } ::= { jnxSipCommonCfgTimerEntry 9 } jnxSipCommonCfgTimerI OBJECT-TYPE SYNTAX Unsigned32 (0..10000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a SIP entity will wait to receive additional ACK message retransmissions. The timer is started upon entering the 'Confirmed' state. The default value MUST be T4 for UDP transport and its value MUST be 0 for reliable transport like TCP/SCTP." DEFVAL { 5000 } ::= { jnxSipCommonCfgTimerEntry 10 } jnxSipCommonCfgTimerJ OBJECT-TYPE SYNTAX Unsigned32 (32000..300000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a SIP server will wait to receive retransmissions of non-INVITE requests. The timer is started upon entering the 'Completed' state for non-INVITE transactions. When timer J fires, the server MUST transition to the 'Terminated' state." DEFVAL { 32000 } ::= { jnxSipCommonCfgTimerEntry 11 } jnxSipCommonCfgTimerK OBJECT-TYPE SYNTAX Unsigned32 (0..10000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum time a SIP client will wait to receive retransmissions of responses to non-INVITE requests. The timer is started upon entering the 'Completed' state for non-INVITE transactions. When timer K fires, the server MUST transition to the 'Terminated' state. The default value MUST be T4 for UDP transport, and its value MUST be 0 for reliable transport like TCP/SCTP." DEFVAL { 5000 } ::= { jnxSipCommonCfgTimerEntry 12 } jnxSipCommonCfgTimerT1 OBJECT-TYPE SYNTAX Unsigned32 (200..10000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the T1 timer for a SIP entity. T1 is an estimate of the round-trip time (RTT) between the client and server transactions." DEFVAL { 500 } ::= { jnxSipCommonCfgTimerEntry 13 } jnxSipCommonCfgTimerT2 OBJECT-TYPE SYNTAX Unsigned32 (200..10000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the T2 timer for a SIP entity. T2 is the maximum retransmit interval for non-INVITE requests and INVITE responses. It's used in various parts of the protocol to reset other Timer* objects to this value." DEFVAL { 4000 } ::= { jnxSipCommonCfgTimerEntry 14 } jnxSipCommonCfgTimerT4 OBJECT-TYPE SYNTAX Unsigned32 (200..10000) UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the T4 timer for a SIP entity. T4 is the maximum duration a message will remain in the network. It represents the amount of time the network will take to clear messages between client and server transactions. It's used in various parts of the protocol to reset other Timer* objects to this value." DEFVAL { 5000 } ::= { jnxSipCommonCfgTimerEntry 15 } END