7.3. SIP User Agent MIB Module
SIP-UA-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, mib-2 FROM SNMPv2-SMI -- RFC 2578 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- RFC 2580 applIndex FROM NETWORK-SERVICES-MIB -- RFC 2788 InetAddressType, InetAddress FROM INET-ADDRESS-MIB -- RFC 4001 SipTCEntityRole FROM SIP-TC-MIB; -- RFC 4780 sipUAMIB MODULE-IDENTITY LAST-UPDATED "200704200000Z" ORGANIZATION "IETF Session Initiation Protocol Working Group" CONTACT-INFO "SIP WG email: sip@ietf.org Co-editor Kevin Lingle
Cisco Systems, Inc. postal: 7025 Kit Creek Road P.O. Box 14987 Research Triangle Park, NC 27709 USA email: klingle@cisco.com phone: +1 919 476 2029 Co-editor Joon Maeng email: jmaeng@austin.rr.com Co-editor Jean-Francois Mule CableLabs postal: 858 Coal Creek Circle Louisville, CO 80027 USA email: jf.mule@cablelabs.com phone: +1 303 661 9100 Co-editor Dave Walker email: drwalker@rogers.com" DESCRIPTION "Session Initiation Protocol (SIP) User Agent (UA) MIB module. SIP is an application-layer signaling protocol for creating, modifying, and terminating multimedia sessions with one or more participants. These sessions include Internet multimedia conferences and Internet telephone calls. SIP is defined in RFC 3261 (June 2002). A User Agent is an application that contains both a User Agent Client (UAC) and a User Agent Server (UAS). A UAC is an application that initiates a SIP request. A UAS is an application that contacts the user when a SIP request is received and that returns a response on behalf of the user. The response accepts, rejects, or redirects the request. Copyright (C) The IETF Trust (2007). This version of this MIB module is part of RFC 4780; see the RFC itself for full legal notices." REVISION "200704200000Z" DESCRIPTION "Initial version of the IETF SIP-UA-MIB module. This version published as part of RFC 4780." ::= { mib-2 150 } -- Top-Level Components of this MIB. sipUAMIBObjects OBJECT IDENTIFIER ::= { sipUAMIB 1 }
sipUAMIBConformance OBJECT IDENTIFIER ::= { sipUAMIB 2 } -- -- This MIB contains objects related to SIP User Agents. -- sipUACfgServer OBJECT IDENTIFIER ::= { sipUAMIBObjects 1 } -- -- SIP Server Configuration -- sipUACfgServerTable OBJECT-TYPE SYNTAX SEQUENCE OF SipUACfgServerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains SIP server configuration objects applicable to each SIP user agent in this system." ::= { sipUACfgServer 1 } sipUACfgServerEntry OBJECT-TYPE SYNTAX SipUACfgServerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of server configuration. Each row represents those objects for a particular SIP user agent present in this system. applIndex is used to uniquely identify these instances of SIP user agents and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex, sipUACfgServerIndex } ::= { sipUACfgServerTable 1 } SipUACfgServerEntry ::= SEQUENCE { sipUACfgServerIndex Unsigned32, sipUACfgServerAddressType InetAddressType, sipUACfgServerAddress InetAddress, sipUACfgServerRole SipTCEntityRole } sipUACfgServerIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique identifier of a server address when multiple addresses
are configured by the SIP entity. If one address isn't reachable, then another can be tried." ::= { sipUACfgServerEntry 1 } sipUACfgServerAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the type of address contained in the associated instance of sipUACfgServerAddress." REFERENCE "INET-ADDRESS-MIB (RFC 4001)" ::= { sipUACfgServerEntry 2 } sipUACfgServerAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the address of a SIP server this user agent will use to proxy/redirect calls. The type of this address is determined by the value of the sipUACfgServerAddressType object." REFERENCE "INET-ADDRESS-MIB (RFC 4001)" ::= { sipUACfgServerEntry 3 } sipUACfgServerRole OBJECT-TYPE SYNTAX SipTCEntityRole MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the function of the SIP server this user agent should communicate with: registrar, proxy (outbound proxy), etc." ::= { sipUACfgServerEntry 4 } -- -- Conformance -- sipUAMIBCompliances OBJECT IDENTIFIER ::= { sipUAMIBConformance 1 } sipUAMIBGroups OBJECT IDENTIFIER ::= { sipUAMIBConformance 2 } -- -- Compliance Statements -- sipUACompliance MODULE-COMPLIANCE STATUS current
DESCRIPTION "The compliance statement for SIP entities that implement the SIP-UA-MIB module." MODULE -- this module MANDATORY-GROUPS { sipUAConfigGroup } ::= { sipUAMIBCompliances 1 } -- -- Units of Conformance -- sipUAConfigGroup OBJECT-GROUP OBJECTS { sipUACfgServerAddressType, sipUACfgServerAddress, sipUACfgServerRole } STATUS current DESCRIPTION "A collection of objects providing information about the configuration of SIP User Agents." ::= { sipUAMIBGroups 1 } END7.4. SIP Server MIB Module (Proxy, Redirect, and Registrar Servers)
SIP-SERVER-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Counter32, Unsigned32, Gauge32, mib-2 FROM SNMPv2-SMI -- RFC 2578 TruthValue, TimeStamp, DateAndTime FROM SNMPv2-TC -- RFC 2579 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- RFC 2580 SnmpAdminString FROM SNMP-FRAMEWORK-MIB -- RFC 3411
applIndex FROM NETWORK-SERVICES-MIB -- RFC 2788 InetAddressType, InetAddress FROM INET-ADDRESS-MIB; -- RFC 4001 sipServerMIB MODULE-IDENTITY LAST-UPDATED "200704200000Z" ORGANIZATION "IETF Session Initiation Protocol Working Group" CONTACT-INFO "SIP WG email: sip@ietf.org Co-editor: Kevin Lingle Cisco Systems, Inc. postal: 7025 Kit Creek Road P.O. Box 14987 Research Triangle Park, NC 27709 USA email: klingle@cisco.com phone: +1 919 476 2029 Co-editor: Joon Maeng email: jmaeng@austin.rr.com Co-editor: Jean-Francois Mule CableLabs postal: 858 Coal Creek Circle Louisville, CO 80027 USA email: jf.mule@cablelabs.com phone: +1 303 661 9100 Co-editor: Dave Walker email: drwalker@rogers.com " DESCRIPTION "Session Initiation Protocol (SIP) Server MIB module. SIP is an application-layer signaling protocol for creating, modifying, and terminating multimedia sessions with one or more participants. These sessions include Internet multimedia conferences and Internet telephone calls. SIP is defined in RFC 3261 (June 2002). This MIB is defined for the management of SIP Proxy, Redirect, and Registrar Servers.
A Proxy Server acts as both a client and a server. It accepts requests from other clients, either responding to them or passing them on to other servers, possibly after modification. A Redirect Server accepts requests from clients and returns zero or more addresses to that client. Unlike a User Agent Server, it does not accept calls. A Registrar is a server that accepts REGISTER requests. A Registrar is typically co-located with a Proxy or Redirect Server. Copyright (C) The IETF Trust (2007). This version of this MIB module is part of RFC 4780; see the RFC itself for full legal notices." REVISION "200704200000Z" DESCRIPTION "Initial version of the IETF SIP-SERVER-MIB module. This version published as part of RFC 4780." ::= { mib-2 151 } -- Top-Level Components of this MIB. sipServerMIBObjects OBJECT IDENTIFIER ::= { sipServerMIB 1 } sipServerMIBConformance OBJECT IDENTIFIER ::= { sipServerMIB 2 } -- -- These groups contain objects common to all SIP servers. -- sipServerCfg OBJECT IDENTIFIER ::= { sipServerMIBObjects 1 } -- -- Common Server Configuration Objects -- sipServerCfgTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains configuration objects applicable to SIP Redirect and Proxy Servers." ::= { sipServerCfg 1 } sipServerCfgEntry OBJECT-TYPE SYNTAX SipServerCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION
"A row of common configuration. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex } ::= { sipServerCfgTable 1 } SipServerCfgEntry ::= SEQUENCE { sipServerCfgHostAddressType InetAddressType, sipServerCfgHostAddress InetAddress } sipServerCfgHostAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of Internet address by which the SIP server is reachable." REFERENCE "RFC 3261, Section 19.1.1" ::= { sipServerCfgEntry 1 } sipServerCfgHostAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "This is the host portion of a SIP URI that is assigned to the SIP server. It MAY contain a fully qualified domain name or an IP address. The length of the value will depend on the type of address specified. The type of address given by this object is controlled by sipServerCfgHostAddressType." REFERENCE "RFC 3261, Section 19.1.1" ::= { sipServerCfgEntry 2 } -- -- This group contains MIB objects -- related to SIP Proxy Servers. -- sipServerProxyCfg OBJECT IDENTIFIER ::= { sipServerMIBObjects 3 }
sipServerProxyStats OBJECT IDENTIFIER ::= { sipServerMIBObjects 4 } -- -- Proxy Server Configuration -- sipServerProxyCfgTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerProxyCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains configuration objects applicable to SIP Proxy Servers." ::= { sipServerProxyCfg 1 } sipServerProxyCfgEntry OBJECT-TYPE SYNTAX SipServerProxyCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of common proxy configuration. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex } ::= { sipServerProxyCfgTable 1 } SipServerProxyCfgEntry ::= SEQUENCE { sipServerCfgProxyStatefulness INTEGER, sipServerCfgProxyRecursion TruthValue, sipServerCfgProxyRecordRoute TruthValue, sipServerCfgProxyAuthMethod BITS, sipServerCfgProxyAuthDefaultRealm SnmpAdminString } sipServerCfgProxyStatefulness OBJECT-TYPE SYNTAX INTEGER { stateless(1), transactionStateful(2), callStateful(3) } MAX-ACCESS read-only STATUS current DESCRIPTION
"This object reflects the default mode of operation for the Proxy Server entity. A stateless proxy is a logical entity that does not maintain the client or server transaction state machines when it processes requests. A stateless proxy forwards every request it receives downstream and every response it receives upstream. If the value of this object is stateless(1), the proxy defaults to stateless operations. A transaction stateful proxy, or simply a 'stateful proxy', is a logical entity that maintains the client and server transaction state machines during the processing of a request. A (transaction) stateful proxy is not the same as a call stateful proxy. If the value of this object is transactionStateful(2), the proxy is stateful on a transaction basis. A call stateful proxy is a logical entity if it retains state for a dialog from the initiating INVITE to the terminating BYE request. A call stateful proxy is always transaction stateful, but the converse is not necessarily true. If the value of this object is callStateful(3), the proxy is call stateful." REFERENCE "RFC 3261, Section 16" ::= { sipServerProxyCfgEntry 1 } sipServerCfgProxyRecursion OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects whether or not the Proxy performs a recursive search on the Contacts provided in 3xx redirects. If the value of this object is 'true', a recursive search is performed. If the value is 'false', no search is performed, and the 3xx response is sent upstream towards the source of the request." REFERENCE "RFC 3261 Sections 16.5 and 16.6" ::= { sipServerProxyCfgEntry 2 } sipServerCfgProxyRecordRoute OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current
DESCRIPTION "This object reflects whether or not the proxy adds itself to the Record-Route header as a default action. This header is used to list the proxies that insist on being in the signaling path for subsequent requests related to the call leg. If the value of this object is 'true', the proxy adds itself to the end of the Record-Route header, creating the header if required. If the value is 'false', the proxy does not add itself to the Record-Route header." REFERENCE "RFC 3261, Section 20.30" ::= { sipServerProxyCfgEntry 3 } -- -- Security -- sipServerCfgProxyAuthMethod OBJECT-TYPE SYNTAX BITS { none(0), tls(1), digest(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the authentication methods that MAY be used to authenticate request originators. bit 0 no authentication is performed bit 1 TLS is used bit 2 HTTP Digest is used." REFERENCE "RFC 3261 Sections 22, 23, 26, 26.2.3" ::= { sipServerProxyCfgEntry 4 } sipServerCfgProxyAuthDefaultRealm OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the default realm value used in Proxy-Authenticate headers. Note that this MAY need to be stored per user, in which case, this default value is ignored. " REFERENCE "RFC 3261, Section 22.1" ::= { sipServerProxyCfgEntry 5 }
-- -- Proxy Server Statistics -- sipServerProxyStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerProxyStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the statistics objects applicable to all SIP Proxy Servers in this system." ::= { sipServerProxyStats 1 } sipServerProxyStatsEntry OBJECT-TYPE SYNTAX SipServerProxyStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of summary statistics. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex } ::= { sipServerProxyStatsTable 1 } SipServerProxyStatsEntry ::= SEQUENCE { sipServerProxyStatProxyReqFailures Counter32, sipServerProxyStatsDisconTime TimeStamp } sipServerProxyStatProxyReqFailures OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the number of occurrences of unsupported options being specified in received Proxy-Require headers. Such occurrences result in a 420 Bad Extension status code being returned. Discontinuities in the value of this counter can occur at re-initialization of the SIP entity or service. A Management Station can detect discontinuities in this counter by
monitoring the sipServerProxyStatsDisconTime object in the same row." ::= { sipServerProxyStatsEntry 1 } sipServerProxyStatsDisconTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of the sysUpTime object when the counters for the server statistics objects in this row last experienced a discontinuity." ::= { sipServerProxyStatsEntry 2 } -- -- This group contains MIB objects related to SIP Registrars. -- sipServerRegCfg OBJECT IDENTIFIER ::= { sipServerMIBObjects 5 } sipServerRegStats OBJECT IDENTIFIER ::= { sipServerMIBObjects 6 } -- -- Registrar Configuration -- sipServerRegCfgTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerRegCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains configuration objects applicable to SIP Registrars." ::= { sipServerRegCfg 1 } sipServerRegCfgEntry OBJECT-TYPE SYNTAX SipServerRegCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of common Registrar configuration. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex } ::= { sipServerRegCfgTable 1 } SipServerRegCfgEntry ::=
SEQUENCE { sipServerRegMaxContactExpiryDuration Unsigned32, sipServerRegMaxUsers Unsigned32, sipServerRegCurrentUsers Gauge32, sipServerRegDfltRegActiveInterval Unsigned32 } sipServerRegMaxContactExpiryDuration OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) UNITS "seconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum expiry that may be requested by a User Agent for a particular Contact. User Agents can specify expiry using either an Expiry header in a REGISTER request, or using an Expires parameter in a Contact header in a REGISTER request. If the value requested by the User Agent is greater than the value of this object, then the contact information is given the duration specified by this object, and that duration is indicated to the User Agent in the response." ::= { sipServerRegCfgEntry 1 } sipServerRegMaxUsers OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the maximum number of users that the Registrar supports. The current number of users is reflected by sipServerRegCurrentUsers." ::= { sipServerRegCfgEntry 2 } sipServerRegCurrentUsers OBJECT-TYPE SYNTAX Gauge32 (0..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the number of users currently registered with the Registrar." ::= { sipServerRegCfgEntry 3 } sipServerRegDfltRegActiveInterval OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) UNITS "seconds" MAX-ACCESS read-only STATUS current DESCRIPTION
"This object reflects the default time interval the Registrar considers registrations to be active. The value is used to compute the Expires header in the REGISTER response. If a user agent requests a time interval shorter than specified by this object, the Registrar SHOULD honor that request. If a Contact entry does not have an 'expires' parameter, the value of the Expires header field is used instead. If a Contact entry has no 'expires' parameter and no Expires header field is present, the value of this object is used as the default value." REFERENCE "RFC 3261, Section 10.2" ::= { sipServerRegCfgEntry 4 } -- -- Per User Information -- sipServerRegUserTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerRegUserEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information on all users registered to each Registrar in this system." ::= { sipServerRegCfg 2 } sipServerRegUserEntry OBJECT-TYPE SYNTAX SipServerRegUserEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry contains information for a single user registered to this Registrar. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex, sipServerRegUserIndex } ::= { sipServerRegUserTable 1 } SipServerRegUserEntry ::= SEQUENCE { sipServerRegUserIndex Unsigned32, sipServerRegUserUri SnmpAdminString, sipServerRegUserAuthenticationFailures Counter32, sipServerRegUserDisconTime TimeStamp }
sipServerRegUserIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object uniquely identifies a conceptual row in the table." ::= { sipServerRegUserEntry 1 } sipServerRegUserUri OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the user's address-of-record. It is the main form by which the Registrar knows the user. The format is typically 'user@domain'. It is contained in the To header for all REGISTER requests." ::= { sipServerRegUserEntry 2 } sipServerRegUserAuthenticationFailures OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains a count of the number of times the user has failed authentication. Discontinuities in the value of this counter can occur due to successful user authentications and at re-initialization of the SIP entity or service. A Management Station can detect discontinuities in this counter by monitoring the sipServerRegUserDisconTime object in the same row." ::= { sipServerRegUserEntry 3 } sipServerRegUserDisconTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of the sysUpTime object when the counters for the user registration statistics objects in this row last experienced a discontinuity." ::= { sipServerRegUserEntry 4 } -- -- Per Contact Information -- sipServerRegContactTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerRegContactEntry
MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information on every location where a registered user (specified by sipServerRegUserIndex) wishes to be found (i.e., the user has provided contact information to each SIP Registrar in this system)." ::= { sipServerRegCfg 3 } sipServerRegContactEntry OBJECT-TYPE SYNTAX SipServerRegContactEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry contains information for a single Contact. Multiple contacts may exist for a single user. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex, sipServerRegUserIndex, sipServerRegContactIndex } ::= { sipServerRegContactTable 1 } SipServerRegContactEntry ::= SEQUENCE { sipServerRegContactIndex Unsigned32, sipServerRegContactDisplayName SnmpAdminString, sipServerRegContactURI SnmpAdminString, sipServerRegContactLastUpdated TimeStamp, sipServerRegContactExpiry DateAndTime, sipServerRegContactPreference SnmpAdminString } sipServerRegContactIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Along with the sipServerRegUserIndex, this object uniquely identifies a conceptual row in the table." ::= { sipServerRegContactEntry 1 }
sipServerRegContactDisplayName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the display name for the Contact. For example, 'Santa at Home', or 'Santa on his Sled', corresponding to contact URIs of sip:BigGuy@example.com or sip:sclaus817@example.com, respectively." ::= { sipServerRegContactEntry 2 } sipServerRegContactURI OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains either a SIP URI where the user can be contacted. This URI is normally returned to a client from a Redirect Server, or is used as the RequestURI in a SIP request line for requests forwarded by a proxy." ::= { sipServerRegContactEntry 3 } sipServerRegContactLastUpdated OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the time when this contact information was accepted. If the contact information is updated via a subsequent REGISTER of the same information, this object is also updated." ::= { sipServerRegContactEntry 4 } sipServerRegContactExpiry OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the date and time when the contact information will no longer be valid. Such times may be specified by the user at registration (i.e., Expires header or expiry parameter in the Contact information), or a system default can be applied." ::= { sipServerRegContactEntry 5 } sipServerRegContactPreference OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only
STATUS current DESCRIPTION "This object indicates a relative preference for the particular Contact header field value compared to other bindings for this address-of-record. A registering user may provide this preference as a 'qvalue' parameter in the Contact header. The format of this item is a decimal number between 0 and 1 (for example 0.9). Higher values indicate locations preferred by the user." REFERENCE "RFC 3261, Section 10.2.1.2, 16.6, and 20.10" ::= { sipServerRegContactEntry 6 } -- -- Registrar Statistics -- sipServerRegStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF SipServerRegStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the summary statistics objects applicable to all SIP Registrars in this system." ::= { sipServerRegStats 1 } sipServerRegStatsEntry OBJECT-TYPE SYNTAX SipServerRegStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row of summary statistics. Each row represents those objects for a particular SIP server present in this system. applIndex is used to uniquely identify these instances of SIP servers and correlate them through the common framework of the NETWORK-SERVICES-MIB (RFC 2788). The same value of applIndex used in the corresponding SIP-COMMON-MIB is used here." INDEX { applIndex } ::= { sipServerRegStatsTable 1 } SipServerRegStatsEntry ::= SEQUENCE { sipServerRegStatsAcceptedRegs Counter32, sipServerRegStatsRejectedRegs Counter32, sipServerRegStatsDisconTime TimeStamp }
sipServerRegStatsAcceptedRegs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains a count of the number of REGISTER requests that have been accepted (status code 200) by the Registrar. This includes additions of new contact information, refreshing contact information, as well as requests for deletion of contact information. Discontinuities in the value of this counter can occur at re-initialization of the SIP entity or service. A Management Station can detect discontinuities in this counter by monitoring the sipServerRegStatsDisconTime object in the same row." ::= { sipServerRegStatsEntry 1 } sipServerRegStatsRejectedRegs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains a count of the number REGISTER requests that have been rejected by the Registrar. Discontinuities in the value of this counter can occur at re-initialization of the SIP entity or service. A Management Station can detect discontinuities in this counter by monitoring the sipServerRegStatsDisconTime object in the same row." ::= { sipServerRegStatsEntry 2 } sipServerRegStatsDisconTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of the sysUpTime object when the counters for the registrar statistics objects in this row last experienced a discontinuity." ::= { sipServerRegStatsEntry 3 } -- -- Conformance -- sipServerMIBCompliances OBJECT IDENTIFIER ::= { sipServerMIBConformance 1 }
sipServerMIBGroups OBJECT IDENTIFIER ::= { sipServerMIBConformance 2 } -- -- Compliance Statements -- sipServerProxyServerCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SIP entities acting as Proxy Servers." MODULE -- this module MANDATORY-GROUPS { sipServerConfigGroup, sipServerProxyConfigGroup, sipServerProxyStatsGroup } ::= { sipServerMIBCompliances 1 } sipRedirectServerCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SIP entities acting as Redirect Servers." MODULE -- this module MANDATORY-GROUPS { sipServerConfigGroup } ::= { sipServerMIBCompliances 2 } sipServerRegistrarServerCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SIP entities acting as Registrars." MODULE -- this module MANDATORY-GROUPS { sipServerConfigGroup, sipServerRegistrarConfigGroup, sipServerRegistrarStatsGroup } GROUP sipServerRegistrarUsersGroup DESCRIPTION "This is an optional group." ::= { sipServerMIBCompliances 3 } -- -- Units of Conformance -- sipServerConfigGroup OBJECT-GROUP OBJECTS { sipServerCfgHostAddressType, sipServerCfgHostAddress
} STATUS current DESCRIPTION "A collection of objects providing configuration common to SIP Proxy and Redirect servers." ::= { sipServerMIBGroups 1 } sipServerProxyConfigGroup OBJECT-GROUP OBJECTS { sipServerCfgProxyStatefulness, sipServerCfgProxyRecursion, sipServerCfgProxyRecordRoute, sipServerCfgProxyAuthMethod, sipServerCfgProxyAuthDefaultRealm } STATUS current DESCRIPTION "A collection of objects providing configuration for SIP Proxy servers." ::= { sipServerMIBGroups 2 } sipServerProxyStatsGroup OBJECT-GROUP OBJECTS { sipServerProxyStatProxyReqFailures, sipServerProxyStatsDisconTime } STATUS current DESCRIPTION "A collection of objects providing statistics for SIP Proxy servers." ::= { sipServerMIBGroups 3 } sipServerRegistrarConfigGroup OBJECT-GROUP OBJECTS { sipServerRegMaxContactExpiryDuration, sipServerRegMaxUsers, sipServerRegCurrentUsers, sipServerRegDfltRegActiveInterval } STATUS current DESCRIPTION "A collection of objects providing configuration for SIP Registrars." ::= { sipServerMIBGroups 4 } sipServerRegistrarStatsGroup OBJECT-GROUP OBJECTS { sipServerRegStatsAcceptedRegs,
sipServerRegStatsRejectedRegs, sipServerRegStatsDisconTime } STATUS current DESCRIPTION "A collection of objects providing statistics for SIP Registrars." ::= { sipServerMIBGroups 5 } sipServerRegistrarUsersGroup OBJECT-GROUP OBJECTS { sipServerRegUserUri, sipServerRegUserAuthenticationFailures, sipServerRegUserDisconTime, sipServerRegContactDisplayName, sipServerRegContactURI, sipServerRegContactLastUpdated, sipServerRegContactExpiry, sipServerRegContactPreference } STATUS current DESCRIPTION "A collection of objects related to registered users." ::= { sipServerMIBGroups 6 } END8. IANA Considerations
The MIB modules defined in this document use the following IANA- assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry: +--------------+-------------------------+ | Descriptor | OBJECT IDENTIFIER value | +--------------+-------------------------+ | sipTC | { mib-2 148 } | | sipCommonMIB | { mib-2 149 } | | sipUAMIB | { mib-2 150 } | | sipServerMIB | { mib-2 151 } | +--------------+-------------------------+
9. Security Considerations
There are a number of management objects defined in the SIP-COMMON- MIB MIB module with a MAX-ACCESS clause of read-write and/or read- create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non- secure environment without proper protection can have a negative effect on network operations. The following read-create object in SIP-COMMON-MIB is used to configure the status code statistics that will be monitored by the SIP entity: sipCommonStatusCodeRowStatus: If this object is SET maliciously, it may result in an over- allocation of resources in a system for the purpose of accumulating and maintaining statistics. The following read-write objects in SIP-COMMON-MIB are used to configure the behavior of certain SNMP notifications potentially generated by a SIP entity: sipCommonStatusCodeNotifSend, sipCommonStatusCodeNotifEmitMode, sipCommonStatusCodeNotifThresh, sipCommonStatusCodeNotifInterval, sipCommonCfgServiceNotifEnable: If these objects are SET maliciously, it may result in a system and/or network performance impact due to the generation of SNMP notifications. Some of the readable objects in the MIB modules (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt the values of these objects when sending them over the network via SNMP. The following object values may contain private or confidential customer information like first name, last name, customer identification, location, company affiliation, the time the information was updated, etc. sipServerRegContactDisplayName, sipServerRegContactURI, sipServerRegContactLastUpdated and sipCommonCfgOrganization.
The sipCommonCfgTable table contains some objects that may help attackers gain knowledge about the status and operations of the SIP service. In particular, the object value of sipCommonCfgServiceOperStatus may indicate that the SIP entity is in congested state and may lead attackers to build additional service attacks to overload the system. The sipCommonCfgEntityType object indicates the type of SIP entity, and the sipCommonMethodSupportedTable table contains in the SIP- COMMON-MIB MIB module list of SIP methods supported by each entity in the system. Gaining access to this information may allow attackers to build method-specific attacks or use unsupported methods to create denial-of-service attack scenarios. In the SIP-UA-MIB MIB module, the sipUACfgServerTable contains the address of the SIP servers providing services to the UA, and obtaining this information may disclose some private or sensitive information about the SIP service usage. In the SIP-SERVER-MIB MIB module, the sipServerCfgProxyAuthMethod object defines the authentication methods supported by the server and may be used to build specific denial-of-service attackers targeted at the security mechanisms employed by the SIP entity. SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this set of MIB modules. It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see RFC 3410 [RFC3410]), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsi when bility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them.
10. Contributor Acknowledgments
We wish to thank the members of the IETF SIP and SIPPING working groups, and the SIP-MIB Design team for their comments and suggestions. Detailed comments were provided by Tom Taylor, Kavitha Patchayappan, Dan Romascanu, Cullen Jennings, Orit Levin, AC Mahendran, Mary Barnes, Rohan Mahy, Bob Penfield, Charles Eckel, and Dean Willis. Special thanks to Bert Wijnen for his expert reviews, which have greatly improved the SIP MIB modules.11. References
11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [RFC2788] Freed, N. and S. Kille, "Network Services Monitoring MIB", RFC 2788, March 2000. [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, December 2002. [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005.
11.2. Informative References
[RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet- Standard Management Framework", RFC 3410, December 2002. [RFC3262] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional Responses in Session Initiation Protocol (SIP)", RFC 3262, June 2002. [RFC4168] Rosenberg, J., Schulzrinne, H., and G. Camarillo, "The Stream Control Transmission Protocol (SCTP) as a Transport for the Session Initiation Protocol (SIP)", RFC 4168, October 2005.
Authors' Addresses
Kevin Lingle Cisco Systems, Inc. 7025 Kit Creek Road P.O. Box 14987 Research Triangle Park, NC 27709 US Phone: +1 919 476 2029 EMail: klingle@cisco.com Jean-Francois Mule CableLabs 858 Coal Creek Circle Louisville, CO 80027 US Phone: +1 303 661 9100 EMail: jf.mule@cablelabs.com Joon Maeng 5612 Sedona Drive Austin, TX 78759 US Phone: +1 512 418 0590 EMail: jmaeng@austin.rr.com Dave Walker EMail: drwalker@rogers.com
Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society.