File: /home/posscale/subdomains/ccm/import_4_12_15.php
<?
error_reporting(0);
include("includes/php/top.php");
require_once("includes/php/CsvInterface.class.php");
require_once("includes/php/Csv.class.php");
$start_file = '/home/posscale/quadro_cdr';
if($handle = opendir($start_file))
{
while(false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$client_id = $file;
if($handle1 = opendir($start_file.'/'.$client_id))
{
while(false !== ($file1 = readdir($handle1)))
{
if ($file1 != "." && $file1 != "..")
{
$pbx_id = $file1;
if($handle2 = opendir($start_file.'/'.$client_id.'/'.$pbx_id.'/unparsed'))
{
while(false !== ($file2 = readdir($handle2)))
{
if ($file2 != "." && $file2 != "..")
{
/*/ Get input type /*/
/*/ Could use a if statment eg. if fiels 4 == pbx then type 1 elseif = blar then type == 2 ect. /*/
$sql = 'SELECT `inport_type` FROM `pbx` WHERE `id` = "'.$pbx_id.'"';
$im1 = db_query($sql);
$import_type = $im1['inport_type'][0];
// echo "-->".$import_type."<--"."\n";
// print_r($import_type)."\n";
/*/ START GENERATION /*/
/*/ START GENERATION /*/
/*/ START GENERATION /*/
try
{
// echo "entered try";
$Csv = new Csv($filename = $start_file.'/'.$client_id.'/'.$pbx_id.'/unparsed/'.$file2, $separator = ",");
$csvData = $Csv->readAll();
switch($import_type)
{
/*/ Old Firmware Method 5.1.39 /*/
/*/ Old Firmware Method 5.1.39 /*/
case '0':
// echo "Old Firmware Method 5.1.39";
for($i=1; $i<count($csvData); $i++)
{
if(trim($csvData[$i][0]) == 'SC')
{
$calling = determine_call_type($csvData[$i][3]);
$called = determine_call_type($csvData[$i][4]);
$extension = "";
$number = "";
$direction = "";
if($calling['type']=="PBX")
{
$extension = $calling['number'];
if($called['type']=="EXTERNAL" || $called['type']=="GATEWAY")
{
$direction = "OUT";
}
elseif($called['type']=="PBX")
{
$direction = "INTERNAL";
}
else
{
$direction = "OTHER";
}
$number = $called['number'];
}
if($called['type']=="PBX")
{
$extension = $called['number'];
if($calling['type']=="EXTERNAL" || $calling['type']=="GATEWAY")
{
$direction = "IN";
$number = $calling['number'];
}
}
if(!empty($extension))
{
$date_time = explode(' ', $csvData[$i][1]);
$exp_date = explode('-', $date_time[0]);
$date = $exp_date[2].'-'.$exp_date[1].'-'.$exp_date[0].' '.$date_time[1];
$sql = "
INSERT INTO
calls
SET
user_id = ".$client_id.",
pbx_id = ".$pbx_id.",
time = ".strtotime($date).",
ext = ".$extension.",
direction = '".$direction."',
duration = ".$csvData[$i][2].",
number = '".$number."',
id = ".next_id('calls').';';
$result = db_query($sql, 0);
print_r($result);
}
}
}
/*/ Firmware Method 5.2.29 /*/
/*/ Firmware Method 5.2.29 /*/
case '1':
// echo " Firmware Method 5.2.29";
for($i=1; $i<count($csvData); $i++)
{
if(trim($csvData[$i][0]) == 'SC')
{
$calling = determine_call_type2($csvData[$i][4]);
$called = determine_call_type2($csvData[$i][6]);
$extension = "";
$number = "";
$direction = "";
if($csvData[$i][3]=="PBX")
{
$extension = $calling['number'];
if($csvData[$i][5]=="SIP" || $csvData[$i][5]=="FXO" || $csvData[$i][5]=="PSTNGW")
{
$direction = "OUT";
}
elseif($csvData[$i][5]=="PBX")
{
$direction = "INTERNAL";
}
else
{
$direction = "OTHER";
}
$number = $called['number'];
}
if($csvData[$i][5]=="PBX" && $csvData[$i][3]!="PBX")
{
$extension = $called['number'];
if($csvData[$i][3]=="SIP" || $csvData[$i][3]=="FXO" || $csvData[$i][3]=="PSTNGW")
{
$direction = "IN";
$number = $calling['number'];
}
}
if($csvData[$i][3]=="SIP" && $csvData[$i][5]=="SIP")
{
$extension = $called['number'];
$direction = "FORWARD";
$number = $calling['number'];
}
if(!empty($extension))
{
$date_time = explode(' ', $csvData[$i][1]);
$exp_date = explode('-', $date_time[0]);
$date = $exp_date[2].'-'.$exp_date[1].'-'.$exp_date[0].' '.$date_time[1];
$sql = "
INSERT INTO
calls
SET
user_id = ".$client_id.",
pbx_id = ".$pbx_id.",
time = ".strtotime($date).",
ext = ".$extension.",
direction = '".$direction."',
duration = ".$csvData[$i][2].",
number = '".$number."',
id = ".next_id('calls').';';
$result = db_query($sql, 0);
print_r($result);
}
}
}
}
}
catch (Exception $e)
{
// do nudda
}
rename($start_file.'/'.$client_id.'/'.$pbx_id.'/unparsed/'.$file2, $start_file.'/'.$client_id.'/'.$pbx_id.'/parsed/'.$file2);
/*/ END GENERATION /*/
/*/ END GENERATION /*/
/*/ END GENERATION /*/
}
}
closedir($handle2);
}
}
}
closedir($handle1);
}
}
}
closedir($handle);
}
function determine_call_type($string)
{
if(strpos($string, '@') !== false)
{
$call_type = "EXTERNAL";
$datatemp = explode(' ', $string);
$number = str_replace('"', '', $datatemp[0]);
if(strpos($number, '@') !== false)
{
$datatemp = explode('@', $number);
$number = $datatemp[0];
}
}
elseif(strpos($string, 'GW[') !== false)
{
$call_type = "GATEWAY";
}
else
{
if(strpos($string, 'PSTN') !== false)
{
$call_type = "EXTERNAL";
$datatemp = explode('-', $string);
$number = $datatemp[1];
if(strpos($number, '@') !== false)
{
$datatemp = explode('@', $number);
$number = $datatemp[0];
}
}
else
{
$call_type = "PBX";
$datatemp = explode('" ', $string);
$number = $datatemp[1];
}
}
return array('type'=>$call_type, 'number'=>$number);
}
function determine_call_type2($string)
{
if(strpos($string, '@') !== false)
{
/*/$call_type = "EXTERNAL";/*/
$datatemp = explode(' ', $string);
$number = str_replace('"', '', $datatemp[0]);
if(strpos($number, '@') !== false)
{
$datatemp = explode('@', $number);
$number = $datatemp[0];
}
}
/*/ PSTNGW[172.30.0.2]1-0429841674(20) /*/
/*/ PSTNGW[172.30.0.2]1-0499989877(system)(70) /*/
elseif(strpos($string, 'GW[') !== false)
{
if(strpos($number, '-') !== false)
{
$datatemp = explode('-', $string);
if(strpos($datatemp[1], '(') !== false)
{
$datatemp2 = explode('(', $string);
/*/ $call_type = "GATEWAY"; /*/
$number = $datatemp2[0];
}
else
{
$number = $datatemp[1];
}
}
}
else
{
/*/$call_type = "PBX";/*/
if(strpos($string, '" ') !== false)
{
$datatemp = explode('" ', $string);
$number = str_replace('"', '', $datatemp[1]);
}
else
{
$number = $string;
}
}
return array('type'=>$call_type, 'number'=>$number);
}
?>