#!/usr/local/bin/php
<?php
/*
*
* (c) 2014 Christopher Olsen <cwolsen@uBixTechnologies.com>
*
* $Id: voip_stats_cron.php 1800 2014-11-30 03:36:43Z reddawg $
*
*/
include("/usr/web/sites/manage.ubixtechnologies.net/include/cron_config.php");
$cron_name = "voip_stats_cron";
$data['cron']->init($cron_name);
if (isset($argv[1])) {
$r_date = date("Y-m-d", strtotime($argv[1]));
$r_time = strtotime($argv[1]);
}
else {
$r_date = date("Y-m-d", strtotime("yesterday"));
$r_time = strtotime("yesterday");
}
$bTime = time();
$query = "SELECT aid, voip_code FROM accounts WHERE voip_code != 'NA'";
$uResult = $data['ubix_db']->query($query);
while ($uData = $uResult->fetch_assoc()) {
$query = "SELECT count(*) as total_calls, SUM(billsec) as total_talk, disposition FROM cdr_master WHERE calldate >= '" . $r_date . " 00:00:00' AND calldate <= '" . $r_date . " 23:59:59' AND accountcode = '" . strtolower($uData['voip_code']) . "' GROUP BY disposition";
$data['cron']->log("[$query]");
$cResult = $data['cdr_db']->query($query);
$total_calls = 0;
$total_talk = 0;
$answered = 0;
$unanswered = 0;
$busy = 0;
$average = 0;
while ($cData = $cResult->fetch_assoc()) {
$total_calls += $cData['total_calls'];
$total_talk += $cData['total_talk'];
switch ($cData['disposition']) {
case 'NO ANSWER':
$unanswered = $cData['total_calls'];
break;
case 'ANSWERED':
$answered = $cData['total_calls'];
break;
case 'BUSY':
$busy = $cData['total_calls'];
break;
}
}
$cResult->free();
if ($total_talk != 0)
$average = $total_talk/$total_calls;
else
$average = 0;
$query = "REPLACE INTO voip_stats (voip_code, date, total_calls, total_talk, average_talk, answered, unanswered, busy) VALUES('" . $uData['voip_code'] . "', " . $r_time . ", $total_calls, $total_talk, $average, $answered, $unanswered, $busy)";
$data['ubix_db']->query($query);
}
$uResult->free();
$query = "UPDATE system_var SET value = '" . $bTime . "' WHERE name = 'voip_stats_cron_last_run'";
$data['ubix_db']->query($query);
$data['cron']->log("Adjust System Var: [$query]\n");
$data['cron']->finish();
?>