HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/posscale/subdomains/ccm/import_30_10_12.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")
							{
								$direction = "OUT";
							}
							elseif($csvData[$i][5]=="PBX")
							{
								$direction = "INTERNAL";
							}
							else
							{
								$direction = "OTHER";
							}
							$number = $called['number'];
							
						}
						
						if($csvData[$i][5]=="PBX")
						{
							$extension = $called['number'];
							if($csvData[$i][3]=="SIP")
							{
								$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)   /*/
	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 = $datatemp[1];
		}
		else
		{
			$number = $string;
		}	
	}
	
	return array('type'=>$call_type, 'number'=>$number);
}




?>