From 5144febe20b3a708cdb0b4f8b1d6aef44c785c53 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Fri, 20 May 2022 16:20:14 +0300 Subject: [PATCH] Add max_reconnect_interval option for fsConn config --- config/libconfig_json.go | 9 +++++---- config/sessionscfg.go | 30 ++++++++++++++++++------------ 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/config/libconfig_json.go b/config/libconfig_json.go index 97ae23c22..954bffb40 100644 --- a/config/libconfig_json.go +++ b/config/libconfig_json.go @@ -386,10 +386,11 @@ type FreeswitchAgentJsonCfg struct { // Represents one connection instance towards FreeSWITCH type FsConnJsonCfg struct { - Address *string - Password *string - Reconnects *int - Alias *string + Address *string + Password *string + Reconnects *int + MaxReconnectInterval *string + Alias *string } type RPCConnsJson struct { diff --git a/config/sessionscfg.go b/config/sessionscfg.go index fe53783d2..2575ba449 100644 --- a/config/sessionscfg.go +++ b/config/sessionscfg.go @@ -38,10 +38,11 @@ func NewDfltFsConnConfig() *FsConnCfg { // FsConnCfg one connection to FreeSWITCH server type FsConnCfg struct { - Address string - Password string - Reconnects int - Alias string + Address string + Password string + Reconnects int + MaxReconnectInterval string + Alias string } func (fs *FsConnCfg) loadFromJSONCfg(jsnCfg *FsConnJsonCfg) error { @@ -57,6 +58,9 @@ func (fs *FsConnCfg) loadFromJSONCfg(jsnCfg *FsConnJsonCfg) error { if jsnCfg.Reconnects != nil { fs.Reconnects = *jsnCfg.Reconnects } + if jsnCfg.MaxReconnectInterval != nil { + fs.MaxReconnectInterval = *jsnCfg.MaxReconnectInterval + } fs.Alias = fs.Address if jsnCfg.Alias != nil && *jsnCfg.Alias != "" { fs.Alias = *jsnCfg.Alias @@ -68,20 +72,22 @@ func (fs *FsConnCfg) loadFromJSONCfg(jsnCfg *FsConnJsonCfg) error { // AsMapInterface returns the config as a map[string]interface{} func (fs *FsConnCfg) AsMapInterface() map[string]interface{} { return map[string]interface{}{ - utils.AddressCfg: fs.Address, - utils.Password: fs.Password, - utils.ReconnectsCfg: fs.Reconnects, - utils.AliasCfg: fs.Alias, + utils.AddressCfg: fs.Address, + utils.Password: fs.Password, + utils.ReconnectsCfg: fs.Reconnects, + utils.MaxReconnectIntervalCfg: fs.MaxReconnectInterval, + utils.AliasCfg: fs.Alias, } } // Clone returns a deep copy of AsteriskAgentCfg func (fs FsConnCfg) Clone() *FsConnCfg { return &FsConnCfg{ - Address: fs.Address, - Password: fs.Password, - Reconnects: fs.Reconnects, - Alias: fs.Alias, + Address: fs.Address, + Password: fs.Password, + Reconnects: fs.Reconnects, + MaxReconnectInterval: fs.MaxReconnectInterval, + Alias: fs.Alias, } }