Worked on adding dialmode adding the dropdown and updating value in the table
Showing
7 changed files
with
520 additions
and
13 deletions
| 1 | <?php namespace App\Console\Commands; | ||
| 2 | |||
| 3 | use Illuminate\Console\Command; | ||
| 4 | //use Mail; | ||
| 5 | use DB; | ||
| 6 | use Config; | ||
| 7 | |||
| 8 | use App\Models\User; | ||
| 9 | use App\Models\Accesslog; | ||
| 10 | |||
| 11 | use App\Models\CRMCall; | ||
| 12 | use Schema; | ||
| 13 | use PDO; | ||
| 14 | use App\Models\Notification; | ||
| 15 | use App\Jobs\KHRMSLib; | ||
| 16 | |||
| 17 | use Input; | ||
| 18 | use Log; | ||
| 19 | use App\Models\Sipid; | ||
| 20 | use App\Models\Kqueue; | ||
| 21 | use App\Models\Dialline; | ||
| 22 | use App\Models\Session; | ||
| 23 | use App\Models\Cutoff; | ||
| 24 | |||
| 25 | use Illuminate\Database\Schema\Blueprint; | ||
| 26 | |||
| 27 | class CreateCall extends Command { | ||
| 28 | |||
| 29 | /** | ||
| 30 | * The console command name. | ||
| 31 | * | ||
| 32 | * @var string | ||
| 33 | */ | ||
| 34 | protected $signature = 'CreateCall'; | ||
| 35 | |||
| 36 | /** | ||
| 37 | * The console command description. | ||
| 38 | * | ||
| 39 | * @var string | ||
| 40 | */ | ||
| 41 | protected $description = 'Create Pedictive Call If any User is Free'; | ||
| 42 | |||
| 43 | /** | ||
| 44 | * Execute the console command. | ||
| 45 | * | ||
| 46 | * @return mixed | ||
| 47 | */ | ||
| 48 | public function handle() | ||
| 49 | { | ||
| 50 | while(true) | ||
| 51 | { | ||
| 52 | usleep(1000000); | ||
| 53 | $this->runPredictive(); | ||
| 54 | } | ||
| 55 | } | ||
| 56 | |||
| 57 | public function runPredictive() | ||
| 58 | { | ||
| 59 | |||
| 60 | try { | ||
| 61 | $this->updatePrepareColumn(); | ||
| 62 | $usrArrs = $this->getActiveUsersCampaignWise("with"); | ||
| 63 | $availChannel = $this->getActualAvailChannelCount(); | ||
| 64 | |||
| 65 | if(count($usrArrs)){ | ||
| 66 | |||
| 67 | //Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 68 | //Log::info($usrArrs); | ||
| 69 | |||
| 70 | //Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 71 | //Log::info("Channel=".$availChannel); | ||
| 72 | |||
| 73 | foreach ($usrArrs as $client => $usrArr) { | ||
| 74 | //Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 75 | //Log::info("campaign=".$client); | ||
| 76 | |||
| 77 | $acalls = $this->getCreateCallCount($client, count($usrArr)); | ||
| 78 | |||
| 79 | $acalls = min($acalls, $availChannel); | ||
| 80 | |||
| 81 | //Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 82 | //Log::info("CallCount=".$acalls); | ||
| 83 | |||
| 84 | $this->CreateCall($client, $acalls); | ||
| 85 | } | ||
| 86 | } | ||
| 87 | } catch (Exception $e) { | ||
| 88 | Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 89 | Log::error($e); | ||
| 90 | continue; | ||
| 91 | } | ||
| 92 | } | ||
| 93 | |||
| 94 | public function updatePrepareColumn() | ||
| 95 | { | ||
| 96 | $allClientUsrIdArr = array(); | ||
| 97 | $updatedUserIdArr = array(); | ||
| 98 | $currentTime = strtotime(date("Y-m-d H:i:s")); | ||
| 99 | |||
| 100 | $clientWiseUserIdArr = $this->getActiveUsersCampaignWise("without"); | ||
| 101 | |||
| 102 | if(count($clientWiseUserIdArr)) { | ||
| 103 | //Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 104 | //Log::info("updatePrepareColumn");Log::info($clientWiseUserIdArr); | ||
| 105 | |||
| 106 | foreach ($clientWiseUserIdArr as $client => $usrIdArr) { | ||
| 107 | $allClientUsrIdArr = array_merge($allClientUsrIdArr, $usrIdArr); | ||
| 108 | } | ||
| 109 | |||
| 110 | $usersTimeArr = Cutoff::whereIn('user_id', $allClientUsrIdArr)->get(); | ||
| 111 | |||
| 112 | foreach ($usersTimeArr as $userTimeArr) { | ||
| 113 | $cutOffTime = strtotime($userTimeArr->hangup_time) + ($userTimeArr->avg_dispo - $userTimeArr->avg_ring); | ||
| 114 | |||
| 115 | if($cutOffTime < $currentTime) | ||
| 116 | { | ||
| 117 | $updatedUserIdArr[] = $userTimeArr->user_id; | ||
| 118 | } | ||
| 119 | } | ||
| 120 | |||
| 121 | if(count($updatedUserIdArr)) { | ||
| 122 | //Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 123 | //Log::info("updatedUserIdArr");Log::info($updatedUserIdArr); | ||
| 124 | } | ||
| 125 | |||
| 126 | Sipid::whereIn('user', $updatedUserIdArr)->update(['prepare_call'=>1]); | ||
| 127 | } | ||
| 128 | } | ||
| 129 | |||
| 130 | public function getActiveUsersCampaignWise($checkPrepareCol) | ||
| 131 | { | ||
| 132 | $campaignWiseUsrs = array(); | ||
| 133 | $prepareUsrIds = array(); | ||
| 134 | |||
| 135 | $loggedInSips = Sipid::where('server','=',env('app_ip'))->where("user", "!=", 0)->where("status","=","1"); | ||
| 136 | if($checkPrepareCol=="with"){ | ||
| 137 | $loggedInSips = $loggedInSips->where("prepare_call","=","1"); | ||
| 138 | } | ||
| 139 | elseif($checkPrepareCol=="without"){ | ||
| 140 | $loggedInSips = $loggedInSips->where("patched","=","0"); | ||
| 141 | } | ||
| 142 | |||
| 143 | $loggedInSips = $loggedInSips->groupBy('user')->get(); | ||
| 144 | |||
| 145 | if(count($loggedInSips)){ | ||
| 146 | |||
| 147 | foreach ($loggedInSips as $loggedInSip) { | ||
| 148 | $prepareUsrIds[] = $loggedInSip->user; | ||
| 149 | } | ||
| 150 | |||
| 151 | //TODO: Change Dialmode Value in the column Of User Table (Ready to Predictive) | ||
| 152 | $usersLoggedIn = User::whereIn('id', $prepareUsrIds); | ||
| 153 | if($checkPrepareCol=="without")$usersLoggedIn = $usersLoggedIn->where('current_dialmode', '=', 'Predictive'); | ||
| 154 | $usersLoggedIn = $usersLoggedIn->select('id','sel_campaign')->get(); | ||
| 155 | |||
| 156 | foreach ($usersLoggedIn as $userLoggedIn) { | ||
| 157 | $campaignWiseUsrs[$userLoggedIn->sel_campaign][] = $userLoggedIn->id; | ||
| 158 | } | ||
| 159 | } | ||
| 160 | return $campaignWiseUsrs; | ||
| 161 | } | ||
| 162 | |||
| 163 | public function getActualAvailChannelCount() | ||
| 164 | { | ||
| 165 | $cnt = 0; | ||
| 166 | $allChanlCnt = $this->getSpanCount(); | ||
| 167 | |||
| 168 | $diallineVal = Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("dialstr","!=","")->where("enabled","=","1")->select('dialstr')->first(); | ||
| 169 | |||
| 170 | //TODO: When SIP and Dahdi both are active | ||
| 171 | if(count($diallineVal)){ | ||
| 172 | if(stristr($diallineVal->dialstr,"Dahdi")){ | ||
| 173 | $dialedCnt = $this->getActualDahdiDialedCallCount(); | ||
| 174 | |||
| 175 | $cnt = $allChanlCnt - $dialedCnt; | ||
| 176 | } | ||
| 177 | elseif(stristr($diallineVal->dialstr,"GATEWAY")){ | ||
| 178 | $dialedCnt = $this->getActualSipDialedCallCount(); | ||
| 179 | |||
| 180 | $cnt = $allChanlCnt - $dialedCnt; | ||
| 181 | } | ||
| 182 | } | ||
| 183 | |||
| 184 | return $cnt; | ||
| 185 | } | ||
| 186 | |||
| 187 | public function getActualSipDialedCallCount() | ||
| 188 | { | ||
| 189 | $allChnnlArr = array(); | ||
| 190 | $dialstr = "Dial(SIP/GATEWAY/"; | ||
| 191 | $chnlCnt = 0; | ||
| 192 | |||
| 193 | exec("/usr/sbin/asterisk -rx 'core show channels'",$allChnnls); | ||
| 194 | |||
| 195 | foreach($allChnnls as $allChnnl){ | ||
| 196 | //$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) ); | ||
| 197 | if(stristr($allChnnl, $dialstr)){ | ||
| 198 | $chnlCnt++; | ||
| 199 | } | ||
| 200 | } | ||
| 201 | |||
| 202 | return $chnlCnt; | ||
| 203 | } | ||
| 204 | |||
| 205 | public function getActualDahdiDialedCallCount() | ||
| 206 | { | ||
| 207 | $allChnnlArr = array(); | ||
| 208 | $dialstr = "ACTIVE"; | ||
| 209 | $status = "RED"; | ||
| 210 | $chnlCnt = 0; | ||
| 211 | |||
| 212 | exec("/usr/sbin/asterisk -rx 'service dahdi status'",$allChnnls); | ||
| 213 | |||
| 214 | foreach($allChnnls as $allChnnl){ | ||
| 215 | //$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) ); | ||
| 216 | if(stristr($allChnnl, $status)){ | ||
| 217 | Break; | ||
| 218 | } | ||
| 219 | |||
| 220 | if(stristr($allChnnl, $dialstr)){ | ||
| 221 | $chnlCnt++; | ||
| 222 | } | ||
| 223 | } | ||
| 224 | |||
| 225 | return $chnlCnt; | ||
| 226 | } | ||
| 227 | |||
| 228 | //TODO: Generate Client File To Take All Parameteres Of Campaigns | ||
| 229 | public function getCreateCallCount($client, $usrCnt) | ||
| 230 | { | ||
| 231 | $wakka = new KHRMSLib(); | ||
| 232 | $mastersdata=$wakka->getCompanyMaster($client); | ||
| 233 | |||
| 234 | $ratio = $mastersdata["autodialercampaign"]; | ||
| 235 | $dialedCallCnt = $this->getDialedCallCount($client); | ||
| 236 | |||
| 237 | return ($usrCnt*$ratio) - $dialedCallCnt; | ||
| 238 | } | ||
| 239 | |||
| 240 | public function getDialedCallCount($client) | ||
| 241 | { | ||
| 242 | $cnt = Dialline::whereIn("status", ["Auto","AutoCall"])->where("conf","=","")->where("regexstr","=",$client)->count(); | ||
| 243 | |||
| 244 | return $cnt; | ||
| 245 | } | ||
| 246 | |||
| 247 | public function CreateCall($client, $acalls) | ||
| 248 | { | ||
| 249 | if($acalls>0) | ||
| 250 | { | ||
| 251 | for($i=0;$i<$acalls;$i++) | ||
| 252 | { | ||
| 253 | $this->useChannelToDial($client); | ||
| 254 | } | ||
| 255 | } | ||
| 256 | } | ||
| 257 | |||
| 258 | public function useChannelToDial($client) | ||
| 259 | { | ||
| 260 | $dialline=Dialline::where('server','=', env('app_ip'))->where("status","=","Free")->where("enabled","=","1"); | ||
| 261 | |||
| 262 | //TODO::Need To Code Dspan Logic as per discussion | ||
| 263 | //if($dspan!="")$dialline=$dialline->where('dspan','=',$dspan)->where('id','<=','30'); | ||
| 264 | $dialline=$dialline->orderBy('updated_at','ASC')->first(); | ||
| 265 | |||
| 266 | if(!empty($dialline)) | ||
| 267 | { | ||
| 268 | $this->createCrmCall($client, $dialline); | ||
| 269 | } | ||
| 270 | |||
| 271 | return; | ||
| 272 | } | ||
| 273 | |||
| 274 | public function createCrmCall($client, $dialline) | ||
| 275 | { | ||
| 276 | //TODO: Need to check whether callerid is required or not (in case of GSM Gateway) | ||
| 277 | $callerid=""; | ||
| 278 | $wakka = new KHRMSLib(); | ||
| 279 | |||
| 280 | //TODO::Need To Add Sequence Logic Here | ||
| 281 | $users=$wakka->getPersons("client='$client' and status='New' and mobile!='' limit 1"); | ||
| 282 | |||
| 283 | if(sizeof($users)>=1) | ||
| 284 | { | ||
| 285 | $record=$wakka->getPerson($users[0]['id']); | ||
| 286 | if($record) | ||
| 287 | { | ||
| 288 | $record["peopledata"]["status"]="AutoCall"; | ||
| 289 | $wakka->setPerson($users[0]['id'],$record); | ||
| 290 | } | ||
| 291 | |||
| 292 | $dialline->user_id=$user_id; | ||
| 293 | $dialline->status="AutoCall"; | ||
| 294 | $dialline->regexstr=$users[0]['client']; | ||
| 295 | $dialline->number=$users[0]["mobile"]; | ||
| 296 | $dialline->save(); | ||
| 297 | |||
| 298 | $nowts=microtime(true)*1000; | ||
| 299 | |||
| 300 | //start the call log | ||
| 301 | $crmcall=new CRMCall(); | ||
| 302 | $crmcall->number=$users[0]["mobile"]; | ||
| 303 | $crmcall->user_id=0; | ||
| 304 | $crmcall->sipid_id=0; | ||
| 305 | $crmcall->crm_id=$users[0]['id']; | ||
| 306 | $crmcall->lan=$users[0]['lan']; | ||
| 307 | $crmcall->client=$users[0]['client']; | ||
| 308 | $crmcall->department=$users[0]['department']; | ||
| 309 | $crmcall->state='New'; | ||
| 310 | $crmcall->type="AutoCall"; | ||
| 311 | $crmcall->dialline_id=$dialline->id; | ||
| 312 | |||
| 313 | $crmcall->setTs('ts_Wait',$nowts); | ||
| 314 | $crmcall->setTs('ts_Call',$nowts); | ||
| 315 | |||
| 316 | $crmcall->did=$callerid; | ||
| 317 | |||
| 318 | $tdata=array(); | ||
| 319 | $crmcall->data=json_encode($tdata); | ||
| 320 | $crmcall->save(); | ||
| 321 | |||
| 322 | //start actual calls | ||
| 323 | $newqueue=new Kqueue(); | ||
| 324 | $newqueue->autoCallOut($users[0]["mobile"],$callerid,$crmcall,$dialline); | ||
| 325 | } | ||
| 326 | |||
| 327 | return; | ||
| 328 | } | ||
| 329 | |||
| 330 | public function getSpanCount() | ||
| 331 | { | ||
| 332 | $spanArr = array("span1" => 30, "span2" => 0, "span3" => 0, "span4" => 0); | ||
| 333 | |||
| 334 | $cnt = array_sum($spanArr); | ||
| 335 | |||
| 336 | return $cnt; | ||
| 337 | } | ||
| 338 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <?php namespace App\Console\Commands; | ||
| 2 | |||
| 3 | use Illuminate\Console\Command; | ||
| 4 | //use Mail; | ||
| 5 | use DB; | ||
| 6 | use Config; | ||
| 7 | |||
| 8 | use App\Models\User; | ||
| 9 | use App\Models\Accesslog; | ||
| 10 | |||
| 11 | use App\Models\CRMCall; | ||
| 12 | use Schema; | ||
| 13 | use PDO; | ||
| 14 | use App\Models\Notification; | ||
| 15 | use App\Jobs\KHRMSLib; | ||
| 16 | |||
| 17 | use Input; | ||
| 18 | use App\Models\Sipid; | ||
| 19 | use App\Models\Kqueue; | ||
| 20 | use App\Models\Dialline; | ||
| 21 | use App\Models\Session; | ||
| 22 | use App\Models\Cutoff; | ||
| 23 | |||
| 24 | use Log; | ||
| 25 | use Illuminate\Database\Schema\Blueprint; | ||
| 26 | |||
| 27 | class PredictiveCallHangUp extends Command { | ||
| 28 | |||
| 29 | /** | ||
| 30 | * The console command name. | ||
| 31 | * | ||
| 32 | * @var string | ||
| 33 | */ | ||
| 34 | protected $signature = 'PredictiveCallHangUp'; | ||
| 35 | |||
| 36 | /** | ||
| 37 | * The console command description. | ||
| 38 | * | ||
| 39 | * @var string | ||
| 40 | */ | ||
| 41 | protected $description = 'Hang Up Extra Calls If Agents Are Not Free'; | ||
| 42 | |||
| 43 | /** | ||
| 44 | * Execute the console command. | ||
| 45 | * | ||
| 46 | * @return mixed | ||
| 47 | */ | ||
| 48 | public function handle() | ||
| 49 | { | ||
| 50 | while(true) | ||
| 51 | { | ||
| 52 | usleep(1000000); | ||
| 53 | $this->runHangUp(); | ||
| 54 | } | ||
| 55 | } | ||
| 56 | |||
| 57 | public function runHangUp() | ||
| 58 | { | ||
| 59 | try { | ||
| 60 | $breathingTime = 5; | ||
| 61 | $avgringsec = 0; | ||
| 62 | |||
| 63 | $avgringsec = Cutoff::select(DB::Raw('avg(avg_ring) as avgringsec'))->first(); | ||
| 64 | if($avgringsec)$avgringsec= $avgringsec->avgringsec; | ||
| 65 | |||
| 66 | $diallines = Dialline::whereIn("status", ["Auto","AutoCall"])->where("conf","=","")->select('status','updated_at','channel','server')->get(); | ||
| 67 | |||
| 68 | foreach ($diallines as $dialline) { | ||
| 69 | |||
| 70 | $newqueue=new Kqueue(); | ||
| 71 | $lastUpdatedTime = strtotime(date("Y-m-d H:i:s")) - strtotime($dialline->updated_at); | ||
| 72 | |||
| 73 | if ($dialline->status == 'Auto' && $lastUpdatedTime > $breathingTime) { | ||
| 74 | $newqueue->hangupChannelS($dialline->channel,$dialline->server); | ||
| 75 | } | ||
| 76 | elseif($dialline->status == 'AutoCall' && $lastUpdatedTime > ($avgringsec+$breathingTime)) { | ||
| 77 | $newqueue->hangupChannelS($dialline->channel,$dialline->server); | ||
| 78 | } | ||
| 79 | } | ||
| 80 | } catch (Exception $e) { | ||
| 81 | Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log"); | ||
| 82 | Log::error($e); | ||
| 83 | continue; | ||
| 84 | } | ||
| 85 | } | ||
| 86 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <?php namespace App\Console\Commands; | ||
| 2 | |||
| 3 | use Illuminate\Console\Command; | ||
| 4 | //use Mail; | ||
| 5 | use DB; | ||
| 6 | use Config; | ||
| 7 | |||
| 8 | use App\Models\User; | ||
| 9 | use App\Models\Accesslog; | ||
| 10 | |||
| 11 | use App\Models\CRMCall; | ||
| 12 | use Schema; | ||
| 13 | use PDO; | ||
| 14 | use App\Models\Notification; | ||
| 15 | use App\Jobs\KHRMSLib; | ||
| 16 | |||
| 17 | use Input; | ||
| 18 | use App\Models\Sipid; | ||
| 19 | use App\Models\Kqueue; | ||
| 20 | use App\Models\Dialline; | ||
| 21 | use App\Models\Session; | ||
| 22 | use App\Models\Cutoff; | ||
| 23 | |||
| 24 | use Log; | ||
| 25 | use Illuminate\Database\Schema\Blueprint; | ||
| 26 | |||
| 27 | class UpdateAvgRingSec extends Command { | ||
| 28 | |||
| 29 | /** | ||
| 30 | * The console command name. | ||
| 31 | * | ||
| 32 | * @var string | ||
| 33 | */ | ||
| 34 | protected $signature = 'UpdateAvgRingSec'; | ||
| 35 | |||
| 36 | /** | ||
| 37 | * The console command description. | ||
| 38 | * | ||
| 39 | * @var string | ||
| 40 | */ | ||
| 41 | protected $description = 'Update Avg Call Ring Sec Of Last 50 Calls'; | ||
| 42 | |||
| 43 | /** | ||
| 44 | * Execute the console command. | ||
| 45 | * | ||
| 46 | * @return mixed | ||
| 47 | */ | ||
| 48 | public function handle() | ||
| 49 | { | ||
| 50 | $avgcallsecObj = CRMCall::select(DB::Raw('ROUND((avg(callsec))/1000) as avgcallsec'))->limit(50)->where("type","!=","Inbound")->first(); | ||
| 51 | |||
| 52 | if(count($avgcallsecObj)) | ||
| 53 | { | ||
| 54 | Cutoff::where('user_id', '!=', "")->update( | ||
| 55 | ['avg_ring' => $avgcallsecObj->avgcallsec | ||
| 56 | ]); | ||
| 57 | } | ||
| 58 | } | ||
| 59 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -48,6 +48,9 @@ protected $commands = [ | ... | @@ -48,6 +48,9 @@ protected $commands = [ |
| 48 | 'App\Console\Commands\bulkserverupload_data', | 48 | 'App\Console\Commands\bulkserverupload_data', |
| 49 | 'App\Console\Commands\bulkServerUpload_data3', | 49 | 'App\Console\Commands\bulkServerUpload_data3', |
| 50 | 'App\Console\Commands\Userlog_datavalidation', | 50 | 'App\Console\Commands\Userlog_datavalidation', |
| 51 | 'App\Console\Commands\CreateCall', | ||
| 52 | 'App\Console\Commands\PredictiveCallHangUp', | ||
| 53 | 'App\Console\Commands\UpdateAvgRingSec', | ||
| 51 | 54 | ||
| 52 | ]; | 55 | ]; |
| 53 | 56 | ... | ... |
| ... | @@ -897,6 +897,14 @@ function resetCallArray() | ... | @@ -897,6 +897,14 @@ function resetCallArray() |
| 897 | kSetDData('C','prograssiveDelay',120); | 897 | kSetDData('C','prograssiveDelay',120); |
| 898 | } | 898 | } |
| 899 | 899 | ||
| 900 | function savedialermode() | ||
| 901 | { | ||
| 902 | var datastr="kstychCall="+JSON.stringify(kstychCall); | ||
| 903 | datastr+="&kstychDialer="+JSON.stringify(kstychDialer); | ||
| 904 | |||
| 905 | doAjax("dialer?action=usersel&client="+client,datastr,"","","singlefail","POST"); | ||
| 906 | } | ||
| 907 | |||
| 900 | function updateDialerState(objstr,key,val,key2,val2) | 908 | function updateDialerState(objstr,key,val,key2,val2) |
| 901 | { | 909 | { |
| 902 | if(objstr=="dialer") | 910 | if(objstr=="dialer") |
| ... | @@ -933,7 +941,7 @@ function updateDialerState(objstr,key,val,key2,val2) | ... | @@ -933,7 +941,7 @@ function updateDialerState(objstr,key,val,key2,val2) |
| 933 | 941 | ||
| 934 | var datastr="kstychCall="+JSON.stringify(kstychCall); | 942 | var datastr="kstychCall="+JSON.stringify(kstychCall); |
| 935 | datastr+="&kstychDialer="+JSON.stringify(kstychDialer); | 943 | datastr+="&kstychDialer="+JSON.stringify(kstychDialer); |
| 936 | var client = $('#tcampaign_select').val(); | 944 | //var client = $('#tcampaign_select').val(); |
| 937 | 945 | ||
| 938 | doAjax('dialer?action=dialerstate&client='+client,datastr,'', 'ajax_manualdial','singlefail','POST', | 946 | doAjax('dialer?action=dialerstate&client='+client,datastr,'', 'ajax_manualdial','singlefail','POST', |
| 939 | function(retstr){ | 947 | function(retstr){ |
| ... | @@ -962,6 +970,9 @@ function updateDialerState(objstr,key,val,key2,val2) | ... | @@ -962,6 +970,9 @@ function updateDialerState(objstr,key,val,key2,val2) |
| 962 | 970 | ||
| 963 | updateDialerState(); | 971 | updateDialerState(); |
| 964 | }); | 972 | }); |
| 973 | |||
| 974 | if(val2=="Predictive") | ||
| 975 | savedialermode(val2); | ||
| 965 | } | 976 | } |
| 966 | } | 977 | } |
| 967 | if(objstr=="call") | 978 | if(objstr=="call") | ... | ... |
| ... | @@ -396,6 +396,8 @@ use App\Models\CRMCall; | ... | @@ -396,6 +396,8 @@ use App\Models\CRMCall; |
| 396 | 396 | ||
| 397 | <script> | 397 | <script> |
| 398 | 398 | ||
| 399 | client = $('#tcampaign_select').val(); | ||
| 400 | |||
| 399 | <?php if($client){?> | 401 | <?php if($client){?> |
| 400 | $("#tcampaign_select").val('<?=$client?>'); | 402 | $("#tcampaign_select").val('<?=$client?>'); |
| 401 | <?php }?> | 403 | <?php }?> |
| ... | @@ -416,6 +418,8 @@ function campaignSelect() | ... | @@ -416,6 +418,8 @@ function campaignSelect() |
| 416 | { | 418 | { |
| 417 | var dashlet="Dialer"; | 419 | var dashlet="Dialer"; |
| 418 | doAjax("dashboard/dashlet?module="+dashlet+"&client="+$("#tcampaign_select").val(),"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET"); | 420 | doAjax("dashboard/dashlet?module="+dashlet+"&client="+$("#tcampaign_select").val(),"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET"); |
| 421 | |||
| 422 | savedialermode(); | ||
| 419 | } | 423 | } |
| 420 | 424 | ||
| 421 | function dataSelect() | 425 | function dataSelect() |
| ... | @@ -449,6 +453,8 @@ function dialerLoadData(listname,currentstatus,legalstatus,page,skey,stxt) | ... | @@ -449,6 +453,8 @@ function dialerLoadData(listname,currentstatus,legalstatus,page,skey,stxt) |
| 449 | { | 453 | { |
| 450 | 454 | ||
| 451 | doAjax("dialer/bucketdata","client={!!$client!!}&bucket="+listname+"¤tstatus="+currentstatus+"&legalstatus="+legalstatus+'&page='+page+'&skey='+skey+'&stxt='+stxt,"bucketlistdiv","ajax_dialer_list","singlefail","GET"); | 455 | doAjax("dialer/bucketdata","client={!!$client!!}&bucket="+listname+"¤tstatus="+currentstatus+"&legalstatus="+legalstatus+'&page='+page+'&skey='+skey+'&stxt='+stxt,"bucketlistdiv","ajax_dialer_list","singlefail","GET"); |
| 456 | |||
| 457 | savedialermode(); | ||
| 452 | } | 458 | } |
| 453 | dialerLoadData('CurrentQueue','','',1,'',''); | 459 | dialerLoadData('CurrentQueue','','',1,'',''); |
| 454 | </script> | 460 | </script> | ... | ... |
| ... | @@ -202,31 +202,35 @@ function createSearchRecordDiv(divid) | ... | @@ -202,31 +202,35 @@ function createSearchRecordDiv(divid) |
| 202 | //print_r($userdialmode); | 202 | //print_r($userdialmode); |
| 203 | if(in_array('Progressive',$userdialmode)) | 203 | if(in_array('Progressive',$userdialmode)) |
| 204 | { ?> | 204 | { ?> |
| 205 | <li><a href="#" onclick='updateDialerState("dialer","mDialerState","Progressive");return false;'><b>Progressive</b></a></li> | 205 | <li><a href="#" onclick='updateDialerState("dialer","mDialerState","Progressive");savedialermode();return false;'><b>Progressive</b></a></li> |
| 206 | <?php | 206 | <?php |
| 207 | } | 207 | } |
| 208 | if(in_array('Manual',$userdialmode)){?> | 208 | if(in_array('Manual',$userdialmode)){?> |
| 209 | 209 | ||
| 210 | 210 | ||
| 211 | <li id=dialerManualAllowLI><a href="#" onclick='updateDialerState("dialer","mDialerState","Manual");return false;'><b>Manual</b></a></li> | 211 | <li id=dialerManualAllowLI><a href="#" onclick='updateDialerState("dialer","mDialerState","Manual");savedialermode();return false;'><b>Manual</b></a></li> |
| 212 | 212 | ||
| 213 | 213 | ||
| 214 | <?php } if(in_array('Incoming',$userdialmode)){ ?> | 214 | <?php } if(in_array('Incoming',$userdialmode)){ ?> |
| 215 | <li style='background:#36bc9b'><a href="#" onclick='updateDialerState("dialer","mDialerState","Ready","mDialerSubState","Incoming");return false;'><b>Incoming</b></a></li> | 215 | <li style='background:#36bc9b'><a href="#" onclick='updateDialerState("dialer","mDialerState","Ready","mDialerSubState","Incoming");savedialermode();return false;'><b>Incoming</b></a></li> |
| 216 | <?php } if(in_array('Predictive',$userdialmode)){?> | ||
| 217 | |||
| 218 | <li style='background:#36bc9b'><a href="#" onclick='updateDialerState("dialer","mDialerState","Ready","mDialerSubState","Predictive");savedialermode();return false;'><b>Incoming</b></a></li> | ||
| 216 | <?php } ?> | 219 | <?php } ?> |
| 220 | |||
| 217 | <!--<li><a href="#" onclick='updateDialerState("dialer","mDialerState","DialNext");return false;'><b>DialNext</b></a></li>--> | 221 | <!--<li><a href="#" onclick='updateDialerState("dialer","mDialerState","DialNext");return false;'><b>DialNext</b></a></li>--> |
| 218 | 222 | ||
| 219 | <li><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","Manual");return false;'><b>Paused</b></a></li> | 223 | <li><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","Manual");savedialermode();return false;'><b>Paused</b></a></li> |
| 220 | 224 | ||
| 221 | 225 | ||
| 222 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","AgentBriefing");return false;'><b>AgentBriefing</b></a></li> | 226 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","AgentBriefing");savedialermode();return false;'><b>AgentBriefing</b></a></li> |
| 223 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeamMeeting");return false;'><b>TeamMeeting</b></a></li> | 227 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeamMeeting");savedialermode();return false;'><b>TeamMeeting</b></a></li> |
| 224 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","QualityFeedback");return false;'><b>QualityFeedback</b></a></li> | 228 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","QualityFeedback");savedialermode();return false;'><b>QualityFeedback</b></a></li> |
| 225 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","LunchBreak");return false;'><b>LunchBreak</b></a></li> | 229 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","LunchBreak");savedialermode();return false;'><b>LunchBreak</b></a></li> |
| 226 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeaBreak");return false;'><b>TeaBreak</b></a></li> | 230 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeaBreak");savedialermode();return false;'><b>TeaBreak</b></a></li> |
| 227 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","UtilityBreak");return false;'><b>UtilityBreak</b></a></li> | 231 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","UtilityBreak");savedialermode();return false;'><b>UtilityBreak</b></a></li> |
| 228 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","FloorAnnouncements");return false;'><b>FloorAnnouncements</b></a></li> | 232 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","FloorAnnouncements");savedialermode();return false;'><b>FloorAnnouncements</b></a></li> |
| 229 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","DownTime");return false;'><b>DownTime</b></a></li> | 233 | <li style='background:#ccc'><a href="#" onclick='updateDialerState("dialer","mDialerState","Paused","mDialerSubState","DownTime");savedialermode();return false;'><b>DownTime</b></a></li> |
| 230 | 234 | ||
| 231 | 235 | ||
| 232 | </ul> | 236 | </ul> | ... | ... |
-
Please register or sign in to post a comment