Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flexydial
/
hdfc-beu-v2
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
baaad793
authored
2018-12-05 06:14:24 +0000
by
Manish Mihsra
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Worked on adding dialmode adding the dropdown and updating value in the table
1 parent
c2832e89
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
520 additions
and
13 deletions
application/app/Console/Commands/CreateCall.php
application/app/Console/Commands/PredictiveCallHangUp.php
application/app/Console/Commands/UpdateAvgRingSec.php
application/app/Console/Kernel.php
application/public/assets/js/dialer.js
application/resources/views/layout/module/dashboard/dialer.blade.php
application/resources/views/layout/top_menu.blade.php
application/app/Console/Commands/CreateCall.php
0 → 100755
View file @
baaad79
<?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
Log
;
use
App\Models\Sipid
;
use
App\Models\Kqueue
;
use
App\Models\Dialline
;
use
App\Models\Session
;
use
App\Models\Cutoff
;
use
Illuminate\Database\Schema\Blueprint
;
class
CreateCall
extends
Command
{
/**
* The console command name.
*
* @var string
*/
protected
$signature
=
'CreateCall'
;
/**
* The console command description.
*
* @var string
*/
protected
$description
=
'Create Pedictive Call If any User is Free'
;
/**
* Execute the console command.
*
* @return mixed
*/
public
function
handle
()
{
while
(
true
)
{
usleep
(
1000000
);
$this
->
runPredictive
();
}
}
public
function
runPredictive
()
{
try
{
$this
->
updatePrepareColumn
();
$usrArrs
=
$this
->
getActiveUsersCampaignWise
(
"with"
);
$availChannel
=
$this
->
getActualAvailChannelCount
();
if
(
count
(
$usrArrs
)){
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info($usrArrs);
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("Channel=".$availChannel);
foreach
(
$usrArrs
as
$client
=>
$usrArr
)
{
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("campaign=".$client);
$acalls
=
$this
->
getCreateCallCount
(
$client
,
count
(
$usrArr
));
$acalls
=
min
(
$acalls
,
$availChannel
);
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("CallCount=".$acalls);
$this
->
CreateCall
(
$client
,
$acalls
);
}
}
}
catch
(
Exception
$e
)
{
Log
::
useFiles
(
storage_path
()
.
"/logs/predictive_"
.
date
(
"Y_m_d"
)
.
".log"
);
Log
::
error
(
$e
);
continue
;
}
}
public
function
updatePrepareColumn
()
{
$allClientUsrIdArr
=
array
();
$updatedUserIdArr
=
array
();
$currentTime
=
strtotime
(
date
(
"Y-m-d H:i:s"
));
$clientWiseUserIdArr
=
$this
->
getActiveUsersCampaignWise
(
"without"
);
if
(
count
(
$clientWiseUserIdArr
))
{
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("updatePrepareColumn");Log::info($clientWiseUserIdArr);
foreach
(
$clientWiseUserIdArr
as
$client
=>
$usrIdArr
)
{
$allClientUsrIdArr
=
array_merge
(
$allClientUsrIdArr
,
$usrIdArr
);
}
$usersTimeArr
=
Cutoff
::
whereIn
(
'user_id'
,
$allClientUsrIdArr
)
->
get
();
foreach
(
$usersTimeArr
as
$userTimeArr
)
{
$cutOffTime
=
strtotime
(
$userTimeArr
->
hangup_time
)
+
(
$userTimeArr
->
avg_dispo
-
$userTimeArr
->
avg_ring
);
if
(
$cutOffTime
<
$currentTime
)
{
$updatedUserIdArr
[]
=
$userTimeArr
->
user_id
;
}
}
if
(
count
(
$updatedUserIdArr
))
{
//Log::useFiles(storage_path()."/logs/predictive_".date("Y_m_d").".log");
//Log::info("updatedUserIdArr");Log::info($updatedUserIdArr);
}
Sipid
::
whereIn
(
'user'
,
$updatedUserIdArr
)
->
update
([
'prepare_call'
=>
1
]);
}
}
public
function
getActiveUsersCampaignWise
(
$checkPrepareCol
)
{
$campaignWiseUsrs
=
array
();
$prepareUsrIds
=
array
();
$loggedInSips
=
Sipid
::
where
(
'server'
,
'='
,
env
(
'app_ip'
))
->
where
(
"user"
,
"!="
,
0
)
->
where
(
"status"
,
"="
,
"1"
);
if
(
$checkPrepareCol
==
"with"
){
$loggedInSips
=
$loggedInSips
->
where
(
"prepare_call"
,
"="
,
"1"
);
}
elseif
(
$checkPrepareCol
==
"without"
){
$loggedInSips
=
$loggedInSips
->
where
(
"patched"
,
"="
,
"0"
);
}
$loggedInSips
=
$loggedInSips
->
groupBy
(
'user'
)
->
get
();
if
(
count
(
$loggedInSips
)){
foreach
(
$loggedInSips
as
$loggedInSip
)
{
$prepareUsrIds
[]
=
$loggedInSip
->
user
;
}
//TODO: Change Dialmode Value in the column Of User Table (Ready to Predictive)
$usersLoggedIn
=
User
::
whereIn
(
'id'
,
$prepareUsrIds
);
if
(
$checkPrepareCol
==
"without"
)
$usersLoggedIn
=
$usersLoggedIn
->
where
(
'current_dialmode'
,
'='
,
'Predictive'
);
$usersLoggedIn
=
$usersLoggedIn
->
select
(
'id'
,
'sel_campaign'
)
->
get
();
foreach
(
$usersLoggedIn
as
$userLoggedIn
)
{
$campaignWiseUsrs
[
$userLoggedIn
->
sel_campaign
][]
=
$userLoggedIn
->
id
;
}
}
return
$campaignWiseUsrs
;
}
public
function
getActualAvailChannelCount
()
{
$cnt
=
0
;
$allChanlCnt
=
$this
->
getSpanCount
();
$diallineVal
=
Dialline
::
where
(
'server'
,
'='
,
env
(
'app_ip'
))
->
where
(
"status"
,
"="
,
"Free"
)
->
where
(
"dialstr"
,
"!="
,
""
)
->
where
(
"enabled"
,
"="
,
"1"
)
->
select
(
'dialstr'
)
->
first
();
//TODO: When SIP and Dahdi both are active
if
(
count
(
$diallineVal
)){
if
(
stristr
(
$diallineVal
->
dialstr
,
"Dahdi"
)){
$dialedCnt
=
$this
->
getActualDahdiDialedCallCount
();
$cnt
=
$allChanlCnt
-
$dialedCnt
;
}
elseif
(
stristr
(
$diallineVal
->
dialstr
,
"GATEWAY"
)){
$dialedCnt
=
$this
->
getActualSipDialedCallCount
();
$cnt
=
$allChanlCnt
-
$dialedCnt
;
}
}
return
$cnt
;
}
public
function
getActualSipDialedCallCount
()
{
$allChnnlArr
=
array
();
$dialstr
=
"Dial(SIP/GATEWAY/"
;
$chnlCnt
=
0
;
exec
(
"/usr/sbin/asterisk -rx 'core show channels'"
,
$allChnnls
);
foreach
(
$allChnnls
as
$allChnnl
){
//$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) );
if
(
stristr
(
$allChnnl
,
$dialstr
)){
$chnlCnt
++
;
}
}
return
$chnlCnt
;
}
public
function
getActualDahdiDialedCallCount
()
{
$allChnnlArr
=
array
();
$dialstr
=
"ACTIVE"
;
$status
=
"RED"
;
$chnlCnt
=
0
;
exec
(
"/usr/sbin/asterisk -rx 'service dahdi status'"
,
$allChnnls
);
foreach
(
$allChnnls
as
$allChnnl
){
//$allChnnlArr[] = explode(" ", preg_replace('!\s+!', ' ', $allChnnl) );
if
(
stristr
(
$allChnnl
,
$status
)){
Break
;
}
if
(
stristr
(
$allChnnl
,
$dialstr
)){
$chnlCnt
++
;
}
}
return
$chnlCnt
;
}
//TODO: Generate Client File To Take All Parameteres Of Campaigns
public
function
getCreateCallCount
(
$client
,
$usrCnt
)
{
$wakka
=
new
KHRMSLib
();
$mastersdata
=
$wakka
->
getCompanyMaster
(
$client
);
$ratio
=
$mastersdata
[
"autodialercampaign"
];
$dialedCallCnt
=
$this
->
getDialedCallCount
(
$client
);
return
(
$usrCnt
*
$ratio
)
-
$dialedCallCnt
;
}
public
function
getDialedCallCount
(
$client
)
{
$cnt
=
Dialline
::
whereIn
(
"status"
,
[
"Auto"
,
"AutoCall"
])
->
where
(
"conf"
,
"="
,
""
)
->
where
(
"regexstr"
,
"="
,
$client
)
->
count
();
return
$cnt
;
}
public
function
CreateCall
(
$client
,
$acalls
)
{
if
(
$acalls
>
0
)
{
for
(
$i
=
0
;
$i
<
$acalls
;
$i
++
)
{
$this
->
useChannelToDial
(
$client
);
}
}
}
public
function
useChannelToDial
(
$client
)
{
$dialline
=
Dialline
::
where
(
'server'
,
'='
,
env
(
'app_ip'
))
->
where
(
"status"
,
"="
,
"Free"
)
->
where
(
"enabled"
,
"="
,
"1"
);
//TODO::Need To Code Dspan Logic as per discussion
//if($dspan!="")$dialline=$dialline->where('dspan','=',$dspan)->where('id','<=','30');
$dialline
=
$dialline
->
orderBy
(
'updated_at'
,
'ASC'
)
->
first
();
if
(
!
empty
(
$dialline
))
{
$this
->
createCrmCall
(
$client
,
$dialline
);
}
return
;
}
public
function
createCrmCall
(
$client
,
$dialline
)
{
//TODO: Need to check whether callerid is required or not (in case of GSM Gateway)
$callerid
=
""
;
$wakka
=
new
KHRMSLib
();
//TODO::Need To Add Sequence Logic Here
$users
=
$wakka
->
getPersons
(
"client='
$client
' and status='New' and mobile!='' limit 1"
);
if
(
sizeof
(
$users
)
>=
1
)
{
$record
=
$wakka
->
getPerson
(
$users
[
0
][
'id'
]);
if
(
$record
)
{
$record
[
"peopledata"
][
"status"
]
=
"AutoCall"
;
$wakka
->
setPerson
(
$users
[
0
][
'id'
],
$record
);
}
$dialline
->
user_id
=
$user_id
;
$dialline
->
status
=
"AutoCall"
;
$dialline
->
regexstr
=
$users
[
0
][
'client'
];
$dialline
->
number
=
$users
[
0
][
"mobile"
];
$dialline
->
save
();
$nowts
=
microtime
(
true
)
*
1000
;
//start the call log
$crmcall
=
new
CRMCall
();
$crmcall
->
number
=
$users
[
0
][
"mobile"
];
$crmcall
->
user_id
=
0
;
$crmcall
->
sipid_id
=
0
;
$crmcall
->
crm_id
=
$users
[
0
][
'id'
];
$crmcall
->
lan
=
$users
[
0
][
'lan'
];
$crmcall
->
client
=
$users
[
0
][
'client'
];
$crmcall
->
department
=
$users
[
0
][
'department'
];
$crmcall
->
state
=
'New'
;
$crmcall
->
type
=
"AutoCall"
;
$crmcall
->
dialline_id
=
$dialline
->
id
;
$crmcall
->
setTs
(
'ts_Wait'
,
$nowts
);
$crmcall
->
setTs
(
'ts_Call'
,
$nowts
);
$crmcall
->
did
=
$callerid
;
$tdata
=
array
();
$crmcall
->
data
=
json_encode
(
$tdata
);
$crmcall
->
save
();
//start actual calls
$newqueue
=
new
Kqueue
();
$newqueue
->
autoCallOut
(
$users
[
0
][
"mobile"
],
$callerid
,
$crmcall
,
$dialline
);
}
return
;
}
public
function
getSpanCount
()
{
$spanArr
=
array
(
"span1"
=>
30
,
"span2"
=>
0
,
"span3"
=>
0
,
"span4"
=>
0
);
$cnt
=
array_sum
(
$spanArr
);
return
$cnt
;
}
}
\ No newline at end of file
application/app/Console/Commands/PredictiveCallHangUp.php
0 → 100755
View file @
baaad79
<?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
App\Models\Cutoff
;
use
Log
;
use
Illuminate\Database\Schema\Blueprint
;
class
PredictiveCallHangUp
extends
Command
{
/**
* The console command name.
*
* @var string
*/
protected
$signature
=
'PredictiveCallHangUp'
;
/**
* The console command description.
*
* @var string
*/
protected
$description
=
'Hang Up Extra Calls If Agents Are Not Free'
;
/**
* Execute the console command.
*
* @return mixed
*/
public
function
handle
()
{
while
(
true
)
{
usleep
(
1000000
);
$this
->
runHangUp
();
}
}
public
function
runHangUp
()
{
try
{
$breathingTime
=
5
;
$avgringsec
=
0
;
$avgringsec
=
Cutoff
::
select
(
DB
::
Raw
(
'avg(avg_ring) as avgringsec'
))
->
first
();
if
(
$avgringsec
)
$avgringsec
=
$avgringsec
->
avgringsec
;
$diallines
=
Dialline
::
whereIn
(
"status"
,
[
"Auto"
,
"AutoCall"
])
->
where
(
"conf"
,
"="
,
""
)
->
select
(
'status'
,
'updated_at'
,
'channel'
,
'server'
)
->
get
();
foreach
(
$diallines
as
$dialline
)
{
$newqueue
=
new
Kqueue
();
$lastUpdatedTime
=
strtotime
(
date
(
"Y-m-d H:i:s"
))
-
strtotime
(
$dialline
->
updated_at
);
if
(
$dialline
->
status
==
'Auto'
&&
$lastUpdatedTime
>
$breathingTime
)
{
$newqueue
->
hangupChannelS
(
$dialline
->
channel
,
$dialline
->
server
);
}
elseif
(
$dialline
->
status
==
'AutoCall'
&&
$lastUpdatedTime
>
(
$avgringsec
+
$breathingTime
))
{
$newqueue
->
hangupChannelS
(
$dialline
->
channel
,
$dialline
->
server
);
}
}
}
catch
(
Exception
$e
)
{
Log
::
useFiles
(
storage_path
()
.
"/logs/predictive_"
.
date
(
"Y_m_d"
)
.
".log"
);
Log
::
error
(
$e
);
continue
;
}
}
}
\ No newline at end of file
application/app/Console/Commands/UpdateAvgRingSec.php
0 → 100755
View file @
baaad79
<?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
App\Models\Cutoff
;
use
Log
;
use
Illuminate\Database\Schema\Blueprint
;
class
UpdateAvgRingSec
extends
Command
{
/**
* The console command name.
*
* @var string
*/
protected
$signature
=
'UpdateAvgRingSec'
;
/**
* The console command description.
*
* @var string
*/
protected
$description
=
'Update Avg Call Ring Sec Of Last 50 Calls'
;
/**
* Execute the console command.
*
* @return mixed
*/
public
function
handle
()
{
$avgcallsecObj
=
CRMCall
::
select
(
DB
::
Raw
(
'ROUND((avg(callsec))/1000) as avgcallsec'
))
->
limit
(
50
)
->
where
(
"type"
,
"!="
,
"Inbound"
)
->
first
();
if
(
count
(
$avgcallsecObj
))
{
Cutoff
::
where
(
'user_id'
,
'!='
,
""
)
->
update
(
[
'avg_ring'
=>
$avgcallsecObj
->
avgcallsec
]);
}
}
}
\ No newline at end of file
application/app/Console/Kernel.php
View file @
baaad79
...
...
@@ -48,6 +48,9 @@ protected $commands = [
'App\Console\Commands\bulkserverupload_data'
,
'App\Console\Commands\bulkServerUpload_data3'
,
'App\Console\Commands\Userlog_datavalidation'
,
'App\Console\Commands\CreateCall'
,
'App\Console\Commands\PredictiveCallHangUp'
,
'App\Console\Commands\UpdateAvgRingSec'
,
];
...
...
application/public/assets/js/dialer.js
View file @
baaad79
...
...
@@ -897,6 +897,14 @@ function resetCallArray()
kSetDData
(
'C'
,
'prograssiveDelay'
,
120
);
}
function
savedialermode
()
{
var
datastr
=
"kstychCall="
+
JSON
.
stringify
(
kstychCall
);
datastr
+=
"&kstychDialer="
+
JSON
.
stringify
(
kstychDialer
);
doAjax
(
"dialer?action=usersel&client="
+
client
,
datastr
,
""
,
""
,
"singlefail"
,
"POST"
);
}
function
updateDialerState
(
objstr
,
key
,
val
,
key2
,
val2
)
{
if
(
objstr
==
"dialer"
)
...
...
@@ -933,7 +941,7 @@ function updateDialerState(objstr,key,val,key2,val2)
var
datastr
=
"kstychCall="
+
JSON
.
stringify
(
kstychCall
);
datastr
+=
"&kstychDialer="
+
JSON
.
stringify
(
kstychDialer
);
var
client
=
$
(
'#tcampaign_select'
).
val
();
//
var client = $('#tcampaign_select').val();
doAjax
(
'dialer?action=dialerstate&client='
+
client
,
datastr
,
''
,
'ajax_manualdial'
,
'singlefail'
,
'POST'
,
function
(
retstr
){
...
...
@@ -962,6 +970,9 @@ function updateDialerState(objstr,key,val,key2,val2)
updateDialerState
();
});
if
(
val2
==
"Predictive"
)
savedialermode
(
val2
);
}
}
if
(
objstr
==
"call"
)
...
...
application/resources/views/layout/module/dashboard/dialer.blade.php
View file @
baaad79
...
...
@@ -396,6 +396,8 @@ use App\Models\CRMCall;
<script>
client = $('#tcampaign_select').val();
<?php
if
(
$client
){
?>
$("#tcampaign_select").val('
<?=
$client
?>
');
<?php
}
?>
...
...
@@ -416,6 +418,8 @@ function campaignSelect()
{
var
dashlet
=
"Dialer"
;
doAjax
(
"dashboard/dashlet?module="
+
dashlet
+
"&client="
+
$
(
"#tcampaign_select"
).
val
(),
""
,
"DashletT-"
+
dashlet
,
"ajax_dashlet_"
+
dashlet
,
"singlefail"
,
"GET"
);
savedialermode
();
}
function
dataSelect
()
...
...
@@ -449,6 +453,8 @@ function dialerLoadData(listname,currentstatus,legalstatus,page,skey,stxt)
{
doAjax
(
"dialer/bucketdata"
,
"client={!!$client!!}&bucket="
+
listname
+
"¤tstatus="
+
currentstatus
+
"&legalstatus="
+
legalstatus
+
'&page='
+
page
+
'&skey='
+
skey
+
'&stxt='
+
stxt
,
"bucketlistdiv"
,
"ajax_dialer_list"
,
"singlefail"
,
"GET"
);
savedialermode
();
}
dialerLoadData
(
'CurrentQueue'
,
''
,
''
,
1
,
''
,
''
);
</script>
...
...
application/resources/views/layout/top_menu.blade.php
View file @
baaad79
...
...
@@ -202,31 +202,35 @@ function createSearchRecordDiv(divid)
//print_r($userdialmode);
if
(
in_array
(
'Progressive'
,
$userdialmode
))
{
?>
<li><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Progressive");return false;'
><b>
Progressive
</b></a></li>
<li><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Progressive");
savedialermode();
return false;'
><b>
Progressive
</b></a></li>
<?php
}
if
(
in_array
(
'Manual'
,
$userdialmode
)){
?>
<li
id=
dialerManualAllowLI
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Manual");return false;'
><b>
Manual
</b></a></li>
<li
id=
dialerManualAllowLI
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Manual");
savedialermode();
return false;'
><b>
Manual
</b></a></li>
<?php
}
if
(
in_array
(
'Incoming'
,
$userdialmode
)){
?>
<li
style=
'background:#36bc9b'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Ready","mDialerSubState","Incoming");return false;'
><b>
Incoming
</b></a></li>
<li
style=
'background:#36bc9b'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Ready","mDialerSubState","Incoming");savedialermode();return false;'
><b>
Incoming
</b></a></li>
<?php
}
if
(
in_array
(
'Predictive'
,
$userdialmode
)){
?>
<li
style=
'background:#36bc9b'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Ready","mDialerSubState","Predictive");savedialermode();return false;'
><b>
Incoming
</b></a></li>
<?php
}
?>
<!--<li><a href="#" onclick='updateDialerState("dialer","mDialerState","DialNext");return false;'><b>DialNext</b></a></li>-->
<li><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","Manual");return false;'
><b>
Paused
</b></a></li>
<li><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","Manual");
savedialermode();
return false;'
><b>
Paused
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","AgentBriefing");return false;'
><b>
AgentBriefing
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeamMeeting");return false;'
><b>
TeamMeeting
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","QualityFeedback");return false;'
><b>
QualityFeedback
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","LunchBreak");return false;'
><b>
LunchBreak
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeaBreak");return false;'
><b>
TeaBreak
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","UtilityBreak");return false;'
><b>
UtilityBreak
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","FloorAnnouncements");return false;'
><b>
FloorAnnouncements
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","DownTime");return false;'
><b>
DownTime
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","AgentBriefing");
savedialermode();
return false;'
><b>
AgentBriefing
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeamMeeting");
savedialermode();
return false;'
><b>
TeamMeeting
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","QualityFeedback");
savedialermode();
return false;'
><b>
QualityFeedback
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","LunchBreak");
savedialermode();
return false;'
><b>
LunchBreak
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","TeaBreak");
savedialermode();
return false;'
><b>
TeaBreak
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","UtilityBreak");
savedialermode();
return false;'
><b>
UtilityBreak
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","FloorAnnouncements");
savedialermode();
return false;'
><b>
FloorAnnouncements
</b></a></li>
<li
style=
'background:#ccc'
><a
href=
"#"
onclick=
'updateDialerState("dialer","mDialerState","Paused","mDialerSubState","DownTime");
savedialermode();
return false;'
><b>
DownTime
</b></a></li>
</ul>
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment