{

// Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
// Copyright (C) ITsysCOM GmbH
//
// This file contains the default configuration hardcoded into CGRateS.
// This is what you get when you load CGRateS with an empty configuration file.

// "general": {
// 	"node_id": "",					// identifier of this instance in the cluster, if empty it will be autogenerated
// 	"rounding_decimals": 5,				// system level precision for floats
// 	"dbdata_encoding": "*msgpack",			// encoding used to store object data in strings: <*msgpack|*json>
// 	"tpexport_dir": "/var/spool/cgrates/tpe",	// path towards export folder for offline TariffPlans
// 	"default_request_type": "*rated",		// default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated>
// 	"default_category": "call",			// default category to consider when missing from requests
// 	"default_tenant": "cgrates.org",		// default tenant to consider when missing from requests
// 	"default_timezone": "Local",			// default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
// 	"default_caching": "*reload",			// default actions to do when caching items
// 	"caching_delay": "0s", 				// add delay before cache reload
// 	"min_call_duration": "0s",			// only authorize calls with allowed duration higher than this
// 	"max_call_duration": "3h",			// maximum call duration a prepaid call can last
// 	"connect_attempts": 5,				// initial server connect attempts
// 	"reconnects": -1,				// number of retries in case of connection lost
// 	"max_reconnect_interval": "", 			// time to wait in between reconnect attempts
// 	"connect_timeout": "1s",			// consider connection unsuccessful on timeout, 0 to disable the feature
// 	"reply_timeout": "2s",				// consider connection down for replies taking longer than this value
// 	"locking_timeout": "0",				// timeout internal locks to avoid deadlocks
// 	"digest_separator": ",",			// separator to use in replies containing data digests
// 	"digest_equal": ":",				// equal symbol used in case of digests
// 	"max_parallel_conns": 100,			// the maximum number of connection used by the *parallel strategy
// 	"decimal_max_scale": 0,				// the maximum scale for decimal numbers
// 	"decimal_min_scale": 0,				// the minimum scale for decimal numbers
// 	"decimal_precision": 0,				// the precision of the decimal operations
// 	"decimal_rounding_mode": "*toNearestEven",	// the rounding mode <*toNearestEven|*toNearestAway|*toZero|*awayFromZero|*toNegativeInf|*toPositiveInf|*toNearestTowardZero>
// 	"opts":{
// 		// "*exporterIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ]
// 	}
// },

// "logger": {
// 	"type": "*syslog",						// controls the destination of logs <*syslog|*stdout|*kafkaLog>
// 	"level": 6,							// system level precision for floats
// 	"efs_conns": ["*internal"],					// connID to efs service 
// 	"opts": {
// 		"kafka_conn": "",					// the connection trough kafka
// 		"kafka_topic": "",					// the topic from where the events are exported
// 		"kafka_attempts": 1,					// number of attempts of connecting
// 		"failed_posts_dir": "/var/spool/cgrates/failed_posts"	// path where fail logs are exported
// 	}
// },

// "cores": {
// 	"caps": 0,			// maximum concurrent request allowed ( 0 to disabled )
// 	"caps_strategy": "*busy",	// strategy in case of concurrent requests reached	
// 	"caps_stats_interval": "0",	// the interval duration we sample for caps stats ( 0 to disabled )
// 	"ees_conns": [],		// connections to EventExporter
// 	"shutdown_timeout": "1s"	// the duration to wait until all services are stopped
// },

// "rpc_conns": {			// rpc connections definitions
// 	// "*localhost": {
// 	// 	"strategy": "*first",
// 	// 	"poolsize": 0,
// 	// 	"reply_timeout": "2s",
// 	// 	"conns": [{
// 	// 		"address": "127.0.0.1:2012",
// 	// 		"transport": "*json",
// 	// 		"connect_attempts": 5,
// 	// 		"reconnects": -1,
// 	// 		"max_reconnect_interval": "",
// 	// 		"connect_timeout": "1s",
// 	// 		"reply_timeout": "2s",
// 	// 		"tls": false,
// 	// 		"client_key": "",
// 	// 		"client_certificate": "",
// 	// 		"ca_certificate": ""
// 	// 	}]
// 	// }
// },

// "db": {				// database used to store data (eg: accounts)
// 	"db_conns": {
// 		"*default": {		// The id of the DB connection
// 			"db_type": "*internal",		// db type: <*internal|*redis|*mysql|*mongo|*postgres>
// 			"db_host": "",		// db host address
// 			"db_port": 0, 		// db port to reach the database
// 			"db_name": "", 		// db database name to connect to
// 			"db_user": "", 		// username to use when connecting to db
// 			"db_password": "", 		// password to use when connecting to db
// 			"string_indexed_fields": [],		// indexes on cdrs table to speed up queries, used in case of *mongo and *internal
// 			"prefix_indexed_fields": [],		// prefix indexes on cdrs table to speed up queries, used in case of *internal
// 			"remote_conns": [],		// the conns that are queried when the items are not found in local DB
// 			"remote_conn_id": "",		// the ID to be sent to remote_conns to identify the connection
// 			"replication_conns": [],		// the conns the items are replicated
// 			"replication_filtered": false, 	// if this is enabled the replication will be made only to the conns that received a get
// 			"replication_cache": "", 	// the caching action that is executed on the replication_conns when the items are replicated
// 		},
// 	},
// 	"items":{
// 		"*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*actions": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*ip_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*ip_allocations": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*filters": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*versions": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*ip_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*ranking_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*rankings": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*trend_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*trends": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"},
// 		"*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false, "dbConn": "*default"},
// 		"*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false, "dbConn": "*default"} // Compatible only for Internal, MySQL, Mongo and PostgresSQL databases
// 	},
// 	"opts":{
// 		"internalDBDumpPath": "/var/lib/cgrates/internal_db/db",		// the path where db will be dumped
// 		"internalDBBackupPath": "/var/lib/cgrates/internal_db/backup/db", // default path taken by AdminSv1.Backupdb when "BackupFolderPath" is not provided
// 		"internalDBStartTimeout": "5m",		// the amount of wait time until timeout for DB startup
// 		"internalDBDumpInterval": "1m",		// dump db regularly to a file: "0" - disables it; "-1" - dump on each set/remove; <""|$dur>
// 		"internalDBRewriteInterval": "1h",	// rewrite dump files regularly: "0" - disables it; "-1" - rewrite on engine start; "-2" - rewrite on engine shutdown; <""|$dur>
// 		"internalDBFileSizeLimit": "1GB",	// maximum size that can be written in a singular dump file 
// 		"redisMaxConns": 10,			// the connection pool size
// 		"redisConnectAttempts": 20,		// the maximum amount of dial attempts
// 		"redisSentinel": "",			// the name of sentinel when used
// 		"redisCluster": false,			// if enabled the db will try to connect to the redis cluster
// 		"redisClusterSync": "5s",		// the sync interval for the redis cluster
// 		"redisClusterOndownDelay": "0",		// the delay before executing the commands if the redis cluster is in the CLUSTERDOWN state
// 		"redisConnectTimeout": "0",		// the amount of wait time until timeout for a connection attempt
// 		"redisReadTimeout": "0",		// the amount of wait time until timeout for reading operations
// 		"redisWriteTimeout": "0",		// the amount of wait time until timeout for writing operations
// 		"redisPoolPipelineWindow": "150µs",	// duration after which internal pipelines are flushed (0 disables implicit pipelining)
// 		"redisPoolPipelineLimit": 0,        	// maximum number of commands that can be pipelined before flushing (0 means no limit)
// 		"redisTLS": false,			// if true it will use a tls connection and use the redisClientCertificate, redisClientKey and redisCACertificate for tls connection
// 		"redisClientCertificate": "",		// path to client certificate
// 		"redisClientKey": "",			// path to client key
// 		"redisCACertificate": "",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
// 		"mongoQueryTimeout": "10s",		// timeout for query when mongo is used
// 		"mongoConnScheme": "mongodb"		// scheme for MongoDB connection <mongodb|mongodb+srv>
// 	}
// },

// "listen": {
// 	"rpc_json": "127.0.0.1:2012",		// RPC JSON listening address
// 	"rpc_gob": "127.0.0.1:2013",		// RPC GOB listening address
// 	"http": "127.0.0.1:2080",		// HTTP listening address
// 	"rpc_json_tls" : "127.0.0.1:2022",	// RPC JSON TLS listening address
// 	"rpc_gob_tls": "127.0.0.1:2023",	// RPC GOB TLS listening address
// 	"http_tls": "127.0.0.1:2280"		// HTTP TLS listening address
// },

// "tls": {
// 	"server_certificate" : "",	// path to server certificate
// 	"server_key":"",		// path to server key
// 	"client_certificate" : "",	// path to client certificate
// 	"client_key":"",		// path to client key
// 	"ca_certificate":"",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
// 	"server_policy":4,		// server_policy determines the TLS Client Authentication (0-NoClientCert, 1-RequestClientCert, 2-RequireAnyClientCert, 3-VerifyClientCertIfGiven, 4-RequireAndVerifyClientCert)
// 	"server_name":""
// },


// "http": {						// HTTP server configuration
// 	"json_rpc_url": "/jsonrpc",			// JSON RPC relative URL ("" to disable)
// 	"registrars_url": "/registrar",			// registrar service relative URL
// 	"ws_url": "/ws",				// WebSockets relative URL ("" to disable)
// 	"freeswitch_cdrs_url": "/freeswitch_json",	// Freeswitch CDRS relative URL ("" to disable)
// 	"http_cdrs": "/cdr_http",			// CDRS relative URL ("" to disable)
// 	"pprof_path": "/debug/pprof/",			// endpoint for serving runtime profiling data for pprof visualization
// 	"use_basic_auth": false,			// use basic authentication
// 	"auth_users": {},				// basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "})
// 	"client_opts":{
// 		"skipTLSVerification": false, 		// if enabled Http Client will accept any TLS certificate
// 		// the options to configure the http.Transport
// 		"tlsHandshakeTimeout": "10s",
// 		"disableKeepAlives": false,
// 		"disableCompression": false,
// 		"maxIdleConns": 100,
// 		"maxIdleConnsPerHost": 2,
// 		"maxConnsPerHost": 0,
// 		"idleConnTimeout": "90s",
// 		"responseHeaderTimeout": "0",
// 		"expectContinueTimeout": "0",
// 		"forceAttemptHttp2": true,
// 		// the optins to configure the net.Dialer
// 		"dialTimeout": "30s",
// 		"dialFallbackDelay": "300ms",
// 		"dialKeepAlive": "30s"
// 	}
// },

// "caches":{
// 	"partitions": {
// 		"*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control resource profiles caching
// 		"*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control resources caching
// 		"*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false},				// matching resources to events
// 		"*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// statqueue profiles
// 		"*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// statqueues with metrics
// 		"*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control threshold profiles caching
// 		"*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control thresholds caching
// 		"*trend_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control threshold profiles caching
// 		"*trends": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control thresholds caching
// 		"*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control filters caching
// 		"*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control route profile caching
// 		"*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control attribute profile caching
// 		"*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control charger profile caching
// 		"*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control rate profile caching
// 		"*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control action profile caching
// 		"*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control account profile caching
// 		"*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 		// control resource filter indexes caching
// 		"*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 			// control stat filter indexes caching
// 		"*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 		// control threshold filter indexes caching
// 		"*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 			// control route filter indexes caching
// 		"*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 		// control attribute filter indexes caching
// 		"*ranking_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},	// control ranking profile caching
// 		"*rankings": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control rankings caching
// 		"*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 			// control charger filter indexes caching
// 		"*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 		// control rate profile filter indexes caching
// 		"*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 			// control rate filter indexes caching
// 		"*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 		// control action profile filter indexes caching
// 		"*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 			// control coount profile filter indexes caching
// 		"*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, 			// control reverse filter indexes caching used only for set and remove filters
// 		"*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false},			// diameter messages caching
// 		"*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "remote":false, "replicate": false},				// RPC responses caching
// 		"*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false},			// closed sessions cached for CDRs
// 		"*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false},				// events proccessed by ChargerS
// 		"*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "remote":false, "replicate": false},				// protects CDRs against double-charging
// 		"*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false},		// control the load_ids for items
// 		"*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false},				// RPC connections caching
// 		"*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false},					// User cache
// 		"*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false},					// stirShaken cache keys
// 		"*apiban":{"limit": -1, "ttl": "2m", "static_ttl": false, "remote":false, "replicate": false},
// 		"*sentrypeer":{"limit": -1, "ttl": "24h", "static_ttl": true, "remote":false, "replicate": false},
// 		"*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false},				// caps cached samples
// 		"*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "remote":false, "replicate": false},				// the replication hosts cache(used when replication_filtered is enbled)
// 	},
// 	"replication_conns": [],
// 	"remote_conns": []	// the conns that are queried when the items are not found in cache
// },


// "filters": {
// 	"stats_conns": [],	// connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"resources_conns": [],	// connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"accounts_conns": [],	// connections to AccountS for <*accounts> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"trends_conns": [],		// connections to TrendS for <*trends> filters, empty to disable trends functionality: <""|*internal|$rpc_conns_id>
// 	"rankings_conns": []	// connections to RankingS for <*rankings> filters, empty to disable rankings functionality: <""|*internal|$rpc_conns_id> 
// 	},



// "cdrs": {
// 	"enabled": false,		// start the CDR Server:  <true|false>
// 	"extra_fields": [],		// extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON)
// 	"session_cost_retries": 5,	// number of queries to session_costs before recalculating CDR
// 	"chargers_conns": [],		// connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id>
// 	"attributes_conns": [],		// connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id>
// 	"thresholds_conns": [],		// connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
// 	"stats_conns": [],		// connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"online_cdr_exports":[],	// list of CDRE profiles to use for real-time CDR exports
// 	"actions_conns": [],		// connections to SchedulerS in case of *dynaprepaid request
// 	"ees_conns": [],		// connections to EventExporter
// 	"rates_conns": [],		// connections to RateS
// 	"accounts_conns": [],		// connections to AccountS
// 	"opts": {
// 		// "*accounts": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*attributes": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*chargers": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*ees": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*rates": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*stats": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*thresholds": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*refund": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*rerate": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*store": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "true"
// 		// 	}
// 		// ]
// 	}
// },


// "ers": {				// EventReaderService
// 	"enabled": false,		// starts the EventReader service: <true|false>
// 	"sessions_conns":["*internal"],	// RPC Connections IDs
// 	// "ees_conns": [],		// connection for routing processed and invalid messages through EEs
// 	"partial_cache_ttl": "1s",	// the duration to cache partial records when not pairing	
// 	"readers": [
// 		{
// 			"id": "*default",				// identifier of the EventReader profile
// 			"type": "*none",				// reader type <*fileCSV>
// 			"run_delay": "0",				// sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
// 			"concurrent_requests": 1024,			// maximum simultaneous requests/files to process, 0 for unlimited
// 			"source_path": "/var/spool/cgrates/ers/in",	// read data from this path
// 			"processed_path": "/var/spool/cgrates/ers/out",	// move processed data here
// 			"tenant": "",					// tenant used by import
// 			"timezone": "",					// timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
// 			// "ees_success_ids": [],			// ids of exporters used for moving the successfully processed event
// 			// "ees_failed_ids": [],			// ids of exporters used for moving the unprocessed event
// 			"filters": [],					// limit parsing based on the filters
// 			"flags": [],					// flags to influence the event processing
// 			"reconnects": -1,				// number of retries in case of connection lost
// 			"max_reconnect_interval": "5m", 		// time to wait in between reconnect attempts
// 			"opts": {
// 				// Partial
// 				// "partialPath": "/",			// the path were the partial events will be sent
// 				"partialCacheAction": "*none",		// the action that will be executed for the partial CSVs that are not matched<*none|*post_cdr|*dump_to_file>
// 				"partialOrderField": "~*req.AnswerTime",// the field after what the events are order when merged
// 				// "partialcsvFieldSeparator": ","	// separator used when dumping the fields
				
// 				// FileCSV 
// 				"csvRowLength": 0,		// Number of fields from csv file
// 				"csvFieldSeparator": ",",	// separator used when reading the fields
// 				"csvHeaderDefineChar": ":", 	// the starting character for header definition used in case of CSV files
// 				// "csvLazyQuotes": false,	// if a quote may appear in an unquoted field and a non-doubled quote may appear in a quoted field

// 				// FileXML
// 				// "xmlRootPath": "",		// path towards one event in case of XML CDRs

// 				// AMQP and AMQPv1
// 				// "amqpQueueID": "cgrates_cdrs",	// identifier for the primary queue where messages are consumed (0.9.1/1.0)
// 				// "amqpUsername": "",			// username for SASL PLAIN auth, exclusive to AMQP 1.0, often representing the policy name
// 				// "amqpPassword": "",			// password for authentication, exclusive to AMQP 1.0
// 				// "amqpConsumerTag": "cgrates",	// unique tag for the consumer, useful for message tracking and consumer management (0.9.1)
// 				// "amqpExchange": "",			// name of the primary exchange where messages will be published (0.9.1)
// 				// "amqpExchangeType": "",		// type of the primary exchange (direct, topic, fanout, headers) (0.9.1)
// 				// "amqpRoutingKey": "",		// key used for routing messages to the primary queue (0.9.1)

// 				// Kafka
// 				// "kafkaTopic": "cgrates",	// the topic from were the events are read
// 				// "kafkaBatchSize": 100,	// limit on how many messages will be buffered before being sent
// 				// "kafkaGroupID": "cgrates",	// the group that reads the events
// 				// "kafkaMaxWait": "1ms",	// the maximum amount of time to wait for new data to come
// 				// "kafkaTLS": false,		// if set to true it will try to authenticate the server
// 				// "kafkaCAPath": "",
// 				// "kafkaSkipTLSVerify": false,

// 				// SQL
// 				// "sqlDBName": "cgrates", 	// the name of the database from were the events are read
// 				// "sqlTableName": "cdrs",	// the name of the table from were the events are read
// 				// "pgSSLMode": "disable",	// the ssl mode for postgres db

// 				// SQS and S3
// 				// "awsRegion": "",
// 				// "awsKey": "",
// 				// "awsSecret": "",
// 				// "awsToken": "",

// 				// SQS
// 				// "sqsQueueID": "cgrates_cdrs", 	// the queue id for SQS readers from were the events are read

// 				// S3
// 				// "s3BucketID": "cgrates_cdrs", 	// the bucket id for S3 readers from were the events are read

// 				// nats
// 				// "natsJetStream": false,		// controls if the nats reader uses the JetStream
// 				// "natsConsumerName": "cgrates",	// in case of JetStream the name of the consumer
// 				// "natsStreamName": "cdrs",		// the name of the NATS JetStream stream from which the consumer will read messages
// 				"natsSubject": "cgrates_cdrs",		// the subject from were the events are read
// 				// "natsQueueID": "",			// the queue id the consumer listen to
// 				// "natsJWTFile": "",			// the path to the JWT file( can be the chained file or the user file)
// 				// "natsSeedFile": "",			// the path to the seed files( if the JWT file is mention this is used as seedFile for the JWT user mentioned above)
// 				// "natsCertificateAuthority": "",	// the path to a custom certificate authority file( used by tls)
// 				// "natsClientCertificate": "",		// the path to a client certificate( used by tls)
// 				// "natsClientKey": "",			// the path to a client key( used by tls)
// 				// "natsJetStreamMaxWait": "5s"		// the maximum amount of time to wait for a response
// 			},
// 			"fields":[	// import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value
// 				{"tag": "ToR", "path": "*cgreq.ToR", "type": "*variable", "value": "~*req.2", "mandatory": true},
// 				{"tag": "OriginID", "path": "*cgreq.OriginID", "type": "*variable", "value": "~*req.3", "mandatory": true},
// 				{"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*variable", "value": "~*req.4", "mandatory": true},
// 				{"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*variable", "value": "~*req.6", "mandatory": true},
// 				{"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.7", "mandatory": true},
// 				{"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.8", "mandatory": true},
// 				{"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.9", "mandatory": true},
// 				{"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "value": "~*req.10", "mandatory": true},
// 				{"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.11", "mandatory": true},
// 				{"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.12", "mandatory": true},
// 				{"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.13", "mandatory": true}
// 			],
// 			"partial_commit_fields": [],
// 			"cache_dump_fields": []
// 		}
// 	]
// },

// "efs": {
// 	"enabled": false,					// starts the EventReader service: <true|false>
// 	"poster_attempts": 3,					// number of attempts before considering post request failed (eg: *httpPost, CDR exports)
// 	"failed_posts_dir": "/var/spool/cgrates/failed_posts",	// directory path where we store failed requests
// 	"failed_posts_ttl": "5s"				// time to wait before writing the failed posts in a single file
// },

// "ees": {
// 	"enabled": false,		// starts the EventReader service: <true|false>
// 	"attributes_conns":[],		// RPC Connections IDs
// 	"cache": {
// 		"*fileCSV": {"limit": -1, "ttl": "5s", "static_ttl": false}
// 	},
// 	"exporters": [
// 		{
// 			"id": "*default",					// identifier of the EventReader profile
// 			"type": "*none",					// exporter type 
// 			"export_path": "/var/spool/cgrates/ees",		// path where the exported events will be placed
// 			"failed_posts_dir": "/var/spool/cgrates/failed_posts",	// directory path where we store failed requests
// 			"concurrent_requests": 0,				// maximum simultaneous requests to process, 0 for unlimited
// 			"timezone": "",						// timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
// 			"efs_conns": ["*internal"],				// connID to efs service
// 			"filters": [],						// limit parsing based on the filters
// 			"flags": [],						// flags to influence the event processing
// 			"attribute_ids": [],					// select Attribute profiles instead of discovering them
// 			"attribute_context": "",				// context used to discover matching Attribute profiles
// 			"synchronous": false,					// block processing until export has a result
// 			"blocker": false,					// stops the processing of the following exporters
// 			"attempts": 1,						// export attempts
// 			"opts": {						// extra options for exporter

// 				// CSV
// 				// "csvFieldSeparator": ",",		// separator used when reading the fields


// 				// Elasticsearch options
// 				// "elsCloud":true,                     // whether ExportPath represents a cloud ID deployment
// 				// "elsApiKey": "",                     // Base64-encoded token for authorization; if set, overrides username/password and service token.
// 				// "elsUsername":"",                    // Username for HTTP Basic Authentication.
// 				// "elsPassword":"",			// Password for HTTP Basic Authentication.
// 				// "elsServiceToken":""                 // Service token for authorization; if set, overrides username/password.
// 				// "elsCertificateFingerPrint":""       // SHA256 hex fingerprint given by Elasticsearch on first launch.
// 				// "elsDiscoverNodesOnStart":false,     // Discover nodes when initializing the client. Default: false.
// 				// "elsDiscoverNodesInterval":"10s",    // Discover nodes periodically. Default: disabled.
// 				// "elsEnableDebugLogger":"false",      // Enable the debug logging.
// 				// "elsLogger":"",                      // The logger type can either be elsJson,elsColor and elsText
// 				// "elsCompressRequestBody":false,      // Enable compression on requests
// 				// "elsCompressRequestBodyLevel":0,     // Default: gzip.DefaultCompression, 9:BestCompression,-2:HuffmanOnly,1:BestSpeed
// 				// "elsRetryOnStatus":[],               // List of status codes for retry. Default: 502, 503, 504.
// 				// "elsMaxRetries": 0,                  // Default: 3.
// 				// "elsDisableRetry": false,            // Default: false.
// 				// "elsIndex": "",			// target elasticsearch index
// 				// "elsRefresh": "false",		// controls when changes become searchable <true|false|wait_for>
// 				// "elsOpType": "index",		// operation type <index|create>
// 				// "elsPipeline": "",			// name of the ingest pipeline to use
// 				// "elsRouting": "",			// custom routing value for document storage
// 				// "elsTimeout": "1m",			// maximum time to wait for operation
// 				// "elsWaitForActiveShards": "1",	// number of shard copies required before indexing (default: 1)



// 				// SQL
// 				// "sqlMaxIdleConns": 0,		// SQLMaxIdleConns    
// 				// "sqlMaxOpenConns": 0,		// SQLMaxOpenConns
// 				// "sqlConnMaxLifetime": "0",		// SQLConnMaxLifetime 
// 				// "mysqlDSNParams": {},                // DSN params


// 				// "sqlTableName":"cdrs", 		// the name of the table from where the events are exported
// 				// "sqlDBName": "cgrates",		// the name of the database from where the events are exported
// 				// "pgSSLMode": "disable",		// the postgresSSLMode for postgres            				


// 				// Kafka
// 				// "kafkaTopic": "cgrates",		// the topic from where the events are exported
// 				// "kafkaTLS": false,			// if set to true it will try to authenticate the server
// 				// "kafkaCAPath": "",			// path to certificate authority pem file
// 				// "kafkaSkipTLSVerify": false,		// if set to true it will skip certificate verification


// 				// AMQP
// 				// "amqpQueueID": "cgrates_cdrs",	// the queue id for AMQP exporters from were the events are exported
// 				// "amqpRoutingKey": "",		// RoutingKey, amqp 0.9.1 exclusive
// 				// "amqpExchange": "",			// Exchange, amqp 0.9.1 exclusive
// 				// "amqpExchangeType": "",		// ExchangeType, amqp 0.9.1 exclusive
// 				// "amqpUsername": "",			// amqp 1.0 exclusive, used for SASL PLAIN auth, usually represents the policy name
// 				// "amqpPassword": "",			// amqp 1.0 exclusive, used for SASL PLAIN auth, populated with one of its policy's keys


// 				// SQS and S3
// 				// "awsRegion": "",			// AWSRegion
// 				// "awsKey": "",			// AWSKey
// 				// "awsSecret": "",			// AWSSecret
// 				// "awsToken": "",			// AWSToken

// 				//SQS
// 				// "sqsQueueID": "cgrates_cdrs", 	// the queue id for SQS exporters from were the events are exported

// 				// S3
// 				// "s3BucketID": "cgrates_cdrs", 	// the bucket id for S3 readers from where the events that are  exported
// 				// "s3FolderPath": "",			// S3FolderPath 

// 				// Nats
// 				// "natsJetStream": false,		// controls if the nats poster uses the JetStream
// 				// "natsSubject": "cgrates_cdrs",	// the subject were the events are exported
// 				// "natsJWTFile": "",			// the path to the JWT file( can be the chained file or the user file)
// 				// "natsSeedFile": "",			// the path to the seed files( if the JWT file is mention this is used as seedFile for the JWT user mentioned above)
// 				// "natsCertificateAuthority": "",	// the path to a custom certificate authority file( used by tls)
// 				// "natsClientCertificate": "",		// the path to a client certificate( used by tls)
// 				// "natsClientKey": "",			// the path to a client key( used by tls)
// 				// "natsJetStreamMaxWait": "5s",	// the maximum amount of time to wait for a response

// 				//RPC
// 				// "rpcCodec": "",			// for compression, encoding and decoding <internalRPC | BIRPC | JSON/HTTP/GOB>
// 				// "serviceMethod": "",			// the method that should be called trough RPC
// 				// "keyPath": "" ,			// path to server key 
// 				// "certPath": "",			// path to client certificate
// 				// "caPath": "",			// path to CA certificate
// 				// "tls": false,
// 				// "connIDs": [],			// connections for connManager to this exporter
// 				// "rpcConnTimeout" : "1s",		// connection unsuccesfull on timeout
// 				// "rpcReplyTimeout":"2s",		// connection down at replies if taking longer that this value
// 				// "rpcAPIOpts": {}			// opts that will be passed within APIOpts
// 			},
// 			"fields":[]					// import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value
// 		}
// 	]
// },


// "sessions": {
// 	"enabled": false,			// starts the session service: <true|false>
// 	"listen_bijson": "127.0.0.1:2014",	// address where to listen for bidirectional JSON-RPC requests
// 	"listen_bigob": "",			// address where to listen for bidirectional GOB-RPC requests
// 	"chargers_conns": [],			// connections to ChargerS for session forking <""|*internal|$rpc_conns_id>
// 	"cdrs_conns": [],			// connections to CDRs for CDR posting <""|*internal|$rpc_conns_id>
// 	"resources_conns": [],			// connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id>
// 	"thresholds_conns": [],			// connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
// 	"stats_conns": [],			// connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
// 	"routes_conns": [],			// connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id>
// 	"attributes_conns": [],			// connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id>
// 	"replication_conns": [],		// replicate sessions towards these session services
// 	"debit_interval": "0s",			// interval to perform debits on.
// 	"store_session_costs": false,		// enable storing of the session costs within CDRs
// 	"default_usage":{			// the usage if the event is missing the usage field
// 			"*any": "3h",
// 			"*voice": "3h",
// 			"*data": "1048576",
// 			"*sms": "1"
// 	},
// 	"session_ttl": "0s",			// time after a session with no updates is terminated, not defined by default
// 	//"session_ttl_max_delay": "",		// activates session_ttl randomization and limits the maximum possible delay
// 	//"session_ttl_last_used": "",		// tweak LastUsed for sessions timing-out, not defined by default
// 	//"session_ttl_usage": "",		// tweak Usage for sessions timing-out, not defined by default
// 	//"session_last_usage": "",		// tweak LastUsage for session timing-out, not defined by default
// 	"session_indexes": [],			// index sessions based on these fields for GetActiveSessions API
// 	"client_protocol": 1.0,			// version of protocol to use when acting as JSON-PRC client <"0","1.0">
// 	"channel_sync_interval": "0",		// sync channels to detect stale sessions (0 to disable)
// 	"terminate_attempts": 5,		// attempts to get the session before terminating it
// 	"alterable_fields": [],			// the session fields that can be updated
// 	//"min_dur_low_balance": "5s",		// threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval)
// 	"stir": {
// 		"allowed_attest": ["*any"],	// the default attest for stir/shaken authentication <*any|A|B|C>
// 		"payload_maxduration": "-1", 	// the duration that stir header is valid after it was created
// 		"default_attest": "A",		// the default attest level if not mentioned in API
// 		"publickey_path": "",		// the path to the public key 
// 		"privatekey_path": "",		// the path to the private key
// 	},
// 	"actions_conns": [],			// connections to SchedulerS in case of *dynaprepaid request
// 	"rates_conns": [], 			// connections to RateS
// 	"accounts_conns": [],			// connections to AccountS
// 	"opts": {
// 		// "*accounts": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*attributes": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*cdrs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*chargers": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*resources": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*routes": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*stats": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*thresholds": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*initiate": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*update": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*terminate": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*message": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*attributesDerivedReply": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*blockerError": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*cdrsDerivedReply": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*resourcesAuthorize": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*resourcesAllocate": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*resourcesRelease": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*resourcesDerivedReply": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*routesDerivedReply": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*statsDerivedReply": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*thresholdsDerivedReply": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*maxUsage": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*forceDuration": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*ttl": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*chargeable": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*ttlLastUsage": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*ttlLastUsed": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*debitInterval": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*ttlMaxDelay": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*ttlUsage": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ]
// 	}
// },


// "asterisk_agent": {
// 	"enabled": false,			// starts the Asterisk agent: <true|false>
// 	"sessions_conns": ["*birpc_internal"],
// 	"create_cdr": false,			// create CDR out of events and sends it to CDRS component
// 	"asterisk_conns":[			// instantiate connections to multiple Asterisk servers
// 		{
// 			"address": "127.0.0.1:8088",
// 			"user": "cgrates",
// 			"password": "CGRateS.org",
// 			"connect_attempts": 3,
// 			"reconnects": 5,
// 			"max_reconnect_interval": ""
// 		}
// 	]
// },


// "freeswitch_agent": {
// 	"enabled": false,				// starts the FreeSWITCH agent: <true|false>
// 	"sessions_conns": ["*birpc_internal"],
// 	"subscribe_park": true,				// subscribe via fsock to receive park events
// 	"create_cdr": false,				// creates CDR out of events and sends them to CDRS component
// 	"extra_fields": [],				// extra fields to store in auth/CDRs when creating them
// 	"low_balance_ann_file": "",			// file to be played when low balance is reached for prepaid calls
// 	"empty_balance_context": "",			// if defined, prepaid calls will be transferred to this context on empty balance
// 	"empty_balance_ann_file": "",			// file to be played before disconnecting prepaid calls on empty balance (applies only if no context defined)
// 	"max_wait_connection": "2s",			// maximum duration to wait for a connection to be retrieved from the pool
// 	"active_session_delimiter": ",",		// delimiter for 'show channels' responses and requests
// 	"event_socket_conns":[				// instantiate connections to multiple FreeSWITCH servers
// 		{
// 			"address": "127.0.0.1:8021", 	// FreeSWITCH server address and port
// 			"password": "ClueCon",  	// authentication password for FreeSWITCH
// 			"reconnects": 5, 		// max reconnect attempts before giving up ("-1" for no limit)
// 			"max_reconnect_interval": "",	// max time between reconnects ("0" for no limit)
// 			"reply_timeout": "1m",		// max wait time for FreeSWITCH replies
// 			"alias": ""
// 		}
// 	]
// },


// "kamailio_agent": {
// 	"enabled": false,			// starts Kamailio agent: <true|false>
// 	"sessions_conns": ["*birpc_internal"],
// 	"create_cdr": false,			// create CDR out of events and sends them to CDRS component
// 	"timezone": "",				// timezone of the Kamailio server
// 	"evapi_conns":[				// instantiate connections to multiple Kamailio servers
// 		{
// 			"address": "127.0.0.1:8448",
// 			"reconnects": 5,
// 			"max_reconnect_interval": ""
// 		}
// 	]
// },


// "diameter_agent": {
// 	"enabled": false,						// enables the diameter agent: <true|false>
// 	"listen": "127.0.0.1:3868",					// address where to listen for diameter requests <x.y.z.y/x1.y1.z1.y1:1234>
// 	"listen_net": "tcp",						// transport type for diameter <tcp|sctp>
// 	"dictionaries_path": "/usr/share/cgrates/diameter/dict/",	// path towards directory holding additional dictionaries to load
// 	"sessions_conns": ["*birpc_internal"],
// 	"origin_host": "CGR-DA",					// diameter Origin-Host AVP used in replies
// 	"origin_realm": "cgrates.org",					// diameter Origin-Realm AVP used in replies
// 	"vendor_id": 0,							// diameter Vendor-Id AVP used in replies
// 	"product_name": "CGRateS",					// diameter Product-Name AVP used in replies
// 	"synced_conn_requests": false,					// process one request at the time per connection
// 	"asr_template": "",						// enable AbortSession message being sent to client on DisconnectSession
// 	"rar_template": "",						// template used to build the Re-Auth-Request
// 	"forced_disconnect": "*none",					// the request to send to diameter on DisconnectSession <*none|*asr|*rar>
// 	"request_processors": []					// list of processors to be applied to diameter messages
// },


// "radius_agent": {
// 	"enabled": false,					// enables the radius agent: <true|false>
// 	"listen_net": "udp",					// network to listen on <udp|tcp>
// 	"listen_auth": "127.0.0.1:1812",			// address where to listen for radius authentication requests <x.y.z.y:1234>
// 	"listen_acct": "127.0.0.1:1813",			// address where to listen for radius accounting requests <x.y.z.y:1234>
// 	"client_secrets": {					// hash containing secrets for clients connecting here <*default|$client_ip>
// 		"*default": "CGRateS.org"
// 	},
// 	"client_dictionaries": {				// per client path towards directory holding additional dictionaries to load (extra to RFC)
// 		"*default": "/usr/share/cgrates/radius/dict/",	// key represents the client IP or catch-all <*default|$client_ip>
// 	},
// 	"sessions_conns": ["*internal"],
// 	"request_processors": []				// request processors to be applied to Radius messages
// },


// "http_agent": [],	// HTTP Agents, ie towards cnc.to MVNE platform


// "dns_agent": {
// 	"enabled": false,				// enables the DNS agent: <true|false>
// 	"listeners":[
// 		{
// 			"address": "127.0.0.1:53",	// address where to listen for DNS requests <x.y.z.y:1234>
// 			"network": "udp"		// network to listen on <udp|tcp|tcp-tls>
// 		}
// 	],
// 	"sessions_conns": ["*internal"],
// 	"timezone": "",					// timezone of the events if not specified  <UTC|Local|$IANA_TZ_DB>
// 	"request_processors": []			// request processors to be applied to DNS messages
// },


// "attributes": {
// 	"enabled": false,				// starts attribute service: <true|false>
// 	"stats_conns": [],				// connections to StatS, empty to disable: <""|*internal|$rpc_conns_id>
// 	"resources_conns": [],				// connections to ResourceS, empty to disable: <""|*internal|$rpc_conns_id>
// 	"accounts_conns": [],				// connections to AccountS, empty to disable: <""|*internal|$rpc_conns_id>
// 	"indexed_selects": true,			// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],			// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],			// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],			// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],			// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],			// query indexes based on these fields for faster processing
// 	"nested_fields": false,				// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"opts":{
// 		// "*profileIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ],
// 		// "*processRuns": [			// number of run loops when processing event
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "1"
// 		// 	}
// 		// ],
// 		// "*profileRuns": [			// number of runs a profile will process during the event
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 0
// 		// 	}
// 		// ],
// 		// "*profileIgnoreFilters": [ 		// ignore the filters for attributeIDs
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ]
// 	}
// },


// "chargers": {
// 	"enabled": false,		// starts charger service: <true|false>
// 	"attributes_conns": [],		// connections to AttributeS for event fields altering <""|127.0.0.1:2013>
// 	"indexed_selects": true,	// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"nested_fields": false		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// },


// "resources": {
// 	"enabled": false,		// starts ResourceLimiter service: <true|false>
// 	"store_interval": "",		// dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
// 	"thresholds_conns": [],		// connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
// 	"indexed_selects": true,	// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"nested_fields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"opts":{
// 		// "*usageID": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*usageTTL": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "72h"
// 		// 	}
// 		// ],
// 		// "*units": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 1
// 		// 	}
// 		// ]
// 	}
// },


// "stats": {
// 	"enabled": false,		// starts Stat service: <true|false>
// 	"store_interval": "",		// dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
// 	"store_uncompressed_limit": 0,	// used to compress data
// 	"thresholds_conns": [],		// connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
// 	"ees_conns": [],		// connections to EEs for StatUpdates, empty to disable export functionality: <""|*internal|$rpc_conns_id>
// 	"ees_exporter_ids": [],		// list of EventExporter profiles to use for real-time StatUpdate exports
// 	"indexed_selects": true,	// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"nested_fields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"opts": {
// 		// "*profileIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ],
// 		// "*profileIgnoreFilters": [	// ignore the filters for statIDs
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],	
// 		// "*roundingDecimals": [	// ignore the filters for statIDs
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 5
// 		// 	}
// 		// ]
// 	}
// },


// "thresholds": {
// 	"enabled": false,			// starts ThresholdS service: <true|false>
// 	"store_interval": "",			// dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
// 	"indexed_selects": true,		// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"nested_fields": false,			// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"actions_conns": [],			// connections to ActionS to execute the actions
// 	"opts":{
// 		// "*thresholdsIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ],
// 		// "*profileIgnoreFilters": [	// ignore the filters for thresholdIDs
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ]
// 	}
// },


// "trends":{
// 	"enabled": false,		// starts TrendS service: <true|false>.
// 	"store_interval": "",		// dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
// 	"store_uncompressed_limit": 0,	// used to compress metrics
// 	"stats_conns": [],		// connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"scheduled_ids": {},		// autoload these trend ids on start
// 	"thresholds_conns": [],		// connections to ThresholdS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"ees_conns": [],		// connections to EEs for trendSummary, empty to disable export functionality: <""|*internal|$rpc_conns_id>
// 	"ees_exporter_ids": []		// list of EventExporter profiles to use for real-time trendSummary exports
// },


// "rankings":{
// 	"enabled": false,	// starts RankingS service: <true|false>.
// 	"store_interval": "",	// dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
// 	"stats_conns": [],	// connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"scheduled_ids": {},	// autoload these ranking ids on start
// 	"thresholds_conns": [],	// connections to ThresholdS for rankingSummary reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
// 	"ees_conns": [],	// connections to EEs for rankingSummary events, empty to disable export functionality: <""|*internal|$rpc_conns_id>
// 	"ees_exporter_ids": []	// list of EventExporter profiles to use for real-time rankingSummary exports
// },


// "routes": {
// 	"enabled": false,		// starts RouteS service: <true|false>.
// 	"indexed_selects": true,	// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"nested_fields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"attributes_conns": [],		// connections to AttributeS for altering events before route queries: <""|*internal|$rpc_conns_id>
// 	"resources_conns": [],		// connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id>
// 	"stats_conns": [],		// connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
// 	"rates_conns": [],		// connections to RateS
// 	"accounts_conns": [],		// connections to AccountS
// 	"default_ratio":1,		// default ratio used in case of *load strategy
// 	"opts":{
// 		// "*context": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "*routes"
// 		// 	}
// 		// ],
// 		// "*profileCount": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "1"
// 		// 	}
// 		// ],
// 		// "*ignoreErrors": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ],
// 		// "*maxCost": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": ""
// 		// 	}
// 		// ],
// 		// "*limit": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 1
// 		// 	}
// 		// ],
// 		// "*offset": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 1
// 		// 	}
// 		// ],
// 		// "*maxItems": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 1
// 		// 	}
// 		// ],
// 		// "*usage": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "1m"
// 		// 	}
// 		// ]
// 	}
// },


// "loaders": [
// 	{
// 		"id": "*default",				// identifier of the Loader
// 		"enabled": false,				// starts as service: <true|false>.
// 		"tenant": "",					// tenant used in filterS.Pass
// 		"run_delay": "0",				// sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
// 		"lockfile_path": ".cgr.lck",			// Filename containing concurrency lock in case of delayed processing
// 		"caches_conns": ["*internal"],
// 		"field_separator": ",",				// separator used in case of csv files
// 		"tp_in_dir": "/var/spool/cgrates/loader/in",	// absolute path towards the directory where the TPs are stored
// 		"tp_out_dir": "/var/spool/cgrates/loader/out",	// absolute path towards the directory where processed TPs will be moved
// 		"action": "*store", 				// what should the loader do<*store|*parse|*remove|*dryRun>
// 		"opts": {
// 			// "*cache": "*reload",
// 			"*withIndex": true,
// 			// "*forceLock": false,
// 			// "*stopOnError": false
// 		},
// 		"cache":{
// 			"*filters":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*attributes":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*resources":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*stats":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*thresholds":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*routes":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*chargers":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*rate_profiles":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*action_profiles":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*accounts":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*trends":{"limit": -1, "ttl": "5s", "static_ttl": false},
// 			"*rankings":{"limit": -1, "ttl": "5s", "static_ttl": false}
// 		},
// 		"data":[					// data profiles to load
// 			{
// 				"type": "*filters",		// data source type
// 				"file_name": "Filters.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "Type", "path": "Rules.Type", "type": "*variable", "value": "~*req.2", "new_branch":true},
// 					{"tag": "Element", "path": "Rules.Element", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Values", "path": "Rules.Values", "type": "*variable", "value": "~*req.4"}
// 				]
// 			},
// 			{
// 				"type": "*attributes",		// data source type
// 				"file_name": "Attributes.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "TenantID", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "AttributeFilterIDs", "path": "Attributes.FilterIDs", "type": "*variable", "value": "~*req.5","new_branch":true},
// 					{"tag": "AttributeBlockers", "path": "Attributes.Blockers", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "Path", "path": "Attributes.Path", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "Type", "path": "Attributes.Type", "type": "*variable", "value": "~*req.8"},
// 					{"tag": "Value", "path": "Attributes.Value", "type": "*variable", "value": "~*req.9"}
// 				]
// 			},
// 			{
// 				"type": "*resources",		// data source type
// 				"file_name": "Resources.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "TTL", "path": "UsageTTL", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "Limit", "path": "Limit", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.8"},
// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"}
// 				]
// 			},
// 			{
// 				"type": "*stats",		// data source type
// 				"file_name": "Stats.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.8"},
// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"},
// 					{"tag": "MetricIDs", "path": "Metrics.MetricID", "type": "*variable", "value": "~*req.10","new_branch":true},
// 					{"tag": "MetricFilterIDs", "path": "Metrics.FilterIDs", "type": "*variable", "value": "~*req.11"},
// 					{"tag": "MetricBlockers", "path": "Metrics.Blockers", "type": "*variable", "value": "~*req.12"}
// 				]
// 			},
// 			{
// 				"type": "*thresholds",		// data source type
// 				"file_name": "Thresholds.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "MaxHits", "path": "MaxHits", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "MinHits", "path": "MinHits", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "ActionProfileIDs", "path": "ActionProfileIDs", "type": "*variable", "value": "~*req.8"},
// 					{"tag": "Async", "path": "Async", "type": "*variable", "value": "~*req.9"}
// 				]
// 			},
// 			{
// 				"type": "*trends",		// data source type
// 				"file_name": "Trends.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "Schedule", "path": "Schedule", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "StatID", "path": "StatID", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Metrics", "path": "Metrics", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "CorrelationType", "path": "CorrelationType", "type": "*variable", "value": "~*req.8"},
// 					{"tag": "Tolerance", "path": "Tolerance", "type": "*variable", "value": "~*req.9"},
// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.10"},
// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.11"}
// 				]
// 			},
// 			{
// 				"type": "*rankings",		// data source type
// 				"file_name": "Rankings.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "Schedule", "path": "Schedule", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "StatIDs", "path": "StatIDs", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "MetricIDs", "path": "MetricIDs", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "SortingParameters", "path": "SortingParameters", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.8"}
// 				]
// 			},
// 			{
// 				"type": "*routes",		// data source type
// 				"file_name": "Routes.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "SortingParameters", "path": "SortingParameters", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "RouteID", "path": "Routes.ID", "type": "*variable", "value": "~*req.7","new_branch":true},
// 					{"tag": "RouteFilterIDs", "path": "Routes.FilterIDs", "type": "*variable", "value": "~*req.8"},
// 					{"tag": "RouteAccountIDs", "path": "Routes.AccountIDs", "type": "*variable", "value": "~*req.9"},
// 					{"tag": "RouteRateProfileIDs", "path": "Routes.RateProfileIDs", "type": "*variable", "value": "~*req.10"},
// 					{"tag": "RouteResourceIDs", "path": "Routes.ResourceIDs", "type": "*variable", "value": "~*req.11"},
// 					{"tag": "RouteStatIDs", "path": "Routes.StatIDs", "type": "*variable", "value": "~*req.12"},
// 					{"tag": "RouteWeights", "path": "Routes.Weights", "type": "*variable", "value": "~*req.13"},
// 					{"tag": "RouteBlockers", "path": "Routes.Blockers", "type": "*variable", "value": "~*req.14"},
// 					{"tag": "RouteParameters", "path": "Routes.RouteParameters", "type": "*variable", "value": "~*req.15"}
// 				]
// 			},
// 			{
// 				"type": "*chargers",		// data source type
// 				"file_name": "Chargers.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.6"}
// 				]
// 			},
// 			{
// 				"type": "*rate_profiles",	// data source type
// 				"file_name": "Rates.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "MinCost", "path": "MinCost", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "MaxCost", "path": "MaxCost", "type": "*variable", "value": "~*req.5"},
// 					{"tag": "MaxCostStrategy", "path": "MaxCostStrategy", "type": "*variable", "value": "~*req.6"},
// 					// {"tag": "RateID", "path": "RateID", "type": "*variable", "value": "~*req.7"},
// 					{"tag": "RateFilterIDs", "path": "Rates[<~*req.7>].FilterIDs", "type": "*variable", "value": "~*req.8", "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateActivationTimes", "path": "Rates[<~*req.7>].ActivationTimes", "type": "*variable", "value": "~*req.9", "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateWeights", "path": "Rates[<~*req.7>].Weights", "type": "*variable", "value": "~*req.10", "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateBlocker", "path": "Rates[<~*req.7>].Blocker", "type": "*variable", "value": "~*req.11", "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateIntervalStart", "path": "Rates[<~*req.7>].IntervalRates.IntervalStart", "type": "*variable", "value": "~*req.12","new_branch":true, "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateFixedFee", "path": "Rates[<~*req.7>].IntervalRates.FixedFee", "type": "*variable", "value": "~*req.13", "filters": ["*notempty:~*req.7:"]},
//                     {"tag": "RateRecurrentFee", "path": "Rates[<~*req.7>].IntervalRates.RecurrentFee", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateUnit", "path": "Rates[<~*req.7>].IntervalRates.Unit", "type": "*variable", "value": "~*req.15", "filters": ["*notempty:~*req.7:"]},
// 					{"tag": "RateIncrement", "path": "Rates[<~*req.7>].IntervalRates.Increment", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.7:"]}
// 				]
// 			},
// 			{
// 				"type": "*action_profiles",	// data source type
// 				"file_name": "Actions.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "Schedule", "path": "Schedule", "type": "*variable", "value": "~*req.5"},
// 					// {"tag": "TargetType", "path": "TargetType", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "TargetIDs", "path": "Targets[<~*req.6>]", "type": "*variable", "value": "~*req.7"},
// 					// {"tag": "ActionID", "path": "Actions.ID", "type": "*variable", "value": "~*req.8","new_branch":true},
// 					{"tag": "ActionFilterIDs", "path": "Actions[<~*req.8>].FilterIDs", "type": "*variable", "value": "~*req.9", "filters": ["*notempty:~*req.8:"]},
// 					{"tag": "ActionTTL", "path": "Actions[<~*req.8>].TTL", "type": "*variable", "value": "~*req.10", "filters": ["*notempty:~*req.8:"]},
// 					{"tag": "ActionType", "path": "Actions[<~*req.8>].Type", "type": "*variable", "value": "~*req.11", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionOpts", "path": "Actions[<~*req.8>].Opts", "type": "*variable", "value": "~*req.12", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionWeights", "path": "Actions[<~*req.8>].Weights", "type": "*variable", "value": "~*req.13", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionBlockers", "path": "Actions[<~*req.8>].Blockers", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionDiktatsID", "path": "Actions[<~*req.8>].Diktats.ID", "type": "*variable", "value": "~*req.15","new_branch":true, "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionDiktatsFilterIDs", "path": "Actions[<~*req.8>].Diktats.FilterIDs", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionDiktatsOpts", "path": "Actions[<~*req.8>].Diktats.Opts", "type": "*variable", "value": "~*req.17", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionDiktatsWeights", "path": "Actions[<~*req.8>].Diktats.Weights", "type": "*variable", "value": "~*req.18", "filters": ["*notempty:~*req.8:"]},
//					{"tag": "ActionDiktatsBlockers", "path": "Actions[<~*req.8>].Diktats.Blockers", "type": "*variable", "value": "~*req.19", "filters": ["*notempty:~*req.8:"]},
//				]
// 			},
// 			{
// 				"type": "*accounts",		// data source type
// 				"file_name": "Accounts.csv",	// file name in the tp_in_dir
// 				"fields": [
// 					{"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true},
// 					{"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true},
// 					{"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~*req.2"},
// 					{"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"},
// 					{"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"},
// 					{"tag": "Opts", "path": "Opts", "type": "*variable", "value": "~*req.5"},
// 					// {"tag": "BalanceID", "path": "Balances.ID", "type": "*variable", "value": "~*req.6"},
// 					{"tag": "BalanceFilterIDs", "path": "Balances[<~*req.6>].FilterIDs", "type": "*variable", "value": "~*req.7","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceWeights", "path": "Balances[<~*req.6>].Weights", "type": "*variable", "value": "~*req.8","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceBlockers", "path": "Balances[<~*req.6>].Blockers", "type": "*variable", "value": "~*req.9","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceType", "path": "Balances[<~*req.6>].Type", "type": "*variable", "value": "~*req.10","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceUnits", "path": "Balances[<~*req.6>].Units", "type": "*variable", "value": "~*req.11","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceUnitFactors", "path": "Balances[<~*req.6>].UnitFactors", "type": "*variable", "value": "~*req.12","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceOpts", "path": "Balances[<~*req.6>].Opts", "type": "*variable", "value": "~*req.13","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceCostIncrements", "path": "Balances[<~*req.6>].CostIncrements", "type": "*variable", "value": "~*req.14","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceAttributeIDs", "path": "Balances[<~*req.6>].AttributeIDs", "type": "*variable", "value": "~*req.15","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "BalanceRateProfileIDs", "path": "Balances[<~*req.6>].RateProfileIDs", "type": "*variable", "value": "~*req.16","filters": ["*notempty:~*req.6:"]},
// 					{"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.17"}
// 				]
// 			}
// 		]
// 	}
// ],


// "suretax": {
// 	"url": "",				// API url
// 	"client_number": "",			// client number, provided by SureTax
// 	"validation_key": "",			// validation key provided by SureTax
// 	"business_unit": "",			// client’s Business Unit
// 	"timezone": "Local",			// convert the time of the events to this timezone before sending request out <UTC|Local|$IANA_TZ_DB>
// 	"include_local_cost": false,		// sum local calculated cost with tax one in final cost
// 	"return_file_code": "0",		// default or Quote purposes <0|Q>
// 	"response_group": "03",			// determines how taxes are grouped for the response <03|13>
// 	"response_type": "D4",			// determines the granularity of taxes and (optionally) the decimal precision for the tax calculations and amounts in the response
// 	"regulatory_code": "03",		// provider type
// 	"client_tracking": "~*opts.*originID",	// template extracting client information out of StoredCdr; <RSRParsers>
// 	"customer_number": "~*req.Subject",	// template extracting customer number out of StoredCdr; <RSRParsers>
// 	"orig_number":  "~*req.Subject", 	// template extracting origination number out of StoredCdr; <RSRParsers>
// 	"term_number": "~*req.Destination",	// template extracting termination number out of StoredCdr; <RSRParsers>
// 	"bill_to_number": "",			// template extracting billed to number out of StoredCdr; <RSRParsers>
// 	"zipcode": "",				// template extracting billing zip code out of StoredCdr; <RSRParsers>
// 	"plus4": "",				// template extracting billing zip code extension out of StoredCdr; <RSRParsers>
// 	"p2pzipcode": "",			// template extracting secondary zip code out of StoredCdr; <RSRParsers>
// 	"p2pplus4": "",				// template extracting secondary zip code extension out of StoredCdr; <RSRParsers>
// 	"units": "1",				// template extracting number of “lines” or unique charges contained within the revenue out of StoredCdr; <RSRParsers>
// 	"unit_type": "00",			// template extracting number of unique access lines out of StoredCdr; <RSRParsers>
// 	"tax_included": "0",			// template extracting tax included in revenue out of StoredCdr; <RSRParsers>
// 	"tax_situs_rule": "04",			// template extracting tax situs rule out of StoredCdr; <RSRParsers>
// 	"trans_type_code": "010101",		// template extracting transaction type indicator out of StoredCdr; <RSRParsers>
// 	"sales_type_code": "R",			// template extracting sales type code out of StoredCdr; <RSRParsers>
// 	"tax_exemption_code_list": "",		// template extracting tax exemption code list out of StoredCdr; <RSRParsers>
// },


// "loader": {						// loader for tariff plans out of .csv files
// 	"tpid": "",					// tariff plan identificator
// 	"data_path": "./",				// path towards tariff plan files
// 	"disable_reverse": false,			// disable reverse computing
// 	"field_separator": ",",				// separator used in case of csv files
// 	"caches_conns":["*localhost"],
// 	"actions_conns": ["*localhost"],
// 	"gapi_credentials": ".gapi/credentials.json", 	// the path to the credentials for google API or the credentials.json file content
// 	"gapi_token": ".gapi/token.json" 		// the path to the token for google API or the token.json file content
// },


// "migrator": {
// 	"users_filters":[],
// 	"fromItems":{
// 		"*accounts": {"dbConn": "*default"},
// 		"*statqueue_profiles": {"dbConn": "*default"},
// 		"*filters": {"dbConn": "*default"},
// 		"*charger_profiles": {"dbConn": "*default"},
// 		"*load_ids": {"dbConn": "*default"},
// 		"*versions": {"dbConn": "*default"}
// 	},
// 	"out_db_opts":{
// 		"redisMaxConns": 10,			// the connection pool size
// 		"redisConnectAttempts": 20,		// the maximum amount of dial attempts
// 		"redisSentinel": "",
// 		"redisCluster": false,
// 		"redisClusterSync": "5s",
// 		"redisClusterOndownDelay": "0",
// 		"redisConnectTimeout": "0",		// the amount of wait time until timeout for a connection attempt
// 		"redisReadTimeout": "0",		// the amount of wait time until timeout for reading operations
// 		"redisWriteTimeout": "0",		// the amount of wait time until timeout for writing operations
// 		"redisPoolPipelineWindow": "150µs",	// duration after which internal pipelines are flushed (0 disables implicit pipelining)
// 		"redisPoolPipelineLimit": 0,        	// maximum number of commands that can be pipelined before flushing (0 means no limit)
// 		"redisTLS": false,			// enable TLS when connecting to Redis and use the redisClientCertificate, redisClientKey and redisCACertificate for TLS connection
// 		"redisClientCertificate":"",		// path to client certificate
// 		"redisClientKey":"",			// path to client key
// 		"redisCACertificate":"",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
// 		"mongoQueryTimeout":"10s",		// timeout for query when mongo is used
// 		"mongoConnScheme": "mongodb"		// scheme for MongoDB connection <mongodb|mongodb+srv>
// 	},
// },


// "registrarc":{
//     "rpc":{
//         "enabled": false,
//         "registrars_conns": [],
//         "hosts": [],  
//         "refresh_interval": "5m"
//     }
// },


// "analyzers":{
// 	"enabled": false,				// starts AnalyzerS service: <true|false>.
//  	"db_path": "/var/spool/cgrates/analyzers",	// path to the folder where to store the information
// 	"index_type": "*scorch",			// the type of index for the storage: <*internal|*scorch|*boltdb|*leveldb|*mossdb>
// 	"ttl": "24h",					// time to wait before removing the API capture
// 	"ees_conns": [],				// connections to EEs
// 	"cleanup_interval": "1h",			// the interval we clean the db
// 	"opts":{
// 		// "*exporterIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ]
// 	}
// },


// "admins": {
// 	"enabled": false,
// 	"caches_conns":["*internal"],
// 	"actions_conns": [],		// connections to ActionS for reloads
// 	"attributes_conns": [],		// connections to AttributeS for CDRExporter
// 	"ees_conns": []			// connections to EEs
// },


// "rates": {
// 	"enabled": false,
// 	"indexed_selects": true,		// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],		// query indexes based on these fields for faster processing
// 	"nested_fields": false,			// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"rate_indexed_selects": true,		// enable profile matching exclusively on indexes
// 	//"rate_string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"rate_prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"rate_suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"rate_exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"rate_notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"rate_nested_fields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"verbosity": 1000,			// number of increment iterations allowed
// 	"opts":{
// 		// "*profileIDs": [		// select the rate profiles used for cost calculation
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ],
// 		// "*startTime": [		// start time used for cost calculation
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "*now"
// 		// 	}
// 		// ],
// 		// "*usage": [			// usage used for cost calculation
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "1m"
// 		// 	}
// 		// ],
// 		// "*intervalStart": [		// event interval start
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "0"
// 		// 	}
// 		// ],
// 		// "*profileIgnoreFilters": [	// ignore the filters for rateProfileIDs 
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ]
// 	}
// },


// "sip_agent": {				// SIP Agents, only used for redirections
// 	"enabled": false,		// enables the SIP agent: <true|false>
// 	"listen": "127.0.0.1:5060",	// address where to listen for SIP requests <x.y.z.y:1234>
// 	"listen_net": "udp",		// network to listen on <udp|tcp|tcp-tls>
// 	"sessions_conns": ["*internal"],
// 	"timezone": "",			// timezone of the events if not specified  <UTC|Local|$IANA_TZ_DB>
// 	"retransmission_timer": "1s",	// the duration to wait to receive an ACK before resending the reply
// 	"request_processors": []	// request processors to be applied to SIP messages
// },

// "janus_agent": {
// 	"enabled": false,				// enables the Janus agent: <true|false>
// 	"url": "/janus",
// 	"sessions_conns": ["*internal"],
// 	"janus_conns": [{				// instantiate connections to multiple Janus Servers
// 		"address": "127.0.0.1:8088",		// janus API address 
// 		"type": "*ws",				// type of the transport to interact via janus API
// 		"admin_address": "localhost:7188",	// janus admin address used to retrive more information for sessions and handles
// 		"admin_password": ""			// secret to pass restriction to communicate to the endpoint
// 	}],
// 	"request_processors": []			// request processors to be applied to Janus messages
// },

// "templates": {
// 	"*err": [
// 			{"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable",
// 				"value": "~*req.Session-Id", "mandatory": true},
// 			{"tag": "OriginHost", "path": "*rep.Origin-Host", "type": "*variable",
// 				"value": "~*vars.OriginHost", "mandatory": true},
// 			{"tag": "OriginRealm", "path": "*rep.Origin-Realm", "type": "*variable",
// 				"value": "~*vars.OriginRealm", "mandatory": true}
// 	],
// 	"*cca": [
// 			{"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable",
// 				"value": "~*req.Session-Id", "mandatory": true},
// 			{"tag": "ResultCode", "path": "*rep.Result-Code", "type": "*constant",
// 				"value": "2001"},
// 			{"tag": "OriginHost", "path": "*rep.Origin-Host", "type": "*variable",
// 				"value": "~*vars.OriginHost", "mandatory": true},
// 			{"tag": "OriginRealm", "path": "*rep.Origin-Realm", "type": "*variable",
// 				"value": "~*vars.OriginRealm", "mandatory": true},
// 			{"tag": "AuthApplicationId", "path": "*rep.Auth-Application-Id", "type": "*variable",
// 				 "value": "~*vars.*appid", "mandatory": true},
// 			{"tag": "CCRequestType", "path": "*rep.CC-Request-Type", "type": "*variable",
// 				"value": "~*req.CC-Request-Type", "mandatory": true},
// 			{"tag": "CCRequestNumber", "path": "*rep.CC-Request-Number", "type": "*variable",
// 				"value": "~*req.CC-Request-Number", "mandatory": true}
// 	],
// 	"*asr": [
// 			{"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable",
// 				"value": "~*req.Session-Id", "mandatory": true},
// 			{"tag": "OriginHost", "path": "*diamreq.Origin-Host", "type": "*variable",
// 				"value": "~*req.Destination-Host", "mandatory": true},
// 			{"tag": "OriginRealm", "path": "*diamreq.Origin-Realm", "type": "*variable",
// 				"value": "~*req.Destination-Realm", "mandatory": true},
// 			{"tag": "DestinationRealm", "path": "*diamreq.Destination-Realm", "type": "*variable",
// 				"value": "~*req.Origin-Realm", "mandatory": true},
// 			{"tag": "DestinationHost", "path": "*diamreq.Destination-Host", "type": "*variable",
// 				"value": "~*req.Origin-Host", "mandatory": true},
// 			{"tag": "AuthApplicationId", "path": "*diamreq.Auth-Application-Id", "type": "*variable",
// 				 "value": "~*vars.*appid", "mandatory": true}
// 	],
// 	"*rar": [
// 		{"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable",
// 			"value": "~*req.Session-Id", "mandatory": true},
// 		{"tag": "OriginHost", "path": "*diamreq.Origin-Host", "type": "*variable",
// 			"value": "~*req.Destination-Host", "mandatory": true},
// 		{"tag": "OriginRealm", "path": "*diamreq.Origin-Realm", "type": "*variable",
// 			"value": "~*req.Destination-Realm", "mandatory": true},
// 		{"tag": "DestinationRealm", "path": "*diamreq.Destination-Realm", "type": "*variable",
// 			"value": "~*req.Origin-Realm", "mandatory": true},
// 		{"tag": "DestinationHost", "path": "*diamreq.Destination-Host", "type": "*variable",
// 			"value": "~*req.Origin-Host", "mandatory": true},
// 		{"tag": "AuthApplicationId", "path": "*diamreq.Auth-Application-Id", "type": "*variable",
// 			 "value": "~*vars.*appid", "mandatory": true},
// 		{"tag": "ReAuthRequestType", "path": "*diamreq.Re-Auth-Request-Type", "type": "*constant",
// 			"value": "0"}
// 	],
// 	"*errSip": [
// 			{"tag": "Request", "path": "*rep.Request", "type": "*constant",
// 				"value": "SIP/2.0 500 Internal Server Error", "mandatory": true}
// 	],
// 	"*cdrLog": [ // cdrLog template is used in ActionS to build the event that is send to CDRs in case of *cdrLog actionType
// 		{"tag": "ToR", "path": "*cdr.ToR", "type": "*variable",
// 			"value": "~*req.BalanceType", "mandatory": true},
// 		{"tag": "OriginHost", "path": "*cdr.OriginHost", "type": "*constant",
// 			"value": "127.0.0.1", "mandatory": true},
// 		{"tag": "RequestType", "path": "*cdr.RequestType", "type": "*constant",
// 			"value": "*none", "mandatory": true},
// 		{"tag": "Tenant", "path": "*cdr.Tenant", "type": "*variable",
// 			"value": "~*req.Tenant", "mandatory": true},
// 		{"tag": "Account", "path": "*cdr.Account", "type": "*variable",
// 			"value": "~*req.Account", "mandatory": true},
// 		{"tag": "Subject", "path": "*cdr.Subject", "type": "*variable",
// 			"value": "~*req.Account", "mandatory": true},
// 		{"tag": "Cost", "path": "*cdr.Cost", "type": "*variable",
// 			"value": "~*req.Cost", "mandatory": true},
// 		{"tag": "Source", "path": "*cdr.Source", "type": "*constant",
// 			"value": "*cdrLog", "mandatory": true},
// 		{"tag": "Usage", "path": "*cdr.Usage", "type": "*constant",
// 			"value": "1", "mandatory": true},
// 		{"tag": "RunID", "path": "*cdr.RunID", "type": "*variable",
// 			"value": "~*req.ActionType", "mandatory": true},
// 		{"tag": "SetupTime", "path": "*cdr.SetupTime", "type": "*constant",
// 			"value": "*now", "mandatory": true},
// 		{"tag": "AnswerTime", "path": "*cdr.AnswerTime", "type": "*constant",
// 			"value": "*now", "mandatory": true},
// 		{"tag": "PreRated", "path": "*cdr.PreRated", "type": "*constant",
// 			"value": "true", "mandatory": true}
// 	]
// },


// "configs": {
// 	"enabled": false,
// 	"url": "/configs/",				// configs url
// 	"root_dir": "/var/spool/cgrates/configs"	// root directory in case of calling /configs request
// },


// "apiban": {
// 	"enabled": false,
// 	"keys": []
// },

// "sentrypeer": {
// 	"client_id":"",
// 	"client_secret":"",
// 	"token_url":"https://authz.sentrypeer.com/oauth/token",
// 	"ips_url":"https://sentrypeer.com/api/ip-addresses",
// 	"numbers_url":"https://sentrypeer.com/api/phone-numbers",
// 	"audience":"https://sentrypeer.com/api",
// 	"grant_type":"client_credentials"
// },


// "actions": {
// 	"enabled": false,		// starts attribute service: <true|false>
// 	"cdrs_conns": [],		// connections to CDRs for CDR posting <""|*internal|$rpc_conns_id>
// 	"ees_conns": [],		// connections to Ees for exporting event <""|*internal|$rpc_conns_id>
// 	"thresholds_conns": [],		// connections to ThresholdS for *reset_threshold action <""|*internal|$rpc_conns_id>
// 	"stats_conns": [],		// connections to StatS for *reset_stat_queue action: <""|*internal|$rpc_conns_id>
// 	"accounts_conns": [],		// connections to AccountS for *topup/*topup_reset action: <""|*internal|$rpc_conns_id>
// 	"tenants":[],			// List of tenants to operate on
// 	"indexed_selects": true,	// enable profile matching exclusively on indexes
// 	//"string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"nested_fields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"dynaprepaid_actionprofile": [],
// 	"opts":{
// 		// "*profileIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": [],
// 		// 	}
// 		// ],
// 		// "*profileIgnoreFilters": [	// ignore the filters for actionProfileIDs
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": false
// 		// 	}
// 		// ],
// 		// "*posterAttempts": [		// poster attempts for HTTPPost action type	
// 		//     {
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": 1
// 		// 	}
// 		// ]
// 	}
// },


// "accounts": {
// 	"enabled": false,		// starts service: <true|false>
// 	"indexed_selects": true,	// enable profile matching exclusively on indexes
// 	"attributes_conns": [],		// connections to AttributeS for account/balance updates, empty to disable attributes functionality: <""|*internal|$rpc_conns_id>
// 	"rates_conns": [],		// connections to RatesS for account/balance updates, empty to disable rates functionality: <""|*internal|$rpc_conns_id>
// 	"thresholds_conns": [],		// connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
// 	//"string_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"prefix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"suffix_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"exists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"notexists_indexed_fields": [],	// query indexes based on these fields for faster processing
// 	"nested_fields": false,		// determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// 	"max_iterations": 1000,		// maximum number of iterations
// 	"max_usage": "72h",		// maximum time of usage
// 	"opts":{
// 		// "*profileIDs": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": []
// 		// 	}
// 		// ],
// 		// "*usage": [
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "72h"
// 		// 	}
// 		// ],
// 		// "*profileIgnoreFilters": [	// ignore the filters for accountIDs
// 		// 	{
// 		// 		"Tenant": "*any",
// 		// 		"FilterIDs": [],
// 		// 		"Value": "false"
// 		// 	}
// 		// ]
// 	}
// },


// "config_db": {					// database used to store runtime data (eg: accounts)
// 	"db_type": "*internal",			// db type: <*internal|*redis|*mongo>
// 	"db_host": "",				// db host address
// 	"db_port": 0,	 			// db port to reach the database
// 	"db_name": "",	 			// db database name to connect to
// 	"db_user": "",		 		// username to use when connecting to db
// 	"db_password": "", 			// password to use when connecting to db
// 	"opts":{
// 		"internalDBDumpPath": "/var/lib/cgrates/internal_db/configdb",		// the path where configdb will be dumped
// 		"internalDBBackupPath": "/var/lib/cgrates/internal_db/backup/configdb", // default path taken by ConfigSv1.BackupConfigDB when "BackupFolderPath" is not provided
// 		"internalDBStartTimeout": "5m",		// the amount of wait time until timeout for DB startup
// 		"internalDBDumpInterval": "0s",		// dump configdb regularly to a file: "0" - disables it; "-1" - dump on each set/remove; <""|$dur>
// 		"internalDBRewriteInterval": "0s",	// rewrite dump files regularly: "0" - disables it; "-1" - rewrite on engine start; "-2" - rewrite on engine shutdown; <""|$dur>
// 		"internalDBFileSizeLimit": "1GB",	// maximum size that can be written in a singular dump file 
// 		"redisMaxConns": 10,			// the connection pool size
// 		"redisConnectAttempts": 20,		// the maximum amount of dial attempts
// 		"redisSentinel": "",			// the name of sentinel when used
// 		"redisCluster": false,			// if enabled the configdb will try to connect to the redis cluster
// 		"redisClusterSync": "5s",		// the sync interval for the redis cluster
// 		"redisClusterOndownDelay": "0",		// the delay before executing the commands if the redis cluster is in the CLUSTERDOWN state
// 		"redisConnectTimeout": "0",		// the amount of wait time until timeout for a connection attempt
// 		"redisReadTimeout": "0",		// the amount of wait time until timeout for reading operations
// 		"redisWriteTimeout": "0",		// the amount of wait time until timeout for writing operations
// 		"redisPoolPipelineWindow": "150µs",	// duration after which internal pipelines are flushed (0 disables implicit pipelining)
// 		"redisPoolPipelineLimit": 0,        	// maximum number of commands that can be pipelined before flushing (0 means no limit)
// 		"redisTLS": false,			// if true it will use a tls connection and use the redisClientCertificate, redisClientKey and redisCACertificate for tls connection
// 		"redisClientCertificate":"",		// path to client certificate
// 		"redisClientKey":"",			// path to client key
// 		"redisCACertificate":"",		// path to CA certificate (populate for self-signed certificate otherwise let it empty)
// 		"mongoQueryTimeout":"10s",		// timeout for query when mongo is used
// 		"mongoConnScheme": "mongodb"		// scheme for MongoDB connection <mongodb|mongodb+srv>
// 	}
// },

// "tpes": {
//     "enabled": false
// }

}
