|
|
@@ -30,25 +30,30 @@ func HandleAMI(event map[string]string) {
|
|
|
case "DTMFBegin": //ICP interrupt PAD
|
|
|
|
|
|
if utils.IsICP(event["CallerIDNum"]) {
|
|
|
- exten := strings.Split(strings.Split(event["Channel"], "/")[1], "-")[0] //get ICP exten number
|
|
|
- if utils.IsICP(exten) {
|
|
|
- chans, err := CoreShowChannels()
|
|
|
- if err != nil {
|
|
|
- lfshook.NewLogger().Errorf("CoreShowChannels %+v", err)
|
|
|
- }
|
|
|
+ //exten := strings.Split(strings.Split(event["Channel"], "/")[1], "-")[0] //get ICP exten number
|
|
|
+ //if utils.IsICP(exten) {
|
|
|
+ chans, err := CoreShowChannels()
|
|
|
+ if err != nil {
|
|
|
+ lfshook.NewLogger().Errorf("CoreShowChannels %+v", err)
|
|
|
+ }
|
|
|
|
|
|
- //1. Redirect the connected PAD to 0300
|
|
|
- for _, ret := range chans {
|
|
|
- //lfshook.NewLogger().Infof("===HangupRunningTask=PAD1====Chans-ret===%+v==== ", ret)
|
|
|
- if utils.IsPAIU(ret.CallerIDNum) && ret.ChannelStateDesc == "Up" && utils.IsICP(ret.ConnectedLineNum) { //hangup pad call ICP channel
|
|
|
- //lfshook.NewLogger().Infof("===Hangup=Chan===%+v==== ", ret.Channel)
|
|
|
- Hangup(ret.Channel)
|
|
|
- } else if ret.ConnectedLineNum == "<unknown>" { //redirect pad chanspy channel
|
|
|
+ //1. Redirect the connected PAD to 0300
|
|
|
+ for _, ret := range chans {
|
|
|
+ //lfshook.NewLogger().Infof("===HangupRunningTask=PAD1====Chans-ret===%+v==== ", ret)
|
|
|
+ //hangup pad call ICP channel
|
|
|
+ if utils.IsPAIU(ret.CallerIDNum) {
|
|
|
+ if ret.ConnectedLineNum == "<unknown>" { //redirect pad chanspy channel
|
|
|
//lfshook.NewLogger().Infof("===Redirect=Chan===%+v==== ", ret.Channel)
|
|
|
- err := Redirect(ret.Channel, "0300", "default", exten, "PAD")
|
|
|
+ err := Redirect(ret.Channel, "0300", "default", "", "PAD")
|
|
|
if err != nil {
|
|
|
lfshook.NewLogger().Errorf("Redirect %+v", err)
|
|
|
}
|
|
|
+
|
|
|
+ number := strings.Split(strings.Split(ret.Channel, "-")[0], "/")[1]
|
|
|
+ active.NotifyPaiu(number, "hold")
|
|
|
+ } else if utils.IsPAIU(ret.CallerIDNum) && ret.ChannelStateDesc == "Up" && utils.IsICP(ret.ConnectedLineNum) {
|
|
|
+ lfshook.NewLogger().Infof("===Hangup=Chan===%+v==== ", ret.Channel)
|
|
|
+ Hangup(ret.Channel)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -197,9 +202,13 @@ func HandleAMI(event map[string]string) {
|
|
|
if priority.CheckPriority("CabCab") {
|
|
|
|
|
|
if priority.RunningType == "PA" || priority.RunningType == "PAD-ICP" || priority.RunningType == "PAD-TMS" {
|
|
|
+ lfshook.NewLogger().Infof("=======HangupRunningTask====%s", event["CallerIDNum"])
|
|
|
HangupRunningTask("C2C") //C2C interrupt other
|
|
|
+ // } else if priority.RunningType == "CPA" {
|
|
|
+
|
|
|
} else {
|
|
|
//Hangup the other ICP
|
|
|
+ lfshook.NewLogger().Infof("========CabCab hangup other one====%s", event["CallerIDNum"])
|
|
|
if event["CallerIDNum"] == "2311" {
|
|
|
Hangup("2381")
|
|
|
} else {
|
|
|
@@ -207,6 +216,7 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
}
|
|
|
} else { // hangup caller; C2C start failed
|
|
|
+ lfshook.NewLogger().Infof("========CabCab hangup caller====%s", event["CallerIDNum"])
|
|
|
Hangup(event["CallerIDNum"])
|
|
|
}
|
|
|
}
|
|
|
@@ -302,6 +312,8 @@ func HandleAMI(event map[string]string) {
|
|
|
if priority.PADStart == 1 {
|
|
|
alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
|
|
|
priority.PADStart = 0
|
|
|
+
|
|
|
+ priority.CleanPriorityTag()
|
|
|
}
|
|
|
/*if priority.ResumeEmgPara.FileName != "" {
|
|
|
CheckEmgResume()
|