Browse Source

fix alarm handle

dujunchen 2 weeks ago
parent
commit
3758eb6b30

+ 2 - 2
internal/app/ami/action/call.go

@@ -27,8 +27,8 @@ func Hangup(channel string) {
 
 // Dial 拨打号码
 func Dial(src, dst, dialrule, callerID, callerName string, callType string) {
-	chanel := fmt.Sprintf("%s/%s", callType, src)
-
+	//chanel := fmt.Sprintf("%s/%s", callType, src)
+	chanel := fmt.Sprintf("Local/%s@pacu-ani-rule", src)
 	action := map[string]string{
 		"Action":   "Originate",
 		"Channel":  chanel,

+ 0 - 1
internal/app/ami/action/channel.go

@@ -72,7 +72,6 @@ func GetChannelByExtenNotBridged(exten string) (channel string, err error) {
 		"Action": "CoreShowChannels",
 	})
 
-	lfshook.NewLogger().Infof("GetChannelByExtenNotBridged ================%s", exten)
 	if err != nil {
 		lfshook.NewLogger().Errorf("core show channels error %+v", err)
 		return "", err

+ 6 - 5
internal/app/ami/action/index.go

@@ -77,13 +77,14 @@ func HandleAMI(event map[string]string, conn net.Conn) {
 			}
 		}
 	case "BridgeEnter":
-		lfshook.NewLogger().Infof("====BridgeEnter=====%s===ID:%s   Name:%s", event["Event"], event["CallerIDNum"], event["CallerIDName"])
-		//if utils.IsPAIU(event["CallerIDNum"]) {
+
 		if utils.IsPACU(event["CallerIDNum"]) {
-			lfshook.NewLogger().Infof("====BridgeEnter==IN action===%s===ID:%s   Name:%s", event["Event"], event["CallerIDNum"], event["CallerIDName"])
-			alstatus.AlarmStatus(event["CallerIDName"], "connect", conn) // Alarm connected
+			if utils.IsPAIU(event["CallerIDName"]) { //relate to PACU Dial ICP caller name in AlarmHandle
+				lfshook.NewLogger().Infof("====BridgeEnter==IN action===%s===ID:%s   Name:%s", event["Event"], event["CallerIDNum"], event["CallerIDName"])
+				go RedirectInQueue(event["CallerIDName"], "2311", "chanspy-rule", "") // 1车ICP接听PAIU
+			}
 
-			RedirectInQueue(event["CallerIDName"], "000", "chanspy-rule", "1") // 1车ICP接听PAIU
+			alstatus.AlarmStatus(event["CallerIDName"], "connect", conn) // Alarm connected
 			/*
 				switch string(event["CallerIDNum"][2]) { // connect the pacu to pad acording to the pad number
 				case "1":

+ 6 - 13
internal/app/stc/broadcast/stc-broadcast.go

@@ -273,13 +273,13 @@ func AlarmHandle(data []byte) {
 		}
 
 		// 设置2秒后删除该 key,允许下次通过
-		time.AfterFunc(4*time.Second, func() {
+		time.AfterFunc(2*time.Second, func() {
 			suppressedExts.Delete(key)
 			lfshook.NewLogger().Logger.Debugf("Suppression released for key: %s", key)
 		})
 	}
 
-	// 设置2秒后删除该 key,允许下次通过
+	// 设置1秒后删除该 key,允许下次通过
 	time.AfterFunc(1*time.Second, func() {
 		suppressedExts.Delete(key)
 		lfshook.NewLogger().Logger.Debugf("Suppression released for key: %s", key)
@@ -290,25 +290,18 @@ func AlarmHandle(data []byte) {
 		//NotifyPaiu(exten, "answer")
 
 		action.Dial(PacuNum, "0402", "ani-rule", PacuNum, exten, "PJSIP") // PACU dial ICP
-		//err := action.RedirectInQueue(exten, "0402", "ani-rule", "1") // 1车ICP接听PAIU
-		/*if err != nil {
-			lfshook.NewLogger().Logger.Infof("================ICP Answer PAD====ERR============ : %+v", err.Error())
-		}*/
+		lfshook.NewLogger().Logger.Infof("================ICP Answer PAD================:%s ", exten)
 		//invite PACU join in
 		//action.Hangup("PACU")
 		//action.ChanSpy("PACU", exten, false, true)
 
-	case 0x04: //answer(ICP+Alarm+PACU)
+	case 0x04: //answer(PACU+Alarm+OCC)
+		action.Dial(PacuNum, "0401", "ano-rule", PacuNum, exten, "PJSIP") // PACU dial OCC
 
-		err := action.RedirectInQueue(exten, "0401", "ano-rule", "1") // 1车OCC接听PAIU
-		if err != nil {
-			//lfshook.NewLogger().Info(err)
-			lfshook.NewLogger().Logger.Infof("================ICP Answer PAD====ERR============ : %+v", err.Error())
-		}
 		//invite PACU join in
 		//action.Hangup("PACU")
 		//action.ChanSpy("PACU", exten, false, true)
-		lfshook.NewLogger().Logger.Infof("================ICP Answer PAD================:%s ", exten)
+		lfshook.NewLogger().Logger.Infof("================OCC Answer PAD================:%s ", exten)
 	case 0x02: //hold  重新放回队列里面
 		NotifyPaiu(exten, "hold")