Skip to content

Commit d9296c6

Browse files
fix(cdr): exclude satellite internal channels from call history (#351) (#352)
1 parent 82a0f3b commit d9296c6

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

root/usr/lib/node/nethcti-server/plugins/dbconn/plugins/dbconn_history.js

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,8 @@ function getHistoryCallInterval(data, cb) {
592592
'(cnum NOT IN (?) AND dst IN (?)) AND ' +
593593
'(calldate>=? AND calldate<=?) AND ' +
594594
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR ccompany LIKE ?)' +
595-
(data.removeLostCalls ? ' AND disposition NOT IN ("NO ANSWER","BUSY","FAILED")' : ''),
595+
(data.removeLostCalls ? ' AND disposition NOT IN ("NO ANSWER","BUSY","FAILED")' : '') +
596+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
596597
data.endpoints, data.endpoints,
597598
data.from, data.to,
598599
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%"
@@ -606,7 +607,8 @@ function getHistoryCallInterval(data, cb) {
606607
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR dst_cnam LIKE ? OR dst_ccompany LIKE ?)' +
607608
'AND (disposition NOT IN ("NO ANSWER","BUSY","FAILED")' +
608609
'OR (disposition IN ("NO ANSWER","BUSY","FAILED")' +
609-
'AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)))',
610+
'AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)))' +
611+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
610612
data.endpoints, data.endpoints,
611613
data.from, data.to,
612614
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%"
@@ -619,7 +621,8 @@ function getHistoryCallInterval(data, cb) {
619621
'(calldate>=? AND calldate<=?) AND ' +
620622
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR ccompany LIKE ?) AND ' +
621623
'disposition IN ("NO ANSWER","BUSY","FAILED")' +
622-
'AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)',
624+
'AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)' +
625+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
623626
data.endpoints, data.endpoints,
624627
data.from, data.to,
625628
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%"
@@ -632,7 +635,8 @@ function getHistoryCallInterval(data, cb) {
632635
'(calldate>=? AND calldate<=?) AND ' +
633636
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR dst_cnam LIKE ? OR ccompany LIKE ? OR dst_ccompany LIKE ?) AND ' +
634637
'(uniqueid,linkedid,disposition) NOT IN (SELECT uniqueid,linkedid,"NO ANSWER" disposition FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.uniqueid) AND ' +
635-
'((uniqueid,linkedid,channel,dstchannel) IN (SELECT uniqueid,linkedid,MAX(channel),MAX(dstchannel) FROM cdr AS b WHERE b.uniqueid = cdr.uniqueid AND b.linkedid = cdr.linkedid AND disposition = "NO ANSWER" ) OR disposition != "NO ANSWER")',
638+
'((uniqueid,linkedid,channel,dstchannel) IN (SELECT uniqueid,linkedid,MAX(channel),MAX(dstchannel) FROM cdr AS b WHERE b.uniqueid = cdr.uniqueid AND b.linkedid = cdr.linkedid AND disposition = "NO ANSWER" ) OR disposition != "NO ANSWER")' +
639+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
636640
data.endpoints, data.endpoints,
637641
data.from, data.to,
638642
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%",
@@ -805,7 +809,8 @@ function getHistorySwitchCallInterval(data, cb) {
805809
') AND ' +
806810
'(calldate>=? AND calldate<=?) AND ' +
807811
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR ccompany LIKE ?)' +
808-
(data.removeLostCalls ? ' AND disposition NOT IN ("NO ANSWER","BUSY","FAILED")' : ''),
812+
(data.removeLostCalls ? ' AND disposition NOT IN ("NO ANSWER","BUSY","FAILED")' : '') +
813+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
809814
data.trunks,
810815
data.from, data.to,
811816
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%"
@@ -816,7 +821,8 @@ function getHistorySwitchCallInterval(data, cb) {
816821
whereClause = [
817822
'dstchannel REGEXP ? AND ' +
818823
'(calldate>=? AND calldate<=?) AND ' +
819-
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR dst_cnam LIKE ? OR dst_ccompany LIKE ?)',
824+
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR dst_cnam LIKE ? OR dst_ccompany LIKE ?)' +
825+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
820826
data.trunks,
821827
data.from, data.to,
822828
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%"
@@ -833,7 +839,8 @@ function getHistorySwitchCallInterval(data, cb) {
833839
'dst IN ' + data.extens + ' AND ' +
834840
'(calldate>=? AND calldate<=?) AND ' +
835841
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR ccompany LIKE ? OR dst_cnam LIKE ? OR dst_ccompany LIKE ?) ' +
836-
'AND (disposition NOT IN ("NO ANSWER","BUSY","FAILED") OR (disposition IN ("NO ANSWER","BUSY","FAILED") AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)))',
842+
'AND (disposition NOT IN ("NO ANSWER","BUSY","FAILED") OR (disposition IN ("NO ANSWER","BUSY","FAILED") AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)))' +
843+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
837844
data.trunks, data.trunks,
838845
data.from, data.to,
839846
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%",
@@ -857,7 +864,8 @@ function getHistorySwitchCallInterval(data, cb) {
857864
'(calldate>=? AND calldate<=?) AND ' +
858865
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR ccompany LIKE ?) AND ' +
859866
'disposition IN ("NO ANSWER","BUSY","FAILED")' +
860-
'AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)',
867+
'AND linkedid NOT IN (SELECT uniqueid FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.linkedid)' +
868+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
861869
data.trunks,
862870
data.from, data.to,
863871
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%"
@@ -868,7 +876,8 @@ function getHistorySwitchCallInterval(data, cb) {
868876
'(calldate>=? AND calldate<=?) AND ' +
869877
'(cnum LIKE ? OR clid LIKE ? OR dst LIKE ? OR cnam LIKE ? OR ccompany LIKE ? OR dst_cnam LIKE ? OR dst_ccompany LIKE ?) AND ' +
870878
'(uniqueid,linkedid,disposition) NOT IN (SELECT uniqueid,linkedid,"NO ANSWER" disposition FROM cdr AS b WHERE disposition = "ANSWERED" AND b.uniqueid = cdr.uniqueid) AND ' +
871-
'((uniqueid,linkedid,channel,dstchannel) IN (SELECT uniqueid,linkedid,MAX(channel),MAX(dstchannel) FROM cdr AS b WHERE b.uniqueid = cdr.uniqueid AND b.linkedid = cdr.linkedid AND disposition = "NO ANSWER" ) OR disposition != "NO ANSWER")',
879+
'((uniqueid,linkedid,channel,dstchannel) IN (SELECT uniqueid,linkedid,MAX(channel),MAX(dstchannel) FROM cdr AS b WHERE b.uniqueid = cdr.uniqueid AND b.linkedid = cdr.linkedid AND disposition = "NO ANSWER" ) OR disposition != "NO ANSWER")' +
880+
' AND NOT (lastapp = "Stasis" AND lastdata = "satellite")',
872881
data.from, data.to,
873882
"%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%", "%" + data.filter + "%",
874883
"%" + data.filter + "%", "%" + data.filter + "%"

0 commit comments

Comments
 (0)