Configuration

Has a JSON format with commented lines starting with //.

Organized into configuration sections which offers the advantage of being easily splitable.

Hint

You can split the configuration into any number of .json files/directories since the :ref:cgr-engine loads recursively the complete configuration folder, alphabetically ordered

All configuration options come with defaults and we have tried our best to choose the best ones for a minimum of efforts necessary when running.

Can be loaded from local folders or remotely using HTTP transport.

The configuration can be loaded at start and reloaded at run time using APIs designed for that. This can be done either as config pull (reload from path) or as config push (the JSON BLOB is sent via API to the engine).

Hint

You can reload from remote HTTP server as well.

Below is the default configuration file which comes hardcoded into cgr-engine:

   1{
   2
   3// Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
   4// Copyright (C) ITsysCOM GmbH
   5//
   6// This file contains the default configuration hardcoded into CGRateS.
   7// This is what you get when you load CGRateS with an empty configuration file.
   8
   9// "general": {
  10// 	"nodeID": "",					// identifier of this instance in the cluster, if empty it will be autogenerated
  11// 	"roundingDecimals": 5,				// system level precision for floats
  12// 	"dbDataEncoding": "*msgpack",			// encoding used to store object data in strings: <*msgpack|*json>
  13// 	"tpExportDir": "/var/spool/cgrates/tpe",	// path towards export folder for offline TariffPlans
  14// 	"defaultRequestType": "*rated",		// default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated>
  15// 	"defaultCategory": "call",			// default category to consider when missing from requests
  16// 	"defaultTenant": "cgrates.org",		// default tenant to consider when missing from requests
  17// 	"defaultTimezone": "Local",			// default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
  18// 	"defaultCaching": "*reload",			// default actions to do when caching items
  19// 	"cachingDelay": "0s", 				// add delay before cache reload
  20// 	"minCallDuration": "0s",			// only authorize calls with allowed duration higher than this
  21// 	"maxCallDuration": "3h",			// maximum call duration a prepaid call can last
  22// 	"connectAttempts": 5,				// initial server connect attempts
  23// 	"reconnects": -1,				// number of retries in case of connection lost
  24// 	"maxReconnectInterval": "", 			// time to wait in between reconnect attempts
  25// 	"connectTimeout": "1s",			// consider connection unsuccessful on timeout, 0 to disable the feature
  26// 	"replyTimeout": "2s",				// consider connection down for replies taking longer than this value
  27// 	"lockingTimeout": "0",				// timeout internal locks to avoid deadlocks
  28// 	"digestSeparator": ",",			// separator to use in replies containing data digests
  29// 	"digestEqual": ":",				// equal symbol used in case of digests
  30// 	"maxParallelConns": 100,			// the maximum number of connection used by the *parallel strategy
  31// 	"decimalMaxScale": 0,				// the maximum scale for decimal numbers
  32// 	"decimalMinScale": 0,				// the minimum scale for decimal numbers
  33// 	"decimalPrecision": 0,				// the precision of the decimal operations
  34// 	"decimalRoundingMode": "*toNearestEven",	// the rounding mode <*toNearestEven|*toNearestAway|*toZero|*awayFromZero|*toNegativeInf|*toPositiveInf|*toNearestTowardZero>
  35// 	"opts":{
  36// 		// "*exporterIDs": [
  37// 		// 	{
  38// 		// 		"tenant": "*any",
  39// 		// 		"filterIDs": [],
  40// 		// 		"values": []
  41// 		// 	}
  42// 		// ]
  43// 	}
  44// },
  45
  46// "logger": {
  47// 	"type": "*syslog",						// controls the destination of logs <*syslog|*stdout|*kafkaLog>
  48// 	"level": 6,							// system level precision for floats
  49// 	"efsConns": ["*internal"],					// connID to efs service
  50// 	"opts": {
  51// 		"failedPostsDir": "/var/spool/cgrates/failed_posts",	// path where fail logs are exported
  52// 		"kafkaAttempts": 1,					// number of attempts of connecting
  53// 		"kafkaConn": "",					// the connection trough kafka
  54// 		"kafkaTopic": ""					// the topic from where the events are exported
  55// 	}
  56// },
  57
  58// "cores": {
  59// 	"caps": 0,			// maximum concurrent request allowed ( 0 to disabled )
  60// 	"capsStrategy": "*busy",	// strategy in case of concurrent requests reached	
  61// 	"capsStatsInterval": "0",	// the interval duration we sample for caps stats ( 0 to disabled )
  62// 	"conns": {
  63// 		// "*ees": [	// connections to EventExporter
  64// 		// 	{
  65// 		// 		"tenant": "",
  66// 		// 		"filterIDs": [],
  67// 		// 		"connIDs": ["*internal"]
  68// 		// 	}
  69// 	},			
  70// 	"shutdownTimeout": "1s"	// the duration to wait until all services are stopped
  71// },
  72
  73// "rpcConns": {			// rpc connections definitions
  74// 	// "*localhost": {
  75// 	// 	"strategy": "*first", // Controls connection selection within the pool. <*first|*next|*random|*first_positive|*first_positive_async|*broadcast|*broadcast_sync|*broadcast_async|*parallel>
  76// 	// 	"poolSize": 0, //Sets the connection limit for *parallel strategy (0 means unlimited)
  77// 	// 	"replyTimeout": "2s",
  78// 	// 	"conns": [{
  79// 	// 		"address": "127.0.0.1:2012",
  80// 	// 		"caCertificate": "",
  81// 	// 		"clientCertificate": "",
  82// 	// 		"clientKey": "",	
  83// 	// 		"connectAttempts": 5,
  84// 	// 		"connectTimeout": "1s",
  85// 	// 		"maxReconnectInterval": "",
  86// 	// 		"reconnects": -1,	
  87// 	// 		"replyTimeout": "2s",
  88// 	// 		"tls": false,
  89// 	// 		"transport": "*json"
  90// 	// 	}]
  91// 	// }
  92// },
  93
  94// "db": {				// database used to store data (eg: accounts)
  95// 	"dbConns": {
  96// 		"*default": {		// The id of the DB connection
  97// 			"dbType": "*internal",		// db type: <*internal|*redis|*mysql|*mongo|*postgres>
  98// 			"dbHost": "",		// db host address
  99// 			"dbPort": 0, 		// db port to reach the database
 100// 			"dbName": "", 		// db database name to connect to
 101// 			"dbUser": "", 		// username to use when connecting to db
 102// 			"dbPassword": "", 		// password to use when connecting to db
 103// 			"remoteConns": [],		// the conns that are queried when the items are not found in local DB
 104// 			"remoteConnID": "",		// the ID to be sent to remoteConns to identify the connection
 105// 			"replicationConns": [],		// the conns the items are replicated
 106// 			"replicationFiltered": false, 	// if this is enabled the replication will be made only to the conns that received a get
 107// 			"replicationCache": "", 	// the caching action that is executed on the replicationConns when the items are replicated
 108// 			"replicationFailedDir": "", 		// directory for failed batch replications (used when interval > 0)
 109// 			"replicationInterval": "", 		// interval between batched replications (0 for immediate)
 110// 			"opts":{
 111// 				"internalDBBackupPath": "/var/lib/cgrates/internal_db/backup/db", // default path taken by AdminSv1.BackupDB, AdminSv1.RestoreDB and AdminSv1.SnapshotDB when "BackupFolderPath" is not provided in params of the API
 112// 	        	"internalDBDumpInterval": "1m",		// dump db regularly to a file: "0" - disables it; "-1" - dump on each set/remove; <""|$dur>
 113// 	        	"internalDBDumpPath": "/var/lib/cgrates/internal_db/db",		// the path where db will be dumped
 114// 	        	"internalDBFileSizeLimit": "1GB",	// maximum size that can be written in a singular dump file
 115// 	        	"internalDBRewriteInterval": "1h",	// rewrite dump files regularly: "0" - disables it; "-1" - rewrite on engine start; "-2" - rewrite on engine shutdown; <""|$dur>	
 116// 	        	"internalDBStartTimeout": "5m",		// the amount of wait time until timeout for DB startup
 117// 	        	"mongoConnScheme": "mongodb",		// scheme for MongoDB connection <mongodb|mongodb+srv>
 118// 				"mongoQueryTimeout": "10s",		// timeout for query when mongo is used			
 119// 				"mysqlDSNParams":{},		// DSN params for opening db
 120// 				"mysqlLocation": "Local",	// the location the time from mysql is retrived
 121// 	        	//"pgSSLCert": "",		// file name of the client SSL certificate, replacing the default ~/.postgresql/postgresql.crt
 122// 	        	//"pgSSLCertMode": "allow",	// determines whether a client certificate may be sent to the server, and whether the server is required to request one
 123// 	        	//"pgSSLKey": "",		// location for the secret key used for the client certificate
 124// 				"pgSSLMode": "disable",		// determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server
 125// 	        	//"pgSSLPassword": "",		// specifies the password for the secret key specified in pgSSLKey
 126// 	        	//"pgSSLRootCert": "",		// name of a file containing SSL certificate authority (CA) certificate(s)
 127// 				"redisBatchSize": 1000,			// COUNT size used in redis SCAN queries
 128// 	        	"redisCACertificate": "",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
 129// 	        	"redisClientCertificate": "",		// path to client certificate
 130// 	        	"redisClientKey": "",			// path to client key	    
 131// 	        	"redisCluster": false,			// if enabled the db will try to connect to the redis cluster
 132// 	        	"redisClusterOndownDelay": "0",		// the delay before executing the commands if the redis cluster is in the CLUSTERDOWN state
 133// 	        	"redisClusterSync": "5s",		// the sync interval for the redis cluster
 134// 	        	"redisConnectAttempts": 20,		// the maximum amount of dial attempts
 135// 	        	"redisConnectTimeout": "0",		// the amount of wait time until timeout for a connection attempt
 136// 	        	"redisMaxConns": 10,			// the connection pool size
 137// 	        	"redisPoolPipelineLimit": 0,        	// maximum number of commands that can be pipelined before flushing (0 means no limit)
 138// 	        	"redisPoolPipelineWindow": "150µs",	// duration after which internal pipelines are flushed (0 disables implicit pipelining)
 139// 	        	"redisReadTimeout": "0",		// the amount of wait time until timeout for reading operations
 140// 	        	"redisSentinel": "",			// the name of sentinel when used
 141// 	        	"redisTLS": false,			// if true it will use a tls connection and use the redisClientCertificate, redisClientKey and redisCACertificate for tls connection
 142// 	        	"redisWriteTimeout": "0",		// the amount of wait time until timeout for writing operations
 143// 	        	"sqlConnMaxLifetime": "0", 	// maximum amount of time a connection may be reused (0 for unlimited), not applying for mongo
 144// 	        	"sqlLogLevel": 3,	        // sql logger verbosity: 1=Silent, 2=Error, 3=Warn, 4=Info
 145// 	        	"sqlMaxIdleConns": 10,		// maximum database connections idle, not applying for mongo
 146// 	        	"sqlMaxOpenConns": 100		// maximum database connections opened, not applying for mongo
 147// 	        }
 148// 		},
 149// 	},
 150// 	"items":{
 151// 		"*accountFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},	
 152// 		"*accounts": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"}, 
 153// 		"*actionProfileFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},	
 154// 		"*actionProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 155// 		"*attributeFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 156// 		"*attributeProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 157// 		"*chargerFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 158// 		"*chargerProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 159// 		"*filters": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 160// 		"*ipAllocations": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 161// 		"*ipFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 162// 		"*ipProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 163// 		"*loadIDs": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 164// 		"*rankingProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 165// 		"*rankings": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 166// 		"*rateFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 167// 		"*rateProfileFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 168// 		"*rateProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 169// 		"*resourceFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 170// 		"*resourceProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 171// 		"*resources": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 172// 		"*reverseFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 173// 		"*routeFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 174// 		"*routeProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 175// 		"*statFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 176// 		"*statQueueProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 177// 		"*statQueues": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 178// 		"*thresholdFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false, "dbConn": "*default"},
 179// 		"*thresholdProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 180// 		"*thresholds": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 181// 		"*trendProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 182// 		"*trends": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"},
 183// 		"*versions": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate":false, "dbConn": "*default"}
 184// 	},
 185// },
 186
 187// "listen": {
 188// 	"rpcJSON": "127.0.0.1:2012",		// RPC JSON listening address
 189// 	"rpcGOB": "127.0.0.1:2013",		// RPC GOB listening address
 190// 	"http": "127.0.0.1:2080",		// HTTP listening address
 191// 	"rpcJSONtls" : "127.0.0.1:2022",	// RPC JSON TLS listening address
 192// 	"rpcGOBtls": "127.0.0.1:2023",	// RPC GOB TLS listening address
 193// 	"httpTLS": "127.0.0.1:2280"		// HTTP TLS listening address
 194// },
 195
 196// "tls": {
 197// 	"serverCertificate" : "",	// path to server certificate
 198// 	"serverKey":"",		// path to server key
 199// 	"clientCertificate" : "",	// path to client certificate
 200// 	"clientKey":"",		// path to client key
 201// 	"caCertificate":"",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
 202// 	"serverPolicy":4,		// serverPolicy determines the TLS Client Authentication (0-NoClientCert, 1-RequestClientCert, 2-RequireAnyClientCert, 3-VerifyClientCertIfGiven, 4-RequireAndVerifyClientCert)
 203// 	"serverName":""
 204// },
 205
 206
 207// "http": {						// HTTP server configuration
 208// 	"jsonRPCurl": "/jsonrpc",			// JSON RPC relative URL ("" to disable)
 209// 	"registrarsURL": "/registrar",			// registrar service relative URL
 210// 	"wsURL": "/ws",				// WebSockets relative URL ("" to disable)
 211// 	"freeswitchCDRsURL": "/freeswitch_json",	// Freeswitch CDRS relative URL ("" to disable)
 212// 	"httpCDRs": "/cdr_http",			// CDRS relative URL ("" to disable)
 213// 	"pprofPath": "/debug/pprof/",			// endpoint for serving runtime profiling data for pprof visualization
 214// 	"useBasicAuth": false,			// use basic authentication
 215// 	"authUsers": {},				// basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "})
 216// 	"clientOpts":{
 217// 		// the optins to configure the net.Dialer
 218// 		"dialFallbackDelay": "300ms",		
 219// 		"dialKeepAlive": "30s",		
 220// 		"dialTimeout": "30s",
 221// 		// the options to configure the http.Transport
 222// 		"disableCompression": false,	
 223// 		"disableKeepAlives": false,
 224// 		"expectContinueTimeout": "0",	
 225// 		"forceAttemptHttp2": true,
 226// 		"idleConnTimeout": "90s",
 227// 		"maxConnsPerHost": 0,	
 228// 		"maxIdleConns": 100,
 229// 		"maxIdleConnsPerHost": 2,
 230// 		"responseHeaderTimeout": "0",
 231// 		"skipTLSVerification": false, 		// if enabled Http Client will accept any TLS certificate
 232// 		"tlsHandshakeTimeout": "10s"
 233// 	}
 234// },
 235
 236// "caches":{
 237// 	"partitions": {
 238// 		"*accountFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 			// control coount profile filter indexes caching
 239// 		"*accounts": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control account profile caching
 240// 		"*actionProfileFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 		// control action profile filter indexes caching
 241// 		"*actionProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control action profile caching
 242// 		"*apiban":{"limit": -1, "ttl": "2m", "staticTTL": false, "remote":false, "replicate": false},
 243// 		"*attributeFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 		// control attribute filter indexes caching
 244// 		"*attributeProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control attribute profile caching
 245// 		"*capsEvents": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false},				// caps cached samples
 246// 		"*urIDs": {"limit": -1, "ttl": "10m", "staticTTL": false, "remote":false, "replicate": false},				// protects URs against double-charging
 247// 		"*chargerFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 			// control charger filter indexes caching
 248// 		"*chargerProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control charger profile caching
 249// 		"*closedSessions": {"limit": -1, "ttl": "10s", "staticTTL": false, "remote":false, "replicate": false},			// closed sessions cached for URs
 250// 		"*diameterMessages": {"limit": -1, "ttl": "3h", "staticTTL": false, "remote":false, "replicate": false},			// diameter messages caching
 251// 		"*eventCharges": {"limit": 0, "ttl": "10s", "staticTTL": false, "remote":false, "replicate": false},				// events proccessed by ChargerS
 252// 		"*eventIPs": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false},				// matching ip allocations to events
 253// 		"*eventResources": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false},				// matching resources to events
 254// 		"*filters": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control filters caching
 255// 		"*ipAllocations": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control ip allocations caching
 256// 		"*ipFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 		// control ip filter indexes caching
 257// 		"*ipProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control ip profiles caching
 258// 		"*loadIDs": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control the loadIDs for items		
 259// 		"*radiusPackets": {"limit": -1, "ttl": "3h", "staticTTL": false, "remote":false, "replicate": false},				// radius packets caching
 260// 		"*rankingProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control ranking profile caching
 261// 		"*rankings": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control rankings caching
 262// 		"*rateFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 			// control rate filter indexes caching
 263// 		"*rateProfileFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 		// control rate profile filter indexes caching
 264// 		"*rateProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control rate profile caching
 265// 		"*replicationHosts": {"limit": 0, "ttl": "", "staticTTL": false, "remote":false, "replicate": false},				// the replication hosts cache(used when replicationFiltered is enbled)
 266// 		"*resourceFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 		// control resource filter indexes caching
 267// 		"*resourceProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control resource profiles caching
 268// 		"*resources": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control resources caching
 269// 		"*reverseFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 			// control reverse filter indexes caching used only for set and remove filters
 270// 		"*routeFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 			// control route filter indexes caching
 271// 		"*routeProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control route profile caching
 272// 		"*rpcConnections": {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false},				// RPC connections caching
 273// 		"*rpcResponses": {"limit": 0, "ttl": "2s", "staticTTL": false, "remote":false, "replicate": false},				// RPC responses caching
 274// 		"*sentrypeer":{"limit": -1, "ttl": "24h", "staticTTL": true, "remote":false, "replicate": false},
 275// 		"*statFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 			// control stat filter indexes caching
 276// 		"*statQueueProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// statqueue profiles
 277// 		"*statQueues": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// statQueues with metrics		
 278// 		"*stir": {"limit": -1, "ttl": "3h", "staticTTL": false, "remote":false, "replicate": false},					// stirShaken cache keys
 279// 		"*thresholdFilterIndexes" : {"limit": -1, "ttl": "", "staticTTL": false, "remote":false, "replicate": false}, 		// control threshold filter indexes caching
 280// 		"*thresholdProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control threshold profiles caching
 281// 		"*thresholds": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control thresholds caching
 282// 		"*trendProfiles": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},	// control threshold profiles caching
 283// 		"*trends": {"limit": -1, "ttl": "", "staticTTL": false, "precache": false, "remote":false, "replicate": false},		// control thresholds caching
 284// 		"*uch": {"limit": -1, "ttl": "3h", "staticTTL": false, "remote":false, "replicate": false},					// User cache
 285// 	},
 286// 	"replicationConns": [],
 287// 	"remoteConns": []	// the conns that are queried when the items are not found in cache
 288// },
 289
 290
 291// "filters": {
 292// 	"conns": {
 293// 		// "*accounts": [
 294// 		// 	{
 295// 		// 		"tenant": "",
 296// 		// 		"filterIDs": [],
 297// 		// 		"connIDs": ["*internal"]
 298// 		// 	}
 299// 		// ],
 300// 		// "*rankings": [
 301// 		// 	{
 302// 		// 		"tenant": "",
 303// 		// 		"filterIDs": [],
 304// 		// 		"connIDs": ["*internal"]
 305// 		// 	}
 306// 		// ],
 307// 		// "*resources": [
 308// 		// 	{
 309// 		// 		"tenant": "",
 310// 		// 		"filterIDs": [],
 311// 		// 		"connIDs": ["*internal"]
 312// 		// 	}
 313// 		// ],
 314// 	    // "*stats": [
 315// 		// 	{
 316// 		// 		"tenant": "",
 317// 		// 		"filterIDs": [],
 318// 		// 		"connIDs": ["*internal"]
 319// 		// 	}
 320// 		// ],
 321// 		// "*trends": [
 322// 		// 	{
 323// 		// 		"tenant": "",
 324// 		// 		"filterIDs": [],
 325// 		// 		"connIDs": ["*internal"]
 326// 		// 	}
 327// 		// ]
 328// 	}	
 329// 	},
 330
 331
 332// "ers": {				// EventReaderService
 333// 	"enabled": false,		// starts the EventReader service: <true|false>
 334// 	"conns": {
 335// 		// "*ees": [		// connection for routing processed and invalid messages through EEs
 336// 		// 	{
 337// 		// 		"tenant": "",
 338// 		// 		"filterIDs": [],
 339// 		// 		"connIDs": ["*internal"]
 340// 		// 	}
 341// 		// ],
 342// 		// "*sessions": [	// RPC Connections IDs
 343// 		// 	{
 344// 		// 		"tenant": "",
 345// 		// 		"filterIDs": [],
 346// 		// 		"connIDs": ["*internal"]
 347// 		// 	}
 348// 		// ],
 349// 		// "*stats": [		// connections to StatS, empty to disable: <""|*internal|$rpc_conns_id>
 350// 		// 	{
 351// 		// 		"tenant": "",
 352// 		// 		"filterIDs": [],
 353// 		// 		"connIDs": ["*internal"]
 354// 		// 	}
 355// 		// "*thresholds": [	// connections to ThresholdS, empty to disable: <""|*internal|$rpc_conns_id>
 356// 		// 	{
 357// 		// 		"tenant": "",
 358// 		// 		"filterIDs": [],
 359// 		// 		"connIDs": ["*internal"]
 360// 		// 	}
 361// 		// ],
 362// 	},	
 363// 	"partialCacheTTL": "1s",	// the duration to cache partial records when not pairing	
 364// 	"readers": [
 365// 		{
 366// 			"id": "*default",				// identifier of the EventReader profile
 367// 			"type": "*none",				// reader type <*fileCSV>
 368// 			"runDelay": "0",				// sleep interval in seconds between consecutive runs, "-1" to use automation via inotify; "0" to disable running all together; <""|$dur>
 369// 			"startDelay": "0",                 // time to wait before an reader starts to run 	
 370// 			"concurrentRequests": 1024,			// maximum simultaneous requests/files to process, 0 for unlimited
 371// 			"sourcePath": "/var/spool/cgrates/ers/in",	// read data from this path
 372// 			"processedPath": "/var/spool/cgrates/ers/out",	// move processed data here
 373// 			"tenant": "",					// tenant used by import
 374// 			"timezone": "",					// timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
 375// 			"eesSuccessIDs": [],					// ids of exporters used for moving the raw event to EEs
 376// 			"eesFailedIDs": [],					// ids of exporters used for moving the failed raw event to EEs
 377// 			"filters": [],					// limit parsing based on the filters
 378// 			"flags": [],					// flags to influence the event processing
 379// 			"reconnects": -1,				// number of retries in case of connection lost
 380// 			"maxReconnectInterval": "5m", 		// time to wait in between reconnect attempts
 381// 			"opts": {
 382// 				// AMQP and AMQPv1
 383// 				// "amqpConsumerTag": "cgrates",	// unique tag for the consumer, useful for message tracking and consumer management (0.9.1)
 384// 				// "amqpExchange": "",			// name of the primary exchange where messages will be published (0.9.1)
 385// 				// "amqpExchangeType": "",		// type of the primary exchange (direct, topic, fanout, headers) (0.9.1)
 386// 				// "amqpPassword": "",			// password for authentication, exclusive to AMQP 1.0
 387// 				// "amqpQueueID": "cgratesURs",	// identifier for the primary queue where messages are consumed (0.9.1/1.0)
 388// 				// "amqpRoutingKey": "",		// key used for routing messages to the primary queue (0.9.1)
 389// 				// "amqpUsername": "",			// username for SASL PLAIN auth, exclusive to AMQP 1.0, often representing the policy name
 390
 391// 				// SQS and S3
 392// 				// "awsKey": "",
 393// 				// "awsRegion": "",
 394// 				// "awsSecret": "",
 395// 				// "awsToken": "",
 396
 397// 				// FileCSV
 398// 				"csvFieldSeparator": ",",	// separator used when reading the fields
 399// 				"csvHeaderDefineChar": ":", 	// the starting character for header definition used in case of CSV files
 400// 				// "csvLazyQuotes": false,	// if a quote may appear in an unquoted field and a non-doubled quote may appear in a quoted field
 401// 				"csvRowLength": 0,		// Number of fields from csv file
 402				
 403// 				// "ignoreErroredItems": false,		// skip items that fail processing instead of aborting the reader
 404
 405// 				// Kafka
 406// 				// "kafkaCAPath": "",
 407// 				// "kafkaGroupID": "cgrates",	// the group that reads the events
 408// 				// "kafkaMaxWait": "1ms",	// the maximum amount of time to wait for new data to come
 409// 				// "kafkaSkipTLSVerify": false,
 410// 				// "kafkaTLS": false,		// if set to true it will try to authenticate the server
 411// 				// "kafkaTopic": "cgrates",	// the topic from were the events are read
 412
 413// 				// nats
 414// 				// "natsCertificateAuthority": "",	// the path to a custom certificate authority file( used by tls)
 415// 				// "natsClientCertificate": "",		// the path to a client certificate( used by tls)
 416// 				// "natsClientKey": "",			// the path to a client key( used by tls)
 417// 				// "natsConsumerName": "cgrates",	// in case of JetStream the name of the consumer
 418// 				// "natsJetStream": false,		// controls if the nats reader uses the JetStream
 419// 				// "natsJetStreamMaxWait": "5s"		// the maximum amount of time to wait for a response
 420// 				// "natsJWTFile": "",			// the path to the JWT file( can be the chained file or the user file)
 421// 				// "natsQueueID": "",			// the queue id the consumer listen to
 422// 				// "natsSeedFile": "",			// the path to the seed files( if the JWT file is mention this is used as seedFile for the JWT user mentioned above)
 423// 				// "natsStreamName": "urs",		// the name of the NATS JetStream stream from which the consumer will read messages
 424// 				"natsSubject": "cgratesURs",		// the subject from were the events are read
 425			
 426// 				// Partial
 427// 				// "partialPath": "/",			// the path were the partial events will be sent
 428// 				"partialCacheAction": "*none",		// the action that will be executed for the partial CSVs that are not matched<*none|*postCDR|*dumpToFile>
 429// 				"partialOrderField": "~*req.AnswerTime",// the field after what the events are order when merged
 430// 				// "partialcsvFieldSeparator": ","	// separator used when dumping the fields
 431
 432// 				// SQL
 433// 				// "pgSSLMode": "disable",	// the ssl mode for postgres db
 434// 				// "sqlBatchSize: 0, 				// number of SQL rows that can be selected at a time. 0 or lower for unlimited
 435// 				// "sqlDBName": "cgrates", 	// the name of the database from were the events are read
 436// 				// "sqlDeleteIndexedFields": [],   		// list of fields to DELETE from the table
 437// 				// "sqlTableName": "urs",	// the name of the table from were the events are read
 438
 439// 				// SQS
 440// 				// "sqsForcePathStyle": false,      // when true, force the request to use path-style addressing, i.e., http://s3.amazonaws.com/BUCKET/KEY. If false, (http://BUCKET.s3.amazonaws.com/KEY)
 441// 				// "sqsQueueID": "cgratesURs", 	// the queue id for SQS readers from were the events are read
 442// 				// "sqsSkipTlsVerify": false, 		// if enabled Http Client will accept any TLS certificate
 443
 444// 				// S3
 445// 				// "s3BucketID": "cgratesURs", 	// the bucket id for S3 readers from were the events are read
 446// 				// "s3ForcePathStyle": false,      // when true, force the request to use path-style addressing, i.e., http://s3.amazonaws.com/BUCKET/KEY. If false, (http://BUCKET.s3.amazonaws.com/KEY)
 447// 				// "s3SkipTlsVerify": false, 		// if enabled Http Client will accept any TLS certificate
 448
 449// 				// FileXML
 450// 				// "xmlRootPath": "",		// path towards one event in case of XML URs
 451// 			},
 452// 			"fields":[	// import fields template, tag will match internally UR field, in case of .csv value will be represented by index of the field value
 453// 				{"tag": "ToR", "path": "*cgreq.ToR", "type": "*variable", "value": "~*req.2", "mandatory": true},
 454// 				{"tag": "OriginID", "path": "*cgreq.OriginID", "type": "*variable", "value": "~*req.3", "mandatory": true},
 455// 				{"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*variable", "value": "~*req.4", "mandatory": true},
 456// 				{"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*variable", "value": "~*req.6", "mandatory": true},
 457// 				{"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.7", "mandatory": true},
 458// 				{"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.8", "mandatory": true},
 459// 				{"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.9", "mandatory": true},
 460// 				{"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "value": "~*req.10", "mandatory": true},
 461// 				{"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.11", "mandatory": true},
 462// 				{"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.12", "mandatory": true},
 463// 				{"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.13", "mandatory": true}
 464// 			],
 465// 			"partialCommitFields": [],
 466// 			"cacheDumpFields": []
 467// 		}
 468// 	]
 469// },
 470
 471// "efs": {
 472// 	"enabled": false,					// starts the EventReader service: <true|false>
 473// 	"posterAttempts": 3,					// number of attempts before considering post request failed (eg: *httpPost, UR exports)
 474// 	"failedPostsDir": "/var/spool/cgrates/failed_posts",	// directory where failed export requests are stored
 475// 	"failedPostsTTL": "5s",				// cache ttl for batching failed posts before writing to disk
 476// 	"failedPostsStaticTTL": true				// if false, ttl resets on every cache access
 477// },
 478
 479// "ees": {
 480// 	"enabled": false,		// starts the EventReader service: <true|false>
 481// 	"conns": {
 482// 		// "*attributes": [  // RPC Connections IDs
 483// 		// 	{
 484// 		// 		"tenant": "",
 485// 		// 		"filterIDs": [],
 486// 		// 		"connIDs": ["*internal"]
 487// 		// 	}
 488// 		// ],
 489// 	},	
 490// 	"cache": {
 491// 		"*fileCSV": {"limit": -1, "ttl": "5s", "staticTTL": false}
 492// 	},
 493// 	"exporters": [
 494// 		{
 495// 			"id": "*default",					// identifier of the EventReader profile
 496// 			"type": "*none",					// exporter type 
 497// 			"exportPath": "/var/spool/cgrates/ees",		// path where the exported events will be placed
 498// 			"failedPostsDir": "/var/spool/cgrates/failed_posts",	// directory path where we store failed requests
 499// 			"concurrentRequests": 0,				// maximum simultaneous requests to process, 0 for unlimited
 500// 			"timezone": "",						// timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
 501// 			"conns": {
 502// 					"*efs": [{"connIDs": ["*internal"]}]	// connID to efs service
 503// 					},		
 504// 			"filters": [],						// limit parsing based on the filters
 505// 			"flags": [],						// flags to influence the event processing
 506// 			"attributeIDs": [],					// select Attribute profiles instead of discovering them
 507// 			"attributeContext": "",				// context used to discover matching Attribute profiles
 508// 			"synchronous": false,					// block processing until export has a result
 509// 			"blocker": false,					// stops the processing of the following exporters
 510// 			"attempts": 1,						// export attempts
 511// 			"metricsResetSchedule": "", 				// cron schedule for resetting exporter metrics (empty disables automatic reset)
 512// 			"opts": {						// extra options for exporter
 513// 				// AMQP
 514// 				// "amqpExchange": "",			// Exchange, amqp 0.9.1 exclusive
 515// 				// "amqpExchangeType": "",		// ExchangeType, amqp 0.9.1 exclusive	
 516// 				// "amqpPassword": "",			// amqp 1.0 exclusive, used for SASL PLAIN auth, populated with one of its policy's keys
 517// 				// "amqpQueueID": "cgratesURs",	// the queue id for AMQP exporters from were the events are exported
 518// 				// "amqpRoutingKey": "",		// RoutingKey, amqp 0.9.1 exclusive
 519// 				// "amqpUsername": "",			// amqp 1.0 exclusive, used for SASL PLAIN auth, usually represents the policy name
 520				
 521// 				// SQS and S3
 522// 				// "awsKey": "",			// AWSKey
 523// 				// "awsRegion": "",			// AWSRegion
 524// 				// "awsSecret": "",			// AWSSecret
 525// 				// "awsToken": "",			// AWSToken
 526
 527// 				// CSV
 528// 				// "csvFieldSeparator": ",",		// separator used when reading the fields
 529
 530// 				// Elasticsearch options
 531// 				// "elsApiKey": "",			// base64-encoded token for auth; overrides username/password and service token
 532// 				// "elsCAPath": "",			// path to CA certificate
 533// 				// "elsCertificateFingerPrint": "",	// SHA256 hex fingerprint given by Elasticsearch on first launch
 534// 				// "elsCloud": true,			// if true, use cloud ID deployment
 535// 				// "elsCompressRequestBody": false,	// enable compression on requests
 536// 				// "elsCompressRequestBodyLevel": 0,	// compression level <0(gzip)|9(best compression)|-2(HuffmanOnly)|1(best speed)>
 537// 				// "elsDisableRetry": false,		// disable retry mechanism
 538// 				// "elsDiscoverNodesInterval": "10s",	// discover nodes periodically
 539// 				// "elsDiscoverNodesOnStart": false,	// discover nodes when initializing the client
 540// 				// "elsEnableDebugLogger": "false",	// enable the debug logging
 541// 				// "elsIndex": "",			// target elasticsearch index
 542// 				// "elsLogger": "",			// logger type <elsJson|elsColor|elsText>
 543// 				// "elsMaxRetries": 3,			// maximum number of retries
 544// 				// "elsOpType": "index",		// operation type <index|create>
 545// 				// "elsPassword": "",			// password for HTTP Basic Authentication
 546// 				// "elsPipeline": "",			// name of the ingest pipeline to use
 547// 				// "elsRefresh": "false",		// controls when changes become searchable <true|false|wait_for>
 548// 				// "elsRetryOnStatus": [502,503,504],	// status codes for retry
 549// 				// "elsRouting": "",			// custom routing value for document storage
 550// 				// "elsServiceToken": "",		// service token for auth; if set, overrides username/password
 551// 				// "elsTimeout": "1m",			// maximum time to wait for operation
 552// 				// "elsUsername": "",			// username for HTTP Basic Authentication
 553// 				// "elsWaitForActiveShards": "1",	// number of shard copies required before indexing (default: 1)
 554
 555// 				// Kafka
 556// 				// "kafkaCAPath": "",			// path to certificate authority pem file
 557// 				// "kafkaDeliveryTimeout": "30s",	// max time to wait for a message to be delivered
 558// 				// "kafkaLinger": "10ms",		// how long to wait for more records before sending a batch
 559// 				// "kafkaTopic": "cgrates",		// the topic from where the events are exported
 560// 				// "kafkaTLS": false,			// if set to true it will try to authenticate the server
 561// 				// "kafkaSkipTLSVerify": false,		// if set to true it will skip certificate verification
 562				
 563// 				// Nats
 564// 				// "natsCertificateAuthority": "",	// the path to a custom certificate authority file( used by tls)
 565// 				// "natsClientCertificate": "",		// the path to a client certificate( used by tls)
 566// 				// "natsClientKey": "",			// the path to a client key( used by tls)
 567// 				// "natsJetStream": false,		// controls if the nats poster uses the JetStream
 568// 				// "natsJetStreamMaxWait": "5s",	// the maximum amount of time to wait for a response
 569// 				// "natsJWTFile": "",			// the path to the JWT file( can be the chained file or the user file)
 570// 				// "natsSeedFile": "",			// the path to the seed files( if the JWT file is mention this is used as seedFile for the JWT user mentioned above)				
 571// 				// "natsSubject": "cgratesURs",	// the subject were the events are exported
 572
 573// 				//RPC
 574// 				// "caPath": "",			// path to CA certificate
 575// 				// "certPath": "",			// path to client certificate
 576// 				// "connIDs": [],			// connections for connManager to this exporter
 577// 				// "keyPath": "" ,			// path to server key 
 578// 				// "rpcAPIOpts": {}			// opts that will be passed within APIOpts			
 579// 				// "rpcCodec": "",			// for compression, encoding and decoding <internalRPC | BIRPC | JSON/HTTP/GOB>
 580// 				// "rpcConnTimeout" : "1s",		// connection unsuccesfull on timeout
 581// 				// "rpcReplyTimeout":"2s",		// connection down at replies if taking longer that this value
 582// 				// "serviceMethod": "",			// the method that should be called trough RPC
 583// 				// "tls": false,
 584
 585// 				// SQL
 586// 				// "mysqlDSNParams": {},                // DSN params
 587// 				// "pgSSLMode": "disable",		// the postgresSSLMode for postgres            				
 588// 				// "sqlConnMaxLifetime": "0",		// SQLConnMaxLifetime 
 589// 				// "sqlDBName": "cgrates",		// the name of the database from where the events are exported
 590// 				// "sqlMaxIdleConns": 0,		// SQLMaxIdleConns    
 591// 				// "sqlMaxOpenConns": 0,		// SQLMaxOpenConns
 592// 				// "sqlUpdateIndexedFields": [], // list of field names used for indexing UPDATE queries from the table
 593// 				// "sqlTableName":"urs", 		// the name of the table from where the events are exported
 594
 595// 				//SQS
 596// 				// "sqsQueueID": "cgratesURs", 	// the queue id for SQS exporters from were the events are exported
 597
 598// 				// S3
 599// 				// "s3BucketID": "cgratesURs", 	// the bucket id for S3 readers from where the events that are  exported
 600// 				// "s3FolderPath": "",			// S3FolderPath 
 601// 			},
 602// 			"fields":[]					// import fields template, tag will match internally UR field, in case of .csv value will be represented by index of the field value
 603// 		}
 604// 	]
 605// },
 606
 607
 608// "sessions": {
 609// 	"enabled": false,			// starts the session service: <true|false>
 610// 	"listenBiJSON": "127.0.0.1:2014",	// address where to listen for bidirectional JSON-RPC requests
 611// 	"listenBiGob": "",			// address where to listen for bidirectional GOB-RPC requests
 612// 	"debitInterval": "0s",			// interval to perform debits on.
 613// 	"defaultUsage":{			// the usage if the event is missing the usage field
 614// 			"*any": "3h",
 615// 			"*voice": "3h",
 616// 			"*data": "1048576",
 617// 			"*sms": "1"
 618// 	},
 619// 	"sessionTTL": "0s",			// time after a session with no updates is terminated, not defined by default
 620// 	//"sessionTTLMaxDelay": "",		// activates sessionTTL randomization and limits the maximum possible delay
 621// 	//"sessionTTLLastUsed": "",		// tweak LastUsed for sessions timing-out, not defined by default
 622// 	//"sessionTTLUsage": "",		// tweak Usage for sessions timing-out, not defined by default
 623// 	//"sessionLastUsage": "",		// tweak LastUsage for session timing-out, not defined by default
 624// 	"sessionIndexes": [],			// index sessions based on these fields for GetActiveSessions API
 625// 	"clientProtocol": 1.0,			// version of protocol to use when acting as JSON-PRC client <"0","1.0">
 626// 	"channelSyncInterval": "0",		// sync channels to detect stale sessions (0 to disable)
 627// 	"terminateAttempts": 5,		// attempts to get the session before terminating it
 628// 	"alterableFields": [],			// the session fields that can be updated
 629// 	//"minDurLowBalance": "5s",		// threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debitInterval)
 630// 	"stir": {
 631// 		"allowedAttest": ["*any"],	// the default attest for stir/shaken authentication <*any|A|B|C>
 632// 		"payloadMaxduration": "-1", 	// the duration that stir header is valid after it was created
 633// 		"defaultAttest": "A",		// the default attest level if not mentioned in API
 634// 		"publicKeyPath": "",		// the path to the public key 
 635// 		"privateKeyPath": "",		// the path to the private key
 636// 	},																		
 637// 	"opts": {
 638// 		// "*accounts": [
 639// 		// 	{
 640// 		// 		"tenant": "*any",
 641// 		// 		"filterIDs": [],
 642// 		// 		"value": false
 643// 		// 	}
 644// 		// ],
 645// 		// "*accountsDebit": [
 646// 		// 	{
 647// 		// 		"tenant": "*any",
 648// 		// 		"filterIDs": [],
 649// 		// 		"value": false
 650// 		// 	}
 651// 		// ],
 652// 		// "*accountsForceUsage": [
 653// 		// 	{
 654// 		// 		"tenant": "*any",
 655// 		// 		"filterIDs": [],
 656// 		// 		"value": ""
 657// 		// 	}
 658// 		// ],		
 659// 		// "*debit": [
 660// 		// 	{
 661// 		// 		"tenant": "*any",
 662// 		// 		"filterIDs": [],
 663// 		// 		"value": false
 664// 		// 	}
 665// 		// ],
 666// 		// "*refund": [
 667// 		// 	{
 668// 		// 		"tenant": "*any",
 669// 		// 		"filterIDs": [],
 670// 		// 		"value": "false"
 671// 		// 	}
 672// 		// ],
 673// 		// "*attributes": [
 674// 		// 	{
 675// 		// 		"tenant": "*any",
 676// 		// 		"filterIDs": [],
 677// 		// 		"value": false
 678// 		// 	}
 679// 		// ],
 680// 		// "*attributesDerivedReply": [
 681// 		// 	{
 682// 		// 		"tenant": "*any",
 683// 		// 		"filterIDs": [],
 684// 		// 		"value": false
 685// 		// 	}
 686// 		// ],
 687// 		// "*blockerError": [
 688// 		// 	{
 689// 		// 		"tenant": "*any",
 690// 		// 		"filterIDs": [],
 691// 		// 		"value": false
 692// 		// 	}
 693// 		// ],
 694// 		// "*ur": [
 695// 		// 	{
 696// 		// 		"tenant": "*any",
 697// 		// 		"filterIDs": [],
 698// 		// 		"value": false
 699// 		// 	}
 700// 		// ],
 701// 		// "*chargeable": [
 702// 		// 	{
 703// 		// 		"tenant": "*any",
 704// 		// 		"filterIDs": [],
 705// 		// 		"value": false
 706// 		// 	}
 707// 		// ],		
 708// 		// "*chargers": [
 709// 		// 	{
 710// 		// 		"tenant": "*any",
 711// 		// 		"filterIDs": [],
 712// 		// 		"value": false
 713// 		// 	}
 714// 		// ],
 715// 		// "*debitInterval": [
 716// 		// 	{
 717// 		// 		"tenant": "*any",
 718// 		// 		"filterIDs": [],
 719// 		// 		"value": ""
 720// 		// 	}
 721// 		// ],
 722// 		// "*ees": [
 723// 		// 	{
 724// 		// 		"tenant": "*any",
 725// 		// 		"filterIDs": [],
 726// 		// 		"value": false
 727// 		// 	}
 728// 		// ],
 729// 		// "*eesIDs": [
 730//         // 	{
 731//         // 		"tenant": "*any",
 732//         // 		"filterIDs": [],
 733//         // 		"value": ""
 734//         // 	}
 735//         // ],
 736// 		// "*forceDuration": [
 737// 		// 	{
 738// 		// 		"tenant": "*any",
 739// 		// 		"filterIDs": [],
 740// 		// 		"value": false
 741// 		// 	}
 742// 		// ],
 743// 		// "*initiate": [
 744// 		// 	{
 745// 		// 		"tenant": "*any",
 746// 		// 		"filterIDs": [],
 747// 		// 		"value": false
 748// 		// 	}
 749// 		// ],
 750// 		// "*ips": [
 751// 		// 	{
 752// 		// 		"tenant": "*any",
 753// 		// 		"filterIDs": [],
 754// 		// 		"value": false
 755// 		// 	}
 756// 		// ],
 757// 		// "*ipsAllocate": [
 758// 		// 	{
 759// 		// 		"tenant": "*any",
 760// 		// 		"filterIDs": [],
 761// 		// 		"value": false
 762// 		// 	}
 763// 		// ],	
 764// 		// "*ipsAuthorize": [
 765// 		// 	{
 766// 		// 		"tenant": "*any",
 767// 		// 		"filterIDs": [],
 768// 		// 		"value": false
 769// 		// 	}
 770// 		// ],
 771// 		// "*ipsRelease": [
 772// 		// 	{
 773// 		// 		"tenant": "*any",
 774// 		// 		"filterIDs": [],
 775// 		// 		"value": false
 776// 		// 	}
 777// 		// ],
 778// 		// "*maxUsage": [
 779// 		// 	{
 780// 		// 		"tenant": "*any",
 781// 		// 		"filterIDs": [],
 782// 		// 		"value": false
 783// 		// 	}
 784// 		// ],
 785// 		// "*message": [
 786// 		// 	{
 787// 		// 		"tenant": "*any",
 788// 		// 		"filterIDs": [],
 789// 		// 		"value": false
 790// 		// 	}
 791// 		// ],
 792// 		// "*originID": [
 793// 		// 	{
 794// 		// 		"tenant": "*any",
 795// 		// 		"filterIDs": [],
 796// 		// 		"value": ""
 797// 		// 	}
 798// 		// ],
 799// 		//  "*rates": [
 800//         //  {
 801//         //      "tenant": "*any",
 802//         //      "filterIDs": [],
 803//         //      "value": false
 804//         //  }
 805//         // ],
 806// 		// "*resources": [
 807// 		// 	{
 808// 		// 		"tenant": "*any",
 809// 		// 		"filterIDs": [],
 810// 		// 		"value": false
 811// 		// 	}
 812// 		// ],
 813// 		// "*resourcesAllocate": [
 814// 		// 	{
 815// 		// 		"tenant": "*any",
 816// 		// 		"filterIDs": [],
 817// 		// 		"value": false
 818// 		// 	}
 819// 		// ],		
 820// 		// "*resourcesAuthorize": [
 821// 		// 	{
 822// 		// 		"tenant": "*any",
 823// 		// 		"filterIDs": [],
 824// 		// 		"value": false
 825// 		// 	}
 826// 		// ],	
 827// 		// "*resourcesDerivedReply": [
 828// 		// 	{
 829// 		// 		"tenant": "*any",
 830// 		// 		"filterIDs": [],
 831// 		// 		"value": false
 832// 		// 	}
 833// 		// ],
 834// 		// "*resourcesRelease": [
 835// 		// 	{
 836// 		// 		"tenant": "*any",
 837// 		// 		"filterIDs": [],
 838// 		// 		"value": false
 839// 		// 	}
 840// 		// ],
 841// 		// "*routes": [
 842// 		// 	{
 843// 		// 		"tenant": "*any",
 844// 		// 		"filterIDs": [],
 845// 		// 		"value": false
 846// 		// 	}
 847// 		// ],
 848// 		// "*routesDerivedReply": [
 849// 		// 	{
 850// 		// 		"tenant": "*any",
 851// 		// 		"filterIDs": [],
 852// 		// 		"value": false
 853// 		// 	}
 854// 		// ],
 855// 		// "*stats": [
 856// 		// 	{
 857// 		// 		"tenant": "*any",
 858// 		// 		"filterIDs": [],
 859// 		// 		"value": false
 860// 		// 	}
 861// 		// ],
 862// 		// "*statsDerivedReply": [
 863// 		// 	{
 864// 		// 		"tenant": "*any",
 865// 		// 		"filterIDs": [],
 866// 		// 		"value": false
 867// 		// 	}
 868// 		// ],
 869// 		// "*terminate": [
 870// 		// 	{
 871// 		// 		"tenant": "*any",
 872// 		// 		"filterIDs": [],
 873// 		// 		"value": false
 874// 		// 	}
 875// 		// ],
 876// 		// "*thresholds": [
 877// 		// 	{
 878// 		// 		"tenant": "*any",
 879// 		// 		"filterIDs": [],
 880// 		// 		"value": false
 881// 		// 	}
 882// 		// ],
 883// 		// "*thresholdsDerivedReply": [
 884// 		// 	{
 885// 		// 		"tenant": "*any",
 886// 		// 		"filterIDs": [],
 887// 		// 		"value": false
 888// 		// 	}
 889// 		// ],
 890// 		// "*ttl": [
 891// 		// 	{
 892// 		// 		"tenant": "*any",
 893// 		// 		"filterIDs": [],
 894// 		// 		"value": ""
 895// 		// 	}
 896// 		// ],
 897// 		// "*ttlLastUsage": [
 898// 		// 	{
 899// 		// 		"tenant": "*any",
 900// 		// 		"filterIDs": [],
 901// 		// 		"value": ""
 902// 		// 	}
 903// 		// ],
 904// 		// "*ttlLastUsed": [
 905// 		// 	{
 906// 		// 		"tenant": "*any",
 907// 		// 		"filterIDs": [],
 908// 		// 		"value": ""
 909// 		// 	}
 910// 		// ],
 911// 		// "*ttlMaxDelay": [
 912// 		// 	{
 913// 		// 		"tenant": "*any",
 914// 		// 		"filterIDs": [],
 915// 		// 		"value": ""
 916// 		// 	}
 917// 		// ],
 918// 		// "*ttlUsage": [
 919// 		// 	{
 920// 		// 		"tenant": "*any",
 921// 		// 		"filterIDs": [],
 922// 		// 		"value": ""
 923// 		// 	}
 924// 		// ],
 925// 		// "*update": [
 926// 		// 	{
 927// 		// 		"tenant": "*any",
 928// 		// 		"filterIDs": [],
 929// 		// 		"value": false
 930// 		// 	}
 931// 		// ]
 932// 	},
 933// 	"conns": {
 934// 		// "*accounts": [		// connections to AccountS
 935// 		// 	{
 936// 		// 		"tenant": "",
 937// 		// 		"filterIDs": [],
 938// 		// 		"connIDs": []
 939// 		// 	}
 940// 		// ],
 941// 		// "*actions": [	// connections to SchedulerS in case of *dynaprepaid request
 942// 		// 	{
 943// 		// 		"tenant": "",
 944// 		// 		"filterIDs": [],
 945// 		// 		"connIDs": []
 946// 		// 	}
 947// 		// ],
 948// 		// "*attributes": [		// connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id>
 949// 		// 	{
 950// 		// 		"tenant": "",
 951// 		// 		"filterIDs": [],
 952// 		// 		"connIDs": []
 953// 		// 	}
 954// 		// ],
 955// 		// "*chargers": [	// connections to ChargerS for session forking <""|*internal|$rpc_conns_id>
 956// 		// 	{
 957// 		// 		"tenant": "",
 958// 		// 		"filterIDs": [],
 959// 		// 		"connIDs": []
 960// 		// 	}
 961// 		// ],
 962// 		// "*ees": [	// connections to EEs for exporting session events <""|*internal|$rpc_conns_id>
 963// 		// 	{
 964// 		// 		"tenant": "",
 965// 		// 		"filterIDs": [],
 966// 		// 		"connIDs": []
 967// 		// 	}
 968// 		// ],
 969// 		// "*ips": [	// connections to IPs for monitoring ip usage <""|*internal|$rpc_conns_id>
 970// 		// 	{
 971// 		// 		"tenant": "",
 972// 		// 		"filterIDs": [],
 973// 		// 		"connIDs": []
 974// 		// 	}
 975// 		// ],
 976// 		// "*rates": [		// connections to RateS
 977// 		// 	{
 978// 		// 		"tenant": "",
 979// 		// 		"filterIDs": [],
 980// 		// 		"connIDs": []
 981// 		// 	}
 982// 		// ],
 983// 		// "*replication": [	// replicate sessions towards these session services
 984// 		// 	{
 985// 		// 		"tenant": "",
 986// 		// 		"filterIDs": [],
 987// 		// 		"connIDs": []
 988// 		// 	}
 989// 		// ],
 990// 		// "*routes": [		// connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id>
 991// 		// 	{
 992// 		// 		"tenant": "",
 993// 		// 		"filterIDs": [],
 994// 		// 		"connIDs": []
 995// 		// 	}
 996// 		// ],
 997// 		// "*stats": [		// connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
 998// 		// 	{
 999// 		// 		"tenant": "",
1000// 		// 		"filterIDs": [],
1001// 		// 		"connIDs": []
1002// 		// 	}
1003// 		// ],
1004// 		// "*thresholds": [		// connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
1005// 		// 	{
1006// 		// 		"tenant": "",
1007// 		// 		"filterIDs": [],
1008// 		// 		"connIDs": []
1009// 		// 	}
1010// 		// ],
1011// 	}
1012// },
1013
1014
1015// "asteriskAgent": {
1016// 	"enabled": false,			// starts the Asterisk agent: <true|false>
1017// 	"conns": {
1018// 		"*sessions":[{"connIDs":["*birpc_internal"]}]
1019// 	},			
1020// 	"asteriskConns":[			// instantiate connections to multiple Asterisk servers
1021// 		{
1022// 			"address": "127.0.0.1:8088",
1023// 			"ariWebsocket": false,
1024// 			"connectAttempts": 3,
1025// 			"maxReconnectInterval": "",
1026// 			"password": "CGRateS.org",
1027// 			"reconnects": 5,
1028// 			"user": "cgrates"
1029// 		}
1030// 	],
1031// 	"requestProcessors": []					// list of processors to be applied to Asterisk events
1032// },
1033
1034
1035// "freeswitchAgent": {
1036// 	"enabled": false,				// starts the FreeSWITCH agent: <true|false>
1037// 	"conns": {
1038// 		"*sessions":[{"connIDs":["*birpc_internal"]}]
1039// 	},
1040// 	"subscribePark": true,				// subscribe via fsock to receive park events
1041// 	"lowBalanceAnnFile": "",			// file to be played when low balance is reached for prepaid calls
1042// 	"emptyBalanceContext": "",			// if defined, prepaid calls will be transferred to this context on empty balance
1043// 	"emptyBalanceAnnFile": "",			// file to be played before disconnecting prepaid calls on empty balance (applies only if no context defined)
1044// 	"maxWaitConnection": "2s",			// maximum duration to wait for a connection to be retrieved from the pool
1045// 	"activeSessionDelimiter": ",",		// delimiter for 'show channels' responses and requests
1046// 	"eventSocketConns":[				// instantiate connections to multiple FreeSWITCH servers
1047// 		{
1048// 			"address": "127.0.0.1:8021", 	// FreeSWITCH server address and port
1049// 			"alias": "",
1050// 			"maxReconnectInterval": "",	// max time between reconnects ("0" for no limit)
1051// 			"password": "ClueCon",  	// authentication password for FreeSWITCH
1052// 			"reconnects": 5, 		// max reconnect attempts before giving up ("-1" for no limit)
1053// 			"replyTimeout": "1m"		// max wait time for FreeSWITCH replies
1054// 		}
1055// 	],
1056// 	"requestProcessors": []					// list of processors to be applied to FReeSWITCH events
1057// },
1058
1059
1060// "kamailioAgent": {
1061// 	"enabled": false,			// starts Kamailio agent: <true|false>
1062// 	"conns": {
1063// 		"*sessions":[{"connIDs":["*birpc_internal"]}]
1064// 	},
1065// 	"timezone": "",				// timezone of the Kamailio server
1066// 	"evapiConns":[				// instantiate connections to multiple Kamailio servers
1067// 		{
1068// 			"address": "127.0.0.1:8448",
1069// 			"maxReconnectInterval": "",			
1070// 			"reconnects": 5
1071// 		}
1072// 	],
1073// 	"requestProcessors": [],		// list of processors to be applied to Kamailio events
1074// },
1075
1076
1077// "diameterAgent": {
1078// 	"enabled": false,						// enables the diameter agent: <true|false>
1079// 	"listeners": [
1080// 		{
1081// 			"address": "127.0.0.1:3868",			// address where to listen for diameter requests <x.y.z.y:1234>
1082// 			"network": "tcp"				// transport type for diameter <tcp|sctp>
1083// 		}
1084// 	],
1085// 	"dictionariesPath": "/usr/share/cgrates/diameter/dict/",	// path towards directory holding additional dictionaries to load
1086// 	"dictionariesAppendDefaults": true,       // if true, dictionaries from the provided path will be appended to the default dictionaries from the go-diameter library
1087// 	// "ceApplications": [],					// list of applications in dictionaries wanted to be included in Capability-Exchange. Needed either "app name", "app ID", or "vendor name.app name/ID"
1088// 	"conns": {
1089// 		"*sessions":[{"connIDs":["*birpc_internal"]}]
1090// 		 // "*stats": [			// connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
1091// 		 // 	{
1092// 		 // 		"tenant": "",
1093// 	     // 		"filterIDs": [],
1094// 	     // 		"connIDs": []
1095// 	     // 	}
1096// 	     // ],
1097// 	     // "*thresholds": [		// connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
1098// 	     // 	{
1099// 	     // 		"tenant": "",
1100// 	     // 		"filterIDs": [],
1101// 	     // 		"connIDs": []
1102// 	     // 	}
1103// 	     // ],
1104// 	},
1105// 	"originHost": "CGR-DA",					// diameter Origin-Host AVP used in replies
1106// 	"originRealm": "cgrates.org",					// diameter Origin-Realm AVP used in replies
1107// 	"vendorID": 0,							// diameter Vendor-Id AVP used in replies
1108// 	"productName": "CGRateS",					// diameter Product-Name AVP used in replies
1109// 	"syncedConnRequests": false,					// process one request at the time per connection
1110// 	"asrTemplate": "",						// enable AbortSession message being sent to client on DisconnectSession
1111// 	"rarTemplate": "",						// template used to build the Re-Auth-Request
1112// 	"forcedDisconnect": "*none",					// the request to send to diameter on DisconnectSession <*none|*asr|*rar>
1113// 	"connStatusStatQueueIDs": [],				// StatQueue IDs for connection status events
1114// 	"connStatusThresholdIDs": [],				// Threshold IDs for connection status events
1115// 	"connHealthCheckInterval": "0",				// peer connection health check interval (0 to disable)
1116// 	"requestProcessors": []					// list of processors to be applied to diameter messages
1117// },
1118
1119
1120// "radiusAgent": {
1121// 	"enabled": false,					// enables the radius agent: <true|false>
1122// 	"listeners":[
1123// 		{
1124// 			"network": "udp",			// network to listen on <udp|tcp>
1125// 			"authAddress": "127.0.0.1:1812",	// address where to listen for radius authentication requests <x.y.z.y:1234>
1126// 			"acctAddress": "127.0.0.1:1813"	// address where to listen for radius accounting requests <x.y.z.y:1234>
1127// 		}
1128// 	],
1129// 	"clientSecrets": {					// hash containing secrets for clients connecting here <*default|$client_ip>
1130// 		"*default": "CGRateS.org"
1131// 	},
1132// 	"clientDictionaries": {				// per client path towards directory holding additional dictionaries to load (extra to RFC)
1133// 		"*default": [					// key represents the client IP or catch-all <*default|$client_ip>
1134// 			"/usr/share/cgrates/radius/dict/"
1135// 		]
1136// 	},
1137// 	"clientDaAddresses": { 				// configuration for clients capable of handling Dynamic Authorization (CoA/DM) requests.
1138// 		// "nasIdentifier": { 				// identifier for the NAS, typically the host from the initial RADIUS packet.
1139// 		// 	"transport": "udp", 			// transport protocol for Dynamic Authorization requests, defaults to UDP.
1140// 		// 	"host": "", 				// optionally specify an alternative host for DA requests. Defaults to the NAS identifier if empty.
1141// 		// 	"port": 3799, 				// port for Dynamic Authorization requests, default is 3799.
1142// 		// 	"flags": [] 				// additional options, currently supports *log for logging DA requests before sending.
1143// 		// }
1144// 	},
1145// 	"requestsCacheKey": "",				// used to choose the cache key of a RADIUS packet <RSRParsers>
1146// 	"conns": {
1147// 		"*sessions":[{"connIDs":["*internal"]}]
1148// 		 // "*stats": [			// connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
1149// 		 // 	{
1150// 		 // 		"tenant": "",
1151// 	     // 		"filterIDs": [],
1152// 	     // 		"connIDs": []
1153// 	     // 	}
1154// 	     // ],
1155// 	     // "*thresholds": [		// connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
1156// 	     // 	{
1157// 	     // 		"tenant": "",
1158// 	     // 		"filterIDs": [],
1159// 	     // 		"connIDs": []
1160// 	     // 	}
1161// 	     // ],
1162// 	},	
1163// 	"dmrTemplate": "*dmr",					// template used to build the Disconnect-Request packet
1164// 	"coaTemplate": "*coa",					// template used to build the CoA-Request packet
1165// 	"requestProcessors": []				// request processors to be applied to Radius messages
1166// },
1167
1168
1169// "httpAgent": [],	// HTTP Agents, ie towards cnc.to MVNE platform
1170
1171
1172// "dnsAgent": {
1173// 	"enabled": false,				// enables the DNS agent: <true|false>
1174// 	"listeners":[
1175// 		{
1176// 			"address": "127.0.0.1:53",	// address where to listen for DNS requests <x.y.z.y:1234>
1177// 			"network": "udp"		// network to listen on <udp|tcp|tcp-tls>
1178// 		}
1179// 	],
1180// 	"conns": {
1181// 		"*sessions":[{"connIDs":["*birpc_internal"]}]
1182// 		 // "*stats": [			// connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
1183// 		 // 	{
1184// 		 // 		"tenant": "",
1185// 	     // 		"filterIDs": [],
1186// 	     // 		"connIDs": []
1187// 	     // 	}
1188// 	     // ],
1189// 	     // "*thresholds": [		// connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
1190// 	     // 	{
1191// 	     // 		"tenant": "",
1192// 	     // 		"filterIDs": [],
1193// 	     // 		"connIDs": []
1194// 	     // 	}
1195// 	     // ],
1196// 	},
1197// 	"timezone": "",					// timezone of the events if not specified  <UTC|Local|$IANA_TZ_DB>
1198// 	"requestProcessors": []			// request processors to be applied to DNS messages
1199// },
1200
1201
1202// "prometheusAgent": {
1203// 	"enabled": false,			// enables the prometheus agent: <true|false>
1204// 	"path": "/prometheus",			// endpoint for prometheus metrics
1205// 	"conns": {
1206// 	// "*admins": [		// connections to AdminS, empty to disable: <""|*internal|$rpc_conns_id>
1207// 	// 	{
1208// 	// 		"tenant": "",
1209// 	// 		"filterIDs": [],
1210// 	// 		"connIDs": []
1211// 	// 	}
1212// 	// ],
1213// 	// "*caches": [		// connections to CacheS, empty to disable: <""|*internal|$rpc_conns_id>
1214// 	// 	{
1215// 	// 		"tenant": "",
1216// 	// 		"filterIDs": [],
1217// 	// 		"connIDs": []
1218// 	// 	}
1219// 	// ],
1220// 	// "*cores": [		// connections to CoreS, empty to disable: <""|*internal|$rpc_conns_id>
1221// 	// 	{
1222// 	// 		"tenant": "",
1223// 	// 		"filterIDs": [],
1224// 	// 		"connIDs": []
1225// 	// 	}
1226// 	// ],
1227// 	// "*stats": [	// connections to StatS, empty to disable: <""|*internal|$rpc_conns_id>
1228// 	// 	{
1229// 	// 		"tenant": "",
1230// 	// 		"filterIDs": [],
1231// 	// 		"connIDs": []
1232// 	// 	}
1233// 	// ],
1234// 	},				
1235// 	"cacheIDs": [],			// cache partition IDs to collect statistics for, empty for all partitions
1236// 	"statQueueIDs": []			// StatQueue IDs to collect metrics from <[tenant]:ID>
1237// },
1238
1239
1240// "attributes": {
1241// 	"enabled": false,				// starts attribute service: <true|false>
1242// 	"conns": {
1243// 		// "*accounts": [		// connections to AccountS, empty to disable: <""|*internal|$rpc_conns_id>
1244// 		// 	{
1245// 		// 		"tenant": "",
1246// 		// 		"filterIDs": [],
1247// 		// 		"connIDs": ["*internal"]
1248// 		// 	}
1249// 		// ],
1250// 		// "*resources": [		// connections to ResourceS, empty to disable: <""|*internal|$rpc_conns_id>
1251// 		// 	{
1252// 		// 		"tenant": "",
1253// 		// 		"filterIDs": [],
1254// 		// 		"connIDs": ["*internal"]
1255// 		// 	}
1256// 		// ],
1257// 	    // "*stats": [		// connections to StatS, empty to disable: <""|*internal|$rpc_conns_id>
1258// 		// 	{
1259// 		// 		"tenant": "",
1260// 		// 		"filterIDs": [],
1261// 		// 		"connIDs": ["*internal"]
1262// 		// 	}
1263// 		// ],
1264// 	},					
1265// 	"indexedSelects": true,			// enable profile matching exclusively on indexes
1266// 	//"stringIndexedFields": [],			// query indexes based on these fields for faster processing
1267// 	"prefixIndexedFields": [],			// query indexes based on these fields for faster processing
1268// 	"suffixIndexedFields": [],			// query indexes based on these fields for faster processing
1269// 	"existsIndexedFields": [],			// query indexes based on these fields for faster processing
1270// 	"notExistsIndexedFields": [],			// query indexes based on these fields for faster processing
1271// 	"nestedFields": false,				// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1272// 	"opts":{
1273// 		// "*processRuns": [			// number of run loops when processing event
1274// 		// 	{
1275// 		// 		"tenant": "*any",
1276// 		// 		"filterIDs": [],
1277// 		// 		"value": "1"
1278// 		// 	}
1279// 		// ],	
1280// 		// "*profileIDs": [
1281// 		// 	{
1282// 		// 		"tenant": "*any",
1283// 		// 		"filterIDs": [],
1284// 		// 		"values": []
1285// 		// 	}
1286// 		// ],
1287// 		// "*profileIgnoreFilters": [ 		// ignore the filters for attributeIDs
1288// 		// 	{
1289// 		// 		"tenant": "*any",
1290// 		// 		"filterIDs": [],
1291// 		// 		"value": false
1292// 		// 	}
1293// 		// ]
1294// 		// "*profileRuns": [			// number of runs a profile will process during the event
1295// 		// 	{
1296// 		// 		"tenant": "*any",
1297// 		// 		"filterIDs": [],
1298// 		// 		"value": 0
1299// 		// 	}
1300// 		// ],
1301// 	}
1302// },
1303
1304
1305// "chargers": {
1306// 	"enabled": false,		// starts charger service: <true|false>
1307// 	"conns": {
1308// 	 	// "*attributes": [		// connections to AttributeS for event fields altering <""|127.0.0.1:2013>
1309// 		// 	{
1310// 		// 		"tenant": "",
1311// 		// 		"filterIDs": [],
1312// 		// 		"connIDs": ["*internal"]
1313// 		// 	}
1314// 		// ],
1315// 	},			
1316// 	"indexedSelects": true,	// enable profile matching exclusively on indexes
1317// 	//"stringIndexedFields": [],	// query indexes based on these fields for faster processing
1318// 	"prefixIndexedFields": [],	// query indexes based on these fields for faster processing
1319// 	"suffixIndexedFields": [],	// query indexes based on these fields for faster processing
1320// 	"existsIndexedFields": [],	// query indexes based on these fields for faster processing
1321// 	"notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
1322// 	"nestedFields": false		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1323// },
1324
1325
1326// "resources": {
1327// 	"enabled": false,		// starts ResourceLimiter service: <true|false>
1328// 	"storeInterval": "",		// dump cache regularly to db, 0 - dump at start/shutdown: <""|$dur>
1329// 	"conns": {
1330// 		// "*thresholds": [		// connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
1331// 		// 	{
1332// 		// 		"tenant": "",
1333// 		// 		"filterIDs": [],
1334// 		// 		"connIDs": ["*internal"]
1335// 		// 	}
1336// 		// ],
1337// 	},		
1338// 	"indexedSelects": true,	// enable profile matching exclusively on indexes
1339// 	//"stringIndexedFields": [],	// query indexes based on these fields for faster processing
1340// 	"prefixIndexedFields": [],	// query indexes based on these fields for faster processing
1341// 	"suffixIndexedFields": [],	// query indexes based on these fields for faster processing
1342// 	"existsIndexedFields": [],	// query indexes based on these fields for faster processing
1343// 	"notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
1344// 	"nestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1345// 	"opts":{
1346// 		// "*units": [
1347// 		// 	{
1348// 		// 		"tenant": "*any",
1349// 		// 		"filterIDs": [],
1350// 		// 		"value": 1
1351// 		// 	}
1352// 		// ]	
1353// 		// "*usageID": [
1354// 		// 	{
1355// 		// 		"tenant": "*any",
1356// 		// 		"filterIDs": [],
1357// 		// 		"value": ""
1358// 		// 	}
1359// 		// ],
1360// 		// "*usageTTL": [
1361// 		// 	{
1362// 		// 		"tenant": "*any",
1363// 		// 		"filterIDs": [],
1364// 		// 		"value": "72h"
1365// 		// 	}
1366// 		// ],
1367// 	}
1368// },
1369
1370// "ips": {
1371//     "enabled": false,			// enables the IPs service: <true|false>
1372//     "storeInterval": "",		// dump cache regularly to db, 0 - dump at start/shutdown: <""|$dur>
1373//     "indexedSelects": true,		// enable profile matching exclusively on indexes
1374//     //"stringIndexedFields": [],	// query indexes based on these fields for faster processing
1375//     "prefixIndexedFields": [],	// query indexes based on these fields for faster processing
1376//     "suffixIndexedFields": [],	// query indexes based on these fields for faster processing
1377//     "existsIndexedFields": [],	// query indexes based on these fields for faster processing
1378//     "notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
1379//     "nestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1380//     "opts":{
1381// 	// "*allocationID": [
1382// 	//     {
1383// 	// 		"tenant": "*any",
1384// 	// 		"filterIDs": [],
1385// 	// 		"value": ""
1386// 	//     }
1387// 	// ],
1388// 	// "*ttl": [
1389// 	//     {
1390// 	// 		"tenant": "*any",
1391// 	// 		"filterIDs": [],
1392// 	// 		"value": "72h"
1393// 	//     }
1394// 	// ],
1395// 	// "*units": [
1396// 	//     {
1397// 	// 		"tenant": "*any",
1398// 	// 		"filterIDs": [],
1399// 	// 		"value": 1
1400// 	//     }
1401// 	// ]
1402//     }
1403// },
1404
1405
1406// "stats": {
1407// 	"enabled": false,		// starts Stat service: <true|false>
1408// 	"storeInterval": "",		// dump cache regularly to db, 0 - dump at start/shutdown: <""|$dur>
1409// 	"storeUncompressedLimit": 0,	// used to compress data
1410// 	"conns": {
1411// 	    // "*ees": [	// connections to EEs for StatUpdates, empty to disable export functionality: <""|*internal|$rpc_conns_id>
1412// 		// 	{
1413// 		// 		"tenant": "",
1414// 		// 		"filterIDs": [],
1415// 		// 		"connIDs": ["*internal"]
1416// 		// 	}
1417// 		// ],
1418// 		// "*thresholds": [		// connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
1419// 		// 	{
1420// 		// 		"tenant": "",
1421// 		// 		"filterIDs": [],
1422// 		// 		"connIDs": ["*internal"]
1423// 		// 	}
1424// 		// ],
1425// 	},		
1426// 	"eesExporterIDs": [],		// list of EventExporter profiles to use for real-time StatUpdate exports
1427// 	"indexedSelects": true,	// enable profile matching exclusively on indexes
1428// 	//"stringIndexedFields": [],	// query indexes based on these fields for faster processing
1429// 	"prefixIndexedFields": [],	// query indexes based on these fields for faster processing
1430// 	"suffixIndexedFields": [],	// query indexes based on these fields for faster processing
1431// 	"existsIndexedFields": [],	// query indexes based on these fields for faster processing
1432// 	"notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
1433// 	"nestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1434// 	"opts": {
1435// 		// "*profileIDs": [
1436// 		// 	{
1437// 		// 		"tenant": "*any",
1438// 		// 		"filterIDs": [],
1439// 		// 		"values": []
1440// 		// 	}
1441// 		// ],
1442// 		// "*profileIgnoreFilters": [	// ignore the filters for statIDs
1443// 		// 	{
1444// 		// 		"tenant": "*any",
1445// 		// 		"filterIDs": [],
1446// 		// 		"value": false
1447// 		// 	}
1448// 		// ],	
1449// 		// "*roundingDecimals": [	// ignore the filters for statIDs
1450// 		// 	{
1451// 		// 		"tenant": "*any",
1452// 		// 		"filterIDs": [],
1453// 		// 		"value": 5
1454// 		// 	}
1455// 		// ]
1456// 	}
1457// },
1458
1459
1460// "thresholds": {
1461// 	"enabled": false,			// starts ThresholdS service: <true|false>
1462// 	"storeInterval": "",			// dump cache regularly to db, 0 - dump at start/shutdown: <""|$dur>
1463// 	"indexedSelects": true,		// enable profile matching exclusively on indexes
1464// 	//"stringIndexedFields": [],		// query indexes based on these fields for faster processing
1465// 	"prefixIndexedFields": [],		// query indexes based on these fields for faster processing
1466// 	"suffixIndexedFields": [],		// query indexes based on these fields for faster processing
1467// 	"existsIndexedFields": [],		// query indexes based on these fields for faster processing
1468// 	"notExistsIndexedFields": [],		// query indexes based on these fields for faster processing
1469// 	"nestedFields": false,			// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1470// 	"conns": {
1471// 	    // "*actions": [	// connections to ActionS to execute the actions
1472// 		// 	{
1473// 		// 		"tenant": "",
1474// 		// 		"filterIDs": [],
1475// 		// 		"connIDs": ["*internal"]
1476// 		// 	}
1477// 		// ],
1478// 		// "*attributes": [		// connections to AttributeS to sent threshold events, empty to disable: <""|*internal|$rpc_conns_id>
1479// 		// 	{
1480// 		// 		"tenant": "",
1481// 		// 		"filterIDs": [],
1482// 		// 		"connIDs": ["*internal"]
1483// 		// 	}
1484// 		// ],		
1485// 		// "*ees": [	// connections to EEs to sent threshold events, empty to disable export functionality: <""|*internal|$rpc_conns_id>
1486// 		// 	{
1487// 		// 		"tenant": "",
1488// 		// 		"filterIDs": [],
1489// 		// 		"connIDs": ["*internal"]
1490// 		// 	}
1491// 		// ],
1492// 	},				
1493// 	"eesExporterIDs": [],			// list of EventExporter profiles to use for real-time threshold exports
1494// 	"opts":{
1495// 		// "*profileIgnoreFilters": [	// ignore the filters for thresholdIDs
1496// 		// 	{
1497// 		// 		"tenant": "*any",
1498// 		// 		"filterIDs": [],
1499// 		// 		"value": false
1500// 		// 	}
1501// 		// ],	
1502// 		// "*thresholdsIDs": [
1503// 		// 	{
1504// 		// 		"tenant": "*any",
1505// 		// 		"filterIDs": [],
1506// 		// 		"values": []
1507// 		// 	}
1508// 		// ]
1509// 	}
1510// },
1511
1512
1513// "trends":{
1514// 	"enabled": false,		// starts TrendS service: <true|false>.
1515// 	"storeInterval": "",		// dump cache regularly to db, 0 - dump at start/shutdown: <""|$dur>
1516// 	"storeUncompressedLimit": 0,	// used to compress metrics
1517// 	"conns": {
1518// 		// "*ees": [		// connections to EEs for trendSummary, empty to disable export functionality: <""|*internal|$rpc_conns_id>	
1519// 		// 	{
1520// 		// 		"tenant": "",
1521// 		// 		"filterIDs": [],
1522// 		// 		"connIDs": ["*internal"]
1523// 		// 	}
1524// 		// ],	
1525// 	    // "*stats": [		// connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id>
1526// 		// 	{
1527// 		// 		"tenant": "",
1528// 		// 		"filterIDs": [],
1529// 		// 		"connIDs": ["*internal"]
1530// 		// 	}
1531// 		// ],
1532// 		// "*thresholds": [		// connections to ThresholdS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id>
1533// 		// 	{
1534// 		// 		"tenant": "",
1535// 		// 		"filterIDs": [],
1536// 		// 		"connIDs": ["*internal"]
1537// 		// 	}
1538// 		// ],
1539// 	},			
1540// 	"scheduledIDs": {},		// autoload these trend ids on start
1541// 	"eesExporterIDs": []		// list of EventExporter profiles to use for real-time trendSummary exports
1542// },
1543
1544
1545// "rankings":{
1546// 	"enabled": false,	// starts RankingS service: <true|false>.
1547// 	"storeInterval": "",	// dump cache regularly to db, 0 - dump at start/shutdown: <""|$dur>
1548// 	"conns": {
1549// 		// "*ees": [		// connections to EEs for rankingSummary events, empty to disable export functionality: <""|*internal|$rpc_conns_id>
1550// 		// 	{
1551// 		// 		"tenant": "",
1552// 		// 		"filterIDs": [],
1553// 		// 		"connIDs": ["*internal"]
1554// 		// 	}
1555// 		// ],
1556// 	    // "*stats": [		// connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id>
1557// 		// 	{
1558// 		// 		"tenant": "",
1559// 		// 		"filterIDs": [],
1560// 		// 		"connIDs": ["*internal"]
1561// 		// 	}
1562// 		// ],
1563// 		// "*thresholds": [		// connections to ThresholdS for rankingSummary reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
1564// 		// 	{
1565// 		// 		"tenant": "",
1566// 		// 		"filterIDs": [],
1567// 		// 		"connIDs": ["*internal"]
1568// 		// 	}
1569// 		// ],
1570// 	},		
1571// 	"scheduledIDs": {},	// autoload these ranking ids on start
1572// 	"eesExporterIDs": []	// list of EventExporter profiles to use for real-time rankingSummary exports
1573// },
1574
1575
1576// "routes": {
1577// 	"enabled": false,		// starts RouteS service: <true|false>.
1578// 	"indexedSelects": true,	// enable profile matching exclusively on indexes
1579// 	//"stringIndexedFields": [],	// query indexes based on these fields for faster processing
1580// 	"prefixIndexedFields": [],	// query indexes based on these fields for faster processing
1581// 	"suffixIndexedFields": [],	// query indexes based on these fields for faster processing
1582// 	"existsIndexedFields": [],	// query indexes based on these fields for faster processing
1583// 	"notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
1584// 	"nestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1585// 	"conns": {
1586// 		// "*accounts": [	// connections to AccountS
1587// 		// 	{
1588// 		// 		"tenant": "",
1589// 		// 		"filterIDs": [],
1590// 		// 		"connIDs": ["*internal"]
1591// 		// 	}
1592// 		// ],
1593// 	    // "*attributes": [		// connections to AttributeS for altering events before route queries: <""|*internal|$rpc_conns_id>
1594// 		// 	{
1595// 		// 		"tenant": "",
1596// 		// 		"filterIDs": [],
1597// 		// 		"connIDs": ["*internal"]
1598// 		// 	}
1599// 		// ],
1600// 		// "*rates": [		// connections to RateS
1601// 		// 	{
1602// 		// 		"tenant": "",
1603// 		// 		"filterIDs": [],
1604// 		// 		"connIDs": ["*internal"]
1605// 		// 	}
1606// 		// ],		
1607// 		// "*resources": [		// connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id>
1608// 		// 	{
1609// 		// 		"tenant": "",
1610// 		// 		"filterIDs": [],
1611// 		// 		"connIDs": ["*internal"]
1612// 		// 	}
1613// 		// ],
1614// 		// "*stats": [		// connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
1615// 		// 	{
1616// 		// 		"tenant": "",
1617// 		// 		"filterIDs": [],
1618// 		// 		"connIDs": ["*internal"]
1619// 		// 	}
1620// 		// ],
1621// 	},		
1622// 	"defaultRatio":1,		// default ratio used in case of *load strategy
1623// 	"opts":{
1624// 		// "*context": [
1625// 		// 	{
1626// 		// 		"tenant": "*any",
1627// 		// 		"filterIDs": [],
1628// 		// 		"value": "*routes"
1629// 		// 	}
1630// 		// ],
1631// 		// "*ignoreErrors": [
1632// 		// 	{
1633// 		// 		"tenant": "*any",
1634// 		// 		"filterIDs": [],
1635// 		// 		"value": "false"
1636// 		// 	}
1637// 		// ],
1638// 		// "*limit": [
1639// 		// 	{
1640// 		// 		"tenant": "*any",
1641// 		// 		"filterIDs": [],
1642// 		// 		"value": 1
1643// 		// 	}
1644// 		// ],		
1645// 		// "*maxCost": [
1646// 		// 	{
1647// 		// 		"tenant": "*any",
1648// 		// 		"filterIDs": [],
1649// 		// 		"value": ""
1650// 		// 	}
1651// 		// ],
1652// 		// "*maxItems": [
1653// 		// 	{
1654// 		// 		"tenant": "*any",
1655// 		// 		"filterIDs": [],
1656// 		// 		"value": 1
1657// 		// 	}
1658// 		// ],
1659// 		// "*offset": [
1660// 		// 	{
1661// 		// 		"tenant": "*any",
1662// 		// 		"filterIDs": [],
1663// 		// 		"value": 1
1664// 		// 	}
1665// 		// ],
1666// 		// "*profileCount": [
1667// 		// 	{
1668// 		// 		"tenant": "*any",
1669// 		// 		"filterIDs": [],
1670// 		// 		"value": "1"
1671// 		// 	}
1672// 		// ],
1673// 		// "*usage": [
1674// 		// 	{
1675// 		// 		"tenant": "*any",
1676// 		// 		"filterIDs": [],
1677// 		// 		"value": "1m"
1678// 		// 	}
1679// 		// ]
1680// 	}
1681// },
1682
1683
1684// "loaders": [
1685// 	{
1686// 		"id": "*default",				// identifier of the Loader
1687// 		"enabled": false,				// starts as service: <true|false>.
1688// 		"tenant": "",					// tenant used in filterS.Pass
1689// 		"runDelay": "0",				// sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
1690// 		"lockfilePath": ".cgr.lck",			// Filename containing concurrency lock in case of delayed processing
1691// 		"conns": {
1692// 			"*caches": [{"connIDs": ["*internal"]}]
1693// 		},
1694// 		"fieldSeparator": ",",				// separator used in case of csv files
1695// 		"tpInPath": "/var/spool/cgrates/loader/in",	// absolute path towards the directory where the TPs are stored
1696// 		"tpOutPath": "",	// absolute path towards the directory where processed TPs will be moved
1697// 		"action": "*store", 				// what should the loader do<*store|*parse|*remove|*dryRun>
1698// 		"opts": {
1699// 			// "*cache": "*reload",
1700// 			// "*forceLock": false,
1701// 			// "*stopOnError": false,
1702// 			"*withIndex": true
1703// 		},
1704// 		"cache":{
1705// 			"*accounts":{"limit": -1, "ttl": "5s", "staticTTL": false},
1706// 			"*actionProfiles":{"limit": -1, "ttl": "5s", "staticTTL": false},			
1707// 			"*attributes":{"limit": -1, "ttl": "5s", "staticTTL": false},
1708// 			"*chargers":{"limit": -1, "ttl": "5s", "staticTTL": false},			
1709// 			"*filters":{"limit": -1, "ttl": "5s", "staticTTL": false},	
1710// 			"*ips":{"limit": -1, "ttl": "5s", "staticTTL": false},
1711// 			"*rankings":{"limit": -1, "ttl": "5s", "staticTTL": false},
1712// 			"*rateProfiles":{"limit": -1, "ttl": "5s", "staticTTL": false},
1713// 			"*resources":{"limit": -1, "ttl": "5s", "staticTTL": false},
1714// 			"*routes":{"limit": -1, "ttl": "5s", "staticTTL": false},
1715// 			"*stats":{"limit": -1, "ttl": "5s", "staticTTL": false},
1716// 			"*thresholds":{"limit": -1, "ttl": "5s", "staticTTL": false},
1717// 			"*trends":{"limit": -1, "ttl": "5s", "staticTTL": false}
1718// 		},
1719// 		"data":[					// data profiles to load
1720// 			{
1721// 				"type": "*filters",		// data source type
1722// 				"fileName": "Filters.csv",	// file name in the tpInPath
1723// 				"fields": [
1724// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1725// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1726// 					{"tag": "Type", "path": "Rules.Type", "type": "*variable", "value": "~*req.2", "newBranch":true},
1727// 					{"tag": "Element", "path": "Rules.Element", "type": "*variable", "value": "~*req.3"},
1728// 					{"tag": "Values", "path": "Rules.Values", "type": "*variable", "value": "~*req.4"}
1729// 				]
1730// 			},
1731// 			{
1732// 				"type": "*attributes",		// data source type
1733// 				"fileName": "Attributes.csv",	// file name in the tpInPath
1734// 				"fields": [
1735// 					{"tag": "TenantID", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1736// 					{"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1737// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1738// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1739// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
1740// 					{"tag": "AttributeFilterIDs", "path": "Attributes.FilterIDs", "type": "*variable", "value": "~*req.5","newBranch":true},
1741// 					{"tag": "AttributeBlockers", "path": "Attributes.Blockers", "type": "*variable", "value": "~*req.6"},
1742// 					{"tag": "Path", "path": "Attributes.Path", "type": "*variable", "value": "~*req.7"},
1743// 					{"tag": "Type", "path": "Attributes.Type", "type": "*variable", "value": "~*req.8"},
1744// 					{"tag": "Value", "path": "Attributes.Value", "type": "*variable", "value": "~*req.9"}
1745// 				]
1746// 			},
1747// 			{
1748// 				"type": "*resources",		// data source type
1749// 				"fileName": "Resources.csv",	// file name in the tpInPath
1750// 				"fields": [
1751// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1752// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1753// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1754// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1755// 					{"tag": "TTL", "path": "UsageTTL", "type": "*variable", "value": "~*req.4"},
1756// 					{"tag": "Limit", "path": "Limit", "type": "*variable", "value": "~*req.5"},
1757// 					{"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~*req.6"},
1758// 					{"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"},
1759// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.8"},
1760// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"}
1761// 				]
1762// 			},
1763// 			{
1764// 				"type": "*ips",		// data source type
1765// 				"fileName": "IPs.csv",	// file name in the tpInPath
1766// 				"fields": [
1767// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1768// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1769// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1770// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1771// 					{"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~*req.4"},
1772// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.5"},
1773// 					{"tag": "PoolID", "path": "Pools.ID", "type": "*variable", "value": "~*req.6","newBranch":true},
1774// 					{"tag": "PoolFilterIDs", "path": "Pools.FilterIDs", "type": "*variable", "value": "~*req.7"},
1775// 					{"tag": "PoolType", "path": "Pools.Type", "type": "*variable", "value": "~*req.8"},
1776// 					{"tag": "PoolRange", "path": "Pools.Range", "type": "*variable", "value": "~*req.9"},
1777// 					{"tag": "PoolStrategy", "path": "Pools.Strategy", "type": "*variable", "value": "~*req.10"},
1778// 					{"tag": "PoolMessage", "path": "Pools.Message", "type": "*variable", "value": "~*req.11"},
1779// 					{"tag": "PoolWeights", "path": "Pools.Weights", "type": "*variable", "value": "~*req.12"},
1780// 					{"tag": "PoolBlockers", "path": "Pools.Blockers", "type": "*variable", "value": "~*req.13"}
1781// 				]
1782// 			},
1783// 			{
1784// 				"type": "*stats",		// data source type
1785// 				"fileName": "Stats.csv",	// file name in the tpInPath
1786// 				"fields": [
1787// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1788// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1789// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1790// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1791// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
1792// 					{"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~*req.5"},
1793// 					{"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~*req.6"},
1794// 					{"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~*req.7"},
1795// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.8"},
1796// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"},
1797// 					{"tag": "MetricIDs", "path": "Metrics.MetricID", "type": "*variable", "value": "~*req.10","newBranch":true},
1798// 					{"tag": "MetricFilterIDs", "path": "Metrics.FilterIDs", "type": "*variable", "value": "~*req.11"},
1799// 					{"tag": "MetricBlockers", "path": "Metrics.Blockers", "type": "*variable", "value": "~*req.12"}
1800// 				]
1801// 			},
1802// 			{
1803// 				"type": "*thresholds",		// data source type
1804// 				"fileName": "Thresholds.csv",	// file name in the tpInPath
1805// 				"fields": [
1806// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1807// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1808// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1809// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1810// 					{"tag": "MaxHits", "path": "MaxHits", "type": "*variable", "value": "~*req.4"},
1811// 					{"tag": "MinHits", "path": "MinHits", "type": "*variable", "value": "~*req.5"},
1812// 					{"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~*req.6"},
1813// 					{"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"},
1814// 					{"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.8"},
1815// 					{"tag": "ActionProfileIDs", "path": "ActionProfileIDs", "type": "*variable", "value": "~*req.9"},
1816// 					{"tag": "Async", "path": "Async", "type": "*variable", "value": "~*req.10"} , 
1817// 					{"tag": "EeIDs", "path": "EeIDs", "type": "*variable", "value": "~*req.11"}
1818// 				]
1819// 			},
1820// 			{
1821// 				"type": "*trends",		// data source type
1822// 				"fileName": "Trends.csv",	// file name in the tpInPath
1823// 				"fields": [
1824// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1825// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1826// 					{"tag": "Schedule", "path": "Schedule", "type": "*variable", "value": "~*req.2"},
1827// 					{"tag": "StatID", "path": "StatID", "type": "*variable", "value": "~*req.3"},
1828// 					{"tag": "Metrics", "path": "Metrics", "type": "*variable", "value": "~*req.4"},
1829// 					{"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~*req.5"},
1830// 					{"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~*req.6"},
1831// 					{"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~*req.7"},
1832// 					{"tag": "CorrelationType", "path": "CorrelationType", "type": "*variable", "value": "~*req.8"},
1833// 					{"tag": "Tolerance", "path": "Tolerance", "type": "*variable", "value": "~*req.9"},
1834// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.10"},
1835// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.11"}
1836// 				]
1837// 			},
1838// 			{
1839// 				"type": "*rankings",		// data source type
1840// 				"fileName": "Rankings.csv",	// file name in the tpInPath
1841// 				"fields": [
1842// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1843// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1844// 					{"tag": "Schedule", "path": "Schedule", "type": "*variable", "value": "~*req.2"},
1845// 					{"tag": "StatIDs", "path": "StatIDs", "type": "*variable", "value": "~*req.3"},
1846// 					{"tag": "MetricIDs", "path": "MetricIDs", "type": "*variable", "value": "~*req.4"},
1847// 					{"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~*req.5"},
1848// 					{"tag": "SortingParameters", "path": "SortingParameters", "type": "*variable", "value": "~*req.6"},
1849// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.7"},
1850// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.8"}
1851// 				]
1852// 			},
1853// 			{
1854// 				"type": "*routes",		// data source type
1855// 				"fileName": "Routes.csv",	// file name in the tpInPath
1856// 				"fields": [
1857// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1858// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1859// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1860// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1861// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
1862// 					{"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~*req.5"},
1863// 					{"tag": "SortingParameters", "path": "SortingParameters", "type": "*variable", "value": "~*req.6"},
1864// 					{"tag": "RouteID", "path": "Routes.ID", "type": "*variable", "value": "~*req.7","newBranch":true},
1865// 					{"tag": "RouteFilterIDs", "path": "Routes.FilterIDs", "type": "*variable", "value": "~*req.8"},
1866// 					{"tag": "RouteAccountIDs", "path": "Routes.AccountIDs", "type": "*variable", "value": "~*req.9"},
1867// 					{"tag": "RouteRateProfileIDs", "path": "Routes.RateProfileIDs", "type": "*variable", "value": "~*req.10"},
1868// 					{"tag": "RouteResourceIDs", "path": "Routes.ResourceIDs", "type": "*variable", "value": "~*req.11"},
1869// 					{"tag": "RouteStatIDs", "path": "Routes.StatIDs", "type": "*variable", "value": "~*req.12"},
1870// 					{"tag": "RouteWeights", "path": "Routes.Weights", "type": "*variable", "value": "~*req.13"},
1871// 					{"tag": "RouteBlockers", "path": "Routes.Blockers", "type": "*variable", "value": "~*req.14"},
1872// 					{"tag": "RouteParameters", "path": "Routes.RouteParameters", "type": "*variable", "value": "~*req.15"}
1873// 				]
1874// 			},
1875// 			{
1876// 				"type": "*chargers",		// data source type
1877// 				"fileName": "Chargers.csv",	// file name in the tpInPath
1878// 				"fields": [
1879// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1880// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1881// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1882// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1883// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
1884// 					{"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~*req.5"},
1885// 					{"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.6"}
1886// 				]
1887// 			},
1888// 			{
1889// 				"type": "*rateProfiles",	// data source type
1890// 				"fileName": "Rates.csv",	// file name in the tpInPath
1891// 				"fields": [
1892// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1893// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1894// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1895// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1896// 					{"tag": "MinCost", "path": "MinCost", "type": "*variable", "value": "~*req.4"},
1897// 					{"tag": "MaxCost", "path": "MaxCost", "type": "*variable", "value": "~*req.5"},
1898// 					{"tag": "MaxCostStrategy", "path": "MaxCostStrategy", "type": "*variable", "value": "~*req.6"},
1899// 					// {"tag": "RateID", "path": "RateID", "type": "*variable", "value": "~*req.7"},
1900// 					{"tag": "RateFilterIDs", "path": "Rates[<~*req.7>].FilterIDs", "type": "*variable", "value": "~*req.8", "filters": ["*notempty:~*req.7:"]},
1901// 					{"tag": "RateActivationTimes", "path": "Rates[<~*req.7>].ActivationTimes", "type": "*variable", "value": "~*req.9", "filters": ["*notempty:~*req.7:"]},
1902// 					{"tag": "RateWeights", "path": "Rates[<~*req.7>].Weights", "type": "*variable", "value": "~*req.10", "filters": ["*notempty:~*req.7:"]},
1903// 					{"tag": "RateBlocker", "path": "Rates[<~*req.7>].Blocker", "type": "*variable", "value": "~*req.11", "filters": ["*notempty:~*req.7:"]},
1904// 					{"tag": "RateIntervalStart", "path": "Rates[<~*req.7>].IntervalRates.IntervalStart", "type": "*variable", "value": "~*req.12","newBranch":true, "filters": ["*notempty:~*req.7:"]},
1905// 					{"tag": "RateFixedFee", "path": "Rates[<~*req.7>].IntervalRates.FixedFee", "type": "*variable", "value": "~*req.13", "filters": ["*notempty:~*req.7:"]},
1906//                     {"tag": "RateRecurrentFee", "path": "Rates[<~*req.7>].IntervalRates.RecurrentFee", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.7:"]},
1907// 					{"tag": "RateUnit", "path": "Rates[<~*req.7>].IntervalRates.Unit", "type": "*variable", "value": "~*req.15", "filters": ["*notempty:~*req.7:"]},
1908// 					{"tag": "RateIncrement", "path": "Rates[<~*req.7>].IntervalRates.Increment", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.7:"]}
1909// 				]
1910// 			},
1911// 			{
1912// 				"type": "*actionProfiles",	// data source type
1913// 				"fileName": "Actions.csv",	// file name in the tpInPath
1914// 				"fields": [
1915// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1916// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1917// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1918// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1919// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
1920// 					{"tag": "Schedule", "path": "Schedule", "type": "*variable", "value": "~*req.5"},
1921// 					// {"tag": "TargetType", "path": "TargetType", "type": "*variable", "value": "~*req.6"},
1922// 					{"tag": "TargetIDs", "path": "Targets[<~*req.6>]", "type": "*variable", "value": "~*req.7"},
1923// 					// {"tag": "ActionID", "path": "Actions.ID", "type": "*variable", "value": "~*req.8","newBranch":true},
1924// 					{"tag": "ActionFilterIDs", "path": "Actions[<~*req.8>].FilterIDs", "type": "*variable", "value": "~*req.9", "filters": ["*notempty:~*req.8:"]},
1925// 					{"tag": "ActionTTL", "path": "Actions[<~*req.8>].TTL", "type": "*variable", "value": "~*req.10", "filters": ["*notempty:~*req.8:"]},
1926// 					{"tag": "ActionType", "path": "Actions[<~*req.8>].Type", "type": "*variable", "value": "~*req.11", "filters": ["*notempty:~*req.8:"]},
1927// 					{"tag": "ActionOpts", "path": "Actions[<~*req.8>].Opts", "type": "*variable", "value": "~*req.12", "filters": ["*notempty:~*req.8:"]},
1928// 					{"tag": "ActionWeights", "path": "Actions[<~*req.8>].Weights", "type": "*variable", "value": "~*req.13", "filters": ["*notempty:~*req.8:"]},
1929// 					{"tag": "ActionBlockers", "path": "Actions[<~*req.8>].Blockers", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.8:"]},
1930// 					{"tag": "ActionDiktatsID", "path": "Actions[<~*req.8>].Diktats.ID", "type": "*variable", "value": "~*req.15","newBranch":true, "filters": ["*notempty:~*req.8:"]},
1931// 					{"tag": "ActionDiktatsFilterIDs", "path": "Actions[<~*req.8>].Diktats.FilterIDs", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.8:"]},
1932// 					{"tag": "ActionDiktatsOpts", "path": "Actions[<~*req.8>].Diktats.Opts", "type": "*variable", "value": "~*req.17", "filters": ["*notempty:~*req.8:"]},
1933// 					{"tag": "ActionDiktatsWeights", "path": "Actions[<~*req.8>].Diktats.Weights", "type": "*variable", "value": "~*req.18", "filters": ["*notempty:~*req.8:"]},
1934// 					{"tag": "ActionDiktatsBlockers", "path": "Actions[<~*req.8>].Diktats.Blockers", "type": "*variable", "value": "~*req.19", "filters": ["*notempty:~*req.8:"]},
1935// 				]
1936// 			},
1937// 			{
1938// 				"type": "*accounts",		// data source type
1939// 				"fileName": "Accounts.csv",	// file name in the tpInPath
1940// 				"fields": [
1941// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
1942// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
1943// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
1944// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
1945// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
1946// 					{"tag": "Opts", "path": "Opts", "type": "*variable", "value": "~*req.5"},
1947// 					// {"tag": "BalanceID", "path": "Balances.ID", "type": "*variable", "value": "~*req.6"},
1948// 					{"tag": "BalanceFilterIDs", "path": "Balances[<~*req.6>].FilterIDs", "type": "*variable", "value": "~*req.7","filters": ["*notempty:~*req.6:"]},
1949// 					{"tag": "BalanceWeights", "path": "Balances[<~*req.6>].Weights", "type": "*variable", "value": "~*req.8","filters": ["*notempty:~*req.6:"]},
1950// 					{"tag": "BalanceBlockers", "path": "Balances[<~*req.6>].Blockers", "type": "*variable", "value": "~*req.9","filters": ["*notempty:~*req.6:"]},
1951// 					{"tag": "BalanceType", "path": "Balances[<~*req.6>].Type", "type": "*variable", "value": "~*req.10","filters": ["*notempty:~*req.6:"]},
1952// 					{"tag": "BalanceUnits", "path": "Balances[<~*req.6>].Units", "type": "*variable", "value": "~*req.11","filters": ["*notempty:~*req.6:"]},
1953// 					{"tag": "BalanceUnitFactors", "path": "Balances[<~*req.6>].UnitFactors", "type": "*variable", "value": "~*req.12","filters": ["*notempty:~*req.6:"]},
1954// 					{"tag": "BalanceOpts", "path": "Balances[<~*req.6>].Opts", "type": "*variable", "value": "~*req.13","filters": ["*notempty:~*req.6:"]},
1955// 					{"tag": "BalanceCostIncrements", "path": "Balances[<~*req.6>].CostIncrements", "type": "*variable", "value": "~*req.14","filters": ["*notempty:~*req.6:"]},
1956// 					{"tag": "BalanceAttributeIDs", "path": "Balances[<~*req.6>].AttributeIDs", "type": "*variable", "value": "~*req.15","filters": ["*notempty:~*req.6:"]},
1957// 					{"tag": "BalanceRateProfileIDs", "path": "Balances[<~*req.6>].RateProfileIDs", "type": "*variable", "value": "~*req.16","filters": ["*notempty:~*req.6:"]},
1958// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.17"}
1959// 				]
1960// 			}
1961// 		]
1962// 	}
1963// ],
1964
1965
1966// "loader": {						// loader for tariff plans out of .csv files
1967// 	"tpid": "",					// tariff plan identificator
1968// 	"dataPath": "./",				// path towards tariff plan files
1969// 	"disableReverse": false,			// disable reverse computing
1970// 	"fieldSeparator": ",",				// separator used in case of csv files
1971// 	"cachesConns":["*localhost"],
1972// 	"actionsConns": ["*localhost"],
1973// 	"gapiCredentials": ".gapi/credentials.json", 	// the path to the credentials for google API or the credentials.json file content
1974// 	"gapiToken": ".gapi/token.json" 		// the path to the token for google API or the token.json file content
1975// },
1976
1977
1978// "migrator": {
1979// 	"usersFilters":[],
1980// 	"fromItems":{
1981// 		"*accounts": {"dbConn": "*default"},
1982// 		"*chargerProfiles": {"dbConn": "*default"},
1983// 		"*filters": {"dbConn": "*default"},
1984// 		"*loadIDs": {"dbConn": "*default"},
1985// 		"*statQueueProfiles": {"dbConn": "*default"},
1986// 		"*versions": {"dbConn": "*default"}
1987// 	},
1988// 	"outDBOpts":{
1989// 		"mongoConnScheme": "mongodb",		// scheme for MongoDB connection <mongodb|mongodb+srv>	
1990// 		"mongoQueryTimeout":"10s",		// timeout for query when mongo is used
1991// 		"redisCACertificate":"",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
1992// 		"redisClientCertificate":"",		// path to client certificate
1993// 		"redisClientKey":"",			// path to client key
1994// 		"redisCluster": false,
1995// 		"redisClusterOndownDelay": "0",
1996// 		"redisClusterSync": "5s",
1997// 		"redisConnectAttempts": 20,		// the maximum amount of dial attempts
1998// 		"redisConnectTimeout": "0",		// the amount of wait time until timeout for a connection attempt
1999// 		"redisMaxConns": 10,			// the connection pool size
2000// 		"redisPoolPipelineLimit": 0,        	// maximum number of commands that can be pipelined before flushing (0 means no limit)
2001// 		"redisPoolPipelineWindow": "150µs",	// duration after which internal pipelines are flushed (0 disables implicit pipelining)
2002// 		"redisReadTimeout": "0",		// the amount of wait time until timeout for reading operations
2003// 		"redisSentinel": "",
2004// 		"redisTLS": false,			// enable TLS when connecting to Redis and use the redisClientCertificate, redisClientKey and redisCACertificate for TLS connection
2005// 		"redisWriteTimeout": "0"		// the amount of wait time until timeout for writing operations
2006// 	},
2007// },
2008
2009
2010// "registrarc":{
2011//     "rpc":{
2012//         "enabled": false,
2013//         "registrarsConns": [],
2014//         "hosts": [],  
2015//         "refreshInterval": "5m"
2016//     }
2017// },
2018
2019
2020// "analyzers":{
2021// 	"enabled": false,				// starts AnalyzerS service: <true|false>.
2022//  	"dbPath": "/var/spool/cgrates/analyzers",	// path to the folder where to store the information
2023// 	"indexType": "*scorch",			// the type of index for the storage: <*internal|*scorch|*boltdb|*leveldb|*mossdb>
2024// 	"ttl": "24h",					// time to wait before removing the API capture
2025// 	"conns": {
2026// 		// "*ees": [	// connections to EEs
2027// 		// 	{
2028// 		// 		"tenant": "",
2029// 		// 		"filterIDs": [],
2030// 		// 		"connIDs": ["*internal"]
2031// 		// 	}
2032// 		// ],
2033// 	},				
2034// 	"cleanupInterval": "1h",			// the interval we clean the db
2035// 	"opts":{
2036// 		// "*exporterIDs": [
2037// 		// 	{
2038// 		// 		"tenant": "*any",
2039// 		// 		"filterIDs": [],
2040// 		// 		"values": []
2041// 		// 	}
2042// 		// ]
2043// 	}
2044// },
2045
2046
2047// "admins": {
2048// 	"enabled": false,
2049// 	"conns": {
2050// 		// "*actions": [	// connections to ActionS for reloads
2051// 		// 	{
2052// 		// 		"tenant": "",
2053// 		// 		"filterIDs": [],
2054// 		// 		"connIDs": ["*internal"]
2055// 		// 	}
2056// 		// ],
2057// 		// "*attributes": [		// connections to AttributeS for URExporter
2058// 		// 	{
2059// 		// 		"tenant": "",
2060// 		// 		"filterIDs": [],
2061// 		// 		"connIDs": ["*internal"]
2062// 		// 	}
2063// 		// ],	
2064// 		"*caches": [{"connIDs": ["*internal"]}],
2065// 		// "*ees": [	// connections to EEs
2066// 		// 	{
2067// 		// 		"tenant": "",
2068// 		// 		"filterIDs": [],
2069// 		// 		"connIDs": ["*internal"]
2070// 		// 	}
2071// 		// ],
2072// 	}
2073// },
2074
2075
2076// "rates": {
2077// 	"enabled": false,
2078// 	"indexedSelects": true,		// enable profile matching exclusively on indexes
2079// 	//"stringIndexedFields": [],		// query indexes based on these fields for faster processing
2080// 	"prefixIndexedFields": [],		// query indexes based on these fields for faster processing
2081// 	"suffixIndexedFields": [],		// query indexes based on these fields for faster processing
2082// 	"existsIndexedFields": [],		// query indexes based on these fields for faster processing
2083// 	"notExistsIndexedFields": [],		// query indexes based on these fields for faster processing
2084// 	"nestedFields": false,			// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
2085// 	"rateIndexedSelects": true,		// enable profile matching exclusively on indexes
2086// 	//"rateStringIndexedFields": [],	// query indexes based on these fields for faster processing
2087// 	"ratePrefixIndexedFields": [],	// query indexes based on these fields for faster processing
2088// 	"rateSuffixIndexedFields": [],	// query indexes based on these fields for faster processing
2089// 	"rateExistsIndexedFields": [],	// query indexes based on these fields for faster processing
2090// 	"rateNotExistsIndexedFields": [],	// query indexes based on these fields for faster processing
2091// 	"rateNestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
2092// 	"verbosity": 1000,			// number of increment iterations allowed
2093// 	"opts":{
2094// 		// "*intervalStart": [		// event interval start
2095// 		// 	{
2096// 		// 		"tenant": "*any",
2097// 		// 		"filterIDs": [],
2098// 		// 		"value": "0"
2099// 		// 	}
2100// 		// ],
2101// 		// "*profileIDs": [		// select the rate profiles used for cost calculation
2102// 		// 	{
2103// 		// 		"tenant": "*any",
2104// 		// 		"filterIDs": [],
2105// 		// 		"values": []
2106// 		// 	}
2107// 		// ],
2108// 		// "*profileIgnoreFilters": [	// ignore the filters for rateProfileIDs 
2109// 		// 	{
2110// 		// 		"tenant": "*any",
2111// 		// 		"filterIDs": [],
2112// 		// 		"value": false
2113// 		// 	}
2114// 		// ],
2115// 		// "*startTime": [		// start time used for cost calculation
2116// 		// 	{
2117// 		// 		"tenant": "*any",
2118// 		// 		"filterIDs": [],
2119// 		// 		"value": "*now"
2120// 		// 	}
2121// 		// ],
2122// 		// "*usage": [			// usage used for cost calculation
2123// 		// 	{
2124// 		// 		"tenant": "*any",
2125// 		// 		"filterIDs": [],
2126// 		// 		"value": "1m"
2127// 		// 	}
2128// 		// ]
2129// 	}
2130// },
2131
2132
2133// "sipAgent": {				// SIP Agents, only used for redirections
2134// 	"enabled": false,		// enables the SIP agent: <true|false>
2135// 	"listen": "127.0.0.1:5060",	// address where to listen for SIP requests <x.y.z.y:1234>
2136// 	"listenNet": "udp",		// network to listen on <udp|tcp|tcp-tls>
2137// 	"conns": {
2138// 		"*sessions":[{"connIDs":["*internal"]}]
2139// 		 // "*stats": [			// connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
2140// 		 // 	{
2141// 		 // 		"tenant": "",
2142// 	     // 		"filterIDs": [],
2143// 	     // 		"connIDs": []
2144// 	     // 	}
2145// 	     // ],
2146// 	     // "*thresholds": [		// connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
2147// 	     // 	{
2148// 	     // 		"tenant": "",
2149// 	     // 		"filterIDs": [],
2150// 	     // 		"connIDs": []
2151// 	     // 	}
2152// 	     // ],
2153// 	},
2154// 	"timezone": "",			// timezone of the events if not specified  <UTC|Local|$IANA_TZ_DB>
2155// 	"retransmissionTimer": "1s",	// the duration to wait to receive an ACK before resending the reply
2156// 	"requestProcessors": []	// request processors to be applied to SIP messages
2157// },
2158
2159// "janusAgent": {
2160// 	"enabled": false,				// enables the Janus agent: <true|false>
2161// 	"url": "/janus",
2162// 	"conns": {"*sessions": [{"connIDs": ["*internal"]}]},
2163// 	"janusConns": [{				// instantiate connections to multiple Janus Servers
2164// 		"address": "127.0.0.1:8088",		// janus API address 
2165// 		"adminAddress": "localhost:7188",	// janus admin address used to retrive more information for sessions and handles
2166// 		"adminPassword": "",			// secret to pass restriction to communicate to the endpoint
2167// 		"type": "*ws"				// type of the transport to interact via janus API
2168// 	}],
2169// 	"requestProcessors": []			// request processors to be applied to Janus messages
2170// },
2171
2172// "templates": {
2173// 	"*asr": [
2174// 			{"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable",
2175// 				"value": "~*req.Session-Id", "mandatory": true},
2176// 			{"tag": "OriginHost", "path": "*diamreq.Origin-Host", "type": "*variable",
2177// 				"value": "~*req.Destination-Host", "mandatory": true},
2178// 			{"tag": "OriginRealm", "path": "*diamreq.Origin-Realm", "type": "*variable",
2179// 				"value": "~*req.Destination-Realm", "mandatory": true},
2180// 			{"tag": "DestinationRealm", "path": "*diamreq.Destination-Realm", "type": "*variable",
2181// 				"value": "~*req.Origin-Realm", "mandatory": true},
2182// 			{"tag": "DestinationHost", "path": "*diamreq.Destination-Host", "type": "*variable",
2183// 				"value": "~*req.Origin-Host", "mandatory": true},
2184// 			{"tag": "AuthApplicationId", "path": "*diamreq.Auth-Application-Id", "type": "*variable",
2185// 				 "value": "~*vars.*appid", "mandatory": true}
2186// 	],	
2187// 	"*cca": [
2188// 		{"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable",
2189// 			"value": "~*req.Session-Id", "mandatory": true},
2190// 		{"tag": "ResultCode", "path": "*rep.Result-Code", "type": "*constant",
2191// 			"value": "2001"},
2192// 		{"tag": "OriginHost", "path": "*rep.Origin-Host", "type": "*variable",
2193// 			"value": "~*vars.OriginHost", "mandatory": true},
2194// 		{"tag": "OriginRealm", "path": "*rep.Origin-Realm", "type": "*variable",
2195// 			"value": "~*vars.OriginRealm", "mandatory": true},
2196// 		{"tag": "AuthApplicationId", "path": "*rep.Auth-Application-Id", "type": "*variable",
2197// 			 "value": "~*vars.*appid", "mandatory": true},
2198// 		{"tag": "CCRequestType", "path": "*rep.CC-Request-Type", "type": "*variable",
2199// 			"value": "~*req.CC-Request-Type", "mandatory": true},
2200// 		{"tag": "CCRequestNumber", "path": "*rep.CC-Request-Number", "type": "*variable",
2201// 			"value": "~*req.CC-Request-Number", "mandatory": true}
2202// 	],
2203// 	"*urLog": [ // urLog template is used in ActionS to build the event that is send to URs in case of *urLog actionType
2204// 		{"tag": "ToR", "path": "*ur.ToR", "type": "*variable",
2205// 			"value": "~*req.BalanceType", "mandatory": true},
2206// 		{"tag": "OriginHost", "path": "*ur.OriginHost", "type": "*constant",
2207// 			"value": "127.0.0.1", "mandatory": true},
2208// 		{"tag": "RequestType", "path": "*ur.RequestType", "type": "*constant",
2209// 			"value": "*none", "mandatory": true},
2210// 		{"tag": "Tenant", "path": "*ur.Tenant", "type": "*variable",
2211// 			"value": "~*req.Tenant", "mandatory": true},
2212// 		{"tag": "Account", "path": "*ur.Account", "type": "*variable",
2213// 			"value": "~*req.Account", "mandatory": true},
2214// 		{"tag": "Subject", "path": "*ur.Subject", "type": "*variable",
2215// 			"value": "~*req.Account", "mandatory": true},
2216// 		{"tag": "Cost", "path": "*ur.Cost", "type": "*variable",
2217// 			"value": "~*req.Cost", "mandatory": true},
2218// 		{"tag": "Source", "path": "*ur.Source", "type": "*constant",
2219// 			"value": "*urLog", "mandatory": true},
2220// 		{"tag": "Usage", "path": "*ur.Usage", "type": "*constant",
2221// 			"value": "1", "mandatory": true},
2222// 		{"tag": "RunID", "path": "*ur.RunID", "type": "*variable",
2223// 			"value": "~*req.ActionType", "mandatory": true},
2224// 		{"tag": "SetupTime", "path": "*ur.SetupTime", "type": "*constant",
2225// 			"value": "*now", "mandatory": true},
2226// 		{"tag": "AnswerTime", "path": "*ur.AnswerTime", "type": "*constant",
2227// 			"value": "*now", "mandatory": true},
2228// 		{"tag": "PreRated", "path": "*ur.PreRated", "type": "*constant",
2229// 			"value": "true", "mandatory": true}
2230// 	],
2231// 	"*coa": [ // used by RadiusAgent when sending ChangeOfAuthorization message towards the client
2232// 		{"tag": "User-Name", "path": "*radDAReq.User-Name", "type": "*variable",
2233// 			"value": "~*oreq.User-Name"},
2234// 		{"tag": "NAS-IP-Address", "path": "*radDAReq.NAS-IP-Address", "type": "*variable",
2235// 			"value": "~*oreq.NAS-IP-Address"},
2236// 		{"tag": "Acct-Session-Id", "path": "*radDAReq.Acct-Session-Id", "type": "*variable",
2237// 			"value": "~*oreq.Acct-Session-Id"},
2238// 		{"tag": "Filter-Id", "path": "*radDAReq.Filter-Id", "type": "*variable",
2239// 			"value": "~*req.CustomFilter"}
2240// 	],
2241// 	"*dmr": [  // used by RadiusAgent when sending Disconnect message towards the client
2242// 		{"tag": "User-Name", "path": "*radDAReq.User-Name", "type": "*variable",
2243// 			"value": "~*oreq.User-Name"},
2244// 		{"tag": "NAS-IP-Address", "path": "*radDAReq.NAS-IP-Address", "type": "*variable",
2245// 			"value": "~*oreq.NAS-IP-Address"},
2246// 		{"tag": "Acct-Session-Id", "path": "*radDAReq.Acct-Session-Id", "type": "*variable",
2247// 			"value": "~*oreq.Acct-Session-Id"},
2248// 		{"tag": "Reply-Message", "path": "*radDAReq.Reply-Message", "type": "*variable",
2249// 			"value": "~*req.DisconnectCause"}
2250// 	],
2251// 	"*err": [
2252// 		{"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable",
2253// 			"value": "~*req.Session-Id", "mandatory": true},
2254// 		{"tag": "OriginHost", "path": "*rep.Origin-Host", "type": "*variable",
2255// 			"value": "~*vars.OriginHost", "mandatory": true},
2256// 		{"tag": "OriginRealm", "path": "*rep.Origin-Realm", "type": "*variable",
2257// 			"value": "~*vars.OriginRealm", "mandatory": true}
2258// 	],
2259// 	"*errSip": [
2260// 			{"tag": "Request", "path": "*rep.Request", "type": "*constant",
2261// 				"value": "SIP/2.0 500 Internal Server Error", "mandatory": true}
2262// 	],
2263// 	"*astr": [
2264// 		{"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant",
2265// 			"value": "*voice"},
2266// 		{"tag": "OriginID", "path": "*cgreq.OriginID", "type": "*variable", 
2267// 			"value": "~*req.channel.id"},
2268// 		{"tag": "originID", "path": "*opts.*originID", "type": "*variable", 
2269// 			"value": "~*req.channel.id"},
2270// 		{"tag": "OriginHost", "path": "*cgreq.OriginHost", "type": "*variable", 
2271// 			"value": "~*vars.OriginHost"},
2272// 		{"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", 
2273// 			"value": "*prepaid"},
2274// 		{"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", 
2275// 			"value": "cgrates.org"},
2276// 		{"tag": "Account", "path": "*cgreq.Account", "type": "*variable", 
2277// 			"value": "~*req.channel.caller.number"},
2278// 		{"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable",
2279// 			 "value": "~*req.channel.caller.number"},
2280// 		{"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", 
2281// 			"value": "~*req.channel.dialplan.exten"},
2282// 		{"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", 
2283// 			"value": "~*req.channel.creationtime"},
2284// 		{"tag":"Cost","path":"*cgreq.Cost","type":"*constant",
2285// 			"value":"-1.0"},
2286// 	],
2287//     "*fsr": [
2288// 		{ "tag": "ToR", "path": "*cgreq.ToR","type": "*constant",
2289// 		   "value": "*voice"},
2290// 		{"tag":"PDD","path":"*cgreq.PDD","type":"*composed",
2291// 			"value":"~*req.variable_progress_mediamsec;ms"},
2292// 		{"tag":"ACD","path":"*cgreq.ACD","type":"*composed",
2293// 			"value":"~*req.variable_cgrAcd;s"},
2294// 		{"tag": "OriginID","path": "*cgreq.OriginID","type": "*variable",
2295// 			"value": "~*req.Unique-ID"},
2296// 		{"tag": "*originID","path": "*opts.*originID","type": "*variable",
2297// 		    "value": "~*req.Unique-ID"},
2298// 		{"tag": "OriginHost","path": "*cgreq.OriginHost","type": "*variable",
2299// 		"value": "~*vars.Originhost"},
2300// 		{"tag": "Account","path": "*cgreq.Account","type": "*variable",
2301// 			"value": "~*req.Caller-Username"},
2302// 		{"tag":"Source","path":"*cgreq.Source", "type":"*composed",
2303// 			"value":"FS_;~*req.Event-Name"},
2304// 		{"tag":"RequestType","path":"*cgreq.RequestType","type":"*constant",
2305// 			"value":"*none","filters":["*string:*req.variable_process_ur:false"]},
2306// 		{"tag":"RequestType","path":"*cgreq.RequestType","type":"*constant",
2307// 			"value":"*none","filters":["*string:*req.Caller-Dialplan:inline"]},
2308// 		{"tag":"RequestType","path": "*cgreq.RequestType","type": "*constant",
2309// 			"filters":["*exists:*cgreq.RequestType:"],"value": "*prepaid"},
2310// 		{"tag":"Tenant","path":"*cgreq.Tenant","type":"*constant",
2311// 			"value":"cgrates.org"},
2312// 		{"tag":"Category","path":"*cgreq.Category","type":"*constant",
2313// 			"value":"call"},
2314// 		{"tag":"Subject","path":"*cgreq.Subject","type":"*variable",
2315// 			"value":"~*req.Caller-Username"},
2316// 		{"tag":"Destination","path":"*cgreq.Destination","type":"*variable",
2317// 			"value":"~*req.Caller-Destination-Number"},
2318// 		{"tag":"SetupTime","path":"*cgreq.SetupTime","type":"*variable",
2319// 			"value":"~*req.Caller-Channel-Created-Time"},
2320// 		{"tag":"AnswerTime","path":"*cgreq.AnswerTime","type":"*variable",
2321// 			"value":"~*req.Caller-Channel-Answered-Time"},
2322// 		{"tag":"Usage","path":"*cgreq.Usage","type":"*composed",
2323// 			"value":"~*req.variable_billsec;s"},
2324// 		{"tag":"Route","path":"*cgreq.Route","type":"*variable",
2325// 			"value":"~*req.variable_cgrRoute"},
2326// 		{"tag":"Cost","path":"*cgreq.Cost","type":"*constant",
2327// 			"value":"-1.0"},
2328// 		{"tag":"DisconnectCause","path":"*cgreq.DisconnectCause",
2329// 		    "filters":["*notempty:*req.Hangup-Cause:"],"type":"*variable","value":"~*req.Hangup-Cause"},
2330//     ],
2331// 	"*kamr": [
2332// 		{"tag": "originID", "path": "*opts.*originID", "type": "*variable",
2333// 			"value": "~*req.OriginID"},
2334// 		{"tag": "OriginHost", "path": "*cgreq.OriginHost", "type": "*variable",
2335// 			"value": "~*vars.OriginHost"},
2336// 		{"tag": "Source", "path": "*cgreq.Source", "type": "*constant",
2337// 			"value": "KamailioAgent"},
2338// 		{"tag": "EvapiConnID", "path": "*cgreq.evapiConnID", "type": "*variable",
2339// 			"value": "~*vars.evapiConnID"},
2340// 		{"tag": "HashEntry", "path": "*cgreq.hEntry", "type": "*variable",
2341// 			"filters": ["*notempty:*req.hEntry:"], "value": "~*req.hEntry"},
2342// 		{"tag": "HashID", "path": "*cgreq.hID", "type": "*variable",
2343// 			"filters": ["*notempty:*req.hID:"], "value": "~*req.hID"},
2344// 		{"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*variable",
2345// 			"filters": ["*notempty:*req.Tenant:"], "value": "~*req.Tenant"},
2346// 		{"tag": "Account", "path": "*cgreq.Account", "type": "*variable",
2347// 			"value": "~*req.Account"},
2348// 		{"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable",
2349// 			"value": "~*req.Account"},
2350// 		{"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable",
2351// 			"value": "~*req.Destination"},
2352// 		{"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable",
2353// 			"filters": ["*notempty:*req.SetupTime:"], "value": "~*req.SetupTime"},
2354// 		{"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable",
2355// 			"filters": ["*notempty:*req.AnswerTime:"], "value": "~*req.AnswerTime"},
2356// 		{"tag": "Usage", "path": "*cgreq.Usage", "type": "*composed",
2357// 			"filters": ["*notempty:*req.Usage:"], "value": "~*req.Usage;s"},
2358// 	],
2359// 	"*rar": [
2360// 		{"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable",
2361// 			"value": "~*req.Session-Id", "mandatory": true},
2362// 		{"tag": "OriginHost", "path": "*diamreq.Origin-Host", "type": "*variable",
2363// 			"value": "~*req.Destination-Host", "mandatory": true},
2364// 		{"tag": "OriginRealm", "path": "*diamreq.Origin-Realm", "type": "*variable",
2365// 			"value": "~*req.Destination-Realm", "mandatory": true},
2366// 		{"tag": "DestinationRealm", "path": "*diamreq.Destination-Realm", "type": "*variable",
2367// 			"value": "~*req.Origin-Realm", "mandatory": true},
2368// 		{"tag": "DestinationHost", "path": "*diamreq.Destination-Host", "type": "*variable",
2369// 			"value": "~*req.Origin-Host", "mandatory": true},
2370// 		{"tag": "AuthApplicationId", "path": "*diamreq.Auth-Application-Id", "type": "*variable",
2371// 			 "value": "~*vars.*appid", "mandatory": true},
2372// 		{"tag": "ReAuthRequestType", "path": "*diamreq.Re-Auth-Request-Type", "type": "*constant",
2373// 			"value": "0"}
2374// 	]
2375// },
2376
2377
2378// "configs": {
2379// 	"enabled": false,
2380// 	"url": "/configs/",				// configs url
2381// 	"rootDir": "/var/spool/cgrates/configs"	// root directory in case of calling /configs request
2382// },
2383
2384
2385// "apiban": {
2386// 	"enabled": false,
2387// 	"keys": []
2388// },
2389
2390// "sentrypeer": {
2391// 	"clientID":"",
2392// 	"clientSecret":"",
2393// 	"tokenUrl":"https://authz.sentrypeer.com/oauth/token",
2394// 	"ipsUrl":"https://sentrypeer.com/api/ip-addresses",
2395// 	"numbersUrl":"https://sentrypeer.com/api/phone-numbers",
2396// 	"audience":"https://sentrypeer.com/api",
2397// 	"grantType":"clientCredentials"
2398// },
2399
2400
2401// "actions": {
2402// 	"enabled": false,		// starts attribute service: <true|false>
2403// 	"conns": {
2404// 		// "*accounts": [	// connections to AccountS for *topup/*topUpReset action: <""|*internal|$rpc_conns_id>
2405// 		// 	{
2406// 		// 		"tenant": "",
2407// 		// 		"filterIDs": [],
2408// 		// 		"connIDs": ["*internal"]
2409// 		// 	}
2410// 		// ],
2411// 		// "*admins": [		// connections to AdminS for *dynamic actions: <""|*internal|$rpc_conns_id>
2412// 		// 	{
2413// 		// 		"tenant": "",
2414// 		// 		"filterIDs": [],
2415// 		// 		"connIDs": ["*internal"]
2416// 		// 	}
2417// 		// ],
2418// 		// "*ees": [		// connections to Ees for exporting event <""|*internal|$rpc_conns_id>
2419// 		// 	{
2420// 		// 		"tenant": "",
2421// 		// 		"filterIDs": [],
2422// 		// 		"connIDs": ["*internal"]
2423// 		// 	}
2424// 		// ],
2425// 		// "*stats": [		// connections to StatS for *resetStatQueue action: <""|*internal|$rpc_conns_id>
2426// 		// 	{
2427// 		// 		"tenant": "",
2428// 		// 		"filterIDs": [],
2429// 		// 		"connIDs": ["*internal"]
2430// 		// 	}
2431// 		// ],		
2432// 		// "*thresholds": [		// connections to ThresholdS for *resetThreshold action <""|*internal|$rpc_conns_id>
2433// 		// 	{
2434// 		// 		"tenant": "",
2435// 		// 		"filterIDs": [],
2436// 		// 		"connIDs": ["*internal"]
2437// 		// 	}
2438// 		// ],
2439// 	},		
2440// 	"tenants":[],			// List of tenants to operate on
2441// 	"indexedSelects": true,	// enable profile matching exclusively on indexes
2442// 	//"stringIndexedFields": [],	// query indexes based on these fields for faster processing
2443// 	"prefixIndexedFields": [],	// query indexes based on these fields for faster processing
2444// 	"suffixIndexedFields": [],	// query indexes based on these fields for faster processing
2445// 	"existsIndexedFields": [],	// query indexes based on these fields for faster processing
2446// 	"notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
2447// 	"nestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
2448// 	"dynaprepaidActionProfile": [],
2449// 	"opts":{
2450// 		// "*posterAttempts": [		// poster attempts for HTTPPost action type	
2451// 		//     {
2452// 		// 		"tenant": "*any",
2453// 		// 		"filterIDs": [],
2454// 		// 		"value": 1
2455// 		// 	}
2456// 		// ],
2457// 		// "*profileIDs": [
2458// 		// 	{
2459// 		// 		"tenant": "*any",
2460// 		// 		"filterIDs": [],
2461// 		// 		"values": [],
2462// 		// 	}
2463// 		// ],
2464// 		// "*profileIgnoreFilters": [	// ignore the filters for actionProfileIDs
2465// 		// 	{
2466// 		// 		"tenant": "*any",
2467// 		// 		"filterIDs": [],
2468// 		// 		"value": false
2469// 		// 	}
2470// 		// ]
2471// 	}
2472// },
2473
2474
2475// "accounts": {
2476// 	"enabled": false,		// starts service: <true|false>
2477// 	"indexedSelects": true,	// enable profile matching exclusively on indexes
2478// 	"conns": {
2479// 		// "*attributes": [		// connections to AttributeS for account/balance updates, empty to disable attributes functionality: <""|*internal|$rpc_conns_id>
2480// 		// 	{
2481// 		// 		"tenant": "",
2482// 		// 		"filterIDs": [],
2483// 		// 		"connIDs": ["*internal"]
2484// 		// 	}
2485// 		// ],
2486// 		// "*rates": [		// connections to RatesS for account/balance updates, empty to disable rates functionality: <""|*internal|$rpc_conns_id>
2487// 		// 	{
2488// 		// 		"tenant": "",
2489// 		// 		"filterIDs": [],
2490// 		// 		"connIDs": ["*internal"]
2491// 		// 	}
2492// 		// ],
2493// 		// "*thresholds": [		// connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
2494// 		// 	{
2495// 		// 		"tenant": "",
2496// 		// 		"filterIDs": [],
2497// 		// 		"connIDs": ["*internal"]
2498// 		// 	}
2499// 		// ],
2500// 	},			
2501// 	//"stringIndexedFields": [],	// query indexes based on these fields for faster processing
2502// 	"prefixIndexedFields": [],	// query indexes based on these fields for faster processing
2503// 	"suffixIndexedFields": [],	// query indexes based on these fields for faster processing
2504// 	"existsIndexedFields": [],	// query indexes based on these fields for faster processing
2505// 	"notExistsIndexedFields": [],	// query indexes based on these fields for faster processing
2506// 	"nestedFields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
2507// 	"maxIterations": 1000,		// maximum number of iterations
2508// 	"maxUsage": "72h",		// maximum time of usage
2509// 	"opts":{
2510// 		// "*profileIDs": [
2511// 		// 	{
2512// 		// 		"tenant": "*any",
2513// 		// 		"filterIDs": [],
2514// 		// 		"values": []
2515// 		// 	}
2516// 		// ],
2517// 		// "*profileIgnoreFilters": [	// ignore the filters for accountIDs
2518// 		// 	{
2519// 		// 		"tenant": "*any",
2520// 		// 		"filterIDs": [],
2521// 		// 		"value": "false"
2522// 		// 	}
2523// 		// ],		
2524// 		// "*usage": [
2525// 		// 	{
2526// 		// 		"tenant": "*any",
2527// 		// 		"filterIDs": [],
2528// 		// 		"value": "72h"
2529// 		// 	}
2530// 		// ]
2531// 	}
2532// },
2533
2534
2535// "configDB": {					// database used to store runtime data (eg: accounts)
2536// 	"dbType": "*internal",			// db type: <*internal|*redis|*mongo>
2537// 	"dbHost": "",				// db host address
2538// 	"dbPort": 0,	 			// db port to reach the database
2539// 	"dbName": "",	 			// db database name to connect to
2540// 	"dbUser": "",		 		// username to use when connecting to db
2541// 	"dbPassword": "", 			// password to use when connecting to db
2542// 	"opts":{
2543// 		"internalDBBackupPath": "/var/lib/cgrates/internal_db/backup/configdb", // default path taken by ConfigSv1.BackupConfigDB when "BackupFolderPath" is not provided
2544// 		"internalDBDumpInterval": "0s",		// dump configdb regularly to a file: "0" - disables it; "-1" - dump on each set/remove; <""|$dur>
2545// 		"internalDBDumpPath": "/var/lib/cgrates/internal_db/configdb",		// the path where configdb will be dumped
2546// 		"internalDBFileSizeLimit": "1GB",	// maximum size that can be written in a singular dump file 
2547// 		"internalDBRewriteInterval": "0s",	// rewrite dump files regularly: "0" - disables it; "-1" - rewrite on engine start; "-2" - rewrite on engine shutdown; <""|$dur>
2548// 		"internalDBStartTimeout": "5m",		// the amount of wait time until timeout for DB startup
2549// 		"mongoConnScheme": "mongodb",		// scheme for MongoDB connection <mongodb|mongodb+srv>
2550// 		"mongoQueryTimeout":"10s",		// timeout for query when mongo is used
2551// 		"redisBatchSize": 1000,			// COUNT size used in redis SCAN queries	
2552// 		"redisCACertificate":"",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
2553// 		"redisClientCertificate":"",		// path to client certificate
2554// 		"redisClientKey":"",			// path to client key
2555// 		"redisCluster": false,			// if enabled the configdb will try to connect to the redis cluster
2556// 		"redisClusterOndownDelay": "0",		// the delay before executing the commands if the redis cluster is in the CLUSTERDOWN state
2557// 		"redisClusterSync": "5s",		// the sync interval for the redis cluster
2558// 		"redisConnectAttempts": 20,		// the maximum amount of dial attempts
2559// 		"redisConnectTimeout": "0",		// the amount of wait time until timeout for a connection attempt
2560// 		"redisPoolPipelineLimit": 0,        	// maximum number of commands that can be pipelined before flushing (0 means no limit)
2561// 		"redisPoolPipelineWindow": "150µs",	// duration after which internal pipelines are flushed (0 disables implicit pipelining)
2562// 		"redisReadTimeout": "0",		// the amount of wait time until timeout for reading operations
2563// 		"redisSentinel": "",			// the name of sentinel when used
2564// 		"redisTLS": false,			// if true it will use a tls connection and use the redisClientCertificate, redisClientKey and redisCACertificate for tls connection
2565// 		"redisMaxConns": 10,			// the connection pool size
2566// 		"redisWriteTimeout": "0"		// the amount of wait time until timeout for writing operations
2567// 	}
2568// },
2569
2570// "tpes": {
2571//     "enabled": false
2572// }
2573
2574}