-- ****************************************************************************
-- ****************************************************************************
--
--  File: MX-SIP-MIB.my
--
--  Package: MediatrixMibs
--
-- ****************************************************************************
-- ****************************************************************************
--
--      Copyright(c) 2001-2005 Mediatrix Telecom, Inc.
--      Copyright(c) 2007 Media5 Corporation. ("Media5")
--
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Media5.
--
--   Media5 reserves all rights to this document as well as to the Intellectual
--   Property of the document and the technology and know-how that it includes
--   and represents.
--
--   This publication cannot be reproduced, neither in whole nor in part, in
--   any form whatsoever without written prior approval by Media5.
--
--   Media5 reserves the right to revise this publication and make changes at
--   any time and without the obligation to notify any person and/or entity of
--   such revisions and/or changes.
--
-- ****************************************************************************
-- ****************************************************************************

MX-SIP-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-IDENTITY,
        OBJECT-TYPE,
        Unsigned32
    FROM SNMPv2-SMI
        OBJECT-GROUP,
        MODULE-COMPLIANCE
    FROM SNMPv2-CONF
        ifIndex
    FROM RFC1213-MIB
    	MxIpAddress,
        MxIpHostName,
        MxIpConfigSource,
        MxIpPort,
        MxAdvancedIpPort,
        MxIpSelectConfigSource,
        MxIpDhcpSiteSpecificCode,
        MxEnableState
    FROM MX-TC
        groupIndex
    FROM MX-LINE-GROUPING-MIB
        ipAddressStatus,
        ipAddressConfig,
        mediatrixIpTelephonySignaling
    FROM MX-SMI;

sip OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION "This MIB contains SIP configuration objects."
    ::= { mediatrixIpTelephonySignaling 20 }

sipMIB MODULE-IDENTITY
    LAST-UPDATED "200808040000Z"
    ORGANIZATION "Mediatrix Telecom"
    CONTACT-INFO "Mediatrix Telecom
                  4229, Garlock Street
                  Sherbrooke (Quebec)
                  Canada
                  Phone: (819) 829-8749
                  "
    DESCRIPTION "This MIB contains SIP configuration objects."

    -- ************************************************************************
    -- Revision history
    -- ************************************************************************
    REVISION    "200808040000Z"
    DESCRIPTION "Added sipConference group."
    REVISION    "200807290000Z"
    DESCRIPTION "Updated the description of MIB variable sipReRegistrationTime."
    REVISION    "200807160000Z"
    DESCRIPTION "Modified the sipUAMainUsername description to reflect that empty
                 usernames are no longer accepted and factory resets set this
                 variable to 333000X, with X being the port number."
    REVISION    "200802270000Z"
    DESCRIPTION "Added the sipUAGroupRegistrationUsername variable to the sipUAGroupConfigTable."
    REVISION    "200706130000Z"
    DESCRIPTION "Added sipDomain variable."
    REVISION    "200705180000Z"
    DESCRIPTION "Added sipUAIfAuthenticationTable.sipUAAuthValidateRealm,
                 sipUnitAuthenticationTable.sipUnitAuthValidateRealm and
                 sipUAGroupAuthenticationTable.sipUAGroupAuthValidateRealm
                 variables."
    REVISION    "200704180000Z"
    DESCRIPTION "Added sipPresenceCompositorHost and sipPresenceCompositorPort.
                 Added sipPresenceCompositorStaticHost,
                 sipPresenceCompositorStaticPort and
                 sipPresenceCompositorDhcpSiteSpecificCode.
                 Added group sipPublication.
                 Added sipPublicationCmdRefresh, sipPublicationRefreshTime and
                 sipPublicationProposedExpirationValue."
    REVISION    "200603060000Z"
    DESCRIPTION "Further modified the sipPort and sipTransportEnable descriptions."
    REVISION    "200506280000Z"
    DESCRIPTION "Modified the sipPort and sipTransportEnable descriptions."
    REVISION    "200504190000Z"
    DESCRIPTION "Added sipTrustedSources."
    REVISION    "200502040000Z"
    DESCRIPTION "Added sipTransportContactEnable."
    REVISION    "200411020000Z"
    DESCRIPTION "Added sipRegistrationProposedExpirationValue."
    REVISION    "200312010000Z"
    DESCRIPTION "Increased sipReRegistrationTime range to allow 0."
    REVISION    "200311190000Z"
    DESCRIPTION "Added an explanatory note to the the description of SIP server
                 variables used  to set host port numbers.
                 Updated sipPort description."
    REVISION    "200310200000Z"
    DESCRIPTION "Added sipReRegistrationTime."
    REVISION    "200308290000Z"
    DESCRIPTION "Adjusted minimum ranges of session timer variables."
    REVISION    "200308140000Z"
    DESCRIPTION "sipPenaltyBoxEnable is disabled by default."
    REVISION    "200306260000Z"
    DESCRIPTION "Added sipGrouping section."
    REVISION    "200306130000Z"
    DESCRIPTION "Better description of the penalty box feature."
    REVISION    "200305260000Z"
    DESCRIPTION "Added sipPenaltyBox configuration."
    REVISION    "200304310000Z"
    DESCRIPTION "Added sipTransport group.
                 Renamed sipRegistrations to sipRegistration and
                 sipRegistrationsCmdRefresh sipRegistrationCmdRefresh.
                 Made visible the authentication index of the
                 sipUnitAuthenticationTable and sipUAIfAuthenticationTable
                 tables."
    REVISION    "200303110000Z"
    DESCRIPTION "Update outbound proxy description."
    REVISION    "200302240000Z"
    DESCRIPTION "Removed obsolete sipReplacesConfig."
    REVISION    "200302170000Z"
    DESCRIPTION "Updated Session timer descriptions."
    REVISION    "200212170000Z"
    DESCRIPTION "Added the sipRegistrations node and the
                 sipRegistrationsCmdRefresh variable under it."
    REVISION    "200212020000Z"
    DESCRIPTION "sipPort type modified from MxIpPort to MxAdvancedIpPort and
                 default value modified from 5060 to 0."
    REVISION    "200210010000Z"
    DESCRIPTION "Obsoleted sipReplacesConfig (moved to experimental)."
    REVISION    "200208280000Z"
    DESCRIPTION "Updated sipTransferConfig to include configuration of
                 Require for replaces.  Also renamed to sipReplacesConfig."
    REVISION    "200208120000Z"
    DESCRIPTION "Added sipTransferConfig."
    REVISION    "200206180000Z"
    DESCRIPTION "Updated session timer description."
    REVISION    "200206180000Z"
    DESCRIPTION "Updated Registrar and Proxy comments with regards to SRV
                 records."
    REVISION    "200112110000Z"
    DESCRIPTION "Creation"
    ::= { sip 1 }

sipMIBObjects  OBJECT IDENTIFIER ::= { sipMIB 1 }
sipConformance OBJECT IDENTIFIER ::= { sipMIB 2 }

    -- ************************************************************************
    -- Basic SIP Variables
    -- ************************************************************************
    sipPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Port on which the SIP user agent server (UAS) will be listening for incoming SIP
                     traffic.

                     This value applies to all transports (e.g. UDP, TCP, etc.).

                     Note: If set to 0, the default SIP port, 5060, will be used.

                     This variable's semantics are different depending on the software version.
                     Please refer to the documentation shipped with your device for more
                     details."
        DEFVAL      { 0 }
        ::=  {  sipMIBObjects  5  }

    sipDomain OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..255))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP domain name. If not empty, the address of record uses
                     this string instead of the home domain proxy host (refer
                     to the variable 'sipHomeDomainProxyStaticHost')."
        DEFVAL      { "" }
        ::=  {  sipMIBObjects  6  }


-- ************************************************************************
-- User Agent information
-- ************************************************************************
    sipUAIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipUAIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the user agent configuration variables. A
                     user agent is a logical entity that can act as both client
                     and server for the duration of a dialog.  The informations
                     contained in this table will be used to dynamically create
                     the To, From and Contact headers used in the request sent
                     by the UAC."
        ::= { sipMIBObjects  10 }

        sipUAIfEntry OBJECT-TYPE
            SYNTAX      SipUAIfEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP user agent parameter entries."
            INDEX       {
                            ifIndex
                        }
            ::= { sipUAIfTable 1 }

            SipUAIfEntry ::= SEQUENCE
                {
                    sipUAMainUsername OCTET STRING,
                    sipUADisplayName OCTET STRING,
                    sipUAOtherAcceptedUsernames OCTET STRING,
                    sipUAMinimumSessionExpirationDelay Unsigned32,
                    sipUAMaximumSessionExpirationDelay Unsigned32
                }

        sipUAMainUsername OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..255))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "A string that uniquely identifies this endpoint in the domain.
                         For example, a telephone number.

                         This string is used in the creation of the Contact and From headers.
                         The SIP From header carries the permanent location (IP address,
                         home domain) where the endpoint is.
                         The SIP Contact header carries the CURRENT
                         location (IP address) where the endpoint can be reached.

                         Contact headers are used in two ways:

                         First, contacts are registered to the SIP registrar.
                         This enables callers to be redirected to the endpoint's
                         current location.

                         Second, a contact header is sent along with any request
                         the UA sends (e.g.: INVITE), and will be used by the target
                         UA as a return address for later requests sent by the
                         target to this endpoint.

                         This variable cannot be set to an empty value and is
                         reset to 333000X during a factory reset, the X digit
                         being the port number."
            DEFVAL { "" }
            ::=  {  sipUAIfEntry  10 }

        sipUADisplayName OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..255))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Friendly name for SIP User Agent. A friendly name or display
                         name is meant to contain a descriptive version of the URI,
                         and is intended to be displayed to a user interface."
            DEFVAL { "" }
            ::=  {    sipUAIfEntry  15 }

        sipUAOtherAcceptedUsernames OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..255))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "A comma-separated list of usernames that the endpoint will
                         recognise as its own, but will NOT register in contacts
                         sent to the registrar.

                         Only the username in sipUAMainUsername is registered.

                         This variable can be used to add variations on the main
                         user name. For example, let's say that the main user name is
                         a telephone number, 555-1111. Variations could be the
                         prefixing of the local area or country code, such as
                         819-555-1111.

                         This value can contain multiple usernames. These must
                         be separated by a ',' character, such as:
                         user1, user2, 5552222, 18195552222"
            DEFVAL { "" }
            ::=  {  sipUAIfEntry  20 }

        sipUAMaximumSessionExpirationDelay OBJECT-TYPE
            SYNTAX  Unsigned32 (0 | 180..3600)
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Suggested maximum time for the periodical session refreshes.

                         This value will be reflected in the Session-Expires header.

                         Increasing the maximum will help to reduce network traffic,
                         but will also make 'dead' calls longer to detect.

                         This value is expressed in seconds (s).

                         To disable the session timer service, set the maximum session
                         timer expiration value to 0. However, this is not recommended since
                         it will make 'dead' calls impossible to detect.


                         Questions & Answers
                         ---------------------------------------------

                         Q - What is the session timer extension?

                         A - The session timer extension allows the detection of the premature end of a
                             call caused by a network problem or a peer's failure.

                             The session timer mechanism simply resends an INVITE every n seconds.
                             A sucessful response (200 OK) to this INVITE will signify that the peer
                             is still alive and reachable.  A timeout to this INVITE may mean that there
                             are problems in the signaling path, or that the peer is simply not there
                             anymore.  In that case the call will be shut down using normal SIP means.


                         Q - SDP in Session Timer reINVITEs:

                         A - The reINVITE is sent with the last SDP that was negotiated.
                             Reception of a session timer reinvite should not modify the
                             connection characteristics.


                         Q - Relation between minimum and maximum values:

                         A - A UA that receives a Session-Expires header whose value is smaller than the
                             minimum it is willing to accept will reply a 422 Timer too low to the
                             INVITE and terminate the call.  The phone will not ring.

                             It is up to the caller to decide what to do when it receives a 422 to its
                             INVITE. Mediatrix units will automatically retry the INVITE, with a
                             Session-Expires value equal to the minimum value that the UAS was ready to
                             accept (found in the Min-SE header). This means that the maximum value as set
                             in the Mediatrix unit might not be respected. This has the advantageous effect
                             of establishing the call even if the two endpoints have conflicting values.
                             Mediatrix units will also keep retrying as long as they get 422 answers with
                             different Min-SE values.


                         Q - Who refreshes?

                         A - Re-sending a session timer INVITE is referred to as refreshing the session.
                             Normally, the UAS that receives the INVITE will have the last
                             word on who refreshes.  Mediatrix units will always let the UAC
                             (caller) do the refreshes if the caller supports session timers.
                             In the case the caller does not support session timers, the
                             Mediatrix unit will assume the role of the refresher.


                         Also see sipUAMinimumSessionExpirationDelay."
            DEFVAL { 3600 }
            ::=  {  sipUAIfEntry 30}

        sipUAMinimumSessionExpirationDelay OBJECT-TYPE
            SYNTAX  Unsigned32 (180..3600)
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Minimum value for the periodical session refreshes.

                         This value will be reflected in the Min-SE header.

                         The Min-SE value is a threshold that proxies and/or UAs on the
                         signaling path are not allowed to go under.

                         Increasing the minimum will help to reduce network traffic,
                         but will also make 'dead' calls longer to detect.

                         This value is expressed in seconds (s).

                         Also see sipUAMaximumSessionExpirationDelay."
            DEFVAL { 1800 }
            ::=  {  sipUAIfEntry  35 }


    -- ************************************************************************
    -- Authentication per port table
    -- ************************************************************************
    sipUAIfAuthenticationTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipUAIfAuthenticationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the user agent authentication configuration variables.
                     Authentication information adds some level of security."
        ::= { sipMIBObjects  15 }

        sipUAIfAuthenticationEntry OBJECT-TYPE
            SYNTAX      SipUAIfAuthenticationEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP user agent authentication parameter entries."
            INDEX       {
                            ifIndex,
                            sipUAAuthIndex
                        }
            ::= { sipUAIfAuthenticationTable 1 }

            SipUAIfAuthenticationEntry ::= SEQUENCE
                {
                    sipUAAuthIndex Unsigned32,
                    sipUAAuthRealm OCTET STRING,
                    sipUAAuthUsername OCTET STRING,
                    sipUAAuthPassword OCTET STRING,
                    sipUAAuthValidateRealm MxEnableState
                }

        sipUAAuthIndex OBJECT-TYPE
            SYNTAX  Unsigned32 (1..10)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION "Authentication index for this row."
            ::= { sipUAIfAuthenticationEntry 10 }

        sipUAAuthRealm OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "When authentication informations are required from users,
                         the realm identifies who requested the information."
            DEFVAL { "" }
            ::=  { sipUAIfAuthenticationEntry 15 }

        sipUAAuthUsername OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "A string that will uniquely identify this endpoint in
                         the realm, used for authentication purposes. The username
                         always maps to a password."
            DEFVAL { "" }
            ::=  { sipUAIfAuthenticationEntry 20 }

        sipUAAuthPassword OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "User password."
            DEFVAL { "" }
            ::=  { sipUAIfAuthenticationEntry 25 }

        sipUAAuthValidateRealm OBJECT-TYPE
            SYNTAX  MxEnableState
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "When set to disable, the current user credentials are
                         valid for any realm. When set to enable, the user credentials
                         are used only for a specific realm set in the sipUAAuthRealm
                         variable."

            DEFVAL { enable }
            ::=  { sipUAIfAuthenticationEntry 30 }


    -- ************************************************************************
    -- SipServer IP address: Placed in the mediatrixMgmt.ipAddressStatus and
    --                       in mediatrixConfig.ipAddressConfig.
    -- ************************************************************************

    ipAddressStatusSipServer OBJECT IDENTIFIER ::= { ipAddressStatus 70 }
    ipAddressConfigSipServer OBJECT IDENTIFIER ::= { ipAddressConfig 70 }

    -- ************************************************************************
    -- SipServer Status variables
    -- ************************************************************************

    sipServerConfigSource OBJECT-TYPE
        SYNTAX      MxIpConfigSource
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the source used for the provisioning of
                     the SIP Server MIB objects."
        DEFVAL { dhcp }
        ::=  {  ipAddressStatusSipServer  1  }

    sipHomeDomainProxyHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP proxy server IP address or domain name.

                     An intermediary entity that acts as both a server and
                     a client for the purpose of making requests on behalf
                     of other clients. A proxy server primarily plays the role
                     of routing, which means its job is to ensure that a request
                     is passed on to another entity that can further process
                     the request. Proxies are also useful for enforcing policy
                     and for firewall traversal. A proxy interprets, and, if necessary,
                     rewrites parts of a request message before forwarding it.


                     Note: If using a domain name that is bound to a SRV record,
                     see sipHomeDomainProxyPort."
        DEFVAL      { "192.168.0.10" }
        ::=  {  ipAddressStatusSipServer 5 }

    sipHomeDomainProxyPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP proxy server IP port number.

                     Note: If sipHomeDomainProxyHost corresponds to a domain name that
                     is bound to a SRV record, the port must be set to 0 in
                     order for the unit to perform DNS SRV queries; otherwise
                     only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressStatusSipServer 10  }

    sipOutboundProxyHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP outbound proxy server IP address or domain name.

                     To disable the outbound proxy, set it to '0.0.0.0'.

                     From RFC3261:
                     A proxy that receives requests from a client, even though it may not be the
                     server resolved by the Request-URI. Typically, a UA is manually configured with
                     an outbound proxy, or can learn about one through auto-configuration protocols.

                     When enabled, the initial route for all SIP requests will contain the outbound
                     proxy address, suffixed with the loose routing parameter 'lr'. The Request-URI
                     still contains the home domain proxy address. Requests are directed to the first
                     route (the outbound proxy).

                     Note: If using a domain name that is bound to a SRV record,
                     see sipOutboundProxyPort."
        DEFVAL      { "0.0.0.0" }
        ::=  {  ipAddressStatusSipServer 15 }

    sipOutboundProxyPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP outbound proxy server IP port number.

                     Note: If sipOutboundProxyHost corresponds to a domain name that
                     is bound to a SRV record, the port must be set to 0 in
                     order for the unit to perform DNS SRV queries; otherwise
                     only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressStatusSipServer 20  }

    sipRegistrarHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP registrar server IP address or domain name.

                     A registrar is a server that accepts REGISTER requests,
                     and places the information it receives in those requests
                     into the location service for the domain it handles.

                     Note: If using a domain name that is bound to a SRV record,
                     see sipRegistrarPort."
        DEFVAL      { "192.168.0.10" }
        ::=  {  ipAddressStatusSipServer  30  }

    sipRegistrarPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP registrar server IP port number.

                     Note: If sipRegistrarHost corresponds to a domain name that
                     is bound to a SRV record, the port must be set to 0 in
                     order for the unit to perform DNS SRV queries; otherwise
                     only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressStatusSipServer  35 }

    sipPresenceCompositorHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP Presence Compositor server IP address or domain name.

                     From RFC 3903: A Presence Compositor server is a User Agent
                     Server (UAS) that processes PUBLISH requests, and is
                     responsible for compositing event state into a complete,
                     composite event state of a resource for a presentity.

                     To disable publication, set it to '0.0.0.0'.

                     Note: If using a domain name that is bound to a SRV record,
                     see sipPresenceCompositorPort."
        DEFVAL      { "0.0.0.0" }
        ::=  {  ipAddressStatusSipServer  40  }

    sipPresenceCompositorPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "SIP Presence Compositor server IP port number.

                     Note: If sipPresenceCompositorHost corresponds to a domain
                     name that is bound to a SRV record, the port must be set to
                     0 in order for the unit to perform DNS SRV queries;
                     otherwise only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressStatusSipServer  45 }


    -- ************************************************************************
    -- SipServer Configuration variables
    -- ************************************************************************

    sipServerSelectConfigSource OBJECT-TYPE
        SYNTAX      MxIpSelectConfigSource
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Indicates the source to be used for the provisioning of
                     the SIP Server registrar MIB objects."
        DEFVAL      { dhcp }
        ::=  {  ipAddressConfigSipServer 5 }

    -- ************************************************************************
    -- Static server values
    -- ************************************************************************
ipAddressConfigSipServerStatic OBJECT IDENTIFIER  ::=  {  ipAddressConfigSipServer  10  }

    sipHomeDomainProxyStaticHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP proxy server IP address or domain name.

                     An intermediary entity that acts as both a server and
                     a client for the purpose of making requests on behalf
                     of other clients. A proxy server primarily plays the role
                     of routing, which means its job is to ensure that a request
                     is passed on to another entity that can further process
                     the request. Proxies are also useful for enforcing policy
                     and for firewall traversal. A proxy interprets, and, if necessary,
                     rewrites parts of a request message before forwarding it.

                     Note: If using a domain name that is bound to a SRV record,
                     see sipHomeDomainProxyStaticPort."
        DEFVAL      { "192.168.0.10" }
        ::=  {  ipAddressConfigSipServerStatic  5 }

    sipHomeDomainProxyStaticPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP proxy server IP port number.

                     Note: If sipHomeDomainProxyStaticHost corresponds to a domain
                     name that is bound to a SRV record, the port must be set to
                     0 in order for the unit to perform DNS SRV queries; otherwise
                     only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerStatic 10 }


    sipOutboundProxyStaticHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP outbound proxy server IP address or domain name.

                     To disable the outbound proxy, set it to '0.0.0.0'.

                     From RFC3261:
                     A proxy that receives requests from a client, even though it may not be the
                     server resolved by the Request-URI. Typically, a UA is manually configured with
                     an outbound proxy, or can learn about one through auto-configuration protocols.

                     When enabled, the initial route for all SIP requests will contain the outbound
                     proxy address, suffixed with the loose routing parameter 'lr'. The Request-URI
                     still contains the home domain proxy address. Requests are directed to the first
                     route (the outbound proxy).

                     Note: If using a domain name that is bound to a SRV record,
                     see sipOutboundProxyStaticPort."
        DEFVAL      { "0.0.0.0" }
        ::=  {  ipAddressConfigSipServerStatic  15 }

    sipOutboundProxyStaticPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP outbound proxy server IP port number.

                     Note: If sipOutboundProxyStaticHost corresponds to a domain
                     name that is bound to a SRV record, the port must be set to
                     0 in order for the unit to perform DNS SRV queries; otherwise
                     only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerStatic 20 }

    sipRegistrarStaticHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP registrar server IP address or domain name.

                     A registrar is a server that accepts REGISTER requests,
                     and places the information it receives in those requests
                     into the location service for the domain it handles.

                     Note: If using a domain name that is bound to a SRV record,
                     see sipRegistrarStaticPort."
        DEFVAL      { "192.168.0.10" }
        ::=  {  ipAddressConfigSipServerStatic  25 }

    sipRegistrarStaticPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP registrar server IP port number.

                     Note: If sipRegistrarStaticHost corresponds to a domain name
                     that is bound to a SRV record, the port must be set to 0 in
                     order for the unit to perform DNS SRV queries; otherwise
                     only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerStatic  35 }

    sipPresenceCompositorStaticHost OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP Presence Compositor server IP address or domain name.

                     From RFC 3903: A Presence Compositor server is a User Agent
                     Server (UAS) that processes PUBLISH requests, and is
                     responsible for compositing event state into a complete,
                     composite event state of a resource for a presentity.

                     To disable publication, set it to '0.0.0.0'.

                     Note: If using a domain name that is bound to a SRV record,
                     see sipPresenceCompositorStaticPort."
        DEFVAL      { "0.0.0.0" }
        ::=  {  ipAddressConfigSipServerStatic  40 }

    sipPresenceCompositorStaticPort OBJECT-TYPE
        SYNTAX      MxAdvancedIpPort
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "SIP Presence Compositor server IP port number.

                     Note: If sipPresenceCompositorStaticHost corresponds to a
                     domain name that is bound to a SRV record, the port must be
                     set to 0 in order for the unit to perform DNS SRV queries;
                     otherwise only A type record lookups will be used."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerStatic  45 }


    -- ************************************************************************
    -- Dhcp Site Specific codes
    -- ************************************************************************
ipAddressConfigSipServerDhcp OBJECT IDENTIFIER  ::=  {  ipAddressConfigSipServer  15  }

    sipRegistrarDhcpSiteSpecificCode OBJECT-TYPE
        SYNTAX      MxIpDhcpSiteSpecificCode
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "DHCP SIP server registrar site specific code.
                     If set to 0, use vendor-specific code #203."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerDhcp  5  }

    sipHomeDomainProxyDhcpSiteSpecificCode OBJECT-TYPE
        SYNTAX      MxIpDhcpSiteSpecificCode
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "DHCP SIP server proxy site specific code.
                     If set to 0, use vendor-specific code #204."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerDhcp  10  }

    sipOutboundProxyDhcpSiteSpecificCode OBJECT-TYPE
        SYNTAX      MxIpDhcpSiteSpecificCode
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "DHCP SIP outbound proxy server site specific code.
                     If set to 0, use vendor-specific code #205."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerDhcp  15  }

    sipPresenceCompositorDhcpSiteSpecificCode OBJECT-TYPE
        SYNTAX      MxIpDhcpSiteSpecificCode
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "DHCP SIP Presence Compositor server site-specific code.
                     If set to 0, use vendor-specific code #206."
        DEFVAL      { 0 }
        ::=  {  ipAddressConfigSipServerDhcp  20  }


    -- ************************************************************************
    -- Authentication Unit table
    -- ************************************************************************
    sipUnitAuthenticationTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipUnitAuthenticationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the user agent authentication configuration variables.
                     Authentication information adds some level of security."
        ::= { sipMIBObjects  20 }

        sipUnitAuthenticationEntry OBJECT-TYPE
            SYNTAX      SipUnitAuthenticationEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP user agent authentication parameter entries."
            INDEX       {
                            sipUnitAuthIndex
                        }
            ::= { sipUnitAuthenticationTable 1 }

            SipUnitAuthenticationEntry ::= SEQUENCE
                {
                    sipUnitAuthIndex Unsigned32,
                    sipUnitAuthRealm OCTET STRING,
                    sipUnitAuthUsername OCTET STRING,
                    sipUnitAuthPassword OCTET STRING,
                    sipUnitAuthValidateRealm MxEnableState
                }

        sipUnitAuthIndex OBJECT-TYPE
            SYNTAX  Unsigned32 (1..10)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION "Authentication index for this row."
            ::= { sipUnitAuthenticationEntry 10 }

        sipUnitAuthRealm OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "When authentication informations are required from users,
                         the realm identifies who requested the information."
            DEFVAL { "" }
            ::=  { sipUnitAuthenticationEntry 15 }

        sipUnitAuthUsername OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "A string that will uniquely identify this endpoint in
                         the realm, used for authentication purposes. The username
                         always maps to a password."
            DEFVAL { "" }
            ::=  { sipUnitAuthenticationEntry 20 }

        sipUnitAuthPassword OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "User password."
            DEFVAL { "" }
            ::=  { sipUnitAuthenticationEntry 25 }

        sipUnitAuthValidateRealm OBJECT-TYPE
            SYNTAX  MxEnableState
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "When set to disable, the current unit credentials are
                         valid for any realm. When set to enable, the unit credentials
                         are used only for a specific realm set in the sipUnitAuthRealm
                         variable."
            DEFVAL { enable }
            ::=  { sipUnitAuthenticationEntry 30 }


    -- ************************************************************************
    -- SIP Registration
    -- ************************************************************************

sipRegistration OBJECT IDENTIFIER ::= { sipMIBObjects 30 }

    sipRegistrationCmdRefresh OBJECT-TYPE
        SYNTAX      INTEGER {
                             noOp(0),
                             refresh(1)
                            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Command to refresh the registrations.

                     noOp      : No operation.

                     refresh   : Refresh registrations. All enabled endpoints
                                 unregister themselves from the previous
                                 registrar and send a new registration to the
                                 current registrar with the current parameters."
        DEFVAL      { noOp }
        ::=  { sipRegistration 5 }


    sipReRegistrationTime OBJECT-TYPE
        SYNTAX      Unsigned32 (0..600)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "In SIP, a registration is valid for a period of time decided by the registrar.
                     Once a unit is registered, the SIP protocol requires the User Agent to refresh
                     this registration before the registration expires. Typically, this
                     re-registration must be completed before the ongoing registration expires, so
                     that the User Agent's registration state will not change (i.e. will remain
                     'registered').

                     This variable defines the time, relative to the end of the registration, at
                     which a registered unit will begin updating its registration.

                     For example, if the registration lasts 60 minutes, and sipReRegistrationTime is
                     set to 43, the unit will send new REGISTER requests 59 minutes and 17 seconds
                     after the reception of the registration acknowledgement (43 seconds before the
                     end of the registration period).

                     Setting sipReRegistrationTime to 0 will have for effect that the User Agent will
                     fall into the 'unregistered' state BEFORE sending the re-REGISTER requests.

                     This value is expressed in seconds(s) and MUST be lower than the value of the
                     Expires header of the contact in the 200 OK response to the REGISTER, otherwise
                     the unit rapidly sends REGISTER requests continuously."
        DEFVAL      { 60 }
        ::=  { sipRegistration 10 }

    sipRegistrationProposedExpirationValue OBJECT-TYPE
        SYNTAX      Unsigned32 (0..86400)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Configures the suggested expiration delay of a contact in the SIP REGISTER.

                     Set the value to 0 to disable the expiration proposition.

                     This value does not modify the delay before a re-REGISTER. The delay is the
                     expires of the contact in the 200 OK response to the REGISTER minus the value set
                     in the sipReRegistrationTime variable. If the the expires of the contact in the
                     200 OK response to the REGISTER is not present or badly formatted, then the delay
                     is the default registration expires minus the value set in the sipReRegistrationTime
                     variable.

                     See also the sipReRegistrationTime variable.

                     This value is expressed in seconds (s)."
        DEFVAL      { 0 }
        ::=  { sipRegistration 50 }


    -- ************************************************************************
    -- SIP Transport
    -- ************************************************************************

sipTransport OBJECT IDENTIFIER ::= { sipMIBObjects 40 }

    sipTransportRegistrationEnable OBJECT-TYPE
        SYNTAX      MxEnableState
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Indicates whether the unit must include its supported transports in its
                     registrations.

                     If enabled, then the unit will register with one contact for each transport
                     that is currently enabled. Each of these contacts will contain a 'transport'
                     parameter."

        DEFVAL      { disable }
        ::=  { sipTransport 5 }

    sipTransportContactEnable OBJECT-TYPE
        SYNTAX      MxEnableState
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Indicates whether the unit must include its supported transport in
                     all SIP messages that have the contact header, except for the
                     REGISTER message (see the sipTransportRegistrationEnable variable).

                     If enabled, then the unit will send SIP messages with the 'transport'
                     parameter in the contact header

                     It is either set to transport=tcp when TCP is enabled and UDP is
                     disabled, transport=udp when UDP is enabled and TCP disabled or no
                     transport parameter when both TCP and UDP are enabled."

        DEFVAL      { disable }
        ::=  { sipTransport 10 }


    sipTransportConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipTransportConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table contains the informations pertaining to the supported transports. It
                     is indexed by transport number (udp, tcp)."

        ::= { sipTransport  15 }

        sipTransportConfigEntry OBJECT-TYPE
            SYNTAX      SipTransportConfigEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP user agent transport parameters entries."
            INDEX       {
                            sipTransportIndex
                        }
            ::= { sipTransportConfigTable 1 }

            SipTransportConfigEntry ::= SEQUENCE
                {
                    sipTransportIndex INTEGER,
                    sipTransportEnable MxEnableState,
                    sipTransportQValue OCTET STRING
                }

        sipTransportIndex OBJECT-TYPE
            SYNTAX      INTEGER {
                                 udp(0),
                                 tcp(1)
                                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION "Transport index for this row.

                         udp : Index for the UDP transport

                         tcp : Index for the TCP transport"
            ::= { sipTransportConfigEntry 10 }

        sipTransportEnable OBJECT-TYPE
            SYNTAX      MxEnableState
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Enables or disables the transport in question.

                         This variable's semantics are different depending on the software version.
                         Please refer to the documentation shipped with your device for more
                         details."

            DEFVAL { enable }
            ::=  { sipTransportConfigEntry 15 }

        sipTransportQValue OBJECT-TYPE
            SYNTAX      OCTET STRING (SIZE(0..5))
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Indicates the priority of the transport in question.

                         A qvalue parameter will be added to each contact. This only applies if the
                         transport-specific registration is enabled (see sipTransportRegistrationEnable).

                         Qvalues give each transport a weight, indicating the degree of preference for
                         that transport. A higher value means higher preference.

                         The format of the qvalue string must follow the RFC3261 ABNF (a floating point
                         value between 0.000 and 1.000). If an empty string is specified, no qvalue will
                         be set in the contacts."
            DEFVAL { "" }
            ::=  { sipTransportConfigEntry 20 }


    -- ************************************************************************
    -- SIP Penalty box
    -- ************************************************************************

sipPenaltyBox OBJECT IDENTIFIER ::= { sipMIBObjects 50 }

    sipPenaltyBoxEnable OBJECT-TYPE
        SYNTAX      MxEnableState
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Indicates whether the unit uses the penalty box feature.

                     The penalty box feature is used when a given host address times out. When
                     the address times out, it is put into the penalty box for a given amount
                     of time. During that time, the address in question is considered as
                     'non-responding' for all requests.

                     This feature is most useful when using multiple servers and some of them are
                     down. It makes sure that users wait a minimal period of time before trying
                     a secondary host.

                     The penalty box is always 'active'. This means that even if the feature is
                     disabled, IP addresses are marked as invalid, but they are still tried. The
                     advantage is that when the feature is enabled, IP addresses that were already
                     marked as invalid are instantly put into the penalty box.

                     Also see sipPenaltyBoxTime."

        DEFVAL      { disable }
        ::=  { sipPenaltyBox 5 }


        sipPenaltyBoxTime OBJECT-TYPE
            SYNTAX  Unsigned32 (30..7200)
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Amount of time that a host spends in the penalty box.

                         An IP address is put into the penalty box for the current sipPenaltyBoxTime.
                         Changing the sipPenaltyBoxTime does not affect IP addresses that are already in
                         the penalty box. In other words, the sipPenaltyBoxTime only affects new entries
                         in the penalty box.

                         This value is expressed in seconds (s).

                         Also see sipPenaltyBoxEnable."
            DEFVAL { 300 }
            ::=  { sipPenaltyBox 10}


    -- ************************************************************************
    -- SIP GROUPING
    -- ************************************************************************

sipGrouping OBJECT IDENTIFIER ::= { sipMIBObjects 60 }

    -- ************************************************************************
    -- UA Group table
    -- ************************************************************************
    sipUAGroupConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipUAGroupConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the user agent configuration variables. A
                     user agent is a logical entity that can act as both client
                     and server for the duration of a dialog.  The informations
                     contained in this table will be used to dynamically create
                     the To, From and Contact headers used in the request sent
                     by the UAC."
        ::= { sipGrouping  10 }

        sipUAGroupConfigEntry OBJECT-TYPE
            SYNTAX      SipUAGroupConfigEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP user agent parameter entries."
            INDEX       {
                            groupIndex
                        }
            ::= { sipUAGroupConfigTable 1 }

            SipUAGroupConfigEntry ::= SEQUENCE
                {
                    sipUAGroupMinimumSessionExpirationDelay Unsigned32,
                    sipUAGroupMaximumSessionExpirationDelay Unsigned32,
                    sipUAGroupRegistrationUsername OCTET STRING
                }

        sipUAGroupMaximumSessionExpirationDelay OBJECT-TYPE
            SYNTAX  Unsigned32 (0 | 180..3600)
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Suggested maximum time for the periodical session refreshes.

                         This value will be reflected in the Session-Expires header.

                         Increasing the maximum will help to reduce network traffic,
                         but will also make 'dead' calls longer to detect.

                         This value is expressed in seconds (s).

                         To disable the session timer service, set the maximum session
                         timer expiration value to 0. However, this is not recommended since
                         it will make 'dead' calls impossible to detect.


                         Questions & Answers
                         ---------------------------------------------

                         Q - What is the session timer extension?

                         A - The session timer extension allows the detection of the premature end of a
                             call caused by a network problem or a peer's failure.

                             The session timer mechanism simply resends an INVITE every n seconds.
                             A sucessful response (200 OK) to this INVITE will signify that the peer
                             is still alive and reachable.  A timeout to this INVITE may mean that there
                             are problems in the signaling path, or that the peer is simply not there
                             anymore.  In that case the call will be shut down using normal SIP means.


                         Q - SDP in Session Timer reINVITEs:

                         A - The reINVITE is sent with the last SDP that was negotiated.
                             Reception of a session timer reinvite should not modify the
                             connection characteristics.


                         Q - Relation between minimum and maximum values:

                         A - A UA that receives a Session-Expires header whose value is smaller than the
                             minimum it is willing to accept will reply a 422 Timer too low to the
                             INVITE and terminate the call.  The phone will not ring.

                             It is up to the caller to decide what to do when it receives a 422 to its
                             INVITE. Mediatrix units will automatically retry the INVITE, with a
                             Session-Expires value equal to the minimum value that the UAS was ready to
                             accept (found in the Min-SE header). This means that the maximum value as set
                             in the Mediatrix unit might not be respected. This has the advantageous effect
                             of establishing the call even if the two endpoints have conflicting values.
                             Mediatrix units will also keep retrying as long as they get 422 answers with
                             different Min-SE values.


                         Q - Who refreshes?

                         A - Re-sending a session timer INVITE is referred to as refreshing the session.
                             Normally, the UAS that receives the INVITE will have the last
                             word on who refreshes.  Mediatrix units will always let the UAC
                             (caller) do the refreshes if the caller supports session timers.
                             In the case the caller does not support session timers, the
                             Mediatrix unit will assume the role of the refresher.


                         Also see sipUAGroupMinimumSessionExpirationDelay."
            DEFVAL { 3600 }
            ::=  {  sipUAGroupConfigEntry 30 }

        sipUAGroupMinimumSessionExpirationDelay OBJECT-TYPE
            SYNTAX  Unsigned32 (180..3600)
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Minimum value for the periodical session refreshes.

                         This value will be reflected in the Min-SE header.

                         The Min-SE value is a threshold that proxies and/or UAs on the
                         signaling path are not allowed to go under.

                         Increasing the minimum will help to reduce network traffic,
                         but will also make 'dead' calls longer to detect.

                         This value is expressed in seconds (s).

                         Also see sipUAGroupMaximumSessionExpirationDelay."
            DEFVAL { 1800 }
            ::=  {  sipUAGroupConfigEntry  35 }

        sipUAGroupRegistrationUsername OBJECT-TYPE
            SYNTAX   OCTET STRING (SIZE(0..255))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "Used to enable the SIP registration of an FXO unit.

                         When empty, the FXO unit does not register with the SIP registrar.
                         This is the standard behaviour.
                         When a name is configured, the unit sends a single REGISTER request
                         to the SIP Registrar, using this identification, in order to make
                         its presence known.
                         When a previously configured name is set to empty, the unit
                         unregisters itself from the SIP Registrar."
            DEFVAL { "" }
            ::=  {  sipUAGroupConfigEntry  50 }




    -- ************************************************************************
    -- Authentication per group table
    -- ************************************************************************
    sipUAGroupAuthenticationTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipUAGroupAuthenticationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table holds the user agent authentication configuration variables.
                     Authentication information adds some level of security."
        ::= { sipGrouping  20 }

        sipUAGroupAuthenticationEntry OBJECT-TYPE
            SYNTAX      SipUAGroupAuthenticationEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP user agent authentication parameter entries."
            INDEX       {
                            groupIndex,
                            sipUAGroupAuthIndex
                        }
            ::= { sipUAGroupAuthenticationTable 1 }

            SipUAGroupAuthenticationEntry ::= SEQUENCE
                {
                    sipUAGroupAuthIndex Unsigned32,
                    sipUAGroupAuthRealm OCTET STRING,
                    sipUAGroupAuthUsername OCTET STRING,
                    sipUAGroupAuthPassword OCTET STRING,
                    sipUAGroupAuthValidateRealm MxEnableState
                }

        sipUAGroupAuthIndex OBJECT-TYPE
            SYNTAX  Unsigned32 (1..10)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION "Authentication index for this row, for the specified groupIndex."
            ::= { sipUAGroupAuthenticationEntry 10 }

        sipUAGroupAuthRealm OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "When authentication informations are required from users,
                         the realm identifies who requested the information."
            DEFVAL { "" }
            ::=  { sipUAGroupAuthenticationEntry 15 }

        sipUAGroupAuthUsername OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "A string that will uniquely identify this endpoint in
                         the realm, used for authentication purposes. The username
                         always maps to a password."
            DEFVAL { "" }
            ::=  { sipUAGroupAuthenticationEntry 20 }

        sipUAGroupAuthPassword OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE(0..128))
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "User password."
            DEFVAL { "" }
            ::=  { sipUAGroupAuthenticationEntry 25 }

        sipUAGroupAuthValidateRealm OBJECT-TYPE
            SYNTAX  MxEnableState
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION "When set to disable, the current group credentials are
                         valid for any realm. When set to enable, the group credentials
                         are used only for a specific realm set in the sipUAGroupAuthRealm
                         variable."
            DEFVAL { enable }
            ::=  { sipUAGroupAuthenticationEntry 30 }


    -- ************************************************************************
    -- SIP Publication
    -- ************************************************************************

sipPublication OBJECT IDENTIFIER ::= { sipMIBObjects 70 }

    sipPublicationCmdRefresh OBJECT-TYPE
        SYNTAX      INTEGER {
                             noOp(0),
                             refresh(1)
                            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Command to refresh the publications.

                     noOp      : No operation.

                     refresh   : Refresh publications. All enabled endpoints
                                 unpublish themselves from the previous Presence
                                 Compositor and send a new publication to the
                                 current Presence Compositor with the current
                                 parameters."
        DEFVAL      { noOp }
        ::=  { sipPublication 10 }


    sipPublicationRefreshTime OBJECT-TYPE
        SYNTAX      Unsigned32 (0..600)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "A publication is valid for a period of time specified by the Presence
                     Compositor. The User Agent is then responsible for refreshing its
                     previously established publications before their expiration interval
                     has elapsed.

                     This variable defines the time, relative to the end of the publication,
                     at which the User Agent will begin refreshing its publication.

                     This value is expressed in seconds (s).

                     For example, if the publication lasts 60 minutes and
                     sipPublicationRefreshTime is set to 43, the unit will send new
                     PUBLISH requests 59 minutes and 17 seconds after the reception
                     of the publication acknowledgement (43 seconds before the end of
                     the publication period).

                     Setting sipPublicationRefreshTime to 0 means that the User Agent will
                     fall into the 'unpublished' state BEFORE sending the refreshing PUBLISH
                     request."
        DEFVAL      { 60 }
        ::=  { sipPublication 20 }

    sipPublicationProposedExpirationValue OBJECT-TYPE
        SYNTAX      Unsigned32 (0..86400)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Configures the suggested expiration delay of a publication. Keep in mind
                     that this is only a suggestion and that servers will decide the publication
                     time following local policy.

                     Set the value to 0 to disable the expiration proposition.

                     This value is expressed in seconds (s).

                     This value does not modify the delay before a re-PUBLISH. The delay is
                     the value of the Expires header in the 200 OK response to the PUBLISH
                     minus the value set in the sipPublicationRefreshTime variable. If the
                     Expires header in the 200 OK response to the PUBLISH is not present or
                     badly formatted, then the delay is the value of the variable
                     sipInteropDefaultPublicationExpiration minus the value set in the
                     sipPublicationRefreshTime variable.

                     See also the sipPublicationRefreshTime variable."
        DEFVAL      { 0 }
        ::=  { sipPublication 30 }

    -- ************************************************************************
    -- SIP Conference
    -- ************************************************************************

sipConference OBJECT IDENTIFIER ::= { sipMIBObjects 80 }

    -- ************************************************************************
    --   Conference config Table
    -- ************************************************************************

    sipConferenceConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF sipConferenceConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table that contains SIP conference configuration,
                     indexed by the interface number."
        ::= { sipConference 10 }

        sipConferenceConfigEntry OBJECT-TYPE
            SYNTAX      sipConferenceConfigEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "SIP conference parameter entries."
            INDEX       {
                            ifIndex
                        }
            ::= { sipConferenceConfigTable 1 }

            sipConferenceConfigEntry ::= SEQUENCE
                {
                    sipConferenceType           INTEGER,
                    sipConferenceServerURI      OCTET STRING
                }

            sipConferenceType OBJECT-TYPE
                SYNTAX      INTEGER {
                                     local(0),
                                     conferenceServer(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Specifies how to manage a SIP conference. This
                             configuration only applies to a conference initiated
                             by one of the unit's endpoint.

                             local:
                             The conference is managed locally by the unit.

                             conferenceServer:
                             The conference is managed by a remote SIP conference
                             server.

                             This variable only has an effect when
                             subscriberServicesConferenceEnable is set to enable.

                             "

                DEFVAL      { Local }
                ::= { sipConferenceConfigEntry 5 }

            sipConferenceServerURI OBJECT-TYPE
                SYNTAX  OCTET STRING (SIZE(0..255))
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "A string that represents the address of a conference server.

                             This variable only has an effect when
                             sipConferenceType is set to conferenceServer.

                             Please refer to the documentation shipped with your device for more
                             details regarding this variable's semantics."
                DEFVAL      { "" }
                ::= { sipConferenceConfigEntry 10  }

    -- ************************************************************************
    -- SIP TRUSTED SOURCES
    -- ************************************************************************

sipTrustedSources OBJECT IDENTIFIER ::= { sipMIBObjects 110 }

    sipTrustedSourcesEnable OBJECT-TYPE
        SYNTAX      MxEnableState
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enables the SIP trusted sources feature.

                     enable: The unit only accepts SIP messages from the trusted
                     addresses listed in sipTrustedSourcesTable. All other SIP
                     messages are ignored. This source address validation takes
                     place at the IP level and does not depend on the SIP header
                     or body.

                     disable: The unit does not validate the source address of
                     SIP messages at the IP level."
        DEFVAL      { disable }
        ::=  { sipTrustedSources 50 }

    -- ************************************************************************
    -- SIP trusted sources table
    -- ************************************************************************
    sipTrustedSourcesTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SipTrustedSourcesEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table that lists up to 6 trusted sources of SIP messages."
        ::= { sipTrustedSources 100 }

        sipTrustedSourcesEntry OBJECT-TYPE
            SYNTAX      SipTrustedSourcesEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "A row in sipTrustedSourcesTable."
            INDEX       {
                            sipTrustedSourcesIndex
                        }
            ::= { sipTrustedSourcesTable 50 }

            SipTrustedSourcesEntry ::= SEQUENCE
                {
                    sipTrustedSourcesIndex Unsigned32,
                    sipTrustedSourcesIpAddress MxIpAddress
                }

        sipTrustedSourcesIndex OBJECT-TYPE
            SYNTAX      Unsigned32 (1..6)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION "Index for this row."
            ::= { sipTrustedSourcesEntry 50 }

        sipTrustedSourcesIpAddress OBJECT-TYPE
            SYNTAX      MxIpAddress
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "IP address of a trusted source of SIP messages."
            DEFVAL { "" }
            ::=  { sipTrustedSourcesEntry 100 }


    -- ************************************************************************
    -- Conformance information
    -- ************************************************************************
    sipCompliances OBJECT IDENTIFIER ::= { sipConformance 1 }

    sipServerBasicComplVer1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "Minimal definitions for the SIP protocol group"
        MODULE -- This Module
            MANDATORY-GROUPS {
                                sipUnitGroupVer1,
                                sipRegistrarGroupVer1,
                                sipProxyGroupVer1,
                                sipUAGroupVer1,
                                sipUAAuthenticationGroupVer1,
                                sipPresenceCompositorGroupVer1
                             }
        ::= { sipCompliances 1 }

    -- ************************************************************************
    -- MIB variable grouping
    -- ************************************************************************
    sipGroups OBJECT IDENTIFIER ::= { sipConformance 2 }

    sipUnitGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipPort,
                    sipDomain,
                    sipUnitAuthRealm,
                    sipUnitAuthUsername,
                    sipUnitAuthPassword,
                    sipRegistrationCmdRefresh,
                    sipReRegistrationTime,
                    sipRegistrationProposedExpirationValue,
                    sipTransportRegistrationEnable,
                    sipTransportContactEnable,
                    sipTransportEnable,
                    sipTransportQValue,
                    sipPenaltyBoxEnable,
                    sipPenaltyBoxTime,
                    sipPublicationCmdRefresh,
                    sipPublicationRefreshTime,
                    sipPublicationProposedExpirationValue,
                    sipTrustedSourcesEnable,
                    sipTrustedSourcesIpAddress
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the
                     main unit group."
        ::= { sipGroups 5 }

    sipRegistrarGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipServerConfigSource,
                    sipRegistrarHost,
                    sipRegistrarPort,
                    sipServerSelectConfigSource,
                    sipRegistrarStaticHost,
                    sipRegistrarStaticPort,
                    sipRegistrarDhcpSiteSpecificCode
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the
                     Registrar server group."
        ::= { sipGroups 10 }

    sipProxyGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipServerConfigSource,
                    sipHomeDomainProxyHost,
                    sipHomeDomainProxyPort,
                    sipOutboundProxyHost,
                    sipOutboundProxyPort,
                    sipServerSelectConfigSource,
                    sipHomeDomainProxyStaticHost,
                    sipHomeDomainProxyStaticPort,
                    sipOutboundProxyStaticHost,
                    sipOutboundProxyStaticPort,
                    sipHomeDomainProxyDhcpSiteSpecificCode,
                    sipOutboundProxyDhcpSiteSpecificCode
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the
                     Proxy server group."
        ::= { sipGroups 15 }

    sipUAGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipUAMainUsername,
                    sipUADisplayName,
                    sipUAOtherAcceptedUsernames,
                    sipUAMaximumSessionExpirationDelay,
                    sipUAMinimumSessionExpirationDelay,
                    sipUAGroupMaximumSessionExpirationDelay,
                    sipUAGroupMinimumSessionExpirationDelay
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the
                     User Agent group."
        ::= { sipGroups 20 }

    sipUAAuthenticationGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipUAAuthRealm,
                    sipUAAuthUsername,
                    sipUAAuthPassword,
                    sipUAGroupAuthRealm,
                    sipUAGroupAuthUsername,
                    sipUAGroupAuthPassword
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the
                     User Agent password group."
        ::= { sipGroups 25 }

    sipPresenceCompositorGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipServerConfigSource,
                    sipPresenceCompositorHost,
                    sipPresenceCompositorPort,
                    sipServerSelectConfigSource,
                    sipPresenceCompositorStaticHost,
                    sipPresenceCompositorStaticPort,
                    sipPresenceCompositorDhcpSiteSpecificCode
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the
                     Presence Compositor server group."
        ::= { sipGroups 30 }

END
