recording_reconcilation_metadata.php 6.91 KB
<?php namespace App\Console\Commands;

use Illuminate\Console\Command;
use DB;
use Config;

use App\Models\User;
use App\Models\Accesslog;

use App\Models\CRMCall;
use App\Jobs\KHRMSLib;
use Schema;
use PDO;

use Illuminate\Database\Schema\Blueprint;

class recording_reconcilation_metadata extends Command 
{

	/**
	* The console command name.
	*
	* @var string
	*/
	protected $signature = 'recording_reconcilation_metadata';

	/**
	* The console command description.
	*
	* @var string
	*/
	protected $description = 'recording_reconcilation_metadata';

	/**
	* Execute the console command.
	*
	* @return mixed
	*/
	public function handle()
	{
		$nowts=time();
		echo "\n"."start Time---".date('Y-m-d H:i:s')."\n";

		$logdate=strtotime(date('Y-m-d')." 00:00:00");
		//$logdate=strtotime(date("2017-09-01")." 00:00:00");
		$logtodate=strtotime(date('Y-m-d')." 23:59:59");
		//$logtodate=strtotime(date("2017-11-30")." 23:59:59");
		$server_ip=env('app_ip');
		$central_ip=env('central_ip');
        $wakka = new KHRMSLib();
		 $conn = array(
				'driver'    => 'mysql',
				'host'      => $central_ip,
				'database'  => env('DB_DATABASE', 'kstych_flexydial'),
				'username'  => env('DB_USERNAME', 'root'),
				'password'  => env('DB_PASSWORD', ''),
				'charset'   => 'utf8',
				'collation' => 'utf8_unicode_ci',
				'prefix'    => '',
				'options'   => array(
					PDO::ATTR_TIMEOUT => 5,
					),
				);
			Config::set("database.connections.conn", $conn);

			
		if(DB::connection("conn")->getDatabaseName())
		{
			//check maximum id saved in the table	
			$maxid=DB::connection("conn")->select(DB::raw("SELECT max(call_id) as maxid from recording_reconcilation_metadata where server_ip='$server_ip'"));
			if($maxid)$maxids=$maxid[0]->maxid;

			$server_type=DB::connection("conn")->select(DB::raw("SELECT type from server_details where server_ip='$server_ip'"));
			if($server_type)$servertype=$server_type[0]->type;
			
				
			echo "\n"."maxids---".$maxids."\n";
            /*echo "\n".date("Y-m-d H:i:s",$logdate)."\n";
            echo "\n".date("Y-m-d H:i:s",$logtodate)."\n"; 
            echo "\n"."servertype---".$servertype."\n";*/
            $qlist="";
			
			//query for calllog and recording
			//$qlist=DB::table('crmcalls_archive')->select('id','created_at','recstartSec','recendSec','userdata','crm_id','type','userstatus','usersubstatus','did','number','client')->where('id','>','$maxids')->get();

			$qlist=DB::select("SELECT id,created_at,recstartSec,recendSec,userdata,crm_id,type,userstatus,usersubstatus,did,number,client FROM crmcalls_archive where id > '$maxids' ");
			//$qlist=DB::select("SELECT * FROM crmcalls_archive where id > '$maxids' ");
			/*$qlist=DB::table('crmcalls_archive')->select('*')->where('created_at','>=',date("Y-m-d H:i:s",$logdate))->where('created_at','<=',date("Y-m-d H:i:s",$logtodate))->get();*/
			
			/*$qlist=DB::table('crmcalls_archive')->select('*')->whereIN('id',array('1014744','1014698','1014743','1014752','1014744','1014755','1014774','1014780','1014781','1014782','1014793'))->get();*/

			
			
            $userdatavalue="";
			foreach ($qlist as $qline) 
			{
				//$file = storage_path()."/app/drec/2017-11/".$qline->id.".gsm";//tobe uploaded
				
				//echo "\n".date("Y-m",strtotime($qline->created_at))."\n";
				$file = storage_path()."/app/drec/".date("Y-m",strtotime($qline->created_at))."/".$qline->id.".gsm";
				
				//$remote_file = "/home/buzzworks/recording_test";
				$remote_file = "recording_test/".$server_ip."_".$qline->id.".wav";
				//echo "\n"."file is exist or not".file_exists($file)."\n";
				if (file_exists($file)) 
				{

					$fulldate=date("Y-m-d H:i:s",strtotime($qline->created_at)+330*60);
            		//$talktime=$qline->talkSec+$qline->recstartSec+$qline->recendSec;
                	//$length=round(($qline->waitSec+$qline->callSec+$talktime+$qline->dispoSec)/1000,2);
                	$length=round(($qline->talkSec+$qline->recstartSec+$qline->recendSec)/1000,0);
	                $length=gmdate("H:i:s", $length);
	                
	                /*echo "\n"."startdate--".explode(" ",$fulldate)[0]."\n";
	                echo "\n"."starttime--".explode(" ",$fulldate)[1]."\n";
	                echo "\n"."call duration--". $length."\n";*/
	                $userdatavalue="";

	                $userdata=json_decode($qline->userdata,true);

	                //print_r(array_values($userdata));
	                if($userdata)
	                {
	                	if(array_values($userdata)!=""||array_values($userdata)!=null)
	                	{
	                		$userdatavalue=implode(",",array_values($userdata));
	                	}
	                	else
	                	{
	                		$userdatavalue="";
	               		}
	                }
	                $user=$wakka->getPerson($qline->crm_id);
					$clientcode=$user["peopledata"]["clientcode"];
	                

	                $call_direction="";
	                $disposubdispo="";
	                $transfer_status="";
	                if($qline->type=='Manual' || $qline->type='Progressive')
	                {
	                	$call_direction="OB-".$qline->type;
	                	$transfer_type='null';
	                }
	                else
	                {
	                	$call_direction=$qline->type;
	                	$transfer_type='null';
	                }
	                $disposubdispo=$qline->userstatus.','.$qline->usersubstatus;
	                

	                $setstrarr=array();
	                $setstrarr[]="server_ip='$server_ip'";
	                $setstrarr[]="call_start_date='".explode(" ",$fulldate)[0]."'";
	                $setstrarr[]="call_start_time='".explode(" ",$fulldate)[1]."'";
	                $setstrarr[]="call_duration='$length'";
	                $setstrarr[]="DNIS='$qline->did'";
	                $setstrarr[]="ANI='$qline->number'";
	                $setstrarr[]="call_id='$qline->id'";
	                $setstrarr[]="call_direction='$call_direction'";
	                $setstrarr[]="transfer_type='$transfer_type'";
	                $setstrarr[]="cti_var1='$userdatavalue'";
	                $setstrarr[]="cti_var2='$qline->client'";
	                $setstrarr[]="cti_var4='$qline->crm_id'";
	                $setstrarr[]="cti_var5='$qline->id'";
	                $setstrarr[]="cti_var6='$servertype'";
	                $setstrarr[]="cti_var10='$disposubdispo'";
	                $setstrarr[]="customer_id='$clientcode'";

				
					/*echo "Successfully connect";
					
                    echo "The file $file exists";
                        
				    echo "successfully uploaded $file\n";*/
				    //$setstrarr[]="transfer_status='success'";
					$setstrarr[]="recording_filename='$file'";
						  	

					$setstr=implode(",",$setstrarr);
					DB::connection("conn")->insert(DB::raw("insert into recording_reconcilation_metadata set $setstr"));
				} 
                
				
			    // close the connection
			}
			
			echo "\n"."End Time---".date('Y-m-d H:i:s')."\n";
			DB::connection("conn")->disconnect();
		} 
	}
}

?>