-- *****************************************************************
-- ciscoVismXgcpExtensionMIB
--  "VISM(Voice Interworking Service Module) specific extensions 
--   to XGCP MIB. This MIB is an extension to the XGCP-MIB as 
---  defined by: External Media Gateway Control Protocol
--   MIB-XGCP-MIB <ietf-nguyen-xgcp-mib-01.txt> April 13, 1999"
--
-- July 2003, George Ogagan
--
-- Copyright (c) 2003 by cisco Systems, Inc.
-- All rights reserved.
-- ****************************************************************

CISCO-VISM-XGCP-EXT DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Counter32,
    IpAddress
                               FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP               FROM SNMPv2-CONF
    voice                      FROM BASIS-MIB
    ciscoWan                   FROM CISCOWAN-SMI;

ciscoVismXgcpExtMIB MODULE-IDENTITY
    LAST-UPDATED    "200307110000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                        Tel: +1 800 553-NETS

                E-mail: cs-wanatm@cisco.com"
    DESCRIPTION
        "The MIB module contain the XGCP MIB feature in VISM"

    REVISION    "200307110000Z"
    DESCRIPTION
        "Initial version of the MIB.

        The content of this MIB was originally available
        in SMIv1 version. The MIB has been converted to
        SMIv2 version and descriptions of some of the objects
        have been modified."
    ::= { ciscoWan 94 }


vismXgcpExtensionGrp           OBJECT IDENTIFIER ::= { voice 5 }
vismXgcpCoreObjects            OBJECT IDENTIFIER ::= { vismXgcpExtensionGrp 1 }
vismXgcpEnhancementsObjects    OBJECT IDENTIFIER ::= { vismXgcpExtensionGrp 2 }


-- *********************************************************************
-- The XGCP Core Group Extension
-- *********************************************************************

vismXgcpRequestMaxTimeout  OBJECT-TYPE
    SYNTAX      Integer32 (1..100000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "
          This object specifies the maximum timeout value.

          This timer value is used along with xgcpRequestTimeout and
          xgcpRequestRetries (in xgcpGrp.my) to determine the exponential 
          retry interval for retransmitting unacknowledged xgcp messages.

          The value of this timer has to be greater than or equal to
          xgcpRequestTimeout.

          The default value of this object is 500 milliseconds.

          When the value of this object changes vismXgcpCoreObjects changed
          trap will be sent.

        "
        DEFVAL{500}
        ::= {vismXgcpCoreObjects 1}

vismXgcpPort OBJECT-TYPE
    SYNTAX      Integer32(1025..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure the local UDP port on 
         VISM used by the SGCP and MGCP protocols to communicate
         with the call agent.

         The UDP port is used together with vismIpAddress to  
         identify the local end of a SGCP/MGCP connection.

         The default value of this object is 2427.
          
         In VISM 1.5 this object always defaults to 2427 and is 
         read-only.
        "
    DEFVAL { 2427 }
    ::= { vismXgcpCoreObjects 2 }

-- *********************************************************************
-- The XGCP Peer Configuration Table
-- *********************************************************************

vismXgcpPeerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VismXgcpPeerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This table is used to provision peer-specific XGCP 
          configuration information. Each table entry corresponds 
          to an XGCP peer name / peer XGCP variant combination.
	"
    ::= { vismXgcpCoreObjects 3 }

vismXgcpPeerEntry OBJECT-TYPE
    SYNTAX      VismXgcpPeerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "Each row is identified by XGCP peer name and peer XGCP 
          protocol number combination. This means, if an MGC uses
          more than one variant of XGCP (i.e MGCP, SGCP 1.0, 
          SGCP 1.1 etc), an entry will be maintained for each
          of the protocols. mgcNumber and mgcProtocolNumber from
          MGMIB are used as foreign index to this table. 

          Entries in this table are implicitly created by the 
          agent. An entry shall be created when an entry is created 
          in the mgcProtocolTable and when mgcProtocolNumber refers 
          to an XGCP variant (i.e MGCP, SGCP 1.0, SGCP 1.1 etc) as 
          supported protocol. An entry shall be deleted if the 
          corresponding entry in the mgcProtocolTable is deleted.

          As both mgcProtocolTable and vismXgcpPeerTable have 
          mgcNumber and mgcProtocolNumber as index, referential 
          integrity between the two tables is automatically ensured. 
	"
    INDEX   { vismXgcpPeerNumber, vismXgcpPeerProtocolNumber }
    ::= { vismXgcpPeerTable 1 }

VismXgcpPeerEntry ::= SEQUENCE {
        vismXgcpPeerNumber            Integer32,
        vismXgcpPeerProtocolNumber    Integer32,
        vismXgcpPeerPort              Integer32
    }

vismXgcpPeerNumber  OBJECT-TYPE
    SYNTAX      Integer32 (1..8)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object is the same as mgcNumber from
         MGMIB.
        "
    ::= { vismXgcpPeerEntry 1 }

vismXgcpPeerProtocolNumber  OBJECT-TYPE
    SYNTAX      Integer32 (1..8)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object is the same as mgcProtocolNumber
         from MGMIB.
        "
    ::= { vismXgcpPeerEntry 2 }

vismXgcpPeerPort  OBJECT-TYPE
    SYNTAX      Integer32 (1025..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure the local UDP port on
         VISM used by the SGCP and MGCP protocols to communicate
         with the call agent.

         The UDP port is used together with vismIpAddress to
         identify the local end of a SGCP/MGCP connection.

         If the protocol configured for the call agent is MGCP 1.0,
         the default port is 2727. In all other cases, the default
         value of this object is 2427.

         In VISM 1.5 this object always defaults to 2427 and is
         read-only.
        "
    DEFVAL { 2427 }
    ::= { vismXgcpPeerEntry 3 }

-- *****************************************************************
-- The XGCP Statistics table extension
-- *****************************************************************

vismXgcpMsgStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VismXgcpMsgStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table is an extension to the xgcpMsgStatTable contained
         in the XGCP MIB. This table provides per-message type based
         detailed statistics information. 
	"
    ::= { vismXgcpCoreObjects 4 }

vismXgcpMsgStatEntry OBJECT-TYPE
    SYNTAX      VismXgcpMsgStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The row of the vismXgcpMsgStatTable contains 
         additional information about XGCP message statistics 
         beyond that provided by the XGCP MIB. 
	"
    INDEX   { vismXgcpIpAddress }
    ::= { vismXgcpMsgStatTable 1 }

VismXgcpMsgStatEntry ::= SEQUENCE {
        vismXgcpIpAddress               IpAddress,
        vismXgcpCrcxCnts                Counter32,
        vismXgcpCrcxFailCnts            Counter32,
        vismXgcpMdcxCnts                Counter32,
        vismXgcpMdcxFailCnts            Counter32,
        vismXgcpDlcxRcvCnts             Counter32,
        vismXgcpDlcxRcvFailCnts         Counter32,
        vismXgcpDlcxSentCnts            Counter32,
        vismXgcpDlcxSentFailCnts        Counter32,
        vismXgcpRqntCnts                Counter32,
        vismXgcpRqntFailCnts            Counter32,
        vismXgcpNtfyCnts                Counter32,
        vismXgcpNtfyFailCnts            Counter32,
        vismXgcpAuepCnts                Counter32,
        vismXgcpAuepFailCnts            Counter32,
        vismXgcpAucxCnts                Counter32,
        vismXgcpAucxFailCnts            Counter32,
        vismXgcpRsipCnts                Counter32,
        vismXgcpRsipFailCnts            Counter32
    }

vismXgcpIpAddress  OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This object specifies the IP address of the  
          Media Gateway Controller. The value of this object is
          the same as xgcpIpAddress of XGCP-MIB.
        "
    ::= { vismXgcpMsgStatEntry 1 }
 
vismXgcpCrcxCnts  OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        " This refers to the count of CRCX (Create Connection) 
          messages received from the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 2 }
 
vismXgcpCrcxFailCnts  OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        " This refers to the count of CRCX (Create Connection) 
          messages received from the call agent that were responded
          to with a failure return code.
        "
    ::= { vismXgcpMsgStatEntry 3 }
 
vismXgcpMdcxCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of MDCX (Modify Connection) 
          messages received from the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 4 }
 
vismXgcpMdcxFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of MDCX (Modify Connection) 
          messages received from the call agent that were responded
          to with a failure return code.
        "
    ::= { vismXgcpMsgStatEntry 5 }
 
vismXgcpDlcxRcvCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of DLCX (Delete Connection) 
          messages received from the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 6 }
 
vismXgcpDlcxRcvFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of DLCX (Delete Connection) 
          messages received from the call agent that were responded
          to with a failure return code.
        "
    ::= { vismXgcpMsgStatEntry 7 }
 
vismXgcpDlcxSentCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of DLCX (Delete Connection) 
          messages sent to the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 8 }
 
vismXgcpDlcxSentFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of DLCX (Delete Connection) 
          messages sent to the call agent for which a response
          with failure return code was received or which timed
          out waiting for an acknowledgement.
        "
    ::= { vismXgcpMsgStatEntry 9 }

vismXgcpRqntCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of RQNT (Request Notify) 
          messages received from the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 10 }
 
vismXgcpRqntFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of RQNT (Request Notify) 
          messages received from the call agent that were 
          responded to with a failure return code.
        "
    ::= { vismXgcpMsgStatEntry 11 }
 
vismXgcpNtfyCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of NTFY (Notify) messages 
          sent to the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 12 }
 
vismXgcpNtfyFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of NTFY (Notify) messages 
          sent to the call agent for which a response with 
          failure return code was received or which timed out
          waiting for a response.
        "
    ::= { vismXgcpMsgStatEntry 13 }

vismXgcpAuepCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of AUEP (Audit Endpoint) 
          messages received from the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 14 }
 
vismXgcpAuepFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of AUEP (Audit Endpoint) 
          messages received from the call agent that were 
          responded to with a failure return code.
        "
    ::= { vismXgcpMsgStatEntry 15 }
 
vismXgcpAucxCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of AUCX (Audit Connection) 
          messages received from the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 16 }
 
vismXgcpAucxFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of AUCX (Audit Connection) 
          messages received from the call agent that were 
          responded to with a failure return code.
        "
    ::= { vismXgcpMsgStatEntry 17 }
 
vismXgcpRsipCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of RSIP (Restart In Progress) 
          messages sent to the call agent since reset.
        "
    ::= { vismXgcpMsgStatEntry 18 }
 
vismXgcpRsipFailCnts  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        " This refers to the count of RSIP (Restart In Progress) 
          messages sent to the call agent for which a response 
          with failure return code was received or which timed out
          waiting for a response.
        "
    ::= { vismXgcpMsgStatEntry 19 }

-- *********************************************************************
-- The XGCP Enhancement Group 
-- *********************************************************************

vismXgcpRestartInProgressTdinit OBJECT-TYPE
    SYNTAX      Integer32 (1..100)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The endpoint becomes disconnected when it tries to communicate
         with the call agent and the retransmission procedure times out
         after retrying.

         The endpoint in disconnected state starts the disconnected timer
         initialised to the random value and uniformly distributed between
         1 and initial waiting delay (Tdinit) in seconds. 

         The gateway waits for either the end of this timer, or the reception
         of call agent command or the detection of local user activity for 
         the endpoint.

         When the disconnected timer elapses, or when a command is received
         from the call agent or when there is a local user activity, the 
         Media Gateway sends the Restart In Progress command with the restart 
         method as RM:disconnected to the Media Gateway Controller.
         
         The initial waiting delay (Tdinit) timeout value is defined by
         this MIB object.  

         The recommended value of this object is 15 seconds.
        "
    REFERENCE
         " Media Gateway Control Protocol (MGCP),
           version 1.0 bis, May 10, 2001 : Section 4.4.7
         "
    DEFVAL{ 15 }
    ::= { vismXgcpEnhancementsObjects 1 }

vismXgcpRestartInProgressTdmin OBJECT-TYPE
    SYNTAX      Integer32 (0..100)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The endpoint becomes disconnected when it tries to communicate
         with the call agent and the retransmission procedure times out
         after retrying.

         The endpoint in disconnected state starts the disconnected timer
         initialised to the random value and uniformly distributed between
         1 and initial waiting delay (Tdinit) in seconds. 

         The gateway waits for either the end of this timer, or the reception
         of call agent command or the detection of local user activity for 
         the endpoint.

         When the disconnected timer elapses, or when a command is received
         from the call agent or when there is a local user activity, the 
         Media Gateway sends the Restart In Progress command with the restart 
         method as RM:disconnected to the Media Gateway Controller.
         
         In case of local user activity, a provisionable disconnected
         minimum waiting delay (Tdmin) must have been elapsed since the
         gateway became disconnected. 
        
         The minimum waiting delay (Tdmin) timeout value used by the
         Media Gateway to send the Restart In Progress with the restart
         method as RM:disconnected to the Media Gateway Controller if
         there is any local user activity is defined by this object.

         Media Gateway initiated delete connection (DLCX) or restart in
         progress (RSIP) commands are not considered as local user
         activity.

         The events observed on the TDM interface or on the network 
         constitute the local user activity.

         The recommended value of this object is 15 seconds.
        "
    REFERENCE
         " Media Gateway Control Protocol (MGCP),
           version 1.0 bis, May 10, 2001 : Section 4.4.7
         "
    DEFVAL{ 15 }
    ::= { vismXgcpEnhancementsObjects 2 }

vismXgcpRestartInProgressTdmax OBJECT-TYPE
    SYNTAX      Integer32 (1..5000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The maximum waiting delay (Tdmax) timeout value used by the
         Media Gateway to send the Restart In Progress with the restart
         method as RM:disconnected to the Media Gateway Controller when
         the endpoint has become disconnected is defined by this object.

         The endpoint becomes disconnected when it tries to communicate
         with the call agent and the retransmission procedure times out
         after retrying.

         The endpoint in disconnected state starts the disconnected timer
         initialised to the random value and uniformly distributed between
         1 and initial waiting delay (Tdinit) in seconds. 

         The gateway waits for either the end of this timer, or the reception
         of call agent command or the detection of local user activity for 
         the endpoint.

         When the disconnected timer elapses, or when a command is received
         from the call agent or when there is a local user activity, the 
         Media Gateway sends the Restart In Progress command with the restart 
         method as RM:disconnected to the Media Gateway Controller.

         If the disconnected procedure still left the endpoint disconnected,
         the disconnected timer is doubled subject to a provisionable
         disconnected maximum waiting delay (Tdmax) in seconds and the
         gateway starts the new disconnected procedure again.

         Once the maximum value is reached, the subsequent disconnected
         Restart In Progress commands use the maximum waiting delay (Tdmax).
         
         The recommended value of this object is 600 seconds.
        "
    REFERENCE
         " Media Gateway Control Protocol (MGCP),
           version 1.0 bis, May 10, 2001 : Section 4.4.7
         "
    DEFVAL{ 600 }
    ::= { vismXgcpEnhancementsObjects 3 }

-- conformance information

ciscoVismXgcpExtMIBConformance  OBJECT IDENTIFIER ::= { ciscoVismXgcpExtMIB 2 }

ciscoVismXgcpExtMIBGroups       OBJECT IDENTIFIER ::=
                              { ciscoVismXgcpExtMIBConformance 1 }

ciscoVismXgcpExtMIBCompliances  OBJECT IDENTIFIER ::=
                              { ciscoVismXgcpExtMIBConformance 2 }

-- compliance statements

ciscoVismXgcpExtCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for objects related
        to VISM-XGCP-MIB."
    MODULE  -- this module
        MANDATORY-GROUPS {
            ciscoVismXgcpExtensionGroup,
            ciscoVismXgcpCoreGroup,
            ciscoVismXgcpStatsGroup,
            ciscoVismXgcpEnhancementGroup
        }
    ::= { ciscoVismXgcpExtMIBCompliances 1 }

ciscoVismXgcpExtensionGroup OBJECT-GROUP
     OBJECTS {
         vismXgcpRequestMaxTimeout,
         vismXgcpPort
     }
     STATUS current
     DESCRIPTION
          "The collection of objects which are used to represent
          VISM XGCP MIB."
      ::= { ciscoVismXgcpExtMIBGroups 1 }

ciscoVismXgcpCoreGroup OBJECT-GROUP
     OBJECTS {
        vismXgcpPeerNumber,
        vismXgcpPeerProtocolNumber,
        vismXgcpPeerPort
     }
     STATUS current
     DESCRIPTION
          "The collection of objects which are used to represent
          VISM peer XGCP MIB configuration."
      ::= { ciscoVismXgcpExtMIBGroups 2 }

ciscoVismXgcpStatsGroup OBJECT-GROUP
     OBJECTS {
        vismXgcpIpAddress,
        vismXgcpCrcxCnts,
        vismXgcpCrcxFailCnts,
        vismXgcpMdcxCnts,
        vismXgcpMdcxFailCnts,
        vismXgcpDlcxRcvCnts,
        vismXgcpDlcxRcvFailCnts,
        vismXgcpDlcxSentCnts,
        vismXgcpDlcxSentFailCnts,
        vismXgcpRqntCnts,
        vismXgcpRqntFailCnts,
        vismXgcpNtfyCnts,
        vismXgcpNtfyFailCnts,
        vismXgcpAuepCnts,
        vismXgcpAuepFailCnts,
        vismXgcpAucxCnts,
        vismXgcpAucxFailCnts,
        vismXgcpRsipCnts,
        vismXgcpRsipFailCnts
     }
     STATUS current
     DESCRIPTION
          "The collection of objects which are used to represent
          VISM peer XGCP MIB Statistics information."
      ::= { ciscoVismXgcpExtMIBGroups 3 }

ciscoVismXgcpEnhancementGroup OBJECT-GROUP
     OBJECTS {
       vismXgcpRestartInProgressTdinit,
       vismXgcpRestartInProgressTdmin,
       vismXgcpRestartInProgressTdmax
     }
     STATUS current
     DESCRIPTION
          "The collection of objects which are used to represent
          VISM XGCP Enhancement."
      ::= { ciscoVismXgcpExtMIBGroups 4 }

END
