-- ****************************************************************************
-- ****************************************************************************
--             Copyright(c) 2004 Mediatrix Telecom, Inc.
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Mediatrix Telecom, Inc.
--   Mediatrix Telecom, Inc. 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
--   Mediatrix Telecom, Inc.
--   Mediatrix Telecom, Inc. 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-SBC-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32,
        Integer32
    FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
    FROM SNMPv2-CONF
        MxEnableState,
        MxActivationState,
        MxIpHostName,
        MxIpAddress,
        MxIpPort,
        MxAdvancedIpPort,
        MxIpSubnetMask,
        MxDigitMap
    FROM MX-TC
        MxUInt64,
        MxFloat32,
        MxIpHostNamePort,
        MxIpAddr,
        MxIpAddrPort,
        MxIpAddrMask,
        MxUri,
        MxUrl
    FROM MX-TC2
        mediatrixServices
    FROM MX-SMI2;

sbcMIB MODULE-IDENTITY
 LAST-UPDATED   "1910210000Z"
 ORGANIZATION " Mediatrix Telecom, Inc. "
 CONTACT-INFO " Mediatrix Telecom, Inc.
                4229, Garlock Street
                Sherbrooke (Quebec)
                Canada
                Phone: (819) 829-8749
                "
 DESCRIPTION  " Session Border Controller

                The Session Border Controller (SBC) service allows the
                administrator to perform SIP to SIP normalization, call
                routing, NAT traversal, and survivability.
                "
 ::= { mediatrixServices 4400 }

sbcMIBObjects OBJECT IDENTIFIER ::= { sbcMIB 1 }

-- ****************************************************************************

-- Group:Configuration Group

-- ****************************************************************************

configGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 100 }
 -- ***************************************************************************
 
 -- Table:Call Agents

 -- ***************************************************************************
 
 callAgentTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF CallAgentEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Call Agents

                This table contains the parameter used to configure the Call
                Agents.

                The changes to this table are applied on execution of the
                ApplyConfiguration command or when the service is restarted.

                "
  ::= { configGroup 100 }
  callAgentEntry OBJECT-TYPE
   SYNTAX        CallAgentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Call Agents. "
   INDEX         {
                   callAgentId
                 }

   ::= { callAgentTable 1 }

  CallAgentEntry ::= SEQUENCE
  {
    callAgentId                 Unsigned32,
    callAgentName               OCTET STRING,
    callAgentEnable             MxEnableState,
    callAgentSignalingInterface Unsigned32,
    callAgentMediaInterface     OCTET STRING,
    callAgentGateway            OCTET STRING,
    callAgentPeerHost           MxIpHostNamePort,
    callAgentPeerNetwork        MxIpAddrMask,
    callAgentForceTransport     INTEGER,
    callAgentConfigStatus       INTEGER,
    callAgentDelete             INTEGER
  }

  -- Index:Id

  callAgentId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a Call Agent. The Call Agent
                 ID is used by other parameters included in the Configuration
                 Group to refer to a Call Agent.
                 "
   DEFVAL        { 0 }
   ::= { callAgentEntry 100 }

  -- Columnar:Configuration Status

  callAgentConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , unknownSignalingInterface(200) ,
                 unknownMediaInterface(300) , invalidGatewayBinding(400) ,
                 invalidConfig(500) , noMediaInterface(600) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of the row.

                 Indicates if the configuration of this Call Agent is valid
                 and ready to be applied.

                   * Valid: The current content of the row is valid.
                   * UnknownSignalingInterface: The Signaling Interface is not
                     set or has an unknown ID.
                   * UnknownMediaInterface: The Media Interface has an unknown
                     ID.
                   * InvalidGatewayBinding: The parameters binding the gateway
                     to the Call Agent are not configured properly.
                   * InvalidConfig: The configuration is not valid.
                   * NoMediaInterface: The Media Interface is not set.

                 "
   ::= { callAgentEntry 1000 }

  -- Row command:Delete

  callAgentDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this CallAgent table entry.

                 "
   DEFVAL        { noOp }
   ::= { callAgentEntry 10000 }

  -- Columnar:Name

  callAgentName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Name

                 Call Agent name.

                 Alpha-numerics as well as '.', '-' and '_' are valid
                 characters.

                 "
   DEFVAL        { "" }
   ::= { callAgentEntry 200 }

  -- Columnar:Enable

  callAgentEnable OBJECT-TYPE
   SYNTAX        MxEnableState
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Enable

                 Activate/deactivate the Call Agent.
                 "
   DEFVAL        { disable }
   ::= { callAgentEntry 300 }

  -- Columnar:Signaling Interface

  callAgentSignalingInterface OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Signaling Interface

                 ID of the Signaling Interface used by this Call Agent.
                 "
   DEFVAL        { 0 }
   ::= { callAgentEntry 400 }

  -- Columnar:Media Interfaces

  callAgentMediaInterface OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..6) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Media Interfaces

                 ID of the Media Interface used by this Call Agent.
                 "
   DEFVAL        { "" }
   ::= { callAgentEntry 500 }

  -- Columnar:Gateway

  callAgentGateway OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Gateway

                 Name of the local gateway to be used by this Call Agent. When
                 no local gateway is selected, the Call Agent will use an
                 external peer.

                 When the Gateway parameter is set to a local gateway,

                   * the PeerHost and PeerNetwork parameters are ignored
                   * the CallAgent.SignalingInterface parameter is ignored and
                     is replaced by the loop_s signaling interface
                   * the CallAgent.MediaInterface parameter can be left empty
                     in which case the loop_m media interface is used

                 A few consistency checks are also performed when the
                 CallAgent.Gateway parameter is configured:

                   * The gateway must exist in the SipEp service.
                   * The gateway's network interface must be set to 'SBC'.
                   * The gateway's media network must be configured on the
                     same network as the Call Agent.

                 When these consistency checks fail, warning notifications are
                 issued but the configuration is not refused.

                 "
   DEFVAL        { "" }
   ::= { callAgentEntry 600 }

  -- Columnar:Peer Host

  callAgentPeerHost OBJECT-TYPE
   SYNTAX        MxIpHostNamePort
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Peer Host

                 FQDN / IP addr and port of the SIP peer for this Call Agent.
                 "
   DEFVAL        { "" }
   ::= { callAgentEntry 700 }

  -- Columnar:Peer Network

  callAgentPeerNetwork OBJECT-TYPE
   SYNTAX        MxIpAddrMask
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Peer Network

                 Network address of the SIP peers for this Call Agent.
                 "
   DEFVAL        { "" }
   ::= { callAgentEntry 800 }

  -- Columnar:Force Transport

  callAgentForceTransport OBJECT-TYPE
   SYNTAX        INTEGER { none(100) , tCP(200) , uDP(300) , tLS(400) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Force Transport

                 Force the Call Agent to use the selected transport protocol
                 when initiating SIP dialogs.

                   * None: Transport is not forced. Will use UDP if the use of
                     another transport protocol is not forced elsewhere.
                   * TCP: The outbound SIP signalling will be transported over
                     TCP on the normal port.
                   * UDP: The outbound SIP signalling will be transported over
                     UDP on the normal port.
                   * TLS: The outbound SIP signalling will be transported over
                     TLS on the secure port.

                 Note: To force TLS and guarantee that no other transport
                 protocol can be used, you must also set the
                 SignalingInterface.AllowedTransports parameter to TlsOnly.

                 "
   DEFVAL        { none }
   ::= { callAgentEntry 900 }

 -- End of table:Call Agents

 -- ***************************************************************************
 
 -- Table:Call Agent Rulesets

 -- ***************************************************************************
 
 callAgentRulesetTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF CallAgentRulesetEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Call Agent Rulesets

                This table allows the user/administrator to associate Rulesets
                to Call Agents.

                The changes to this table are applied when the
                ApplyConfiguration command is executed or when the service is
                restarted.

                The changes to the ruleset files are applied when the
                ApplyConfiguration command is executed or when the service is
                restarted.

                Even if the ConfigModifiedStatus parameter does not indicate
                'yes', after modifying the CallAgentRuleset table, you must
                execute the ApplyConfiguration command.
                "
  ::= { configGroup 200 }
  callAgentRulesetEntry OBJECT-TYPE
   SYNTAX        CallAgentRulesetEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Call Agent Rulesets. "
   INDEX         {
                   callAgentRulesetId
                 }

   ::= { callAgentRulesetTable 1 }

  CallAgentRulesetEntry ::= SEQUENCE
  {
    callAgentRulesetId           Unsigned32,
    callAgentRulesetCallAgent    Unsigned32,
    callAgentRulesetPriority     Unsigned32,
    callAgentRulesetRuleset      OCTET STRING,
    callAgentRulesetParameters   OCTET STRING,
    callAgentRulesetConfigStatus INTEGER,
    callAgentRulesetDelete       INTEGER
  }

  -- Index:Id

  callAgentRulesetId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for this Ruleset association.
                 "
   DEFVAL        { 0 }
   ::= { callAgentRulesetEntry 100 }

  -- Row command:Delete

  callAgentRulesetDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { callAgentRulesetEntry 10000 }

  -- Columnar:CallAgent

  callAgentRulesetCallAgent OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " CallAgent

                 ID of the CallAgent table entry to which this Ruleset is
                 attached.

                 "
   DEFVAL        { 0 }
   ::= { callAgentRulesetEntry 200 }

  -- Columnar:Priority

  callAgentRulesetPriority OBJECT-TYPE
   SYNTAX        Unsigned32 ( 1..2147483647 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Priority

                 Execution priority of this Ruleset for the Call Agent.

                 Inbound rules of the Ruleset are executed in ascending
                 priority order. Outbound rules are executed in descending
                 priority order.

                 "
   DEFVAL        { 1 }
   ::= { callAgentRulesetEntry 300 }

  -- Columnar:Ruleset

  callAgentRulesetRuleset OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..48) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Ruleset

                 Name of the Ruleset to which the Call Agent is attached.

                 This name must match the name of a Call Agent ruleset file in
                 the local storage of this device (see the File Service). This
                 file must have the exact same name with a '.crs' extension.
                 For example: 'my_ruleset.crs'.

                 "
   DEFVAL        { "" }
   ::= { callAgentRulesetEntry 400 }

  -- Columnar:Ruleset Parameters

  callAgentRulesetParameters OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..512) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Ruleset Parameters

                 List of named parameters (parameter=value) for the Ruleset.

                 General format: parameter1=value1 parameter2=value2
                 parameter3=value3

                 Each parameter-value pair must be separated by a space.

                 The values can contain any character, with the following
                 constraints:

                   * Values that contain space characters must be enclosed
                     within double quotes.
                   * Within the values, double quotes and backslash characters
                     must be escaped with a backslash.

                 The maximum length for a value is 100 characters.

                 Example: FirstValue=1 SecondValue = 192.168.0.1:5060
                 ThirdValue ='A more complex string'

                 "
   DEFVAL        { "" }
   ::= { callAgentRulesetEntry 500 }

  -- Columnar:Configuration Status

  callAgentRulesetConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , unknownRuleset(200) , invalidConfig
                 (300) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of the Ruleset.

                 Indicates whether this Ruleset is valid and ready to be
                 applied.

                   * Valid: The current content of the row is valid.
                   * UnknownRuleset: The ruleset file is not found.
                   * InvalidConfig: The configuration is not valid.

                 "
   ::= { callAgentRulesetEntry 600 }

 -- End of table:Call Agent Rulesets

 -- ***************************************************************************
 
 -- Table:Call Agent Ruleset Catalog

 -- ***************************************************************************
 
 callAgentRulesetCatalogTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF CallAgentRulesetCatalogEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Call Agent Ruleset Catalog

                This table displays the call agent Rulesets installed on this
                device.
                "
  ::= { configGroup 250 }
  callAgentRulesetCatalogEntry OBJECT-TYPE
   SYNTAX        CallAgentRulesetCatalogEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Call Agent Ruleset Catalog. "
   INDEX         {
                   callAgentRulesetCatalogId
                 }

   ::= { callAgentRulesetCatalogTable 1 }

  CallAgentRulesetCatalogEntry ::= SEQUENCE
  {
    callAgentRulesetCatalogId          Unsigned32,
    callAgentRulesetCatalogName        OCTET STRING,
    callAgentRulesetCatalogDescription OCTET STRING,
    callAgentRulesetCatalogOrigin      INTEGER
  }

  -- Index:Id

  callAgentRulesetCatalogId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique identifier of the row in the table.
                 "
   ::= { callAgentRulesetCatalogEntry 100 }

  -- Columnar:Name

  callAgentRulesetCatalogName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Name

                 Ruleset name.

                 The Ruleset name is based on the file name from which the
                 extension '.crs' was removed.

                 "
   ::= { callAgentRulesetCatalogEntry 200 }

  -- Columnar:Description

  callAgentRulesetCatalogDescription OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..512) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Description

                 Description of the Ruleset.
                 "
   ::= { callAgentRulesetCatalogEntry 300 }

  -- Columnar:Origin

  callAgentRulesetCatalogOrigin OBJECT-TYPE
   SYNTAX        INTEGER { factory(100) , custom(200) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Origin

                 Origin of the Ruleset.

                   * Factory: Read only Ruleset delivered with the
                     application.
                   * Custom: User defined Ruleset.

                 A custom Ruleset has priority over a factory Ruleset. If a
                 custom Ruleset is created with the same name as a factory
                 Ruleset, it is the custom Ruleset that will be shown and
                 used. Once the custom Ruleset is deleted, the factory Ruleset
                 will be reactivated.

                 Cloning, editing and saving a factory Ruleset will create a
                 custom Ruleset without modifying the factory Ruleset.

                 "
   ::= { callAgentRulesetCatalogEntry 400 }

 -- End of table:Call Agent Ruleset Catalog

 -- ***************************************************************************
 
 -- Table:Routing Rulesets

 -- ***************************************************************************
 
 routingRulesTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF RoutingRulesEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Routing Rulesets

                This table allows the user/administrator to configure the
                Routing Rulesets.

                The changes to this table are applied when the
                ApplyConfiguration command is executed or when the service is
                restarted.

                The changes to the ruleset files are applied when the
                ApplyConfiguration command is executed or when the service is
                restarted.

                Even if the ConfigModifiedStatus parameter does not indicate
                'yes' after modifying the RoutingRules table, you must execute
                the ApplyConfiguration command.
                "
  ::= { configGroup 300 }
  routingRulesEntry OBJECT-TYPE
   SYNTAX        RoutingRulesEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Routing Rulesets. "
   INDEX         {
                   routingRulesId
                 }

   ::= { routingRulesTable 1 }

  RoutingRulesEntry ::= SEQUENCE
  {
    routingRulesId           Unsigned32,
    routingRulesPriority     Unsigned32,
    routingRulesRuleset      OCTET STRING,
    routingRulesParameters   OCTET STRING,
    routingRulesConfigStatus INTEGER,
    routingRulesDelete       INTEGER
  }

  -- Index:Id

  routingRulesId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for this RoutingRules table
                 entry.

                 "
   DEFVAL        { 0 }
   ::= { routingRulesEntry 100 }

  -- Row command:Delete

  routingRulesDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { routingRulesEntry 10000 }

  -- Columnar:Priority

  routingRulesPriority OBJECT-TYPE
   SYNTAX        Unsigned32 ( 1..2147483647 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Priority

                 Priority of execution of the Routing Rulesets.
                 "
   DEFVAL        { 1 }
   ::= { routingRulesEntry 200 }

  -- Columnar:Ruleset

  routingRulesRuleset OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..48) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Ruleset

                 Name of the Routing Ruleset.

                 This name must have the exact same name with the same
                 extension ('.rrs') as the name of the routing ruleset file
                 located in the local storage of this device (see the File
                 Service). For example: 'my_routing_ruleset.rrs'.

                 "
   DEFVAL        { "" }
   ::= { routingRulesEntry 300 }

  -- Columnar:Parameters

  routingRulesParameters OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..512) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Parameters

                 List of parameters with their value (parameter=value) for the
                 Routing Ruleset.

                 General format: parameter1=value1 parameter2=value2
                 parameter3=value3

                 Each parameter-value pair must be separated by a space.

                 The values can contain any character, with the following
                 constraints:

                   * Values that contain space characters must be enclosed
                     within double quotes.
                   * Within the values, double quotes and backslash characters
                     must be escaped with a backslash.

                 The maximum length for a value is 100 characters.

                 Example: FirstValue=1 SecondValue = 192.168.0.1:5060
                 ThirdValue ='A more complex string'

                 "
   DEFVAL        { "" }
   ::= { routingRulesEntry 400 }

  -- Columnar:Configuration Status

  routingRulesConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , unknownRuleset(200) , invalidConfig
                 (300) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of this routing entry.

                 Indicates whether the RoutingRules table entry is valid and
                 ready to be applied.

                   * Valid: The current content of the row is valid.
                   * UnknownRuleset: The ruleset file is not found.
                   * InvalidConfig: The configuration is not valid.

                 "
   ::= { routingRulesEntry 500 }

 -- End of table:Routing Rulesets

 -- ***************************************************************************
 
 -- Table:Routing Ruleset Catalog

 -- ***************************************************************************
 
 routingRulesetCatalogTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF RoutingRulesetCatalogEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Routing Ruleset Catalog

                This table displays the routing Rulesets installed on this
                device.
                "
  ::= { configGroup 350 }
  routingRulesetCatalogEntry OBJECT-TYPE
   SYNTAX        RoutingRulesetCatalogEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Routing Ruleset Catalog. "
   INDEX         {
                   routingRulesetCatalogId
                 }

   ::= { routingRulesetCatalogTable 1 }

  RoutingRulesetCatalogEntry ::= SEQUENCE
  {
    routingRulesetCatalogId          Unsigned32,
    routingRulesetCatalogName        OCTET STRING,
    routingRulesetCatalogDescription OCTET STRING,
    routingRulesetCatalogOrigin      INTEGER
  }

  -- Index:Id

  routingRulesetCatalogId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique identifier of the row in the table.
                 "
   ::= { routingRulesetCatalogEntry 100 }

  -- Columnar:Name

  routingRulesetCatalogName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Name

                 Ruleset name.

                 The Ruleset name is based on the file name from which the
                 extension '.rrs' was removed.

                 "
   ::= { routingRulesetCatalogEntry 200 }

  -- Columnar:Description

  routingRulesetCatalogDescription OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..512) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Description

                 Description of the Ruleset.
                 "
   ::= { routingRulesetCatalogEntry 300 }

  -- Columnar:Origin

  routingRulesetCatalogOrigin OBJECT-TYPE
   SYNTAX        INTEGER { factory(100) , custom(200) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Origin

                 Origin of the Ruleset.

                   * Factory: Read only Ruleset delivered with the
                     application.
                   * Custom: User defined Ruleset.

                 A custom Ruleset has priority over a factory Ruleset. If a
                 custom Ruleset is created with the same name as a factory
                 Ruleset, it is the custom Ruleset that will be shown and
                 used. Once the custom Ruleset is deleted, the factory Ruleset
                 will be reactivated.

                 Cloning, editing and saving a factory Ruleset will create a
                 custom Ruleset without modifying the factory Ruleset.

                 "
   ::= { routingRulesetCatalogEntry 400 }

 -- End of table:Routing Ruleset Catalog

 -- ***************************************************************************
 
 -- Table:Signaling Interfaces

 -- ***************************************************************************
 
 signalingInterfaceTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF SignalingInterfaceEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Signaling Interfaces

                This table allows the user/administrator to configure the
                Signaling Interfaces.

                To apply the changes made to this table, the service must be
                restarted.

                "
  ::= { configGroup 400 }
  signalingInterfaceEntry OBJECT-TYPE
   SYNTAX        SignalingInterfaceEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Signaling Interfaces. "
   INDEX         {
                   signalingInterfaceId
                 }

   ::= { signalingInterfaceTable 1 }

  SignalingInterfaceEntry ::= SEQUENCE
  {
    signalingInterfaceId                Unsigned32,
    signalingInterfaceName              OCTET STRING,
    signalingInterfaceNetworkInterface  OCTET STRING,
    signalingInterfacePort              Unsigned32,
    signalingInterfaceSecurePort        Unsigned32,
    signalingInterfaceTlsMode           INTEGER,
    signalingInterfaceAllowedTransports INTEGER,
    signalingInterfacePublicIpAddr      MxIpAddress,
    signalingInterfaceTcpConnectTimeout Unsigned32,
    signalingInterfaceTcpIdleTimeout    Unsigned32,
    signalingInterfaceConfigStatus      INTEGER,
    signalingInterfaceDelete            INTEGER
  }

  -- Index:Id

  signalingInterfaceId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a Signaling Interface. The
                 Signaling Interface ID is used by other parameters included
                 in the Configuration Group to refer to this Signaling
                 Interface.
                 "
   DEFVAL        { 0 }
   ::= { signalingInterfaceEntry 100 }

  -- Row command:Delete

  signalingInterfaceDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { signalingInterfaceEntry 10000 }

  -- Columnar:Name

  signalingInterfaceName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Name

                 Signaling Interface name.

                 Alpha-numerics as well as '.', '-' and '_' are valid
                 characters.

                 "
   DEFVAL        { "" }
   ::= { signalingInterfaceEntry 200 }

  -- Columnar:Network Interface

  signalingInterfaceNetworkInterface OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..50) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Network Interface

                 The name of the BNI Network Interface this Signaling
                 Interface is linked to.
                 "
   DEFVAL        { "" }
   ::= { signalingInterfaceEntry 300 }

  -- Columnar:Port

  signalingInterfacePort OBJECT-TYPE
   SYNTAX        Unsigned32 ( 0..65535 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Port

                 Signaling port number on which to receive and send requests.
                 A value of '0' uses the default SIP port.
                 "
   DEFVAL        { 0 }
   ::= { signalingInterfaceEntry 400 }

  -- Columnar:Secure Port

  signalingInterfaceSecurePort OBJECT-TYPE
   SYNTAX        Unsigned32 ( 0..65535 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Secure Port

                 Signaling port number used to receive and send Secure SIP
                 requests. A value of '0' uses the default Secure SIP port.
                 "
   DEFVAL        { 0 }
   ::= { signalingInterfaceEntry 450 }

  -- Columnar:TLS Mode

  signalingInterfaceTlsMode OBJECT-TYPE
   SYNTAX        INTEGER { both(100) , client(200) , server(300) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " TLS Mode

                 The TLS mode that this signaling interface uses.

                   * Both: Permits both client and server connections.
                   * Client: This Signaling Interface can only be used as a
                     TLS client. If no host certificate is present on the unit
                     only this mode is enabled
                   * Server: This Signaling Interface can only be used as a
                     TLS server. This mode requires a valid host certificate
                     on the unit.

                 "
   DEFVAL        { client }
   ::= { signalingInterfaceEntry 475 }

  -- Columnar:Allowed Transports

  signalingInterfaceAllowedTransports OBJECT-TYPE
   SYNTAX        INTEGER { all(100) , tlsOnly(200) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Allowed Transports

                 This parameter configures which transport protocols are
                 allowed on the Sinaling Interface. The possible values are:

                   * All: The Signaling Interface has no restriction on the
                     transport protocol. It supports all transport protocols
                     supported by the SBC.
                   * TlsOnly: The Signaling Interface only supports TLS.
                     Incoming SIP requests that are not in TLS are not
                     directed to this Signaling Interface. Outgoing SIP
                     requests are forced to TLS, even when the ForceTransport
                     parameter is set to another transport protocol or when
                     the Contact received when establishing a dialog specifies
                     another transport protocol.

                 "
   DEFVAL        { all }
   ::= { signalingInterfaceEntry 480 }

  -- Columnar:Public IP Address

  signalingInterfacePublicIpAddr OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Public IP Address

                 Public IP address of this Signaling Interface.

                 Use this parameter when the interface is located on the
                 'private' side of a NAT and must be contacted from the
                 'public' side.

                 This parameter must be set to the public IP address of the
                 NAT. The NAT must be configured with port forwarding to the
                 'private' IP address of this Interface, e.g. as per the
                 NetworkInterface parameter.

                 "
   DEFVAL        { "" }
   ::= { signalingInterfaceEntry 500 }

  -- Columnar:Tcp Connection Timeout

  signalingInterfaceTcpConnectTimeout OBJECT-TYPE
   SYNTAX        Unsigned32 ( 1..127000 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Tcp Connection Timeout

                 TCP connection timeout, in milliseconds, for connections
                 initiated by the SBC service.
                 "
   DEFVAL        { 10000 }
   ::= { signalingInterfaceEntry 600 }

  -- Columnar:Tcp Idle Timeout

  signalingInterfaceTcpIdleTimeout OBJECT-TYPE
   SYNTAX        Unsigned32 ( 0..300000 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Tcp Idle Timeout

                 Idle timeout, in milliseconds, after which a TCP connection
                 is closed. A value of '0' means there is no idle timeout.
                 "
   DEFVAL        { 0 }
   ::= { signalingInterfaceEntry 700 }

  -- Columnar:Configuration Status

  signalingInterfaceConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , unknownNetworkInterface(200) ,
                 portConflict(300) , invalidTlsMode(350) ,
                 invalidTransportMode(380) , invalidConfig(400) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of this Signaling Interface.

                 Indicates if the Signaling Interface configuration is valid
                 and ready to be applied.

                   * Valid: The current content of the row is valid.
                   * UnknownNetworkInterface: The NetworkInterface parameter
                     is either empty or unknown.
                   * PortConflict: The selected port is in conflict with
                     another usage.
                   * InvalidTlsMode: The selected port is in conflict with
                     another usage.
                   * InvalidTransportMode: The Signaling Interface is
                     configured to use only TLS transport and host validation
                     is required by configuration but no CA certificate is
                     present.
                   * InvalidConfig: The configuration of this Signaling
                     Interface is invalid.

                 "
   ::= { signalingInterfaceEntry 800 }

 -- End of table:Signaling Interfaces

 -- ***************************************************************************
 
 -- Table:Media Interfaces

 -- ***************************************************************************
 
 mediaInterfaceTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF MediaInterfaceEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Media Interfaces

                This table allows the user/administrator to configure the
                Media Interfaces.

                To apply the changes made to this table, the service must be
                restarted.

                "
  ::= { configGroup 500 }
  mediaInterfaceEntry OBJECT-TYPE
   SYNTAX        MediaInterfaceEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Media Interfaces. "
   INDEX         {
                   mediaInterfaceId
                 }

   ::= { mediaInterfaceTable 1 }

  MediaInterfaceEntry ::= SEQUENCE
  {
    mediaInterfaceId               Unsigned32,
    mediaInterfaceName             OCTET STRING,
    mediaInterfaceNetworkInterface OCTET STRING,
    mediaInterfacePortRange        OCTET STRING,
    mediaInterfacePublicIpAddr     MxIpAddress,
    mediaInterfaceConfigStatus     INTEGER,
    mediaInterfaceDelete           INTEGER
  }

  -- Index:Id

  mediaInterfaceId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a Media Interface. The Media
                 Interface ID is used by other parameters included in the
                 Configuration Group to refer to this Media Interface.
                 "
   DEFVAL        { 0 }
   ::= { mediaInterfaceEntry 100 }

  -- Row command:Delete

  mediaInterfaceDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { mediaInterfaceEntry 10000 }

  -- Columnar:Name

  mediaInterfaceName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Name

                 Media Interface name.

                 Alpha-numerics as well as '.', '-' and '_' are valid
                 characters.

                 "
   DEFVAL        { "" }
   ::= { mediaInterfaceEntry 200 }

  -- Columnar:Network Interface

  mediaInterfaceNetworkInterface OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..50) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Network Interface

                 The name of the BNI Network Interface the Signaling Interface
                 is linked to.
                 "
   DEFVAL        { "" }
   ::= { mediaInterfaceEntry 300 }

  -- Columnar:Port range

  mediaInterfacePortRange OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..20) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Port range

                 Range of ports assigned to send and receive media traffic.
                 "
   DEFVAL        { "" }
   ::= { mediaInterfaceEntry 400 }

  -- Columnar:Public Ip Address

  mediaInterfacePublicIpAddr OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Public Ip Address

                 Public IP address of this Media Interface.

                 Use this parameter when the interface is located on the
                 'private' side of a NAT and must be contacted from the
                 'public' side.

                 This parameter must be set to the public IP address of the
                 NAT. The NAT must be configured with port forwarding to the
                 'private' IP address of this Interface, e.g. as per the
                 NetworkInterface parameter.

                 "
   DEFVAL        { "" }
   ::= { mediaInterfaceEntry 500 }

  -- Columnar:Configuration Status

  mediaInterfaceConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , unknownNetworkInterface(200) ,
                 portConflict(300) , invalidConfig(400) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of the row.

                 Indicates if this Media Interface is valid and ready to be
                 applied.

                   * Valid: The current content of the row is valid.
                   * UnknownNetworkInterface: The NetworkIterface parameter is
                     either empty or unknown.
                   * PortConflict: The selected port is in conflict with
                     another usage.
                   * InvalidConfig: The configuration of this Media Interface
                     is invalid.

                 "
   ::= { mediaInterfaceEntry 600 }

 -- End of table:Media Interfaces

 -- ***************************************************************************
 
 -- Table:Registration Agent Configuration

 -- ***************************************************************************
 
 registrationAgentTable OBJECT-TYPE
  SYNTAX         SEQUENCE OF RegistrationAgentEntry
  MAX-ACCESS     not-accessible
  STATUS         current
  DESCRIPTION  " Registration Agent Configuration

                 This table allows the user/administrator to configure the
                 Registration Agent.

                 The changes to this table take effect immediately.

                 "
  ::= { configGroup 600 }
  registrationAgentEntry OBJECT-TYPE
   SYNTAX        RegistrationAgentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Registration Agent Configuration. "
   INDEX         {
                   registrationAgentId
                 }

   ::= { registrationAgentTable 1 }

  RegistrationAgentEntry ::= SEQUENCE
  {
    registrationAgentId               Unsigned32,
    registrationAgentUsername         OCTET STRING,
    registrationAgentDomain           OCTET STRING,
    registrationAgentFriendlyName     OCTET STRING,
    registrationAgentContact          OCTET STRING,
    registrationAgentRegistrationType INTEGER,
    registrationAgentExpireValue      Unsigned32,
    registrationAgentRetryInterval    Unsigned32,
    registrationAgentConfigStatus     INTEGER,
    registrationAgentDelete           INTEGER
  }

  -- Index:Id

  registrationAgentId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for this Registration Agent.
                 "
   DEFVAL        { 0 }
   ::= { registrationAgentEntry 100 }

  -- Row command:Delete

  registrationAgentDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { registrationAgentEntry 10000 }

  -- Columnar:User Name

  registrationAgentUsername OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " User Name

                 User name in the Address of Record (AoR) of this registration
                 entry.
                 "
   DEFVAL        { "" }
   ::= { registrationAgentEntry 200 }

  -- Columnar:Domain

  registrationAgentDomain OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Domain

                 Domain in the Address of Record (AoR) of this registration
                 entry.
                 "
   DEFVAL        { "" }
   ::= { registrationAgentEntry 300 }

  -- Columnar:Friendly Name

  registrationAgentFriendlyName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Friendly Name

                 Friendly name of this registration entry.
                 "
   DEFVAL        { "" }
   ::= { registrationAgentEntry 400 }

  -- Columnar:Contact

  registrationAgentContact OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Contact

                 SIP Contact to register.

                 This field accepts the syntax of standard expressions of the
                 SIP contact header. Also it supports a Call Agent macro
                 format %capubip(ca_name)% that is substituted by the actual
                 address and port values of the Call Agent designated by
                 ca_name. Note that the public address is used when the
                 Signaling Interface associated with the Call Agent is
                 configured with the public address. Otherwise, the network
                 interface address of the Signaling Interface is used.

                 The macro can be used alone or within a contact expression:

                   * %capubip(ca_name)% - the macro is replaced by the IP
                     address and port and prefixed by 'sip:'.
                   * sip:user@%CallAgentName%;uri-parameters?headers - the
                     macro is replaced by the IP address and port within the
                     contact expression.

                 Examples of using this macro:

                   * %capubip(wan_ip_trunk_ca)% --> sip:1.1.1.1:5060
                   * sip:user@%capubip(wan_ip_trunk_ca)% -->
                     sip:user@1.1.1.1:5060
                   * sips:user@%capubip(wan_ip_trunk_ca)%;uri-parameters?
                     headers --> sips:user@1.1.1.1:5060;uri-parameters?headers

                 Where 1.1.1.1:5060 are the IP address and port of the
                 Signaling Interface associated with the wan_ip_trunk_ca Call
                 Agent.

                 "
   DEFVAL        { "" }
   ::= { registrationAgentEntry 500 }

  -- Columnar:Registration Type

  registrationAgentRegistrationType OBJECT-TYPE
   SYNTAX        INTEGER { normal(100) , rFC6140(200) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Registration Type

                 Selects the type of registrations made by this Registration
                 Agent.

                   * Normal: Registrations made by this Registration Agent are
                     regular registrations for single users.
                   * RFC6140: Registrations made by this Registration Agent
                     are bulk registrations as defined in RFC 6140.

                 "
   DEFVAL        { normal }
   ::= { registrationAgentEntry 550 }

  -- Columnar:Expire Value

  registrationAgentExpireValue OBJECT-TYPE
   SYNTAX        Unsigned32 ( 1..86400 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Expire Value

                 Registration expiration, in seconds.
                 "
   DEFVAL        { 3600 }
   ::= { registrationAgentEntry 600 }

  -- Columnar:Retry Interval

  registrationAgentRetryInterval OBJECT-TYPE
   SYNTAX        Unsigned32 ( 1..86400 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Retry Interval

                 Interval, in seconds, to retry an unsuccessful registration.
                 "
   DEFVAL        { 600 }
   ::= { registrationAgentEntry 700 }

  -- Columnar:Configuration Status

  registrationAgentConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , invalidConfig(200), invalidContact
                 (300) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of the Registration Agent.

                 Indicates if the Registration Agent entry is valid. A valid
                 entry is applied immediately when entering it.

                   * Valid: The current content of the row is valid.
                   * InvalidConfig: The configuration is not valid.
                   * InvalidContact: The contact is not valid. Possible causes
                     are:
                       + The macro used as the contact refers to a Call Agent
                         that is not active or non-existent.
                       + The Registration Type is RFC 6140 and the contact has
                         a user part.

                 "
   ::= { registrationAgentEntry 800 }

 -- End of table:Registration Agent Configuration

 -- ***************************************************************************
 
 -- Table:Peer Monitoring Configuration

 -- ***************************************************************************
 
 peerMonitoringTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF PeerMonitoringEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Peer Monitoring Configuration

                This table extends the CallAgent table with the configuration
                of the Blacklisting and the Peer Server Monitoring.

                Blacklisting is the mechanism through which SIP server
                availability is managed. Unresponsive servers are put in a
                blacklist for a duration of BlackListingDuration and are not
                used during that time.

                To complement Blacklisting, Peer Monitoring can be used to
                actively verify if servers are responsive. This allows
                detecting unresponsive servers before they are used. Peer
                Monitoring is done by sending SIP OPTIONs to the monitored
                servers.

                A server can be blacklisted as a result of Peer Monitoring or
                in the course of normal SIP signaling.

                During 'normal' SIP signaling, a server can be blacklisted on
                dialog-opening transactions or on out-of-dialog transactions.
                The in-dialog transactions that fail do not cause
                blacklisting.

                Peer Monitoring is based on the value of CallAgent.PeerHost.

                If the value of the CallAgent.PeerHost parameter is an IP
                address, then the Peer Monitoring is made on this address.

                If the value of the CallAgent.PeerHost parameter is an FQDN,
                all the address:port values obtained from the DNS are
                monitored independently. The Call Agent is considered
                blacklisted only when all the address:port values obtained
                from the DNS are blacklisted.

                Peer Monitoring is done using the transport protocol
                configured in the CallAgent.ForceTransport parameter. If this
                parameter is not configured, the default SIP transport (UDP)
                is used.

                Peer Monitoring is performed independently of the rules
                defined in the Routing Rulesets.

                The changes to this table are applied when the
                ApplyConfiguration command is executed or when the service is
                restarted.

                "
  ::= { configGroup 700 }
  peerMonitoringEntry OBJECT-TYPE
   SYNTAX        PeerMonitoringEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Peer Monitoring Configuration. "
   INDEX         {
                   peerMonitoringId
                 }

   ::= { peerMonitoringTable 1 }

  PeerMonitoringEntry ::= SEQUENCE
  {
    peerMonitoringId                     Unsigned32,
    peerMonitoringKeepAliveInterval      Unsigned32,
    peerMonitoringBlackListingDuration   Unsigned32,
    peerMonitoringBlackListingDelay      Unsigned32,
    peerMonitoringBlackListingErrorCodes OCTET STRING
  }

  -- Index:Id

  peerMonitoringId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 ID of the CallAgent table entry used to configure the Peer
                 Monitoring.

                 "
   DEFVAL        { 0 }
   ::= { peerMonitoringEntry 100 }

  -- Columnar:Keep-Alive Interval

  peerMonitoringKeepAliveInterval OBJECT-TYPE
   SYNTAX        Unsigned32 ( 0..3600 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Keep-Alive Interval

                 Interval, in seconds, for sending Keep-Alive OPTIONS to
                 monitor the Call Agent's peer.

                 Special value '0' means the Peer Monitoring feature is
                 disabled.

                 "
   DEFVAL        { 0 }
   ::= { peerMonitoringEntry 200 }

  -- Columnar:Blacklisting Duration

  peerMonitoringBlackListingDuration OBJECT-TYPE
   SYNTAX        Unsigned32 ( 0..86400 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Blacklisting Duration

                 Duration, in seconds, that a peer host remains blacklisted
                 when it appears to be down.

                 Special value '0' means a peer host is never blacklisted.

                 "
   DEFVAL        { 0 }
   ::= { peerMonitoringEntry 300 }

  -- Columnar:Blacklisting Delay

  peerMonitoringBlackListingDelay OBJECT-TYPE
   SYNTAX        Unsigned32 ( 0..60000 )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Blacklisting Delay

                 Delay, in milliseconds, after which the peer is considered to
                 be 'down' following expiration of the transaction timer.

                 A value of '0' means the peer host is blacklisted immediately
                 after expiration of the transaction timer.

                 "
   DEFVAL        { 0 }
   ::= { peerMonitoringEntry 400 }

  -- Columnar:Blacklisting Error Codes

  peerMonitoringBlackListingErrorCodes OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..200) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Blacklisting Error Codes

                 Comma-separated list of SIP response codes indicating the
                 peer is down.

                 After sending a monitoring request or any other message to
                 the peer, if the Call Agent receives one of these response
                 codes, the peer host is immediately blacklisted.

                 "
   DEFVAL        { "" }
   ::= { peerMonitoringEntry 500 }

 -- End of table:Peer Monitoring Configuration

 -- Scalar:Configuration Modified Status

 configModifiedStatus OBJECT-TYPE
  SYNTAX        INTEGER { yes(100) , no(200) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Configuration Modified Status

                Indicates that some configuration changes need the
                ApplyConfiguration command to be executed in order to take
                effect or to be validated. Restarting the service will also
                apply these changes.

                 1. Yes: The configuration has been modified but has not been
                    applied.
                 2. No: The configuration has not been modified.

                Use the ApplyConfiguration command to apply the configuration.

                "
  ::= { configGroup 800 }

-- End of group:Configuration Group

-- ****************************************************************************

-- Group:Routing Group

-- ****************************************************************************

routingGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 150 }
 -- ***************************************************************************
 
 -- Table:Prefix-Based Routing

 -- ***************************************************************************
 
 prefixBasedRoutingTable OBJECT-TYPE
  SYNTAX                   SEQUENCE OF PrefixBasedRoutingEntry
  MAX-ACCESS               not-accessible
  STATUS                   current
  DESCRIPTION          "   Prefix-Based Routing

                           This table contains the prefix-based routing rules.

                           The changes to this table take effect immediately.

                           "
  ::= { routingGroup 100 }
  prefixBasedRoutingEntry OBJECT-TYPE
   SYNTAX        PrefixBasedRoutingEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Prefix-Based Routing. "
   INDEX         {
                   prefixBasedRoutingRuleId
                 }

   ::= { prefixBasedRoutingTable 1 }

  PrefixBasedRoutingEntry ::= SEQUENCE
  {
    prefixBasedRoutingRuleId              Unsigned32,
    prefixBasedRoutingPrefix              OCTET STRING,
    prefixBasedRoutingDestinationCa       Unsigned32,
    prefixBasedRoutingRoutingMethod       INTEGER,
    prefixBasedRoutingDestinationOverride OCTET STRING,
    prefixBasedRoutingRUriHandling        INTEGER,
    prefixBasedRoutingForceTransport      INTEGER,
    prefixBasedRoutingConfigStatus        INTEGER,
    prefixBasedRoutingDelete              INTEGER
  }

  -- Index:RuleId

  prefixBasedRoutingRuleId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " RuleId

                 Unique numerical identifier for this rule.
                 "
   DEFVAL        { 0 }
   ::= { prefixBasedRoutingEntry 100 }

  -- Columnar:Configuration Status

  prefixBasedRoutingConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , invalidCa(200) , noPrefix(300) ,
                 invalidDestination(400) , destinationOverrideMandatory(500) ,
                 prefixDuplicate(600) , invalidConfig(700) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of the row.

                 Indicates if the PrefixBasedRouting entry is valid and ready
                 to be applied.

                   * Valid: The current content of the row is valid.
                   * InvalidCa: The Call Agent is not defined.
                   * NoPrefix: The prefix is not defined.
                   * InvalidDestination: The destination is not valid.
                   * DestinationOverrideMandatory: The destination override is
                     missing.
                   * PrefixDuplicate: The prefix is already used by an other
                     entry.
                   * InvalidConfig: The configuration is not valid.

                 "
   ::= { prefixBasedRoutingEntry 1000 }

  -- Row command:Delete

  prefixBasedRoutingDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { prefixBasedRoutingEntry 10000 }

  -- Columnar:Prefix

  prefixBasedRoutingPrefix OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..50) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Prefix

                 Prefix to match in order to apply the rule.

                 A rule is selected using the longest-prefix-match algorithm.

                 "
   DEFVAL        { "" }
   ::= { prefixBasedRoutingEntry 200 }

  -- Columnar:Destination Call Agent

  prefixBasedRoutingDestinationCa OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Destination Call Agent

                 Id of a Call Agent in the CallAgent table. This Call Agent is
                 used for sending the request.

                 "
   DEFVAL        { 0 }
   ::= { prefixBasedRoutingEntry 300 }

  -- Columnar:Routing Method

  prefixBasedRoutingRoutingMethod OBJECT-TYPE
   SYNTAX        INTEGER { nextHop(100) , outboundProxy(200) , requestUri(300)
                 }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Routing Method

                 Method used for routing.

                   * NextHop: This method allows sending the request directly
                     to this next hop, without necessarily modifying the
                     outbound message. The next hop is used for all requests
                     within a given SIP dialog, thus ignoring data from the
                     dialog state (remote URI, route set). If the target Call
                     Agent is defined with a peer host, the next hop field
                     default destination is the IP address or domain name and
                     port of that host. Otherwise, it is mandatory to enter an
                     override destination (domain name or IP address). When
                     using the NextHop method, the DestinationOveride
                     parameter supports multiple destinations by using a
                     comma-separated list of destinations.
                   * OutboundProxy: This method adds a Route header field to
                     the forwarded request, which will be considered for
                     routing by the SIP transport layer. Similar to the
                     NextHop method, the default destination is a URI built
                     out of the IP address or domain name and port as defined
                     by the Call Agent, if applicable.
                   * RequestUri: This method uses the Request URI (R-URI) to
                     determine the next hop. Note that the target Call Agent
                     set is still used to execute the outbound rulesets
                     regardless of the host portion of the R-URI.

                 "
   DEFVAL        { nextHop }
   ::= { prefixBasedRoutingEntry 400 }

  -- Columnar:Destination Override

  prefixBasedRoutingDestinationOverride OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..200) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Destination Override

                 String containing a coma-separated list of IP addresses or
                 FQDNs to use as the next hop when the routing method is set
                 to 'NextHop' or 'OutboundProxy'. This destination overrides
                 the peer host that is configured in the target Call Agent. If
                 the target Call Agent does not specify a peer host then using
                 the destination override is mandatory.
                 "
   DEFVAL        { "" }
   ::= { prefixBasedRoutingEntry 500 }

  -- Columnar:Request URI Handling

  prefixBasedRoutingRUriHandling OBJECT-TYPE
   SYNTAX        INTEGER { none(100) , update(200) , replace(300) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Request URI Handling

                 Indicates how to handle the host part of the Request URI.

                   * None: Leave the request URI unmodified.
                   * Update: Update the host part of the Request URI with the
                     destination next hop or outbound proxy.
                   * Replace: Replace the Request URI by the (resolved)
                     numeric IP address of the next hop.

                 "
   DEFVAL        { none }
   ::= { prefixBasedRoutingEntry 600 }

  -- Columnar:Force Transport

  prefixBasedRoutingForceTransport OBJECT-TYPE
   SYNTAX        INTEGER { none(100) , tCP(200) , uDP(300) , tLS(400) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Force Transport

                 Force the use of a selected transport protocol when
                 initiating SIP dialogs. Supersedes what is defined in the
                 Call Agent.

                   * None: Transport is not forced. Will use UDP if the use of
                     another transport protocol is not forced elsewhere.
                   * TCP: The outbound SIP signaling will be transported over
                     TCP on the normal port.
                   * UDP: The outbound SIP signaling will be transported over
                     UDP on the normal port.
                   * TLS: The outbound SIP signaling will be transported over
                     TLS on the secure port.

                 Note: To force TLS and guarantee that no other transport
                 protocol can be used, you must also set the
                 SignalingInterface.AllowedTransports parameter to TlsOnly.

                 "
   DEFVAL        { none }
   ::= { prefixBasedRoutingEntry 700 }

 -- End of table:Prefix-Based Routing

-- End of group:Routing Group

-- ****************************************************************************

-- Group:Registration Group

-- ****************************************************************************

registrationGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 170 }
 -- ***************************************************************************
 
 -- Table:Static Registration

 -- ***************************************************************************
 
 staticRegistrationTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF StaticRegistrationEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Static Registration

                This table contains the Static Registration entries.

                It is used by Rulesets to validate or to update, with the
                table's content, various fields of a SIP request.

                The changes to this table take effect immediately.

                "
  ::= { registrationGroup 100 }
  staticRegistrationEntry OBJECT-TYPE
   SYNTAX        StaticRegistrationEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Static Registration. "
   INDEX         {
                   staticRegistrationRegistrationId
                 }

   ::= { staticRegistrationTable 1 }

  StaticRegistrationEntry ::= SEQUENCE
  {
    staticRegistrationRegistrationId Unsigned32,
    staticRegistrationAor            OCTET STRING,
    staticRegistrationContact        OCTET STRING,
    staticRegistrationConfigStatus   INTEGER,
    staticRegistrationDelete         INTEGER
  }

  -- Index:Registration Id

  staticRegistrationRegistrationId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Registration Id

                 Unique numerical identifier for this registration entry.
                 "
   DEFVAL        { 0 }
   ::= { staticRegistrationEntry 100 }

  -- Columnar:Configuration Status

  staticRegistrationConfigStatus OBJECT-TYPE
   SYNTAX        INTEGER { valid(100) , aorDuplicate(200) , invalidConfig(300)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Configuration Status

                 Configuration status of the row.

                 Indicates if the StaticRegistration entry is valid and ready
                 to be applied.

                   * Valid: The current content of the row is valid.
                   * AorDuplicate: The Aor is identical to another one within
                     the table.
                   * InvalidConfig: The configuration is not valid.

                 "
   ::= { staticRegistrationEntry 1000 }

  -- Row command:Delete

  staticRegistrationDelete OBJECT-TYPE
   SYNTAX        INTEGER { noOp(0), delete(10) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Delete

                 Delete this entry from the table.
                 "
   DEFVAL        { noOp }
   ::= { staticRegistrationEntry 10000 }

  -- Columnar:Address of Record

  staticRegistrationAor OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..50) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Address of Record

                 The address of record, in URI format, of this registration
                 entry.

                 For example: sip:alice@example.com

                 This value must be unique within the table.

                 "
   DEFVAL        { "" }
   ::= { staticRegistrationEntry 200 }

  -- Columnar:Contact

  staticRegistrationContact OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..50) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " Contact

                 The SIP contact, in URI format, used for this registration
                 entry.

                 For example: sip:5551212@192.168.11.23:5060

                 "
   DEFVAL        { "" }
   ::= { staticRegistrationEntry 300 }

 -- End of table:Static Registration

-- End of group:Registration Group

-- ****************************************************************************

-- Group:Status Group

-- ****************************************************************************

statusGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 200 }
 -- ***************************************************************************
 
 -- Table:Call Agent Status

 -- ***************************************************************************
 
 callAgentStatusTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF CallAgentStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Call Agent Status

                This table displays the status and the active configuration of
                the Call Agents.
                "
  ::= { statusGroup 100 }
  callAgentStatusEntry OBJECT-TYPE
   SYNTAX        CallAgentStatusEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Call Agent Status. "
   INDEX         {
                   callAgentStatusId
                 }

   ::= { callAgentStatusTable 1 }

  CallAgentStatusEntry ::= SEQUENCE
  {
    callAgentStatusId                 Unsigned32,
    callAgentStatusName               OCTET STRING,
    callAgentStatusSignalingInterface Unsigned32,
    callAgentStatusMediaInterface     OCTET STRING,
    callAgentStatusGateway            OCTET STRING,
    callAgentStatusPeerHost           MxIpAddress,
    callAgentStatusState              INTEGER
  }

  -- Index:Id

  callAgentStatusId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a Call Agent. The Call Agent
                 ID is used by other parameters included in the Status Group
                 to refer to a Call Agent.
                 "
   ::= { callAgentStatusEntry 100 }

  -- Columnar:Name

  callAgentStatusName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Name

                 Call Agent name.

                 This name is displayed everywhere the Call Agent is used in
                 the Management Interface.

                 "
   ::= { callAgentStatusEntry 200 }

  -- Columnar:Signaling Interface

  callAgentStatusSignalingInterface OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Signaling Interface

                 ID of the Signaling Interface used by this Call Agent.
                 "
   ::= { callAgentStatusEntry 300 }

  -- Columnar:Media Interface

  callAgentStatusMediaInterface OBJECT-TYPE
   SYNTAX        OCTET STRING
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Media Interface

                 ID of the Media Interface used by this Call Agent.
                 "
   ::= { callAgentStatusEntry 400 }

  -- Columnar:Gateway

  callAgentStatusGateway OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Gateway

                 Name of the local gateway to be used by this Call Agent. When
                 no local gateway is selected, the Call Agent will use an
                 external peer.
                 "
   ::= { callAgentStatusEntry 500 }

  -- Columnar:IP address of the peer

  callAgentStatusPeerHost OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " IP address of the peer

                 Resolved IP address of the peer.
                 "
   ::= { callAgentStatusEntry 600 }

  -- Columnar:State

  callAgentStatusState OBJECT-TYPE
   SYNTAX        INTEGER { active(100) , networkDown(200), internalError(300)
                 , peerDown(400) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " State

                 State of the call agent.

                   * Active: The Call Agent is active.
                   * NetworkDown: The Call Agent is inactive because the
                     network is down.

                 "
   ::= { callAgentStatusEntry 700 }

 -- End of table:Call Agent Status

 -- ***************************************************************************
 
 -- Table:Signaling Interfaces

 -- ***************************************************************************
 
 signalingInterfaceStatusTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF SignalingInterfaceStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Signaling Interfaces

                This table displays the active configuration of the Signaling
                Interfaces.
                "
  ::= { statusGroup 200 }
  signalingInterfaceStatusEntry OBJECT-TYPE
   SYNTAX        SignalingInterfaceStatusEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Signaling Interfaces. "
   INDEX         {
                   signalingInterfaceStatusId
                 }

   ::= { signalingInterfaceStatusTable 1 }

  SignalingInterfaceStatusEntry ::= SEQUENCE
  {
    signalingInterfaceStatusId                Unsigned32,
    signalingInterfaceStatusName              OCTET STRING,
    signalingInterfaceStatusNetworkInterface  OCTET STRING,
    signalingInterfaceStatusPort              Unsigned32,
    signalingInterfaceStatusSecurePort        Unsigned32,
    signalingInterfaceStatusTlsMode           INTEGER,
    signalingInterfaceStatusAllowedTransports INTEGER,
    signalingInterfaceStatusPublicIpAddr      MxIpAddress,
    signalingInterfaceStatusTcpConnectTimeout Unsigned32,
    signalingInterfaceStatusTcpIdleTimeout    Unsigned32,
    signalingInterfaceStatusIpAddress         MxIpAddress,
    signalingInterfaceStatusState             INTEGER
  }

  -- Index:Id

  signalingInterfaceStatusId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a Signaling Interface. The
                 Signaling Interface ID is used by other parameters included
                 in the Status Group to refer to this Signaling Interface.
                 "
   ::= { signalingInterfaceStatusEntry 100 }

  -- Columnar:Name

  signalingInterfaceStatusName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Name

                 Signaling Interface name.

                 This name is displayed everywhere the Signaling Interface is
                 used in the Management Interface.

                 "
   ::= { signalingInterfaceStatusEntry 200 }

  -- Columnar:Network Interface

  signalingInterfaceStatusNetworkInterface OBJECT-TYPE
   SYNTAX        OCTET STRING
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Network Interface

                 The name of the BNI Network Interface on which this Signaling
                 Interface is attached.
                 "
   ::= { signalingInterfaceStatusEntry 300 }

  -- Columnar:Port

  signalingInterfaceStatusPort OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Port

                 Signaling port number on which requests are sent and
                 received.
                 "
   ::= { signalingInterfaceStatusEntry 400 }

  -- Columnar:Secure Port

  signalingInterfaceStatusSecurePort OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Secure Port

                 Signaling Secure Port number.
                 "
   ::= { signalingInterfaceStatusEntry 450 }

  -- Columnar:TLS Mode

  signalingInterfaceStatusTlsMode OBJECT-TYPE
   SYNTAX        INTEGER { both(100) , client(200) , server(300) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " TLS Mode

                 The TLS mode that this signaling interface uses.
                 "
   ::= { signalingInterfaceStatusEntry 475 }

  -- Columnar:Allowed Transports

  signalingInterfaceStatusAllowedTransports OBJECT-TYPE
   SYNTAX        INTEGER { all(100) , tlsOnly(200) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Allowed Transports

                 Transport protocols allowed on the Signaling Interface. The
                 possible values are:

                   * All: The Signaling Interface has no restriction on the
                     transport protocol. It supports all transport protocols
                     supported by the SBC.
                   * TlsOnly: The Signaling Interface supports only TLS.

                 "
   ::= { signalingInterfaceStatusEntry 485 }

  -- Columnar:Public Ip Address

  signalingInterfaceStatusPublicIpAddr OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Public Ip Address

                 Public IP address for near-end NAT traversal.
                 "
   ::= { signalingInterfaceStatusEntry 500 }

  -- Columnar:Tcp Connection Timeout

  signalingInterfaceStatusTcpConnectTimeout OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Tcp Connection Timeout

                 TCP connection timeout, in milliseconds, for connections
                 initiated by the SBC.
                 "
   ::= { signalingInterfaceStatusEntry 600 }

  -- Columnar:Tcp Idle Timeout

  signalingInterfaceStatusTcpIdleTimeout OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Tcp Idle Timeout

                 Idle timeout, in milliseconds, after which a TCP connection
                 is closed.

                 Special value '0' means there is no idle timeout.

                 "
   ::= { signalingInterfaceStatusEntry 700 }

  -- Columnar:IP Address

  signalingInterfaceStatusIpAddress OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " IP Address

                 Current local IP address of this Signaling Interface.
                 "
   ::= { signalingInterfaceStatusEntry 800 }

  -- Columnar:State

  signalingInterfaceStatusState OBJECT-TYPE
   SYNTAX        INTEGER { active(100) , networkDown(200) , noIpAddress(300) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " State

                 State

                   * Active: The Signaling Interface is active.
                   * NetworkDown: The Signaling Interface is inactive because
                     the network is down.
                   * NoIpAddress: The Signaling Interface is inactive because
                     it has no IP address.

                 "
   ::= { signalingInterfaceStatusEntry 900 }

 -- End of table:Signaling Interfaces

 -- ***************************************************************************
 
 -- Table:Media Interfaces Status

 -- ***************************************************************************
 
 mediaInterfaceStatusTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF MediaInterfaceStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Media Interfaces Status

                This table displays the active configuration of the Media
                Interfaces.
                "
  ::= { statusGroup 300 }
  mediaInterfaceStatusEntry OBJECT-TYPE
   SYNTAX        MediaInterfaceStatusEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Media Interfaces Status. "
   INDEX         {
                   mediaInterfaceStatusId
                 }

   ::= { mediaInterfaceStatusTable 1 }

  MediaInterfaceStatusEntry ::= SEQUENCE
  {
    mediaInterfaceStatusId               Unsigned32,
    mediaInterfaceStatusName             OCTET STRING,
    mediaInterfaceStatusNetworkInterface OCTET STRING,
    mediaInterfaceStatusPortRange        OCTET STRING,
    mediaInterfaceStatusPublicIpAddr     MxIpAddress,
    mediaInterfaceStatusIpAddress        MxIpAddress,
    mediaInterfaceStatusState            INTEGER
  }

  -- Index:Id

  mediaInterfaceStatusId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a Media Interface. The Media
                 Interface ID is used by other parameters in the Status Group
                 to refer to this Media Interface.
                 "
   ::= { mediaInterfaceStatusEntry 100 }

  -- Columnar:Name

  mediaInterfaceStatusName OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..100) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Name

                 Media Interface name.

                 This name is displayed everywhere the Media Interface is used
                 in the Management Interface.

                 "
   ::= { mediaInterfaceStatusEntry 200 }

  -- Columnar:Network Interface

  mediaInterfaceStatusNetworkInterface OBJECT-TYPE
   SYNTAX        OCTET STRING
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Network Interface

                 The name of the BNI Network Interface the Signaling Interface
                 is linked to.
                 "
   ::= { mediaInterfaceStatusEntry 300 }

  -- Columnar:Port range

  mediaInterfaceStatusPortRange OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..20) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Port range

                 Range of ports assigned to send and receive media traffic.
                 "
   ::= { mediaInterfaceStatusEntry 400 }

  -- Columnar:Public Ip Address

  mediaInterfaceStatusPublicIpAddr OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Public Ip Address

                 Public IP address for near-end NAT traversal.
                 "
   ::= { mediaInterfaceStatusEntry 500 }

  -- Columnar:IP Address

  mediaInterfaceStatusIpAddress OBJECT-TYPE
   SYNTAX        MxIpAddress
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " IP Address

                 Current local IP address of this Media Interface.
                 "
   ::= { mediaInterfaceStatusEntry 600 }

  -- Columnar:State

  mediaInterfaceStatusState OBJECT-TYPE
   SYNTAX        INTEGER { active(100) , networkDown(200) , noIpAddress(300) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " State

                 State

                   * Active: The Media Interface is active.
                   * NetworkDown: The Media Interface is inactive because the
                     network is down.
                   * NoIpAddress: The Media Interface is inactive because it
                     has no IP address.

                 "
   ::= { mediaInterfaceStatusEntry 700 }

 -- End of table:Media Interfaces Status

 -- ***************************************************************************
 
 -- Table:Call Agents Rulesets Status

 -- ***************************************************************************
 
 callAgentRulesetStatusTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF CallAgentRulesetStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Call Agents Rulesets Status

                This table displays the association of Rulesets to Call
                Agents.
                "
  ::= { statusGroup 400 }
  callAgentRulesetStatusEntry OBJECT-TYPE
   SYNTAX        CallAgentRulesetStatusEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Call Agents Rulesets Status. "
   INDEX         {
                   callAgentRulesetStatusId
                 }

   ::= { callAgentRulesetStatusTable 1 }

  CallAgentRulesetStatusEntry ::= SEQUENCE
  {
    callAgentRulesetStatusId         Unsigned32,
    callAgentRulesetStatusCallAgent  Unsigned32,
    callAgentRulesetStatusPriority   Unsigned32,
    callAgentRulesetStatusRuleset    OCTET STRING,
    callAgentRulesetStatusParameters OCTET STRING
  }

  -- Index:Id

  callAgentRulesetStatusId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for this Ruleset association.
                 "
   ::= { callAgentRulesetStatusEntry 100 }

  -- Columnar:CallAgent

  callAgentRulesetStatusCallAgent OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " CallAgent

                 ID of the CallAgent table entry to which this Ruleset is
                 attached.

                 "
   ::= { callAgentRulesetStatusEntry 200 }

  -- Columnar:Priority

  callAgentRulesetStatusPriority OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Priority

                 Priority of execution of this Ruleset on that Call Agent.

                 Inbound rules of the Ruleset are executed in ascending
                 priority order. Outbound rules are executed in descending
                 priority order.

                 "
   ::= { callAgentRulesetStatusEntry 300 }

  -- Columnar:Ruleset

  callAgentRulesetStatusRuleset OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..48) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Ruleset

                 Name of the Ruleset to which the Call Agent is attached.
                 "
   ::= { callAgentRulesetStatusEntry 400 }

  -- Columnar:Parameters

  callAgentRulesetStatusParameters OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..512) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Parameters

                 List of ruleset parameters and their value.
                 "
   ::= { callAgentRulesetStatusEntry 500 }

 -- End of table:Call Agents Rulesets Status

 -- ***************************************************************************
 
 -- Table:Routing Rules Status

 -- ***************************************************************************
 
 routingRulesStatusTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF RoutingRulesStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Routing Rules Status

                This table contains the configuration of the routing rules.
                "
  ::= { statusGroup 500 }
  routingRulesStatusEntry OBJECT-TYPE
   SYNTAX        RoutingRulesStatusEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Routing Rules Status. "
   INDEX         {
                   routingRulesStatusId
                 }

   ::= { routingRulesStatusTable 1 }

  RoutingRulesStatusEntry ::= SEQUENCE
  {
    routingRulesStatusId         Unsigned32,
    routingRulesStatusPriority   Unsigned32,
    routingRulesStatusRuleset    OCTET STRING,
    routingRulesStatusParameters OCTET STRING
  }

  -- Index:Id

  routingRulesStatusId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for this RoutingRulesStatus table
                 entry.

                 "
   ::= { routingRulesStatusEntry 100 }

  -- Columnar:Priority

  routingRulesStatusPriority OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Priority

                 Priority of execution of the Routing Rulesets.
                 "
   ::= { routingRulesStatusEntry 200 }

  -- Columnar:Ruleset

  routingRulesStatusRuleset OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..48) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Ruleset

                 Name of the routing ruleset.
                 "
   ::= { routingRulesStatusEntry 300 }

  -- Columnar:Parameters

  routingRulesStatusParameters OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..512) )
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Parameters

                 List of routing ruleset parameters and their value.
                 "
   ::= { routingRulesStatusEntry 400 }

 -- End of table:Routing Rules Status

 -- ***************************************************************************
 
 -- Table:Registration Agent Status

 -- ***************************************************************************
 
 registrationAgentStatusTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF RegistrationAgentStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Registration Agent Status

                This table displays the state of the Registration Agent's
                Subscribers
                "
  ::= { statusGroup 600 }
  registrationAgentStatusEntry OBJECT-TYPE
   SYNTAX        RegistrationAgentStatusEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Registration Agent Status. "
   INDEX         {
                   registrationAgentStatusId
                 }

   ::= { registrationAgentStatusTable 1 }

  RegistrationAgentStatusEntry ::= SEQUENCE
  {
    registrationAgentStatusId    Unsigned32,
    registrationAgentStatusState INTEGER
  }

  -- Index:Id

  registrationAgentStatusId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Id

                 Unique numerical identifier for a subscriber.
                 "
   ::= { registrationAgentStatusEntry 100 }

  -- Columnar:State

  registrationAgentStatusState OBJECT-TYPE
   SYNTAX        INTEGER { registering(200) , registered(300) , refreshing
                 (400) , unreachable(600) , rejected(800) , invalidResponse
                 (1000) , notFound (1100) , unknown (1200) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " State

                 The current state of the registration.

                   * Registering: The registration is currently trying to
                     register.
                   * Registered: The registration is successfully registered.
                   * Refreshing: The registration is trying to refresh.
                   * Unreachable: The last registration attempt failed because
                     the registrar is unreachable.
                   * Rejected: The last registration attempt failed because
                     the registrar rejected the registration.
                   * InvalidResponse: The received 200 OK response contact
                     does not match the contact of the register. Or the 200 OK
                     response for an un-register contains contact. This value
                     is also used when the response doesn't match any other
                     state.
                   * NotFound: The last registration attempt failed with SIP
                     code 404. This can happen when the registrar does not
                     find the user or if the Sbc service is not configured
                     properly.
                   * Unknown: The state is not available. Please try again
                     later.

                 "
   ::= { registrationAgentStatusEntry 200 }

 -- End of table:Registration Agent Status

-- End of group:Status Group

-- ****************************************************************************

-- Group:Statistics Group

-- ****************************************************************************

statisticsGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 300 }
 -- Scalar:Number of active calls

 nbActiveCalls OBJECT-TYPE
  SYNTAX        Unsigned32
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Number of active calls

                Current number of active calls handled by the SBC service.
                "
  ::= { statisticsGroup 100 }

 -- ***************************************************************************
 
 -- Table:Call Agent Statistics

 -- ***************************************************************************
 
 callAgentStatsTable OBJECT-TYPE
  SYNTAX        SEQUENCE OF CallAgentStatsEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " Call Agent Statistics

                This table contains the statistics related to a Call Agent.

                Statistics are collected as soon as the SBC service is
                started.

                "
  ::= { statisticsGroup 200 }
  callAgentStatsEntry OBJECT-TYPE
   SYNTAX        CallAgentStatsEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Call Agent Statistics. "
   INDEX         {
                   callAgentStatsCallAgent
                 }

   ::= { callAgentStatsTable 1 }

  CallAgentStatsEntry ::= SEQUENCE
  {
    callAgentStatsCallAgent             Unsigned32,
    callAgentStatsInboundCallAttempts   Unsigned32,
    callAgentStatsOutboundCallAttempts  Unsigned32,
    callAgentStatsInboundCallCompleted  Unsigned32,
    callAgentStatsOutboundCallCompleted Unsigned32
  }

  -- Index:CallAgent

  callAgentStatsCallAgent OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " CallAgent

                 Id of the Call Agent associated with the statistics.
                 "
   ::= { callAgentStatsEntry 100 }

  -- Columnar:Inbound Call Attempts

  callAgentStatsInboundCallAttempts OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Inbound Call Attempts

                 Number of inbound call attempts for this Call Agent.
                 "
   ::= { callAgentStatsEntry 200 }

  -- Columnar:Outbound Call Attempts

  callAgentStatsOutboundCallAttempts OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Outbound Call Attempts

                 Number of outbound call attempts for this Call Agent.
                 "
   ::= { callAgentStatsEntry 300 }

  -- Columnar:Inbound Calls Completed

  callAgentStatsInboundCallCompleted OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Inbound Calls Completed

                 Number of completed inbound calls for this Call Agent.
                 "
   ::= { callAgentStatsEntry 400 }

  -- Columnar:Outbound Calls Completed

  callAgentStatsOutboundCallCompleted OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Outbound Calls Completed

                 Number of completed outbound calls for this Call Agent.
                 "
   ::= { callAgentStatsEntry 500 }

 -- End of table:Call Agent Statistics

-- End of group:Statistics Group

-- ****************************************************************************

-- Group:Transport Group

-- ****************************************************************************

transportGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 400 }
 -- Scalar:Level of security for TLS certificate validation.

 certificateValidation OBJECT-TYPE
  SYNTAX        INTEGER { noValidation(100) , hostName(200) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Level of security for TLS certificate validation.

                When establishing a TLS connection as a client, this parameter
                defines the level of security to use when validating the
                server's certificate.

                  * NoValidation: Allow a connection to the server without
                    validating its certificate. This option provides partial
                    security and should be selected with care.
                  * HostName: Allow a connection to the server by validating
                    if its certificate is trusted and valid. The validations
                    performed on the certificate include the expiration date
                    and indicate if the Subject Alternate Name (SAN) or Common
                    Name (CN) matches the FQDN or IP address of the server.

                "
  DEFVAL        { hostName }
  ::= { transportGroup 100 }

-- End of group:Transport Group

-- ****************************************************************************

-- Group:Notification Messages Configuration

-- ****************************************************************************

notificationsGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 60010 }
 -- Scalar:Minimal Severity of Notification

 minSeverity OBJECT-TYPE
  SYNTAX        INTEGER { disable(0) , debug(100) , info(200) , warning(300) ,
                error(400) , critical (500) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Minimal Severity of Notification

                Sets the minimal severity to issue a notification message
                incoming from this service.

                  * Disable: No notification is issued.
                  * Debug: All notification messages are issued.
                  * Info: Notification messages with a 'Informational' and
                    higher severity are issued.
                  * Warning: Notification messages with a 'Warning' and higher
                    severity are issued.
                  * Error: Notification messages with an 'Error' and higher
                    severity are issued.
                  * Critical: Notification messages with a 'Critical' severity
                    are issued.

                "
  DEFVAL        { warning }
  ::= { notificationsGroup 100 }

-- End of group:Notification Messages Configuration

-- ****************************************************************************

-- Group:Configuration Settings

-- ****************************************************************************

configurationGroup OBJECT IDENTIFIER
 ::= { sbcMIBObjects 60020 }
 -- Scalar:Need Restart

 needRestartInfo OBJECT-TYPE
  SYNTAX        INTEGER { no(0) , yes(100) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Need Restart

                Indicates if the service needs to be restarted for the
                configuration to fully take effect.

                  * Yes: Service needs to be restarted.
                  * No: Service does not need to be restarted.

                Services can be restarted by using the
                Scm.ServiceCommands.Restart command.

                "
  ::= { configurationGroup 100 }

-- End of group:Configuration Settings

END
