#!/bin/bash #(C) 2009 DatuX HR Meertens #This script monitores system values and generates snmptraps source /etc/asterisk_guardian.conf function retrieveActiveCalls { return `asterisk -r -x "show channels" | grep "active call" | cut -d ' ' -f 1` } function sendSnmpTrap { #`snmptrap -e $EngineID -v 3 -u $Username -a MD5 -A $Password -l authNoPriv $Hostname "" snmpTrap .1.3.6.1.4.1.22736.1.2.5 i $1` `snmptrap -v 2c -c public $Hostname "" snmpTrap .1.3.6.1.4.1.22736.1.2.5 i $1` } #initial check retrieveActiveCalls PreviousActiveCalls=$? timer=0 while(true); do retrieveActiveCalls activeCalls=$? if [ $activeCalls -ge `echo "$PreviousActiveCalls+$CallDeviateValue" | bc` ]; then sendSnmpTrap $activeCalls fi if [ $activeCalls -le `echo "$PreviousActiveCalls-$CallDeviateValue" | bc ` ]; then sendSnmpTrap $activeCalls fi if [ $timer -ge $SendActiveCallsStatusInterval ]; then #Retrieve active calls retrieveActiveCalls activeCalls=$? sendSnmpTrap $activeCalls #reset timer timer=0 fi PreviousActiveCalls=$activeCalls sleep $CallDeviateCheckInterval timer=`echo "$CallDeviateCheckInterval+$timer" |bc` done