|
@@ -2,8 +2,6 @@ package action
|
|
|
|
|
|
import (
|
|
|
"net"
|
|
|
- "pbx-api-gin/internal/app/ami/model"
|
|
|
- "pbx-api-gin/internal/app/mysql"
|
|
|
alstatus "pbx-api-gin/internal/app/stc/sendstatus"
|
|
|
"pbx-api-gin/internal/pkg/configs"
|
|
|
"pbx-api-gin/pkg/lfshook"
|
|
@@ -28,59 +26,68 @@ const pacu8 = "2181"
|
|
|
//type Operation func(src, dst string, whisper, bargein bool)
|
|
|
|
|
|
func HandleAMI(event map[string]string, conn net.Conn) {
|
|
|
+
|
|
|
switch event["Event"] {
|
|
|
case "DialBegin":
|
|
|
-
|
|
|
+ lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) && utils.IsICP(event["DestCallerIDNum"]) {
|
|
|
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "dial", conn) // Alarm dial ICP start
|
|
|
}
|
|
|
+ case "Newchannel":
|
|
|
+ lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
+ if utils.IsPAIU(event["CallerIDNum"]) && event["Exten"] == "0300" { // Alarm dial queue start
|
|
|
|
|
|
+ alstatus.AlarmStatus(event["CallerIDNum"], "dial", conn)
|
|
|
+ }
|
|
|
case "DialEnd":
|
|
|
-
|
|
|
+ lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) {
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "Idle", conn) // Alarm dial end
|
|
|
}
|
|
|
case "QueueCallerJoin":
|
|
|
-
|
|
|
- if utils.IsPAIU(event["CallerIDNum"]) {
|
|
|
- alstatus.AlarmStatus(event["CallerIDNum"], "queue", conn) // Alarm join the queue
|
|
|
+ lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
+ if utils.IsPAIU(event["CallerIDNum"]) { // Alarm join the queue
|
|
|
+ alstatus.AlarmStatus(event["CallerIDNum"], "queue", conn)
|
|
|
|
|
|
switch string(event["CallerIDNum"][2]) { // connect the pacu to pad acording to the pad number
|
|
|
case "1":
|
|
|
- ChanSpy(pacu1, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu1, false, true) //connect pacu to pad
|
|
|
case "2":
|
|
|
- ChanSpy(pacu2, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu2, false, true) //connect pacu to pad
|
|
|
case "3":
|
|
|
- ChanSpy(pacu3, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu3, false, true) //connect pacu to pad
|
|
|
case "4":
|
|
|
- ChanSpy(pacu4, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu4, false, true) //connect pacu to pad
|
|
|
case "5":
|
|
|
- ChanSpy(pacu5, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu5, false, true) //connect pacu to pad
|
|
|
case "6":
|
|
|
- ChanSpy(pacu6, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu6, false, true) //connect pacu to pad
|
|
|
case "7":
|
|
|
- ChanSpy(pacu7, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu7, false, true) //connect pacu to pad
|
|
|
case "8":
|
|
|
- ChanSpy(pacu8, event["CallerIDNum"], false, true) //connect pacu to pad
|
|
|
+ ChanSpy(event["CallerIDNum"], pacu8, false, true) //connect pacu to pad
|
|
|
}
|
|
|
}
|
|
|
|
|
|
case "ExtensionStatus":
|
|
|
-
|
|
|
+ lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if event["StatusText"] == "Idle" || event["StatusText"] == "Unavailable" {
|
|
|
- status := &model.Extension{
|
|
|
- Extension: event["Exten"],
|
|
|
- Status: event["StatusText"],
|
|
|
+ //status := &model.Extension{
|
|
|
+ // Extension: event["Exten"],
|
|
|
+ // Status: event["StatusText"],
|
|
|
+ //}
|
|
|
+ //_, err := mysql.DBOrmInstance.Where("exten = ?", status.Extension).Cols("status").Update(status)
|
|
|
+ //if err != nil {
|
|
|
+ // lfshook.NewLogger().Infof("update extension status err : %+v", err.Error())
|
|
|
+ //}
|
|
|
+
|
|
|
+ if len(event["Exten"]) > 3 {
|
|
|
+ alstatus.AlarmStatus(event["Exten"], event["StatusText"], conn) // Alarm idle + unavailable
|
|
|
}
|
|
|
- _, err := mysql.DBOrmInstance.Where("exten = ?", status.Extension).Cols("status").Update(status)
|
|
|
- if err != nil {
|
|
|
- lfshook.NewLogger().Infof("update extension status err : %+v", err.Error())
|
|
|
- }
|
|
|
- alstatus.AlarmStatus(event["Exten"], event["StatusText"], conn) // Alarm idle + unavailable
|
|
|
}
|
|
|
case "BridgeEnter":
|
|
|
-
|
|
|
+ lfshook.NewLogger().Infof("=========%s", event["Event"])
|
|
|
if utils.IsPAIU(event["CallerIDNum"]) {
|
|
|
alstatus.AlarmStatus(event["CallerIDNum"], "connect", conn) // Alarm connected
|
|
|
}
|