config

package
v0.10.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: GPL-3.0 Imports: 22 Imported by: 61

Documentation

Index

Constants

View Source
const (
	GENERAL_JSN        = "general"
	CACHE_JSN          = "caches"
	LISTEN_JSN         = "listen"
	HTTP_JSN           = "http"
	DATADB_JSN         = "data_db"
	STORDB_JSN         = "stor_db"
	FilterSjsn         = "filters"
	RALS_JSN           = "rals"
	SCHEDULER_JSN      = "schedulers"
	CDRS_JSN           = "cdrs"
	CDRE_JSN           = "cdre"
	SessionSJson       = "sessions"
	FreeSWITCHAgentJSN = "freeswitch_agent"
	KamailioAgentJSN   = "kamailio_agent"
	AsteriskAgentJSN   = "asterisk_agent"
	DA_JSN             = "diameter_agent"
	RA_JSN             = "radius_agent"
	HttpAgentJson      = "http_agent"
	ATTRIBUTE_JSN      = "attributes"
	RESOURCES_JSON     = "resources"
	STATS_JSON         = "stats"
	THRESHOLDS_JSON    = "thresholds"
	SupplierSJson      = "suppliers"
	LoaderJson         = "loaders"
	MAILER_JSN         = "mailer"
	SURETAX_JSON       = "suretax"
	DispatcherSJson    = "dispatchers"
	CgrLoaderCfgJson   = "loader"
	CgrMigratorCfgJson = "migrator"
	ChargerSCfgJson    = "chargers"
	TlsCfgJson         = "tls"
	AnalyzerCfgJson    = "analyzers"
	ApierS             = "apiers"
	DNSAgentJson       = "dns_agent"
	ERsJson            = "ers"
	RPCConnsJsonName   = "rpc_conns"
)
View Source
const CGRATES_CFG_JSON = `` /* 51183-byte string literal not displayed */

Variables

This section is empty.

Functions

func ElementText

func ElementText(xmlElement *xmlquery.Node, elmntPath string) (string, error)

ElementText will process the node to extract the elementName's text out of it (only first one found) returns utils.ErrNotFound if the element is not found in the node Make the method exportable until we remove the ers

func NMAsCGREvent added in v0.10.1

func NMAsCGREvent(nM *utils.OrderedNavigableMap, tnt string, pathSep string) (cgrEv *utils.CGREvent)

NMAsCGREvent builds a CGREvent considering Time as time.Now() and Event as linear map[string]any with joined paths treats particular case when the value of map is []*NMItem - used in agents/AgentRequest

func NewFWVProvider

func NewFWVProvider(record string) (dP utils.DataProvider)

NewfwvProvider constructs a utils.DataProvider

func NewObjectDP

func NewObjectDP(obj any, prfxSls []string) (dP utils.DataProvider)

NewObjectDP constructs a DataProvider

func NewRjReader

func NewRjReader(rdr io.Reader) (r *rjReader, err error)

creates a new rjReader from a io.Reader

func NewRjReaderFromBytes

func NewRjReaderFromBytes(b []byte) *rjReader

creates a new rjReader from a slice of bytes

func NewSliceDP

func NewSliceDP(record []string) (dP utils.DataProvider)

NewSliceDP constructs a utils.DataProvider

func NewXmlProvider

func NewXmlProvider(req *xmlquery.Node, cdrPath utils.HierarchyPath) (dP utils.DataProvider)

NewXmlProvider constructs a utils.DataProvider

func ReadEnv

func ReadEnv(key string) (string, error)

ReadEnv reads the environment variable

func SetCgrConfig

func SetCgrConfig(cfg *CGRConfig)

SetCgrConfig is used to set system configuration from other places

Types

type AnalyzerSCfg

type AnalyzerSCfg struct {
	Enabled bool
}

AttributeSCfg is the configuration of attribute service

func (*AnalyzerSCfg) AsMapInterface added in v0.10.1

func (alS *AnalyzerSCfg) AsMapInterface() map[string]any

type AnalyzerSJsonCfg

type AnalyzerSJsonCfg struct {
	Enabled *bool
}

Analyzer service json config section

type ApierCfg

type ApierCfg struct {
	Enabled         bool
	CachesConns     []string // connections towards Cache
	SchedulerConns  []string // connections towards Scheduler
	AttributeSConns []string // connections towards AttributeS
}

ApierCfg is the configuration of Apier service

func (*ApierCfg) AsMapInterface added in v0.10.1

func (aCfg *ApierCfg) AsMapInterface() map[string]any

type ApierJsonCfg

type ApierJsonCfg struct {
	Enabled          *bool
	Caches_conns     *[]string
	Scheduler_conns  *[]string
	Attributes_conns *[]string
}

type AstConnJsonCfg

type AstConnJsonCfg struct {
	Alias            *string
	Address          *string
	User             *string
	Password         *string
	Connect_attempts *int
	Reconnects       *int
}

type AsteriskAgentCfg

type AsteriskAgentCfg struct {
	Enabled       bool
	SessionSConns []string
	CreateCDR     bool
	AsteriskConns []*AsteriskConnCfg
}

func (*AsteriskAgentCfg) AsMapInterface added in v0.10.1

func (aCfg *AsteriskAgentCfg) AsMapInterface() map[string]any

type AsteriskAgentJsonCfg

type AsteriskAgentJsonCfg struct {
	Enabled        *bool
	Sessions_conns *[]string
	Create_cdr     *bool
	Asterisk_conns *[]*AstConnJsonCfg
}

type AsteriskConnCfg

type AsteriskConnCfg struct {
	Alias           string
	Address         string
	User            string
	Password        string
	ConnectAttempts int
	Reconnects      int
}

func NewDefaultAsteriskConnCfg

func NewDefaultAsteriskConnCfg() *AsteriskConnCfg

Uses stored defaults so we can pre-populate by loading from JSON config

func (*AsteriskConnCfg) AsMapInterface added in v0.10.1

func (aConnCfg *AsteriskConnCfg) AsMapInterface() map[string]any

type AttributeSCfg

type AttributeSCfg struct {
	Enabled             bool
	IndexedSelects      bool
	StringIndexedFields *[]string
	PrefixIndexedFields *[]string
	ProcessRuns         int
	NestedFields        bool
}

AttributeSCfg is the configuration of attribute service

func (*AttributeSCfg) AsMapInterface added in v0.10.1

func (alS *AttributeSCfg) AsMapInterface() map[string]any

type AttributeSJsonCfg

type AttributeSJsonCfg struct {
	Enabled               *bool
	Indexed_selects       *bool
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Nested_fields         *bool // applies when indexed fields is not defined
	Process_runs          *int
}

Attribute service config section

type CGRConfig

type CGRConfig struct {
	MaxCallDuration time.Duration // The maximum call duration (used by responder when querying DerivedCharging) // ToDo: export it in configuration file
	DataFolderPath  string        // Path towards data folder, for tests internal usage, not loading out of .json options
	ConfigPath      string        // Path towards config

	CdreProfiles map[string]*CdreCfg // Cdre config profiles

	ConfigReloads map[string]chan struct{} // Signals to specific entities that a config reload should occur
	// contains filtered or unexported fields
}

Holds system configuration, defaults are overwritten with values from config file if found

func CgrConfig

func CgrConfig() *CGRConfig

CgrConfig is used to retrieve system configuration from other packages

func NewCGRConfigFromJsonStringWithDefaults

func NewCGRConfigFromJsonStringWithDefaults(cfgJsonStr string) (cfg *CGRConfig, err error)

func NewCGRConfigFromPath

func NewCGRConfigFromPath(path string) (cfg *CGRConfig, err error)

Reads all .json files out of a folder/subfolders and loads them up in lexical order

func NewDefaultCGRConfig

func NewDefaultCGRConfig() (cfg *CGRConfig, err error)

func (*CGRConfig) AnalyzerSCfg

func (cfg *CGRConfig) AnalyzerSCfg() *AnalyzerSCfg

AnalyzerSCfg returns the config for AnalyzerS

func (*CGRConfig) ApierCfg

func (cfg *CGRConfig) ApierCfg() *ApierCfg

ApierCfg reads the Apier configuration

func (*CGRConfig) AsMapInterface added in v0.10.1

func (cfg *CGRConfig) AsMapInterface(separator string) map[string]any

func (*CGRConfig) AsteriskAgentCfg

func (cfg *CGRConfig) AsteriskAgentCfg() *AsteriskAgentCfg

AsteriskAgentCfg returns the config for AsteriskAgent

func (*CGRConfig) AttributeSCfg

func (cfg *CGRConfig) AttributeSCfg() *AttributeSCfg

AttributeSCfg returns the config for AttributeS

func (*CGRConfig) CacheCfg

func (cfg *CGRConfig) CacheCfg() CacheCfg

CacheCfg returns the config for Cache

func (*CGRConfig) Call

func (cfg *CGRConfig) Call(serviceMethod string,
	args any, reply any) error

Call implements birpc.ClientConnector interface for internal RPC

func (*CGRConfig) CdrsCfg

func (cfg *CGRConfig) CdrsCfg() *CdrsCfg

CdrsCfg returns the config for CDR Server

func (*CGRConfig) ChargerSCfg

func (cfg *CGRConfig) ChargerSCfg() *ChargerSCfg

ChargerSCfg returns the config for ChargerS

func (*CGRConfig) CheckConfigSanity

func (cfg *CGRConfig) CheckConfigSanity() error

Exported in cgr-engine

func (*CGRConfig) DNSAgentCfg

func (cfg *CGRConfig) DNSAgentCfg() *DNSAgentCfg

DNSAgentCfg returns the config for DNS Agent

func (*CGRConfig) DataDbCfg

func (cfg *CGRConfig) DataDbCfg() *DataDbCfg

DataDbCfg returns the config for DataDb

func (*CGRConfig) DiameterAgentCfg

func (cfg *CGRConfig) DiameterAgentCfg() *DiameterAgentCfg

DiameterAgentCfg returns the config for Diameter Agent

func (*CGRConfig) DispatcherSCfg

func (cfg *CGRConfig) DispatcherSCfg() *DispatcherSCfg

DispatcherSCfg returns the config for DispatcherS

func (*CGRConfig) ERsCfg

func (cfg *CGRConfig) ERsCfg() *ERsCfg

ERsCfg reads the EventReader configuration

func (*CGRConfig) FilterSCfg

func (cfg *CGRConfig) FilterSCfg() *FilterSCfg

FilterSCfg returns the config for FilterS

func (*CGRConfig) FsAgentCfg

func (cfg *CGRConfig) FsAgentCfg() *FsAgentCfg

FsAgentCfg returns the config for FsAgent

func (*CGRConfig) GeneralCfg

func (cfg *CGRConfig) GeneralCfg() *GeneralCfg

GeneralCfg returns the General config section

func (*CGRConfig) GetReloadChan

func (cfg *CGRConfig) GetReloadChan(sectID string) chan struct{}

GetReloadChan returns the reload chanel for the given section

func (*CGRConfig) HTTPCfg

func (cfg *CGRConfig) HTTPCfg() *HTTPCfg

HTTPCfg returns the config for HTTP

func (*CGRConfig) HttpAgentCfg

func (cfg *CGRConfig) HttpAgentCfg() []*HttpAgentCfg

HttpAgentCfg returns the config for HttpAgent

func (*CGRConfig) KamAgentCfg

func (cfg *CGRConfig) KamAgentCfg() *KamAgentCfg

KamAgentCfg returns the config for KamAgent

func (*CGRConfig) LazySanityCheck

func (cfg *CGRConfig) LazySanityCheck()

func (*CGRConfig) ListenCfg

func (cfg *CGRConfig) ListenCfg() *ListenCfg

ListenCfg returns the server Listen config

func (*CGRConfig) LoaderCfg

func (cfg *CGRConfig) LoaderCfg() LoaderSCfgs

LoaderCfg returns the Loader Service

func (*CGRConfig) LoaderCgrCfg

func (cfg *CGRConfig) LoaderCgrCfg() *LoaderCgrCfg

LoaderCgrCfg returns the config for cgr-loader

func (*CGRConfig) MailerCfg

func (cfg *CGRConfig) MailerCfg() *MailerCfg

MailerCfg returns the config for Mailer

func (*CGRConfig) MigratorCgrCfg

func (cfg *CGRConfig) MigratorCgrCfg() *MigratorCgrCfg

MigratorCgrCfg returns the config for Migrator

func (*CGRConfig) RPCConns

func (cfg *CGRConfig) RPCConns() map[string]*RPCConn

RPCConns reads the RPCConns configuration

func (*CGRConfig) RadiusAgentCfg

func (cfg *CGRConfig) RadiusAgentCfg() *RadiusAgentCfg

RadiusAgentCfg returns the config for Radius Agent

func (*CGRConfig) RalsCfg

func (cfg *CGRConfig) RalsCfg() *RalsCfg

RalsCfg returns the config for Ral Service

func (*CGRConfig) ResourceSCfg

func (cfg *CGRConfig) ResourceSCfg() *ResourceSConfig

ResourceSCfg returns the config for ResourceS

func (*CGRConfig) SchedulerCfg

func (cfg *CGRConfig) SchedulerCfg() *SchedulerCfg

SchedulerCfg returns the config for Scheduler

func (*CGRConfig) SessionSCfg

func (cfg *CGRConfig) SessionSCfg() *SessionSCfg

SessionSCfg returns the config for SessionS

func (*CGRConfig) StatSCfg

func (cfg *CGRConfig) StatSCfg() *StatSCfg

StatSCfg returns the config for StatS

func (*CGRConfig) StorDbCfg

func (cfg *CGRConfig) StorDbCfg() *StorDbCfg

StorDbCfg returns the config for StorDb

func (*CGRConfig) SupplierSCfg

func (cfg *CGRConfig) SupplierSCfg() *SupplierSCfg

SupplierSCfg returns the config for SupplierS

func (*CGRConfig) SureTaxCfg

func (cfg *CGRConfig) SureTaxCfg() *SureTaxCfg

SureTaxCfg use locking to retrieve the configuration, possibility later for runtime reload

func (*CGRConfig) ThresholdSCfg

func (cfg *CGRConfig) ThresholdSCfg() *ThresholdSCfg

ThresholdSCfg returns the config for ThresholdS

func (*CGRConfig) TlsCfg

func (cfg *CGRConfig) TlsCfg() *TlsCfg

TlsCfg returns the config for Tls

func (*CGRConfig) V1GetConfigSection

func (cfg *CGRConfig) V1GetConfigSection(args *StringWithArgDispatcher, reply *map[string]any) (err error)

V1GetConfigSection will retrieve from CGRConfig a section

func (*CGRConfig) V1ReloadConfigFromJSON

func (cfg *CGRConfig) V1ReloadConfigFromJSON(args *JSONReloadWithArgDispatcher, reply *string) (err error)

V1ReloadConfigFromJSON reloads the sections of configz

func (*CGRConfig) V1ReloadConfigFromPath

func (cfg *CGRConfig) V1ReloadConfigFromPath(args *ConfigReloadWithArgDispatcher, reply *string) (err error)

V1ReloadConfigFromPath reloads the configuration

type CacheCfg

type CacheCfg map[string]*CacheParamCfg

CacheCfg used to store the cache config

func (CacheCfg) AddTmpCaches

func (cCfg CacheCfg) AddTmpCaches()

AddTmpCaches adds all the temotrary caches configuration needed

func (*CacheCfg) AsMapInterface added in v0.10.1

func (cCfg *CacheCfg) AsMapInterface() map[string]any

func (CacheCfg) AsTransCacheConfig

func (cCfg CacheCfg) AsTransCacheConfig() (tcCfg map[string]*ltcache.CacheConfig)

AsTransCacheConfig transforms the cache config in ltcache config

type CacheJsonCfg

type CacheJsonCfg map[string]*CacheParamJsonCfg

type CacheParamCfg

type CacheParamCfg struct {
	Limit     int
	TTL       time.Duration
	StaticTTL bool
	Precache  bool
}

CacheParamCfg represents the config of a single cache partition

func (*CacheParamCfg) AsMapInterface added in v0.10.1

func (cParam *CacheParamCfg) AsMapInterface() map[string]any

type CacheParamJsonCfg

type CacheParamJsonCfg struct {
	Limit      *int
	Ttl        *string
	Static_ttl *bool
	Precache   *bool
}

type CdreCfg

type CdreCfg struct {
	ExportFormat      string
	ExportPath        string
	Filters           []string
	Tenant            string
	AttributeSContext string
	Synchronous       bool
	Attempts          int
	FieldSeparator    rune
	Fields            []*FCTemplate
}

One instance of CdrExporter

func (*CdreCfg) AsMapInterface added in v0.10.1

func (cdre *CdreCfg) AsMapInterface(separator string) map[string]any

func (*CdreCfg) Clone

func (self *CdreCfg) Clone() *CdreCfg

Clone itself into a new CdreCfg

type CdreJsonCfg

type CdreJsonCfg struct {
	Export_format      *string
	Export_path        *string
	Filters            *[]string
	Tenant             *string
	Attributes_context *string
	Synchronous        *bool
	Attempts           *int
	Field_separator    *string
	Fields             *[]*FcTemplateJsonCfg
}

Cdre config section

type CdrsCfg

type CdrsCfg struct {
	Enabled          bool              // Enable CDR Server service
	ExtraFields      []*utils.RSRField // Extra fields to store in CDRs
	StoreCdrs        bool              // store cdrs in storDb
	SMCostRetries    int
	ChargerSConns    []string
	RaterConns       []string
	AttributeSConns  []string
	ThresholdSConns  []string
	StatSConns       []string
	OnlineCDRExports []string // list of CDRE templates to use for real-time CDR exports
}

func (*CdrsCfg) AsMapInterface added in v0.10.1

func (cdrscfg *CdrsCfg) AsMapInterface() map[string]any

type CdrsJsonCfg

type CdrsJsonCfg struct {
	Enabled              *bool
	Extra_fields         *[]string
	Store_cdrs           *bool
	Session_cost_retries *int
	Chargers_conns       *[]string
	Rals_conns           *[]string
	Attributes_conns     *[]string
	Thresholds_conns     *[]string
	Stats_conns          *[]string
	Online_cdr_exports   *[]string
}

Cdrs config section

type CgrJsonCfg

type CgrJsonCfg map[string]*json.RawMessage

Main object holding the loaded config as section raw messages

func NewCgrJsonCfgFromBytes

func NewCgrJsonCfgFromBytes(buf []byte) (cgrJsonCfg *CgrJsonCfg, err error)

Loads the json config out of io.Reader, eg other sources than file, maybe over http

func (CgrJsonCfg) AnalyzerCfgJson

func (self CgrJsonCfg) AnalyzerCfgJson() (*AnalyzerSJsonCfg, error)

func (CgrJsonCfg) ApierCfgJson

func (self CgrJsonCfg) ApierCfgJson() (*ApierJsonCfg, error)

func (CgrJsonCfg) AsteriskAgentJsonCfg

func (self CgrJsonCfg) AsteriskAgentJsonCfg() (*AsteriskAgentJsonCfg, error)

func (CgrJsonCfg) AttributeServJsonCfg

func (cgrJsn CgrJsonCfg) AttributeServJsonCfg() (*AttributeSJsonCfg, error)

func (CgrJsonCfg) CacheJsonCfg

func (self CgrJsonCfg) CacheJsonCfg() (*CacheJsonCfg, error)

func (CgrJsonCfg) CdreJsonCfgs

func (self CgrJsonCfg) CdreJsonCfgs() (map[string]*CdreJsonCfg, error)

func (CgrJsonCfg) CdrsJsonCfg

func (self CgrJsonCfg) CdrsJsonCfg() (*CdrsJsonCfg, error)

func (CgrJsonCfg) ChargerServJsonCfg

func (cgrJsn CgrJsonCfg) ChargerServJsonCfg() (*ChargerSJsonCfg, error)

func (CgrJsonCfg) DNSAgentJsonCfg

func (self CgrJsonCfg) DNSAgentJsonCfg() (da *DNSAgentJsonCfg, err error)

func (CgrJsonCfg) DbJsonCfg

func (self CgrJsonCfg) DbJsonCfg(section string) (*DbJsonCfg, error)

func (CgrJsonCfg) DiameterAgentJsonCfg

func (self CgrJsonCfg) DiameterAgentJsonCfg() (*DiameterAgentJsonCfg, error)

func (CgrJsonCfg) DispatcherSJsonCfg

func (self CgrJsonCfg) DispatcherSJsonCfg() (*DispatcherSJsonCfg, error)

func (CgrJsonCfg) ERsJsonCfg

func (self CgrJsonCfg) ERsJsonCfg() (erSCfg *ERsJsonCfg, err error)

func (CgrJsonCfg) FilterSJsonCfg

func (jsnCfg CgrJsonCfg) FilterSJsonCfg() (*FilterSJsonCfg, error)

func (CgrJsonCfg) FreeswitchAgentJsonCfg

func (self CgrJsonCfg) FreeswitchAgentJsonCfg() (*FreeswitchAgentJsonCfg, error)

func (CgrJsonCfg) GeneralJsonCfg

func (self CgrJsonCfg) GeneralJsonCfg() (*GeneralJsonCfg, error)

func (CgrJsonCfg) HttpAgentJsonCfg

func (self CgrJsonCfg) HttpAgentJsonCfg() (*[]*HttpAgentJsonCfg, error)

func (CgrJsonCfg) HttpJsonCfg

func (self CgrJsonCfg) HttpJsonCfg() (*HTTPJsonCfg, error)

func (CgrJsonCfg) KamAgentJsonCfg

func (self CgrJsonCfg) KamAgentJsonCfg() (*KamAgentJsonCfg, error)

func (CgrJsonCfg) ListenJsonCfg

func (self CgrJsonCfg) ListenJsonCfg() (*ListenJsonCfg, error)

func (CgrJsonCfg) LoaderCfgJson

func (self CgrJsonCfg) LoaderCfgJson() (*LoaderCfgJson, error)

func (CgrJsonCfg) LoaderJsonCfg

func (self CgrJsonCfg) LoaderJsonCfg() ([]*LoaderJsonCfg, error)

func (CgrJsonCfg) MailerJsonCfg

func (self CgrJsonCfg) MailerJsonCfg() (*MailerJsonCfg, error)

func (CgrJsonCfg) MigratorCfgJson

func (self CgrJsonCfg) MigratorCfgJson() (*MigratorCfgJson, error)

func (CgrJsonCfg) RPCConnJsonCfg

func (self CgrJsonCfg) RPCConnJsonCfg() (map[string]*RPCConnsJson, error)

func (CgrJsonCfg) RadiusAgentJsonCfg

func (self CgrJsonCfg) RadiusAgentJsonCfg() (*RadiusAgentJsonCfg, error)

func (CgrJsonCfg) RalsJsonCfg

func (self CgrJsonCfg) RalsJsonCfg() (*RalsJsonCfg, error)

func (CgrJsonCfg) ResourceSJsonCfg

func (self CgrJsonCfg) ResourceSJsonCfg() (*ResourceSJsonCfg, error)

func (CgrJsonCfg) SchedulerJsonCfg

func (self CgrJsonCfg) SchedulerJsonCfg() (*SchedulerJsonCfg, error)

func (CgrJsonCfg) SessionSJsonCfg

func (self CgrJsonCfg) SessionSJsonCfg() (*SessionSJsonCfg, error)

func (CgrJsonCfg) StatSJsonCfg

func (self CgrJsonCfg) StatSJsonCfg() (*StatServJsonCfg, error)

func (CgrJsonCfg) SupplierSJsonCfg

func (self CgrJsonCfg) SupplierSJsonCfg() (*SupplierSJsonCfg, error)

func (CgrJsonCfg) SureTaxJsonCfg

func (self CgrJsonCfg) SureTaxJsonCfg() (*SureTaxJsonCfg, error)

func (CgrJsonCfg) ThresholdSJsonCfg

func (self CgrJsonCfg) ThresholdSJsonCfg() (*ThresholdSJsonCfg, error)

func (CgrJsonCfg) TlsCfgJson

func (self CgrJsonCfg) TlsCfgJson() (*TlsJsonCfg, error)

type ChargerSCfg

type ChargerSCfg struct {
	Enabled             bool
	IndexedSelects      bool
	AttributeSConns     []string
	StringIndexedFields *[]string
	PrefixIndexedFields *[]string
	NestedFields        bool
}

SupplierSCfg is the configuration of supplier service

func (*ChargerSCfg) AsMapInterface added in v0.10.1

func (cS *ChargerSCfg) AsMapInterface() map[string]any

type ChargerSJsonCfg

type ChargerSJsonCfg struct {
	Enabled               *bool
	Indexed_selects       *bool
	Attributes_conns      *[]string
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Nested_fields         *bool // applies when indexed fields is not defined
}

ChargerSJsonCfg service config section

type ConfigReloadWithArgDispatcher

type ConfigReloadWithArgDispatcher struct {
	*utils.ArgDispatcher
	utils.TenantArg
	Path    string
	Section string
}

type DNSAgentCfg

type DNSAgentCfg struct {
	Enabled           bool
	Listen            string
	ListenNet         string // udp or tcp
	SessionSConns     []string
	Timezone          string
	RequestProcessors []*RequestProcessor
}

func (*DNSAgentCfg) AsMapInterface added in v0.10.1

func (da *DNSAgentCfg) AsMapInterface(separator string) map[string]any

type DNSAgentJsonCfg

type DNSAgentJsonCfg struct {
	Enabled            *bool
	Listen             *string
	Listen_net         *string
	Sessions_conns     *[]string
	Timezone           *string
	Request_processors *[]*ReqProcessorJsnCfg
}

DNSAgentJsonCfg

type DataDbCfg

type DataDbCfg struct {
	DataDbType         string
	DataDbHost         string // The host to connect to. Values that start with / are for UNIX domain sockets.
	DataDbPort         string // The port to bind to.
	DataDbName         string // The name of the database to connect to.
	DataDbUser         string // The user to sign in as.
	DataDbPass         string // The user's password.
	DataDbSentinelName string
	QueryTimeout       time.Duration
	RmtConns           []string // Remote DataDB  connIDs
	RplConns           []string // Replication connIDs
	RplFiltered        bool
	Items              map[string]*ItemOpt
}

DataDbCfg Database config

func (*DataDbCfg) AsMapInterface added in v0.10.1

func (dbcfg *DataDbCfg) AsMapInterface() map[string]any

func (*DataDbCfg) Clone

func (dbcfg *DataDbCfg) Clone() *DataDbCfg

Clone returns the cloned object

type DbJsonCfg

type DbJsonCfg struct {
	Db_type               *string
	Db_host               *string
	Db_port               *int
	Db_name               *string
	Db_user               *string
	Db_password           *string
	Max_open_conns        *int // Used only in case of storDb
	Max_idle_conns        *int
	Conn_max_lifetime     *int // Used only in case of storDb
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Redis_sentinel        *string
	Query_timeout         *string
	Sslmode               *string // Used only in case of storDb
	Remote_conns          *[]string
	Replication_conns     *[]string
	Items                 *map[string]*ItemOptJson
	Replication_filtered  *bool
}

Database config

type DiameterAgentCfg

type DiameterAgentCfg struct {
	Enabled           bool   // enables the diameter agent: <true|false>
	ListenNet         string // sctp or tcp
	Listen            string // address where to listen for diameter requests <x.y.z.y:1234>
	DictionariesPath  string
	SessionSConns     []string
	OriginHost        string
	OriginRealm       string
	VendorId          int
	ProductName       string
	ConcurrentReqs    int // limit the maximum number of requests processed
	SyncedConnReqs    bool
	ASRTemplate       string
	Templates         map[string][]*FCTemplate
	RequestProcessors []*RequestProcessor
}

func (*DiameterAgentCfg) AsMapInterface added in v0.10.1

func (ds *DiameterAgentCfg) AsMapInterface(separator string) map[string]any

type DiameterAgentJsonCfg

type DiameterAgentJsonCfg struct {
	Enabled              *bool
	Listen               *string
	Listen_net           *string
	Dictionaries_path    *string
	Sessions_conns       *[]string
	Origin_host          *string
	Origin_realm         *string
	Vendor_id            *int
	Product_name         *string
	Concurrent_requests  *int
	Synced_conn_requests *bool
	Asr_template         *string
	Templates            map[string][]*FcTemplateJsonCfg
	Request_processors   *[]*ReqProcessorJsnCfg
}

DiameterAgent configuration

type DispatcherSCfg

type DispatcherSCfg struct {
	Enabled             bool
	IndexedSelects      bool
	StringIndexedFields *[]string
	PrefixIndexedFields *[]string
	AttributeSConns     []string
	NestedFields        bool
}

DispatcherSCfg is the configuration of dispatcher service

func (*DispatcherSCfg) AsMapInterface added in v0.10.1

func (dps *DispatcherSCfg) AsMapInterface() map[string]any

type DispatcherSJsonCfg

type DispatcherSJsonCfg struct {
	Enabled               *bool
	Indexed_selects       *bool
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Nested_fields         *bool // applies when indexed fields is not defined
	Attributes_conns      *[]string
}

type ERsCfg

type ERsCfg struct {
	Enabled       bool
	SessionSConns []string
	Readers       []*EventReaderCfg
}

func (*ERsCfg) AsMapInterface added in v0.10.1

func (erS *ERsCfg) AsMapInterface(separator string) map[string]any

func (*ERsCfg) Clone

func (erS *ERsCfg) Clone() (cln *ERsCfg)

Clone itself into a new ERsCfg

type ERsJsonCfg

type ERsJsonCfg struct {
	Enabled        *bool
	Sessions_conns *[]string
	Readers        *[]*EventReaderJsonCfg
}

EventReaderSJsonCfg contains the configuration of EventReaderService

type EventReaderCfg

type EventReaderCfg struct {
	ID                       string
	Type                     string
	RowLength                int
	FieldSep                 string
	RunDelay                 time.Duration
	ConcurrentReqs           int
	SourcePath               string
	ProcessedPath            string
	XmlRootPath              utils.HierarchyPath
	Tenant                   RSRParsers
	Timezone                 string
	Filters                  []string
	Flags                    utils.FlagsWithParams
	FailedCallsPrefix        string        // Used in case of flatstore CDRs to avoid searching for BYE records
	PartialRecordCache       time.Duration // Duration to cache partial records when not pairing
	PartialCacheExpiryAction string
	Fields                   []*FCTemplate
	CacheDumpFields          []*FCTemplate
}

func (*EventReaderCfg) AsMapInterface added in v0.10.1

func (er *EventReaderCfg) AsMapInterface(separator string) map[string]any

func (*EventReaderCfg) Clone

func (er *EventReaderCfg) Clone() (cln *EventReaderCfg)

Clone itself into a new EventReaderCfg

type EventReaderJsonCfg

type EventReaderJsonCfg struct {
	Id                          *string
	Type                        *string
	Row_length                  *int
	Field_separator             *string
	Run_delay                   *string
	Concurrent_requests         *int
	Source_path                 *string
	Processed_path              *string
	Xml_root_path               *string
	Tenant                      *string
	Timezone                    *string
	Filters                     *[]string
	Flags                       *[]string
	Failed_calls_prefix         *string
	Partial_record_cache        *string
	Partial_cache_expiry_action *string
	Fields                      *[]*FcTemplateJsonCfg
	Cache_dump_fields           *[]*FcTemplateJsonCfg
}

EventReaderSJsonCfg is the configuration of a single EventReader

type FCTemplate

type FCTemplate struct {
	Tag              string
	Type             string   // Type of field
	Path             string   // Field identifier
	Filters          []string // list of filter profiles
	Value            RSRParsers
	Width            int
	Strip            string
	Padding          string
	Mandatory        bool
	AttributeID      string // Used by NavigableMap when creating CGREvent/XMLElements
	NewBranch        bool   // Used by NavigableMap when creating XMLElements
	Timezone         string
	Blocker          bool
	BreakOnSuccess   bool
	Layout           string // time format
	CostShiftDigits  int    // Used for CDR
	RoundingDecimals *int
	MaskDestID       string
	MaskLen          int
	// contains filtered or unexported fields
}

func FCTemplatesFromFCTemplatesJsonCfg

func FCTemplatesFromFCTemplatesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg, separator string) ([]*FCTemplate, error)

func InflateTemplates

func InflateTemplates(fcts []*FCTemplate, msgTpls map[string][]*FCTemplate) ([]*FCTemplate, error)

InflateTemplates will replace the *template fields with template content out msgTpls

func NewFCTemplateFromFCTemplateJsonCfg

func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg, separator string) (*FCTemplate, error)

func (*FCTemplate) AsMapInterface added in v0.10.1

func (fc *FCTemplate) AsMapInterface(separator string) (mp map[string]any)

func (*FCTemplate) Clone

func (fc *FCTemplate) Clone() *FCTemplate

func (*FCTemplate) ComputePath added in v0.10.1

func (fc *FCTemplate) ComputePath()

ComputePath used in test to populate private fields used to store the path

func (*FCTemplate) GetPathItems added in v0.10.1

func (fc *FCTemplate) GetPathItems() utils.PathItems

GetPathItems returns the cached path as PathItems

func (*FCTemplate) GetPathSlice added in v0.10.1

func (fc *FCTemplate) GetPathSlice() []string

GetPathSlice returns the cached split of the path

type FWVProvider

type FWVProvider struct {
	// contains filtered or unexported fields
}

fwvProvider implements engine.utils.DataProvider so we can pass it to filters

func (*FWVProvider) FieldAsInterface

func (fP *FWVProvider) FieldAsInterface(fldPath []string) (data any, err error)

FieldAsInterface is part of engine.utils.DataProvider interface

func (*FWVProvider) FieldAsString

func (fP *FWVProvider) FieldAsString(fldPath []string) (data string, err error)

FieldAsString is part of engine.utils.DataProvider interface

func (*FWVProvider) RemoteHost

func (fP *FWVProvider) RemoteHost() net.Addr

RemoteHost is part of engine.utils.DataProvider interface

func (*FWVProvider) String

func (fP *FWVProvider) String() string

String is part of engine.utils.DataProvider interface when called, it will display the already parsed values out of cache

type FcTemplateJsonCfg

type FcTemplateJsonCfg struct {
	Tag                  *string
	Type                 *string
	Path                 *string
	Attribute_id         *string
	Filters              *[]string
	Value                *string
	Width                *int
	Strip                *string
	Padding              *string
	Mandatory            *bool
	New_branch           *bool
	Timezone             *string
	Blocker              *bool
	Break_on_success     *bool
	Layout               *string
	Cost_shift_digits    *int
	Rounding_decimals    *int
	Mask_destinationd_id *string
	Mask_length          *int
}

type FilterSCfg

type FilterSCfg struct {
	StatSConns     []string
	ResourceSConns []string
}

func (*FilterSCfg) AsMapInterface added in v0.10.1

func (fSCfg *FilterSCfg) AsMapInterface() map[string]any

type FilterSJsonCfg

type FilterSJsonCfg struct {
	Stats_conns     *[]string
	Resources_conns *[]string
}

Filters config

type FreeswitchAgentJsonCfg

type FreeswitchAgentJsonCfg struct {
	Enabled                *bool
	Sessions_conns         *[]string
	Subscribe_park         *bool
	Create_cdr             *bool
	Extra_fields           *[]string
	Empty_balance_context  *string
	Empty_balance_ann_file *string
	Max_wait_connection    *string
	Event_socket_conns     *[]*FsConnJsonCfg
}

FreeSWITCHAgent config section

type FsAgentCfg

type FsAgentCfg struct {
	Enabled       bool
	SessionSConns []string
	SubscribePark bool
	CreateCdr     bool
	ExtraFields   RSRParsers
	//MinDurLowBalance    time.Duration
	//LowBalanceAnnFile   string
	EmptyBalanceContext string
	EmptyBalanceAnnFile string
	MaxWaitConnection   time.Duration
	EventSocketConns    []*FsConnCfg
}

func (*FsAgentCfg) AsMapInterface added in v0.10.1

func (fscfg *FsAgentCfg) AsMapInterface(separator string) map[string]any

type FsConnCfg

type FsConnCfg struct {
	Address    string
	Password   string
	Reconnects int
	Alias      string
}

One connection to FreeSWITCH server

func NewDfltFsConnConfig

func NewDfltFsConnConfig() *FsConnCfg

Returns the first cached default value for a FreeSWITCHAgent connection

func (*FsConnCfg) AsMapInterface added in v0.10.1

func (fs *FsConnCfg) AsMapInterface() map[string]any

type FsConnJsonCfg

type FsConnJsonCfg struct {
	Address    *string
	Password   *string
	Reconnects *int
	Alias      *string
}

Represents one connection instance towards FreeSWITCH

type GeneralCfg

type GeneralCfg struct {
	NodeID             string        // Identifier for this engine instance
	Logger             string        // dictates the way logs are displayed/stored
	LogLevel           int           // system wide log level, nothing higher than this will be logged
	HttpSkipTlsVerify  bool          // If enabled Http Client will accept any TLS certificate
	RoundingDecimals   int           // Number of decimals to round end prices at
	DBDataEncoding     string        // The encoding used to store object data in strings: <msgpack|json>
	TpExportPath       string        // Path towards export folder for offline Tariff Plans
	PosterAttempts     int           // Time to wait before writing the failed posts in a single file
	FailedPostsDir     string        // Directory path where we store failed http requests
	FailedPostsTTL     time.Duration // Directory path where we store failed http requests
	DefaultReqType     string        // Use this request type if not defined on top
	DefaultCategory    string        // set default type of record
	DefaultTenant      string        // set default tenant
	DefaultTimezone    string        // default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
	DefaultCaching     string
	ConnectAttempts    int           // number of initial connection attempts before giving up
	Reconnects         int           // number of recconect attempts in case of connection lost <-1 for infinite | nb>
	ConnectTimeout     time.Duration // timeout for RPC connection attempts
	ReplyTimeout       time.Duration // timeout replies if not reaching back
	LockingTimeout     time.Duration // locking mechanism timeout to avoid deadlocks
	DigestSeparator    string        //
	DigestEqual        string        //
	RSRSep             string        // separator used to split RSRParser (by degault is used ";")
	MaxParallelConns   int           // the maximum number of connections used by the *parallel strategy
	ConcurrentRequests int
	ConcurrentStrategy string
}

General config section

func (*GeneralCfg) AsMapInterface added in v0.10.1

func (gencfg *GeneralCfg) AsMapInterface() map[string]any

type GeneralJsonCfg

type GeneralJsonCfg struct {
	Node_id              *string
	Logger               *string
	Log_level            *int
	Http_skip_tls_verify *bool
	Rounding_decimals    *int
	Dbdata_encoding      *string
	Tpexport_dir         *string
	Poster_attempts      *int
	Failed_posts_dir     *string
	Failed_posts_ttl     *string
	Default_request_type *string
	Default_category     *string
	Default_tenant       *string
	Default_timezone     *string
	Default_caching      *string
	Connect_attempts     *int
	Reconnects           *int
	Connect_timeout      *string
	Reply_timeout        *string
	Locking_timeout      *string
	Digest_separator     *string
	Digest_equal         *string
	Rsr_separator        *string
	Max_parallel_conns   *int
	Concurrent_requests  *int
	Concurrent_strategy  *string
}

General config section

type HTTPCfg

type HTTPCfg struct {
	HTTPJsonRPCURL        string            // JSON RPC relative URL ("" to disable)
	HTTPWSURL             string            // WebSocket relative URL ("" to disable)
	HTTPFreeswitchCDRsURL string            // Freeswitch CDRS relative URL ("" to disable)
	HTTPCDRsURL           string            // CDRS relative URL ("" to disable)
	HTTPUseBasicAuth      bool              // Use basic auth for HTTP API
	HTTPAuthUsers         map[string]string // Basic auth user:password map (base64 passwords)
}

HTTP config section

func (*HTTPCfg) AsMapInterface added in v0.10.1

func (httpcfg *HTTPCfg) AsMapInterface() map[string]any

type HTTPJsonCfg

type HTTPJsonCfg struct {
	Json_rpc_url        *string
	Ws_url              *string
	Freeswitch_cdrs_url *string
	Http_Cdrs           *string
	Use_basic_auth      *bool
	Auth_users          *map[string]string
}

HTTP config section

type HttpAgentCfg

type HttpAgentCfg struct {
	ID                string // identifier for the agent, so we can update it's processors
	Url               string
	SessionSConns     []string
	RequestPayload    string
	ReplyPayload      string
	RequestProcessors []*RequestProcessor
}

func (*HttpAgentCfg) AsMapInterface added in v0.10.1

func (ca *HttpAgentCfg) AsMapInterface(separator string) map[string]any

type HttpAgentCfgs

type HttpAgentCfgs []*HttpAgentCfg

func (*HttpAgentCfgs) AsMapInterface added in v0.10.1

func (hcfgs *HttpAgentCfgs) AsMapInterface(separator string) []map[string]any

type HttpAgentJsonCfg

type HttpAgentJsonCfg struct {
	Id                 *string
	Url                *string
	Sessions_conns     *[]string
	Request_payload    *string
	Reply_payload      *string
	Request_processors *[]*ReqProcessorJsnCfg
}

Conecto Agent configuration section

type ItemOpt

type ItemOpt struct {
	Remote    bool
	Replicate bool
	TTL       time.Duration
	Limit     int
	StaticTTL bool
	// used for ArgDispatcher in case we send this to a dispatcher engine
	RouteID string
	APIKey  string
}

func (*ItemOpt) AsMapInterface added in v0.10.1

func (itm *ItemOpt) AsMapInterface() map[string]any

type ItemOptJson

type ItemOptJson struct {
	Remote     *bool
	Replicate  *bool
	Ttl        *string
	Limit      *int
	Static_ttl *bool
	// used for ArgDispatcher in case we send this to a dispatcher engine
	Route_id *string
	Api_key  *string
}

type JSONReloadWithArgDispatcher

type JSONReloadWithArgDispatcher struct {
	*utils.ArgDispatcher
	utils.TenantArg
	JSON map[string]any
}

JSONReloadWithArgDispatcher the API params for V1ReloadConfigFromJSON

type KamAgentCfg

type KamAgentCfg struct {
	Enabled       bool
	SessionSConns []string
	CreateCdr     bool
	EvapiConns    []*KamConnCfg
	Timezone      string
}

SM-Kamailio config section

func (*KamAgentCfg) AsMapInterface added in v0.10.1

func (ka *KamAgentCfg) AsMapInterface() map[string]any

type KamAgentJsonCfg

type KamAgentJsonCfg struct {
	Enabled        *bool
	Sessions_conns *[]string
	Create_cdr     *bool
	Evapi_conns    *[]*KamConnJsonCfg
}

SM-Kamailio config section

type KamConnCfg

type KamConnCfg struct {
	Alias      string
	Address    string
	Reconnects int
}

Represents one connection instance towards Kamailio

func NewDfltKamConnConfig

func NewDfltKamConnConfig() *KamConnCfg

Returns the first cached default value for a FreeSWITCHAgent connection

func (*KamConnCfg) AsMapInterface added in v0.10.1

func (kamCfg *KamConnCfg) AsMapInterface() map[string]any

type KamConnJsonCfg

type KamConnJsonCfg struct {
	Alias      *string
	Address    *string
	Reconnects *int
}

Represents one connection instance towards Kamailio

type ListenCfg

type ListenCfg struct {
	RPCJSONListen    string // RPC JSON listening address
	RPCGOBListen     string // RPC GOB listening address
	HTTPListen       string // HTTP listening address
	RPCJSONTLSListen string // RPC JSON TLS listening address
	RPCGOBTLSListen  string // RPC GOB TLS listening address
	HTTPTLSListen    string // HTTP TLS listening address
}

Listen config section

func (*ListenCfg) AsMapInterface added in v0.10.1

func (lstcfg *ListenCfg) AsMapInterface() map[string]any

type ListenJsonCfg

type ListenJsonCfg struct {
	Rpc_json     *string
	Rpc_gob      *string
	Http         *string
	Rpc_json_tls *string
	Rpc_gob_tls  *string
	Http_tls     *string
}

Listen config section

type LoaderCfgJson

type LoaderCfgJson struct {
	Tpid            *string
	Data_path       *string
	Disable_reverse *bool
	Field_separator *string
	Caches_conns    *[]string
	Scheduler_conns *[]string
}

type LoaderCgrCfg

type LoaderCgrCfg struct {
	TpID           string
	DataPath       string
	DisableReverse bool
	FieldSeparator rune // The separator to use when reading csvs
	CachesConns    []string
	SchedulerConns []string
}

func (*LoaderCgrCfg) AsMapInterface added in v0.10.1

func (ld *LoaderCgrCfg) AsMapInterface() map[string]any

type LoaderDataType

type LoaderDataType struct {
	Type     string
	Filename string
	Fields   []*FCTemplate
}

func NewDfltLoaderDataTypeConfig

func NewDfltLoaderDataTypeConfig() *LoaderDataType

func (*LoaderDataType) AsMapInterface added in v0.10.1

func (lData *LoaderDataType) AsMapInterface(separator string) map[string]any

func (*LoaderDataType) Clone

func (self *LoaderDataType) Clone() *LoaderDataType

Clone itself into a new LoaderDataType

type LoaderJsonCfg

type LoaderJsonCfg struct {
	ID              *string
	Enabled         *bool
	Tenant          *string
	Dry_run         *bool
	Run_delay       *int
	Lock_filename   *string
	Caches_conns    *[]string
	Field_separator *string
	Tp_in_dir       *string
	Tp_out_dir      *string
	Data            *[]*LoaderJsonDataType
}

type LoaderJsonDataType

type LoaderJsonDataType struct {
	Type      *string
	File_name *string
	Fields    *[]*FcTemplateJsonCfg
}

type LoaderSCfg

type LoaderSCfg struct {
	Id             string
	Enabled        bool
	Tenant         RSRParsers
	DryRun         bool
	RunDelay       time.Duration
	LockFileName   string
	CacheSConns    []string
	FieldSeparator string
	TpInDir        string
	TpOutDir       string
	Data           []*LoaderDataType
}

func NewDfltLoaderSCfg

func NewDfltLoaderSCfg() *LoaderSCfg

func (*LoaderSCfg) AsMapInterface added in v0.10.1

func (l *LoaderSCfg) AsMapInterface(separator string) map[string]any

func (*LoaderSCfg) Clone

func (self *LoaderSCfg) Clone() *LoaderSCfg

Clone itself into a new LoadersConfig

type LoaderSCfgs

type LoaderSCfgs []*LoaderSCfg

LoaderSCfgs to export some methods for LoaderS profiles

func (LoaderSCfgs) Enabled

func (ldrs LoaderSCfgs) Enabled() bool

Enabled returns true if Loader Service is enabled

type MailerCfg

type MailerCfg struct {
	MailerServer   string // The server to use when sending emails out
	MailerAuthUser string // Authenticate to email server using this user
	MailerAuthPass string // Authenticate to email server with this password
	MailerFromAddr string // From address used when sending emails out
}

Mailer config section

func (*MailerCfg) AsMapInterface added in v0.10.1

func (mailcfg *MailerCfg) AsMapInterface() map[string]any

type MailerJsonCfg

type MailerJsonCfg struct {
	Server        *string
	Auth_user     *string
	Auth_password *string
	From_address  *string
}

Mailer config section

type MigratorCfgJson

type MigratorCfgJson struct {
	Out_dataDB_type           *string
	Out_dataDB_host           *string
	Out_dataDB_port           *string
	Out_dataDB_name           *string
	Out_dataDB_user           *string
	Out_dataDB_password       *string
	Out_dataDB_encoding       *string
	Out_dataDB_redis_sentinel *string
	Out_storDB_type           *string
	Out_storDB_host           *string
	Out_storDB_port           *string
	Out_storDB_name           *string
	Out_storDB_user           *string
	Out_storDB_password       *string
	Users_filters             *[]string
}

type MigratorCgrCfg

type MigratorCgrCfg struct {
	OutDataDBType          string
	OutDataDBHost          string
	OutDataDBPort          string
	OutDataDBName          string
	OutDataDBUser          string
	OutDataDBPassword      string
	OutDataDBEncoding      string
	OutDataDBRedisSentinel string
	OutStorDBType          string
	OutStorDBHost          string
	OutStorDBPort          string
	OutStorDBName          string
	OutStorDBUser          string
	OutStorDBPassword      string
	UsersFilters           []string
}

func (*MigratorCgrCfg) AsMapInterface added in v0.10.1

func (mg *MigratorCgrCfg) AsMapInterface() map[string]any

type NMItem

type NMItem struct {
	Path   []string    // path in map
	Data   any         // value of the element
	Config *FCTemplate // so we can store additional configuration
}

NMItem is an item in the NavigableMap

func (*NMItem) Empty added in v0.10.1

func (nmi *NMItem) Empty() bool

Empty returns true if the NM is empty(no data)

func (*NMItem) Field added in v0.10.1

func (nmi *NMItem) Field(path utils.PathItems) (val utils.NMInterface, err error)

Field not implemented only used in order to implement the NM interface

func (*NMItem) Interface added in v0.10.1

func (nmi *NMItem) Interface() any

Interface returns the wraped interface

func (*NMItem) Len added in v0.10.1

func (nmi *NMItem) Len() int

Len not implemented only used in order to implement the NM interface

func (*NMItem) Remove added in v0.10.1

func (nmi *NMItem) Remove(path utils.PathItems) (err error)

Remove not implemented only used in order to implement the NM interface

func (*NMItem) Set added in v0.10.1

func (nmi *NMItem) Set(path utils.PathItems, val utils.NMInterface) (added bool, err error)

Set not implemented only used in order to implement the NM interface special case when the path is empty the interface should be seted this is in order to modify the wraped interface

func (*NMItem) String added in v0.10.1

func (nmi *NMItem) String() string

func (*NMItem) Type added in v0.10.1

func (nmi *NMItem) Type() utils.NMType

Type returns the type of the NM interface

type ObjectDP

type ObjectDP struct {
	// contains filtered or unexported fields
}

func (*ObjectDP) FieldAsInterface

func (objDP *ObjectDP) FieldAsInterface(fldPath []string) (data any, err error)

FieldAsInterface is part of engine.utils.DataProvider interface

func (*ObjectDP) FieldAsString

func (objDP *ObjectDP) FieldAsString(fldPath []string) (data string, err error)

FieldAsString is part of engine.utils.DataProvider interface

func (*ObjectDP) RemoteHost

func (objDP *ObjectDP) RemoteHost() net.Addr

RemoteHost is part of engine.utils.DataProvider interface

func (*ObjectDP) String

func (objDP *ObjectDP) String() string

String is part of engine.utils.DataProvider interface when called, it will display the already parsed values out of cache

type OsipsConnJsonCfg

type OsipsConnJsonCfg struct {
	Mi_addr    *string
	Reconnects *int
}

Represents one connection instance towards OpenSIPS

type RPCConn

type RPCConn struct {
	Strategy string
	PoolSize int
	Conns    []*RemoteHost
}

func NewDfltRPCConn

func NewDfltRPCConn() *RPCConn

func (*RPCConn) AsMapInterface added in v0.10.1

func (rC *RPCConn) AsMapInterface() map[string]any

type RPCConnsJson

type RPCConnsJson struct {
	Strategy *string
	PoolSize *int
	Conns    *[]*RemoteHostJson
}

type RSRParser

type RSRParser struct {
	Rules           string // Rules container holding the string rules, public so it can be stored
	AllFiltersMatch bool   // all filters must match policy
	// contains filtered or unexported fields
}

RSRParser is a parser for data coming from various sources

func NewRSRParser

func NewRSRParser(parserRules string, allFiltersMatch bool) (rsrParser *RSRParser, err error)

func NewRSRParserMustCompile

func NewRSRParserMustCompile(parserRules string, allFiltersMatch bool) (rsrPrsr *RSRParser)

func (*RSRParser) AttrName

func (prsr *RSRParser) AttrName() string

AttrName exports the attribute name of the RSRParser

func (*RSRParser) Compile

func (prsr *RSRParser) Compile() (err error)

Compile parses Rules string and repopulates other fields

func (*RSRParser) ParseDataProvider

func (prsr *RSRParser) ParseDataProvider(dP utils.DataProvider, separator string) (out string, err error)

func (*RSRParser) ParseDataProviderAsFloat64 added in v0.10.3

func (prsr *RSRParser) ParseDataProviderAsFloat64(dP utils.DataProvider, separator string) (float64, error)

ParseDataProviderAsFloat64 retrieves a field from the provided DataProvider and attempts to parse it as a float64.

func (*RSRParser) ParseDataProviderWithInterfaces

func (prsr *RSRParser) ParseDataProviderWithInterfaces(dP utils.DataProvider, separator string) (out string, err error)

func (*RSRParser) ParseValue

func (prsr *RSRParser) ParseValue(value any) (out string, err error)

ParseValue will parse the value out considering converters and filters

func (*RSRParser) RegexpMatched

func (prsr *RSRParser) RegexpMatched() bool

RegexpMatched will investigate whether we had at least one regexp match through the rules

type RSRParsers

type RSRParsers []*RSRParser

RSRParsers is a set of RSRParser

func NewRSRParsers

func NewRSRParsers(parsersRules string, allFiltersMatch bool, rsrSeparator string) (prsrs RSRParsers, err error)

func NewRSRParsersFromSlice

func NewRSRParsersFromSlice(parsersRules []string, allFiltersMatch bool) (prsrs RSRParsers, err error)

func NewRSRParsersMustCompile

func NewRSRParsersMustCompile(parsersRules string, allFiltersMatch bool, rsrSeparator string) (prsrs RSRParsers)

func (RSRParsers) Compile

func (prsrs RSRParsers) Compile() (err error)

func (RSRParsers) GetRule added in v0.10.1

func (prsrs RSRParsers) GetRule() (out string)

func (RSRParsers) ParseDataProvider

func (prsrs RSRParsers) ParseDataProvider(dP utils.DataProvider, separator string) (out string, err error)

func (RSRParsers) ParseDataProviderWithInterfaces

func (prsrs RSRParsers) ParseDataProviderWithInterfaces(dP utils.DataProvider, separator string) (out string, err error)

func (RSRParsers) ParseValue

func (prsrs RSRParsers) ParseValue(value any) (out string, err error)

ParseValue will parse the value out considering converters and filters

type RadiusAgentCfg

type RadiusAgentCfg struct {
	Enabled            bool
	ListenNet          string // udp or tcp
	ListenAuth         string
	ListenAcct         string
	ClientSecrets      map[string]string
	ClientDictionaries map[string]string
	SessionSConns      []string
	RequestProcessors  []*RequestProcessor
}

func (*RadiusAgentCfg) AsMapInterface added in v0.10.1

func (ra *RadiusAgentCfg) AsMapInterface(separator string) map[string]any

type RadiusAgentJsonCfg

type RadiusAgentJsonCfg struct {
	Enabled             *bool
	Listen_net          *string
	Listen_auth         *string
	Listen_acct         *string
	Client_secrets      *map[string]string
	Client_dictionaries *map[string]string
	Sessions_conns      *[]string
	Timezone            *string
	Request_processors  *[]*ReqProcessorJsnCfg
}

Radius Agent configuration section

type RalsCfg

type RalsCfg struct {
	Enabled                 bool     // start standalone server (no balancer)
	ThresholdSConns         []string // address where to reach ThresholdS config
	StatSConns              []string
	RpSubjectPrefixMatching bool // enables prefix matching for the rating profile subject
	RemoveExpired           bool
	MaxComputedUsage        map[string]time.Duration
	BalanceRatingSubject    map[string]string
	MaxIncrements           int
}

Rater config section

func (*RalsCfg) AsMapInterface added in v0.10.1

func (ralsCfg *RalsCfg) AsMapInterface() map[string]any

type RalsJsonCfg

type RalsJsonCfg struct {
	Enabled                    *bool
	Thresholds_conns           *[]string
	Stats_conns                *[]string
	CacheS_conns               *[]string
	Rp_subject_prefix_matching *bool
	Remove_expired             *bool
	Max_computed_usage         *map[string]string
	Max_increments             *int
	Balance_rating_subject     *map[string]string
}

Rater config section

type RemoteHost

type RemoteHost struct {
	ID          string
	Address     string
	Transport   string
	Synchronous bool
	TLS         bool
}

One connection to Rater

func NewDfltRemoteHost

func NewDfltRemoteHost() *RemoteHost

Returns the first cached default value for a RemoteHost connection

func (*RemoteHost) AsMapInterface added in v0.10.1

func (rh *RemoteHost) AsMapInterface() map[string]any

type RemoteHostJson

type RemoteHostJson struct {
	Id          *string
	Address     *string
	Transport   *string
	Synchronous *bool
	Tls         *bool
}

Represents one connection instance towards a rater/cdrs server

type ReqProcessorJsnCfg

type ReqProcessorJsnCfg struct {
	ID             *string
	Filters        *[]string
	Tenant         *string
	Timezone       *string
	Flags          *[]string
	Request_fields *[]*FcTemplateJsonCfg
	Reply_fields   *[]*FcTemplateJsonCfg
}

type RequestProcessor

type RequestProcessor struct {
	ID            string
	Tenant        RSRParsers
	Filters       []string
	Flags         utils.FlagsWithParams
	Timezone      string
	RequestFields []*FCTemplate
	ReplyFields   []*FCTemplate
}

RequestProcessor is the request processor configuration

func (*RequestProcessor) AsMapInterface added in v0.10.1

func (rp *RequestProcessor) AsMapInterface(separator string) map[string]any

type ResourceSConfig

type ResourceSConfig struct {
	Enabled             bool
	IndexedSelects      bool
	ThresholdSConns     []string
	StoreInterval       time.Duration // Dump regularly from cache into dataDB
	StringIndexedFields *[]string
	PrefixIndexedFields *[]string
	NestedFields        bool
}

func (*ResourceSConfig) AsMapInterface added in v0.10.1

func (rlcfg *ResourceSConfig) AsMapInterface() map[string]any

type ResourceSJsonCfg

type ResourceSJsonCfg struct {
	Enabled               *bool
	Indexed_selects       *bool
	Thresholds_conns      *[]string
	Store_interval        *string
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Nested_fields         *bool // applies when indexed fields is not defined
}

ResourceLimiter service config section

type SchedulerCfg

type SchedulerCfg struct {
	Enabled   bool
	CDRsConns []string
	Filters   []string
}

func (*SchedulerCfg) AsMapInterface added in v0.10.1

func (schdcfg *SchedulerCfg) AsMapInterface() map[string]any

type SchedulerJsonCfg

type SchedulerJsonCfg struct {
	Enabled    *bool
	Cdrs_conns *[]string
	Filters    *[]string
}

Scheduler config section

type SessionSCfg

type SessionSCfg struct {
	Enabled             bool
	ListenBijson        string
	ChargerSConns       []string
	RALsConns           []string
	ResSConns           []string
	ThreshSConns        []string
	StatSConns          []string
	SupplSConns         []string
	AttrSConns          []string
	CDRsConns           []string
	ReplicationConns    []string
	DebitInterval       time.Duration
	StoreSCosts         bool
	SessionTTL          time.Duration
	SessionTTLMaxDelay  *time.Duration
	SessionTTLLastUsed  *time.Duration
	SessionTTLUsage     *time.Duration
	SessionTTLLastUsage *time.Duration
	SessionIndexes      utils.StringMap
	ClientProtocol      float64
	ChannelSyncInterval time.Duration
	TerminateAttempts   int
	AlterableFields     utils.StringSet
	DefaultUsage        map[string]time.Duration
}

func (*SessionSCfg) AsMapInterface added in v0.10.1

func (scfg *SessionSCfg) AsMapInterface() map[string]any

func (*SessionSCfg) GetDefaultUsage added in v0.10.3

func (scfg *SessionSCfg) GetDefaultUsage(tor string) time.Duration

type SessionSJsonCfg

type SessionSJsonCfg struct {
	Enabled                *bool
	Listen_bijson          *string
	Chargers_conns         *[]string
	Rals_conns             *[]string
	Resources_conns        *[]string
	Thresholds_conns       *[]string
	Stats_conns            *[]string
	Suppliers_conns        *[]string
	Cdrs_conns             *[]string
	Replication_conns      *[]string
	Attributes_conns       *[]string
	Debit_interval         *string
	Store_session_costs    *bool
	Session_ttl            *string
	Session_ttl_max_delay  *string
	Session_ttl_last_used  *string
	Session_ttl_usage      *string
	Session_ttl_last_usage *string
	Session_indexes        *[]string
	Client_protocol        *float64
	Channel_sync_interval  *string
	Terminate_attempts     *int
	Alterable_fields       *[]string
	Default_usage          *map[string]string
}

SM-Generic config section

type SliceDP

type SliceDP struct {
	// contains filtered or unexported fields
}

SliceDP implements engine.utils.DataProvider so we can pass it to filters

func (*SliceDP) FieldAsInterface

func (cP *SliceDP) FieldAsInterface(fldPath []string) (data any, err error)

FieldAsInterface is part of engine.utils.DataProvider interface

func (*SliceDP) FieldAsString

func (cP *SliceDP) FieldAsString(fldPath []string) (data string, err error)

FieldAsString is part of engine.utils.DataProvider interface

func (*SliceDP) RemoteHost

func (cP *SliceDP) RemoteHost() net.Addr

RemoteHost is part of engine.utils.DataProvider interface

func (*SliceDP) String

func (cP *SliceDP) String() string

String is part of engine.utils.DataProvider interface when called, it will display the already parsed values out of cache

type StatSCfg

type StatSCfg struct {
	Enabled                bool
	IndexedSelects         bool
	StoreInterval          time.Duration // Dump regularly from cache into dataDB
	StoreUncompressedLimit int
	ThresholdSConns        []string
	StringIndexedFields    *[]string
	PrefixIndexedFields    *[]string
	NestedFields           bool
}

func (*StatSCfg) AsMapInterface added in v0.10.1

func (st *StatSCfg) AsMapInterface() map[string]any

type StatServJsonCfg

type StatServJsonCfg struct {
	Enabled                  *bool
	Indexed_selects          *bool
	Store_interval           *string
	Store_uncompressed_limit *int
	Thresholds_conns         *[]string
	String_indexed_fields    *[]string
	Prefix_indexed_fields    *[]string
	Nested_fields            *bool // applies when indexed fields is not defined
}

Stat service config section

type StorDbCfg

type StorDbCfg struct {
	Type                string // Should reflect the database type used to store logs
	Host                string // The host to connect to. Values that start with / are for UNIX domain sockets.
	Port                string // Th e port to bind to.
	Name                string // The name of the database to connect to.
	User                string // The user to sign in as.
	Password            string // The user's password.
	MaxOpenConns        int    // Maximum database connections opened
	MaxIdleConns        int    // Maximum idle connections to keep opened
	ConnMaxLifetime     int
	StringIndexedFields []string
	PrefixIndexedFields []string
	QueryTimeout        time.Duration
	SSLMode             string // for PostgresDB used to change default sslmode
	Items               map[string]*ItemOpt
}

StorDbCfg StroreDb config

func (*StorDbCfg) AsMapInterface added in v0.10.1

func (dbcfg *StorDbCfg) AsMapInterface() map[string]any

func (*StorDbCfg) Clone

func (dbcfg *StorDbCfg) Clone() *StorDbCfg

Clone returns the cloned object

type StringWithArgDispatcher

type StringWithArgDispatcher struct {
	*utils.ArgDispatcher
	utils.TenantArg
	Section string
}

ToDo: move this structure in utils as is used in other packages

type SupplierSCfg

type SupplierSCfg struct {
	Enabled             bool
	IndexedSelects      bool
	StringIndexedFields *[]string
	PrefixIndexedFields *[]string
	AttributeSConns     []string
	ResourceSConns      []string
	StatSConns          []string
	RALsConns           []string
	DefaultRatio        int
	NestedFields        bool
}

SupplierSCfg is the configuration of supplier service

func (*SupplierSCfg) AsMapInterface added in v0.10.1

func (spl *SupplierSCfg) AsMapInterface() map[string]any

type SupplierSJsonCfg

type SupplierSJsonCfg struct {
	Enabled               *bool
	Indexed_selects       *bool
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Nested_fields         *bool // applies when indexed fields is not defined
	Attributes_conns      *[]string
	Resources_conns       *[]string
	Stats_conns           *[]string
	Rals_conns            *[]string
	Default_ratio         *int
}

Supplier service config section

type SureTaxCfg

type SureTaxCfg struct {
	Url                  string
	ClientNumber         string
	ValidationKey        string
	BusinessUnit         string
	Timezone             *time.Location // Convert the time of the events to this timezone before sending request out
	IncludeLocalCost     bool
	ReturnFileCode       string
	ResponseGroup        string
	ResponseType         string
	RegulatoryCode       string
	ClientTracking       RSRParsers // Concatenate all of them to get value
	CustomerNumber       RSRParsers
	OrigNumber           RSRParsers
	TermNumber           RSRParsers
	BillToNumber         RSRParsers
	Zipcode              RSRParsers
	Plus4                RSRParsers
	P2PZipcode           RSRParsers
	P2PPlus4             RSRParsers
	Units                RSRParsers
	UnitType             RSRParsers
	TaxIncluded          RSRParsers
	TaxSitusRule         RSRParsers
	TransTypeCode        RSRParsers
	SalesTypeCode        RSRParsers
	TaxExemptionCodeList RSRParsers
}

SureTax configuration object

func (*SureTaxCfg) AsMapInterface added in v0.10.1

func (st *SureTaxCfg) AsMapInterface(separator string) map[string]any

type SureTaxJsonCfg

type SureTaxJsonCfg struct {
	Url                     *string
	Client_number           *string
	Validation_key          *string
	Business_unit           *string
	Timezone                *string
	Include_local_cost      *bool
	Return_file_code        *string
	Response_group          *string
	Response_type           *string
	Regulatory_code         *string
	Client_tracking         *string
	Customer_number         *string
	Orig_number             *string
	Term_number             *string
	Bill_to_number          *string
	Zipcode                 *string
	Plus4                   *string
	P2PZipcode              *string
	P2PPlus4                *string
	Units                   *string
	Unit_type               *string
	Tax_included            *string
	Tax_situs_rule          *string
	Trans_type_code         *string
	Sales_type_code         *string
	Tax_exemption_code_list *string
}

SureTax config section

type ThresholdSCfg

type ThresholdSCfg struct {
	Enabled             bool
	IndexedSelects      bool
	StoreInterval       time.Duration // Dump regularly from cache into dataDB
	StringIndexedFields *[]string
	PrefixIndexedFields *[]string
	NestedFields        bool
}

func (*ThresholdSCfg) AsMapInterface added in v0.10.1

func (t *ThresholdSCfg) AsMapInterface() map[string]any

type ThresholdSJsonCfg

type ThresholdSJsonCfg struct {
	Enabled               *bool
	Indexed_selects       *bool
	Store_interval        *string
	String_indexed_fields *[]string
	Prefix_indexed_fields *[]string
	Nested_fields         *bool // applies when indexed fields is not defined
}

Threshold service config section

type TlsCfg

type TlsCfg struct {
	ServerCerificate string
	ServerKey        string
	ServerPolicy     int
	ServerName       string
	ClientCerificate string
	ClientKey        string
	CaCertificate    string
}

AttributeSCfg is the configuration of attribute service

func (*TlsCfg) AsMapInterface added in v0.10.1

func (tls *TlsCfg) AsMapInterface() map[string]any

type TlsJsonCfg

type TlsJsonCfg struct {
	Server_certificate *string
	Server_key         *string
	Server_policy      *int
	Server_name        *string
	Client_certificate *string
	Client_key         *string
	Ca_certificate     *string
}

type XMLElement

type XMLElement struct {
	XMLName    xml.Name
	Value      string        `xml:",chardata"`
	Attributes []*xml.Attr   `xml:",attr"`
	Elements   []*XMLElement `xml:"omitempty"`
}

XMLElement is specially crafted to be automatically marshalled by encoding/xml

func NMAsXMLElements added in v0.10.1

func NMAsXMLElements(nm *utils.OrderedNavigableMap) (ents []*XMLElement, err error)

NMAsXMLElements returns the values as []*XMLElement which can be later marshaled considers each value returned by .Values() in the form of []*NMItem, otherwise errors

type XmlProvider

type XmlProvider struct {
	// contains filtered or unexported fields
}

XmlProvider implements engine.utils.DataProvider so we can pass it to filters

func (*XmlProvider) FieldAsInterface

func (xP *XmlProvider) FieldAsInterface(fldPath []string) (data any, err error)

FieldAsInterface is part of engine.utils.DataProvider interface

func (*XmlProvider) FieldAsString

func (xP *XmlProvider) FieldAsString(fldPath []string) (data string, err error)

FieldAsString is part of engine.utils.DataProvider interface

func (*XmlProvider) RemoteHost

func (xP *XmlProvider) RemoteHost() net.Addr

RemoteHost is part of engine.utils.DataProvider interface

func (*XmlProvider) String

func (xP *XmlProvider) String() string

String is part of engine.utils.DataProvider interface when called, it will display the already parsed values out of cache

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL