   SIP-REGISTRAR-MIB DEFINITIONS ::= BEGIN 
    
   IMPORTS 
        MODULE-IDENTITY, 
        OBJECT-TYPE, 
        Counter32, 
        Gauge32, 
        Unsigned32 
             FROM SNMPv2-SMI 
    
        DateAndTime, 
        RowStatus, 
        TimeStamp, 
        TruthValue 
             FROM SNMPv2-TC 
    
        MODULE-COMPLIANCE, 
        OBJECT-GROUP 
             FROM SNMPv2-CONF 
    
        SnmpAdminString 
             FROM SNMP-FRAMEWORK-MIB 
              
        SipServerActions 
             FROM SIP-TC 
    
        sipMIB 
             FROM SIP-MIB-SMI 
              
        applIndex 
             FROM NETWORK-SERVICES-MIB; 
    
   sipRegistrarMIB MODULE-IDENTITY 
        LAST-UPDATED   "200007080000Z" 
        ORGANIZATION   "IETF SIP Working Group, SIP MIB Team" 
        CONTACT-INFO 
                "SIP MIB Team email: sip-mib@egroups.com 
    
                 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-392-2029 
    
                 Co-editor  Joon Maeng 
                            VTEL Corporation 
                 postal:    108 Wild Basin Rd. 
                            Austin, TX 78746 
                            USA 
                 email:     joon_maeng@vtel.com 
                 phone:     +1-512-437-4567 
    
                 Co-editor  Dave Walker 
                            SS8 Networks, Inc. 
                 postal:    80 Hines Road 
                            Kanata, ON  K2K 2T8 
                            Canada 
                 email:     drwalker@ss8networks.com 
                 phone:     +1 613 592 2100" 
        DESCRIPTION 
                "Initial version of Session Initiation Protocol (SIP) 
                 Registrar MIB module.   
                  
                 SIP is an application-layer signalling 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 2543 (March  
                 1999). 
    
                 A Registrar is a server that accepts REGISTER 
                 requests.  A Registrar is typically co-located with a 
                 Proxy or Redirect Server." 
        ::= { sipMIB 5 } 
    
    
   -- 
   -- sipReg group 
   -- This group contains MIB objects related to SIP Registrars. 
   -- 
   sipRegCfg       OBJECT IDENTIFIER ::= { sipRegistrarMIB 1 } 
   sipRegStats     OBJECT IDENTIFIER ::= { sipRegistrarMIB 2 } 
    
    
   -- 
   -- Registrar Configuration 
   -- 
   sipRegCfgTable OBJECT-TYPE 
       SYNTAX     SEQUENCE OF SipRegCfgEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This table contains configuration objects applicable 
             SIP registrars.  Each row represents those objects  
             for a particular SIP registrar present in this system.  
             The instances of SIP registrars are uniquely identified  
             by applIndex." 
       ::= { sipRegCfg 1 } 
    
   sipRegCfgEntry OBJECT-TYPE 
       SYNTAX     SipRegCfgEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "A row of common configuration." 
       INDEX { applIndex } 
       ::= { sipRegCfgTable 1 } 
    
   SipRegCfgEntry ::= 
       SEQUENCE { 
                sipRegAllowThirdParty           TruthValue, 
                sipRegContactDfltExpiryDuration Unsigned32, 
                sipRegContactDfltExpiryDate     DateAndTime, 
                sipRegMaxContactExpiryDate      Unsigned32, 
                sipRegRespHasContacts           TruthValue, 
                sipRegMaxUsers                  Unsigned32, 
                sipRegCurrentUsers              Gauge32 
       } 
    
   sipRegAllowThirdParty OBJECT-TYPE 
       SYNTAX     TruthValue 
       MAX-ACCESS read-write 
       STATUS     current 
       DESCRIPTION 
            "This object specifies whether or not the Registrar should 
             allows third party registrations. In third-party 
             registration, the entity issuing the request (in the From 
             header) is different from the entity being registered (in 
             the To header) to whom the 
             provided Contact information applies. 
             
             If the value of this object is TRUE, the Registrar allows 
             third party registrations.  If the value is FALSE, third 
             party registrations are rejected: a 403 Forbidden status 
             code is returned to the requestor." 
       REFERENCE 
            "RFC 2543, Section 4.2.6" 
       ::= { sipRegCfgEntry 1 } 
    
   sipRegContactDfltExpiryDuration OBJECT-TYPE 
       SYNTAX     Unsigned32 
       UNITS      "seconds" 
       MAX-ACCESS read-write 
       STATUS     current 
   DESCRIPTION 
            "This object specifies the default expiration (time-to- 
             live) of Contact information that is provided by User 
             Agents when registering with this Registrar.  This value 
             is only used when no expiration has been specified by the 
             user in the REGISTER 
             request. 
    
             If the value is applied to a registration and is different 
             from the default (one hour), the server must return the 
             value to the registered User Agent. 
    
             The value contained in this object only applies if the 
             value of the sipContactDfltExpiryDate object is NULL.  If 
             the value of this object applies, and is zero, then no 
             default expiry is applied to registered contact 
             information." 
       REFERENCE 
             "RFC 2543, Section 4.2.6" 
       DEFVAL { 3600 } 
       ::= { sipRegCfgEntry 2 } 
    
   sipRegContactDfltExpiryDate OBJECT-TYPE 
       SYNTAX     DateAndTime 
       MAX-ACCESS read-write 
       STATUS     current 
       DESCRIPTION 
            "This object specifies the default expiration date (time- 
             to-live) of Contact information that is provided by User 
             Agents when registering with this Registrar.  This value 
             is only used when no expiration has been specified by the 
             user in the REGISTER request. 
    
             If this value is applied to a registration, the server 
             must return the value to the registered User Agent. 
              
             The value contained in this object only applies if the 
             value of the sipContactDfltExpiryDuration object is zero. 
             If the value of this object applies, and is NULL, then no 
             default expiry is applied to 
             registered contact information." 
       REFERENCE 
            "RFC 2543, Section 4.2.6" 
       ::= { sipRegCfgEntry 3 } 
    
   sipRegMaxContactExpiryDate OBJECT-TYPE 
       SYNTAX     Unsigned32 (0..4294967295) 
       UNITS      "seconds" 
       MAX-ACCESS read-write 
       STATUS     current 
       DESCRIPTION 
            "This object specifies 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." 
       DEFVAL { 4294967295 } 
       ::= { sipRegCfgEntry 4 } 
    
   sipRegRespHasContacts OBJECT-TYPE 
       SYNTAX     TruthValue 
       MAX-ACCESS read-write 
       STATUS     current 
       DESCRIPTION 
            "This object specifies whether or not the Registrar should 
             return all currently reachable locations for a 
             successfully registering party in the REGISTER response 
             message. 
    
             If the value of this object is TRUE, the Registrar returns 
             the locations in the REGISTER response.  If the value is 
             FALSE, no location information is provided." 
       ::= { sipRegCfgEntry 5 } 
    
   sipRegMaxUsers OBJECT-TYPE 
       SYNTAX     Unsigned32 (1..4294967295) 
       MAX-ACCESS read-only 
       STATUS     current 
       DESCRIPTION 
            "This object specifies the maximum number of users that the 
             registrar supports.  The current number of users is 
             reflected by sipRegCurrentUsers." 
       ::= { sipRegCfgEntry 6 } 
    
   sipRegCurrentUsers OBJECT-TYPE 
       SYNTAX     Gauge32 (0..4294967295) 
       MAX-ACCESS read-only 
       STATUS     current 
       DESCRIPTION 
            "This object specifies the number of users currently 
             configured on the registrar." 
       ::= { sipRegCfgEntry 7 } 
    
   -- 
   -- Per User Information 
   -- 
   sipRegUserTable OBJECT-TYPE 
       SYNTAX     SEQUENCE OF SipRegUserEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This table contains information on all users registered to 
             each Registrar in this system.  The instances of SIP  
             Registrar are uniquely identified by applIndex." 
       ::= { sipRegCfg 2 } 
    
   sipRegUserEntry OBJECT-TYPE 
       SYNTAX     SipRegUserEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This entry contains information for a single user 
             registered to this Registrar." 
       INDEX { applIndex, sipUserIndex } 
       ::= { sipRegUserTable 1 } 
    
   SipRegUserEntry ::= 
       SEQUENCE { 
                sipUserIndex                         Unsigned32, 
                sipUserUri                           SnmpAdminString, 
                sipUserPassword                      OCTET STRING, 
                sipUserAuthenticationFailures        Counter32, 
                sipUserTableRowStatus                RowStatus 
       } 
    
   sipUserIndex OBJECT-TYPE 
       SYNTAX     Unsigned32 (1..4294967295) 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This object uniquely identifies a conceptual row in the 
             table." 
       ::= { sipRegUserEntry 1 } 
    
   sipUserUri OBJECT-TYPE 
       SYNTAX     SnmpAdminString 
       MAX-ACCESS read-create 
       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." 
       ::= { sipRegUserEntry 2 } 
    
   sipUserPassword OBJECT-TYPE 
       SYNTAX     OCTET STRING (SIZE(0..255)) 
       MAX-ACCESS read-create 
       STATUS     current 
       DESCRIPTION 
            "This object specifies the password that the user must 
             enter when being authenticated." 
       ::= { sipRegUserEntry 3 } 
    
   sipUserAuthenticationFailures 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." 
       ::= { sipRegUserEntry 4 } 
    
   sipUserTableRowStatus OBJECT-TYPE 
       SYNTAX     RowStatus 
       MAX-ACCESS read-create 
       STATUS     current 
       DESCRIPTION 
            "The row status of the entry. This object is required 
             to create or delete rows remotely by a manager." 
       ::= { sipRegUserEntry 5 } 
    
   -- 
   -- Per Contact Information 
   -- 
   sipContactTable OBJECT-TYPE 
       SYNTAX     SEQUENCE OF SipContactEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This table contains information on every location where a 
             registered user (specified by sipUserIndex) wishes to be  
             found (i.e. has provided Contact information) to each SIP 
             Registrar in this system. 
              
             The instances of SIP Registrar are uniquely identified by 
             applIndex." 
       ::= { sipRegCfg 3 } 
    
   sipContactEntry OBJECT-TYPE 
       SYNTAX     SipContactEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This entry contains information for a single Contact. 
             Multiple contacts may exist for a single user." 
       INDEX { applIndex, sipUserIndex, sipContactIndex } 
       ::= { sipContactTable 1 } 
    
   SipContactEntry ::= 
       SEQUENCE { 
                sipContactIndex                Unsigned32, 
                sipContactDisplayName          SnmpAdminString, 
                sipContactURI                  SnmpAdminString, 
                sipContactLastUpdated          TimeStamp, 
                sipContactExpiry               DateAndTime, 
                sipContactAction               SipServerActions, 
                sipContactPreference           OCTET STRING, 
                sipContactRetryAfter           DateAndTime 
       } 
    
   sipContactIndex OBJECT-TYPE 
       SYNTAX     Unsigned32 (1..4294967295) 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "Along with the sipUserIndex, this object uniquely 
             identifies a conceptual row in the table." 
       ::= { sipContactEntry 1 } 
    
   sipContactDisplayName 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 URLs of 
             sip:BigGuy@sip.northpole.ca or 
             sip:sclaus817@sip.mobile.com, respectively." 
       ::= { sipContactEntry 2 } 
    
   sipContactURI OBJECT-TYPE 
       SYNTAX     SnmpAdminString 
       MAX-ACCESS read-only 
       STATUS     current 
       DESCRIPTION 
            "This object contains either a SIP URL or a 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." 
       ::= { sipContactEntry 3 } 
    
   sipContactLastUpdated 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." 
       ::= { sipContactEntry 4 } 
    
   sipContactExpiry 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 (Expires header or 
             expiry parameter in the Contact information), or a system 
             default can be applied." 
       ::= { sipContactEntry 5 } 
    
   sipContactPreference OBJECT-TYPE 
       SYNTAX     OCTET STRING (SIZE(0..255)) 
       MAX-ACCESS read-only 
       STATUS     current 
       DESCRIPTION 
            "This object specifies the preference for this contact 
             relative to all other active contacts for same user.  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 2543, Section 6.13" 
       ::= { sipContactEntry 6 } 
    
   sipContactAction OBJECT-TYPE 
       SYNTAX     SipServerActions 
       MAX-ACCESS read-only 
       STATUS     current 
       DESCRIPTION 
            "This object indicates whether the user wanted the server 
             to act as a redirect server or as a proxy server.  It is 
             specified by the optional 'action' parameter in the 
             Contact header." 
       ::= { sipContactEntry 7 } 
    
   sipContactRetryAfter OBJECT-TYPE 
       SYNTAX     DateAndTime 
       MAX-ACCESS read-only 
       STATUS     current 
       DESCRIPTION 
            "This object indicates that the contact information is 
             currently inactive, and that it should only be activated 
             after the date and time specified by the object.  This 
             value is provided by a user when deleting contact 
             information using a REGISTER request containing a Retry- 
             After header." 
       REFERENCE 
            "RFC 2543, Section 6.32" 
       ::= { sipContactEntry 8 } 
    
    
    
    
   -- 
   -- Registrar Statistics 
   -- 
   sipRegStatsTable OBJECT-TYPE 
       SYNTAX     SEQUENCE OF SipRegStatsEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "This table contains the summary statistics objects 
             applicable to all SIP Registrars in this system.   
             Each row represents those objects for a particular  
             SIP Registrar.  The instances of SIP Registrars are  
             uniquely identified by applIndex." 
       ::= { sipRegStats 1 } 
    
   sipRegStatsEntry OBJECT-TYPE 
       SYNTAX     SipRegStatsEntry 
       MAX-ACCESS not-accessible 
       STATUS     current 
       DESCRIPTION 
            "A row of summary statistics." 
       INDEX { applIndex } 
       ::= { sipRegStatsTable 1 } 
    
   SipRegStatsEntry ::= 
       SEQUENCE { 
                sipRegAcceptedRegistrations Counter32, 
                sipRegRejectedRegistrations Counter32 
       } 
    
   sipRegAcceptedRegistrations 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." 
       ::= { sipRegStatsEntry 1 } 
    
   sipRegRejectedRegistrations 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." 
       ::= { sipRegStatsEntry 2 } 
    
    
   -- 
   -- Notifications 
   -- 
   sipRegMIBNotif         OBJECT IDENTIFIER ::= { sipRegistrarMIB 3 } 
    
   -- none at this time 
    
    
    
   -- 
   -- Conformance 
   -- 
   sipRegMIBConformance       
     OBJECT IDENTIFIER ::= { sipRegistrarMIB 4 } 
   sipRegMIBCompliances       
     OBJECT IDENTIFIER ::= { sipRegMIBConformance 1 } 
   sipRegMIBGroups            
     OBJECT IDENTIFIER ::= { sipRegMIBConformance 2 } 
    
    
   -- 
   -- Compliance Statements 
   -- 
   sipRegCompliance MODULE-COMPLIANCE 
       STATUS     current 
       DESCRIPTION 
            "The compliance statement for SIP entities." 
    
       MODULE -- this module 
            MANDATORY-GROUPS { sipRegistrarConfigGroup, 
                               sipRegistrarStatsGroup } 
   --                            sipRegistrarNotifGroup } 
    
       ::= { sipRegMIBCompliances 1 } 
    
    
   sipRegistrarConfigGroup OBJECT-GROUP 
       OBJECTS { 
               sipRegAllowThirdParty, 
               sipRegContactDfltExpiryDuration, 
               sipRegContactDfltExpiryDate, 
               sipRegMaxContactExpiryDate, 
               sipRegRespHasContacts, 
               sipRegMaxUsers, 
               sipRegCurrentUsers, 
               sipUserUri, 
               sipUserPassword, 
               sipUserAuthenticationFailures, 
               sipUserTableRowStatus, 
               sipContactDisplayName, 
               sipContactURI, 
               sipContactLastUpdated, 
               sipContactExpiry, 
               sipContactPreference, 
               sipContactAction, 
               sipContactRetryAfter 
       } 
       STATUS  current 
       DESCRIPTION 
            "A collection of objects providing configuration for 
             SIP Registrars." 
       ::= { sipRegMIBGroups 1 } 
    
   sipRegistrarStatsGroup OBJECT-GROUP 
       OBJECTS { 
               sipRegAcceptedRegistrations, 
               sipRegRejectedRegistrations 
       } 
       STATUS  current 
       DESCRIPTION 
            "A collection of objects providing statistics for 
             SIP Registrars." 
       ::= { sipRegMIBGroups 2 } 
    
   --sipRegistrarNotifGroup NOTIFICATION-GROUP 
   --    OBJECTS { 
   -- none at this time 
   --    } 
   --    STATUS  current 
   --    DESCRIPTION 
   --         "A collection of notifications defined for SIP 
   --          Registrars." 
   --    ::= { sipRegMIBGroups 3 } 
    
   END 
