|
@@ -32,7 +32,7 @@ func HandleAMI(event map[string]string) {
|
|
|
alstatus.SendRecordFile(event["FILENAME"], event["RecordType"])
|
|
alstatus.SendRecordFile(event["FILENAME"], event["RecordType"])
|
|
|
|
|
|
|
|
} else if event["UserEvent"] == "CallType" && (event["Type"] == "PA" || event["Type"] == "CPA") { //PA start; check manual PA priority
|
|
} else if event["UserEvent"] == "CallType" && (event["Type"] == "PA" || event["Type"] == "CPA") { //PA start; check manual PA priority
|
|
|
- //check active signal before PA
|
|
|
|
|
|
|
+ //check active signal before PA; hangup if not actived
|
|
|
if active.CabNum == "1" && !active.Actived && event["CallerIDNum"] == "2311" {
|
|
if active.CabNum == "1" && !active.Actived && event["CallerIDNum"] == "2311" {
|
|
|
Hangup(event["CallerIDNum"])
|
|
Hangup(event["CallerIDNum"])
|
|
|
} else if active.CabNum == "8" && !active.Actived && event["CallerIDNum"] == "2381" {
|
|
} else if active.CabNum == "8" && !active.Actived && event["CallerIDNum"] == "2381" {
|
|
@@ -50,6 +50,14 @@ func HandleAMI(event map[string]string) {
|
|
|
|
|
|
|
|
} else if utils.IsIO(event["CallerIDNum"]) { // CPA
|
|
} else if utils.IsIO(event["CallerIDNum"]) { // CPA
|
|
|
if priority.CheckPriority("CPA") {
|
|
if priority.CheckPriority("CPA") {
|
|
|
|
|
+
|
|
|
|
|
+ //check active signal before CPA; hangup if not actived
|
|
|
|
|
+ if active.CabNum == "1" && !active.Actived && event["CallerIDNum"] == "1411" {
|
|
|
|
|
+ Hangup(event["CallerIDNum"])
|
|
|
|
|
+ } else if active.CabNum == "8" && !active.Actived && event["CallerIDNum"] == "1481" {
|
|
|
|
|
+ Hangup(event["CallerIDNum"])
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//hangup others if priority is higher
|
|
//hangup others if priority is higher
|
|
|
if priority.RunningType != "C2C" {
|
|
if priority.RunningType != "C2C" {
|
|
|
HangupRunningTask("CPA") //CPA interrupt other
|
|
HangupRunningTask("CPA") //CPA interrupt other
|
|
@@ -92,26 +100,33 @@ func HandleAMI(event map[string]string) {
|
|
|
if event["CallerIDName"] == "EMG" && event["Exten"] == "0502" { // EMG broadcast hangup
|
|
if event["CallerIDName"] == "EMG" && event["Exten"] == "0502" { // EMG broadcast hangup
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "EMG", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "EMG", "end")
|
|
|
|
|
+ priority.ResumeEmgPara = priority.BroadcastResumeParas{}
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "STN" && event["Exten"] == "0503" {
|
|
} else if event["CallerIDName"] == "STN" && event["Exten"] == "0503" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "STN", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "STN", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "DCS" && event["Exten"] == "0504" {
|
|
} else if event["CallerIDName"] == "DCS" && event["Exten"] == "0504" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "DCS", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "DCS", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "SPC" && event["Exten"] == "0505" {
|
|
} else if event["CallerIDName"] == "SPC" && event["Exten"] == "0505" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "SPC", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "SPC", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
|
|
|
} else if event["CallerIDName"] == "CHK" && event["Exten"] == "0510" {
|
|
} else if event["CallerIDName"] == "CHK" && event["Exten"] == "0510" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "CHK", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "CHK", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
|
|
|
- } else if event["CallerIDName"] == "VOL" && event["Exten"] == "0510" {
|
|
|
|
|
|
|
+ } else if event["CallerIDName"] == "VOL" && event["Exten"] == "0513" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDName"], "VOL", "end")
|
|
alstatus.PaStatus(event["CallerIDName"], "VOL", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "Hangup":
|
|
case "Hangup":
|
|
@@ -123,6 +138,7 @@ func HandleAMI(event map[string]string) {
|
|
|
if res.Calls == "0" {
|
|
if res.Calls == "0" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
//priority.ICPAnswer = 0
|
|
//priority.ICPAnswer = 0
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -134,6 +150,7 @@ func HandleAMI(event map[string]string) {
|
|
|
if res.Calls == "0" {
|
|
if res.Calls == "0" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
//priority.ICPAnswer = 0
|
|
//priority.ICPAnswer = 0
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -145,6 +162,7 @@ func HandleAMI(event map[string]string) {
|
|
|
if res.Calls == "0" {
|
|
if res.Calls == "0" {
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
//priority.ICPAnswer = 0
|
|
//priority.ICPAnswer = 0
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
@@ -157,6 +175,7 @@ func HandleAMI(event map[string]string) {
|
|
|
if res.Calls == "0" { //OCC queue is empty
|
|
if res.Calls == "0" { //OCC queue is empty
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.OccPad("end")
|
|
alstatus.OccPad("end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
//priority.OCCAnswer = 0
|
|
//priority.OCCAnswer = 0
|
|
|
break
|
|
break
|
|
|
} else { //OCC queue is not empty
|
|
} else { //OCC queue is not empty
|
|
@@ -188,12 +207,14 @@ func HandleAMI(event map[string]string) {
|
|
|
res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
lfshook.NewLogger().Infof("===OCC-QueueStatus==%+v", err)
|
|
lfshook.NewLogger().Infof("===OCC-QueueStatus==%+v", err)
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
if res.Calls == "0" { // OCC queue empty
|
|
if res.Calls == "0" { // OCC queue empty
|
|
|
|
|
|
|
|
resCaller, err := QueueStatus("0300", "") // check ICP queue, get entries
|
|
resCaller, err := QueueStatus("0300", "") // check ICP queue, get entries
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- lfshook.NewLogger().Infof("===QueueStatus==%+v", err)
|
|
|
|
|
|
|
+ lfshook.NewLogger().Infof("==ICP=QueueStatus==%+v", err)
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
for _, caller := range resCaller.Entrys {
|
|
for _, caller := range resCaller.Entrys {
|
|
@@ -261,7 +282,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RunningType = "SPC"
|
|
priority.RunningType = "SPC"
|
|
|
//Pa status report
|
|
//Pa status report
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.SPC)
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.SPC)
|
|
|
- alstatus.PaStatus("", "EMG", "start")
|
|
|
|
|
|
|
+ alstatus.PaStatus("", "SPC", "start")
|
|
|
|
|
|
|
|
case "DCS":
|
|
case "DCS":
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "DCS", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "DCS", "start")
|
|
@@ -269,7 +290,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RunningType = "DCS"
|
|
priority.RunningType = "DCS"
|
|
|
//Pa status report
|
|
//Pa status report
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.DCS)
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.DCS)
|
|
|
- alstatus.PaStatus("", "EMG", "start")
|
|
|
|
|
|
|
+ alstatus.PaStatus("", "DCS", "start")
|
|
|
|
|
|
|
|
case "STN":
|
|
case "STN":
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "STN", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "STN", "start")
|
|
@@ -287,7 +308,7 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.CHK)
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.CHK)
|
|
|
alstatus.PaStatus("", "CHK", "start")
|
|
alstatus.PaStatus("", "CHK", "start")
|
|
|
|
|
|
|
|
- case "VOL":
|
|
|
|
|
|
|
+ case "VOL": // tone-test
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "VOL", "start")
|
|
alstatus.PaStatus(event["CallerIDNum"], "VOL", "start")
|
|
|
priority.RunningPATaskChan = event["Channel"]
|
|
priority.RunningPATaskChan = event["Channel"]
|
|
|
priority.RunningType = "VOL"
|
|
priority.RunningType = "VOL"
|
|
@@ -359,11 +380,15 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("====PA status =====%s", "end")
|
|
lfshook.NewLogger().Infof("====PA status =====%s", "end")
|
|
|
priority.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "PA", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
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.CleanPriorityTag()
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "end")
|
|
alstatus.PaStatus(event["CallerIDNum"], "CPA", "end")
|
|
|
|
|
+ CheckEmgResume()
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "DialEnd":
|
|
case "DialEnd":
|