Przeglądaj źródła

fix active action

dujunchen 2 tygodni temu
rodzic
commit
d7aac5ab92

+ 0 - 9
internal/app/ami/action/index.go

@@ -17,15 +17,6 @@ import (
 
 var AminInstance *amigo.Amigo
 
-const pacu1 = "2111"
-const pacu2 = "2121"
-const pacu3 = "2131"
-const pacu4 = "2141"
-const pacu5 = "2151"
-const pacu6 = "2161"
-const pacu7 = "2171"
-const pacu8 = "2181"
-
 //type Operation func(src, dst string, whisper, bargein bool)
 
 func HandleAMI(event map[string]string) {

+ 13 - 1
internal/app/ami/model/cdr.go

@@ -1,6 +1,6 @@
 package model
 
-//Cdr 通话记录
+// Cdr 通话记录
 type Cdr struct {
 	AnswerTime         string `xorm:"AnswerTime"`
 	BillableSeconds    string `xorm:"BillableSeconds"`
@@ -22,3 +22,15 @@ type Cdr struct {
 	Timestamp          string `xorm:"Timestamp"`
 	UniqueID           string `xorm:"UniqueID"`
 }
+
+type RcdConf struct {
+	PadRcdEnable      int `xorm:"pad_rcd_enable" json:"padRcdEnable"`
+	PadRcdStorageDays int `xorm:"pad_rcdstorage_days" json:"padRcdStorageDays"`
+	PaRcdStorageDays  int `xorm:"pa_rcdstorage_days" json:"paRcdStorageDays"`
+	CpaRcdStorageDays int `xorm:"cpa_rcdstorage_days" json:"cpaRcdStorageDays"`
+	OpaRcdStorageDays int `xorm:"0pa_rcdstorage_days" json:"opaRcdStorageDays"`
+}
+
+func (*RcdConf) TableName() string {
+	return "t_record_conf"
+}

+ 2 - 0
internal/app/index.go

@@ -30,6 +30,8 @@ func StartApp() {
 	}
 	lfshook.NewLogger().Infof("=================cab number:%s===========", active.CabNum)
 
+	//init the active status
+	active.Actived = true
 	// 启动带有重连机制的连接管理协程MC1
 	go stc.StartStcConnection(socket.Conn, "1")
 

+ 82 - 65
internal/app/stc/broadcast/stc-broadcast.go

@@ -41,12 +41,9 @@ func HandleStcCmd(ctx context.Context, conn net.Conn) {
 					}
 					return
 				}
-				if active.Actived { // check actived or not
-					// 将新读取的数据追加到缓冲区
-					buf.Write(tmp[:n])
-				} else {
-					break
-				}
+
+				// 将新读取的数据追加到缓冲区
+				buf.Write(tmp[:n])
 			}
 			// 尝试从缓冲区中提取完整数据包
 			for {
@@ -70,7 +67,14 @@ func processPacket(packet []byte) {
 	lfshook.NewLogger().Logger.Infof("Get data from STC ===============:%x", packet)
 	//check if the cmd type is avtive
 	if packet[5] == 0x03 { // ACTIVE
-		Active([1]byte{packet[7]})
+		Active([1]byte{packet[8]})
+		return
+	}
+
+	//check if actived
+	if !active.Actived {
+		lfshook.NewLogger().Logger.Infof("===========Inactived  retrun==============")
+		return
 	}
 
 	switch packet[5] {
@@ -79,9 +83,8 @@ func processPacket(packet []byte) {
 	case 0x02: // STN
 		lfshook.NewLogger().Infof("=====STN=========")
 		StationAnn(packet)
-	case 0x03: // ACTIVE
-
-		Active([1]byte{packet[8]})
+	//case 0x03: // ACTIVE
+	//	Active([1]byte{packet[8]})
 	case 0x05: // SPC
 		lfshook.NewLogger().Infof("=====SPC=========")
 		SpecialAnn(packet)
@@ -131,56 +134,62 @@ func StationAnn(data []byte) (err error) {
 // 激活信号
 func Active(data [1]byte) {
 
-	var info model.Sysinfo
-
+	//var info model.Sysinfo
+	active.Actived = true
 	Num := int(data[0])
 	lfshook.NewLogger().Logger.Infof("Active data : %x", Num)
+	/*
+	   switch Num { // 设置全局的激活信号,并通过协议(待定)通知终端注册到对应的激活主机上
+	   case 0:
 
-	switch Num { // 设置全局的激活信号,并通过协议(待定)通知终端注册到对应的激活主机上
-	case 0:
-		lfshook.NewLogger().Logger.Infof("=================Inactive==================")
-		info.Name = "cab_active"
-		info.Value = "0"
+	   	lfshook.NewLogger().Logger.Infof("=================Inactive==================")
+	   	info.Name = "cab_active"
+	   	info.Value = "0"
 
-		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info)
-		if er != nil {
-			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error())
-			return
-		}
-	case 1:
-		lfshook.NewLogger().Logger.Infof("=================active===MC1===============")
-		if active.CabNum == "1" { // local cab is MC1
-			info.Name = "cab_active"
-			info.Value = "1"
-			active.Actived = true
-		} else {
-			info.Name = "cab_active"
-			info.Value = "0"
-			active.Actived = false
-		}
-		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info)
-		if er != nil {
-			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error())
-			return
-		}
-	case 8:
-		lfshook.NewLogger().Logger.Infof("=================active===MC8===============")
-		if active.CabNum == "8" { //Local cab is MC8
-			info.Name = "cab_active"
-			info.Value = "1"
-			active.Actived = true
-		} else {
-			info.Name = "cab_active"
-			info.Value = "0"
-			active.Actived = false
-		}
+	   	_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info)
+	   	if er != nil {
+	   		lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error())
+	   		return
+	   	}
 
-		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info)
-		if er != nil {
-			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error())
-			return
-		}
-	}
+	   case 1:
+
+	   	lfshook.NewLogger().Logger.Infof("=================active===MC1===============")
+	   	if active.CabNum == "1" { // local cab is MC1
+	   		info.Name = "cab_active"
+	   		info.Value = "1"
+	   		active.Actived = true
+	   	} else {
+	   		info.Name = "cab_active"
+	   		info.Value = "0"
+	   		active.Actived = false
+	   	}
+	   	_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info)
+	   	if er != nil {
+	   		lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error())
+	   		return
+	   	}
+
+	   case 8:
+
+	   		lfshook.NewLogger().Logger.Infof("=================active===MC8===============")
+	   		if active.CabNum == "8" { //Local cab is MC8
+	   			info.Name = "cab_active"
+	   			info.Value = "1"
+	   			active.Actived = true
+	   		} else {
+	   			info.Name = "cab_active"
+	   			info.Value = "0"
+	   			active.Actived = false
+	   		}
+
+	   		_, er := mysql.DBOrmInstance.Where("name = ?", "cab_active").Update(&info)
+	   		if er != nil {
+	   			lfshook.NewLogger().Logger.Infof("update sysinfo err : %+v", er.Error())
+	   			return
+	   		}
+	   	}
+	*/
 }
 
 // SPC ,特殊服务消息广播
@@ -439,18 +448,26 @@ func AlarmResetAll() {
 }
 
 func RecordStorageConf(data []byte) {
-	/*padRcd := data[0]
-	padRcdStorage := data[1]
-	paRcdStorage := data[2]
-	cpaRcdStorage := data[3]
-	padRcdDel := data[4]
-	PaRcdDel := data[5]
-	cpaRcdDel := data[6]
+	padRcdEnable := data[0]
+	padRcdStorageDays := data[1]
+	paRcdStorageDays := data[2]
+	cpaRcdStorageDays := data[3]
 
-	//update pa type
-	_, er := mysql.DBOrmInstance.In("exten", Pacus).Update(&model.Extension{PaType: "CHK"})
+	//padRcdDelDays := data[4]
+	//PaRcdDelDays := data[5]
+	//cpaRcdDelDays := data[6]
+
+	var info model.RcdConf
+
+	info.PadRcdEnable = int(padRcdEnable)
+	info.PadRcdStorageDays = int(padRcdStorageDays)
+	info.CpaRcdStorageDays = int(cpaRcdStorageDays)
+	info.PaRcdStorageDays = int(paRcdStorageDays)
+
+	//update record config
+	_, er := mysql.DBOrmInstance.Update(&info)
 	if er != nil {
 		lfshook.NewLogger().Logger.Infof("update special voice to exten err : %+v", er.Error())
 	}
-	*/
+
 }