All pastes #2130676 Raw Edit

Untitled

public text v1 · immutable
#2130676 ·published 2012-03-20 14:24 UTC
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");

?>