|
|
@@ -89,7 +89,7 @@ func HandleAMI(event map[string]string) {
|
|
|
if priority.CheckPriority("CabCab") { // interrupt OCC-PAD
|
|
|
//C2C start PAD interrupt
|
|
|
|
|
|
- taskName, _, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, _, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
|
|
|
lfshook.NewLogger().Infof("=======HighestPriorityRunningTask %+v", ok)
|
|
|
if ok {
|
|
|
@@ -235,7 +235,7 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check resume
|
|
|
priority.RegistryTask.StopAndUnregister("PAD-OCC")
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "EMG" {
|
|
|
EMGConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -338,7 +338,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("PAD-OCC")
|
|
|
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "EMG" {
|
|
|
EMGConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -387,7 +387,7 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("==2=QueueCallerJoin===runing:%d=====toRun:=%d==Status:%s", taskTmp, toRunpriority, event["ChannelStateDesc"])
|
|
|
|
|
|
//if (priority.RunningTypePriority > toRunpriority || priority.RunningTypePriority == 0) && event["ChannelStateDesc"] != "Up" {
|
|
|
-
|
|
|
+ active.SetTimer = true
|
|
|
active.QueueTimer = time.AfterFunc(30*time.Second, func() { // check the PAD 30s timeout
|
|
|
|
|
|
res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
|
@@ -485,7 +485,10 @@ func HandleAMI(event map[string]string) {
|
|
|
alstatus.PaStatus("", "EMG", "start")
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.EMG.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
|
@@ -506,7 +509,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.SPC.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
|
@@ -526,7 +532,10 @@ func HandleAMI(event map[string]string) {
|
|
|
alstatus.PaStatus("", "DCS", "start")
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.DCS.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
|
@@ -548,7 +557,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.STN.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
|
@@ -570,7 +582,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.CHK.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
@@ -590,7 +605,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.VOL.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
|
@@ -620,7 +638,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.PA.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
break
|
|
|
@@ -640,7 +661,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.CPA.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
|
@@ -715,13 +739,12 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0500" { // PA end
|
|
|
|
|
|
- SetPadTimer()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "end")
|
|
|
|
|
|
priority.RegistryTask.StopAndUnregister("PA")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
// check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "EMG" {
|
|
|
EMGConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -730,22 +753,8 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //lfshook.NewLogger().Infof("====active.EMGCONFID:%s ====active.ICPCONBID:=%s", active.EMGCONFID, active.ICPCONBID)
|
|
|
- /*
|
|
|
- if priority.AllTasks.EMG.ConfbridgeID != "" {
|
|
|
-
|
|
|
- time.Sleep(time.Millisecond * 300)
|
|
|
- EMGConfbridgeReinvite(priority.AllTasks.EMG.ConfbridgeID)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if active.ICPCONBID != "" {
|
|
|
- ConfbridgeKick(active.ICPCONBID, "all")
|
|
|
- active.ICPCONBID = ""
|
|
|
- }*/
|
|
|
} else if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0501" { //CPA end
|
|
|
|
|
|
- SetPadTimer()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "end")
|
|
|
|
|
|
//CPA
|
|
|
@@ -754,9 +763,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("CPA")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "EMG" {
|
|
|
EMGConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -766,7 +775,6 @@ func HandleAMI(event map[string]string) {
|
|
|
//lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
} else if event["CallerIDName"] == "EMG" && event["Exten"] == "0502" { // EMG broadcast hangup
|
|
|
|
|
|
- SetPadTimer()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "EMG", "end")
|
|
|
|
|
|
//EMG
|
|
|
@@ -775,9 +783,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("EMG")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "CPA" {
|
|
|
CPAConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -786,7 +794,6 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
} else if event["CallerIDName"] == "STN" && event["Exten"] == "0503" {
|
|
|
|
|
|
- SetPadTimer()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "STN", "end")
|
|
|
|
|
|
//STN
|
|
|
@@ -795,9 +802,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("STN")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "CPA" {
|
|
|
CPAConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -808,7 +815,6 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
} else if event["CallerIDName"] == "DCS" && event["Exten"] == "0504" {
|
|
|
|
|
|
- SetPadTimer()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "DCS", "end")
|
|
|
|
|
|
//DSC
|
|
|
@@ -817,9 +823,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("DCS")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "CPA" {
|
|
|
CPAConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -830,7 +836,6 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
} else if event["CallerIDName"] == "SPC" && event["Exten"] == "0505" {
|
|
|
|
|
|
- SetPadTimer()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "SPC", "end")
|
|
|
|
|
|
//SPC
|
|
|
@@ -839,9 +844,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("SPC")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "CPA" {
|
|
|
CPAConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -851,7 +856,7 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
|
|
|
} else if event["CallerIDName"] == "CHK" && event["Exten"] == "0510" {
|
|
|
- SetPadTimer()
|
|
|
+
|
|
|
alstatus.PaStatus(event["CallerIDName"], "CHK", "end")
|
|
|
|
|
|
//CHK
|
|
|
@@ -860,9 +865,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("CHK")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "CPA" {
|
|
|
CPAConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -872,7 +877,7 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
|
|
|
} else if event["CallerIDName"] == "VOL" && event["Exten"] == "0513" {
|
|
|
- SetPadTimer()
|
|
|
+
|
|
|
alstatus.PaStatus(event["CallerIDName"], "VOL", "end")
|
|
|
|
|
|
//VOL
|
|
|
@@ -881,9 +886,9 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
}
|
|
|
priority.RegistryTask.StopAndUnregister("VOL")
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
if taskName == "CPA" {
|
|
|
CPAConfbridgeReinvite(task.ConfbridgeID)
|
|
|
@@ -913,7 +918,10 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
//check PAD timer
|
|
|
if priority.AllTasks.PADOCC.Priority > priority.AllTasks.C2C.Priority {
|
|
|
- active.QueueTimer.Stop()
|
|
|
+ if active.SetTimer {
|
|
|
+ active.QueueTimer.Stop()
|
|
|
+ active.SetTimer = false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
} else if utils.IsICP(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) && event["DialStatus"] == "NOANSWER" {
|
|
|
@@ -923,7 +931,7 @@ func HandleAMI(event map[string]string) {
|
|
|
time.Sleep(time.Millisecond * 300)
|
|
|
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
ICPConfbridgeReinvite(task.ConfbridgeID, taskName)
|
|
|
}
|
|
|
@@ -933,13 +941,13 @@ func HandleAMI(event map[string]string) {
|
|
|
//lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
//Cab Cab end
|
|
|
if utils.IsICP(event["CallerIDNum"]) && utils.IsICP(event["ConnectedLineNum"]) && event["Exten"] == "0400" {
|
|
|
- SetPadTimer()
|
|
|
+
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "C2C", "end")
|
|
|
priority.RegistryTask.StopAndUnregister("C2C")
|
|
|
time.Sleep(time.Millisecond * 300)
|
|
|
-
|
|
|
+ SetPadTimer()
|
|
|
//check resume
|
|
|
- taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask()
|
|
|
+ taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
|
ICPConfbridgeReinvite(task.ConfbridgeID, taskName)
|
|
|
}
|
|
|
@@ -961,6 +969,7 @@ func HandleAMI(event map[string]string) {
|
|
|
if utils.IsIO(event["CallerIDNum"]) && utils.IsPAIU(event["ConnectedLineNum"]) {
|
|
|
if priority.PADOccStart == 0 {
|
|
|
alstatus.OccPad("start")
|
|
|
+
|
|
|
priority.PADOccStart = 1
|
|
|
if priority.PADStart == 0 {
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "start")
|
|
|
@@ -974,7 +983,7 @@ func HandleAMI(event map[string]string) {
|
|
|
ConfbridgeID: "",
|
|
|
Running: true,
|
|
|
}
|
|
|
- priority.RegistryTask.Register("PAD-TMS", task)
|
|
|
+ priority.RegistryTask.Register("PAD-OCC", task)
|
|
|
}
|
|
|
}
|
|
|
}
|