|
|
@@ -68,6 +68,11 @@ func HandleAMI(event map[string]string) {
|
|
|
Hangup(event["CallerIDNum"])
|
|
|
}
|
|
|
|
|
|
+ active.WaitTaskCreate("PA")
|
|
|
+ if active.TaskCreating == "" {
|
|
|
+ active.TaskCreating = "PA"
|
|
|
+ }
|
|
|
+
|
|
|
if priority.CheckPriority("ManuPa") {
|
|
|
|
|
|
//hangup others if priority is higher
|
|
|
@@ -82,6 +87,11 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
|
|
|
} else if utils.IsIO(event["CallerIDNum"]) { // CPA
|
|
|
+ active.WaitTaskCreate("CPA")
|
|
|
+ if active.TaskCreating == "" {
|
|
|
+ active.TaskCreating = "CPA"
|
|
|
+ }
|
|
|
+
|
|
|
if priority.CheckPriority("CPA") {
|
|
|
|
|
|
lfshook.NewLogger().Infof("========event:%s ========devide:%d", event["Event"], active.TrainDevide)
|
|
|
@@ -96,6 +106,7 @@ func HandleAMI(event map[string]string) {
|
|
|
Hangup(event["CallerIDNum"])
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//hangup others if priority is higher
|
|
|
runningTaskName := InterruptRunningTask("CPA") //CPA interrupt other
|
|
|
if runningTaskName != "" {
|
|
|
@@ -107,6 +118,11 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
} else if event["UserEvent"] == "CallType" && event["Type"] == "C2C" { //CabCab start; check cab cab priority
|
|
|
|
|
|
+ active.WaitTaskCreate("C2C")
|
|
|
+ if active.TaskCreating == "" {
|
|
|
+ active.TaskCreating = "C2C"
|
|
|
+ }
|
|
|
+
|
|
|
if priority.CheckPriority("CabCab") { // interrupt OCC-PAD
|
|
|
//C2C start PAD interrupt
|
|
|
|
|
|
@@ -115,6 +131,7 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("HighestPriorityRunningTask get task :%+v", taskName)
|
|
|
if ok {
|
|
|
if taskName == "PAD-ICP" || taskName == "PAD-TMS" || taskName == "PA" {
|
|
|
+
|
|
|
runningTaskName := InterruptRunningTask("C2C")
|
|
|
if runningTaskName != "" {
|
|
|
time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
@@ -556,6 +573,11 @@ func HandleAMI(event map[string]string) {
|
|
|
//PAD Page OCC+ICPs;
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) && event["Queue"] == "0301" && priority.OCCAnswer == 0 { // The first PAD to OCC ,caller is PAD
|
|
|
|
|
|
+ active.WaitTaskCreate("PAD-OCC")
|
|
|
+ if active.TaskCreating == "" {
|
|
|
+ active.TaskCreating = "PAD-OCC"
|
|
|
+ }
|
|
|
+
|
|
|
if priority.CheckPriority("PAD-OCC") {
|
|
|
|
|
|
runningTaskName := InterruptRunningTask("PAD-OCC") //PAD-OCC interrupt other
|
|
|
@@ -597,6 +619,11 @@ func HandleAMI(event map[string]string) {
|
|
|
} else {
|
|
|
lfshook.NewLogger().Infof("====PAD-OCC Priority false===")
|
|
|
}
|
|
|
+
|
|
|
+ time.Sleep(1 * time.Second)
|
|
|
+ if active.TaskCreating == "PAD-OCC" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
case "ConfbridgeJoin":
|
|
|
@@ -615,6 +642,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: event["Conference"],
|
|
|
Running: true,
|
|
|
}
|
|
|
+ if active.TaskCreating == "EMG" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
priority.RegistryTask.Register("EMG", task)
|
|
|
|
|
|
alstatus.PaStatus("", "EMG", "start")
|
|
|
@@ -642,6 +672,10 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: event["Conference"],
|
|
|
Running: true,
|
|
|
}
|
|
|
+ if active.TaskCreating == "SPC" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
priority.RegistryTask.Register("SPC", task)
|
|
|
alstatus.PaStatus("", "SPC", "start")
|
|
|
|
|
|
@@ -669,6 +703,10 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: event["Conference"],
|
|
|
Running: true,
|
|
|
}
|
|
|
+ if active.TaskCreating == "DCS" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
priority.RegistryTask.Register("DCS", task)
|
|
|
alstatus.PaStatus("", "DCS", "start")
|
|
|
//check PAD timer
|
|
|
@@ -696,6 +734,10 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: event["Conference"],
|
|
|
Running: true,
|
|
|
}
|
|
|
+ if active.TaskCreating == "STN" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
priority.RegistryTask.Register("STN", task)
|
|
|
alstatus.PaStatus("", "STN", "start")
|
|
|
|
|
|
@@ -724,6 +766,10 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: event["Conference"],
|
|
|
Running: true,
|
|
|
}
|
|
|
+ if active.TaskCreating == "CHK" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
priority.RegistryTask.Register("CHK", task)
|
|
|
alstatus.PaStatus("", "CHK", "start")
|
|
|
|
|
|
@@ -750,6 +796,10 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: event["Conference"],
|
|
|
Running: true,
|
|
|
}
|
|
|
+ if active.TaskCreating == "VOL" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
priority.RegistryTask.Register("VOL", task)
|
|
|
alstatus.PaStatus("", "VOL", "start")
|
|
|
|
|
|
@@ -776,6 +826,10 @@ func HandleAMI(event map[string]string) {
|
|
|
*/
|
|
|
//Send PA start msg to STC
|
|
|
if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0500" { // PA start
|
|
|
+ if active.TaskCreating == "PA" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "start")
|
|
|
//================================
|
|
|
task := priority.TaskInfo{
|
|
|
@@ -801,6 +855,11 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
break
|
|
|
} else if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA start
|
|
|
+
|
|
|
+ if active.TaskCreating == "CPA" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "start")
|
|
|
//================================
|
|
|
task := priority.TaskInfo{
|
|
|
@@ -844,6 +903,10 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-ICP", task)
|
|
|
+ if active.TaskCreating == "PAD-ICP" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
lfshook.NewLogger().Infof("=========PAD-ICP answer==ListAll===%+v", priority.RegistryTask.ListAll())
|
|
|
go RedirectInQueue(event["ConnectedLineName"], "2311", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP1
|
|
|
|
|
|
@@ -865,6 +928,10 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-ICP", task)
|
|
|
+ if active.TaskCreating == "PAD-ICP" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
lfshook.NewLogger().Infof("=========PAD-ICP answer==ListAll===%+v", priority.RegistryTask.ListAll())
|
|
|
go RedirectInQueue(event["ConnectedLineName"], "2381", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP8
|
|
|
|
|
|
@@ -1083,6 +1150,7 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: "",
|
|
|
Running: true,
|
|
|
}
|
|
|
+ active.TaskCreating = ""
|
|
|
priority.RegistryTask.Register("C2C", task)
|
|
|
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "C2C", "start")
|
|
|
@@ -1126,7 +1194,9 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-TMS", task)
|
|
|
-
|
|
|
+ if active.TaskCreating == "PAD-TMS" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
lfshook.NewLogger().Infof("=========PAD-TMS answer==ListAll===%+v", priority.RegistryTask.ListAll())
|
|
|
|
|
|
if active.ActivedCab == "1" {
|
|
|
@@ -1187,6 +1257,11 @@ func HandleAMI(event map[string]string) {
|
|
|
//PAD-OCC start
|
|
|
if utils.IsIO(event["CallerIDNum"]) && utils.IsPAIU(event["ConnectedLineNum"]) {
|
|
|
if priority.PADOccStart == 0 {
|
|
|
+
|
|
|
+ if active.TaskCreating == "PAD-OCC" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
+
|
|
|
alstatus.OccPad("start")
|
|
|
priority.PADOccStart = 1
|
|
|
}
|
|
|
@@ -1236,6 +1311,9 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-TMS", task)
|
|
|
+ if active.TaskCreating == "PAD-TMS" {
|
|
|
+ active.TaskCreating = ""
|
|
|
+ }
|
|
|
lfshook.NewLogger().Infof("=========PAD-TMS answer==ListAll===%+v", priority.RegistryTask.ListAll())
|
|
|
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "connect") // PAD connect ICP-TMS
|