Zphone sipstatus.agi

Aus metasec wiki
Wechseln zu: Navigation, Suche
#!/usr/bin/php4 -q
<?php

include("/var/www/zphone/etc/config.inc.php");
include($CCBOX["INC"]."func_manager.inc.php");
include($CCBOX["INC"]."ccbox.inc.php");

$in = fopen("php://stdin", "r" );
$err = fopen("php://stderr", "r" );


/*

 asterisk pass some values via stdin to the agi
 script. format is key: vale
 just get the values and extact them into an
 array named $agivars with key value index

*/

$agivars = array();
while (!feof($in)) {
    $agivar = trim(fgets($in));

    if ($agivar === '')
        break;

    $agivar = explode(':', $agivar);
    $agivars[$agivar[0]] = trim($agivar[1]);
}


/*
 this is needed if executing via DeadAGI dialplan app
 */
pcntl_signal(SIGHUP, SIG_IGN);

$EXTEN = array();
foreach ( $argv as $key => $val )
    if ( $key > 0 )
        $EXTEN[] = $val;

if ( count($EXTEN) == 0 ) {

    fclose($in);
    fclose($err);
    return 0;

}

$CALL = array();
foreach ( zphone_manager_get_user_status($EXTEN, $default ) as $ext => $val ) {
    if ( $val == 0 )
        $CALL[] = "SIP/".$ext;
}

if ( count($CALL) == 0 ) {
    print("set variable DIAL_STR SIP/20\n");
} else {
    print("set variable DIAL_STR ".implode("&", $CALL)."\n");
}

fclose($in);
fclose($err);
return 0;


?>