diff --git a/cmd/cgr-rater/cgr-rater.go b/cmd/cgr-rater/cgr-rater.go index f23f8c075..9b4d93a8f 100644 --- a/cmd/cgr-rater/cgr-rater.go +++ b/cmd/cgr-rater/cgr-rater.go @@ -23,6 +23,7 @@ import ( "flag" "fmt" "github.com/cgrates/cgrates/balancer2go" + "github.com/cgrates/cgrates/cdrs" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/mediator" "github.com/cgrates/cgrates/rater" @@ -57,6 +58,7 @@ var ( bal = balancer2go.NewBalancer() exitChan = make(chan bool) sm sessionmanager.SessionManager + medi *mediator.Mediator cfg *config.CGRConfig err error ) @@ -134,8 +136,8 @@ func startMediator(responder *rater.Responder, loggerDb rater.DataStorage) { // rater.Logger.Crit(fmt.Sprintf("Errors on config parsing: <%v>", cfgParseErr)) // exitChan <- true //} - - m, err := mediator.NewMediator(connector, loggerDb, cfg.MediatorSkipDB, cfg.MediatorCDROutDir, cfg.MediatorPseudoprepaid, + var err error + medi, err = mediator.NewMediator(connector, loggerDb, cfg.MediatorSkipDB, cfg.MediatorCDROutDir, cfg.MediatorPseudoprepaid, cfg.FreeswitchDirectionIdx, cfg.FreeswitchTORIdx, cfg.FreeswitchTenantIdx, cfg.FreeswitchSubjectIdx, cfg.FreeswitchAccountIdx, cfg.FreeswitchDestIdx, cfg.FreeswitchTimeStartIdx, cfg.FreeswitchDurationIdx, cfg.FreeswitchUUIDIdx) if err != nil { @@ -143,7 +145,7 @@ func startMediator(responder *rater.Responder, loggerDb rater.DataStorage) { exitChan <- true } - m.TrackCDRFiles(cfg.MediatorCDRInDir) + medi.TrackCDRFiles(cfg.MediatorCDRInDir) } func startSessionManager(responder *rater.Responder, loggerDb rater.DataStorage) { @@ -354,6 +356,11 @@ func main() { rater.Logger.Info("Starting CGRateS Mediator.") go startMediator(responder, loggerDb) } + if cfg.CDRServerEnabled { + rater.Logger.Info("Starting CGRateS CDR Server.") + cs := cdrs.New(loggerDb, medi) + go cs.StartCaptiuringCDRs() + } <-exitChan rater.Logger.Info("Stopped all components. CGRateS shutdown!") } diff --git a/config/config.go b/config/config.go index c41b326c5..db86514aa 100644 --- a/config/config.go +++ b/config/config.go @@ -89,6 +89,7 @@ type CGRConfig struct { FreeswitchDurationIdx string FreeswitchUUIDIdx string FreeswitchReconnects int // number of times to attempt reconnect after connect fails + CDRServerEnabled bool } // Instantiate a new CGRConfig setting defaults or reading from file