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
e10aa96d
authored
2018-12-06 17:13:56 +0530
by
G Manojkumar
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Added new context for after hrs
1 parent
7002a035
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
37 deletions
application/app/Jobs/KPAMIListen.php
application/app/Models/Kqueue.php
application/public/assets/extras/data/asterisk/extensions.conf
application/app/Jobs/KPAMIListen.php
View file @
e10aa96
...
...
@@ -306,28 +306,52 @@ class KPAMIListen implements IEventListener
$crmcall
->
data
=
json_encode
(
$tdata
);
$crmcall
->
save
();
$userStatus
=
User
::
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
where
(
"exten"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"usertype"
,
"!="
,
"Admin"
)
->
where
(
'presence'
,
'='
,
'1'
)
->
select
(
'*'
)
->
get
();
if
(
$userStatus
==
"[]"
)
{
$newqueue
=
new
Kqueue
();
$newqueue
->
playabsencefile
(
$dialline
->
channel
,
$dialline
->
server
);
}
$callStat
=
CRMCall
::
where
(
"did"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
whereIn
(
'state'
,[
'DialBegin'
,
'DialEnd'
])
->
get
();
$newqueue
=
new
Kqueue
();
if
(
$callStat
!=
"[]"
)
{
if
(
$this
->
isHoliday
()
)
{
// TODO: Handle Holidays here
}
elseif
(
$this
->
isNonWorkingTime
()
)
{
$newqueue
=
new
Kqueue
();
$newqueue
->
playbusyfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
$newqueue
->
playafterhrsfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
else
{
$userStatus
=
User
::
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
where
(
"exten"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"usertype"
,
"!="
,
"Admin"
)
->
where
(
'presence'
,
'='
,
'1'
)
->
select
(
'*'
)
->
get
();
if
(
$userStatus
==
"[]"
)
{
$newqueue
->
playabsencefile
(
$dialline
->
channel
,
$dialline
->
server
);
}
else
{
$callStat
=
CRMCall
::
where
(
"did"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
whereIn
(
'state'
,[
'DialBegin'
,
'DialEnd'
])
->
get
();
if
(
$callStat
!=
"[]"
)
{
$newqueue
->
playbusyfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
}
}
}
}
}
}
function
isHoliday
()
{
return
false
;
}
function
isNonWorkingTime
()
{
return
(
$this
->
isSunday
()
||
$this
->
isNonWorkingHours
()
);
}
function
isSunday
()
{
return
(
date
(
'N'
)
==
7
);
}
function
isNonWorkingHours
()
{
return
(
time
()
<
strtotime
(
'03:30:00'
)
||
time
()
>
strtotime
(
'13:30:00'
));
}
private
function
VarSetEvent
(
EventMessage
$event
)
{
$eventname
=
$event
->
getKey
(
"Event"
);
...
...
@@ -1000,23 +1024,29 @@ class KPAMIListen implements IEventListener
$crmcall
->
data
=
json_encode
(
$tdata
);
$crmcall
->
save
();
$userStatus
=
User
::
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
where
(
"exten"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"usertype"
,
"!="
,
"Admin"
)
->
where
(
'presence'
,
'='
,
'1'
)
->
select
(
'*'
)
->
get
();
if
(
$userStatus
==
"[]"
)
{
$newqueue
=
new
Kqueue
();
$newqueue
->
playbusyfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
$callStat
=
CRMCall
::
where
(
"did"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
whereIn
(
'state'
,[
'DialBegin'
,
'DialEnd'
])
->
get
();
$newqueue
=
new
Kqueue
();
if
(
$callStat
!=
"[]"
)
{
if
(
$this
->
isHoliday
()
)
{
// TODO: Handle Holidays here
}
elseif
(
$this
->
isNonWorkingTime
()
)
{
$newqueue
=
new
Kqueue
();
$newqueue
->
playbusyfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
$newqueue
->
playafterhrsfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
else
{
$userStatus
=
User
::
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
where
(
"exten"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"usertype"
,
"!="
,
"Admin"
)
->
where
(
'presence'
,
'='
,
'1'
)
->
select
(
'*'
)
->
get
();
if
(
$userStatus
==
"[]"
)
{
$newqueue
->
playabsencefile
(
$dialline
->
channel
,
$dialline
->
server
);
}
else
{
$callStat
=
CRMCall
::
where
(
"did"
,
"like"
,
"%"
.
substr
(
$exten
,
-
4
)
.
"%"
)
->
where
(
"updated_at"
,
">"
,
date
(
"Y-m-d"
))
->
whereIn
(
'state'
,[
'DialBegin'
,
'DialEnd'
])
->
get
();
if
(
$callStat
!=
"[]"
)
{
$newqueue
->
playbusyfile
(
$dialline
->
channel
,
$dialline
->
server
);
}
}
}
}
}
...
...
application/app/Models/Kqueue.php
View file @
e10aa96
...
...
@@ -229,11 +229,11 @@ class Kqueue extends Model{
$this
->
data
=
json_encode
(
$odata
);
$this
->
save
();
}
public
function
play
hangup
file
(
$fromext
,
$server
)
public
function
play
afterhrs
file
(
$fromext
,
$server
)
{
$odata
=
array
();
$odata
[
'VARS'
]
=
array
();
$odata
[
'fromext'
]
=
$fromext
;
$odata
[
'context'
]
=
"kstych
PlayHang
File"
;
$odata
[
'context'
]
=
"kstych
After
File"
;
$odata
[
'callerid'
]
=
""
;
$odata
[
'toext'
]
=
"3001"
;
$odata
[
'account'
]
=
""
;
...
...
application/public/assets/extras/data/asterisk/extensions.conf
View file @
e10aa96
...
...
@@ -40,18 +40,25 @@ exten => _1002XXX!,n,Hangup
[
kstychDialerINB
]
exten
=>
_
X
!,
1
,
Answer
exten
=>
_
X
!,
n
,
GotoIfTime
(
12
:
58
-
03
:
58
,
mon
-
sat
?
aftrhrs
,
1
)
exten
=>
_
X
!,
n
,
GotoIfTime
(
00
:
00
-
23
:
59
,
sun
?
afterhrs
,
1
)
;
exten
=>
_
X
!,
n
,
GotoIfTime
(
12
:
58
-
03
:
58
,
mon
-
sat
?
aftrhrs
,
1
)
;
exten
=>
_
X
!,
n
,
GotoIfTime
(
00
:
00
-
23
:
59
,
sun
?
afterhrs
,
1
)
exten
=>
_
X
!,
n
,
Set
(
CONFBRIDGE
(
user
,
music_on_hold_when_empty
)=
yes
)
exten
=>
_
X
!,
n
,
MixMonitor
(/
var
/
spool
/
asterisk
/
astrec
/${
STRFTIME
(${
EPOCH
},,%
Y
/%
m
/%
d
)}/
inb
/
inbound_
${
STRFTIME
(${
EPOCH
},
Asia
/
Kolkata
,%
Y
%
m
%
d
-%
H
%
M
%
S
)}
_
${
CALLERID
(
num
)}
_
${
EXTEN
}
_
${
UNIQUEID
}.
gsm
,
av
(
0
)
V
(
0
))
exten
=>
_
X
!,
n
,
ConfBridge
(${
CHANNEL
})
exten
=>
_
X
!,
n
,
Hangup
exten
=>
aftrhrs
,
1
,
Playback
(/
var
/
lib
/
asterisk
/
sounds
/
audio_holiday_vrm_V2
)
exten
=>
aftrhrs
,
n
,
Hangup
;
exten
=>
aftrhrs
,
1
,
Playback
(/
var
/
lib
/
asterisk
/
sounds
/
audio_holiday_vrm_V2
)
;
exten
=>
aftrhrs
,
n
,
Hangup
;
exten
=>
afterhrs
,
1
,
Playback
(/
var
/
lib
/
asterisk
/
sounds
/
audio_holiday_vrm_V2
)
;
exten
=>
aftrhrs
,
n
,
Hangup
[
kstychAfterFile
]
exten
=>
3001
,
1
,
Answer
exten
=>
3001
,
n
,
Playback
(
silence
/
1
)
exten
=>
3001
,
n
,
Playback
(/
var
/
lib
/
asterisk
/
sounds
/
audio_holiday_vrm_V2
)
exten
=>
3001
,
n
,
Hangup
exten
=>
afterhrs
,
1
,
Playback
(/
var
/
lib
/
asterisk
/
sounds
/
audio_holiday_vrm_V2
)
exten
=>
aftrhrs
,
n
,
Hangup
[
kstychPlayFile
]
exten
=>
1001
,
1
,
Answer
...
...
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