EventReaderService

268 views
Skip to first unread message

Miha Zoubek

unread,
Apr 14, 2020, 3:49:33 AM4/14/20
to CGRateS
Hello

I am now trying to migrate to latest cgrates version, so first time using ers.

I have configure cgrates.json file which is loaded with no errors. I have few question which I would like to clear:
- in old version there was filter like:  "cdr_filter": "5(20);19(0);20(11)", how should i use now filters:[], like  ["~*req.5:s/(20)"]?
- my file is csv and it has txt ext. I move file to folder (/var/spool/cgrates/cdrc/in) which is by default defined in cgrates.json but in logs I do not see that cgrates try to parse it (bellow is my config)


thank you

My config looks like:

root@debian:/var/spool/cgrates/cdrc# cat /etc/cgrates/cgrates.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 au                togenerated
//      "logger":"*syslog",                                                                             // controls the destination of logs <*syslog|*stdout>
        "log_level": 7,                                                                                 // 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": 15,                                                                        // 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: *http_post,                 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
//      "default_request_type": "*rated",                                               // default request type to consider when missing from requests: <""|*prepaid|*postpai                d|*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": "60s",                                                                 // 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
//      "max_parralel_conns": 100,                                                              // the maximum number of connection used by the *parallel strategy
},


 "rpc_conns": {
        "*localhost": {
                "conns": [{"address": "127.0.0.1:2012", "transport":"*json"}],
        },
 },                                                     // rpc connections definitions


 "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",
//      "remote_conns":[],
//      "replication_conns":[],
//      "items":{
//              "*accounts":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*reverse_destinations": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*destinations": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*rating_plans": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*rating_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*actions":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*action_plans": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*account_action_plans":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*action_triggers":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*shared_groups":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*timings": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*resource_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*resources":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*statqueue_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*statqueues": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*threshold_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*thresholds": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*filters": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*supplier_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*attribute_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*charger_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*dispatcher_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*dispatcher_hosts":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*filter_indexes" :{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*load_ids":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//      },
 },


   "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": "CGRateS.org",                                           // 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",
//      "sslmode":"disable",                                    // sslmode in case of *postgres
//      "items":{
//              "session_costs": {"limit": -1, "ttl": "", "static_ttl": false},
//              "cdrs": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_timings":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_destinations": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_rates": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_destination_rates": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_rating_plans":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_rating_profiles":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_shared_groups": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_actions":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_action_plans":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_action_triggers":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_account_actions": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_resources":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_stats":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_thresholds": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_filters": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_suppliers": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_attributes":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_chargers":{"limit": -1, "ttl": "", "static_ttl": false},
//              "versions": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_dispatcher_profiles":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_dispatcher_hosts":{"limit": -1, "ttl": "", "static_ttl": false},
//      },
 },


   "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-RequireAnyC                lientCert, 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": "cGFzc3dvc                mQ=", "username2": "cGFzc3dvcmQy "})
// },


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


// "caches":{
//      "*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
//      "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false},                                                                   // protects CDRs against double-charg                ing
//      "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},                          // control the load_ids for items
//      "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false},                                                      // RPC connections caching
// },


// "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>
//      "apiers_conns": [],                                             // connections to RALs for <*accounts> filters, empty to disable stats functionality: <""|*internal|x                .y.z.y:1234>
// },


 "rals": {
        "enabled": true,                                                // enable Rating/Accounting service: <true|false>
//      "thresholds_conns": [],                                 // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*int                ernal|x.y.z.y:1234>
        "stats_conns": ["*internal"],                                           // connections to StatS for account/balance updates, empty to disable stats functionality: <"                "|*internal|x.y.z.y:1234>
//      "caches_conns":["*internal"],                   // connections to CacheS for account/balance updates
//      "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",
//              "*mms": "10000"
//      },
//      "max_increments": 1000000,
//      "balance_rating_subject":{                              // default rating subject in case that balance rating subject is empty
//              "*any": "*zero1ns",
//              "*voice": "*zero1s"
//      },
 },


 "cdrs": {                                                                      // CDRs config
        "enabled": true,                                                // 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>
        "rals_conns": ["*internal"],                                            // connections to RALs for cost calculation: <""|*internal|x.y.z.y:1234>
//      "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": ["*internal"],                                           // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*interna                l|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_j                son_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
//              "fields": [                                                                             // template of the exported content fields
//                      {"path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
//                      {"path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
//                      {"path": "*exp.ToR", "type": "*variable", "value": "~*req.ToR"},
//                      {"path": "*exp.OriginID", "type": "*variable", "value": "~*req.OriginID"},
//                      {"path": "*exp.RequestType", "type": "*variable", "value": "~*req.RequestType"},
//                      {"path": "*exp.Tenant", "type": "*variable", "value": "~*req.Tenant"},
//                      {"path": "*exp.Category", "type": "*variable", "value": "~*req.Category"},
//                      {"path": "*exp.Account", "type": "*variable", "value": "~*req.Account"},
//                      {"path": "*exp.Subject", "type": "*variable", "value": "~*req.Subject"},
//                      {"path": "*exp.Destination", "type": "*variable", "value": "~*req.Destination"},
//                      {"path": "*exp.SetupTime", "type": "*variable", "value": "~*req.SetupTime", "layout": "2006-01-02T15:04:05Z07:00"},
//                      {"path": "*exp.AnswerTime", "type": "*variable", "value": "~*req.AnswerTime", "layout": "2006-01-02T15:04:05Z07:00"},
//                      {"path": "*exp.Usage", "type": "*variable", "value": "~*req.Usage"},
//                      {"path": "*exp.Cost", "type": "*variable", "value": "~*req.Cost", "rounding_decimals": 4},
//              ],
//      },
// },


 "ers": {                                                                       // EventReaderService
        "enabled": true,                                                // starts the EventReader service: <true|false>
        "sessions_conns":["*internal"],                 // RPC Connections IDs
        "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
//                      "tenant": "",                                                                           // tenant used by import
//                      "timezone": "",                                                                         // timezone for timestamps where not specified <""|UTC|Local|                $IANA_TZ_DB>
                        "filters": ["~*req.5:s/(20)"],                                                                          // limit parsing based on the filters
                        "flags": ["*cdrs", "*log"],                                                                             // flags to influence the event processing
                        "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},
                        ],
                        "cache_dump_fields": [],
                },
        ],
 },


 "sessions": {
        "enabled": true,                                                // 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": ["*internal"],                                            // connections to RALs for rating/accounting <""|*internal|127.0.0.1:2013>
        "cdrs_conns": ["*internal"],                                            // connections to CDRs for CDR posting <*internal|x.y.z.y:1234>
        "resources_conns": ["*internal"],                                       // 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>
//      "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
//      "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)
},


// "asterisk_agent": {
//      "enabled": false,                                               // starts the Asterisk agent: <true|false>
//      "sessions_conns": ["*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": ["*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
//      "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": ["*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": ["*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 Discon                nectSession
//      "rar_template": "",                                                                                     // template used to build the Re-Auth-Request
//      "forced_disconnect": "*none",                                                           // the request to send to diameter on DisconnectSession <*none|*asr|*rar>
//      "templates":{                                                                                           // default message 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"},
//              ]
//      },
//      "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 <*defa                ult|$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>
//      "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": ["*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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
//      "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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
// },


 "resources": {                                                         // ResourceS config
        "enabled": true,                                                // 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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
 },


 "stats": {                                                                     // StatS config
        "enabled": true,                                                // 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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
 },


// "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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
// },


// "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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
//      "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>
//      "rals_conns": [],                                               // connections to Rater for calculating cost, 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 autom                ation via inotify
//              "lock_filename": ".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
//              "data":[                                                                                        // data profiles to load
//                      {
//                              "type": "*attributes",                                          // data source type
//                              "file_name": "Attributes.csv",                          // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "TenantID", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Contexts", "path": "Contexts", "type": "*variable", "value": "~2"},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~3"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~4"},
//                                      {"tag": "AttributeFilterIDs", "path": "AttributeFilterIDs", "type": "*variable", "value": "~5"},
//                                      {"tag": "Path", "path": "Path", "type": "*variable", "value": "~6"},
//                                      {"tag": "Type", "path": "Type", "type": "*variable", "value": "~7"},
//                                      {"tag": "Value", "path": "Value", "type": "*variable", "value": "~8"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~9"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~10"},
//                              ],
//                      },
//                      {
//                              "type": "*filters",                                             // data source type
//                              "file_name": "Filters.csv",                             // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Type", "path": "Type", "type": "*variable", "value": "~2"},
//                                      {"tag": "Element", "path": "Element", "type": "*variable", "value": "~3"},
//                                      {"tag": "Values", "path": "Values", "type": "*variable", "value": "~4"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~5"},
//                              ],
//                      },
//                      {
//                              "type": "*resources",                                           // data source type
//                              "file_name": "Resources.csv",                           // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "TTL", "path": "UsageTTL", "type": "*variable", "value": "~4"},
//                                      {"tag": "Limit", "path": "Limit", "type": "*variable", "value": "~5"},
//                                      {"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~6"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~7"},
//                                      {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~8"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~9"},
//                                      {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~10"},
//                              ],
//                      },
//                      {
//                              "type": "*stats",                                               // data source type
//                              "file_name": "Stats.csv",                               // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~4"},
//                                      {"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~5"},
//                                      {"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~6"},
//                                      {"tag": "MetricIDs", "path": "MetricIDs", "type": "*variable", "value": "~7"},
//                                      {"tag": "MetricFilterIDs", "path": "MetricFilterIDs", "type": "*variable", "value": "~8"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~9"},
//                                      {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~10"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~11"},
//                                      {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~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": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "MaxHits", "path": "MaxHits", "type": "*variable", "value": "~4"},
//                                      {"tag": "MinHits", "path": "MinHits", "type": "*variable", "value": "~5"},
//                                      {"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~6"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~7"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~8"},
//                                      {"tag": "ActionIDs", "path": "ActionIDs", "type": "*variable", "value": "~9"},
//                                      {"tag": "Async", "path": "Async", "type": "*variable", "value": "~10"},
//                              ],
//                      },
//                      {
//                              "type": "*suppliers",                                           // data source type
//                              "file_name": "Suppliers.csv",                           // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~4"},
//                                      {"tag": "SortingParamameters", "path": "SortingParamameters", "type": "*variable", "value": "~5"},
//                                      {"tag": "SupplierID", "path": "SupplierID", "type": "*variable", "value": "~6"},
//                                      {"tag": "SupplierFilterIDs", "path": "SupplierFilterIDs", "type": "*variable", "value": "~7"},
//                                      {"tag": "SupplierAccountIDs", "path": "SupplierAccountIDs", "type": "*variable", "value": "~8"},
//                                      {"tag": "SupplierRatingPlanIDs", "path": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"},
//                                      {"tag": "SupplierResourceIDs", "path": "SupplierResourceIDs", "type": "*variable", "value": "~10"},
//                                      {"tag": "SupplierStatIDs", "path": "SupplierStatIDs", "type": "*variable", "value": "~11"},
//                                      {"tag": "SupplierWeight", "path": "SupplierWeight", "type": "*variable", "value": "~12"},
//                                      {"tag": "SupplierBlocker", "path": "SupplierBlocker", "type": "*variable", "value": "~13"},
//                                      {"tag": "SupplierParameters", "path": "SupplierParameters", "type": "*variable", "value": "~14"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~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": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~4"},
//                                      {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~5"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~6"},
//                              ],
//                      },
//                      {
//                              "type": "*dispatchers",                                         // data source type
//                              "file_name": "DispatcherProfiles.csv",          // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Contexts", "path": "Contexts", "type": "*variable", "value": "~2"},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~3"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~4"},
//                                      {"tag": "Strategy", "path": "Strategy", "type": "*variable", "value": "~5"},
//                                      {"tag": "StrategyParameters", "path": "StrategyParameters", "type": "*variable", "value": "~6"},
//                                      {"tag": "ConnID", "path": "ConnID", "type": "*variable", "value": "~7"},
//                                      {"tag": "ConnFilterIDs", "path": "ConnFilterIDs", "type": "*variable", "value": "~8"},
//                                      {"tag": "ConnWeight", "path": "ConnWeight", "type": "*variable", "value": "~9"},
//                                      {"tag": "ConnBlocker", "path": "ConnBlocker", "type": "*variable", "value": "~10"},
//                                      {"tag": "ConnParameters", "path": "ConnParameters", "type": "*variable", "value": "~11"},
//                                      {"tag": "Weight", "path": "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", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Address", "path": "Address", "type": "*variable", "value": "~2"},
//                                      {"tag": "Transport", "path": "Transport", "type": "*variable", "value": "~3"},
//                                      {"tag": "TLS", "path": "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-m...@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 am                ounts in the response
//      "regulatory_code": "03",                                // provider type
//      "client_tracking": "~*req.CGRID",               // 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 Stored                Cdr; <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"],
//      "scheduler_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": {
//      "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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the firs                t level)
//      "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>.
// },


 "apiers": {
        "enabled": true,
//      "caches_conns":["*internal"],
//      "scheduler_conns": [],                                  // connections to SchedulerS for reloads
//      "attributes_conns": [],                                 // connections to AttributeS for CDRExporter
 }

}
root@debian:/var/spool/cgrates/cdrc#
root@debian:/var/spool/cgrates/cdrc#
root@debian:/var/spool/cgrates/cdrc#
root@debian:/var/spool/cgrates/cdrc#
root@debian:/var/spool/cgrates/cdrc# cat /etc/cgrates/cgrates.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": 7,                                                                                 // 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": 15,                                                                        // 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: *http_post, 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
//      "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": "60s",                                                                 // 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
//      "max_parralel_conns": 100,                                                              // the maximum number of connection used by the *parallel strategy
},


 "rpc_conns": {
        "*localhost": {
                "conns": [{"address": "127.0.0.1:2012", "transport":"*json"}],
        },
 },                                                     // rpc connections definitions


 "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",
//      "remote_conns":[],
//      "replication_conns":[],
//      "items":{
//              "*accounts":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*reverse_destinations": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*destinations": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*rating_plans": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*rating_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*actions":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*action_plans": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*account_action_plans":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*action_triggers":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*shared_groups":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*timings": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*resource_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*resources":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*statqueue_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*statqueues": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*threshold_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*thresholds": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*filters": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*supplier_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*attribute_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*charger_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*dispatcher_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*dispatcher_hosts":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*filter_indexes" :{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//              "*load_ids":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
//      },
 },


   "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": "CGRateS.org",                                           // 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",
//      "sslmode":"disable",                                    // sslmode in case of *postgres
//      "items":{
//              "session_costs": {"limit": -1, "ttl": "", "static_ttl": false},
//              "cdrs": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_timings":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_destinations": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_rates": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_destination_rates": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_rating_plans":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_rating_profiles":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_shared_groups": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_actions":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_action_plans":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_action_triggers":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_account_actions": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_resources":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_stats":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_thresholds": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_filters": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_suppliers": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_attributes":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_chargers":{"limit": -1, "ttl": "", "static_ttl": false},
//              "versions": {"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_dispatcher_profiles":{"limit": -1, "ttl": "", "static_ttl": false},
//              "tp_dispatcher_hosts":{"limit": -1, "ttl": "", "static_ttl": false},
//      },
 },


   "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 "})
// },


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


// "caches":{
//      "*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
//      "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false},                                                                   // protects CDRs against double-charging
//      "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false},                          // control the load_ids for items
//      "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false},                                                      // RPC connections caching
// },


// "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>
//      "apiers_conns": [],                                             // connections to RALs for <*accounts> filters, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
// },


 "rals": {
        "enabled": true,                                                // 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": ["*internal"],                                           // connections to StatS for account/balance updates, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
//      "caches_conns":["*internal"],                   // connections to CacheS for account/balance updates
//      "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",
//              "*mms": "10000"
//      },
//      "max_increments": 1000000,
//      "balance_rating_subject":{                              // default rating subject in case that balance rating subject is empty
//              "*any": "*zero1ns",
//              "*voice": "*zero1s"
//      },
 },


 "cdrs": {                                                                      // CDRs config
        "enabled": true,                                                // 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>
        "rals_conns": ["*internal"],                                            // connections to RALs for cost calculation: <""|*internal|x.y.z.y:1234>
//      "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": ["*internal"],                                           // 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
//              "fields": [                                                                             // template of the exported content fields
//                      {"path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
//                      {"path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
//                      {"path": "*exp.ToR", "type": "*variable", "value": "~*req.ToR"},
//                      {"path": "*exp.OriginID", "type": "*variable", "value": "~*req.OriginID"},
//                      {"path": "*exp.RequestType", "type": "*variable", "value": "~*req.RequestType"},
//                      {"path": "*exp.Tenant", "type": "*variable", "value": "~*req.Tenant"},
//                      {"path": "*exp.Category", "type": "*variable", "value": "~*req.Category"},
//                      {"path": "*exp.Account", "type": "*variable", "value": "~*req.Account"},
//                      {"path": "*exp.Subject", "type": "*variable", "value": "~*req.Subject"},
//                      {"path": "*exp.Destination", "type": "*variable", "value": "~*req.Destination"},
//                      {"path": "*exp.SetupTime", "type": "*variable", "value": "~*req.SetupTime", "layout": "2006-01-02T15:04:05Z07:00"},
//                      {"path": "*exp.AnswerTime", "type": "*variable", "value": "~*req.AnswerTime", "layout": "2006-01-02T15:04:05Z07:00"},
//                      {"path": "*exp.Usage", "type": "*variable", "value": "~*req.Usage"},
//                      {"path": "*exp.Cost", "type": "*variable", "value": "~*req.Cost", "rounding_decimals": 4},
//              ],
//      },
// },


 "ers": {                                                                       // EventReaderService
        "enabled": true,                                                // starts the EventReader service: <true|false>
        "sessions_conns":["*internal"],                 // RPC Connections IDs
        "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
//                      "tenant": "",                                                                           // tenant used by import
//                      "timezone": "",                                                                         // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
                        "filters": ["~*req.5:s/(20)"],                                                                          // limit parsing based on the filters
                        "flags": ["*cdrs", "*log"],                                                                             // flags to influence the event processing
                        "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},
                        ],
                        "cache_dump_fields": [],
                },
        ],
 },


 "sessions": {
        "enabled": true,                                                // 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": ["*internal"],                                            // connections to RALs for rating/accounting <""|*internal|127.0.0.1:2013>
        "cdrs_conns": ["*internal"],                                            // connections to CDRs for CDR posting <*internal|x.y.z.y:1234>
        "resources_conns": ["*internal"],                                       // 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>
//      "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
//      "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)
},


// "asterisk_agent": {
//      "enabled": false,                                               // starts the Asterisk agent: <true|false>
//      "sessions_conns": ["*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": ["*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
//      "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": ["*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": ["*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
//      "rar_template": "",                                                                                     // template used to build the Re-Auth-Request
//      "forced_disconnect": "*none",                                                           // the request to send to diameter on DisconnectSession <*none|*asr|*rar>
//      "templates":{                                                                                           // default message 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"},
//              ]
//      },
//      "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>
//      "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": ["*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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
//      "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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// },


 "resources": {                                                         // ResourceS config
        "enabled": true,                                                // 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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
 },


 "stats": {                                                                     // StatS config
        "enabled": true,                                                // 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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
 },


// "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
//      "nested_fields": false,                                 // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
// },


// "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
//      "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 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>
//      "rals_conns": [],                                               // connections to Rater for calculating cost, 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": ["*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", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Contexts", "path": "Contexts", "type": "*variable", "value": "~2"},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~3"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~4"},
//                                      {"tag": "AttributeFilterIDs", "path": "AttributeFilterIDs", "type": "*variable", "value": "~5"},
//                                      {"tag": "Path", "path": "Path", "type": "*variable", "value": "~6"},
//                                      {"tag": "Type", "path": "Type", "type": "*variable", "value": "~7"},
//                                      {"tag": "Value", "path": "Value", "type": "*variable", "value": "~8"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~9"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~10"},
//                              ],
//                      },
//                      {
//                              "type": "*filters",                                             // data source type
//                              "file_name": "Filters.csv",                             // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Type", "path": "Type", "type": "*variable", "value": "~2"},
//                                      {"tag": "Element", "path": "Element", "type": "*variable", "value": "~3"},
//                                      {"tag": "Values", "path": "Values", "type": "*variable", "value": "~4"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~5"},
//                              ],
//                      },
//                      {
//                              "type": "*resources",                                           // data source type
//                              "file_name": "Resources.csv",                           // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "TTL", "path": "UsageTTL", "type": "*variable", "value": "~4"},
//                                      {"tag": "Limit", "path": "Limit", "type": "*variable", "value": "~5"},
//                                      {"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~6"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~7"},
//                                      {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~8"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~9"},
//                                      {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~10"},
//                              ],
//                      },
//                      {
//                              "type": "*stats",                                               // data source type
//                              "file_name": "Stats.csv",                               // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~4"},
//                                      {"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~5"},
//                                      {"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~6"},
//                                      {"tag": "MetricIDs", "path": "MetricIDs", "type": "*variable", "value": "~7"},
//                                      {"tag": "MetricFilterIDs", "path": "MetricFilterIDs", "type": "*variable", "value": "~8"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~9"},
//                                      {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~10"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~11"},
//                                      {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~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": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "MaxHits", "path": "MaxHits", "type": "*variable", "value": "~4"},
//                                      {"tag": "MinHits", "path": "MinHits", "type": "*variable", "value": "~5"},
//                                      {"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~6"},
//                                      {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~7"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~8"},
//                                      {"tag": "ActionIDs", "path": "ActionIDs", "type": "*variable", "value": "~9"},
//                                      {"tag": "Async", "path": "Async", "type": "*variable", "value": "~10"},
//                              ],
//                      },
//                      {
//                              "type": "*suppliers",                                           // data source type
//                              "file_name": "Suppliers.csv",                           // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~4"},
//                                      {"tag": "SortingParamameters", "path": "SortingParamameters", "type": "*variable", "value": "~5"},
//                                      {"tag": "SupplierID", "path": "SupplierID", "type": "*variable", "value": "~6"},
//                                      {"tag": "SupplierFilterIDs", "path": "SupplierFilterIDs", "type": "*variable", "value": "~7"},
//                                      {"tag": "SupplierAccountIDs", "path": "SupplierAccountIDs", "type": "*variable", "value": "~8"},
//                                      {"tag": "SupplierRatingPlanIDs", "path": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"},
//                                      {"tag": "SupplierResourceIDs", "path": "SupplierResourceIDs", "type": "*variable", "value": "~10"},
//                                      {"tag": "SupplierStatIDs", "path": "SupplierStatIDs", "type": "*variable", "value": "~11"},
//                                      {"tag": "SupplierWeight", "path": "SupplierWeight", "type": "*variable", "value": "~12"},
//                                      {"tag": "SupplierBlocker", "path": "SupplierBlocker", "type": "*variable", "value": "~13"},
//                                      {"tag": "SupplierParameters", "path": "SupplierParameters", "type": "*variable", "value": "~14"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~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": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
//                                      {"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~4"},
//                                      {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~5"},
//                                      {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~6"},
//                              ],
//                      },
//                      {
//                              "type": "*dispatchers",                                         // data source type
//                              "file_name": "DispatcherProfiles.csv",          // file name in the tp_in_dir
//                              "fields": [
//                                      {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Contexts", "path": "Contexts", "type": "*variable", "value": "~2"},
//                                      {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~3"},
//                                      {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~4"},
//                                      {"tag": "Strategy", "path": "Strategy", "type": "*variable", "value": "~5"},
//                                      {"tag": "StrategyParameters", "path": "StrategyParameters", "type": "*variable", "value": "~6"},
//                                      {"tag": "ConnID", "path": "ConnID", "type": "*variable", "value": "~7"},
//                                      {"tag": "ConnFilterIDs", "path": "ConnFilterIDs", "type": "*variable", "value": "~8"},
//                                      {"tag": "ConnWeight", "path": "ConnWeight", "type": "*variable", "value": "~9"},
//                                      {"tag": "ConnBlocker", "path": "ConnBlocker", "type": "*variable", "value": "~10"},
//                                      {"tag": "ConnParameters", "path": "ConnParameters", "type": "*variable", "value": "~11"},
//                                      {"tag": "Weight", "path": "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", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
//                                      {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
//                                      {"tag": "Address", "path": "Address", "type": "*variable", "value": "~2"},
//                                      {"tag": "Transport", "path": "Transport", "type": "*variable", "value": "~3"},
//                                      {"tag": "TLS", "path": "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-m...@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": "~*req.CGRID",               // 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"],
//      "scheduler_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": {
//      "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
//      "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 API authorization, empty to disable auth functionality: <""|*internal|x.y.z.y:1234>
// },


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


 "apiers": {
        "enabled": true,
//      "caches_conns":["*internal"],
//      "scheduler_conns": [],                                  // connections to SchedulerS for reloads
//      "attributes_conns": [],                                 // connections to AttributeS for CDRExporter
 }

}



Miha Zoubek

unread,
Apr 14, 2020, 9:54:40 AM4/14/20
to CGRateS
Hello guys

i manage to get this going, so no need to reply on this email.

1. for filters: *string:~*req.5:20
2. it was issue with tarrifplans


br
miha

Dne torek, 14. april 2020 09.49.33 UTC+2 je oseba Miha Zoubek napisala:
...

Gavin Henry

unread,
Apr 14, 2020, 2:38:50 PM4/14/20
to CGRateS
Thanks for the follow up Miha. Always good to leave the solution for others to find.
Reply all
Reply to author
Forward
0 new messages