rendered paste body#!/usr/local/bin/php
<?php
$HOST = "1.2.3.4";
$USER = "ast-use-count";
$PASS = "not here";
/*
* phpagi-manager lib
*/
require_once('/usr/local/include/php/phpagi/phpagi-asmanager.php');
$asm = new AGI_AsteriskManager();
if (!$asm->connect($HOST, $USER, $PASS)) {
exit(10);
}
$rp = 0;
$sp = 0;
$gsm = 0;
$sip = 0;
$calls = 0;
$span1 = 0;
$span2 = 0;
$channels = 0;
/* Read the number of inuse channels */
$rtrn = $asm->command("core show channels");
$data = array();
foreach(explode("\n", $rtrn['data']) as $line) {
if (strstr($line, "active channel")) {
$channels = intval($line);
continue;
}
if (strstr($line, "active call")) {
$calls = intval($line);
continue;
}
$chan = strtok($line, "\t\n ");
if ($chan == NULL)
continue;
if (strstr($chan, "IAX2")) {
if (strstr($chan, "ad-sp"))
$sp++;
if (strstr($chan, "ad-rp"))
$rp++;
continue;
}
if (strstr($chan, "SIP")) {
$sip++;
continue;
}
if (strstr($chan, "DGV")) {
list($channum) = sscanf($chan, "DGV/%d");
if ($channum >= 1 && $channum <= 30)
$span1++;
elseif ($channum >= 31 && $channum <= 60)
$span2++;
elseif ($channum >= 61 && $channum <= 64)
$gsm++;
continue;
}
}
$asm->disconnect();
printf("calls:$calls");
printf(" channels:$channels");
printf(" sip:$sip");
printf(" adsp:$sp");
printf(" adrp:$rp");
printf(" span1:$span1");
printf(" span2:$span2");
printf(" gsm:$gsm");
?>