|
@@ -151,11 +151,25 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //hangup others if priority is higher
|
|
|
|
|
- runningTaskName := InterruptRunningTask("CPA") //CPA interrupt other
|
|
|
|
|
- if runningTaskName != "" {
|
|
|
|
|
- time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
|
|
|
|
+ //CPA 发起之前检查是否有更高优先级任务在运行,有则不发起CPA
|
|
|
|
|
+ taskName, task, _ := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
|
|
+ if len(taskName) > 0 && task.Priority < priority.AllTasks.CPA.Priority {
|
|
|
|
|
+ utils.LoggerDebug.Printf("CPA : other task running , return !")
|
|
|
|
|
+ Hangup(event["CallerIDNum"])
|
|
|
|
|
+ priority.CPAActived = 0
|
|
|
|
|
+ if priority.TaskCreating == "CPA" {
|
|
|
|
|
+ utils.LoggerDebug.Printf("CPA : Clean priority.TaskCreating = '' !")
|
|
|
|
|
+ priority.TaskCreating = ""
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //hangup others if priority is higher
|
|
|
|
|
+ runningTaskName := InterruptRunningTask("CPA") //CPA interrupt other
|
|
|
|
|
+ if runningTaskName != "" {
|
|
|
|
|
+ time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
} else {
|
|
} else {
|
|
|
if priority.TaskCreating == "CPA" {
|
|
if priority.TaskCreating == "CPA" {
|
|
|
utils.LoggerDebug.Printf("CPA : Clean priority.TaskCreating = '' !")
|
|
utils.LoggerDebug.Printf("CPA : Clean priority.TaskCreating = '' !")
|
|
@@ -378,7 +392,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("PAD-OCC")
|
|
priority.RegistryTask.StopAndUnregister("PAD-OCC")
|
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
ConfbridgeKick(taskTmp.ConfbridgeID, "all")
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
|
|
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
@@ -517,7 +531,7 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if priority.OCCAnswer == 0 { // not OCC-PAD
|
|
if priority.OCCAnswer == 0 { // not OCC-PAD
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
utils.LoggerDebug.Printf("======================================")
|
|
utils.LoggerDebug.Printf("======================================")
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
@@ -554,6 +568,14 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "h" && event["ConnectedLineNum"] == "<unknown>" {
|
|
|
|
|
+ utils.LoggerDebug.Printf("CABCAB Canceled by ICP !")
|
|
|
|
|
+
|
|
|
|
|
+ if priority.TaskCreating == "C2C" {
|
|
|
|
|
+ utils.LoggerDebug.Printf("C2C : Clean priority.TaskCreating = '' !")
|
|
|
|
|
+ priority.TaskCreating = ""
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
case "QueueCallerJoin":
|
|
case "QueueCallerJoin":
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
|
@@ -1006,6 +1028,8 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
Running: true,
|
|
|
}
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-ICP", task)
|
|
priority.RegistryTask.Register("PAD-ICP", task)
|
|
|
|
|
+
|
|
|
|
|
+ alstatus.PaStatus("", "PAD", "start")
|
|
|
if priority.TaskCreating == "PAD-ICP" {
|
|
if priority.TaskCreating == "PAD-ICP" {
|
|
|
utils.LoggerDebug.Printf("PAD-ICP Connected : Clean priority.TaskCreating = '' !")
|
|
utils.LoggerDebug.Printf("PAD-ICP Connected : Clean priority.TaskCreating = '' !")
|
|
|
priority.TaskCreating = ""
|
|
priority.TaskCreating = ""
|
|
@@ -1032,6 +1056,8 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
Running: true,
|
|
|
}
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-ICP", task)
|
|
priority.RegistryTask.Register("PAD-ICP", task)
|
|
|
|
|
+
|
|
|
|
|
+ alstatus.PaStatus("", "PAD", "start")
|
|
|
if priority.TaskCreating == "PAD-ICP" {
|
|
if priority.TaskCreating == "PAD-ICP" {
|
|
|
utils.LoggerDebug.Printf("PAD-ICP Connected : Clean priority.TaskCreating = '' !")
|
|
utils.LoggerDebug.Printf("PAD-ICP Connected : Clean priority.TaskCreating = '' !")
|
|
|
priority.TaskCreating = ""
|
|
priority.TaskCreating = ""
|
|
@@ -1076,7 +1102,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("PA")
|
|
priority.RegistryTask.StopAndUnregister("PA")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
// check resume
|
|
// check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1103,7 +1129,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("CPA")
|
|
priority.RegistryTask.StopAndUnregister("CPA")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1125,7 +1151,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("EMG")
|
|
priority.RegistryTask.StopAndUnregister("EMG")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1146,7 +1172,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("STN")
|
|
priority.RegistryTask.StopAndUnregister("STN")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1169,7 +1195,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("DCS")
|
|
priority.RegistryTask.StopAndUnregister("DCS")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1192,7 +1218,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("SPC")
|
|
priority.RegistryTask.StopAndUnregister("SPC")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1215,7 +1241,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("CHK")
|
|
priority.RegistryTask.StopAndUnregister("CHK")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1238,7 +1264,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RegistryTask.StopAndUnregister("VOL")
|
|
priority.RegistryTask.StopAndUnregister("VOL")
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1311,6 +1337,8 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
Running: true,
|
|
|
}
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-TMS", task)
|
|
priority.RegistryTask.Register("PAD-TMS", task)
|
|
|
|
|
+
|
|
|
|
|
+ alstatus.PaStatus("", "PAD", "start")
|
|
|
if priority.TaskCreating == "PAD-TMS" {
|
|
if priority.TaskCreating == "PAD-TMS" {
|
|
|
utils.LoggerDebug.Printf("PAD-TMS Connected : Clean priority.TaskCreating = '' !")
|
|
utils.LoggerDebug.Printf("PAD-TMS Connected : Clean priority.TaskCreating = '' !")
|
|
|
priority.TaskCreating = ""
|
|
priority.TaskCreating = ""
|
|
@@ -1338,7 +1366,7 @@ func HandleAMI(event map[string]string) {
|
|
|
//time.Sleep(time.Millisecond * 100)
|
|
//time.Sleep(time.Millisecond * 100)
|
|
|
SetPadTimer()
|
|
SetPadTimer()
|
|
|
|
|
|
|
|
- time.Sleep(time.Millisecond * 900) //wait CPA Active
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 350) //wait CPA Active
|
|
|
//check resume
|
|
//check resume
|
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
taskName, task, ok := priority.RegistryTask.HighestPriorityRunningTask1()
|
|
|
if ok {
|
|
if ok {
|
|
@@ -1423,6 +1451,8 @@ func HandleAMI(event map[string]string) {
|
|
|
Running: true,
|
|
Running: true,
|
|
|
}
|
|
}
|
|
|
priority.RegistryTask.Register("PAD-TMS", task)
|
|
priority.RegistryTask.Register("PAD-TMS", task)
|
|
|
|
|
+
|
|
|
|
|
+ alstatus.PaStatus("", "PAD", "start")
|
|
|
if priority.TaskCreating == "PAD-TMS" {
|
|
if priority.TaskCreating == "PAD-TMS" {
|
|
|
utils.LoggerDebug.Printf("PAD-TMS Connected : Clean priority.TaskCreating = '' !")
|
|
utils.LoggerDebug.Printf("PAD-TMS Connected : Clean priority.TaskCreating = '' !")
|
|
|
priority.TaskCreating = ""
|
|
priority.TaskCreating = ""
|
|
@@ -1431,12 +1461,6 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "connect") // PAD connect ICP-TMS
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "connect") // PAD connect ICP-TMS
|
|
|
}
|
|
}
|
|
|
- case "NewConnectedLine": //PAD-ICP/PAD_TMS answered
|
|
|
|
|
- if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0402" && (event["ConnectedLineNum"] == "ani1" || event["ConnectedLineNum"] == "ani8") {
|
|
|
|
|
- alstatus.PaStatus("", "PAD", "start") //PAD-ICP icp connected pad
|
|
|
|
|
- } else if utils.IsICP(event["CallerIDNum"]) && event["Exten"] == "0403" && (utils.IsPACU(event["ConnectedLineNum"])) {
|
|
|
|
|
- alstatus.PaStatus("", "PAD", "start") //PAD-TMS icp connected pad
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|