|
@@ -17,8 +17,6 @@ import (
|
|
|
|
|
|
|
|
var AminInstance *amigo.Amigo
|
|
var AminInstance *amigo.Amigo
|
|
|
|
|
|
|
|
-//type Operation func(src, dst string, whisper, bargein bool)
|
|
|
|
|
-
|
|
|
|
|
func HandleAMI(event map[string]string) {
|
|
func HandleAMI(event map[string]string) {
|
|
|
//lfshook.NewLogger().Infof("===start======%s", event["Event"])
|
|
//lfshook.NewLogger().Infof("===start======%s", event["Event"])
|
|
|
//return if not actived
|
|
//return if not actived
|
|
@@ -28,60 +26,91 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
|
|
switch event["Event"] {
|
|
switch event["Event"] {
|
|
|
|
|
|
|
|
- case "UserEvent":
|
|
|
|
|
|
|
+ case "UserEvent": // RCD filename; PA;CPA; CabCab
|
|
|
lfshook.NewLogger().Infof("========event:%s File:%s", event["Event"], event["FILENAME"])
|
|
lfshook.NewLogger().Infof("========event:%s File:%s", event["Event"], event["FILENAME"])
|
|
|
if event["UserEvent"] == "SetRecordFile" { //get record file name
|
|
if event["UserEvent"] == "SetRecordFile" { //get record file name
|
|
|
alstatus.SendRecordFile(event["FILENAME"], event["RecordType"])
|
|
alstatus.SendRecordFile(event["FILENAME"], event["RecordType"])
|
|
|
- } else if event["UserEvent"] == "CallType" && event["Type"] == "PA" { //check manual PA priority
|
|
|
|
|
- if priority.CheckPriority("ManuPa") {
|
|
|
|
|
- HangupAll()
|
|
|
|
|
|
|
+
|
|
|
|
|
+ } else if event["UserEvent"] == "CallType" && (event["Type"] == "PA" || event["Type"] == "CPA") { //PA; check manual PA priority
|
|
|
|
|
+ //check active signal before PA
|
|
|
|
|
+ if active.CabNum == "1" && !active.Actived && event["CallerIDNum"] == "2311" {
|
|
|
|
|
+ Hangup(event["CallerIDNum"])
|
|
|
|
|
+ } else if active.CabNum == "8" && !active.Actived && event["CallerIDNum"] == "2381" {
|
|
|
|
|
+ Hangup(event["CallerIDNum"])
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //PA & CPA interrupt others
|
|
|
|
|
+ if utils.IsICP(event["CallerIDNum"]) {
|
|
|
|
|
+ if priority.CheckPriority("ManuPa") {
|
|
|
|
|
+ //hangup others if priority is higher
|
|
|
|
|
+ HangupRunningTask()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Hangup(event["CallerIDNum"]) //lowwer priority ,hangup caller
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if utils.IsIO(event["CallerIDNum"]) { // CPA
|
|
|
|
|
+ if priority.CheckPriority("CPA") {
|
|
|
|
|
+ //hangup others if priority is higher
|
|
|
|
|
+ HangupRunningTask()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Hangup(event["CallerIDNum"]) //lowwer priority ,hangup caller
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- } else if event["UserEvent"] == "CallType" && event["Type"] == "C2C" { //check cab cab priority
|
|
|
|
|
|
|
+ } else if event["UserEvent"] == "CallType" && event["Type"] == "C2C" { //CabCab; check cab cab priority
|
|
|
|
|
+
|
|
|
if priority.CheckPriority("CabCab") {
|
|
if priority.CheckPriority("CabCab") {
|
|
|
- HangupAll()
|
|
|
|
|
|
|
+ HangupRunningTask()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "Newchannel":
|
|
case "Newchannel":
|
|
|
- lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
|
+ //lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) && event["Exten"] == "0300" { // Alarm dial queue start; PAD dialing
|
|
if utils.IsPAIU(event["CallerIDNum"]) && event["Exten"] == "0300" { // Alarm dial queue start; PAD dialing
|
|
|
- priority.RunningType, _ = strconv.Atoi(priority.Priority.PADICP)
|
|
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "start")
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "dial")
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "dial")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "SoftHangupRequest": //pre-recored broadcast end
|
|
case "SoftHangupRequest": //pre-recored broadcast end
|
|
|
- lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
|
+ //lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if event["CallerIDName"] == "EMG" && event["Exten"] == "0502" { // EMG broadcast hangup
|
|
if event["CallerIDName"] == "EMG" && event["Exten"] == "0502" { // EMG broadcast hangup
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
|
|
+
|
|
|
alstatus.PaStatus(event["CallerIDName"], "EMG", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "EMG", "end")
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "STN" && event["Exten"] == "0503" {
|
|
} else if event["CallerIDName"] == "STN" && event["Exten"] == "0503" {
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
priority.SpecialVoice = 0
|
|
priority.SpecialVoice = 0
|
|
|
alstatus.PaStatus(event["CallerIDName"], "STN", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "STN", "end")
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "DCS" && event["Exten"] == "0504" {
|
|
} else if event["CallerIDName"] == "DCS" && event["Exten"] == "0504" {
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
alstatus.PaStatus(event["CallerIDName"], "DCS", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "DCS", "end")
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "SPC" && event["Exten"] == "0505" {
|
|
} else if event["CallerIDName"] == "SPC" && event["Exten"] == "0505" {
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
alstatus.PaStatus(event["CallerIDName"], "SPC", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "SPC", "end")
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "CHK" && event["Exten"] == "0510" {
|
|
} else if event["CallerIDName"] == "CHK" && event["Exten"] == "0510" {
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
alstatus.PaStatus(event["CallerIDName"], "CHK", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "CHK", "end")
|
|
|
|
|
+ } else if event["CallerIDName"] == "VOL" && event["Exten"] == "0510" {
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDName"], "VOL", "end")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "Hangup":
|
|
case "Hangup":
|
|
|
|
|
|
|
|
- lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
|
+ //lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsPACU(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) { // TMS-ICP answer PAD, hangup
|
|
if utils.IsPACU(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) { // TMS-ICP answer PAD, hangup
|
|
|
res, _ := QueueStatus("0300", "") // check ICP queue ,if empty PAD end
|
|
res, _ := QueueStatus("0300", "") // check ICP queue ,if empty PAD end
|
|
|
if res.Calls == "0" {
|
|
if res.Calls == "0" {
|
|
|
priority.ICPAnswer = 0
|
|
priority.ICPAnswer = 0
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -91,7 +120,7 @@ func HandleAMI(event map[string]string) {
|
|
|
res, _ := QueueStatus("0300", "") // check ICP queue ,if empty PAD end
|
|
res, _ := QueueStatus("0300", "") // check ICP queue ,if empty PAD end
|
|
|
if res.Calls == "0" {
|
|
if res.Calls == "0" {
|
|
|
priority.ICPAnswer = 0
|
|
priority.ICPAnswer = 0
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -101,7 +130,7 @@ func HandleAMI(event map[string]string) {
|
|
|
res, _ := QueueStatus("0300", "") // check ICP queue ,if empty PAD end
|
|
res, _ := QueueStatus("0300", "") // check ICP queue ,if empty PAD end
|
|
|
if res.Calls == "0" {
|
|
if res.Calls == "0" {
|
|
|
priority.ICPAnswer = 0
|
|
priority.ICPAnswer = 0
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -112,15 +141,15 @@ func HandleAMI(event map[string]string) {
|
|
|
res, _ := QueueStatus("0301", "") // check OCC queue ,if empty PAD end
|
|
res, _ := QueueStatus("0301", "") // check OCC queue ,if empty PAD end
|
|
|
if res.Calls == "0" { //OCC queue is empty
|
|
if res.Calls == "0" { //OCC queue is empty
|
|
|
priority.OCCAnswer = 0
|
|
priority.OCCAnswer = 0
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
alstatus.OccPad("end")
|
|
alstatus.OccPad("end")
|
|
|
break
|
|
break
|
|
|
} else { //OCC queue is not empty
|
|
} else { //OCC queue is not empty
|
|
|
|
|
|
|
|
- if active.CabNum == "1" && active.Actived && ExtenStatus("1411") == "Idle" { //check active and OCC status
|
|
|
|
|
|
|
+ if active.CabNum == "1" && active.Actived && alstatus.GetExtenStat("1411") == "Idle" { //check active and OCC status
|
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", event["CallerIDNum"], "1") // PACUs dial OCC1
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", event["CallerIDNum"], "1") // PACUs dial OCC1
|
|
|
//goto ConfbridgeJoin, OCC1 answer PAD
|
|
//goto ConfbridgeJoin, OCC1 answer PAD
|
|
|
- } else if active.CabNum == "8" && active.Actived && ExtenStatus("1481") == "Idle" {
|
|
|
|
|
|
|
+ } else if active.CabNum == "8" && active.Actived && alstatus.GetExtenStat("1481") == "Idle" {
|
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", event["CallerIDNum"], "8") // PACUs dial OCC8
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", event["CallerIDNum"], "8") // PACUs dial OCC8
|
|
|
//goto ConfbridgeJoin, OCC8 answer PAD
|
|
//goto ConfbridgeJoin, OCC8 answer PAD
|
|
|
}
|
|
}
|
|
@@ -130,6 +159,7 @@ func HandleAMI(event map[string]string) {
|
|
|
case "QueueCallerJoin":
|
|
case "QueueCallerJoin":
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if priority.OCCAnswer == 1 && event["Queue"] == "0300" { //New PAD Goto the OCC queue in the first time, if OCC answered
|
|
if priority.OCCAnswer == 1 && event["Queue"] == "0300" { //New PAD Goto the OCC queue in the first time, if OCC answered
|
|
|
|
|
+ alstatus.AlarmStatus(event["CallerIDNum"], "queue") //send status to STC
|
|
|
go RedirectInQueue(event["CallerIDNum"], "0301", "queues-occ", "")
|
|
go RedirectInQueue(event["CallerIDNum"], "0301", "queues-occ", "")
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -161,16 +191,19 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//first PAD caller goto OCC
|
|
//first PAD caller goto OCC
|
|
|
|
|
+ //PACUs dial OCC;
|
|
|
|
|
+ //PAD chanspy(WqE) OCC;
|
|
|
|
|
+ //ICPs chanspy(qE) PAD;
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) && event["Queue"] == "0301" && priority.OCCAnswer == 0 { // The first PAD to OCC ,caller is PAD
|
|
if utils.IsPAIU(event["CallerIDNum"]) && event["Queue"] == "0301" && priority.OCCAnswer == 0 { // The first PAD to OCC ,caller is PAD
|
|
|
- if active.CabNum == "1" && active.Actived && ExtenStatus("1411") == "Idle" { //check active and OCC status
|
|
|
|
|
|
|
+ if active.CabNum == "1" && active.Actived && alstatus.GetExtenStat("1411") == "Idle" { //check active and OCC status
|
|
|
priority.OCCAnswer = 1
|
|
priority.OCCAnswer = 1
|
|
|
alstatus.OccPad("start")
|
|
alstatus.OccPad("start")
|
|
|
- priority.RunningType, _ = strconv.Atoi(priority.Priority.PADOCC) //Set running priority
|
|
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADOCC) //Set running priority
|
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", event["CallerIDNum"], "1") // PACUs dial OCC1
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", event["CallerIDNum"], "1") // PACUs dial OCC1
|
|
|
//Goto event=ConfbridgeJoin;OCC answer PAD
|
|
//Goto event=ConfbridgeJoin;OCC answer PAD
|
|
|
- } else if active.CabNum == "8" && active.Actived && ExtenStatus("1481") == "Idle" {
|
|
|
|
|
|
|
+ } else if active.CabNum == "8" && active.Actived && alstatus.GetExtenStat("1481") == "Idle" {
|
|
|
priority.OCCAnswer = 1
|
|
priority.OCCAnswer = 1
|
|
|
- priority.RunningType, _ = strconv.Atoi(priority.Priority.PADOCC) //Set running priority
|
|
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADOCC) //Set running priority
|
|
|
alstatus.OccPad("start")
|
|
alstatus.OccPad("start")
|
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", event["CallerIDNum"], "8") // PACUs dial OCC8
|
|
Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", event["CallerIDNum"], "8") // PACUs dial OCC8
|
|
|
//Goto event=ConfbridgeJoin;OCC answer PAD
|
|
//Goto event=ConfbridgeJoin;OCC answer PAD
|
|
@@ -179,25 +212,82 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
|
|
case "ConfbridgeJoin":
|
|
case "ConfbridgeJoin":
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
+ //Send PA start msg to STC
|
|
|
if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0500" { // PA start
|
|
if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0500" { // PA start
|
|
|
lfshook.NewLogger().Infof("====PA status:%s=====", "start")
|
|
lfshook.NewLogger().Infof("====PA status:%s=====", "start")
|
|
|
- priority.RunningType, _ = strconv.Atoi(priority.Priority.ManuPa)
|
|
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.ManuPa)
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PA"
|
|
|
break
|
|
break
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA start
|
|
|
|
|
|
|
+ } else if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA start
|
|
|
lfshook.NewLogger().Infof("====CPA status:%s=====", "start")
|
|
lfshook.NewLogger().Infof("====CPA status:%s=====", "start")
|
|
|
- priority.RunningType, _ = strconv.Atoi(priority.Priority.CPA)
|
|
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.CPA)
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "CPA"
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //set priority and send PA status msg
|
|
|
|
|
+ switch event["CallerIDName"] {
|
|
|
|
|
+ case "EMG":
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDNum"], "EMG", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "EMG"
|
|
|
|
|
+ //Pa status report
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.EMG)
|
|
|
|
|
+ alstatus.PaStatus("", "EMG", "start")
|
|
|
|
|
+
|
|
|
|
|
+ case "SPC":
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDNum"], "SPC", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "SPC"
|
|
|
|
|
+ //Pa status report
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.SPC)
|
|
|
|
|
+ alstatus.PaStatus("", "EMG", "start")
|
|
|
|
|
+
|
|
|
|
|
+ case "DCS":
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDNum"], "DCS", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "DCS"
|
|
|
|
|
+ //Pa status report
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.DCS)
|
|
|
|
|
+ alstatus.PaStatus("", "EMG", "start")
|
|
|
|
|
+
|
|
|
|
|
+ case "STN":
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDNum"], "STN", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "STN"
|
|
|
|
|
+ //Pa status report
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.STN)
|
|
|
|
|
+ alstatus.PaStatus("", "STN", "start")
|
|
|
|
|
+
|
|
|
|
|
+ case "CHK":
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDNum"], "CHK", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "CHK"
|
|
|
|
|
+ //Pa status report
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.CHK)
|
|
|
|
|
+ alstatus.PaStatus("", "CHK", "start")
|
|
|
|
|
+
|
|
|
|
|
+ case "VOL":
|
|
|
|
|
+ alstatus.PaStatus(event["CallerIDNum"], "VOL", "start")
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "VOL"
|
|
|
|
|
+ //Pa status report
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.VOL)
|
|
|
|
|
+ alstatus.PaStatus("", "VOL", "start")
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//ICP answer PAD;
|
|
//ICP answer PAD;
|
|
|
if event["ConnectedLineNum"] == "ani1" && event["Exten"] == "0511" { //PAD answered by ICP; PACUs connected ICP1
|
|
if event["ConnectedLineNum"] == "ani1" && event["Exten"] == "0511" { //PAD answered by ICP; PACUs connected ICP1
|
|
|
lfshook.NewLogger().Infof("====PAD answered by ICP1:%s=====", event["ConnectedLineName"])
|
|
lfshook.NewLogger().Infof("====PAD answered by ICP1:%s=====", event["ConnectedLineName"])
|
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
|
|
|
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PAD-ICP"
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADICP)
|
|
|
go RedirectInQueue(event["ConnectedLineName"], "2311", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP1
|
|
go RedirectInQueue(event["ConnectedLineName"], "2311", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP1
|
|
|
go Dial("0402", event["ConnectedLineName"], "chanspy-rule", event["ConnectedLineName"], event["ConnectedLineName"], "8") //ICP8 chanspy PAD
|
|
go Dial("0402", event["ConnectedLineName"], "chanspy-rule", event["ConnectedLineName"], event["ConnectedLineName"], "8") //ICP8 chanspy PAD
|
|
|
//goto event=ChanSpyStart; PAD whisper ICP8
|
|
//goto event=ChanSpyStart; PAD whisper ICP8
|
|
@@ -207,6 +297,9 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("====PAD answered by ICP8:%s=====", event["ConnectedLineName"])
|
|
lfshook.NewLogger().Infof("====PAD answered by ICP8:%s=====", event["ConnectedLineName"])
|
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
|
|
|
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PAD-ICP"
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADICP)
|
|
|
go RedirectInQueue(event["ConnectedLineName"], "2381", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP8
|
|
go RedirectInQueue(event["ConnectedLineName"], "2381", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP8
|
|
|
go Dial("0402", event["ConnectedLineName"], "chanspy-rule", event["ConnectedLineName"], event["ConnectedLineName"], "1") //ICP1 chanspy PAD
|
|
go Dial("0402", event["ConnectedLineName"], "chanspy-rule", event["ConnectedLineName"], event["ConnectedLineName"], "1") //ICP1 chanspy PAD
|
|
|
//goto event=ChanSpyStart; PAD whisper ICP1
|
|
//goto event=ChanSpyStart; PAD whisper ICP1
|
|
@@ -218,6 +311,9 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("====PAD answered by OCC1:%s=====", event["ConnectedLineName"])
|
|
lfshook.NewLogger().Infof("====PAD answered by OCC1:%s=====", event["ConnectedLineName"])
|
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
|
|
|
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PAD-OCC"
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADOCC)
|
|
|
go RedirectInQueue(event["ConnectedLineName"], "1411", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) IO1
|
|
go RedirectInQueue(event["ConnectedLineName"], "1411", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) IO1
|
|
|
//goto event=ChanSpyStart; ICPs spy PAD
|
|
//goto event=ChanSpyStart; ICPs spy PAD
|
|
|
break
|
|
break
|
|
@@ -226,6 +322,9 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("====PAD answered by OCC8:%s=====", event["ConnectedLineName"])
|
|
lfshook.NewLogger().Infof("====PAD answered by OCC8:%s=====", event["ConnectedLineName"])
|
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
|
|
|
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PAD-OCC"
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADOCC)
|
|
|
go RedirectInQueue(event["ConnectedLineName"], "1481", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) IO8
|
|
go RedirectInQueue(event["ConnectedLineName"], "1481", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) IO8
|
|
|
//goto event=ChanSpyStart; ICPs spy PAD
|
|
//goto event=ChanSpyStart; ICPs spy PAD
|
|
|
break
|
|
break
|
|
@@ -234,7 +333,7 @@ func HandleAMI(event map[string]string) {
|
|
|
case "ChanSpyStart":
|
|
case "ChanSpyStart":
|
|
|
lfshook.NewLogger().Infof("=========event:%s callerid:%s SpyeeConnectedLineName:%s SpyerExten:%s", event["Event"], event["CallerIDNum"], event["SpyeeConnectedLineName"], event["SpyerExten"])
|
|
lfshook.NewLogger().Infof("=========event:%s callerid:%s SpyeeConnectedLineName:%s SpyerExten:%s", event["Event"], event["CallerIDNum"], event["SpyeeConnectedLineName"], event["SpyerExten"])
|
|
|
//PAD answered by OCC; ICPs chanspy PAD
|
|
//PAD answered by OCC; ICPs chanspy PAD
|
|
|
- if utils.IsPAIU(event["SpyeeConnectedLineName"]) && utils.IsIO(event["SpyerExten"]) { // check if it is PAD whisper IO
|
|
|
|
|
|
|
+ if utils.IsPAIU(event["SpyeeConnectedLineName"]) && utils.IsIO(event["SpyerExten"]) { // check if it is PAD whisper IO/OCC
|
|
|
go Dial("0404", event["SpyeeConnectedLineName"], "chanspy-rule", "ano", "ano", "") //ICPs chanspy PAD
|
|
go Dial("0404", event["SpyeeConnectedLineName"], "chanspy-rule", "ano", "ano", "") //ICPs chanspy PAD
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -242,37 +341,46 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0500" { // PA end
|
|
if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0500" { // PA end
|
|
|
lfshook.NewLogger().Infof("====PA status =====%s", "end")
|
|
lfshook.NewLogger().Infof("====PA status =====%s", "end")
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
|
|
+ priority.RunningPATaskChan = ""
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "end")
|
|
|
}
|
|
}
|
|
|
if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA end
|
|
if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA end
|
|
|
lfshook.NewLogger().Infof("====CPA status =====%s", "end")
|
|
lfshook.NewLogger().Infof("====CPA status =====%s", "end")
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
|
|
+ priority.RunningPATaskChan = ""
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "end")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "DialEnd":
|
|
case "DialEnd":
|
|
|
- lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
|
+ //lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
//Cab Cab start
|
|
//Cab Cab start
|
|
|
if utils.IsICP(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) && event["DialStatus"] == "ANSWER" {
|
|
if utils.IsICP(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) && event["DialStatus"] == "ANSWER" {
|
|
|
- priority.RunningType, _ = strconv.Atoi(priority.Priority.CabCab)
|
|
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.CabCab)
|
|
|
|
|
+ priority.RunningType = "C2C"
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "C2C", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "C2C", "start")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "BridgeLeave":
|
|
case "BridgeLeave":
|
|
|
- lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
|
+ //lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
//Cab Cab end
|
|
//Cab Cab end
|
|
|
if utils.IsICP(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) && event["Exten"] == "0400" {
|
|
if utils.IsICP(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) && event["Exten"] == "0400" {
|
|
|
- priority.RunningType = 0
|
|
|
|
|
|
|
+ priority.RunningTypePriority = 0
|
|
|
|
|
+ priority.RunningType = ""
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "C2C", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "C2C", "end")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "ExtensionStatus":
|
|
case "ExtensionStatus":
|
|
|
- lfshook.NewLogger().Infof("=========event:%s Ext:%s status:%s ", event["Event"], event["extension"], event["StatusText"])
|
|
|
|
|
|
|
+ //lfshook.NewLogger().Infof("=========event:%s Ext:%s status:%s ", event["Event"], event["Exten"], event["StatusText"])
|
|
|
|
|
|
|
|
//update extension status
|
|
//update extension status
|
|
|
if event["StatusText"] == "Idle" || event["StatusText"] == "Unavailable" {
|
|
if event["StatusText"] == "Idle" || event["StatusText"] == "Unavailable" {
|
|
|
if len(event["Exten"]) > 3 && utils.IsPAIU(event["Exten"]) {
|
|
if len(event["Exten"]) > 3 && utils.IsPAIU(event["Exten"]) {
|
|
|
|
|
+ //alstatus.ExtenStatMap[event["Exten"]] = event["StatusText"]
|
|
|
|
|
+ alstatus.SetExtenStat(event["Exten"], event["StatusText"])
|
|
|
|
|
+ //lfshook.NewLogger().Infof("======Extension Map : %+v==============", alstatus.ExtenStatMap)
|
|
|
alstatus.AlarmStatus(event["Exten"], event["StatusText"]) // PAD idle + unavailable
|
|
alstatus.AlarmStatus(event["Exten"], event["StatusText"]) // PAD idle + unavailable
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -284,6 +392,9 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("====BridgeEnter==IN action===%s===ID:%s Name:%s", event["Event"], event["CallerIDNum"], event["CallerIDName"])
|
|
lfshook.NewLogger().Infof("====BridgeEnter==IN action===%s===ID:%s Name:%s", event["Event"], event["CallerIDNum"], event["CallerIDName"])
|
|
|
alstatus.AlarmStatus(event["CallerIDName"], "connect") // Alarm connected
|
|
alstatus.AlarmStatus(event["CallerIDName"], "connect") // Alarm connected
|
|
|
|
|
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PAD-TMS"
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADTMS)
|
|
|
if active.CabNum == "1" && active.Actived {
|
|
if active.CabNum == "1" && active.Actived {
|
|
|
go RedirectInQueue(event["CallerIDName"], "2311", "chanspy-rule-whisper", "") //PAD chanspy(EqW) ICP1
|
|
go RedirectInQueue(event["CallerIDName"], "2311", "chanspy-rule-whisper", "") //PAD chanspy(EqW) ICP1
|
|
|
go Dial("0403", event["CallerIDName"], "chanspy-rule", "2381", "2381", "8") //ICP8---chanspy----PAD
|
|
go Dial("0403", event["CallerIDName"], "chanspy-rule", "2381", "2381", "8") //ICP8---chanspy----PAD
|
|
@@ -292,6 +403,10 @@ func HandleAMI(event map[string]string) {
|
|
|
go Dial("0403", event["CallerIDName"], "chanspy-rule", "2311", "2311", "1") //ICP1---chanspy----PAD
|
|
go Dial("0403", event["CallerIDName"], "chanspy-rule", "2311", "2311", "1") //ICP1---chanspy----PAD
|
|
|
}
|
|
}
|
|
|
} else if utils.IsPAIU(event["CallerIDNum"]) { // PAD connect ICP-TMS;PACU not available
|
|
} else if utils.IsPAIU(event["CallerIDNum"]) { // PAD connect ICP-TMS;PACU not available
|
|
|
|
|
+
|
|
|
|
|
+ priority.RunningPATaskChan = event["Channel"]
|
|
|
|
|
+ priority.RunningType = "PAD-TMS"
|
|
|
|
|
+ priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADTMS)
|
|
|
lfshook.NewLogger().Infof("====send pad status=====")
|
|
lfshook.NewLogger().Infof("====send pad status=====")
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "connect") // PAD connect ICP-TMS
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "connect") // PAD connect ICP-TMS
|
|
|
}
|
|
}
|