-- *****************************************************************
-- Cisco Call Application MIB
--
-- Dec 1999, Vasmi Abidi
--
-- Copyright (c) 1999, 2000 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************


CISCO-CALL-APPLICATION-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION, RowStatus
		FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF
	SnmpAdminString                      
		FROM SNMP-FRAMEWORK-MIB
	ciscoMgmt
		FROM CISCO-SMI;

ciscoCallApplicationMIB  MODULE-IDENTITY
	LAST-UPDATED    "9909220000Z"
	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@cisco.com"
	DESCRIPTION
		"This MIB allows management of call applications on a
                 network device. A 'call application' is a software module
		 that processes calls, such as data, voice, video, or fax 
                 calls.
		"
	::= { ciscoMgmt 146 }  

-- Terminology


-- Textual Conventions

URLStringOrNull ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "A Uniform Resource Locator represented in accordance
         with RFC 1738, or an empty string."
    SYNTAX SnmpAdminString

ciscoCallApplicationMIBObjects OBJECT IDENTIFIER ::= 
	   { ciscoCallApplicationMIB 1 }

-- groups

ccapConf	OBJECT IDENTIFIER ::= { ciscoCallApplicationMIBObjects 1 }


-- The Call Application Table

ccapApplicationTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CcapApplicationEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Information about call applications on this managed device.
		
		There is an entry in this table for each call application.
		"
	::= { ccapConf 1 }

ccapApplicationEntry OBJECT-TYPE
	SYNTAX CcapApplicationEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Information about a call application."
	INDEX { IMPLIED ccapAppName }
	::= { ccapApplicationTable 1 }

CcapApplicationEntry ::=
	SEQUENCE {
		ccapAppName			SnmpAdminString,
		ccapAppLocation			URLStringOrNull,
		ccapAppLoadState		INTEGER,
		ccapAppLoadFailReason		INTEGER,
		ccapAppDescr			SnmpAdminString,
--		ccapAppCallType			BITS,
		ccapAppCallType			OCTET STRING,
		ccapAppRowStatus		RowStatus
		}

ccapAppName OBJECT-TYPE
	SYNTAX	   SnmpAdminString (SIZE (1..40))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The name of this call application."
	::= { ccapApplicationEntry 1 }

ccapAppLocation OBJECT-TYPE
	SYNTAX	   URLStringOrNull
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION		
		"Identifies the location from where this application is
                loaded.  

		For built-in applications, the value will always
                be an empty string. 

		If the location is not specified or not known, the value is
                an empty string.

		Note that a particular agent may support only certain types
                of URLs (e.g., only tftp://...). Thus, the valid values of
                this object are implementation dependent. An agent may
                respond with an error (e.g., 'wrongValue') to a management
                SET operation which attempts to modify the value of this
                object to one which is not supported by the managed device.

		The value of this object may be changed at any time. However, 
		note that setting this value for an active row will cause the
		old application to be deleted, and the new application (i.e. 
		the program at the newly-specified URL) to be loaded.
		"
	::= { ccapApplicationEntry 2 }

ccapAppLoadState OBJECT-TYPE
	SYNTAX	INTEGER {
			builtIn(1),
			loading(2),
			loaded(3),
			loadFailed(4)
		}
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION		
	        "The state of this application.

		For built-in applications, the value read is always
                'builtIn'.

		When this row is made active, the agent attempts to
                load the application from the URL specified by
                ccapAppLocation. While loading is in progress, the value of
                this object reads 'loading'. If the application is
                successfully loaded, the value changes to 'loaded',
                otherwise the value changes to 'loadFailed'. 
                "
	::= { ccapApplicationEntry 3 }

ccapAppLoadFailReason OBJECT-TYPE
	SYNTAX	INTEGER {
			none(1),
			other(2),
			notFound(3),
			timedOut(4),
			noPermission(5),
			badSignature(6),
			noSpace(7)
		}
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION		
	        "The reason the last attempted load failed. The possible
                values are: 
			none - there was no failure
			other - failure reason is other than those listed
                         below
			notFound - application was not found
			timedOut - timed out while loading
			noPermission - was denied permission
			badSignature - the application did not have the
                         proper signature. An agent may use an
                         authentication scheme to protect itself. This
                         error indicates that the authentication check
                         failed, hence the application was not loaded.
			noSpace - lack of memory space.

		The value is updated after a load attempt.
		"
	::= { ccapApplicationEntry 4 }

ccapAppDescr OBJECT-TYPE
	SYNTAX	   SnmpAdminString
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION		
		"A description of this application.
		"
	DEFVAL {""}
	::= { ccapApplicationEntry 5 }

ccapAppCallType OBJECT-TYPE
--	SYNTAX	   BITS {
--			voice(0),
--			fax(1),
--			data(3).
--			video(4)
--		}
	SYNTAX OCTET STRING (SIZE(1))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION		
		"Indicates the types of call that this application can handle.
		"
--	DEFVAL {voice}
	::= { ccapApplicationEntry 6 }


ccapAppRowStatus OBJECT-TYPE
	SYNTAX	   RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION		
		"The status of this conceptual row.

		Note that rows corresponding to built-in applications can
                not be modified. Thus, this object is read-only for such
                rows. 

		This object can not be set to 'active' until a value has
                been assigned to the corresponding instance of
                ccapAppLocation. When a row becomes active, the agent
                attempts to load the application from the location
                specified by ccapAppLocation. The result of the loading
                operation can be monitored by the objects ccapAppLoadState
                and ccapAppLoadError.

		Deleting a row will cause the agent to unload the
                corresponding application.
		"
	::= { ccapApplicationEntry 7 }



-- Compliance Statements

ciscoCallApplicationMIBConformance	OBJECT IDENTIFIER ::= 
				{ ciscoCallApplicationMIB 3 }
ciscoCallApplicationMIBCompliances OBJECT IDENTIFIER ::= 
				{ ciscoCallApplicationMIBConformance 1 }
ciscoCallApplicationMIBGroups	  OBJECT IDENTIFIER ::= 
				{ ciscoCallApplicationMIBConformance 2 }

ciscoCallApplicationMIBCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for Cisco agents which implement
		the CISCO-CALL-APPLICATION-MIB." 
	MODULE
		MANDATORY-GROUPS { ccapGeneralCfgGroup
	 	                 }
	::= {ciscoCallApplicationMIBCompliances 1 }

-- units of conformance

ccapGeneralCfgGroup OBJECT-GROUP
	OBJECTS {
		ccapAppLocation,
		ccapAppLoadState,
		ccapAppLoadFailReason,
		ccapAppDescr,
		ccapAppCallType,
		ccapAppRowStatus
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects for general configuration of call 
                 applications."
	::= { ciscoCallApplicationMIBGroups 1 }

END
