Management Information Base for the Session Initiation Protocol (SIP)
Extracted elements (29)
The NETWORK-SERVICES-MIB framework (RFC 2788) was adopted to meet the requirement that a single system with a single SNMP agent can support multiple instances of various SIP MIB modules. Each SIP entity instance gets its own applIndex row, with recommended naming conventions such as 'sip_proxy1' or 'sip_registrar2' to ensure uniqueness.
The sipCommonStatusCodeNotifTable is defined as a separate augmenting table rather than adding notification control columns directly to sipCommonStatusCodeTable in order to keep status code notification control objects logically separate from the actual status code statistics counters.
The SipTCMethodName textual convention uses a variable-length OCTET STRING (1..100) rather than an enumeration so that the MIB can accommodate new IANA-registered SIP methods and experimental extension methods without requiring a module update. Extension methods must ensure no name collision with IANA-assigned values.
For a combined Proxy+Registrar+Redirect server managed as a single aggregate entity, a recommended naming order for applName is: Proxy listed first, Redirect second if present, Registrar always last (e.g., 'sip_proxy_redirect_registrar2'). This facilitates consistent agent behavior and management application expectations.
The 'testing' operational status value in sipCommonCfgServiceOperStatus has no direct equivalent in the NETWORK-SERVICES-MIB applOperStatus; it maps to 'up' for the applOperStatus. Similarly, 'unknown' has no corresponding applOperStatus value, requiring retention of the last known applOperStatus value.
A device implementing the SIP MIB MUST support the NETWORK-SERVICES-MIB and, at a minimum, MUST support the index and name objects (applIndex and applName) in the application table (applTable) to allow each instance of a SIP entity to be managed as a separate network service application.
An SNMP agent MUST implement the SIP-TC-MIB module plus the SIP-COMMON-MIB module and one of the SIP entity-type-specific MIB modules (SIP-SERVER-MIB or SIP-UA-MIB) as applicable for each instance of a SIP entity being managed. If a device has more than one SIP entity or multiple instances of the same entity type, it MUST implement multiple SIP modules.
Any object using the SipTCMethodName textual convention that supports experimental extension methods MAY return/accept method identifier values other than those sanctioned by IANA, but that system MUST ensure no collisions with officially assigned method names.
Entries created in sipCommonStatusCodeTable MUST NOT persist across reboots; this table is the mechanism by which specific SIP status codes are monitored on a per-method basis.
If the sipOperStatus is 'unknown', there is no corresponding value of applOperStatus; therefore, the last known value of applOperStatus SHOULD be maintained until sipOperStatus transitions to a value that can be mapped appropriately.
Support for sipCommonCfgServiceNotifEnable notifications is OPTIONAL; either none or all notification values MUST be supported. If notifications are supported, the default value SHOULD have sipCommonServiceColdStart and sipCommonServiceWarmStart enabled and sipCommonServiceStatusChanged disabled, and the value SHOULD persist across reboots.
The list of methods advertised by a SIP entity in the Allow header (RFC 3261 Section 20.5) MUST be consistent with the methods reflected in the sipCommonMethodSupportedTable.
The sipCommonStatusCodeNotifSend object MUST be set to 'true' for the emit mode specified in sipCommonStatusCodeNotifEmitMode to have any effect; it is RECOMMENDED that the desired emit mode be established before enabling notifications to avoid unintended behavior.
The value of applUptime MUST be identical to the value of sipCommonCfgServiceStartTime, and the value of applLastChange MUST be identical to the value of sipCommonCfgServiceLastChange defined in the SIP-COMMON-MIB module.
Timer D's default value MUST be equal to or greater than 32000 milliseconds for UDP transport, and its value MUST be 0 for TCP/SCTP transport, governing the time a server transaction can remain in the 'Completed' state.
Timer G's default value MUST be T1 for UDP transport, and its value MUST be 0 for reliable transport like TCP/SCTP; it controls the initial retransmit interval for final responses to INVITE requests.
When Timer J fires, the server MUST transition to the 'Terminated' state; Timer J reflects the maximum time a SIP server will wait to receive retransmissions of non-INVITE requests after entering the 'Completed' state.
When Timer K fires, the client MUST transition to the 'Terminated' state; its default value MUST be T4 for UDP transport and MUST be 0 for reliable transports like TCP/SCTP.
Four MIB modules are defined: SIP-TC-MIB (textual conventions), SIP-COMMON-MIB (objects common to all SIP entities), SIP-UA-MIB (user agent-specific objects), and SIP-SERVER-MIB (proxy, redirect, and registrar server objects). All are indexed via applIndex from the NETWORK-SERVICES-MIB.
sipCommonCfgServiceOperStatus defines seven operational states for a SIP entity: unknown(1), up(2), down(3), congested(4), restarting(5), quiescing(6), and testing(7). The 'testing' state maps to 'up' in the NETWORK-SERVICES-MIB applOperStatus.
sipCommonCfgTimerTable contains 14 configurable timer objects (A through K, T1, T2, T4) applicable to SIP user agents and stateful proxy servers. Timer T1 is the RTT estimate (default 500ms), T2 the maximum retransmit interval (default 4000ms), and T4 the maximum message network duration (default 5000ms).
sipCommonStatsRetryTable tracks retransmission statistics per SIP method, providing counters for total request retries (sipCommonStatsRetries), final response retransmissions (sipCommonStatsRetryFinalResponses), and non-final response retransmissions (sipCommonStatsRetryNonFinalResponses).
sipCommonStatusCodeNotifTable augments sipCommonStatusCodeTable and provides four notification control objects: sipCommonStatusCodeNotifSend (enable/disable), sipCommonStatusCodeNotifEmitMode (normal/oneShot/triggered), sipCommonStatusCodeNotifThresh (default 500), and sipCommonStatusCodeNotifInterval (default 60 seconds).
sipCommonSummaryStatsTable provides six aggregate counters per SIP entity: InRequests, OutRequests, InResponses, OutResponses, TotalTransactions (not applicable to stateless proxies), and DisconTime for detecting counter discontinuities.
SipTCEntityRole is a bit-map textual convention with five bits: other(0), userAgent(1), proxyServer(2), redirectServer(3), registrarServer(4). A single entity row may have multiple bits set to represent combined roles.
SipTCTransportProtocol is a bit-map textual convention with six bits: other(0), udp(1), tcp(2), sctp(3), tlsTcp(4), tlsSctp(5). It is used to indicate the transport protocols supported or active for a SIP entity.
This document requests IANA assignment of four MIB modules under mib-2: SIP-TC-MIB at mib-2 148, SIP-COMMON-MIB at mib-2 149, with SIP-UA-MIB and SIP-SERVER-MIB also assigned under mib-2. The document uses the existing IANA SIP Methods and Response Codes sub-registries at iana.org/assignments/sip-parameters.
Several MIB objects have MAX-ACCESS read-write or read-create, including sipCommonCfgServiceNotifEnable, sipCommonStatusCodeRowStatus, and status code notification controls. Unauthorized modification of these objects could disrupt SIP management operations or flood the network with notifications; SNMP security mechanisms (SNMPv3 USM) should be used to restrict write access.
The SIP MIB exposes configuration and statistics of SIP entities including organization names, transport protocols, port numbers, and registered user URIs (in sipServerRegUserTable). This information could be exploited by attackers for reconnaissance; network operators should restrict read access using SNMPv3 with authentication and privacy.