Author: glen                         Date: Wed Mar  3 06:57:01 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- check custom calls.log

---- Files affected:
packages/nagios-plugin-check_asterisk_skype:
   check_asterisk_skype (1.7 -> 1.8) 

---- Diffs:

================================================================
Index: packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype
diff -u packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.7 
packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.8
--- packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.7        
Tue Mar  2 10:55:11 2010
+++ packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype    Wed Mar 
 3 07:56:55 2010
@@ -129,6 +129,40 @@
        }
 }
 
+# grab skypeout balance from custom log produced in 
/etc/asterisk/extensions.ael:
+# replace ${SKYPEACCOUNT} with your skype account name
+# Set(DATETIME=${STRFTIME(${EPOCH},Europe/Tallinn,%Y-%m-%d %H:%M:%S)});
+# System(echo '${DATETIME} CALL ENDED: balance: 
$[${SKYPE_ACCOUNT_PROPERTY(${SKYPEACCOUNT},skypeout_balance)}/100] EUR' >> 
/var/log/asterisk/calls.log);
+sub check_skype_calls {
+       # TODO: add command line opts support
+       my $logfile = '/var/log/asterisk/calls.log';
+       my $warning = 2.5;
+       my $critical = 0.5;
+
+       open(my $fh, '<', $logfile) or die "Can't open $logfile: $!\n";
+       my @lines = reverse <$fh>;
+       close $fh;
+
+       my $seen = 0;
+       while ($_ = pop(@lines)) {
+               if (my($balance, $currency) = /balance: ([\d.]+) (\S{3})/) {
+                       $seen = 1;
+                       my $state;
+                       if ($balance < $critical) {
+                               $state = 'CRITICAL';
+                               $status = $ERRORS{CRITICAL};
+                       } elsif ($balance < $warning) {
+                               $state = 'WARNING';
+                               $status = $ERRORS{WARNING};
+                       } else {
+                               $state = 'OK';
+                       }
+                       $message .= sprintf "; Balance %s: %.2f %s", $state, 
$balance, $currency;
+                       last;
+               }
+       }
+}
+
 #####################################################################
 $ENV{'BASH_ENV'} = '';
 $ENV{'ENV'} = '';
@@ -154,6 +188,7 @@
 
 check_skype_license;
 check_skype_user;
+check_skype_calls;
 
 if ($message) {
        if ($status == $ERRORS{OK}) {
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype?r1=1.7&r2=1.8&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to