-- MIB created 3/24/100 14:41:02, by
--   SMIC (the next generation) version 1.6.29, November 22, 1994.

XGCP-MIB DEFINITIONS ::= BEGIN

-- From file: "XGCP-MIB.my"

IMPORTS
    experimental, Integer32, Counter32, IpAddress
            FROM SNMPv2-SMI-v1
    OBJECT-TYPE
            FROM RFC-1212
    TRAP-TYPE
            FROM RFC-1215
    TimeStamp, TruthValue, DisplayString
            FROM SNMPv2-TC-v1;

xgcpMIB OBJECT IDENTIFIER ::= { experimental 90 }
-- MODULE-IDENTITY
--  LastUpdated
--    9902170000Z
--  OrgName
--    Will submit this new XGCP-MIB to IETF-DRAFT
--  ContactInfo
--            Dinh D. Nguyen 
--    
--     Postal: Cisco Systems, Inc.
--             170 West Tasman Drive
--             San Jose, CA  95134-1706
--             US
--    
--     Phone:  +1 408 525 1624
--     Email:  dinhn@cisco.com
--    
--             Rick N. Chen 
--    
--     Postal: Cisco Systems, Inc.
--             170 West Tasman Drive
--             San Jose, CA  95134-1706
--             US
--    
--     Phone:  +1 408 525 6367
--     Email:  richen@cisco.com
--  Descr
--    The MIB module for managing XGCP implementations.
--  RevDate
--    9902170000Z
--  RevDescr
--    This is initial version of XGCP MIB.

xgcpObjects     OBJECT IDENTIFIER ::= { xgcpMIB 1 }
xgcpCoreObjects OBJECT IDENTIFIER ::= { xgcpObjects 1 }
xgcpExtensionObjects OBJECT IDENTIFIER ::= { xgcpObjects 2 }
xgcpPackageObjects OBJECT IDENTIFIER ::= { xgcpObjects 3 }
xgcpVoiceQualityObjects OBJECT IDENTIFIER ::= { xgcpObjects 4 }
xgcpDefaultMGCObjects OBJECT IDENTIFIER ::= { xgcpObjects 5 }
xgcpNotificationPrefix OBJECT IDENTIFIER ::= { xgcpMIB 2 }
xgcpNotifications OBJECT IDENTIFIER ::= { xgcpNotificationPrefix 0 }
xgcpMIBConformance OBJECT IDENTIFIER ::= { xgcpMIB 3 }
xgcpMIBCompliances OBJECT IDENTIFIER ::= { xgcpMIBConformance 1 }
xgcpMIBGroups   OBJECT IDENTIFIER ::= { xgcpMIBConformance 2 }

xgcpInBadVersions OBJECT-TYPE
    SYNTAX Counter32
--  Units
--    messages
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The total number of incoming messages which were delivered to
         the protocol entity and were for an unsupported protocol 
         version."
    ::= { xgcpCoreObjects 1 }

xgcpRequestTimeOut OBJECT-TYPE
    SYNTAX Integer32(1..10000)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The request timeout is used to determine the timeout value used
            for retransmitting unacknowledged message.
        It is the responsibility of the requesting entity to provide
        suitable timeouts for all outstanding commands, and to retry
        commands when timeouts exceeded.
        
        The default value of this object is 500 milliseconds."
    ::= { xgcpCoreObjects 2 }

xgcpRequestRetries OBJECT-TYPE
    SYNTAX Integer32(0..10)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the number of retries for a request that
         exceeds timeout. 
        It is the responsibility of the requesting entity to provide
        suitable timeouts for all outstanding commands, and to retry
        when times out.
        
        The default value of this object is 3."
    ::= { xgcpCoreObjects 3 }

xgcpAdminStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2),
        gracefulDown(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The desired state of the protocol entity. 
        
        The possible admin status are:
        up - bring up protocol entity administratively  
        down - bring down protocol entity adiministratively 
        gracefulDown - gracefully shut down protocol entity 
                                 administratively. 
        
        A graceful shutdown indicates that the protocol 
        will be taken out of service after the restart  
        delay timer timeouts or all connections are torn down.
        
         When in graceDown, the xgcpOperStatus goes from up to 
         down via shutDownInProgress. 
        
         If there is no connection or restart delay timer 
         timeouts then xgcpOperStatus moves from 
         shutDownInProgress to down."
    DEFVAL { down }
    ::= { xgcpCoreObjects 4 }

xgcpOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2),
        shutDownInProgress(3)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the current operational
         status of the protocol entity.    
        
        The possible operating status are:
        up - protocol up 
        down - protocol down 
        shutDownInProgress - Shut down in progress.
        
        The operating status - shutDownInProgress indicates 
         that the Media Gateway is in a transition state from 
         up to down. This state happens when resources are in 
         the process of being cleaned up and new resource 
         can't be allocated. "
    ::= { xgcpCoreObjects 5 }

xgcpUnRecognizedPackets OBJECT-TYPE
    SYNTAX Counter32
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        " This refers to the count of unrecognized packets  
          since reset."
    ::= { xgcpCoreObjects 6 }

xgcpMsgStatTable OBJECT-TYPE
    SYNTAX SEQUENCE OF XgcpMsgStatEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table contains XGCP statistics information since reset.
         XGCP statistics are kept in this table, with each 
         table entry containing the statistics of XGCP that 
         communicates with a Media Gateway Controller (MGC) at 
         a specific IP address of the MGC.
        
         Each table entry is composed of the following information:  
        
         1) Messages successfully received/transmitted per IP device 
         2) Messages failed to be received/transmitted per IP device
        "
    ::= { xgcpCoreObjects 7 }

xgcpMsgStatEntry OBJECT-TYPE
    SYNTAX XgcpMsgStatEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The row of the xgcpMsgStatTable contains 
         information about XGCP message statistics per IP address
         of the Media Gateway Controller.
         An entry is created when a request messge with new IP 
         address is received from Medida Gateway Controller. 
         When the table is full, an entry is deleted if it is 
         LRU (Least Recently Used). "
    INDEX { xgcpIPAddress }
    ::= { xgcpMsgStatTable 1 }

XgcpMsgStatEntry ::= SEQUENCE {
    xgcpIPAddress IpAddress,
    xgcpSuccessMessages Counter32,
    xgcpFailMessages Counter32
    }

xgcpIPAddress OBJECT-TYPE
    SYNTAX IpAddress
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        " This object specifies the IP address of the  
          Media Gateway Controller."
    ::= { xgcpMsgStatEntry 1 }

xgcpSuccessMessages OBJECT-TYPE
    SYNTAX Counter32
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object specifies the count of successful messages
         that communicate with the Media Gateway Controller on 
         that IP address.
        
         Successful messages apply to both transmit and 
         receive messages.                             
        
           Transmit: Positive ACK is received from the Media  
                     Gateway Controller
        
           Receive: Positive ACK is sent to the Media Gateway 
                    Controller. This implies that the format  
                    of the message is correct and the request
                    can be fulfilled.
        "
    ::= { xgcpMsgStatEntry 2 }

xgcpFailMessages OBJECT-TYPE
    SYNTAX Counter32
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object specifies the count of failed  messages
         that communicate with the Media Gateway Controller on 
         that IP address.
        
         Failed messages apply to both transmit and receive
         messages. 
        
           Transmit: Either NAK is received from the MGC or message
                     times out waiting for ACK.   
           Receive:  Format of the received message is bad or
                     the request can not be fulfilled.   "
    ::= { xgcpMsgStatEntry 3 }

xgcpRestartInProgressMWD OBJECT-TYPE
    SYNTAX Integer32(0..600000)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The maximum waiting delay (MWD) timeout value is used for the
            Media Gateway to send the Restart In Progress to the Media  
            Gateway Controller.
        
            The default value of this object is chosen in an 
            implementation-dependent manner by the MGCP functionality 
            based on the call volume of the system."
    REFERENCE
        " Media Gateway Control Protocol (MGCP),
          version 0.1 draft, Feb 1, 1999 : Section 4.3.4 "
    ::= { xgcpExtensionObjects 1 }

xgcpRestartDelay OBJECT-TYPE
    SYNTAX Integer32(0..600)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the Restart Delay Timeout for 
         the restart process.
         The purpose of setting the restart timer before sending
         the Restart In Progress notification to the media gateway
         controller is to avoid the network congestion
         during the critical period of service restoration.
        
        The default value of this object is 0."
    REFERENCE
        " Media Gateway Control Protocol (MGCP),
          version 0.1 draft, Feb 1, 1999 : Section 4.3.4 "
    ::= { xgcpExtensionObjects 2 }

xgcpMGCCfgAddress OBJECT-TYPE
    SYNTAX DisplayString(SIZE(1..64))
--    Rsyntax OCTET STRING(SIZE(1..64))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to configure either the domain 
         name or the IP address of the Default Media Gateway 
         Controller in standard dot notation.     
        
         The complete address of a default MGC is cmposed of  
         IP address/Domain Name and UDP port.
        
         xgcpMGCCfgaddress specifies address of the default Media 
         Gateway Controller to which RSIP(RestartInProgress) message 
         is sent whenever system starts up or line goes up.
        
         If DNS name is entered and the IP address is found,
         MG will send RSIP to the desired MGC. If no IP address is  
         found or no such DNS name exists, no RSIP will be sent.
        
         If IP address is entered, MG will send RSIP to that address.
        
         If there is no response, it could be that the network is down 
         or user misconfigures the address (IP address, Domain Name or
         UDP port number)"
    ::= { xgcpDefaultMGCObjects 1 }

xgcpMGCCfgUDPPort OBJECT-TYPE
    SYNTAX Integer32(1025..65535)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to configure the UDP port
         of the Media Gateway Controller.
        
         The UDP port is used together with xgcpMGCCfgAddress to  
         specify the destination address of the default Media 
         Gateway Controller to which RSIP message is sent when
         system starts up or line goes up.
          "
    ::= { xgcpDefaultMGCObjects 2 }

xgcpMGCCfgConnStatus OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        connected(2),
        connecting(3),
        unknownName(4),
        noResponse(5)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object is used to specify the connection status   
         of the Default Media Gateway Controller.
        
         When sending RSIP to default Media Gateway Controller,
         there could be the following status:
        
         unknown - undefined stauts. 
         connected - RSIP sent and response to it is received.  
         connecting -  RSIP is sent and waiting for response.
         unknownName - no domain name/ip address is found 
                      when checking the DNS for the domain name 
                      entered in xgcpMGCCfgAddress. No RSIP 
                      message is sent.
         noResponse - timeout on RSIP message. 
        
        
         The possible casues for no response on RSIP message:          
        
         1) Address(IP Address/Domain Name and UDP) for the default 
            MGC is correct but MGC in not up or network is down.
         2) MGC is up but at a different address (IP Address/
            Domain Name)
         3) MGC is up and at the same address(IP address/
            Domain Name) but wrong UDP port.
         4) MGC is down and address is wrong. "
    ::= { xgcpDefaultMGCObjects 3 }

xgcpMGCCfgTimeStamp OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object contains the time stamp of 
         state transition of xgcpMGCCfgConnStatus."
    ::= { xgcpDefaultMGCObjects 4 }

xgcpCapabilityPackageTable OBJECT-TYPE
    SYNTAX SEQUENCE OF XgcpCapabilityPackageEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table contains XGCP capability packages.
         The Capability Package table - This table is 
         used to specify the availability of the packages.
        
         The Capabality Package Name is used as the 
         index for the table.
        
         Each entry contains a CapabilityPackageEnable 
         object. It is used to enable/disable a package 
         on the Media Gateway.  "
    ::= { xgcpPackageObjects 1 }

xgcpCapabilityPackageEntry OBJECT-TYPE
    SYNTAX XgcpCapabilityPackageEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The entry specifies the availability of the XGCP         
         package.
         Each entry is created when the MGCP software 
         detects a new package. The entry goes away  
         only if the package is removed."
    INDEX { IMPLIED xgcpCapabilityPackageName }
    ::= { xgcpCapabilityPackageTable 1 }

XgcpCapabilityPackageEntry ::= SEQUENCE {
    xgcpCapabilityPackageName DisplayString(SIZE(1..64)),
    xgcpCapabilityPackageEnable TruthValue
    }

xgcpCapabilityPackageName OBJECT-TYPE
    SYNTAX DisplayString(SIZE(1..64))
--    Rsyntax OCTET STRING(SIZE(1..64))
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        " This object specifies the Name of the
          Capability Package. 
        
          The list of basic packages includes the following:
        
               _________________________________________
              | Package                      |   name  |
              |______________________________|_________|
              | Generic Media Package        |   G     |
              | DTMF package                 |   D     |
              | MF Package                   |   M     |
              | Trunk Package                |   T     |
              | Line Package                 |   L     |
              | Handset Package              |   H     |
              | RTP Package                  |   R     |
              | Netwark Access Server Package|   N     |
              | Announcement Server Package  |   A     |
              | Script Package               |   S     |
              |______________________________|_________|
         "
    REFERENCE
        " Media Gateway Control Protocol (MGCP),
          version 0.1 draft, Feb 1, 1999 : Section 6.1"
    ::= { xgcpCapabilityPackageEntry 1 }

xgcpCapabilityPackageEnable OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        " This object eables/disables the Package Capability "
    DEFVAL { true }
    ::= { xgcpCapabilityPackageEntry 2 }

xgcpDefaultPackage OBJECT-TYPE
    SYNTAX DisplayString(SIZE(1..64))
--    Rsyntax OCTET STRING(SIZE(1..64))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        " This object contains the default package name for
          the MGCP/SGCP protocol and it should have the
          same value as xgcpCapabilityPackageName. "
    REFERENCE
        " Media Gateway Control Protocol (MGCP),
          version 0.1 draft, Feb 1, 1998 : Section 2.1.6"
    ::= { xgcpPackageObjects 2 }

xgcpLowerBoundForPacketLoss OBJECT-TYPE
    SYNTAX Integer32(1..3000)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the lower bound for voice
                quality packet loss per 100,000 packets. Voice quality 
                packet loss may happen due to network congestion or due
                to network overload.
        
                When packet loss(number of packet per 100,000) is high 
                enough to reach lower bound(e.g. 1500) and then higher 
                bound(e.g. 2500) the first time, a MGCP/SGCP Notify 
                message is sent to the Media Gateway Controller. 
          
                Subsequent hits of the higher bound results in a 
                MGCP/SGCP Notify message being sent to the Media Gateway 
                Controller only after the lower bound is hit.
        
        
                  |                Ntfy 
                  |    Ntfy  Ntfy   |        Ntfy
                  |     |     |     v         |
                  |     v     v      *   *    v
                  +     * *   *     * * * *   *     <---  higher bound
                  |    *   * * *  *    *   * * *
                  +   *     *   *           *   *   <---- lower bound
                  |  *                           *
                  | *                             * 
                  |*
                  +------------------------------------ 
        
         The default value of this object is 1000.
               "
    ::= { xgcpVoiceQualityObjects 1 }

xgcpHigherBoundForPacketLoss OBJECT-TYPE
    SYNTAX Integer32(5000..25000)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the higher bound for voice quality 
                packet loss per 100,000 packets. Voice quality packet loss 
                may happen due to network congestion or due to network 
                overload.
        
         The default value of this object is 10,000.
               "
    ::= { xgcpVoiceQualityObjects 2 }

xgcpLowerBoundForJitter OBJECT-TYPE
    SYNTAX Integer32(4..60)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is the lower bound for Quality Alert for 
         Jitter.
        
         Jitter is an estimate of the statistical variance of the RTP 
         data packet interval-rival time measured in milliseconds and 
         expressed as an unsigned integer.
        
         When jitter(milliseconds) is long enough to reach lower 
         bound(e.g.30 ) and then higher bound(e.g. 150) the first 
         time, a MGCP/SGCP Notify message is sent to the Media 
         Gateway Controller. 
        
         Subsequent hits of the higher bound results in a 
         MGCP/SGCP Notify message being sent to the Media Gateway 
         Controller only after the lower bound is hit.
        
        The default value of this object is 30."
    ::= { xgcpVoiceQualityObjects 3 }

xgcpHigherBoundForJitter OBJECT-TYPE
    SYNTAX Integer32(100..200)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is the higher bound for Quality Alert for 
         Jitter.
        
         Jitter is an estimate of the statistical variance of the RTP 
         data packet interval-rival time measured in milliseconds and 
         expressed as an unsigned integer.
        
        The default value of this object is 150."
    ::= { xgcpVoiceQualityObjects 4 }

xgcpLowerBoundForLatency OBJECT-TYPE
    SYNTAX Integer32(125..200)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is the higher bound for Quality Alert for 
        latency.  
        
        QA latency is an estimate of the network delay, expressed 
         in milliseconds. This is the average value of the difference 
         between the Network Time Protocol (NTP) timestamp indicated 
         by the senders of the RTCP messages and the NTP timestamp 
         of the receivers, measured when these messages are received. 
        
         When latency (milliseconds) is long enough to reach lower 
         bound (e.g.150 ) and then higher bound(e.g. 300) the first 
         time, a MGCP/SGCP Notify message is sent to the Media 
         Gateway Controller. 
        
         Subsequent hits of the higher bound results in a 
         MGCP/SGCP Notify message being sent to the Media Gateway 
         Controller only after the lower bound is hit.
        
        The default value of this object is 150."
    ::= { xgcpVoiceQualityObjects 5 }

xgcpHigherBoundForLatency OBJECT-TYPE
    SYNTAX Integer32(250..400)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is the higher bound for Quality Alert for 
        latency.  
        
        QA latency is an estimate of the network delay, expressed 
         in milliseconds. This is the average value of the difference 
         between the NTP timestamp indicated by the senders of the 
        RTCP messages and the NTP timestamp of the receivers, 
         measured when these messages are received. 
        
        
        The default value of this object is 300."
    ::= { xgcpVoiceQualityObjects 6 }

xgcpUpDownNotification TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE xgcpNotificationPrefix
    VARIABLES {
        xgcpOperStatus }
--  Status
--    mandatory
    DESCRIPTION
        "This notification is sent when the protocol status changes  
         between up and down.
        
         The following information is returned:
               xgcpOperStatus -> Current operational status of XGCP 
        "
    ::= 1

xgcpCoreGroup OBJECT IDENTIFIER ::= { xgcpMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains core objects for SGCP/MGCP on the  
--     Media Gateway Controller and the Media Gateway.
--     
--  objects
--    xgcpInBadVersions, xgcpRequestTimeOut, xgcpRequestRetries, 
--    xgcpAdminStatus, xgcpOperStatus, xgcpUnRecognizedPackets, 
--    xgcpSuccessMessages, xgcpFailMessages

xgcpExtensionGroup OBJECT IDENTIFIER ::= { xgcpMIBGroups 2 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains extension objects for MGCP on 
--     the Media Gateway.
--     
--  objects
--    xgcpRestartInProgressMWD, xgcpRestartDelay

xgcpPackageGroup OBJECT IDENTIFIER ::= { xgcpMIBGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains package objects for MGCP on
--     the Media Gateway or the Media Gateway Controller.
--  objects
--    xgcpCapabilityPackageEnable, xgcpDefaultPackage

xgcpVoiceQualityGroup OBJECT IDENTIFIER ::= { xgcpMIBGroups 4 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains voice quality objects for  
--     the Media Gateway .
--  objects
--    xgcpLowerBoundForPacketLoss, xgcpHigherBoundForPacketLoss, 
--    xgcpLowerBoundForJitter, xgcpHigherBoundForJitter, 
--    xgcpLowerBoundForLatency, xgcpHigherBoundForLatency

xgcpDefaultMGCGroup OBJECT IDENTIFIER ::= { xgcpMIBGroups 5 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains address objects for default 
--     Media Gateway Controller.
--     
--  objects
--    xgcpMGCCfgAddress, xgcpMGCCfgUDPPort, xgcpMGCCfgConnStatus, 
--    xgcpMGCCfgTimeStamp

xgcpMIBCompliance OBJECT IDENTIFIER ::= { xgcpMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for the SNMPv2 entities 
--     which implement XGCP.
--  Module
--    >>current<<
--   MandGroup
--    xgcpCoreGroup
--   OptGroup
--    xgcpExtensionGroup
--   OptGroup
--    xgcpPackageGroup
--   OptGroup
--    xgcpVoiceQualityGroup
--   OptGroup
--    xgcpDefaultMGCGroup


END

