/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>
*/

package config

const CGRATES_CFG_JSON = `
{

// 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
	"logger":"*syslog",										// controls the destination of logs <*syslog|*stdout>
	"log_level": 6,											// control the level of messages logged (0-emerg to 7-debug)
	"http_skip_tls_verify": false,							// if enabled HttpClient will accept any TLS certificate
	"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
	"poster_attempts": 3,									// number of attempts before considering post request failed (eg: *call_url, CDR exports)
	"failed_posts_dir": "/var/spool/cgrates/failed_posts",	// directory path where we store failed requests
	"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
	"connect_attempts": 5,									// initial server connect attempts
	"reconnects": -1,										// number of retries in case of connection lost
	"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
	"rsr_separator": ";",									// separator used within RSR fields
},


"data_db": {								// database used to store runtime data (eg: accounts)
	"db_type": "*redis",					// data_db type: <*redis|*mongo>
	"db_host": "127.0.0.1",					// data_db host address
	"db_port": 6379, 						// data_db port to reach the database
	"db_name": "10", 						// data_db database name to connect to
	"db_user": "cgrates", 					// username to use when connecting to data_db
	"db_password": "", 						// password to use when connecting to data_db
	"redis_sentinel":"",					// the name of sentinel when used
	"query_timeout":"10s",
},


"stor_db": {								// database used to store offline tariff plans and CDRs
	"db_type": "*mysql",					// stor database type to use: <*mongo|*mysql|*postgres|*internal>
	"db_host": "127.0.0.1",					// the host to connect to
	"db_port": 3306,						// the port to reach the stor_db
	"db_name": "cgrates",					// stor database name
	"db_user": "cgrates",					// username to use when connecting to stor_db
	"db_password": "",						// password to use when connecting to stor_db
	"max_open_conns": 100,					// maximum database connections opened, not applying for mongo
	"max_idle_conns": 10,					// maximum database connections idle, not applying for mongo
	"conn_max_lifetime": 0, 				// maximum amount of time in seconds a connection may be reused (0 for unlimited), not applying for mongo
	"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
	"query_timeout":"10s",
},


"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)
	"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)
	"use_basic_auth": false,					// use basic authentication
	"auth_users": {},							// basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "})
},


"scheduler": {
	"enabled": false,				// start Scheduler service: <true|false>
	"cdrs_conns": [],				// connections to CDRs for *cdrlog actions <*internal|x.y.z.y:1234>
},


"cache":{
	"destinations": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},			// destination caching
	"reverse_destinations": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},	// reverse destinations index caching
	"rating_plans": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},			// rating plans caching
	"rating_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// rating profiles caching
	"actions": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// actions caching
	"action_plans": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},			// action plans caching
	"account_action_plans": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},	// account action plans index caching
	"action_triggers": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// action triggers caching
	"shared_groups": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},			// shared groups caching
	"timings": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// timings caching
	"resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// control resource profiles caching
	"resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// control resources caching
	"event_resources": {"limit": -1, "ttl": "", "static_ttl": false},							// matching resources to events
	"statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// statqueue profiles
	"statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// statqueues with metrics
	"threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// control threshold profiles caching
	"thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// control thresholds caching
	"filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// control filters caching
	"supplier_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// control supplier profile caching
	"attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// control attribute profile caching
	"charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// control charger profile caching
	"dispatcher_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},	// control dispatcher profile caching
	"dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},		// control dispatcher hosts caching
	"resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 					// control resource filter indexes caching
	"stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 						// control stat filter indexes caching
	"threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 				// control threshold filter indexes caching
	"supplier_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 					// control supplier filter indexes caching
	"attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 				// control attribute filter indexes caching
	"charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 					// control charger filter indexes caching
	"dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false}, 				// control dispatcher filter indexes caching
	"dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false}, 						// control dispatcher routes caching
	"diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false},						// diameter messages caching
	"rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false},							// RPC responses caching
	"closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false},						// closed sessions cached for CDRs
	"load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},				// control the load_ids for items
},


"filters": {								// Filters configuration (*new)
	"stats_conns": [],						// connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
	"resources_conns": [],					// connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
	"rals_conns": [],						// connections to RALs for <*accounts> filters, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
},


"rals": {
	"enabled": false,						// enable Rating/Accounting service: <true|false>
	"thresholds_conns": [],					// connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|x.y.z.y:1234>
	"stats_conns": [],						// connections to StatS for account/balance updates, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
	"rp_subject_prefix_matching": false,	// enables prefix matching for the rating profile subject
	"remove_expired":true,					// enables automatic removal of expired balances
	"max_computed_usage": {					// do not compute usage higher than this, prevents memory overload
		"*any": "189h",
		"*voice": "72h",
		"*data": "107374182400",
		"*sms": "10000"
	},
	"max_increments": 1000000,
	"balance_rating_subject":{				// default rating subject in case that balance rating subject is empty
		"*any": "*zero1ns",
		"*voice": "*zero1s",
		"*data": "*zero1ns",
		"*sms": "*zero1ns",
		"*monetary":"*zero1ns",
		"*generic":"*zero1ns",
	},
},


"cdrs": {									// CDRs config
	"enabled": false,						// start the CDR Server:  <true|false>
	"extra_fields": [],						// extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON)
	"store_cdrs": true,						// store cdrs in StorDB
	"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|x.y.z.y:1234>
		{"address": "*internal"}
	],
	"rals_conns": [							// connections to RALs for cost calculation: <""|*internal|x.y.z.y:1234>
		{"address": "*internal"}
	],
	"attributes_conns": [],					// connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|x.y.z.y:1234>
	"thresholds_conns": [],					// connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|x.y.z.y:1234>
	"stats_conns": [],						// connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
	"online_cdr_exports":[],				// list of CDRE profiles to use for real-time CDR exports
},


"cdre": {												// CDRe config
	"*default": {
		"export_format": "*file_csv",					// exported CDRs format <*file_csv|*file_fwv|*http_post|*http_json_cdr|*http_json_map|*amqp_json_cdr|*amqp_json_map|*sqs_json_map>
		"export_path": "/var/spool/cgrates/cdre",		// path where the exported CDRs will be placed
		"filters" :[],									// filters for this export
		"tenant": "",									// tenant used in filterS.Pass
		"synchronous": false,							// block processing until export has a result
		"attempts": 1,									// export attempts
		"field_separator": ",",							// used field separator in some export formats, eg: *file_csv
		"attributes_context": "",						// attributes context - empty disables attributes processing
		"header_fields": [],							// template of the exported header fields
		"content_fields": [								// template of the exported content fields
			{"tag": "CGRID", "type": "*composed", "value": "~CGRID"},
			{"tag":"RunID", "type": "*composed", "value": "~RunID"},
			{"tag":"TOR", "type": "*composed", "value": "~ToR"},
			{"tag":"OriginID", "type": "*composed", "value": "~OriginID"},
			{"tag":"RequestType", "type": "*composed", "value": "~RequestType"},
			{"tag":"Tenant", "type": "*composed", "value": "~Tenant"},
			{"tag":"Category", "type": "*composed", "value": "~Category"},
			{"tag":"Account", "type": "*composed", "value": "~Account"},
			{"tag":"Subject", "type": "*composed", "value": "~Subject"},
			{"tag":"Destination", "type": "*composed", "value": "~Destination"},
			{"tag":"SetupTime", "type": "*composed", "value": "~SetupTime", "layout": "2006-01-02T15:04:05Z07:00"},
			{"tag":"AnswerTime", "type": "*composed", "value": "~AnswerTime", "layout": "2006-01-02T15:04:05Z07:00"},
			{"tag":"Usage", "type": "*composed", "value": "~Usage"},
			{"tag":"Cost", "type": "*composed", "value": "~Cost", "rounding_decimals": 4},
		],
		"trailer_fields": [],							// template of the exported trailer fields
	},
},


"cdrc": [												// CDRc config
	{
		"id": "*default",								// identifier of the CDRC runner
		"enabled": false,								// enable CDR client functionality
		"dry_run": false,								// do not send the CDRs to CDRS, just parse them
		"cdrs_conns": [									// connections to CDRs. <*internal|x.y.z.y:1234>
			{"address": "*internal"}
		],
		"cdr_format": "*file_csv",						// CDR file format <*file_csv|*freeswitch_csv|*file_fwv|*opensips_flatstore|*partial_csv|*file_xml>
		"field_separator": ",",							// separator used in case of csv files
		"timezone": "",									// timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
		"run_delay": 0,									// sleep interval in seconds between consecutive runs, 0 to use automation via inotify
		"max_open_files": 1024,							// maximum simultaneous files to process, 0 for unlimited
		"cdr_in_path": "/var/spool/cgrates/cdrc/in",	// absolute path towards the directory where the CDRs are stored
		"cdr_out_path": "/var/spool/cgrates/cdrc/out",	// absolute path towards the directory where processed CDRs will be moved
		"failed_calls_prefix": "missed_calls",			// used in case of flatstore CDRs to avoid searching for BYE records
		"cdr_root_path": "",							// path towards one CDR element in case of XML CDRs
		"cdr_source_id": "cdrc_csv",					// free form field, tag identifying the source of the CDRs within CDRS database
		"filters" :[],									// limit parsing based on the filters
		"tenant": "",									// tenant used by import
		"continue_on_success": false,					// continue to the next template if executed
		"partial_record_cache": "10s",					// duration to cache partial records when not pairing
		"partial_cache_expiry_action": "*dump_to_file",	// action taken when cache when records in cache are timed-out <*dump_to_file|*post_cdr>
		"header_fields": [],							// template of the import header fields
		"content_fields":[								// import content_fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value
			{"tag": "TOR", "field_id": "ToR", "type": "*composed", "value": "~2", "mandatory": true},
			{"tag": "OriginID", "field_id": "OriginID", "type": "*composed", "value": "~3", "mandatory": true},
			{"tag": "RequestType", "field_id": "RequestType", "type": "*composed", "value": "~4", "mandatory": true},
			{"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~6", "mandatory": true},
			{"tag": "Category", "field_id": "Category", "type": "*composed", "value": "~7", "mandatory": true},
			{"tag": "Account", "field_id": "Account", "type": "*composed", "value": "~8", "mandatory": true},
			{"tag": "Subject", "field_id": "Subject", "type": "*composed", "value": "~9", "mandatory": true},
			{"tag": "Destination", "field_id": "Destination", "type": "*composed", "value": "~10", "mandatory": true},
			{"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed", "value": "~11", "mandatory": true},
			{"tag": "AnswerTime", "field_id": "AnswerTime", "type": "*composed", "value": "~12", "mandatory": true},
			{"tag": "Usage", "field_id": "Usage", "type": "*composed", "value": "~13", "mandatory": true},
		],
		"trailer_fields": [],							// template of the import trailer fields
		"cache_dump_fields": [							// template used when dumping cached CDR, eg: partial CDRs
			{"tag": "CGRID", "type": "*composed", "value": "~CGRID"},
			{"tag": "RunID", "type": "*composed", "value": "~RunID"},
			{"tag": "TOR", "type": "*composed", "value": "~ToR"},
			{"tag": "OriginID", "type": "*composed", "value": "~OriginID"},
			{"tag": "RequestType", "type": "*composed", "value": "~RequestType"},
			{"tag": "Tenant", "type": "*composed", "value": "~Tenant"},
			{"tag": "Category", "type": "*composed", "value": "~Category"},
			{"tag": "Account", "type": "*composed", "value": "~Account"},
			{"tag": "Subject", "type": "*composed", "value": "~Subject"},
			{"tag": "Destination", "type": "*composed", "value": "~Destination"},
			{"tag": "SetupTime", "type": "*composed", "value": "~SetupTime", "layout": "2006-01-02T15:04:05Z07:00"},
			{"tag": "AnswerTime", "type": "*composed", "value": "~AnswerTime", "layout": "2006-01-02T15:04:05Z07:00"},
			{"tag": "Usage", "type": "*composed", "value": "~Usage"},
			{"tag": "Cost", "type": "*composed", "value": "~Cost"},
		],
	},
],


"ers": {									// EventReaderService
	"enabled": false,						// starts the EventReader service: <true|false>
	"sessions_conns": [						// connections to SessionS:  <*internal|127.0.0.1:2012>
		{"address": "*internal"}
	],
	"readers": [
		{
			"id": "*default",									// identifier of the EventReader profile
			"type": "*file_csv",								// reader type <*file_csv>
			"field_separator": ",",								// separator used in case of csv files
			"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/cdrc/in",		// read data from this path
			"processed_path": "/var/spool/cgrates/cdrc/out",	// move processed data here
			"xml_root_path": "",								// path towards one event in case of XML CDRs
			"source_id": "ers_csv",								// free form field, tag identifying the source of the CDRs within CDRS database
			"tenant": "",										// tenant used by import
			"timezone": "",										// timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
			"filters": [],										// limit parsing based on the filters
			"flags": [],										// flags to influence the event processing
			"header_fields": [],								// template of the import header fields
			"content_fields":[									// import content_fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value
				{"tag": "TOR", "field_id": "ToR", "type": "*composed", "value": "~*req.2", "mandatory": true},
				{"tag": "OriginID", "field_id": "OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
				{"tag": "RequestType", "field_id": "RequestType", "type": "*composed", "value": "~*req.4", "mandatory": true},
				{"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~*req.6", "mandatory": true},
				{"tag": "Category", "field_id": "Category", "type": "*composed", "value": "~*req.7", "mandatory": true},
				{"tag": "Account", "field_id": "Account", "type": "*composed", "value": "~*req.8", "mandatory": true},
				{"tag": "Subject", "field_id": "Subject", "type": "*composed", "value": "~*req.9", "mandatory": true},
				{"tag": "Destination", "field_id": "Destination", "type": "*composed", "value": "~*req.10", "mandatory": true},
				{"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed", "value": "~*req.11", "mandatory": true},
				{"tag": "AnswerTime", "field_id": "AnswerTime", "type": "*composed", "value": "~*req.12", "mandatory": true},
				{"tag": "Usage", "field_id": "Usage", "type": "*composed", "value": "~*req.13", "mandatory": true},
			],
			"trailer_fields": [],								// template of the import trailer fields
			"continue": false,									// continue to the next template if executed
		},
	],
},


"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
	"chargers_conns": [],					// connections to ChargerS for session forking <*internal|x.y.z.y:1234>
	"rals_conns": [],						// connections to RALs for rating/accounting <""|*internal|127.0.0.1:2013>
	"cdrs_conns": [],						// connections to CDRs for CDR posting <*internal|x.y.z.y:1234>
	"resources_conns": [],					// connections to ResourceS for resources monitoring <""|*internal|127.0.0.1:2013>
	"thresholds_conns": [],					// connections to ThresholdS for reporting session events <""|*internal|127.0.0.1:2013>
	"stats_conns": [],						// connections to StatS for reporting session events <""|*internal|127.0.0.1:2013>
	"suppliers_conns": [],					// connections to SupplierS for querying suppliers for event <""|*internal|127.0.0.1:2013>
	"attributes_conns": [],					// connections to AttributeS for altering event fields <""|*internal|127.0.0.1:2013>
	"session_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
	"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
	"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_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
},


"asterisk_agent": {
	"enabled": false,						// starts the Asterisk agent: <true|false>
	"sessions_conns": [						// connections to SessionS for session management and CDR posting: <*internal>
		{"address": "*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}
	],
},


"freeswitch_agent": {
	"enabled": false,						// starts the FreeSWITCH agent: <true|false>
	"sessions_conns": [						// connections to SessionS for session management and CDR posting: <*internal>
		{"address": "*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
	//"min_dur_low_balance": "5s",			// threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval)
	//"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
	"event_socket_conns":[					// instantiate connections to multiple FreeSWITCH servers
		{"address": "127.0.0.1:8021", "password": "ClueCon", "reconnects": 5,"alias":""}
	],
},


"kamailio_agent": {
	"enabled": false,						// starts Kamailio agent: <true|false>
	"sessions_conns": [						// connections to SessionS for session management and CDR posting: <*internal>
		{"address": "*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}
	],
},


"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": [											// connections to SessionS for session management and CDR posting
		{"address": "*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
	"concurrent_requests": -1,									// limit the number of active requests processed by the server <-1|0-n>
	"synced_conn_requests": false,								// process one request at the time per connection
	"asr_template": "",											// enable AbortSession message being sent to client on DisconnectSession
	"templates":{												// default message templates
		"*err": [
				{"tag": "SessionId", "field_id": "Session-Id", "type": "*composed",
					"value": "~*req.Session-Id", "mandatory": true},
				{"tag": "OriginHost", "field_id": "Origin-Host", "type": "*composed",
					"value": "~*vars.OriginHost", "mandatory": true},
				{"tag": "OriginRealm", "field_id": "Origin-Realm", "type": "*composed",
					"value": "~*vars.OriginRealm", "mandatory": true},
		],
		"*cca": [
				{"tag": "SessionId", "field_id": "Session-Id", "type": "*composed",
					"value": "~*req.Session-Id", "mandatory": true},
				{"tag": "ResultCode", "field_id": "Result-Code", "type": "*constant",
					"value": "2001"},
				{"tag": "OriginHost", "field_id": "Origin-Host", "type": "*composed",
					"value": "~*vars.OriginHost", "mandatory": true},
				{"tag": "OriginRealm", "field_id": "Origin-Realm", "type": "*composed",
					"value": "~*vars.OriginRealm", "mandatory": true},
				{"tag": "AuthApplicationId", "field_id": "Auth-Application-Id", "type": "*composed",
					 "value": "~*vars.*appid", "mandatory": true},
				{"tag": "CCRequestType", "field_id": "CC-Request-Type", "type": "*composed",
					"value": "~*req.CC-Request-Type", "mandatory": true},
				{"tag": "CCRequestNumber", "field_id": "CC-Request-Number", "type": "*composed",
					"value": "~*req.CC-Request-Number", "mandatory": true},
		],
		"*asr": [
				{"tag": "SessionId", "field_id": "Session-Id", "type": "*variable",
					"value": "~*req.Session-Id", "mandatory": true},
				{"tag": "OriginHost", "field_id": "Origin-Host", "type": "*variable",
					"value": "~*req.Destination-Host", "mandatory": true},
				{"tag": "OriginRealm", "field_id": "Origin-Realm", "type": "*variable",
					"value": "~*req.Destination-Realm", "mandatory": true},
				{"tag": "DestinationRealm", "field_id": "Destination-Realm", "type": "*variable",
					"value": "~*req.Origin-Realm", "mandatory": true},
				{"tag": "DestinationHost", "field_id": "Destination-Host", "type": "*variable",
					"value": "~*req.Origin-Host", "mandatory": true},
				{"tag": "AuthApplicationId", "field_id": "Auth-Application-Id", "type": "*variable",
					 "value": "~*vars.*appid", "mandatory": true},
				{"tag": "UserName", "field_id": "User-Name", "type": "*variable",
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "OriginStateID", "field_id": "Origin-State-Id", "type": "*constant",
					"value": "1"},
		]
	},
	"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": [											// connections to SessionS for session management and CDR posting
		{"address": "*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>
	"listen": "127.0.0.1:2053",									// address where to listen for DNS requests <x.y.z.y:1234>
	"listen_net": "udp",										// network to listen on <udp|tcp|tcp-tls>
	"sessions_conns": [											// connections to SessionS for session management and CDR posting
		{"address": "*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": {								// AttributeS config
	"enabled": false,						// starts attribute 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
	"process_runs": 1,						// number of run loops when processing event
},


"chargers": {								// ChargerS config
	"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
},


"resources": {								// ResourceS config
	"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|x.y.z.y:1234>
	"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
},


"stats": {									// StatS config
	"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|x.y.z.y:1234>
	"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
},


"thresholds": {								// 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
},


"suppliers": {								// SupplierS config
	"enabled": false,						// starts SupplierS 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
	"attributes_conns": [],					// connections to AttributeS for altering events before supplier queries: <""|*internal|127.0.0.1:2013>
	"resources_conns": [],					// connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|x.y.z.y:1234>
	"stats_conns": [],						// connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
	"default_ratio":1						// default ratio used in case of *load strategy
},


"loaders": [												// LoaderS config
	{
		"id": "*default",									// identifier of the Loader
		"enabled": false,									// starts as service: <true|false>.
		"tenant": "",										// tenant used in filterS.Pass
		"dry_run": false,									// do not send the CDRs to CDRS, just parse them
		"run_delay": 0,										// sleep interval in seconds between consecutive runs, 0 to use automation via inotify
		"lock_filename": ".cgr.lck",						// Filename containing concurrency lock in case of delayed processing
		"caches_conns": [									// connections to CacheS for data reload, empty for no reloads  <""|*internal|x.y.z.y:1234>
			{"address": "*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
		"data":[											// data profiles to load
			{
				"type": "*attributes",						// data source type
				"file_name": "Attributes.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "TenantID", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ProfileID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"},
					{"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*variable", "value": "~5"},
					{"tag": "FieldName", "field_id": "FieldName", "type": "*variable", "value": "~6"},
					{"tag": "Type", "field_id": "Type", "type": "*variable", "value": "~7"},
					{"tag": "Value", "field_id": "Value", "type": "*variable", "value": "~8"},
					{"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~10"},
				],
			},
			{
				"type": "*filters",						// data source type
				"file_name": "Filters.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "FilterType", "field_id": "FilterType", "type": "*variable", "value": "~2"},
					{"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*variable", "value": "~3"},
					{"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*variable", "value": "~4"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~5"},
				],
			},
			{
				"type": "*resources",						// data source type
				"file_name": "Resources.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"},
					{"tag": "TTL", "field_id": "UsageTTL", "type": "*variable", "value": "~4"},
					{"tag": "Limit", "field_id": "Limit", "type": "*variable", "value": "~5"},
					{"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*variable", "value": "~6"},
					{"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"},
					{"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~8"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~9"},
					{"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~10"},
				],
			},
			{
				"type": "*stats",						// data source type
				"file_name": "Stats.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"},
					{"tag": "QueueLength", "field_id": "QueueLength", "type": "*variable", "value": "~4"},
					{"tag": "TTL", "field_id": "TTL", "type": "*variable", "value": "~5"},
					{"tag": "MinItems", "field_id": "MinItems", "type": "*variable", "value": "~6"},
					{"tag": "MetricIDs", "field_id": "MetricIDs", "type": "*variable", "value": "~7"},
					{"tag": "MetricFilterIDs", "field_id": "MetricFilterIDs", "type": "*variable", "value": "~8"},
					{"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"},
					{"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~10"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~11"},
					{"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~12"},
				],
			},
			{
				"type": "*thresholds",						// data source type
				"file_name": "Thresholds.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"},
					{"tag": "MaxHits", "field_id": "MaxHits", "type": "*variable", "value": "~4"},
					{"tag": "MinHits", "field_id": "MinHits", "type": "*variable", "value": "~5"},
					{"tag": "MinSleep", "field_id": "MinSleep", "type": "*variable", "value": "~6"},
					{"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~8"},
					{"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*variable", "value": "~9"},
					{"tag": "Async", "field_id": "Async", "type": "*variable", "value": "~10"},
				],
			},
			{
				"type": "*suppliers",						// data source type
				"file_name": "Suppliers.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"},
					{"tag": "Sorting", "field_id": "Sorting", "type": "*variable", "value": "~4"},
					{"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*variable", "value": "~5"},
					{"tag": "SupplierID", "field_id": "SupplierID", "type": "*variable", "value": "~6"},
					{"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*variable", "value": "~7"},
					{"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*variable", "value": "~8"},
					{"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"},
					{"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*variable", "value": "~10"},
					{"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*variable", "value": "~11"},
					{"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*variable", "value": "~12"},
					{"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*variable", "value": "~13"},
					{"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*variable", "value": "~14"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~15"},
				],
			},
			{
				"type": "*chargers",						// data source type
				"file_name": "Chargers.csv",				// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"},
					{"tag": "RunID", "field_id": "RunID", "type": "*variable", "value": "~4"},
					{"tag": "AttributeIDs", "field_id": "AttributeIDs", "type": "*variable", "value": "~5"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~6"},
				],
			},
			{
				"type": "*dispatchers",						// data source type
				"file_name": "DispatcherProfiles.csv",		// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"},
					{"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"},
					{"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"},
					{"tag": "Strategy", "field_id": "Strategy", "type": "*variable", "value": "~5"},
					{"tag": "StrategyParameters", "field_id": "StrategyParameters", "type": "*variable", "value": "~6"},
					{"tag": "ConnID", "field_id": "ConnID", "type": "*variable", "value": "~7"},
					{"tag": "ConnFilterIDs", "field_id": "ConnFilterIDs", "type": "*variable", "value": "~8"},
					{"tag": "ConnWeight", "field_id": "ConnWeight", "type": "*variable", "value": "~9"},
					{"tag": "ConnBlocker", "field_id": "ConnBlocker", "type": "*variable", "value": "~10"},
					{"tag": "ConnParameters", "field_id": "ConnParameters", "type": "*variable", "value": "~11"},
					{"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~12"},
				],
			},
			{
				"type": "*dispatcher_hosts",						// data source type
				"file_name": "DispatcherHosts.csv",					// file name in the tp_in_dir
				"fields": [
					{"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
					{"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true},
					{"tag": "Address", "field_id": "Address", "type": "*variable", "value": "~2"},
					{"tag": "Transport", "field_id": "Transport", "type": "*variable", "value": "~3"},
					{"tag": "TLS", "field_id": "TLS", "type": "*variable", "value": "~4"},
				],
			},
		],
	},
],


"mailer": {
	"server": "localhost",								// the server to use when sending emails out
	"auth_user": "cgrates",								// authenticate to email server using this user
	"auth_password": "CGRateS.org",						// authenticate to email server with this password
	"from_address": "cgr-mailer@localhost.localdomain"	// from address used when sending emails out
},


"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": "~CGRID",			// template extracting client information out of StoredCdr; <RSRParsers>
	"customer_number": "~Subject",			// template extracting customer number out of StoredCdr; <RSRParsers>
	"orig_number":  "~Subject", 			// template extracting origination number out of StoredCdr; <RSRParsers>
	"term_number": "~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":[						// connections to CacheS for reloads
		{"address": "127.0.0.1:2012", "transport": "*json"}
	],
	"scheduler_conns": [					// connections to SchedulerS for reloads
		{"address": "127.0.0.1:2012", "transport": "*json"}
	],
},


"migrator": {
	"out_datadb_type": "redis",
	"out_datadb_host": "127.0.0.1",
	"out_datadb_port": "6379",
	"out_datadb_name": "10",
	"out_datadb_user": "cgrates",
	"out_datadb_password": "",
	"out_datadb_encoding" : "msgpack",
	"out_stordb_type": "mysql",
	"out_stordb_host": "127.0.0.1",
	"out_stordb_port": "3306",
	"out_stordb_name": "cgrates",
	"out_stordb_user": "cgrates",
	"out_stordb_password": "",
	"users_filters":[],
},


"dispatchers":{								// DispatcherS config
	"enabled": false,						// starts DispatcherS 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
	"attributes_conns": [],					// connections to AttributeS for API authorization, empty to disable auth functionality: <""|*internal|x.y.z.y:1234>
},


"analyzers":{								// AnalyzerS config
	"enabled":false							// starts AnalyzerS service: <true|false>.
},


"apier": {
	"caches_conns":[						// connections to CacheS for reloads
		{"address": "*internal"},
	],
	"scheduler_conns": [],					// connections to SchedulerS for reloads
	"attributes_conns": [],					// connections to AttributeS for CDRExporter
},

}`
