-- *********************************************************************
-- CISCO-IF-CALL-SERVICE-MIB.my:
--
-- Cisco IF Service MIB 
--
--
-- April 2003, Yizhong Shen
--
-- Copyright (c) 2003 by cisco Systems, Inc.
-- All rights reserved.
--
-- *********************************************************************
CISCO-IF-CALL-SERVICE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-COMPLIANCE,
    OBJECT-GROUP           FROM SNMPv2-CONF
    OBJECT-TYPE,
    MODULE-IDENTITY,
    Unsigned32             FROM SNMPv2-SMI
    TEXTUAL-CONVENTION     FROM SNMPv2-TC
    ifIndex                FROM IF-MIB
    OwnerString            FROM RMON-MIB
    ConfigIterator, 
    BulkConfigResult       FROM CISCO-TC
    ciscoMgmt              FROM CISCO-SMI;

ciscoIfCallServiceMIB MODULE-IDENTITY
    LAST-UPDATED "200304250000Z"
    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-voice-gateway@cisco.com"
    DESCRIPTION
          "The MIB is used to manage call service state
           for interfaces on media gateway. 
          "

    REVISION "200304250000Z"
    DESCRIPTION
        "Initial version of the MIB module."

    ::= { ciscoMgmt 9968 }

ciscoIfCallServiceMIBNotifs 
            OBJECT IDENTIFIER ::= { ciscoIfCallServiceMIB 0 }
ciscoIfCallServiceMIBObjects       
            OBJECT IDENTIFIER ::= { ciscoIfCallServiceMIB 1 }
ciscoIfCallServiceMIBConformance     
            OBJECT IDENTIFIER ::= { ciscoIfCallServiceMIB 2}

cicServiceConfig           
            OBJECT IDENTIFIER ::= { ciscoIfCallServiceMIBObjects 1 }

-- *********************************************************************
-- TEXTUAL CONVENTIONS USED IN THIS MIB
-- *********************************************************************
 
CIfCallServiceOperState ::= TEXTUAL-CONVENTION
    STATUS	   current
    DESCRIPTION
        "This Textual Convention defines the call connection related 
         service state of an interface. The possible service states are:

          inService:
	      An interface is ready for call connection setup. 

          outOfService:
              The interface is in Out-Of-Service state.
              All calls will be destroyed on this interface by Call
              Agent. 
              A call service state change message with FORCED method  
              is sent to Call Agent.
              No new connections are allowed on the interface.

          oosPending:
              The interface is in Out-Of-Service state.
              All existing calls will not be affected on this 
              interface. 
              A call service state change message with GRACEFUL method
              is sent to Call Agent.
              No new connections are allowed.     
        "
    SYNTAX  INTEGER {
		      inService                (1),
 		      outOfService             (2),
		      oosPending               (3)
		    }

CIfCallServiceAdminState ::= TEXTUAL-CONVENTION
    STATUS	   current
    DESCRIPTION
        "This Textual Convention defines the service administrative 
         state of an interface. The possible service administrative 
         states are as follows:

          inService: 
              The interface would be restored to in-service status 
              and a call service state change with method RESTART  
              message will be sent to Call Agent
             
          forcefulOutOfService: 
              The interface would be in Out-Of-Service state.
              Any existing connections on the interface will 
              deleted.
              A call service state change message with FORCED method 
              will be sent to Call Agent.
              New connections would be blocked.           

          gracefulOutOfService: 
              The interface would be in Out-Of-Service state.
              Any existing connections on the interface are not 
              affected.
              A call service state change message with GRACEFUL 
              method will be sent to Call Agent.
              New connections would be blocked.      
        "
    SYNTAX  INTEGER {
		      inService                (1),
 		      forcedOutOfService       (2),
		      gracefulOutOfService     (3)
		    }


cicServiceTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF CicServiceEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table defines the parameters related to the
         call service state administration for the 
         interfaces on media gateway. The possible interfaces  
         include channelized sonet interface, DS1 interface, 
         etc..
        "
    ::= { cicServiceConfig 1 }

cicServiceEntry OBJECT-TYPE
    SYNTAX         CicServiceEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry containing service administration information 
         applicable to a particular interface. 
        "
    INDEX { ifIndex }
    ::= {cicServiceTable 1}
 
CicServiceEntry ::=
    SEQUENCE {
              cicServiceOperState    CIfCallServiceOperState,
              cicServiceAdminState   CIfCallServiceAdminState,
              cicServiceGraceTime    Unsigned32,
              cicServiceRepetition   ConfigIterator,
              cicServiceRepeatOwner  OwnerString,
              cicServiceRepeatResult BulkConfigResult
             }
            
cicServiceOperState  OBJECT-TYPE
    SYNTAX         CIfCallServiceOperState
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object indicates the current operating state of 
         the service in the interface.

         The entry in this table is also in ifTable(the index of this
         table is ifIndex). The 'cicServiceOperState' of the entry is  
         not only dependent on the 'cicServiceAdminState', it is also
         dependent on the 'ifOperStatus' of ifTable. 
         The following is the relationship between 
         'cicServiceAdminState' and 'ifOperStatus':

         cicServiceOperState     cicServiceAdminState   ifOperStatus
         ----------------       -----------------     ------------
         inService              inService              up
         outOfService           forcefulOutOfService   up
         oosPending             gracefulOutOfService   up
         outOfService           inService              down
         outOfService           forcefulOutOfService   down
         outOfService           gracefulOutOfService   down
        "
    ::= { cicServiceEntry 1 }

cicServiceAdminState  OBJECT-TYPE
    SYNTAX         CIfCallServiceAdminState
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object is used to change the desired service state 
         of the interface. The operational service state of the
         interface is indicated by 'cicServiceOperState'.
        "
    DEFVAL { inService }
    ::= { cicServiceEntry 2 }

cicServiceGraceTime  OBJECT-TYPE
    SYNTAX         Unsigned32(0..65535)
    UNITS          "seconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object specifies the amount of time before the 
         existing call connections been gracefully shutdown in 
         the interface when 'cicServiceAdminState' 
         is set to 'gracefulOutOfService'.

         This object is not applicable if 'cicServiceAdminState'
         is set to 'forcefulOutOfService'.

         The value of 0 specifies that the service on the interface
         will not be put outOfService until the call connection over 
         the interface is terminated.
        "
    DEFVAL { 0 }
    ::= { cicServiceEntry 3 }

cicServiceRepetition  OBJECT-TYPE
    SYNTAX         ConfigIterator
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object is used to change service state to multiple
         interfaces by repeatedly applying the writable 
         objects of cicServiceTable specified in the same 
         SNMP PDU starting from the row specified by the instance 
         value in INDEX for the number of rows specified in this 
         object.

         The order of operation is iterated through the logical
         order of the interface. Whether the iteration will
         be applied across the physical boundary or not is depends
         upon the system implementation.

         The GET operation on this object will always return 1."
    DEFVAL { 1 }
    ::= { cicServiceEntry 4 }

cicServiceRepeatOwner  OBJECT-TYPE
    SYNTAX         OwnerString
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object is used for error checking of the operation
         specified in 'cicServiceRepetition'.

         The value of this object is set by the SNMP manager
         with its own identifier at the same time as issuing the bulk
         operation by setting 'cicServiceRepetition'. This object and
         'cicServiceRepetition' need to be in the same SNMP SET PDU.

         Later on, the SNMP manager should check the value of this
         object, if it is same as the name previously set, then
         the value of 'cicServiceRepeatResult' indicates the result 
         of the bulk operation initiated by this SNMP manager.
         In the case that a SNMP manager do multi bulk operation,
         it is recommended that the SNMP manager choose to set this 
         value to its IP Address so as to be unique.
        "
    ::= { cicServiceEntry 5 }

cicServiceRepeatResult  OBJECT-TYPE
    SYNTAX         BulkConfigResult 
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "This object is used for error checking of the operation
         specified in cicServiceRepetition.

         This object indicates the result of the bulk operation
         initiated by the SNMP manager specified in the value of
         'cicServiceRepeatOwner'.
        "
    ::= { cicServiceEntry 6 }

-- *********************************************************************
-- Conformance
-- *********************************************************************

cicServiceCompliances     OBJECT IDENTIFIER  ::= 
                                 { ciscoIfCallServiceMIBConformance 1}
cicServiceGroups          OBJECT IDENTIFIER  ::= 
                                 { ciscoIfCallServiceMIBConformance 2}

--
-- Conformance and compliance statements statements
--

cicServiceCompliance  MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION
        "The compliance statement for interfaces which implement the
         CISCO-IF-CALL-SERVICE-MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { cicServiceGroup
                         }
    ::= { cicServiceCompliances 1 }
--
-- units of conformance
--
-- MIB Groups
--

cicServiceGroup OBJECT-GROUP
    OBJECTS {
             cicServiceOperState,
             cicServiceAdminState,
             cicServiceGraceTime,
             cicServiceRepetition,
             cicServiceRepeatOwner,
             cicServiceRepeatResult
            }
    STATUS    current
    DESCRIPTION
        "A collection of objects for managing per interface basis 
         call service state information.
        "
    ::= { cicServiceGroups 1 }

END

