DailyLogout.php 1.82 KB
<?php namespace App\Console\Commands;

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

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

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

use Input;
use App\Models\Sipid;
use App\Models\Kqueue;
use App\Models\Dialline;
use App\Models\Session;

use Illuminate\Database\Schema\Blueprint;

class DailyLogout extends Command {

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

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

	/**
	 * Execute the console command.
	 *
	 * @return mixed
	 */
	public function handle()
	{
		$sipids=Sipid::where("status","=","1")->get();
			foreach($sipids as $tsip)
			{
				$newqueue=new Kqueue();
				$newqueue->sipNotify($tsip,"adminCommand","user","logout","");
			}

			Dialline::where('status','!=','Free')->update(['status'=>'Free','conf'=>'','channel'=>'','server'=>'','updated_at'=>'0000-00-00 00:00:00']);
			Sipid::where('status','!=','0')->update(['status'=>0,'user'=>0,'ready'=>0,'confup'=>0,'clients'=>'','server'=>'','updated_at'=>'0000-00-00 00:00:00']);

			$serverarray=explode(",",Config::get("app.asterisk_slaves"));
			foreach($serverarray as $server)
			{
				$sparts=explode(":",$server);

				Sipid::where("id",">=",$sparts[1])->where("id","<=",$sparts[2])->update(['server' => $sparts[0],'updated_at'=>'0000-00-00 00:00:00']);
				Dialline::where("id",">=",$sparts[3])->where("id","<=",$sparts[4])->update(['server' => $sparts[0],'updated_at'=>'0000-00-00 00:00:00']);

				$newqueue=new Kqueue();
				$newqueue->astCommand($sparts[0],"channel request hangup all");
			}

			User::where('presence','>','0')->update(['presence'=>0]);
			Session::truncate();
			
			return "";
	}
}