Преглед изворни кода

修正广播状态,修正优先级判断

dujunchen пре 3 дана
родитељ
комит
4cd9e7f531

+ 5 - 1
internal/app/ami/action/call.go

@@ -98,12 +98,13 @@ func HangupAllExcept(caller string) {
 
 // Hangup all ICP
 func HangupRunningTask(toRunTask string) {
-	return
+
 	lfshook.NewLogger().Infof("===HangupRunningTask=toRuntask=%s====   RunningTask:%s===", toRunTask, priority.RunningType)
 
 	//same type return
 	if toRunTask == priority.RunningType {
 		if toRunTask == "PAD-ICP" || toRunTask == "PAD-TMS" {
+			lfshook.NewLogger().Infof("===HangupRunningTask=ret==== ")
 			return
 		}
 	}
@@ -132,6 +133,7 @@ func HangupRunningTask(toRunTask string) {
 					}
 			*/
 			//2. hangup task channel (ICP + PACU)
+			lfshook.NewLogger().Infof("===HangupRunningTask=2. hangup task channel === ")
 			HangupAllLocalChan()
 			//HangupICP()
 			priority.CleanPriorityTag()
@@ -154,6 +156,7 @@ func HangupRunningTask(toRunTask string) {
 				}
 
 				//2. Hangup connected PAD
+				lfshook.NewLogger().Infof("===HangupRunningTask=Hangup connected PAD=== ")
 				Hangup(priority.RunningPATaskChan)
 
 				//3. Hangup OI & ICP
@@ -169,6 +172,7 @@ func HangupRunningTask(toRunTask string) {
 			}
 
 		default:
+			lfshook.NewLogger().Infof("===HangupRunningTask=default=== ")
 			Hangup(priority.RunningPATaskChan)
 			priority.CleanPriorityTag()
 		}

+ 28 - 20
internal/app/ami/action/index.go

@@ -91,7 +91,7 @@ func HandleAMI(event map[string]string) {
 				utils.Logger.Printf("Get duration err: %+v", err)
 				break
 			}
-			lfshook.NewLogger().Infof("==========duration===== %s", duration)
+			//lfshook.NewLogger().Infof("==========duration===== %d", duration)
 			//转wav文件的采样率到22kHz,并切割位180秒每段
 			var FileNames []string
 			if duration >= 600 { //超过600秒的超长文件,不处理
@@ -103,17 +103,19 @@ func HandleAMI(event map[string]string) {
 					lfshook.NewLogger().Infof("Get duration err: %+v", err)
 					break
 				}
-				lfshook.NewLogger().Infof("=============== File %+v found after convert", FileNames)
+				//lfshook.NewLogger().Infof("=============== File %+v found after convert", FileNames)
 			}
 
 			//执行加密操作,并将录音信息写入日志文件
 			DstFile := ""
 			if len(FileNames) > 0 { // 文件切割之后进入循环处理
-				for _, file := range FileNames {
-					DstFile = fmt.Sprintf("encrypted-%s", file)
+				for _, filepath := range FileNames {
+
+					file := strings.Replace(filepath, ".wav", "", -1)
+					DstFile = fmt.Sprintf("%s-encrypted.wav", file)
 
 					lfshook.NewLogger().Infof("===========Bin file====%s", DstFile)
-					err = utils.AudioFileEncode(DstFile, file)
+					err = utils.AudioFileEncode(DstFile, filepath)
 					if err != nil {
 						lfshook.NewLogger().Infof("Encode file: %s err: %+v", DstFile, err)
 						continue
@@ -285,23 +287,29 @@ func HandleAMI(event map[string]string) {
 
 		if utils.IsPAIU(event["CallerIDNum"]) { // PAD hangup, check if PAD all end, send PAD end status
 
-			res, _ := QueueStatus("0300", "")  // check ICP queue ,if empty PAD end
-			res1, _ := QueueStatus("0301", "") // check OCC queue ,if empty PAD end
+			number := strings.Split(strings.Split(event["Channel"], "-")[0], "/")[1]
+
+			lfshook.NewLogger().Infof("===hangup PAD =======================%s", number)
+
+			if utils.IsPAIU(number) {
+				res, _ := QueueStatus("0300", "")  // check ICP queue ,if empty PAD end
+				res1, _ := QueueStatus("0301", "") // check OCC queue ,if empty PAD end
 
-			lfshook.NewLogger().Infof("==calls:%s===calls1:%s====", res.Calls, res1.Calls)
-			if res.Calls == "0" && res1.Calls == "0" {
-				//priority.CleanPriorityTag()
-				//HangupAllLocalChan()
-				if priority.PADStart == 1 {
-					alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
-					priority.PADStart = 0
+				lfshook.NewLogger().Infof("==calls:%s===calls1:%s====", res.Calls, res1.Calls)
+				if res.Calls == "0" && res1.Calls == "0" {
+					//priority.CleanPriorityTag()
+					//HangupAllLocalChan()
+					if priority.PADStart == 1 {
+						alstatus.PaStatus(event["CallerIDNum"], "PAD", "end")
+						priority.PADStart = 0
+					}
+					/*if priority.ResumeEmgPara.FileName != "" {
+						CheckEmgResume()
+					}*/
+					priority.ICPAnswer = 0
+					priority.OCCAnswer = 0
+					break
 				}
-				/*if priority.ResumeEmgPara.FileName != "" {
-					CheckEmgResume()
-				}*/
-				priority.ICPAnswer = 0
-				priority.OCCAnswer = 0
-				break
 			}
 		}
 

+ 4 - 3
internal/app/stc/broadcast/stc-broadcast.go

@@ -60,9 +60,9 @@ func processPacket(packet []byte) {
 	}
 
 	//for recv data log debug
-	//if packet[5] != 0x03 && packet[5] != 0x0c && packet[5] != 0x01 {
-	lfshook.NewLogger().Logger.Infof("Get data from STC ===============:%x", packet)
-	//}
+	if packet[5] != 0x03 && packet[5] != 0x0c && packet[5] != 0x01 {
+		lfshook.NewLogger().Logger.Infof("Get data from STC ===============:%x", packet)
+	}
 
 	//check if the cmd type is avtive
 	if packet[5] == 0x03 { // ACTIVE
@@ -488,6 +488,7 @@ func AlarmHandleICP(data []byte) {
 
 	case 0x03: //hangup
 		//NotifyPaiu(exten, "hangup")
+		lfshook.NewLogger().Logger.Infof("=============STC== Hangup PAD=============== ")
 		action.Hangup(exten) //Pad
 		action.HangupAllLocalChan()
 		action.HangupICP()

+ 13 - 13
internal/app/stc/index.go

@@ -94,7 +94,7 @@ func StartStcConnection(conn net.Conn, cab string) {
 func CreateConnection(RemoteCab string) (net.Conn, error) {
 
 	if RemoteCab == "1" { // connect to MC1
-		lfshook.NewLogger().Logger.Infof("========Connect Server MC1 IP:%s  :Port:%d", socket.RemoteAddr, socket.RemotePort)
+		//lfshook.NewLogger().Logger.Infof("========Connect Server MC1 IP:%s  :Port:%d", socket.RemoteAddr, socket.RemotePort)
 		// 创建 Dialer
 		if active.CabNum == "1" { //in cab1
 			dialer := &net.Dialer{
@@ -106,7 +106,7 @@ func CreateConnection(RemoteCab string) (net.Conn, error) {
 			DialAddr := fmt.Sprintf("%s:%d", socket.RemoteAddr, socket.RemotePort)
 			conn, err := dialer.Dial("tcp", DialAddr)
 			if err != nil {
-				lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
+				//lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
 				return nil, err
 			}
 			lfshook.NewLogger().Logger.Infof("Connect success :%s:%d", socket.RemoteAddr, socket.RemotePort)
@@ -121,14 +121,14 @@ func CreateConnection(RemoteCab string) (net.Conn, error) {
 			DialAddr := fmt.Sprintf("%s:%d", socket.RemoteAddr, socket.RemotePort)
 			conn, err := dialer.Dial("tcp", DialAddr)
 			if err != nil {
-				lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
+				//lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
 				return nil, err
 			}
 			lfshook.NewLogger().Logger.Infof("Connect success :%s:%d", socket.RemoteAddr, socket.RemotePort)
 			return conn, nil
 		}
 	} else { // connect to MC8
-		lfshook.NewLogger().Logger.Infof("========Connect server MC8 IP:%s  :Port:%d", socket.RemoteAddr8, socket.RemotePort)
+		//lfshook.NewLogger().Logger.Infof("========Connect server MC8 IP:%s  :Port:%d", socket.RemoteAddr8, socket.RemotePort)
 		// 创建 Dialer
 		if active.CabNum == "1" { //in cab1
 			dialer := &net.Dialer{
@@ -140,7 +140,7 @@ func CreateConnection(RemoteCab string) (net.Conn, error) {
 			DialAddr := fmt.Sprintf("%s:%d", socket.RemoteAddr8, socket.RemotePort)
 			conn, err := dialer.Dial("tcp", DialAddr)
 			if err != nil {
-				lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
+				//lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
 				return nil, err
 			}
 			lfshook.NewLogger().Logger.Infof("Connect success MC8:%s:%d", socket.RemoteAddr8, socket.RemotePort)
@@ -155,7 +155,7 @@ func CreateConnection(RemoteCab string) (net.Conn, error) {
 			DialAddr := fmt.Sprintf("%s:%d", socket.RemoteAddr8, socket.RemotePort)
 			conn, err := dialer.Dial("tcp", DialAddr)
 			if err != nil {
-				lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
+				//lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
 				return nil, err
 			}
 			lfshook.NewLogger().Logger.Infof("Connect success MC8:%s:%d", socket.RemoteAddr8, socket.RemotePort)
@@ -233,7 +233,7 @@ func CreateConnectionSipServer() (net.Conn, error) {
 	DialAddr := fmt.Sprintf("%s:%d", socket.RemoteAddr, socket.LocalPort) // Connect to Cab1 Sip server
 	conn, err := dialer.Dial("tcp", DialAddr)
 	if err != nil {
-		lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
+		//lfshook.NewLogger().Logger.Infof("========Connect server err :%+v", err)
 		return nil, err
 	}
 	lfshook.NewLogger().Logger.Infof("Connect SIP Server success :%s:%d", socket.RemoteAddr, socket.LocalPort)
@@ -262,7 +262,7 @@ func Sendheartbeat(ctx context.Context, conn net.Conn) {
 	for {
 		select {
 		case <-ctx.Done():
-			lfshook.NewLogger().Logger.Infof("Sendheartbeat===ctx==ret======")
+			//lfshook.NewLogger().Logger.Infof("Sendheartbeat===ctx==ret======")
 			return
 
 		case <-ticker.C:
@@ -271,13 +271,13 @@ func Sendheartbeat(ctx context.Context, conn net.Conn) {
 			// 编码并发送数据...
 			encoded, err := protocol.Encode()
 			if err != nil {
-				fmt.Printf("encode err : %v\n", err)
+				//fmt.Printf("encode err : %v\n", err)
 				return
 			}
 			if conn != nil {
 				_, err = conn.Write(encoded)
 				if err != nil {
-					fmt.Printf("Send hearbeat err: %v\n", err)
+					//fmt.Printf("Send hearbeat err: %v\n", err)
 					conn.Close()
 					return // 触发重连
 				}
@@ -302,7 +302,7 @@ func SendheartbeatToSipServer(ctx context.Context, conn net.Conn) {
 	for {
 		select {
 		case <-ctx.Done():
-			lfshook.NewLogger().Logger.Infof("Sendheartbeat===ctx==ret======")
+			//lfshook.NewLogger().Logger.Infof("Sendheartbeat===ctx==ret======")
 			return
 
 		case <-ticker.C:
@@ -311,13 +311,13 @@ func SendheartbeatToSipServer(ctx context.Context, conn net.Conn) {
 			// 编码并发送数据...
 			encoded, err := protocol.Encode()
 			if err != nil {
-				fmt.Printf("encode err : %v\n", err)
+				//fmt.Printf("encode err : %v\n", err)
 				return
 			}
 			if conn != nil {
 				_, err = conn.Write(encoded)
 				if err != nil {
-					fmt.Printf("Send hearbeat err: %v\n", err)
+					//fmt.Printf("Send hearbeat err: %v\n", err)
 					conn.Close()
 					return // 触发重连
 				}

+ 1 - 1
internal/app/stc/priority/index.go

@@ -105,7 +105,7 @@ func GetPriorityByKey(key string) string {
 
 // check priority , if the running priority is lowwer than the to run priority
 func CheckPriority(runType string) bool {
-	return true
+	//return true
 	lfshook.NewLogger().Logger.Infof("=========Check Pri runType:%s====RunningTypePriority:%d====SpecialVoice:%d========", runType, RunningTypePriority, SpecialVoice)
 	//Check special voice can not interrupt
 	if SpecialVoice == 1 {