示例#1
0
if (!$amihost) {
    echo date('Y-m-d H:i:s') . " : AMI is not configured. No need to run cycle\n";
    exit;
}
echo date("Y-m-d H:i:s") . " running " . basename(__FILE__) . PHP_EOL;
include './lib/phpagi/phpagi-asmanager.php';
$manager = new AGI_AsteriskManager();
echo date('Y-m-d H:i:s') . " : Connecting to AMI... ";
if (!$manager->connect($amihost . ":" . $amiport, $amiusername, $amipassword)) {
    echo " ...Connection failed.\n";
    exit;
} else {
    echo " ...Connection established.\n";
    $manager->add_event_handler('*', 'dump_events');
}
$manager->wait_response();
$latest_check = 0;
$checkEvery = 10;
// poll every 1 seconds
while ($manager->Ping()) {
    if (time() - $latest_check > $checkEvery) {
        setGlobal(str_replace('.php', '', basename(__FILE__)) . 'Run', time(), 1);
        $latest_check = time();
    }
    if (file_exists('./reboot') || isset($_GET['onetime'])) {
        $manager->disconnect();
        $db->Disconnect();
        exit;
    }
}
DebMes("Unexpected close of cycle: " . basename(__FILE__));