-- ****************************************************************************
-- ****************************************************************************
--
--  File: MX-DEBUG-MIB.my
--
--  Package: MediatrixMibs
--
-- ****************************************************************************
-- ****************************************************************************
--
--      Copyright(c) 2001-2003 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-EXPERIMENTAL-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-IDENTITY,
        OBJECT-TYPE,
        Unsigned32
    FROM SNMPv2-SMI
        OBJECT-GROUP,
        MODULE-COMPLIANCE
    FROM SNMPv2-CONF
        MxIpHostName,
        MxEnableState
    FROM MX-TC
        mediatrixExperimental
    FROM MX-SMI;

sipExperimentalMIB MODULE-IDENTITY
    LAST-UPDATED "200908170000Z"
    ORGANIZATION "Mediatrix Telecom, Inc."
    CONTACT-INFO "Mediatrix Telecom, Inc.
                  4229, Garlock Street
                  Sherbrooke (Quebec)
                  Canada
                  Phone: (819) 829-8749
                  "
    DESCRIPTION "This MIB contains SIP experimental (NAT traversal and others)
                 configuration objects."

    -- ************************************************************************
    -- Revision history
    -- ************************************************************************
    REVISION    "200908170000Z"
    DESCRIPTION "Added the sipCodecOrderInAnswer variable."
    REVISION    "200804030000Z"
    DESCRIPTION "Added the sipAllowMediaReactivationInAnswerEnable
                 and sipAllowAudioAndImageNegotiationEnable variables."
    REVISION    "200710310000Z"
    DESCRIPTION "Added the sipRtpUdpChecksumEnable variable."
    REVISION    "200602280000Z"
    DESCRIPTION "Addition of sipEnforceOfferAnswerModel"
    REVISION    "200304300000Z"
    DESCRIPTION "Changed sipUnregisteredPortBehavior default value to disablePort."
    REVISION    "200303110000Z"
    DESCRIPTION "Updated sipOutboundProxyConfig and sipUnregisteredPortBehavior
                 descriptions.
                 Also changed defval to looseRouter."
    REVISION    "200301230000Z"
    DESCRIPTION "Removed unsupported NAT traversal method."
    REVISION    "200212170000Z"
    DESCRIPTION "Added sipOutboundProxyConfig."
    REVISION    "200212020000Z"
    DESCRIPTION "Renamed MX-SIP-NAT-MIB.my to MX-SIP-EXPERIMENTAL-MIB.my and
                 adding the variable sipRegistrationStatusBehavior."
    REVISION    "200207050000Z"
    DESCRIPTION "Edited different comments."
    REVISION    "200202130000Z"
    DESCRIPTION "Creation"
    ::= { mediatrixExperimental 10 }

sipExperimentalMIBObjects   OBJECT IDENTIFIER ::= { sipExperimentalMIB 1 }
sipExperimentalConformance  OBJECT IDENTIFIER ::= { sipExperimentalMIB 2 }


    -- ************************************************************************
    -- Custom solution Group
    -- ************************************************************************
sipNatCustom OBJECT IDENTIFIER ::= { sipExperimentalMIBObjects 5 }

    sipNatCustomEnable OBJECT-TYPE
        SYNTAX      INTEGER {
                            disable(0),
                            enable(1)
                           }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable/disable the NAT traversal scheme."
        DEFVAL { disable }
        ::=  { sipNatCustom 5 }

    sipNatCustomPublicAddress OBJECT-TYPE
        SYNTAX      MxIpHostName
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The public IP address used as Contact address by outgoing
                     SIP packets crossing a NAT system."
        DEFVAL      { "0.0.0.0" }
        ::=  { sipNatCustom 10 }


    -- ************************************************************************
    -- Other SIP experimental variables
    -- ************************************************************************

    sipUnregisteredPortBehavior OBJECT-TYPE
        SYNTAX      INTEGER {
                             disablePort(0),
                             enablePort(1)
                            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable specifies whether a port should remain enabled or not when not
                     registered.

                     disablePort :
                       When an endpoint is not registered, it is disabled. This prevents the user
                       from making or receiving calls. Picking up the handset will yield a fast busy
                       tone, and incoming INVITEs will receive a '403 Forbidden' response. Ports that
                       have a physical bypass will enable the bypass in this case.

                     enablePort :
                       When an endpoint is not registered, it is still enabled. The user will be able
                       to receive and initiate outgoing calls. Note that since the endpoint
                       is not registered to a registrar, the public address of the endpoint is not
                       available to the outside world, so the endpoint will most likely be
                       unreachable except through direct IP calling."
        DEFVAL { disablePort }
        ::=  { sipExperimentalMIBObjects 25 }

    sipOutboundProxyConfig OBJECT-TYPE
        SYNTAX      INTEGER {
                             looseRouter(0),
                             strictRouter(1)
                            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable provisions the type of routing that the configured outbound proxy
                     does.

                     looseRouter :
                        This is the most current method for SIP routing, as per RFC3261, and will
                        become the standard behavior once RFC3261 compliance is achieved.

                        See sipOutboundProxyHost in the SIP MIB for a description.

                     strictRouter :
                        Pre-RFC3261, RFC2543 compatible SIP routing.

                        The initial route for all SIP requests will contain the home domain proxy
                        address (the Request-URI). Requests will be directed to the outbound proxy.

                        In other words, the Request-URI is constructed as usual, using the home domain
                        proxy and the username, but is used in the route set. The Request-URI is filled
                        by the outbound proxy address.


                     Also see sipHomeDomainProxyHost."
        DEFVAL { looseRouter }
        ::=  { sipExperimentalMIBObjects 30 }

        sipEnforceOfferAnswerModel OBJECT-TYPE
            SYNTAX      MxEnableState
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Determines whether the unit requires strict adherence to RFC 3264
                        from the peer when negotiating capabilities for the establishment
                        of a media session.

                        When enabled, the following guidelines from the Offer-Answer Model
                        must be strictly followed.  An answer must:
                        - Include at least one codec from the list that the unit sent in the offer;
                        - Avoid adding extra codecs that were not present in the offer;
                        - Contain the same number of media lines that the unit put in its offer.
                        Otherwise, the answer is rejected and the unit ends the call.

                        When disabled, then the peer can freely:
                        - Send back a brand new list of codecs or add new ones to the offered list;
                        - Add media lines AFTER the ones found in the offer.
                        As long as at least one codec sent back is supported by the unit, the call
                        is allowed to go on.  Any media lines added by the peer
                        is simply ignored.

                        The sipAllowMediaReactivationInAnswerEnable and
                        sipAllowAudioAndImageNegotiationEnable variables allow to enable or disable
                        other deviations from the Offer/Answer model."
            DEFVAL { enable }
            ::=  { sipExperimentalMIBObjects 80 }

        sipAllowMediaReactivationInAnswerEnable OBJECT-TYPE
            SYNTAX      MxEnableState
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Determines the unit behaviour when receiving a SDP answer
                        activating a media that had been previously deactivated in the offer.

                        Enable: A media reactivated in an incoming answer is ignored.
                                This behaviour goes against the SDP Offer/Answer model
                                described by IETF RFC 3264.
                        Disable: A media reactivated in an incoming answer ends the current
                                 media negotiation and the call. This behaviour follows the
                                 SDP Offer/Answer model described by IETF RFC 3264.

                        The sipEnforceOfferAnswerModel and sipAllowAudioAndImageNegotiationEnable
                        variables allow to enable or disable other deviations from the
                        Offer/Answer model."
            DEFVAL { disable }
            ::=  { sipExperimentalMIBObjects 85 }

        sipAllowAudioAndImageNegotiationEnable OBJECT-TYPE
            SYNTAX      MxEnableState
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Determines the unit behaviour when offering media or answering
                        to a media offer with audio and image negotiation.

                        Enable: The unit offers audio and image media simultaneously in
                                outgoing SDP offers and transits to T.38 mode upon reception
                                of a T.38 packet. Also, when the unit answers positively to a
                                SDP offer with audio and image, it transits to T.38 mode upon
                                reception of a T.38 packet.

                        Disable: Outgoing offers never include image and audio simultaneously.
                                 Incoming offers with audio and image medias with a non-zero
                                 port are considered as offering only audio.

                        The sipEnforceOfferAnswerModel and sipAllowMediaReactivationInAnswerEnable
                        variables allow to enable or disable other deviations from the
                        Offer/Answer model."
            DEFVAL { disable }
            ::=  { sipExperimentalMIBObjects 90 }

        sipCodecOrderInAnswer OBJECT-TYPE
            SYNTAX      INTEGER {
                                 localOrder(0),
                                 offerOrder(1)
                                }
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Determines the unit behaviour when answering to a media offer.

                        localOrder: The codecs contained in the answer are
                        prioritized according to the configured preferred codec.
                        This means that the codecs in the answer may have a
                        different order than in the received offer.

                        offerOrder: The codecs contained in the answer have the
                        same order as the received offer.
                        This means that the preferred codec configured has
                        no effect on the codec order of the answer."

            DEFVAL { localOrder }
            ::=  { sipExperimentalMIBObjects 95 }

        sipRtpUdpChecksumEnable OBJECT-TYPE
            SYNTAX      MxEnableState
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "Enables/disables the UDP checksum for RTP packets. UDP
                         checksum is disabled by default to gain performance.

                         Enable: UDP checksum will be calculated for each RTP
                                 packet. This may affect performance.

                         Disable: UDP checksum will not be calculated. The value
                                  0 will be written in the checksum field of each
                                  RTP packet header.

                         This variable's semantics are different depending on
                         protocol and/or hardware platforms.
                         Please refer to the documentation shipped with your
                         device for more details."
            DEFVAL { disable }
            ::=  { sipExperimentalMIBObjects 130 }

    -- ************************************************************************
    -- Conformance information
    -- ************************************************************************
    sipExperimentalCompliances OBJECT IDENTIFIER ::= { sipExperimentalConformance 1 }

    sipExperimentalBasicComplVer1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "Minimal definitions for the SIP experimental group"
        MODULE -- This Module
            MANDATORY-GROUPS {
                                sipExperimentalGroupVer1
                             }
        ::= { sipExperimentalCompliances 1 }

    -- ************************************************************************
    -- MIB variable grouping
    -- ************************************************************************
    sipExperimentalGroups OBJECT IDENTIFIER ::= { sipExperimentalConformance 2 }

    sipExperimentalGroupVer1 OBJECT-GROUP
        OBJECTS {
                    sipNatCustomEnable,
                    sipNatCustomPublicAddress,
                    sipUnregisteredPortBehavior,
                    sipOutboundProxyConfig,
                    sipEnforceOfferAnswerModel,
                    sipRtpUdpChecksumEnable,
                    sipAllowMediaReactivationInAnswerEnable,
                    sipAllowAudioAndImageNegotiationEnable
                }
        STATUS      current
        DESCRIPTION "This group holds the objects that define the SIP
                     experimental group."
        ::= { sipExperimentalGroups 5 }

END
