diff --git a/config/config.go b/config/config.go index 5d10aaeb5..7f9398b22 100644 --- a/config/config.go +++ b/config/config.go @@ -105,18 +105,22 @@ type CGRConfig struct { SMEnabled bool SMSwitchType string SMRater string // address where to access rater. Can be internal, direct rater address or the address of a balancer - SMRaterReconnects int // Number of reconnect attempts to rater + SMReconnects int // Number of reconnect attempts to rater SMDebitInterval int // the period to be debited in advanced during a call (in seconds) SMMaxCallDuration time.Duration // The maximum duration of a call SMMinCallDuration time.Duration // Only authorize calls with allowed duration bigger than this MediatorEnabled bool // Starts Mediator service: . MediatorRater string // Address where to reach the Rater: - MediatorRaterReconnects int // Number of reconnects to rater before giving up. + MediatorReconnects int // Number of reconnects to rater before giving up. DerivedChargers utils.DerivedChargers // System wide derived chargers, added to the account level ones CombinedDerivedChargers bool // Combine accounts specific derived_chargers with server configured FreeswitchServer string // freeswitch address host:port FreeswitchPass string // FS socket password FreeswitchReconnects int // number of times to attempt reconnect after connect fails + OsipsListenUdp string // Address where to listen for event datagrams coming from OpenSIPS + OsipsMiAddr string // Adress where to reach OpenSIPS mi_datagram module + OsipCDRS string // Address where to reach CDR Server, empty to disable CDR processing <""|internal|127.0.0.1:2013> + OsipsReconnects int // Number of attempts on connect failure. HistoryAgentEnabled bool // Starts History as an agent: . HistoryServer string // Address where to reach the master history server: HistoryServerEnabled bool // Starts History as server: . @@ -190,19 +194,23 @@ func (self *CGRConfig) setDefaults() error { } self.MediatorEnabled = false self.MediatorRater = "internal" - self.MediatorRaterReconnects = 3 + self.MediatorReconnects = 3 self.DerivedChargers = make(utils.DerivedChargers, 0) self.CombinedDerivedChargers = true self.SMEnabled = false self.SMSwitchType = FS self.SMRater = "internal" - self.SMRaterReconnects = 3 + self.SMReconnects = 3 self.SMDebitInterval = 10 self.SMMaxCallDuration = time.Duration(3) * time.Hour self.SMMinCallDuration = time.Duration(0) self.FreeswitchServer = "127.0.0.1:8021" self.FreeswitchPass = "ClueCon" self.FreeswitchReconnects = 5 + self.OsipsListenUdp = "127.0.0.1:2020" + self.OsipsMiAddr = "127.0.0.1:8020" + self.OsipCDRS = "internal" + self.OsipsReconnects = 3 self.HistoryAgentEnabled = false self.HistoryServerEnabled = false self.HistoryServer = "internal" @@ -493,8 +501,8 @@ func loadConfig(c *conf.ConfigFile) (*CGRConfig, error) { if hasOpt = c.HasOption("mediator", "rater"); hasOpt { cfg.MediatorRater, _ = c.GetString("mediator", "rater") } - if hasOpt = c.HasOption("mediator", "rater_reconnects"); hasOpt { - cfg.MediatorRaterReconnects, _ = c.GetInt("mediator", "rater_reconnects") + if hasOpt = c.HasOption("mediator", "reconnects"); hasOpt { + cfg.MediatorReconnects, _ = c.GetInt("mediator", "reconnects") } if hasOpt = c.HasOption("session_manager", "enabled"); hasOpt { cfg.SMEnabled, _ = c.GetBool("session_manager", "enabled") @@ -505,8 +513,8 @@ func loadConfig(c *conf.ConfigFile) (*CGRConfig, error) { if hasOpt = c.HasOption("session_manager", "rater"); hasOpt { cfg.SMRater, _ = c.GetString("session_manager", "rater") } - if hasOpt = c.HasOption("session_manager", "rater_reconnects"); hasOpt { - cfg.SMRaterReconnects, _ = c.GetInt("session_manager", "rater_reconnects") + if hasOpt = c.HasOption("session_manager", "reconnects"); hasOpt { + cfg.SMReconnects, _ = c.GetInt("session_manager", "reconnects") } if hasOpt = c.HasOption("session_manager", "debit_interval"); hasOpt { cfg.SMDebitInterval, _ = c.GetInt("session_manager", "debit_interval") @@ -532,6 +540,18 @@ func loadConfig(c *conf.ConfigFile) (*CGRConfig, error) { if hasOpt = c.HasOption("freeswitch", "reconnects"); hasOpt { cfg.FreeswitchReconnects, _ = c.GetInt("freeswitch", "reconnects") } + if hasOpt = c.HasOption("opensips", "listen_udp"); hasOpt { + cfg.OsipsListenUdp, _ = c.GetString("opensips", "listen_udp") + } + if hasOpt = c.HasOption("opensips", "mi_addr"); hasOpt { + cfg.OsipsMiAddr, _ = c.GetString("opensips", "mi_addr") + } + if hasOpt = c.HasOption("opensips", "cdrs"); hasOpt { + cfg.OsipCDRS, _ = c.GetString("opensips", "cdrs") + } + if hasOpt = c.HasOption("opensips", "reconnects"); hasOpt { + cfg.OsipsReconnects, _ = c.GetInt("opensips", "reconnects") + } if cfg.DerivedChargers, err = ParseCfgDerivedCharging(c); err != nil { return nil, err } diff --git a/config/config_test.go b/config/config_test.go index c41eb214d..70306721f 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -107,17 +107,21 @@ func TestDefaults(t *testing.T) { } eCfg.MediatorEnabled = false eCfg.MediatorRater = "internal" - eCfg.MediatorRaterReconnects = 3 + eCfg.MediatorReconnects = 3 eCfg.SMEnabled = false eCfg.SMSwitchType = FS eCfg.SMRater = "internal" - eCfg.SMRaterReconnects = 3 + eCfg.SMReconnects = 3 eCfg.SMDebitInterval = 10 eCfg.SMMinCallDuration = time.Duration(0) eCfg.SMMaxCallDuration = time.Duration(3) * time.Hour eCfg.FreeswitchServer = "127.0.0.1:8021" eCfg.FreeswitchPass = "ClueCon" eCfg.FreeswitchReconnects = 5 + eCfg.OsipsListenUdp = "127.0.0.1:2020" + eCfg.OsipsMiAddr = "127.0.0.1:8020" + eCfg.OsipCDRS = "internal" + eCfg.OsipsReconnects = 3 eCfg.DerivedChargers = make(utils.DerivedChargers, 0) eCfg.CombinedDerivedChargers = true eCfg.HistoryAgentEnabled = false @@ -242,17 +246,21 @@ func TestConfigFromFile(t *testing.T) { } eCfg.MediatorEnabled = true eCfg.MediatorRater = "test" - eCfg.MediatorRaterReconnects = 99 + eCfg.MediatorReconnects = 99 eCfg.SMEnabled = true eCfg.SMSwitchType = "test" eCfg.SMRater = "test" - eCfg.SMRaterReconnects = 99 + eCfg.SMReconnects = 99 eCfg.SMDebitInterval = 99 eCfg.SMMinCallDuration = time.Duration(98) * time.Second eCfg.SMMaxCallDuration = time.Duration(99) * time.Second eCfg.FreeswitchServer = "test" eCfg.FreeswitchPass = "test" eCfg.FreeswitchReconnects = 99 + eCfg.OsipsListenUdp = "test" + eCfg.OsipsMiAddr = "test" + eCfg.OsipCDRS = "test" + eCfg.OsipsReconnects = 99 eCfg.DerivedChargers = utils.DerivedChargers{&utils.DerivedCharger{RunId: "test", RunFilters: "", ReqTypeField: "test", DirectionField: "test", TenantField: "test", CategoryField: "test", AccountField: "test", SubjectField: "test", DestinationField: "test", SetupTimeField: "test", AnswerTimeField: "test", UsageField: "test"}} eCfg.CombinedDerivedChargers = true diff --git a/config/test_data.txt b/config/test_data.txt index 48662cf0d..b492c4378 100644 --- a/config/test_data.txt +++ b/config/test_data.txt @@ -83,22 +83,28 @@ extra_fields = test:test # Field identifiers of the fields to add in extra field [mediator] enabled = true # Starts Mediacategory service: . rater = test # Address where to reach the Rater: -rater_reconnects = 99 # Number of reconnects to rater before giving up. +reconnects = 99 # Number of reconnects to rater before giving up. [session_manager] enabled = true # Starts SessionManager service: . switch_type = test # Defines the type of switch behind: . rater = test # Address where to reach the Rater. -rater_reconnects = 99 # Number of reconnects to rater before giving up. +reconnects = 99 # Number of reconnects to rater before giving up. debit_interval = 99 # Interval to perform debits on. -max_call_duration = 99 # Maximum call duration a prepaid call can last -min_call_duration = 98 # Only authorize calls with allowed duration bigger than this +min_call_duration = 98 # Only authorize calls with allowed duration bigger than this +max_call_duration = 99 # Maximum call duration a prepaid call can last [freeswitch] server = test # Adress where to connect to FreeSWITCH socket. passwd = test # FreeSWITCH socket password. reconnects = 99 # Number of attempts on connect failure. +[opensips] +listen_udp = test # Address where to listen for event datagrams coming from OpenSIPS +mi_addr = test # Adress where to reach OpenSIPS mi_datagram module +cdrs = test # Address where to reach CDR Server, empty to disable CDR processing <""|internal|127.0.0.1:2013> +reconnects = 99 # Number of attempts on connect failure. + [derived_charging] run_ids = test # Identifiers of additional sessions control. run_filters = # No filters applied diff --git a/data/conf/cgrates.cfg b/data/conf/cgrates.cfg index ece39cde0..794601750 100644 --- a/data/conf/cgrates.cfg +++ b/data/conf/cgrates.cfg @@ -90,10 +90,10 @@ # rater_reconnects = 3 # Number of reconnects to rater before giving up. [session_manager] -# enabled = false # Starts SessionManager service: . -# switch_type = freeswitch # Defines the type of switch behind: . -# rater = internal # Address where to reach the Rater. -# rater_reconnects = 3 # Number of reconnects to rater before giving up. +# enabled = false # Starts SessionManager service: +# switch_type = freeswitch # Defines the type of switch behind: +# rater = internal # Address where to reach the Rater +# reconnects = 3 # Number of reconnects to rater/cdrs before giving up. # debit_interval = 10 # Interval to perform debits on. # min_call_duration = 0s # Only authorize calls with allowed duration bigger than this # max_call_duration = 3h # Maximum call duration a prepaid call can last @@ -104,6 +104,12 @@ # passwd = ClueCon # FreeSWITCH socket password. # reconnects = 5 # Number of attempts on connect failure. +[opensips] +# listen_udp = 127.0.0.1:2020 # Address where to listen for event datagrams coming from OpenSIPS +# mi_addr = 127.0.0.1:8020 # Adress where to reach OpenSIPS mi_datagram module +# cdrs = internal # Address where to reach CDR Server, empty to disable CDR processing <""|internal|127.0.0.1:2013> +# reconnects = 3 # Number of attempts on connect failure. + [derived_charging] # run_ids = # Identifiers of additional sessions control. # run_filters = # List of cdr field filters for each run.