package stc import ( "bytes" "pbx-api-gin/api/model" "pbx-api-gin/api/panel/asterisk" "pbx-api-gin/internal/app/ami/action" "pbx-api-gin/internal/app/mysql" "pbx-api-gin/pkg/lfshook" ) func StationAnn(data [4]byte) (err error) { specialVoice := int(data[0]) Exten := "2411" delay := data[1] cycleCount := data[2] timeLen := data[3] filename := "welcome" //update special voice _, er := mysql.DBOrmInstance.Where("exten = ?", Exten).Update(&model.Extension{Special: specialVoice}) if err != nil { lfshook.NewLogger().Logger.Infof("update special voice to exten err : %+v", er.Error()) return er } action.Playback(filename, int(cycleCount), Exten, int(timeLen), int(delay)) return nil } func Active(data [1]byte) { Num := int(data[0]) switch Num { // 设置全局的激活信号,并通过协议(待定)通知终端注册到对应的激活主机上 case 0: case 1: case 8: case 9: } } func SpecialAnn(data [4]byte) { //specialVoice := int(data[0]) Exten := "2411" delay := data[0] cycleCount := data[1] timeLen := data[2] filename := "welcome" if int(cycleCount) == 255 { action.Playback(filename, 9999999, Exten, int(timeLen), int(delay)) } else { action.Playback(filename, int(cycleCount), Exten, int(timeLen), int(delay)) } } func EmgMsg(data [4]byte) { //specialVoice := int(data[0]) Exten := "2411" delay := data[0] cycleCount := data[1] timeLen := data[2] filename := "welcome" if int(cycleCount) == 255 { action.Playback(filename, 9999999, Exten, int(timeLen), int(delay)) } else { action.Playback(filename, int(cycleCount), Exten, int(timeLen), int(delay)) } } func AnnStop(data [4]byte) { if data[0] == 0x03 { asterisk.Hangup("2412") } else if data[0] == 0x04 { asterisk.Hangup("2412") } else if data[0] == 0x07 { asterisk.Hangup("2412") } else if data[0] == 0x08 { asterisk.Hangup("2412") } else if data[0] == 0x09 { asterisk.Hangup("2412") } } func DcsAnn(data [4]byte) { Exten := "2411" delay := data[0] cycleCount := data[1] timeLen := data[2] filename := "welcome" if cycleCount == 255 { action.Playback(filename, 9999999, Exten, int(timeLen), int(delay)) } else { action.Playback(filename, int(cycleCount), Exten, int(timeLen), int(delay)) } } func SelfCheck(data [4]byte) { check := data[0] delay := data[1] cycleCount := data[2] timeLen := data[3] filename := "welcome" Exten := "" if check == 0x01 { action.Playback(filename, int(cycleCount), Exten, int(timeLen), int(delay)) } else if check == 0x02 { asterisk.Hangup(Exten) } } func AlarmHandle(data [4]byte) { handler := data[0] //len := data[1] //src := data[2] if handler == 0x01 { //answer } else if handler == 0x02 { //hold } else if handler == 0x03 { //hangup } } func AlarmResetAll(data [4]byte) { if bytes.Equal(data[:], make([]byte, len(data))) { //reset all the alarm } } func RecordStorageConf(data [4]byte) { }