ASTERISK-MIB DEFINITIONS ::= BEGIN

IMPORTS
	OBJECT-TYPE, MODULE-IDENTITY, Integer32, Counter32, TimeTicks
		FROM SNMPv2-SMI

	TEXTUAL-CONVENTION, DisplayString, TruthValue
		FROM SNMPv2-TC

	digium
		FROM DIGIUM-MIB;

asterisk MODULE-IDENTITY
	LAST-UPDATED	"200606081626Z"
	ORGANIZATION	"Digium, Inc."
	CONTACT-INFO
		"Mark A. Spencer
		Postal: Digium, Inc.
		        445 Jan Davis Drive
		        Huntsville, AL 35806
		        USA
		   Tel: +1 256 428 6000
		 Email: markster@digium.com

		Thorsten Lockert
		Postal: Voop AS
		        Boehmergaten 42
			NO-5057 Bergen
			Norway
		   Tel: +47 5598 7200
		 Email: tholo@voop.no"
	DESCRIPTION
		"Asterisk is an Open Source PBX.  This MIB defined
		objects for managing Asterisk instances."
	REVISION	"200603061840Z"
	DESCRIPTION
		"Change audio codec identification from 3kAudio to
		Audio3k to conform better with specification.

		Expand on contact information."
	REVISION	"200602041900Z"
	DESCRIPTION
		"Initial published revision."
	::= { digium 1 }

asteriskVersion		OBJECT IDENTIFIER ::= { asterisk 1 }
asteriskConfiguration	OBJECT IDENTIFIER ::= { asterisk 2 }
asteriskModules		OBJECT IDENTIFIER ::= { asterisk 3 }
asteriskIndications	OBJECT IDENTIFIER ::= { asterisk 4 }
asteriskChannels	OBJECT IDENTIFIER ::= { asterisk 5 }

-- asteriskVersion

astVersionString OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Text version string of the version of Asterisk that
		the SNMP Agent was compiled to run against."
	::= { asteriskVersion 1 }

astVersionTag OBJECT-TYPE
	SYNTAX		Unsigned32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"SubVersion revision of the version of Asterisk that
		the SNMP Agent was compiled to run against -- this is
		typically 0 for release-versions of Asterisk."
	::= { asteriskVersion 2 }

-- asteriskConfiguration

astConfigUpTime OBJECT-TYPE
	SYNTAX		TimeTicks
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Time ticks since Asterisk was started."
	::= { asteriskConfiguration 1 }

astConfigReloadTime OBJECT-TYPE
	SYNTAX		TimeTicks
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Time ticks since Asterisk was last reloaded."
	::= { asteriskConfiguration 2 }

astConfigPid OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The process id of the running Asterisk process."
	::= { asteriskConfiguration 3 }

astConfigSocket OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The control socket for giving Asterisk commands."
	::= { asteriskConfiguration 4 }

-- asteriskModules

astNumModules OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of modules currently loaded into Asterisk."
	::= { asteriskModules 1 }

-- asteriskIndications

astNumIndications OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of indications currently defined in Asterisk."
	::= { asteriskIndications 1 }

astCurrentIndication OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Default indication zone to use."
	::= { asteriskIndications 2 }

astIndicationsTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF AstIndicationsEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Table with all the indication zones currently know to
		the running Asterisk instance."
	::= { asteriskIndications 3 }

astIndicationsEntry OBJECT-TYPE
	SYNTAX		AstIndicationsEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Information about a single indication zone."
	INDEX		{ astIndIndex }
	::= { astIndicationsTable 1 }

AstIndicationsEntry ::= SEQUENCE {
	astIndIndex		Integer32,
	astIndCountry		DisplayString,
	astIndAlias		DisplayString,
	astIndDescription	DisplayString
}

astIndIndex OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Numerical index into the table of indication zones."
	::= { astIndicationsEntry 1 }

astIndCountry OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Country for which the indication zone is valid,
		typically this is the ISO 2-letter code of the country."
	::= { astIndicationsEntry 2 }

astIndAlias OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		""
	::= { astIndicationsEntry 3 }

astIndDescription OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Description of the indication zone, usually the full
		name of the country it is valid for."
	::= { astIndicationsEntry 4 }

-- asteriskChannels

astNumChannels OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current number of active channels."
	::= { asteriskChannels 1 }

astChanTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF AstChanEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Table with details of the currently active channels
		in the Asterisk instance."
	::= { asteriskChannels 2 }

astChanEntry OBJECT-TYPE
	SYNTAX		AstChanEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Details of a single channel."
	INDEX		{ astChanIndex }
	::= { astChanTable 1 }

AstChanEntry ::= SEQUENCE {
	astChanIndex		Integer32,
	astChanName		DisplayString,
	astChanLanguage		DisplayString,
	astChanType		DisplayString,
	astChanMusicClass	DisplayString,
	astChanBridge		DisplayString,
	astChanMasq		DisplayString,
	astChanMasqr		DisplayString,
	astChanWhenHangup	TimeTicks,
	astChanApp		DisplayString,
	astChanData		DisplayString,
	astChanContext		DisplayString,
	astChanMacroContext	DisplayString,
	astChanMacroExten	DisplayString,
	astChanMacroPri		Integer32,
	astChanExten		DisplayString,
	astChanPri		Integer32,
	astChanAccountCode	DisplayString,
	astChanForwardTo	DisplayString,
	astChanUniqueId		DisplayString,
	astChanCallGroup	Unsigned32,
	astChanPickupGroup	Unsigned32,
	astChanState		INTEGER,
	astChanMuted		TruthValue,
	astChanRings		Integer32,
	astChanCidDNID		DisplayString,
	astChanCidNum		DisplayString,
	astChanCidName		DisplayString,
	astChanCidANI		DisplayString,
	astChanCidRDNIS		DisplayString,
	astChanCidPresentation	DisplayString,
	astChanCidANI2		Integer32,
	astChanCidTON		Integer32,
	astChanCidTNS		Integer32,
	astChanAMAFlags		INTEGER,
	astChanADSI		INTEGER,
	astChanToneZone		DisplayString,
	astChanHangupCause	INTEGER,
	astChanVariables	DisplayString,
	astChanFlags		BITS,
	astChanTransferCap	INTEGER
}

astChanIndex OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Index into the channel table."
	::= { astChanEntry 1 }

astChanName OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Name of the current channel."
	::= { astChanEntry 2 }

astChanLanguage OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Which language the current channel is configured to
		use -- used mainly for prompts."
	::= { astChanEntry 3 }

astChanType OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Underlying technology for the current channel."
	::= { astChanEntry 4 }

astChanMusicClass OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Music class to be used for Music on Hold for this
		channel."
	::= { astChanEntry 5 }

astChanBridge OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Which channel this channel is currently bridged (in a
		conversation) with."
	::= { astChanEntry 6 }

astChanMasq OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Channel masquerading for us."
	::= { astChanEntry 7 }

astChanMasqr OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Channel we are masquerading for."
	::= { astChanEntry 8 }

astChanWhenHangup OBJECT-TYPE
	SYNTAX		TimeTicks
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"How long until this channel will be hung up."
	::= { astChanEntry 9 }

astChanApp OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current application for the channel."
	::= { astChanEntry 10 }

astChanData OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Arguments passed to the current application."
	::= { astChanEntry 11 }

astChanContext OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current extension context."
	::= { astChanEntry 12 }

astChanMacroContext OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current macro context."
	::= { astChanEntry 13 }

astChanMacroExten OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current macro extension."
	::= { astChanEntry 14 }

astChanMacroPri OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current macro priority."
	::= { astChanEntry 15 }

astChanExten OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current extension."
	::= { astChanEntry 16 }

astChanPri OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Current priority."
	::= { astChanEntry 17 }

astChanAccountCode OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Account Code for billing."
	::= { astChanEntry 18 }

astChanForwardTo OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Where to forward to if asked to dial on this
		interface."
	::= { astChanEntry 19 }

astChanUniqueId OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Unique Channel Identifier."
	::= { astChanEntry 20 }

astChanCallGroup OBJECT-TYPE
	SYNTAX		Unsigned32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Call Group."
	::= { astChanEntry 21 }

astChanPickupGroup OBJECT-TYPE
	SYNTAX		Unsigned32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Pickup Group."
	::= { astChanEntry 22 }

astChanState OBJECT-TYPE
	SYNTAX		INTEGER {
		stateDown(0),
		stateReserved(1),
		stateOffHook(2),
		stateDialing(3),
		stateRing(4),
		stateRinging(5),
		stateUp(6),
		stateBusy(7),
		stateDialingOffHook(8),
		statePreRing(9)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Channel state."
	::= { astChanEntry 23 }

astChanMuted OBJECT-TYPE
	SYNTAX		TruthValue
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Transmission of voice data has been muted."
	::= { astChanEntry 24 }

astChanRings OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of rings so far."
	::= { astChanEntry 25 }

astChanCidDNID OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Dialled Number ID."
	::= { astChanEntry 26 }

astChanCidNum OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Caller Number."
	::= { astChanEntry 27 }

astChanCidName OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Caller Name."
	::= { astChanEntry 28 }

astCanCidANI OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"ANI"
	::= { astChanEntry 29 }

astChanCidRDNIS OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Redirected Dialled Number Service."
	::= { astChanEntry 30 }

astChanCidPresentation OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number Presentation/Screening."
	::= { astChanEntry 31 }

astChanCidANI2 OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"ANI 2 (info digit)."
	::= { astChanEntry 32 }

astChanCidTON OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Type of Number."
	::= { astChanEntry 33 }

astChanCidTNS OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Transit Network Select."
	::= { astChanEntry 34 }

astChanAMAFlags OBJECT-TYPE
	SYNTAX		INTEGER {
		Default(0),
		Omit(1),
		Billing(2),
		Documentation(3)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"AMA Flags."
	::= { astChanEntry 35 }

astChanADSI OBJECT-TYPE
	SYNTAX		INTEGER {
		Unknown(0),
		Available(1),
		Unavailable(2),
		OffHookOnly(3)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Whether or not ADSI is detected on CPE."
	::= { astChanEntry 36 }

astChanToneZone OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Indication zone to use for channel."
	::= { astChanEntry 37 }

astChanHangupCause OBJECT-TYPE
	SYNTAX		INTEGER {
		NotDefined(0),
		Unregistered(3),
		Normal(16),
		Busy(17),
		NoAnswer(19),
		Congestion(34),
		Failure(38),
		NoSuchDriver(66)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Why is the channel hung up."
	::= { astChanEntry 38 }

astChanVariables OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Channel Variables defined for this channel."
	::= { astChanEntry 39 }

astChanFlags OBJECT-TYPE
	SYNTAX		BITS {
		WantsJitter(0),
		DeferDTMF(1),
		WriteInterrupt(2),
		Blocking(3),
		Zombie(4),
		Exception(5),
		MusicOnHold(6),
		Spying(7),
		NativeBridge(8),
		AutoIncrementingLoop(9)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Flags set on this channel."
	::= { astChanEntry 40 }

astChanTransferCap OBJECT-TYPE
	SYNTAX		INTEGER {
		Speech(0),
		Digital(8),
		RestrictedDigital(9),
		Audio3k(16),
		DigitalWithTones(17),
		Video(24)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Transfer Capabilities for this channel."
	::= { astChanEntry 41 }

astNumChanTypes OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of channel types (technologies) supported."
	::= { asteriskChannels 3 }

astChanTypeTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF AstChanTypeEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Table with details of the supported channel types."
	::= { asteriskChannels 4 }

astChanTypeEntry OBJECT-TYPE
	SYNTAX		AstChanTypeEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Information about a technology we support, including
		how many channels are currently using this technology."
	INDEX		{ astChanTypeIndex }
	::= { astChanTypeTable 1 }

AstChanTypeEntry ::= SEQUENCE {
	astChanTypeIndex	Integer32,
	astChanTypeName		DisplayString,
	astChanTypeDesc		DisplayString,
	astChanTypeDeviceState	Integer32,
	astChanTypeIndications	Integer32,
	astChanTypeTransfer	Integer32,
	astChanTypeChannels	Gauge32
}

astChanTypeIndex OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Index into the table of channel types."
	::= { astChanTypeEntry 1 }

astChanTypeName OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Unique name of the technology we are describing."
	::= { astChanTypeEntry 2 }

astChanTypeDesc OBJECT-TYPE
	SYNTAX		DisplayString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Description of the channel type (technology)."
	::= { astChanTypeEntry 3 }

astChanTypeDeviceState OBJECT-TYPE
	SYNTAX		TruthValue
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Whether the current technology can hold device states."
	::= { astChanTypeEntry 4 }

astChanTypeIndications OBJECT-TYPE
	SYNTAX		TruthValue
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Whether the current technology supports progress indication."
	::= { astChanTypeEntry 5 }

astChanTypeTransfer OBJECT-TYPE
	SYNTAX		TruthValue
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Whether the current technology supports transfers, where
		Asterisk can get out from inbetween two bridged channels."
	::= { astChanTypeEntry 6 }

astChanTypeChannels OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of active channels using the current technology."
	::= { astChanTypeEntry 7 }

astChanScalars OBJECT IDENTIFIER ::= { asteriskChannels 5 }

astNumChanBridge OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
               "Number of channels currently in a bridged state."
       ::= { astChanScalars 1 }

END
