From b04f276fb68b65594751f38660457d536f92063b Mon Sep 17 00:00:00 2001 From: DanB Date: Sun, 4 Aug 2013 21:29:51 +0200 Subject: [PATCH] Removing configuration to enable cdr handlers since filtering is based on url and no extra resources are consumed by handlers --- cdrs/cdrs.go | 10 +++------- cmd/cgr-engine/cgr-engine.go | 3 ++- config/config.go | 20 +++++--------------- config/config_test.go | 8 ++------ config/test_data.txt | 4 +--- data/conf/cgrates.cfg | 6 +++--- 6 files changed, 16 insertions(+), 35 deletions(-) diff --git a/cdrs/cdrs.go b/cdrs/cdrs.go index 75a3a92d4..4ef805615 100644 --- a/cdrs/cdrs.go +++ b/cdrs/cdrs.go @@ -50,7 +50,7 @@ func fsCdrHandler(w http.ResponseWriter, r *http.Request) { } } -func genCdrHandler(w http.ResponseWriter, r *http.Request) { +func cgrCdrHandler(w http.ResponseWriter, r *http.Request) { body, _ := ioutil.ReadAll(r.Body) if genCdr, err := new(GenCdr).New(body); err == nil { storage.SetCdr(genCdr) @@ -77,11 +77,7 @@ func New(s engine.DataStorage, m *mediator.Mediator, c *config.CGRConfig) *CDRS } func (cdrs *CDRS) StartCapturingCDRs() { - if cfg.CDRSfsJSONEnabled { - http.HandleFunc("/freeswitch_json", fsCdrHandler) - } - if cfg.CDRSgenJSONEnabled { - http.HandleFunc("/generic_json", genCdrHandler) - } + http.HandleFunc("/cgr_json", cgrCdrHandler) // Attach CGR CDR Handler + http.HandleFunc("/freeswitch_json", fsCdrHandler) // Attach FreeSWITCH JSON CDR Handler http.ListenAndServe(cfg.CDRSListen, nil) } diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index ac921e780..c371d2ff0 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -370,10 +370,11 @@ func main() { go startMediator(responder, loggerDb) } - if cfg.CDRSListen != "" { + if cfg.CDRSEnabled { engine.Logger.Info("Starting CGRateS CDR Server.") go startCDRS(responder, loggerDb) } + if cfg.HistoryServerEnabled || cfg.HistoryAgentEnabled { engine.Logger.Info("Starting History Service.") go startHistoryScribe() diff --git a/config/config.go b/config/config.go index 80293b4e5..3fd9417db 100644 --- a/config/config.go +++ b/config/config.go @@ -66,10 +66,8 @@ type CGRConfig struct { SchedulerEnabled bool CDRSEnabled bool // Enable CDR Server service CDRSListen string // CDRS's listening interface: . - CDRSfsJSONEnabled bool // Enable the handler for FreeSWITCH JSON CDRs: . - CDRSgenJSONEnabled bool // Enable the handler for Generic JSON CDRs: . - CDRSMediator string // Address where to reach the Mediator. Empty for disabling mediation. <""|internal> CDRSExtraFields []string //Extra fields to store in CDRs + CDRSMediator string // Address where to reach the Mediator. Empty for disabling mediation. <""|internal> SMEnabled bool SMSwitchType string SMRater string // address where to access rater. Can be internal, direct rater address or the address of a balancer @@ -130,10 +128,8 @@ func (self *CGRConfig) setDefaults() error { self.SchedulerEnabled = false self.CDRSEnabled = false self.CDRSListen = "127.0.0.1:2022" - self.CDRSfsJSONEnabled = false - self.CDRSgenJSONEnabled = false - self.CDRSMediator = INTERNAL self.CDRSExtraFields = []string{} + self.CDRSMediator = INTERNAL self.MediatorEnabled = false self.MediatorListen = "127.0.0.1:2032" self.MediatorRater = "127.0.0.1:2012" @@ -277,20 +273,14 @@ func loadConfig(c *conf.ConfigFile) (*CGRConfig, error) { if hasOpt = c.HasOption("cdrs", "listen"); hasOpt { cfg.CDRSListen, _ = c.GetString("cdrs", "listen") } - if hasOpt = c.HasOption("cdrs", "freeswitch_json_enabled"); hasOpt { - cfg.CDRSfsJSONEnabled, _ = c.GetBool("cdrs", "freeswitch_json_enabled") - } - if hasOpt = c.HasOption("cdrs", "generic_json_enabled"); hasOpt { - cfg.CDRSgenJSONEnabled, _ = c.GetBool("cdrs", "generic_json_enabled") - } - if hasOpt = c.HasOption("cdrs", "mediator"); hasOpt { - cfg.CDRSMediator, _ = c.GetString("cdrs", "mediator") - } if hasOpt = c.HasOption("cdrs", "extra_fields"); hasOpt { if cfg.CDRSExtraFields, errParse = ConfigSlice(c, "cdrs", "extra_fields"); errParse != nil { return nil, errParse } } + if hasOpt = c.HasOption("cdrs", "mediator"); hasOpt { + cfg.CDRSMediator, _ = c.GetString("cdrs", "mediator") + } if hasOpt = c.HasOption("mediator", "enabled"); hasOpt { cfg.MediatorEnabled, _ = c.GetBool("mediator", "enabled") } diff --git a/config/config_test.go b/config/config_test.go index 97d273c55..3068d59b5 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -61,10 +61,8 @@ func TestDefaults(t *testing.T) { eCfg.SchedulerEnabled = false eCfg.CDRSEnabled = false eCfg.CDRSListen = "127.0.0.1:2022" - eCfg.CDRSfsJSONEnabled = false - eCfg.CDRSgenJSONEnabled = false - eCfg.CDRSMediator = INTERNAL eCfg.CDRSExtraFields = []string{} + eCfg.CDRSMediator = INTERNAL eCfg.MediatorEnabled = false eCfg.MediatorListen = "127.0.0.1:2032" eCfg.MediatorRater = "127.0.0.1:2012" @@ -158,10 +156,8 @@ func TestConfigFromFile(t *testing.T) { eCfg.SchedulerEnabled = true eCfg.CDRSEnabled = true eCfg.CDRSListen = "test" - eCfg.CDRSfsJSONEnabled = true - eCfg.CDRSgenJSONEnabled = true - eCfg.CDRSMediator = "test" eCfg.CDRSExtraFields = []string{"test"} + eCfg.CDRSMediator = "test" eCfg.MediatorEnabled = true eCfg.MediatorListen = "test" eCfg.MediatorRater = "test" diff --git a/config/test_data.txt b/config/test_data.txt index 95a552c87..132b16506 100644 --- a/config/test_data.txt +++ b/config/test_data.txt @@ -38,10 +38,8 @@ enabled = true # Starts Scheduler service: . [cdrs] enabled = true # Start the CDR Server service: . listen=test # CDRS's listening interface: . -freeswitch_json_enabled=true # Enable the handler for FreeSWITCH JSON CDRs: . -generic_json_enabled=true # Enable the handler for generic JSON CDRs: . +extra_fields = test # Extra fields to store in CDRs mediator = test # Address where to reach the Mediator. Empty for disabling mediation. <""|internal> -extra_fields = test # Extra fields to store in CDRs [mediator] enabled = true # Starts Mediator service: . diff --git a/data/conf/cgrates.cfg b/data/conf/cgrates.cfg index 881fe63c7..73d05e535 100644 --- a/data/conf/cgrates.cfg +++ b/data/conf/cgrates.cfg @@ -39,17 +39,16 @@ # enabled = false # Starts Scheduler service: . [cdrs] +# enabled = false # Start the CDR Server service: . # listen=127.0.0.1:2022 # CDRS's listening interface: . -# freeswitch_json_enabled=false # Enable the handler for FreeSWITCH JSON CDRs: . -# mediator = # Address where to reach the Mediator. Empty for disabling mediation. <""|internal> # extra_fields = # Extra fields to store in CDRs +# mediator = # Address where to reach the Mediator. Empty for disabling mediation. <""|internal> [mediator] # enabled = false # Starts Mediator service: . # listen=internal # Mediator's listening interface: . # rater = 127.0.0.1:2012 # Address where to reach the Rater: # rater_reconnects = 3 # Number of reconnects to rater before giving up. -# cdr_type = freeswitch_http_json # CDR type . # accid_field = accid # Name of field identifying accounting id used during mediation. Use index number in case of .csv cdrs. # subject_fields = subject # Name of subject fields to be used during mediation. Use index numbers in case of .csv cdrs. # reqtype_fields = reqtype # Name of request type fields to be used during mediation. Use index number in case of .csv cdrs. @@ -60,6 +59,7 @@ # destination_fields = destination # Name of destination fields to be used during mediation. Use index numbers in case of .csv cdrs. # time_answer_fields = time_answer # Name of time_answer fields to be used during mediation. Use index numbers in case of .csv cdrs. # duration_fields = duration # Name of duration fields to be used during mediation. Use index numbers in case of .csv cdrs. +# cdr_type = freeswitch_http_json # CDR type . # cdr_in_dir = /var/log/freeswitch/cdr-csv # Absolute path towards the directory where the CDRs are kept (file stored CDRs). # cdr_out_dir = /var/log/cgrates/cdr/out/freeswitch/csv # Absolute path towards the directory where processed CDRs will be exported (file stored CDRs).