package icsapp import ( "time" "gitlab.com/ics_cinnamon/voiceStatistics/icsconf" "gitlab.com/ics_cinnamon/voiceStatistics/icserror" "gitlab.com/ics_cinnamon/voiceStatistics/icsnet" "gitlab.com/ics_cinnamon/voiceStatistics/icsstat" "gitlab.com/ics_cinnamon/voiceStatistics/icssvc" ) const ( LINEEND1 = "\r\n" LINEEND2 = "EOM" ) type IcsExec struct { service *icssvc.IcsService config *icsconf.IcsConfig hbNet *icsnet.IcsTCPNet //pcap icspcap.IcsPcap } func Init(conf *icsconf.IcsConfig) (e *IcsExec) { e = &IcsExec{} e.service = icssvc.GetServiceStatus() e.config = conf //e.pcap = icspcap.New() return e } func (exe IcsExec) Execute() *icserror.IcsError { // l := icslog.GetIcsLog() icsstat.NewSidVal() for !exe.service.GetExit() { for exe.service.GetStop() { time.Sleep(time.Millisecond) } ///////////////////////////////////////////////////////////////////// // voice gateway start statistic tcp cmdDone := make(chan *icserror.IcsError) go func() { cmdErr := icsstat.ListenStatMNG() if cmdErr != nil { cmdDone <- cmdErr return } //defer sm.Close() //cmdDone <- nil }() ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // voice agent start statistic tcp cmdDone1 := make(chan *icserror.IcsError) go func() { cmdErr := icsstat.ListenStatMNG1() if cmdErr != nil { cmdDone1 <- cmdErr return } //defer sm.Close() //cmdDone <- nil }() ///////////////////////////////////////////////////////////////////// select { case err := <-cmdDone: // l.Printf(icslog.LOG_LEVEL_INFO, -1, "Closed Gateway Stat TCP Connection: %s", err) if err != nil { //err.Print() return err } case err1 := <-cmdDone1: // l.Printf(icslog.LOG_LEVEL_INFO, -1, "Closed Agent Stat TCP Connection: %s", err1) if err1 != nil { //err.Print() return err1 } } } return nil }