|
|
@@ -7,6 +7,7 @@ import (
|
|
|
"pbx-api-gin/internal/pkg/configs"
|
|
|
"pbx-api-gin/pkg/lfshook"
|
|
|
"pbx-api-gin/pkg/utils"
|
|
|
+ "sort"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
@@ -22,6 +23,27 @@ func HandleAMI(event map[string]string) {
|
|
|
//lfshook.NewLogger().Infof("===start======%s", event["Event"]
|
|
|
|
|
|
switch event["Event"] {
|
|
|
+ case "DTMFBegin":
|
|
|
+ if utils.IsICP(event["CallerIDNum"]) {
|
|
|
+ exten := strings.Split(strings.Split(event["Channel"], "/")[1], "-")[0]
|
|
|
+ if utils.IsICP(exten) {
|
|
|
+ chans, err := CoreShowChannels()
|
|
|
+ if err != nil {
|
|
|
+ lfshook.NewLogger().Errorf("CoreShowChannels %+v", err)
|
|
|
+ }
|
|
|
+ lfshook.NewLogger().Infof("===HangupRunningTask=PAD1=======%+v==== ", chans)
|
|
|
+ //1. Redirect the connected PAD to 0300
|
|
|
+ for _, ret := range chans {
|
|
|
+
|
|
|
+ if utils.IsPAIU(ret.CallerIDNum) && ret.ChannelStateDesc == "Up" && utils.IsPAIU(exten) {
|
|
|
+ err := Redirect(ret.Channel, "0300", "default", exten, "PAD")
|
|
|
+ if err != nil {
|
|
|
+ lfshook.NewLogger().Errorf("Redirect %+v", err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
case "UserEvent": // RCD filename; PA;CPA; CabCab
|
|
|
lfshook.NewLogger().Infof("========event:%s File:%s", event["Event"], event["FILENAME"])
|
|
|
@@ -98,13 +120,18 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
|
|
|
//OCC answer PAD, hangup, redirect the next PAD to OCC
|
|
|
- if (event["CallerIDNum"] == "ano1" || event["CallerIDNum"] == "ano8") && utils.IsIO(event["ConnectedLineNum"]) {
|
|
|
+ if utils.IsIO(event["CallerIDNum"]) && (event["ConnectedLineNum"] == "ano1" || event["ConnectedLineNum"] == "ano8") && event["Context"] == "default" {
|
|
|
+ lfshook.NewLogger().Infof("====Hangup OCC-PAD=====%+v", event)
|
|
|
+ // OCC hangup detected, hangup other running channels
|
|
|
HangupAllLocalChan()
|
|
|
+ Hangup(priority.RunningPATaskChan)
|
|
|
+
|
|
|
res, _ := QueueStatus("0301", "") // check OCC queue ,if empty PAD end
|
|
|
if res.Calls == "0" { //OCC queue is empty
|
|
|
priority.CleanPriorityTag()
|
|
|
alstatus.OccPad("end")
|
|
|
priority.OCCAnswer = 0
|
|
|
+ priority.PADOccStart = 0
|
|
|
|
|
|
if priority.ResumeEmgPara.FileName != "" {
|
|
|
time.Sleep(time.Second)
|
|
|
@@ -112,17 +139,47 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
break
|
|
|
} else { //OCC queue is not empty
|
|
|
- HangupAllLocalChan()
|
|
|
-
|
|
|
+ // HangupAllLocalChan()
|
|
|
+ lfshook.NewLogger().Infof("====Start OCC-PAD===next==%+v", res)
|
|
|
if active.ActivedCab == "1" && ExtenStatus("1411") == "Idle" { //check active and OCC status
|
|
|
time.Sleep(time.Second)
|
|
|
- Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", "ano1", "1") // PACUs dial OCC1
|
|
|
- //goto ConfbridgeJoin, OCC1 answer PAD
|
|
|
+ PADChan := ""
|
|
|
+ for _, chanEntry := range res.Entrys {
|
|
|
+ lfshook.NewLogger().Infof("====PAD answered by OCC1 pos:%s===chan:%s=", chanEntry.Position, chanEntry.Channel)
|
|
|
+ if chanEntry.Position == "1" {
|
|
|
+ PADChan = chanEntry.Channel
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if PADChan != "" {
|
|
|
+ alstatus.AlarmStatus(strings.Split(strings.Split(res.Entrys[0].Channel, "/")[1], "-")[0], "connect")
|
|
|
+ go RedirectInQueue(PADChan, "1411", "pad-page-occ-icp", "1") //PAD Page(OCC+ICPs)
|
|
|
+
|
|
|
+ go Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", "ano1", "1") // PACUs dial OCC1
|
|
|
+ } else {
|
|
|
+ lfshook.NewLogger().Infof("===OCC-QueueStatus==PADCchan NULL")
|
|
|
+ }
|
|
|
break
|
|
|
} else if active.ActivedCab == "8" && ExtenStatus("1481") == "Idle" {
|
|
|
time.Sleep(time.Second)
|
|
|
- Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", "ano8", "8") // PACUs dial OCC8
|
|
|
- //goto ConfbridgeJoin, OCC8 answer PAD
|
|
|
+ PADChan := ""
|
|
|
+ for _, chanEntry := range res.Entrys {
|
|
|
+ lfshook.NewLogger().Infof("====PAD answered by OCC1 pos:%s===chan:%s=", chanEntry.Position, chanEntry.Channel)
|
|
|
+ if chanEntry.Position == "1" {
|
|
|
+ PADChan = chanEntry.Channel
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if PADChan != "" {
|
|
|
+ alstatus.AlarmStatus(strings.Split(strings.Split(res.Entrys[0].Channel, "/")[1], "-")[0], "connect")
|
|
|
+ go RedirectInQueue(PADChan, "1481", "pad-page-occ-icp", "8") //PAD Page(OCC+ICPs)
|
|
|
+
|
|
|
+ go Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", "ano8", "8") // PACUs dial OCC1
|
|
|
+ } else {
|
|
|
+ lfshook.NewLogger().Infof("===OCC-QueueStatus==PADCchan NULL")
|
|
|
+ }
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
@@ -158,7 +215,7 @@ func HandleAMI(event map[string]string) {
|
|
|
break
|
|
|
}
|
|
|
|
|
|
- if utils.IsPAIU(event["CallerIDNum"]) && event["Queue"] == "0300" { // Alarm join the queue, PAD in the queue
|
|
|
+ if utils.IsPAIU(event["CallerIDNum"]) && utils.IsPAIU(event["CallerIDName"]) && event["Queue"] == "0300" { // Alarm join the queue, PAD in the queue
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "queue") //send status to STC
|
|
|
|
|
|
ICPQueue, err := QueueStatus("0300", "") // check ICP queue, get entries
|
|
|
@@ -184,11 +241,16 @@ func HandleAMI(event map[string]string) {
|
|
|
lfshook.NewLogger().Infof("==ICP=QueueStatus==%+v", err)
|
|
|
return
|
|
|
}
|
|
|
+ sort.Slice(resCaller.Entrys, func(i, j int) bool {
|
|
|
+ return resCaller.Entrys[i].Position < resCaller.Entrys[j].Position
|
|
|
+ })
|
|
|
+
|
|
|
for _, caller := range resCaller.Entrys {
|
|
|
priority.ICPAnswer = 0
|
|
|
- lfshook.NewLogger().Infof("====Redirect to 0301 entry:%s===", caller.CallerIDNum)
|
|
|
- go RedirectInQueue(caller.CallerIDNum, "0301", "queues-occ", caller.CallerIDNum) // redirect All ICP-PAD redirect to OCC queue
|
|
|
- time.Sleep(time.Microsecond * 200) //200 ms delay
|
|
|
+ lfshook.NewLogger().Infof("====Redirect to 0301 entry:%s=Pos:%s==", caller.CallerIDNum, caller.Position)
|
|
|
+ //order by pos
|
|
|
+ RedirectInQueue(caller.CallerIDNum, "0301", "queues-occ", caller.CallerIDNum) // redirect All ICP-PAD redirect to OCC queue
|
|
|
+ time.Sleep(time.Microsecond * 500) //200 ms delay
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
@@ -198,16 +260,15 @@ func HandleAMI(event map[string]string) {
|
|
|
}
|
|
|
|
|
|
//first PAD caller goto OCC
|
|
|
- //PACUs dial OCC;
|
|
|
- //PAD chanspy(WqE) OCC;
|
|
|
- //ICPs chanspy(qE) PAD;
|
|
|
+ //OCC dial PACUs;
|
|
|
+ //PAD Page OCC+ICPs;
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) && event["Queue"] == "0301" && priority.OCCAnswer == 0 { // The first PAD to OCC ,caller is PAD
|
|
|
|
|
|
if priority.CheckPriority("PAD-OCC") {
|
|
|
HangupRunningTask("PAD-OCC") //PAD-OCC interrupt other
|
|
|
priority.OCCAnswer = 1
|
|
|
|
|
|
- if active.ActivedCab == "1" && ExtenStatus("1411") == "Idle" { //check active and OCC status
|
|
|
+ if active.ActivedCab == "1" /* && ExtenStatus("1411") == "Idle" */ { //check active and OCC status
|
|
|
if priority.PADOccStart == 0 {
|
|
|
alstatus.OccPad("start")
|
|
|
priority.PADOccStart = 1
|
|
|
@@ -216,9 +277,36 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.PADStart = 1
|
|
|
}
|
|
|
}
|
|
|
- Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", "ano1", "1") // PACUs dial OCC1
|
|
|
- //Goto event=ConfbridgeJoin;OCC answer PAD
|
|
|
- } else if active.ActivedCab == "8" && ExtenStatus("1481") == "Idle" {
|
|
|
+
|
|
|
+ /*res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
|
+ if err != nil {
|
|
|
+ lfshook.NewLogger().Infof("===OCC-QueueStatus==%+v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ lfshook.NewLogger().Infof("===OCC-QueueStatus= res=%+v", res)
|
|
|
+
|
|
|
+ PADChan := ""
|
|
|
+ for _, chanEntry := range res.Entrys {
|
|
|
+ lfshook.NewLogger().Infof("====PAD answered by OCC1 pos:%s===chan:%s=", chanEntry.Position, chanEntry.Channel)
|
|
|
+ if chanEntry.Position == "1" {
|
|
|
+ PADChan = chanEntry.Channel
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ */
|
|
|
+ //if PADChan != "" {
|
|
|
+ //alstatus.AlarmStatus(strings.Split(strings.Split(res.Entrys[0].Channel, "/")[1], "-")[0], "connect")
|
|
|
+ alstatus.AlarmStatus(event["CallerIDNum"], "connect")
|
|
|
+ go RedirectInQueue(event["Channel"], "1411", "pad-page-occ-icp", "1") //PAD Page(OCC+ICPs)
|
|
|
+ //go RedirectInQueue(PADChan, "1411", "pad-page-occ-icp", "1") //PAD Page(OCC+ICPs)
|
|
|
+
|
|
|
+ go Dial("0401", "0512", "pad-rule-pacus-occ", "ano1", "ano1", "1") // PACUs dial OCC1
|
|
|
+ // } else {
|
|
|
+ // lfshook.NewLogger().Infof("===OCC-QueueStatus==PADCchan NULL")
|
|
|
+ //}
|
|
|
+
|
|
|
+ } else if active.ActivedCab == "8" /*&& ExtenStatus("1481") == "Idle" */ {
|
|
|
if priority.PADOccStart == 0 {
|
|
|
alstatus.OccPad("start")
|
|
|
priority.PADOccStart = 1
|
|
|
@@ -227,8 +315,29 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.PADStart = 1
|
|
|
}
|
|
|
}
|
|
|
- Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", "ano8", "8") // PACUs dial OCC8
|
|
|
- //Goto event=ConfbridgeJoin;OCC answer PAD
|
|
|
+ /* res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
|
+ if err != nil {
|
|
|
+ lfshook.NewLogger().Infof("===OCC-QueueStatus==%+v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ PADChan := ""
|
|
|
+ for _, chanEntry := range res.Entrys {
|
|
|
+ lfshook.NewLogger().Infof("====PAD answered by OCC1 pos:%s===chan:%s=", chanEntry.Position, chanEntry.Channel)
|
|
|
+ if chanEntry.Position == "1" {
|
|
|
+ PADChan = chanEntry.Channel
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ */
|
|
|
+ //if PADChan != "" {
|
|
|
+ //alstatus.AlarmStatus(strings.Split(strings.Split(res.Entrys[0].Channel, "/")[1], "-")[0], "connect")
|
|
|
+ //go RedirectInQueue(PADChan, "1481", "pad-page-occ-icp", "8") //PAD Page(OCC+ICPs);goto confbrdigeIoin
|
|
|
+ alstatus.AlarmStatus(event["CallerIDNum"], "connect")
|
|
|
+ go RedirectInQueue(event["Channel"], "1411", "pad-page-occ-icp", "1") //PAD Page(OCC+ICPs)
|
|
|
+ go Dial("0401", "0512", "pad-rule-pacus-occ", "ano8", "ano8", "8") // PACUs dial OCC1
|
|
|
+ //} else {
|
|
|
+ // lfshook.NewLogger().Infof("===OCC-QueueStatus==PADCchan NULL")
|
|
|
+ //}
|
|
|
}
|
|
|
} else {
|
|
|
lfshook.NewLogger().Infof("====PAD-OCC Priority false===")
|
|
|
@@ -313,7 +422,9 @@ func HandleAMI(event map[string]string) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //ICP answer PAD;
|
|
|
+ //ICP answer PAD;PACUs connected ICP
|
|
|
+ //PAD chanspy ICP1
|
|
|
+ //ICP8 call PAD
|
|
|
if event["ConnectedLineNum"] == "ani1" && event["Exten"] == "0511" { //PAD answered by ICP; PACUs connected ICP1
|
|
|
lfshook.NewLogger().Infof("====PAD answered by ICP1:%s=====", event["ConnectedLineName"])
|
|
|
alstatus.AlarmStatus(event["ConnectedLineName"], "connect")
|
|
|
@@ -321,10 +432,10 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RunningPATaskChan = event["Channel"]
|
|
|
priority.RunningType = "PAD-ICP"
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADICP)
|
|
|
- go RedirectInQueue(event["ConnectedLineName"], "2311", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP1
|
|
|
- go Dial("0402", event["ConnectedLineName"], "chanspy-rule", event["ConnectedLineName"], event["ConnectedLineName"], "8") //ICP8 chanspy PAD
|
|
|
- //goto event=ChanSpyStart; PAD whisper ICP8
|
|
|
- break
|
|
|
+ go RedirectInQueue(event["ConnectedLineName"], "2311", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP1
|
|
|
+
|
|
|
+ go Dial("0402", event["ConnectedLineName"], "call-pad-rule", event["ConnectedLineName"], event["ConnectedLineName"], "8") // PAD call ICP8
|
|
|
+
|
|
|
}
|
|
|
if event["ConnectedLineNum"] == "ani8" && event["Exten"] == "0511" { //PAD ansered by ICP8; PACUs connected ICP8
|
|
|
lfshook.NewLogger().Infof("====PAD answered by ICP8:%s=====", event["ConnectedLineName"])
|
|
|
@@ -333,84 +444,28 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RunningPATaskChan = event["Channel"]
|
|
|
priority.RunningType = "PAD-ICP"
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADICP)
|
|
|
- go RedirectInQueue(event["ConnectedLineName"], "2381", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP8
|
|
|
- go Dial("0402", event["ConnectedLineName"], "chanspy-rule", event["ConnectedLineName"], event["ConnectedLineName"], "1") //ICP1 chanspy PAD
|
|
|
- //goto event=ChanSpyStart; PAD whisper ICP1
|
|
|
- break
|
|
|
- }
|
|
|
+ go RedirectInQueue(event["ConnectedLineName"], "2381", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) ICP8
|
|
|
|
|
|
- //OCC1 answer PAD;
|
|
|
- if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0512" && event["ConnectedLineName"] == "ano1" { //PAD answered by OCC1; PACUs connected IO1
|
|
|
- lfshook.NewLogger().Infof("====PAD answered by OCC1:====")
|
|
|
-
|
|
|
- priority.RunningPATaskChan = event["Channel"]
|
|
|
- priority.RunningType = "PAD-OCC"
|
|
|
- priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADOCC)
|
|
|
-
|
|
|
- res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
|
- if err != nil {
|
|
|
- lfshook.NewLogger().Infof("===OCC-QueueStatus==%+v", err)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- PADChan := ""
|
|
|
- for _, chanEntry := range res.Entrys {
|
|
|
- lfshook.NewLogger().Infof("====PAD answered by OCC1 pos:%s===chan:%s=", chanEntry.Position, chanEntry.Channel)
|
|
|
- if chanEntry.Position == "1" {
|
|
|
- PADChan = chanEntry.Channel
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
+ go Dial("0402", event["ConnectedLineName"], "call-pad-rule", event["ConnectedLineName"], event["ConnectedLineName"], "1") // PAD call ICP2
|
|
|
|
|
|
- if PADChan != "" {
|
|
|
- alstatus.AlarmStatus(strings.Split(strings.Split(res.Entrys[0].Channel, "/")[1], "-")[0], "connect")
|
|
|
- go RedirectInQueue(PADChan, "1411", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) IO1
|
|
|
- } else {
|
|
|
- lfshook.NewLogger().Infof("===OCC-QueueStatus==PADCchan NULL")
|
|
|
- }
|
|
|
- //goto event=ChanSpyStart; ICPs spy PAD
|
|
|
break
|
|
|
}
|
|
|
|
|
|
- //OCC8 answer PAD;
|
|
|
- if utils.IsIO(event["CallerIDNum"]) && event["Exten"] == "0512" && event["ConnectedLineName"] == "ano8" { //PAD ansered by OCC8; PACUs connected IO8
|
|
|
- lfshook.NewLogger().Infof("====PAD answered by OCC8:%s=====", event["ConnectedLineName"])
|
|
|
+ //OCC answer PAD;Set the task channel
|
|
|
+ if utils.IsPAIU(event["CallerIDNum"]) && utils.IsIO(event["Exten"]) && event["Context"] == "pad-page-occ-icp" { //PAD Page OCC1+ICPs connected
|
|
|
+ lfshook.NewLogger().Infof("====PAD answered by OCC:====")
|
|
|
|
|
|
priority.RunningPATaskChan = event["Channel"]
|
|
|
priority.RunningType = "PAD-OCC"
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADOCC)
|
|
|
-
|
|
|
- res, err := QueueStatus("0301", "") // check OCC queue , if empty OCC-PAD start
|
|
|
- if err != nil {
|
|
|
- lfshook.NewLogger().Infof("===OCC-QueueStatus==%+v", err)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- PADChan := ""
|
|
|
- for _, chanEntry := range res.Entrys {
|
|
|
- lfshook.NewLogger().Infof("====PAD answered by OCC8 pos:%s===chan:%s=", chanEntry.Position, chanEntry.Channel)
|
|
|
- if chanEntry.Position == "1" {
|
|
|
- PADChan = chanEntry.Channel
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if PADChan != "" {
|
|
|
- alstatus.AlarmStatus(strings.Split(strings.Split(res.Entrys[0].Channel, "/")[1], "-")[0], "connect")
|
|
|
- go RedirectInQueue(PADChan, "1481", "chanspy-rule-whisper", event["ConnectedLineName"]) //PAD chanspy(EqW) IO8
|
|
|
- } else {
|
|
|
- lfshook.NewLogger().Infof("===OCC-QueueStatus==PADCchan NULL")
|
|
|
- }
|
|
|
- //goto event=ChanSpyStart; ICPs spy PAD
|
|
|
break
|
|
|
}
|
|
|
-
|
|
|
case "ChanSpyStart":
|
|
|
lfshook.NewLogger().Infof("=========event:%s callerid:%s SpyeeConnectedLineName:%s SpyerExten:%s", event["Event"], event["CallerIDNum"], event["SpyeeConnectedLineName"], event["SpyerExten"])
|
|
|
//PAD answered by OCC; ICPs chanspy PAD
|
|
|
- if utils.IsPAIU(event["SpyeeConnectedLineName"]) && utils.IsIO(event["SpyerExten"]) { // check if it is PAD whisper IO/OCC
|
|
|
- go Dial("0404", event["SpyeeConnectedLineName"], "chanspy-rule", "ano", "ano", "") //ICPs chanspy PAD
|
|
|
- }
|
|
|
+ //if utils.IsPAIU(event["SpyeeConnectedLineName"]) && utils.IsIO(event["SpyerExten"]) { // check if it is PAD whisper IO/OCC
|
|
|
+ //go Dial("0404", event["SpyeeConnectedLineName"], "chanspy-rule", "ano", "ano", "") //ICPs chanspy PAD
|
|
|
+ //}
|
|
|
|
|
|
case "ConfbridgeLeave":
|
|
|
lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
@@ -470,7 +525,6 @@ func HandleAMI(event map[string]string) {
|
|
|
if priority.ResumeEmgPara.FileName != "" {
|
|
|
CheckEmgResume()
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
case "DialEnd":
|
|
|
@@ -513,10 +567,10 @@ func HandleAMI(event map[string]string) {
|
|
|
priority.RunningTypePriority, _ = strconv.Atoi(priority.Priority.PADTMS)
|
|
|
if active.ActivedCab == "1" {
|
|
|
go RedirectInQueue(event["CallerIDName"], "2311", "chanspy-rule-whisper", "") //PAD chanspy(EqW) ICP1
|
|
|
- go Dial("0403", event["CallerIDName"], "chanspy-rule", "2381", "2381", "8") //ICP8---chanspy----PAD
|
|
|
+ go Dial("0403", event["CallerIDName"], "call-pad-rule", "2381", "2381", "8") //ICP8---call----PAD
|
|
|
} else if active.ActivedCab == "8" {
|
|
|
go RedirectInQueue(event["CallerIDName"], "2381", "chanspy-rule-whisper", "") //PAD chanspy(EqW) ICP8
|
|
|
- go Dial("0403", event["CallerIDName"], "chanspy-rule", "2311", "2311", "1") //ICP1---chanspy----PAD
|
|
|
+ go Dial("0403", event["CallerIDName"], "call-pad-rule", "2311", "2311", "1") //ICP1---call----PAD
|
|
|
}
|
|
|
} else if utils.IsPAIU(event["CallerIDNum"]) && event["Exten"] == "0405" { // PAD connect ICP-TMS;PACU not available
|
|
|
|