#!/usr/local/bin/php
<?php
/*
* (C) 2016 Christopher Olsen <cwolsen@uBixOS.com>
*
* $Id: dialer_cron.php 2230 2015-06-17 19:03:56Z reddawg $
*
*/
$_LOCK_FILE = "/tmp/reports.lock";
$_LOG_FILE = "cron/reports.log";
if (file_exists ( $_LOCK_FILE )) {
print "Script is already running.\n";
// exit ( 0 );
}
system ( "/usr/bin/touch " . $_LOCK_FILE );
/* Set Root Directory Of Portal */
$root_dir = "/usr/web/sites/portal.spherepbx.com";
/* Main include info */
ini_set ( 'include_path', $root_dir . "/include/" );
include ("config.php");
$log_file = fopen ( $root_dir . "/log/" . $_LOG_FILE, "a" );
$query = "SELECT * FROM cdr WHERE accountcode = '' AND ";
$query = "select account_code,email from accounts where account_code like '32%'";
$aRes = $ubF->DB ['main']->query ( $query );
$rDate = date("Y-m-d", strtotime("-1 days"));
$rDate = date("Y-m-d");
$sDate = $rDate . " 00:00:00";
$eDate = $rDate . " 23:59:59";
while ( $aData = $aRes->fetch_assoc () ) {
$query = "SELECT sum(billsec) as time,count(*) AS calls,SUBSTRING_INDEX(SUBSTR(channel,5), '-',1) AS chan FROM cdr_master WHERE channel LIKE 'SIP/" . $aData ['account_code'] . "%' AND calldate >= '" . $sDate . "' AND calldate <= '" . $eDate . "' GROUP BY chan";
$cRes = $ubF->DB ['cdr']->query ( $query );
$query = "SELECT name,RTRIM(SUBSTRING_INDEX(callerid, '<',1)) AS user FROM sippeers WHERE accountcode = '" . $aData['account_code'] . "'";
$pRes = $ubF->DB['voip']->query($query);
while ($pData = $pRes->fetch_assoc()) {
$peers[$pData['name']]['name'] = $pData['user'];
$peers[$pData['name']]['ext'] = substr($pData['name'], -4);
}
$pRes->free();
$callData = array ();
while ( $cData = $cRes->fetch_assoc () ) {
$ext = $cData['chan']; //substr ( $cData ['chan'], - 4 );
$callData [$ext]['name'] = $peers[$ext]['name'];
$callData [$ext]['ext'] = $peers[$ext]['ext'];
$callData [$ext] ['oCalls'] = $cData ['calls'];
$callData [$ext] ['oTime'] = $cData ['time'];
}
$cRes->free ();
$query = "SELECT sum(billsec) as time,count(*) AS calls,SUBSTRING_INDEX(SUBSTR(dstchannel,5), '-',1) AS chan FROM cdr_master WHERE dstchannel LIKE 'SIP/" . $aData ['account_code'] . "%' AND calldate >= '". $sDate . "' AND calldate <= '" . $eDate . "' GROUP BY chan";
$cRes = $ubF->DB ['cdr']->query ( $query );
while ( $cData = $cRes->fetch_assoc () ) {
$ext = $cData['chan']; //substr ( $cData ['chan'], - 4 );
$callData [$ext]['name'] = $peers[$ext]['name'];
$callData [$ext]['ext'] = $peers[$ext]['ext'];
$callData [$ext] ['iCalls'] = $cData ['calls'];
$callData [$ext] ['iTime'] = $cData ['time'];
}
$cRes->free ();
$message = "Call Report:<br />\n";
foreach ($callData as $key => $val) {
$message .= "Ext: " . $val['ext'] . ", Name: " . $val['name'] . ", Outbound Calls: " . $val['oCalls'] . " (" . ($val['oTime']/60) . "), Inbound Calls: " . $val['iCalls'] . " (". ($val['iTime']/60) . ")<br />\n";
}
$message .= "<br />\n<br />\nEND OF REPORT<br />\n<br />\n";
$ubF->libs ['ubf']->sendMail("Call Log For " . $rDate, $message, $aData['email']);//, "cwolsen@SpherePBX.com", "theubu@gmail.com");
print "$message";
}
$aRes->free ();
/*
*
*
* $csv_file = fopen ( "/tmp/VI." . time() . ".csv", "w");
* fwrite ($csv_file, "TN,Network,E911,E411,T38,CNAM Storage,CNAM DIP\n");
*
* fwrite ( $log_file, "Start: " . date ( "Y-m-d H:
* i:s" ) . "\n" );
*
*
* // Stuff Here - This Is A Sloppy Template
*
* $result = $ubF->libs ['vi']->auditDIDs ();
*
* system ( "echo '" . json_encode ( $result ) . "' >> /tmp/auditDIDs.log" );
*
* // Set All The DID For Provider To 0 Before Audit To Purge Lost DID
* $query = "UPDATE voip_did SET audit = 0 WHERE provider = 1";
* $ubF->DB ['main']->query ( $query );
*
* foreach ( $result->auditDIDsResult->DIDs->DID as $key => $val ) {
* $val_data = $ubF->DB ['main']->escape_string ( json_encode ( $val ) );
*
* $e911 = ($val->has911 == true) ? 1 : 0;
* $e411 = ($val->has411 == true) ? 1 : 0;
* $t38 = ($val->t38 == true) ? 1 : 0;
* $cnam = ($val->cnamStorageAvailability == true) ? 1 : 0;
* $cnam_dip = ($val->cnam == true) ? 1 : 0;
*
* $query = "INSERT INTO voip_did (audit, provider, did, caller_id, network, provider_data, e911, e411, t38, cnam, cnam_dip, group_id) VALUES(1, 1, '" . $val->tn . "','" . $val->cnamName . "','" . $val->Network . "','" . $val_data . "', $e911, $e411, $t38, $cnam, $cnam_dip, '" . $val->didGroupId . "')";
*
* $query .= " ON DUPLICATE KEY UPDATE audit = 1, provider = 1, caller_id = '" . $val->cnamName . "', network = '" . $val->Network . "', provider_data = '" . $val_data . "', e911 = " . $e911 . ", e411 = " . $e411 . ", t38 = " . $t38 . ", cnam = " . $cnam . ", cnam_dip = " . $cnam_dip . ", group_id = '" . $val->didGroupId . "'";
*
* echo "[" . $query . "]\n";
*
* $csv_str = $val->tn . "," . $val->Network . "," . $e911 . "," . $e411 . "," . $t38 . "," . $cnam . "," . $cnam_dip . "\n";
* fwrite ( $csv_file, $csv_str );
*
* $ubF->DB ['main']->query ( $query );
* }
*
* fclose ( $csv_file );
*
* print_r ( $result );
*/
fwrite ( $log_file, "Finish: " . date ( "Y-m-d H:i:s" ) . "\n" );
fclose ( $log_file );
system ( "/bin/rm " . $_LOCK_FILE );
?>