diff --git a/config/config_defaults.go b/config/config_defaults.go index 0d208829a..839d22e5d 100644 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -29,87 +29,83 @@ const CGRATES_CFG_JSON = ` // This is what you get when you load CGRateS with an empty configuration file. "general": { - "node_id": "", // identifier of this instance in the cluster, if empty it will be autogenerated - "rounding_decimals": 5, // system level precision for floats - "dbdata_encoding": "*msgpack", // encoding used to store object data in strings: <*msgpack|*json> - "tpexport_dir": "/var/spool/cgrates/tpe", // path towards export folder for offline TariffPlans - "default_request_type": "*rated", // default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated> - "default_category": "call", // default category to consider when missing from requests - "default_tenant": "cgrates.org", // default tenant to consider when missing from requests - "default_timezone": "Local", // default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB> - "default_caching": "*reload", // default actions to do when caching items - "caching_delay": "0s", // add delay before cache reload - "min_call_duration": "0s", // only authorize calls with allowed duration higher than this - "max_call_duration": "3h", // maximum call duration a prepaid call can last - "connect_attempts": 5, // initial server connect attempts - "reconnects": -1, // number of retries in case of connection lost - "max_reconnect_interval": "", // time to wait in between reconnect attempts - "connect_timeout": "1s", // consider connection unsuccessful on timeout, 0 to disable the feature - "reply_timeout": "2s", // consider connection down for replies taking longer than this value - "locking_timeout": "0", // timeout internal locks to avoid deadlocks - "digest_separator": ",", // separator to use in replies containing data digests - "digest_equal": ":", // equal symbol used in case of digests - "rsr_separator": ";", // separator used within RSR fields - "max_parallel_conns": 100, // the maximum number of connection used by the *parallel strategy - "decimal_max_scale": 0, // the maximum scale for decimal numbers - "decimal_min_scale": 0, // the minimum scale for decimal numbers - "decimal_precision": 0, // the precision of the decimal operations - "decimal_rounding_mode": "*toNearestEven", // the rounding mode <*toNearestEven|*toNearestAway|*toZero|*awayFromZero|*toNegativeInf|*toPositiveInf|*toNearestTowardZero> - "opts":{ // - // "*exporterIDs": [ + "node_id": "", // identifier of this instance in the cluster, if empty it will be autogenerated + "rounding_decimals": 5, // system level precision for floats + "dbdata_encoding": "*msgpack", // encoding used to store object data in strings: <*msgpack|*json> + "tpexport_dir": "/var/spool/cgrates/tpe", // path towards export folder for offline TariffPlans + "default_request_type": "*rated", // default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated> + "default_category": "call", // default category to consider when missing from requests + "default_tenant": "cgrates.org", // default tenant to consider when missing from requests + "default_timezone": "Local", // default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB> + "default_caching": "*reload", // default actions to do when caching items + "caching_delay": "0s", // add delay before cache reload + "min_call_duration": "0s", // only authorize calls with allowed duration higher than this + "max_call_duration": "3h", // maximum call duration a prepaid call can last + "connect_attempts": 5, // initial server connect attempts + "reconnects": -1, // number of retries in case of connection lost + "max_reconnect_interval": "", // time to wait in between reconnect attempts + "connect_timeout": "1s", // consider connection unsuccessful on timeout, 0 to disable the feature + "reply_timeout": "2s", // consider connection down for replies taking longer than this value + "locking_timeout": "0", // timeout internal locks to avoid deadlocks + "digest_separator": ",", // separator to use in replies containing data digests + "digest_equal": ":", // equal symbol used in case of digests + "rsr_separator": ";", // separator used within RSR fields + "max_parallel_conns": 100, // the maximum number of connection used by the *parallel strategy + "decimal_max_scale": 0, // the maximum scale for decimal numbers + "decimal_min_scale": 0, // the minimum scale for decimal numbers + "decimal_precision": 0, // the precision of the decimal operations + "decimal_rounding_mode": "*toNearestEven", // the rounding mode <*toNearestEven|*toNearestAway|*toZero|*awayFromZero|*toNegativeInf|*toPositiveInf|*toNearestTowardZero> + "opts":{ + // "*exporterIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, - // ], - }, + // "Value": [] + // } + // ] + } }, "logger": { - "type": "*syslog", // controls the destination of logs <*syslog|*stdout|*kafkaLog> - "level": 6, // system level precision for floats - "efs_conns": ["*internal"], // connID to efs service + "type": "*syslog", // controls the destination of logs <*syslog|*stdout|*kafkaLog> + "level": 6, // system level precision for floats + "efs_conns": ["*internal"], // connID to efs service "opts": { - "kafka_conn": "", // the connection trough kafka - "kafka_topic": "", // the topic from where the events are exported - "kafka_attempts": 1, // number of attempts of connecting - "failed_posts_dir": "/var/spool/cgrates/failed_posts" // path where fail logs are exported - }, + "kafka_conn": "", // the connection trough kafka + "kafka_topic": "", // the topic from where the events are exported + "kafka_attempts": 1, // number of attempts of connecting + "failed_posts_dir": "/var/spool/cgrates/failed_posts" // path where fail logs are exported + } }, "cores": { - "caps": 0, // maximum concurrent request allowed ( 0 to disabled ) - "caps_strategy": "*busy", // strategy in case of concurrent requests reached - "caps_stats_interval": "0", // the interval duration we sample for caps stats ( 0 to disabled ) - "ees_conns": [], // connections to EventExporter - "shutdown_timeout": "1s" // the duration to wait until all services are stopped + "caps": 0, // maximum concurrent request allowed ( 0 to disabled ) + "caps_strategy": "*busy", // strategy in case of concurrent requests reached + "caps_stats_interval": "0", // the interval duration we sample for caps stats ( 0 to disabled ) + "ees_conns": [], // connections to EventExporter + "shutdown_timeout": "1s" // the duration to wait until all services are stopped }, - -"rpc_conns": { +"rpc_conns": { // rpc connections definitions // "*localhost": { - // "strategy": "*first" + // "strategy": "*first", // "poolsize": 0, // "reply_timeout": "2s", - // "conns": [ - // { - // "address": "127.0.0.1:2012", - // "transport":"*json", - // "connect_attempts": 5, - // "reconnects": -1, - // "max_reconnect_interval": "" - // "connect_timeout":"1s", - // "reply_timeout":"2s", - // "tls":false, - // "client_key":"", - // "client_certificate":"", - // "ca_certificate":"" - // } - // ], - // }, -}, // rpc connections definitions - + // "conns": [{ + // "address": "127.0.0.1:2012", + // "transport": "*json", + // "connect_attempts": 5, + // "reconnects": -1, + // "max_reconnect_interval": "", + // "connect_timeout": "1s", + // "reply_timeout": "2s", + // "tls": false, + // "client_key": "", + // "client_certificate": "", + // "ca_certificate": "" + // }] + // } +}, "data_db": { // database used to store runtime data (eg: accounts) "db_type": "*redis", // data_db type: <*redis|*mongo> @@ -156,8 +152,7 @@ const CGRATES_CFG_JSON = ` "*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, "*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, "*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, - "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, - + "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false} }, "opts":{ "redisMaxConns": 10, // the connection pool size @@ -200,7 +195,7 @@ const CGRATES_CFG_JSON = ` "mongoConnScheme": "mongodb" // scheme for MongoDB connection }, "items":{ - "*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false}, + "*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false} } }, @@ -210,33 +205,32 @@ const CGRATES_CFG_JSON = ` "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 + "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":"", + "server_certificate" : "", // path to server certificate + "server_key":"", // path to server key + "client_certificate" : "", // path to client certificate + "client_key":"", // path to client key + "ca_certificate":"", // path to CA certificate (populate for self-signed certificate otherwise let it empty) + "server_policy":4, // server_policy determines the TLS Client Authentication (0-NoClientCert, 1-RequestClientCert, 2-RequireAnyClientCert, 3-VerifyClientCertIfGiven, 4-RequireAndVerifyClientCert) + "server_name":"" }, -"http": { // HTTP server configuration - "json_rpc_url": "/jsonrpc", // JSON RPC relative URL ("" to disable) - "registrars_url": "/registrar", // registrar service relative URL +"http": { // HTTP server configuration + "json_rpc_url": "/jsonrpc", // JSON RPC relative URL ("" to disable) + "registrars_url": "/registrar", // registrar service relative URL "prometheus_url": "/prometheus", - "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) + "ws_url": "/ws", // WebSockets relative URL ("" to disable) + "freeswitch_cdrs_url": "/freeswitch_json", // Freeswitch CDRS relative URL ("" to disable) + "http_cdrs": "/cdr_http", // CDRS relative URL ("" to disable) "pprof_path": "/debug/pprof/", // endpoint for serving runtime profiling data for pprof visualization - "use_basic_auth": false, // use basic authentication - "auth_users": {}, // basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "}) + "use_basic_auth": false, // use basic authentication + "auth_users": {}, // basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "}) "client_opts":{ - "skipTLSVerification": false, // if enabled Http Client will accept any TLS certificate + "skipTLSVerification": false, // if enabled Http Client will accept any TLS certificate // the options to configure the http.Transport "tlsHandshakeTimeout": "10s", "disableKeepAlives": false, @@ -251,166 +245,166 @@ const CGRATES_CFG_JSON = ` // the optins to configure the net.Dialer "dialTimeout": "30s", "dialFallbackDelay": "300ms", - "dialKeepAlive": "30s", - }, + "dialKeepAlive": "30s" + } }, "caches":{ "partitions": { - "*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resource profiles caching - "*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resources caching - "*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // matching resources to events + "*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resource profiles caching + "*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resources caching + "*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // matching resources to events "*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueue profiles - "*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueues with metrics + "*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueues with metrics "*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control threshold profiles caching - "*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching + "*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching "*trend_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control threshold profiles caching - "*trends": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching - "*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control filters caching - "*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control route profile caching + "*trends": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching + "*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control filters caching + "*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control route profile caching "*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control attribute profile caching - "*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control charger profile caching + "*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control charger profile caching "*dispatcher_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher profile caching - "*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher hosts caching - "*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control rate profile caching - "*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control action profile caching + "*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher hosts caching + "*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control rate profile caching + "*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control action profile caching "*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control account profile caching - "*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control resource filter indexes caching - "*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control stat filter indexes caching - "*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control threshold filter indexes caching - "*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control route filter indexes caching - "*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control attribute filter indexes caching - "*ranking_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control ranking profile caching - "*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control charger filter indexes caching - "*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher filter indexes caching - "*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate profile filter indexes caching - "*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate filter indexes caching - "*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control action profile filter indexes caching + "*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control resource filter indexes caching + "*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control stat filter indexes caching + "*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control threshold filter indexes caching + "*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control route filter indexes caching + "*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control attribute filter indexes caching + "*ranking_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control ranking profile caching + "*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control charger filter indexes caching + "*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher filter indexes caching + "*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate profile filter indexes caching + "*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate filter indexes caching + "*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control action profile filter indexes caching "*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control coount profile filter indexes caching - "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control reverse filter indexes caching used only for set and remove filters - "*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher routes caching - "*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher load( in case of *ratio ConnParams is present) - "*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher interface - "*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // diameter messages caching - "*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "remote":false, "replicate": false}, // RPC responses caching - "*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // closed sessions cached for CDRs - "*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // events proccessed by ChargerS - "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "remote":false, "replicate": false}, // protects CDRs against double-charging - "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control the load_ids for items - "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // RPC connections caching - "*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // User cache - "*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // stirShaken cache keys + "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control reverse filter indexes caching used only for set and remove filters + "*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher routes caching + "*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher load( in case of *ratio ConnParams is present) + "*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher interface + "*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // diameter messages caching + "*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "remote":false, "replicate": false}, // RPC responses caching + "*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // closed sessions cached for CDRs + "*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // events proccessed by ChargerS + "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "remote":false, "replicate": false}, // protects CDRs against double-charging + "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control the load_ids for items + "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // RPC connections caching + "*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // User cache + "*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // stirShaken cache keys "*apiban":{"limit": -1, "ttl": "2m", "static_ttl": false, "remote":false, "replicate": false}, - "*sentrypeer":{"limit": -1, "ttl": "24h", "static_ttl": true, "remote":false, "replicate": false}, - "*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // caps cached samples - "*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // the replication hosts cache(used when replication_filtered is enbled) + "*sentrypeer":{"limit": -1, "ttl": "24h", "static_ttl": true, "remote":false, "replicate": false}, + "*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // caps cached samples + "*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // the replication hosts cache(used when replication_filtered is enbled) }, "replication_conns": [], - "remote_conns": [], // the conns that are queried when the items are not found in cache + "remote_conns": [] // the conns that are queried when the items are not found in cache }, -"filters": { // Filters configuration (*new) - "stats_conns": [], // connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "resources_conns": [], // connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "accounts_conns": [], // connections to AccountS for <*accounts> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> +"filters": { + "stats_conns": [], // connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "resources_conns": [], // connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "accounts_conns": [] // connections to AccountS for <*accounts> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> }, -"cdrs": { // CDRs config - "enabled": false, // start the CDR Server: - "extra_fields": [], // extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON) - "session_cost_retries": 5, // number of queries to session_costs before recalculating CDR - "chargers_conns": [], // connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id> - "attributes_conns": [], // connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> - "thresholds_conns": [], // connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> - "stats_conns": [], // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports - "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request - "ees_conns": [], // connections to EventExporter - "rates_conns": [], // connections to RateS - "accounts_conns": [], // connections to AccountS +"cdrs": { + "enabled": false, // start the CDR Server: + "extra_fields": [], // extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON) + "session_cost_retries": 5, // number of queries to session_costs before recalculating CDR + "chargers_conns": [], // connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id> + "attributes_conns": [], // connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> + "thresholds_conns": [], // connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> + "stats_conns": [], // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports + "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request + "ees_conns": [], // connections to EventExporter + "rates_conns": [], // connections to RateS + "accounts_conns": [], // connections to AccountS "opts": { // "*accounts": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*attributes": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*chargers": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*ees": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*rates": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*stats": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*thresholds": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*refund": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*rerate": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*store": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": true, - // }, - // ], - }, + // "Value": true + // } + // ] + } }, -"ers": { // EventReaderService - "enabled": false, // starts the EventReader service: - "sessions_conns":["*internal"], // RPC Connections IDs - // "ees_conns": [], // connection for routing processed and invalid messages through EEs - "partial_cache_ttl": "1s", // the duration to cache partial records when not pairing +"ers": { // EventReaderService + "enabled": false, // starts the EventReader service: + "sessions_conns":["*internal"], // RPC Connections IDs + // "ees_conns": [], // connection for routing processed and invalid messages through EEs + "partial_cache_ttl": "1s", // the duration to cache partial records when not pairing "readers": [ { "id": "*default", // identifier of the EventReader profile @@ -489,7 +483,7 @@ const CGRATES_CFG_JSON = ` // "natsCertificateAuthority": "", // the path to a custom certificate authority file( used by tls) // "natsClientCertificate": "", // the path to a client certificate( used by tls) // "natsClientKey": "", // the path to a client key( used by tls) - // "natsJetStreamMaxWait": "5s", // the maximum amount of time to wait for a response + // "natsJetStreamMaxWait": "5s" // the maximum amount of time to wait for a response }, "fields":[ // import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value {"tag": "ToR", "path": "*cgreq.ToR", "type": "*variable", "value": "~*req.2", "mandatory": true}, @@ -510,18 +504,18 @@ const CGRATES_CFG_JSON = ` ] }, -"efs": { // ExportFailover service - "enabled": false, // starts the EventReader service: - "poster_attempts": 3, // number of attempts before considering post request failed (eg: *httpPost, CDR exports) +"efs": { + "enabled": false, // starts the EventReader service: + "poster_attempts": 3, // number of attempts before considering post request failed (eg: *httpPost, CDR exports) "failed_posts_dir": "/var/spool/cgrates/failed_posts", // directory path where we store failed requests - "failed_posts_ttl": "5s", // time to wait before writing the failed posts in a single file + "failed_posts_ttl": "5s" // time to wait before writing the failed posts in a single file }, -"ees": { // EventExporterService +"ees": { "enabled": false, // starts the EventReader service: "attributes_conns":[], // RPC Connections IDs "cache": { - "*fileCSV": {"limit": -1, "ttl": "5s", "static_ttl": false}, + "*fileCSV": {"limit": -1, "ttl": "5s", "static_ttl": false} }, "exporters": [ { @@ -634,7 +628,7 @@ const CGRATES_CFG_JSON = ` // "connIDs": [], // connections for connManager to this exporter // "rpcConnTimeout" : "1s", // connection unsuccesfull on timeout // "rpcReplyTimeout":"2s", // connection down at replies if taking longer that this value - // "rpcAPIOpts": {}, // opts that will be passed within APIOpts + // "rpcAPIOpts": {} // opts that will be passed within APIOpts }, "fields":[] // import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value } @@ -643,275 +637,282 @@ const CGRATES_CFG_JSON = ` "sessions": { - "enabled": false, // starts the session service: - "listen_bijson": "127.0.0.1:2014", // address where to listen for bidirectional JSON-RPC requests - "listen_bigob": "", // address where to listen for bidirectional GOB-RPC requests - "chargers_conns": [], // connections to ChargerS for session forking <""|*internal|$rpc_conns_id> - "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> - "resources_conns": [], // connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id> - "thresholds_conns": [], // connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id> - "stats_conns": [], // connections to StatS for reporting session events <""|*internal|$rpc_conns_id> - "routes_conns": [], // connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id> - "attributes_conns": [], // connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id> - "replication_conns": [], // replicate sessions towards these session services - "debit_interval": "0s", // interval to perform debits on. - "store_session_costs": false, // enable storing of the session costs within CDRs - "default_usage":{ // the usage if the event is missing the usage field + "enabled": false, // starts the session service: + "listen_bijson": "127.0.0.1:2014", // address where to listen for bidirectional JSON-RPC requests + "listen_bigob": "", // address where to listen for bidirectional GOB-RPC requests + "chargers_conns": [], // connections to ChargerS for session forking <""|*internal|$rpc_conns_id> + "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> + "resources_conns": [], // connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id> + "thresholds_conns": [], // connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id> + "stats_conns": [], // connections to StatS for reporting session events <""|*internal|$rpc_conns_id> + "routes_conns": [], // connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id> + "attributes_conns": [], // connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id> + "replication_conns": [], // replicate sessions towards these session services + "debit_interval": "0s", // interval to perform debits on. + "store_session_costs": false, // enable storing of the session costs within CDRs + "default_usage":{ // the usage if the event is missing the usage field "*any": "3h", "*voice": "3h", "*data": "1048576", - "*sms": "1", + "*sms": "1" }, - "session_ttl": "0s", // time after a session with no updates is terminated, not defined by default - //"session_ttl_max_delay": "", // activates session_ttl randomization and limits the maximum possible delay - //"session_ttl_last_used": "", // tweak LastUsed for sessions timing-out, not defined by default - //"session_ttl_usage": "", // tweak Usage for sessions timing-out, not defined by default - //"session_last_usage": "", // tweak LastUsage for session timing-out, not defined by default - "session_indexes": [], // index sessions based on these fields for GetActiveSessions API - "client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0"> - "channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable) - "terminate_attempts": 5, // attempts to get the session before terminating it - "alterable_fields": [], // the session fields that can be updated - //"min_dur_low_balance": "5s", // threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval) + "session_ttl": "0s", // time after a session with no updates is terminated, not defined by default + //"session_ttl_max_delay": "", // activates session_ttl randomization and limits the maximum possible delay + //"session_ttl_last_used": "", // tweak LastUsed for sessions timing-out, not defined by default + //"session_ttl_usage": "", // tweak Usage for sessions timing-out, not defined by default + //"session_last_usage": "", // tweak LastUsage for session timing-out, not defined by default + "session_indexes": [], // index sessions based on these fields for GetActiveSessions API + "client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0"> + "channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable) + "terminate_attempts": 5, // attempts to get the session before terminating it + "alterable_fields": [], // the session fields that can be updated + //"min_dur_low_balance": "5s", // threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval) "stir": { - "allowed_attest": ["*any"], // the default attest for stir/shaken authentication <*any|A|B|C> - "payload_maxduration": "-1", // the duration that stir header is valid after it was created - "default_attest": "A", // the default attest level if not mentioned in API - "publickey_path": "", // the path to the public key - "privatekey_path": "", // the path to the private key + "allowed_attest": ["*any"], // the default attest for stir/shaken authentication <*any|A|B|C> + "payload_maxduration": "-1", // the duration that stir header is valid after it was created + "default_attest": "A", // the default attest level if not mentioned in API + "publickey_path": "", // the path to the public key + "privatekey_path": "", // the path to the private key }, - "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request - "rates_conns": [], // connections to RateS - "accounts_conns": [], // connections to AccountS + "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request + "rates_conns": [], // connections to RateS + "accounts_conns": [], // connections to AccountS "opts": { // "*accounts": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*attributes": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*cdrs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*chargers": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*resources": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*routes": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*stats": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*thresholds": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*initiate": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*update": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*terminate": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*message": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*attributesDerivedReply": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*blockerError": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*cdrsDerivedReply": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*resourcesAuthorize": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*resourcesAllocate": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*resourcesRelease": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*resourcesDerivedReply": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*routesDerivedReply": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*statsDerivedReply": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*thresholdsDerivedReply": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*maxUsage": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*forceDuration": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*ttl": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": "" + // } // ], // "*chargeable": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], // "*ttlLastUsage": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": "" + // } // ], // "*ttlLastUsed": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": "" + // } // ], // "*debitInterval": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": "" + // } // ], // "*ttlMaxDelay": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": "" + // } // ], // "*ttlUsage": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, - // ], - }, + // "Value": "" + // } + // ] + } }, "asterisk_agent": { - "enabled": false, // starts the Asterisk agent: + "enabled": false, // starts the Asterisk agent: "sessions_conns": ["*birpc_internal"], - "create_cdr": false, // create CDR out of events and sends it to CDRS component - "asterisk_conns":[ // instantiate connections to multiple Asterisk servers - {"address": "127.0.0.1:8088", "user": "cgrates", "password": "CGRateS.org", "connect_attempts": 3, "reconnects": 5, "max_reconnect_interval": ""} - ], + "create_cdr": false, // create CDR out of events and sends it to CDRS component + "asterisk_conns":[ // instantiate connections to multiple Asterisk servers + { + "address": "127.0.0.1:8088", + "user": "cgrates", + "password": "CGRateS.org", + "connect_attempts": 3, + "reconnects": 5, + "max_reconnect_interval": "" + } + ] }, @@ -940,360 +941,360 @@ const CGRATES_CFG_JSON = ` "kamailio_agent": { - "enabled": false, // starts Kamailio agent: + "enabled": false, // starts Kamailio agent: "sessions_conns": ["*birpc_internal"], - "create_cdr": false, // create CDR out of events and sends them to CDRS component - "timezone": "", // timezone of the Kamailio server - "evapi_conns":[ // instantiate connections to multiple Kamailio servers - {"address": "127.0.0.1:8448", "reconnects": 5, "max_reconnect_interval": ""} - ], + "create_cdr": false, // create CDR out of events and sends them to CDRS component + "timezone": "", // timezone of the Kamailio server + "evapi_conns":[ // instantiate connections to multiple Kamailio servers + { + "address": "127.0.0.1:8448", + "reconnects": 5, + "max_reconnect_interval": "" + } + ] }, "diameter_agent": { - "enabled": false, // enables the diameter agent: - "listen": "127.0.0.1:3868", // address where to listen for diameter requests - "listen_net": "tcp", // transport type for diameter + "enabled": false, // enables the diameter agent: + "listen": "127.0.0.1:3868", // address where to listen for diameter requests + "listen_net": "tcp", // transport type for diameter "dictionaries_path": "/usr/share/cgrates/diameter/dict/", // path towards directory holding additional dictionaries to load "sessions_conns": ["*birpc_internal"], - "origin_host": "CGR-DA", // diameter Origin-Host AVP used in replies - "origin_realm": "cgrates.org", // diameter Origin-Realm AVP used in replies - "vendor_id": 0, // diameter Vendor-Id AVP used in replies - "product_name": "CGRateS", // diameter Product-Name AVP used in replies - "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> - "request_processors": [ // list of processors to be applied to diameter messages - ], + "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> + "request_processors": [] // list of processors to be applied to diameter messages }, "radius_agent": { - "enabled": false, // enables the radius agent: - "listen_net": "udp", // network to listen on - "listen_auth": "127.0.0.1:1812", // address where to listen for radius authentication requests - "listen_acct": "127.0.0.1:1813", // address where to listen for radius accounting requests - "client_secrets": { // hash containing secrets for clients connecting here <*default|$client_ip> + "enabled": false, // enables the radius agent: + "listen_net": "udp", // network to listen on + "listen_auth": "127.0.0.1:1812", // address where to listen for radius authentication requests + "listen_acct": "127.0.0.1:1813", // address where to listen for radius accounting requests + "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> + "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 - ], + "request_processors": [] // request processors to be applied to Radius messages }, -"http_agent": [ // HTTP Agents, ie towards cnc.to MVNE platform -], +"http_agent": [], // HTTP Agents, ie towards cnc.to MVNE platform "dns_agent": { - "enabled": false, // enables the DNS agent: + "enabled": false, // enables the DNS agent: "listeners":[ { - "address": "127.0.0.1:53", // address where to listen for DNS requests - "network": "udp" // network to listen on + "address": "127.0.0.1:53", // address where to listen for DNS requests + "network": "udp" // network to listen on } ], "sessions_conns": ["*internal"], - "timezone": "", // timezone of the events if not specified - "request_processors": [ // request processors to be applied to DNS messages - ], + "timezone": "", // timezone of the events if not specified + "request_processors": [] // request processors to be applied to DNS messages }, -"attributes": { // AttributeS config - "enabled": false, // starts attribute service: - "stats_conns": [], // connections to StatS, empty to disable: <""|*internal|$rpc_conns_id> - "resources_conns": [], // connections to ResourceS, empty to disable: <""|*internal|$rpc_conns_id> - "accounts_conns": [], // connections to AccountS, empty to disable: <""|*internal|$rpc_conns_id> - "indexed_selects": true, // enable profile matching exclusively on indexes +"attributes": { + "enabled": false, // starts attribute service: + "stats_conns": [], // connections to StatS, empty to disable: <""|*internal|$rpc_conns_id> + "resources_conns": [], // connections to ResourceS, empty to disable: <""|*internal|$rpc_conns_id> + "accounts_conns": [], // connections to AccountS, empty to disable: <""|*internal|$rpc_conns_id> + "indexed_selects": true, // enable profile matching exclusively on indexes //"string_indexed_fields": [], // query indexes based on these fields for faster processing "prefix_indexed_fields": [], // query indexes based on these fields for faster processing "suffix_indexed_fields": [], // query indexes based on these fields for faster processing "exists_indexed_fields": [], // query indexes based on these fields for faster processing "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "opts":{ // - // "*profileIDs": [ + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "opts":{ + // "*profileIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, + // "Value": [] + // } // ], - // "*processRuns": [ // number of run loops when processing event + // "*processRuns": [ // number of run loops when processing event // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 1, - // }, - // ], - // "*profileRuns": [ // number of runs a profile will process during the event + // "Value": 1 + // } + // ], + // "*profileRuns": [ // number of runs a profile will process during the event // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 0, - // }, - // ], - // "*profileIgnoreFilters": [ // ignore the filters for attributeIDs + // "Value": 0 + // } + // ], + // "*profileIgnoreFilters": [ // ignore the filters for attributeIDs // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, - // ], - }, + // "Value": false + // } + // ] + } }, -"chargers": { // ChargerS config - "enabled": false, // starts charger service: . - "attributes_conns": [], // connections to AttributeS for event fields altering <""|127.0.0.1:2013> - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +"chargers": { + "enabled": false, // starts charger service: + "attributes_conns": [], // connections to AttributeS for event fields altering <""|127.0.0.1:2013> + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) }, -"resources": { // ResourceS config - "enabled": false, // starts ResourceLimiter service: . - "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> - "thresholds_conns": [], // connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "opts":{ // - // "*usageID": [ +"resources": { + "enabled": false, // starts ResourceLimiter service: + "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> + "thresholds_conns": [], // connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "opts":{ + // "*usageID": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": "" + // } // ], - // "*usageTTL": [ + // "*usageTTL": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "72h", - // }, + // "Value": "72h" + // } // ], - // "*units": [ + // "*units": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 1, - // }, - // ], - }, + // "Value": 1 + // } + // ] + } }, -"stats": { // StatS config - "enabled": false, // starts Stat service: . - "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> - "store_uncompressed_limit": 0, // used to compress data - "thresholds_conns": [], // connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> - "ees_conns": [], // connections to EEs for StatUpdates, empty to disable export functionality: <""|*internal|$rpc_conns_id> - "ees_exporter_ids": [], // list of EventExporter profiles to use for real-time StatUpdate exports - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "opts": { // - // "*profileIDs": [ +"stats": { + "enabled": false, // starts Stat service: + "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> + "store_uncompressed_limit": 0, // used to compress data + "thresholds_conns": [], // connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> + "ees_conns": [], // connections to EEs for StatUpdates, empty to disable export functionality: <""|*internal|$rpc_conns_id> + "ees_exporter_ids": [], // list of EventExporter profiles to use for real-time StatUpdate exports + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "opts": { + // "*profileIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, + // "Value": [] + // } + // ], + // "*profileIgnoreFilters": [ // ignore the filters for statIDs + // { + // "Tenant": "*any", + // "FilterIDs": [], + // "Value": false + // } // ], - // "*profileIgnoreFilters": [ // ignore the filters for statIDs + // "*roundingDecimals": [ // ignore the filters for statIDs // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, - // ], - // "*roundingDecimals": [ // ignore the filters for statIDs - // { - // "Tenant": "*any", - // "FilterIDs": [], - // "Value": 5, - // }, + // "Value": 5 + // } // ], // "*prometheusStatIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, - // ], - }, + // "Value": [] + // } + // ] + } }, -"thresholds": { // ThresholdS - "enabled": false, // starts ThresholdS service: . - "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "actions_conns": [], // connections to ActionS to execute the actions - "opts":{ // - // "*thresholdsIDs": [ +"thresholds": { + "enabled": false, // starts ThresholdS service: + "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "actions_conns": [], // connections to ActionS to execute the actions + "opts":{ + // "*thresholdsIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, + // "Value": [] + // } // ], - // "*profileIgnoreFilters": [ // ignore the filters for thresholdIDs + // "*profileIgnoreFilters": [ // ignore the filters for thresholdIDs // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, - // ], - }, + // "Value": false + // } + // ] + } }, -"trends":{ // TrendS config - "enabled": false, // starts TrendS service: . - "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> - "store_uncompressed_limit": 0, // used to compress metrics - "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "scheduled_ids": {}, // autoload these trend ids on start - "thresholds_conns": [], // connections to ThresholdS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "ees_conns": [], // connections to EEs for trendSummary, empty to disable export functionality: <""|*internal|$rpc_conns_id> - "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time trendSummary exports +"trends":{ + "enabled": false, // starts TrendS service: . + "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> + "store_uncompressed_limit": 0, // used to compress metrics + "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "scheduled_ids": {}, // autoload these trend ids on start + "thresholds_conns": [], // connections to ThresholdS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "ees_conns": [], // connections to EEs for trendSummary, empty to disable export functionality: <""|*internal|$rpc_conns_id> + "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time trendSummary exports }, -"rankings":{ // RankingS config - "enabled": false, // starts RankingS service: . - "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> - "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "scheduled_ids": {}, // autoload these ranking ids on start - "thresholds_conns": [], // connections to ThresholdS for rankingSummary reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> - "ees_conns": [], // connections to EEs for rankingSummary events, empty to disable export functionality: <""|*internal|$rpc_conns_id> - "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time rankingSummary exports +"rankings":{ + "enabled": false, // starts RankingS service: . + "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> + "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "scheduled_ids": {}, // autoload these ranking ids on start + "thresholds_conns": [], // connections to ThresholdS for rankingSummary reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> + "ees_conns": [], // connections to EEs for rankingSummary events, empty to disable export functionality: <""|*internal|$rpc_conns_id> + "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time rankingSummary exports }, -"routes": { // RouteS config - "enabled": false, // starts RouteS service: . - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "attributes_conns": [], // connections to AttributeS for altering events before route queries: <""|*internal|$rpc_conns_id> - "resources_conns": [], // connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id> - "stats_conns": [], // connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> - "rates_conns": [], // connections to RateS - "accounts_conns": [], // connections to AccountS - "default_ratio":1, // default ratio used in case of *load strategy - "opts":{ // - // "*context": [ +"routes": { + "enabled": false, // starts RouteS service: . + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "attributes_conns": [], // connections to AttributeS for altering events before route queries: <""|*internal|$rpc_conns_id> + "resources_conns": [], // connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id> + "stats_conns": [], // connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> + "rates_conns": [], // connections to RateS + "accounts_conns": [], // connections to AccountS + "default_ratio":1, // default ratio used in case of *load strategy + "opts":{ + // "*context": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "*routes", - // }, - // ], - // "*profileCount": [ - // { - // "Tenant": "*any", - // "FilterIDs": [], - // "Value": 1, - // }, + // "Value": "*routes" + // } // ], - // "*ignoreErrors": [ + // "*profileCount": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": 1 + // } // ], - // "*maxCost": [ + // "*ignoreErrors": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "", - // }, + // "Value": false + // } // ], - // "*limit": [ + // "*maxCost": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 1, - // }, + // "Value": "" + // } // ], - // "*offset": [ + // "*limit": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 1, - // }, + // "Value": 1 + // } // ], - // "*maxItems": [ + // "*offset": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 1, - // }, + // "Value": 1 + // } // ], - // "*usage": [ + // "*maxItems": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "1m", - // }, + // "Value": 1 + // } // ], - }, + // "*usage": [ + // { + // "Tenant": "*any", + // "FilterIDs": [], + // "Value": "1m" + // } + // ] + } }, -"loaders": [ // LoaderS config +"loaders": [ { - "id": "*default", // identifier of the Loader - "enabled": false, // starts as service: . - "tenant": "", // tenant used in filterS.Pass - "run_delay": "0", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together - "lockfile_path": ".cgr.lck", // Filename containing concurrency lock in case of delayed processing + "id": "*default", // identifier of the Loader + "enabled": false, // starts as service: . + "tenant": "", // tenant used in filterS.Pass + "run_delay": "0", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together + "lockfile_path": ".cgr.lck", // Filename containing concurrency lock in case of delayed processing "caches_conns": ["*internal"], - "field_separator": ",", // separator used in case of csv files - "tp_in_dir": "/var/spool/cgrates/loader/in", // absolute path towards the directory where the TPs are stored - "tp_out_dir": "/var/spool/cgrates/loader/out", // absolute path towards the directory where processed TPs will be moved - "action": "*store", // what should the loader do<*store|*parse|*remove|*dryRun> + "field_separator": ",", // separator used in case of csv files + "tp_in_dir": "/var/spool/cgrates/loader/in", // absolute path towards the directory where the TPs are stored + "tp_out_dir": "/var/spool/cgrates/loader/out", // absolute path towards the directory where processed TPs will be moved + "action": "*store", // what should the loader do<*store|*parse|*remove|*dryRun> "opts": { // "*cache": "*reload", "*withIndex": true, // "*forceLock": false, - // "*stopOnError": false, + // "*stopOnError": false }, "cache":{ "*filters":{"limit": -1, "ttl": "5s", "static_ttl": false}, @@ -1307,23 +1308,23 @@ const CGRATES_CFG_JSON = ` "*dispatcher_hosts":{"limit": -1, "ttl": "5s", "static_ttl": false}, "*rate_profiles":{"limit": -1, "ttl": "5s", "static_ttl": false}, "*action_profiles":{"limit": -1, "ttl": "5s", "static_ttl": false}, - "*accounts":{"limit": -1, "ttl": "5s", "static_ttl": false}, + "*accounts":{"limit": -1, "ttl": "5s", "static_ttl": false} }, - "data":[ // data profiles to load + "data":[ // data profiles to load { - "type": "*filters", // data source type - "file_name": "Filters.csv", // file name in the tp_in_dir + "type": "*filters", // data source type + "file_name": "Filters.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, {"tag": "Type", "path": "Rules.Type", "type": "*variable", "value": "~*req.2", "new_branch":true}, {"tag": "Element", "path": "Rules.Element", "type": "*variable", "value": "~*req.3"}, - {"tag": "Values", "path": "Rules.Values", "type": "*variable", "value": "~*req.4"}, - ], + {"tag": "Values", "path": "Rules.Values", "type": "*variable", "value": "~*req.4"} + ] }, { - "type": "*attributes", // data source type - "file_name": "Attributes.csv", // file name in the tp_in_dir + "type": "*attributes", // data source type + "file_name": "Attributes.csv", // file name in the tp_in_dir "fields": [ {"tag": "TenantID", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1331,15 +1332,15 @@ const CGRATES_CFG_JSON = ` {"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"}, {"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"}, {"tag": "AttributeFilterIDs", "path": "Attributes.FilterIDs", "type": "*variable", "value": "~*req.5","new_branch":true}, - {"tag": "AttributeBlockers", "path": "Attributes.Blockers", "type": "*variable", "value": "~*req.6"}, + {"tag": "AttributeBlockers", "path": "Attributes.Blockers", "type": "*variable", "value": "~*req.6"}, {"tag": "Path", "path": "Attributes.Path", "type": "*variable", "value": "~*req.7"}, {"tag": "Type", "path": "Attributes.Type", "type": "*variable", "value": "~*req.8"}, - {"tag": "Value", "path": "Attributes.Value", "type": "*variable", "value": "~*req.9"}, - ], + {"tag": "Value", "path": "Attributes.Value", "type": "*variable", "value": "~*req.9"} + ] }, { - "type": "*resources", // data source type - "file_name": "Resources.csv", // file name in the tp_in_dir + "type": "*resources", // data source type + "file_name": "Resources.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1350,12 +1351,12 @@ const CGRATES_CFG_JSON = ` {"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~*req.6"}, {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"}, {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.8"}, - {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"}, - ], + {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"} + ] }, { - "type": "*stats", // data source type - "file_name": "Stats.csv", // file name in the tp_in_dir + "type": "*stats", // data source type + "file_name": "Stats.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1369,12 +1370,12 @@ const CGRATES_CFG_JSON = ` {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"}, {"tag": "MetricIDs", "path": "Metrics.MetricID", "type": "*variable", "value": "~*req.10","new_branch":true}, {"tag": "MetricFilterIDs", "path": "Metrics.FilterIDs", "type": "*variable", "value": "~*req.11"}, - {"tag": "MetricBlockers", "path": "Metrics.Blockers", "type": "*variable", "value": "~*req.12"}, - ], + {"tag": "MetricBlockers", "path": "Metrics.Blockers", "type": "*variable", "value": "~*req.12"} + ] }, { - "type": "*thresholds", // data source type - "file_name": "Thresholds.csv", // file name in the tp_in_dir + "type": "*thresholds", // data source type + "file_name": "Thresholds.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1385,12 +1386,12 @@ const CGRATES_CFG_JSON = ` {"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~*req.6"}, {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"}, {"tag": "ActionProfileIDs", "path": "ActionProfileIDs", "type": "*variable", "value": "~*req.8"}, - {"tag": "Async", "path": "Async", "type": "*variable", "value": "~*req.9"}, - ], + {"tag": "Async", "path": "Async", "type": "*variable", "value": "~*req.9"} + ] }, { - "type": "*routes", // data source type - "file_name": "Routes.csv", // file name in the tp_in_dir + "type": "*routes", // data source type + "file_name": "Routes.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1407,12 +1408,12 @@ const CGRATES_CFG_JSON = ` {"tag": "RouteStatIDs", "path": "Routes.StatIDs", "type": "*variable", "value": "~*req.12"}, {"tag": "RouteWeights", "path": "Routes.Weights", "type": "*variable", "value": "~*req.13"}, {"tag": "RouteBlockers", "path": "Routes.Blockers", "type": "*variable", "value": "~*req.14"}, - {"tag": "RouteParameters", "path": "Routes.RouteParameters", "type": "*variable", "value": "~*req.15"}, - ], + {"tag": "RouteParameters", "path": "Routes.RouteParameters", "type": "*variable", "value": "~*req.15"} + ] }, { - "type": "*chargers", // data source type - "file_name": "Chargers.csv", // file name in the tp_in_dir + "type": "*chargers", // data source type + "file_name": "Chargers.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1420,12 +1421,12 @@ const CGRATES_CFG_JSON = ` {"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"}, {"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"}, {"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~*req.5"}, - {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.6"}, - ], + {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.6"} + ] }, { - "type": "*dispatchers", // data source type - "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir + "type": "*dispatchers", // data source type + "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1437,12 +1438,12 @@ const CGRATES_CFG_JSON = ` {"tag": "ConnFilterIDs", "path": "Hosts.FilterIDs", "type": "*variable", "value": "~*req.7"}, {"tag": "ConnWeight", "path": "Hosts.Weight", "type": "*variable", "value": "~*req.8"}, {"tag": "ConnBlocker", "path": "Hosts.Blocker", "type": "*variable", "value": "~*req.9"}, - {"tag": "ConnParameters", "path": "Hosts.Params", "type": "*variable", "value": "~*req.10"}, - ], + {"tag": "ConnParameters", "path": "Hosts.Params", "type": "*variable", "value": "~*req.10"} + ] }, { - "type": "*dispatcher_hosts", // data source type - "file_name": "DispatcherHosts.csv", // file name in the tp_in_dir + "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": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1456,12 +1457,12 @@ const CGRATES_CFG_JSON = ` {"tag": "TLS", "path": "TLS", "type": "*variable", "value": "~*req.9"}, {"tag": "ClientKey", "path": "ClientKey", "type": "*variable", "value":"~*req.10"}, {"tag": "ClientCertificate", "path": "ClientCertificate", "type": "*variable", "value":"~*req.11"}, - {"tag": "CaCertificate", "path": "CaCertificate", "type": "*variable", "value":"~*req.12"}, - ], + {"tag": "CaCertificate", "path": "CaCertificate", "type": "*variable", "value":"~*req.12"} + ] }, { - "type": "*rate_profiles", // data source type - "file_name": "Rates.csv", // file name in the tp_in_dir + "type": "*rate_profiles", // data source type + "file_name": "Rates.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1479,12 +1480,12 @@ const CGRATES_CFG_JSON = ` {"tag": "RateFixedFee", "path": "Rates[<~*req.7>].IntervalRates.FixedFee", "type": "*variable", "value": "~*req.13", "filters": ["*notempty:~*req.7:"]}, {"tag": "RateRecurrentFee", "path": "Rates[<~*req.7>].IntervalRates.RecurrentFee", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.7:"]}, {"tag": "RateUnit", "path": "Rates[<~*req.7>].IntervalRates.Unit", "type": "*variable", "value": "~*req.15", "filters": ["*notempty:~*req.7:"]}, - {"tag": "RateIncrement", "path": "Rates[<~*req.7>].IntervalRates.Increment", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.7:"]}, - ], + {"tag": "RateIncrement", "path": "Rates[<~*req.7>].IntervalRates.Increment", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.7:"]} + ] }, { - "type": "*action_profiles", // data source type - "file_name": "Actions.csv", // file name in the tp_in_dir + "type": "*action_profiles", // data source type + "file_name": "Actions.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1500,12 +1501,12 @@ const CGRATES_CFG_JSON = ` {"tag": "ActionType", "path": "Actions[<~*req.8>].Type", "type": "*variable", "value": "~*req.11", "filters": ["*notempty:~*req.8:"]}, {"tag": "ActionOpts", "path": "Actions[<~*req.8>].Opts", "type": "*variable", "value": "~*req.12", "filters": ["*notempty:~*req.8:"]}, {"tag": "ActionPath", "path": "Actions[<~*req.8>].Diktats.Path", "type": "*variable", "value": "~*req.13","new_branch":true, "filters": ["*notempty:~*req.8:"]}, - {"tag": "ActionValue", "path": "Actions[<~*req.8>].Diktats.Value", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.8:"]}, - ], + {"tag": "ActionValue", "path": "Actions[<~*req.8>].Diktats.Value", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.8:"]} + ] }, { - "type": "*accounts", // data source type - "file_name": "Accounts.csv", // file name in the tp_in_dir + "type": "*accounts", // data source type + "file_name": "Accounts.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1524,53 +1525,53 @@ const CGRATES_CFG_JSON = ` {"tag": "BalanceCostIncrements", "path": "Balances[<~*req.6>].CostIncrements", "type": "*variable", "value": "~*req.14","filters": ["*notempty:~*req.6:"]}, {"tag": "BalanceAttributeIDs", "path": "Balances[<~*req.6>].AttributeIDs", "type": "*variable", "value": "~*req.15","filters": ["*notempty:~*req.6:"]}, {"tag": "BalanceRateProfileIDs", "path": "Balances[<~*req.6>].RateProfileIDs", "type": "*variable", "value": "~*req.16","filters": ["*notempty:~*req.6:"]}, - {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.17"}, - ], - }, - ], - }, + {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.17"} + ] + } + ] + } ], "suretax": { - "url": "", // API url - "client_number": "", // client number, provided by SureTax - "validation_key": "", // validation key provided by SureTax - "business_unit": "", // client’s Business Unit - "timezone": "Local", // convert the time of the events to this timezone before sending request out - "include_local_cost": false, // sum local calculated cost with tax one in final cost - "return_file_code": "0", // default or Quote purposes <0|Q> - "response_group": "03", // determines how taxes are grouped for the response <03|13> - "response_type": "D4", // determines the granularity of taxes and (optionally) the decimal precision for the tax calculations and amounts in the response - "regulatory_code": "03", // provider type - "client_tracking": "~*opts.*originID", // template extracting client information out of StoredCdr; - "customer_number": "~*req.Subject", // template extracting customer number out of StoredCdr; - "orig_number": "~*req.Subject", // template extracting origination number out of StoredCdr; - "term_number": "~*req.Destination", // template extracting termination number out of StoredCdr; - "bill_to_number": "", // template extracting billed to number out of StoredCdr; - "zipcode": "", // template extracting billing zip code out of StoredCdr; - "plus4": "", // template extracting billing zip code extension out of StoredCdr; - "p2pzipcode": "", // template extracting secondary zip code out of StoredCdr; - "p2pplus4": "", // template extracting secondary zip code extension out of StoredCdr; - "units": "1", // template extracting number of “lines” or unique charges contained within the revenue out of StoredCdr; - "unit_type": "00", // template extracting number of unique access lines out of StoredCdr; - "tax_included": "0", // template extracting tax included in revenue out of StoredCdr; - "tax_situs_rule": "04", // template extracting tax situs rule out of StoredCdr; - "trans_type_code": "010101", // template extracting transaction type indicator out of StoredCdr; - "sales_type_code": "R", // template extracting sales type code out of StoredCdr; - "tax_exemption_code_list": "", // template extracting tax exemption code list out of StoredCdr; + "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 + "include_local_cost": false, // sum local calculated cost with tax one in final cost + "return_file_code": "0", // default or Quote purposes <0|Q> + "response_group": "03", // determines how taxes are grouped for the response <03|13> + "response_type": "D4", // determines the granularity of taxes and (optionally) the decimal precision for the tax calculations and amounts in the response + "regulatory_code": "03", // provider type + "client_tracking": "~*opts.*originID", // template extracting client information out of StoredCdr; + "customer_number": "~*req.Subject", // template extracting customer number out of StoredCdr; + "orig_number": "~*req.Subject", // template extracting origination number out of StoredCdr; + "term_number": "~*req.Destination", // template extracting termination number out of StoredCdr; + "bill_to_number": "", // template extracting billed to number out of StoredCdr; + "zipcode": "", // template extracting billing zip code out of StoredCdr; + "plus4": "", // template extracting billing zip code extension out of StoredCdr; + "p2pzipcode": "", // template extracting secondary zip code out of StoredCdr; + "p2pplus4": "", // template extracting secondary zip code extension out of StoredCdr; + "units": "1", // template extracting number of “lines” or unique charges contained within the revenue out of StoredCdr; + "unit_type": "00", // template extracting number of unique access lines out of StoredCdr; + "tax_included": "0", // template extracting tax included in revenue out of StoredCdr; + "tax_situs_rule": "04", // template extracting tax situs rule out of StoredCdr; + "trans_type_code": "010101", // template extracting transaction type indicator out of StoredCdr; + "sales_type_code": "R", // template extracting sales type code out of StoredCdr; + "tax_exemption_code_list": "", // template extracting tax exemption code list out of StoredCdr; }, -"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 +"loader": { // loader for tariff plans out of .csv files + "tpid": "", // tariff plan identificator + "data_path": "./", // path towards tariff plan files + "disable_reverse": false, // disable reverse computing + "field_separator": ",", // separator used in case of csv files "caches_conns":["*localhost"], "actions_conns": ["*localhost"], "gapi_credentials": ".gapi/credentials.json", // the path to the credentials for google API or the credentials.json file content - "gapi_token": ".gapi/token.json" // the path to the token for google API or the token.json file content + "gapi_token": ".gapi/token.json" // the path to the token for google API or the token.json file content }, @@ -1605,18 +1606,18 @@ const CGRATES_CFG_JSON = ` }, -"dispatchers":{ // DispatcherS config - "enabled": false, // starts DispatcherS service: . - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "attributes_conns": [], // connections to AttributeS for API authorization, empty to disable auth functionality: <""|*internal|$rpc_conns_id> - "opts": { // - // "*dispatchers": [ +"dispatchers":{ + "enabled": false, // starts DispatcherS service: . + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "attributes_conns": [], // connections to AttributeS for API authorization, empty to disable auth functionality: <""|*internal|$rpc_conns_id> + "opts": { + // "*dispatchers": [ // { // "Tenant": "*any", // "FilterIDs": [], @@ -1632,124 +1633,123 @@ const CGRATES_CFG_JSON = ` "enabled": false, "registrars_conns": [], "hosts": [], - "refresh_interval": "5m", + "refresh_interval": "5m" }, "dispatchers":{ "enabled": false, "registrars_conns": [], "hosts": [], - "refresh_interval": "5m", - }, + "refresh_interval": "5m" + } }, -"analyzers":{ // AnalyzerS config - "enabled": false, // starts AnalyzerS service: . +"analyzers":{ + "enabled": false, // starts AnalyzerS service: . "db_path": "/var/spool/cgrates/analyzers", // path to the folder where to store the information - "index_type": "*scorch", // the type of index for the storage: <*internal|*scorch|*boltdb|*leveldb|*mossdb> - "ttl": "24h", // time to wait before removing the API capture - "ees_conns": [], // connections to EEs - "cleanup_interval": "1h", // the interval we clean the db - "opts":{ // - // "*exporterIDs": [ + "index_type": "*scorch", // the type of index for the storage: <*internal|*scorch|*boltdb|*leveldb|*mossdb> + "ttl": "24h", // time to wait before removing the API capture + "ees_conns": [], // connections to EEs + "cleanup_interval": "1h", // the interval we clean the db + "opts":{ + // "*exporterIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, - // ], - }, + // "Value": [] + // } + // ] + } }, "admins": { "enabled": false, "caches_conns":["*internal"], - "actions_conns": [], // connections to ActionS for reloads - "attributes_conns": [], // connections to AttributeS for CDRExporter - "ees_conns": [], // connections to EEs + "actions_conns": [], // connections to ActionS for reloads + "attributes_conns": [], // connections to AttributeS for CDRExporter + "ees_conns": [] // connections to EEs }, "rates": { "enabled": false, - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "rate_indexed_selects": true, // enable profile matching exclusively on indexes - //"rate_string_indexed_fields": [], // query indexes based on these fields for faster processing - "rate_prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "rate_suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "rate_exists_indexed_fields": [], // query indexes based on these fields for faster processing + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "rate_indexed_selects": true, // enable profile matching exclusively on indexes + //"rate_string_indexed_fields": [], // query indexes based on these fields for faster processing + "rate_prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "rate_suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "rate_exists_indexed_fields": [], // query indexes based on these fields for faster processing "rate_notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "rate_nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "verbosity": 1000, // number of increment iterations allowed - "opts":{ // - // "*profileIDs": [ // select the rate profiles used for cost calculation + "rate_nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "verbosity": 1000, // number of increment iterations allowed + "opts":{ + // "*profileIDs": [ // select the rate profiles used for cost calculation // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, - // ], - // "*startTime": [ // start time used for cost calculation - // { - // "Tenant": "*any", - // "FilterIDs": [], - // "Value": "*now", - // }, + // "Value": [] + // } // ], - // "*usage": [ // usage used for cost calculation + // "*startTime": [ // start time used for cost calculation // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "1m", - // }, + // "Value": "*now" + // } // ], - // "*intervalStart": [ // event interval start + // "*usage": [ // usage used for cost calculation // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "0", - // }, + // "Value": "1m" + // } // ], - // "*profileIgnoreFilters": [ // ignore the filters for rateProfileIDs + // "*intervalStart": [ // event interval start // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, - // ], - }, + // "Value": "0" + // } + // ], + // "*profileIgnoreFilters": [ // ignore the filters for rateProfileIDs + // { + // "Tenant": "*any", + // "FilterIDs": [], + // "Value": false + // } + // ] + } }, -"sip_agent": { // SIP Agents, only used for redirections - "enabled": false, // enables the SIP agent: - "listen": "127.0.0.1:5060", // address where to listen for SIP requests - "listen_net": "udp", // network to listen on +"sip_agent": { // SIP Agents, only used for redirections + "enabled": false, // enables the SIP agent: + "listen": "127.0.0.1:5060", // address where to listen for SIP requests + "listen_net": "udp", // network to listen on "sessions_conns": ["*internal"], - "timezone": "", // timezone of the events if not specified - "retransmission_timer": "1s", // the duration to wait to receive an ACK before resending the reply - "request_processors": [ // request processors to be applied to SIP messages - ], + "timezone": "", // timezone of the events if not specified + "retransmission_timer": "1s", // the duration to wait to receive an ACK before resending the reply + "request_processors": [] // request processors to be applied to SIP messages }, "janus_agent": { - "enabled": false, // enables the Janus agent: + "enabled": false, // enables the Janus agent: "url": "/janus", "sessions_conns": ["*internal"], - "janus_conns": [{ // instantiate connections to multiple Janus Servers - "address": "127.0.0.1:8088", // janus API address - "type": "*ws", // type of the transport to interact via janus API - "admin_address": "localhost:7188", // janus admin address used to retrive more information for sessions and handles - "admin_password": "", // secret to pass restriction to communicate to the endpoint + "janus_conns": [{ // instantiate connections to multiple Janus Servers + "address": "127.0.0.1:8088", // janus API address + "type": "*ws", // type of the transport to interact via janus API + "admin_address": "localhost:7188", // janus admin address used to retrive more information for sessions and handles + "admin_password": "" // secret to pass restriction to communicate to the endpoint }], - "request_processors": [], // request processors to be applied to Janus messages + "request_processors": [] // request processors to be applied to Janus messages }, "templates": { @@ -1759,7 +1759,7 @@ const CGRATES_CFG_JSON = ` {"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}, + "value": "~*vars.OriginRealm", "mandatory": true} ], "*cca": [ {"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable", @@ -1775,7 +1775,7 @@ const CGRATES_CFG_JSON = ` {"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}, + "value": "~*req.CC-Request-Number", "mandatory": true} ], "*asr": [ {"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable", @@ -1789,7 +1789,7 @@ const CGRATES_CFG_JSON = ` {"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}, + "value": "~*vars.*appid", "mandatory": true} ], "*rar": [ {"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable", @@ -1805,11 +1805,11 @@ const CGRATES_CFG_JSON = ` {"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"}, + "value": "0"} ], "*errSip": [ {"tag": "Request", "path": "*rep.Request", "type": "*constant", - "value": "SIP/2.0 500 Internal Server Error", "mandatory": true}, + "value": "SIP/2.0 500 Internal Server Error", "mandatory": true} ], "*cdrLog": [ // cdrLog template is used in ActionS to build the event that is send to CDRs in case of *cdrLog actionType {"tag": "ToR", "path": "*cdr.ToR", "type": "*variable", @@ -1837,113 +1837,113 @@ const CGRATES_CFG_JSON = ` {"tag": "AnswerTime", "path": "*cdr.AnswerTime", "type": "*constant", "value": "*now", "mandatory": true}, {"tag": "PreRated", "path": "*cdr.PreRated", "type": "*constant", - "value": "true", "mandatory": true}, - ], + "value": "true", "mandatory": true} + ] }, "configs": { "enabled": false, - "url": "/configs/", // configs url - "root_dir": "/var/spool/cgrates/configs", // root directory in case of calling /configs request + "url": "/configs/", // configs url + "root_dir": "/var/spool/cgrates/configs" // root directory in case of calling /configs request }, "apiban": { "enabled": false, - "keys": [], + "keys": [] }, -"sentrypeer":{ +"sentrypeer": { "client_id":"", "client_secret":"", "token_url":"https://authz.sentrypeer.com/oauth/token", "ips_url":"https://sentrypeer.com/api/ip-addresses", "numbers_url":"https://sentrypeer.com/api/phone-numbers", "audience":"https://sentrypeer.com/api", - "grant_type":"client_credentials", + "grant_type":"client_credentials" }, -"actions": { // ActionS config - "enabled": false, // starts attribute service: - "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> - "ees_conns": [], // connections to Ees for exporting event <""|*internal|$rpc_conns_id> - "thresholds_conns": [], // connections to ThresholdS for *reset_threshold action <""|*internal|$rpc_conns_id> - "stats_conns": [], // connections to StatS for *reset_stat_queue action: <""|*internal|$rpc_conns_id> - "accounts_conns": [], // connections to AccountS for *topup/*topup_reset action: <""|*internal|$rpc_conns_id> - "tenants":[], // List of tenants to operate on - "indexed_selects": true, // enable profile matching exclusively on indexes - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "dynaprepaid_actionprofile": [], // - "opts":{ - // "*profileIDs": [ +"actions": { + "enabled": false, // starts attribute service: + "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> + "ees_conns": [], // connections to Ees for exporting event <""|*internal|$rpc_conns_id> + "thresholds_conns": [], // connections to ThresholdS for *reset_threshold action <""|*internal|$rpc_conns_id> + "stats_conns": [], // connections to StatS for *reset_stat_queue action: <""|*internal|$rpc_conns_id> + "accounts_conns": [], // connections to AccountS for *topup/*topup_reset action: <""|*internal|$rpc_conns_id> + "tenants":[], // List of tenants to operate on + "indexed_selects": true, // enable profile matching exclusively on indexes + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "dynaprepaid_actionprofile": [], + "opts":{ + // "*profileIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], // "Value": [], - // }, + // } // ], - // "*profileIgnoreFilters": [ // ignore the filters for actionProfileIDs + // "*profileIgnoreFilters": [ // ignore the filters for actionProfileIDs // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, + // "Value": false + // } // ], - // "*posterAttempts": [ // poster attempts for HTTPPost action type + // "*posterAttempts": [ // poster attempts for HTTPPost action type // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": 1, - // }, - // ], - }, + // "Value": 1 + // } + // ] + } }, -"accounts": { // AccountS config - "enabled": false, // starts service: - "indexed_selects": true, // enable profile matching exclusively on indexes - "attributes_conns": [], // connections to AttributeS for account/balance updates, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> - "rates_conns": [], // connections to RatesS for account/balance updates, empty to disable rates functionality: <""|*internal|$rpc_conns_id> - "thresholds_conns": [], // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> - //"string_indexed_fields": [], // query indexes based on these fields for faster processing - "prefix_indexed_fields": [], // query indexes based on these fields for faster processing - "suffix_indexed_fields": [], // query indexes based on these fields for faster processing - "exists_indexed_fields": [], // query indexes based on these fields for faster processing - "notexists_indexed_fields": [], // query indexes based on these fields for faster processing - "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) - "max_iterations": 1000, // maximum number of iterations - "max_usage": "72h", // maximum time of usage - "opts":{ // - // "*profileIDs": [ // +"accounts": { + "enabled": false, // starts service: + "indexed_selects": true, // enable profile matching exclusively on indexes + "attributes_conns": [], // connections to AttributeS for account/balance updates, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> + "rates_conns": [], // connections to RatesS for account/balance updates, empty to disable rates functionality: <""|*internal|$rpc_conns_id> + "thresholds_conns": [], // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> + //"string_indexed_fields": [], // query indexes based on these fields for faster processing + "prefix_indexed_fields": [], // query indexes based on these fields for faster processing + "suffix_indexed_fields": [], // query indexes based on these fields for faster processing + "exists_indexed_fields": [], // query indexes based on these fields for faster processing + "notexists_indexed_fields": [], // query indexes based on these fields for faster processing + "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) + "max_iterations": 1000, // maximum number of iterations + "max_usage": "72h", // maximum time of usage + "opts":{ + // "*profileIDs": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": [], - // }, + // "Value": [] + // } // ], - // "*usage": [ // + // "*usage": [ // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": "72h", - // }, + // "Value": "72h" + // } // ], - // "*profileIgnoreFilters": [ // ignore the filters for accountIDs + // "*profileIgnoreFilters": [ // ignore the filters for accountIDs // { // "Tenant": "*any", // "FilterIDs": [], - // "Value": false, - // }, - // ], - }, + // "Value": false + // } + // ] + } }, @@ -1976,8 +1976,7 @@ const CGRATES_CFG_JSON = ` }, "tpes": { - "enabled": false, -}, - + "enabled": false +} }` diff --git a/data/conf/cgrates/cgrates.json b/data/conf/cgrates/cgrates.json index d1cee9740..1fe0f1776 100755 --- a/data/conf/cgrates/cgrates.json +++ b/data/conf/cgrates/cgrates.json @@ -7,87 +7,83 @@ // This is what you get when you load CGRateS with an empty configuration file. // "general": { -// "node_id": "", // identifier of this instance in the cluster, if empty it will be autogenerated -// "rounding_decimals": 5, // system level precision for floats -// "dbdata_encoding": "*msgpack", // encoding used to store object data in strings: <*msgpack|*json> -// "tpexport_dir": "/var/spool/cgrates/tpe", // path towards export folder for offline TariffPlans -// "default_request_type": "*rated", // default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated> -// "default_category": "call", // default category to consider when missing from requests -// "default_tenant": "cgrates.org", // default tenant to consider when missing from requests -// "default_timezone": "Local", // default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB> -// "default_caching": "*reload", // default actions to do when caching items -// "caching_delay": "0s", // add delay before cache reload -// "min_call_duration": "0s", // only authorize calls with allowed duration higher than this -// "max_call_duration": "3h", // maximum call duration a prepaid call can last -// "connect_attempts": 5, // initial server connect attempts -// "reconnects": -1, // number of retries in case of connection lost -// "max_reconnect_interval": "", // time to wait in between reconnect attempts -// "connect_timeout": "1s", // consider connection unsuccessful on timeout, 0 to disable the feature -// "reply_timeout": "2s", // consider connection down for replies taking longer than this value -// "locking_timeout": "0", // timeout internal locks to avoid deadlocks -// "digest_separator": ",", // separator to use in replies containing data digests -// "digest_equal": ":", // equal symbol used in case of digests -// "rsr_separator": ";", // separator used within RSR fields -// "max_parallel_conns": 100, // the maximum number of connection used by the *parallel strategy -// "decimal_max_scale": 0, // the maximum scale for decimal numbers -// "decimal_min_scale": 0, // the minimum scale for decimal numbers -// "decimal_precision": 0, // the precision of the decimal operations -// "decimal_rounding_mode": "*toNearestEven", // the rounding mode <*toNearestEven|*toNearestAway|*toZero|*awayFromZero|*toNegativeInf|*toPositiveInf|*toNearestTowardZero> -// "opts":{ // -// // "*exporterIDs": [ +// "node_id": "", // identifier of this instance in the cluster, if empty it will be autogenerated +// "rounding_decimals": 5, // system level precision for floats +// "dbdata_encoding": "*msgpack", // encoding used to store object data in strings: <*msgpack|*json> +// "tpexport_dir": "/var/spool/cgrates/tpe", // path towards export folder for offline TariffPlans +// "default_request_type": "*rated", // default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated> +// "default_category": "call", // default category to consider when missing from requests +// "default_tenant": "cgrates.org", // default tenant to consider when missing from requests +// "default_timezone": "Local", // default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB> +// "default_caching": "*reload", // default actions to do when caching items +// "caching_delay": "0s", // add delay before cache reload +// "min_call_duration": "0s", // only authorize calls with allowed duration higher than this +// "max_call_duration": "3h", // maximum call duration a prepaid call can last +// "connect_attempts": 5, // initial server connect attempts +// "reconnects": -1, // number of retries in case of connection lost +// "max_reconnect_interval": "", // time to wait in between reconnect attempts +// "connect_timeout": "1s", // consider connection unsuccessful on timeout, 0 to disable the feature +// "reply_timeout": "2s", // consider connection down for replies taking longer than this value +// "locking_timeout": "0", // timeout internal locks to avoid deadlocks +// "digest_separator": ",", // separator to use in replies containing data digests +// "digest_equal": ":", // equal symbol used in case of digests +// "rsr_separator": ";", // separator used within RSR fields +// "max_parallel_conns": 100, // the maximum number of connection used by the *parallel strategy +// "decimal_max_scale": 0, // the maximum scale for decimal numbers +// "decimal_min_scale": 0, // the minimum scale for decimal numbers +// "decimal_precision": 0, // the precision of the decimal operations +// "decimal_rounding_mode": "*toNearestEven", // the rounding mode <*toNearestEven|*toNearestAway|*toZero|*awayFromZero|*toNegativeInf|*toPositiveInf|*toNearestTowardZero> +// "opts":{ +// // "*exporterIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, -// // ], -// }, +// // "Value": [] +// // } +// // ] +// } // }, // "logger": { -// "type": "*syslog", // controls the destination of logs <*syslog|*stdout|*kafkaLog> -// "level": 6, // system level precision for floats -// "efs_conns": ["*internal"], // connID to efs service +// "type": "*syslog", // controls the destination of logs <*syslog|*stdout|*kafkaLog> +// "level": 6, // system level precision for floats +// "efs_conns": ["*internal"], // connID to efs service // "opts": { -// "kafka_conn": "", // the connection trough kafka -// "kafka_topic": "", // the topic from where the events are exported -// "kafka_attempts": 1, // number of attempts of connecting -// "failed_posts_dir": "/var/spool/cgrates/failed_posts" // path where fail logs are exported -// }, +// "kafka_conn": "", // the connection trough kafka +// "kafka_topic": "", // the topic from where the events are exported +// "kafka_attempts": 1, // number of attempts of connecting +// "failed_posts_dir": "/var/spool/cgrates/failed_posts" // path where fail logs are exported +// } // }, // "cores": { -// "caps": 0, // maximum concurrent request allowed ( 0 to disabled ) -// "caps_strategy": "*busy", // strategy in case of concurrent requests reached -// "caps_stats_interval": "0", // the interval duration we sample for caps stats ( 0 to disabled ) -// "ees_conns": [], // connections to EventExporter -// "shutdown_timeout": "1s" // the duration to wait until all services are stopped +// "caps": 0, // maximum concurrent request allowed ( 0 to disabled ) +// "caps_strategy": "*busy", // strategy in case of concurrent requests reached +// "caps_stats_interval": "0", // the interval duration we sample for caps stats ( 0 to disabled ) +// "ees_conns": [], // connections to EventExporter +// "shutdown_timeout": "1s" // the duration to wait until all services are stopped // }, - -// "rpc_conns": { +// "rpc_conns": { // rpc connections definitions // // "*localhost": { -// // "strategy": "*first" +// // "strategy": "*first", // // "poolsize": 0, // // "reply_timeout": "2s", -// // "conns": [ -// // { -// // "address": "127.0.0.1:2012", -// // "transport":"*json", -// // "connect_attempts": 5, -// // "reconnects": -1, -// // "max_reconnect_interval": "" -// // "connect_timeout":"1s", -// // "reply_timeout":"2s", -// // "tls":false, -// // "client_key":"", -// // "client_certificate":"", -// // "ca_certificate":"" -// // } -// // ], -// // }, -// }, // rpc connections definitions - +// // "conns": [{ +// // "address": "127.0.0.1:2012", +// // "transport": "*json", +// // "connect_attempts": 5, +// // "reconnects": -1, +// // "max_reconnect_interval": "", +// // "connect_timeout": "1s", +// // "reply_timeout": "2s", +// // "tls": false, +// // "client_key": "", +// // "client_certificate": "", +// // "ca_certificate": "" +// // }] +// // } +// }, // "data_db": { // database used to store runtime data (eg: accounts) // "db_type": "*redis", // data_db type: <*redis|*mongo> @@ -134,8 +130,7 @@ // "*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // "*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // "*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, -// "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, - +// "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false} // }, // "opts":{ // "redisMaxConns": 10, // the connection pool size @@ -178,7 +173,7 @@ // "mongoConnScheme": "mongodb" // scheme for MongoDB connection // }, // "items":{ -// "*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false}, +// "*cdrs": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate":false} // } // }, @@ -188,32 +183,32 @@ // "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 +// "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":"", +// "server_certificate" : "", // path to server certificate +// "server_key":"", // path to server key +// "client_certificate" : "", // path to client certificate +// "client_key":"", // path to client key +// "ca_certificate":"", // path to CA certificate (populate for self-signed certificate otherwise let it empty) +// "server_policy":4, // server_policy determines the TLS Client Authentication (0-NoClientCert, 1-RequestClientCert, 2-RequireAnyClientCert, 3-VerifyClientCertIfGiven, 4-RequireAndVerifyClientCert) +// "server_name":"" // }, -// "http": { // HTTP server configuration -// "json_rpc_url": "/jsonrpc", // JSON RPC relative URL ("" to disable) -// "registrars_url": "/registrar", // registrar service relative URL +// "http": { // HTTP server configuration +// "json_rpc_url": "/jsonrpc", // JSON RPC relative URL ("" to disable) +// "registrars_url": "/registrar", // registrar service relative URL // "prometheus_url": "/prometheus", -// "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 "}) +// "ws_url": "/ws", // WebSockets relative URL ("" to disable) +// "freeswitch_cdrs_url": "/freeswitch_json", // Freeswitch CDRS relative URL ("" to disable) +// "http_cdrs": "/cdr_http", // CDRS relative URL ("" to disable) +// "pprof_path": "/debug/pprof/", // endpoint for serving runtime profiling data for pprof visualization +// "use_basic_auth": false, // use basic authentication +// "auth_users": {}, // basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "}) // "client_opts":{ -// "skipTLSVerification": false, // if enabled Http Client will accept any TLS certificate +// "skipTLSVerification": false, // if enabled Http Client will accept any TLS certificate // // the options to configure the http.Transport // "tlsHandshakeTimeout": "10s", // "disableKeepAlives": false, @@ -228,166 +223,166 @@ // // the optins to configure the net.Dialer // "dialTimeout": "30s", // "dialFallbackDelay": "300ms", -// "dialKeepAlive": "30s", -// }, +// "dialKeepAlive": "30s" +// } // }, // "caches":{ // "partitions": { -// "*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resource profiles caching -// "*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resources caching -// "*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // matching resources to events +// "*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resource profiles caching +// "*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resources caching +// "*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // matching resources to events // "*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueue profiles -// "*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueues with metrics +// "*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueues with metrics // "*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control threshold profiles caching -// "*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching +// "*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching // "*trend_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control threshold profiles caching -// "*trends": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching -// "*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control filters caching -// "*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control route profile caching +// "*trends": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching +// "*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control filters caching +// "*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control route profile caching // "*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control attribute profile caching -// "*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control charger profile caching +// "*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control charger profile caching // "*dispatcher_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher profile caching -// "*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher hosts caching -// "*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control rate profile caching -// "*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control action profile caching +// "*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher hosts caching +// "*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control rate profile caching +// "*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control action profile caching // "*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control account profile caching -// "*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control resource filter indexes caching -// "*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control stat filter indexes caching -// "*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control threshold filter indexes caching -// "*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control route filter indexes caching -// "*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control attribute filter indexes caching -// "*ranking_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control ranking profile caching -// "*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control charger filter indexes caching -// "*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher filter indexes caching -// "*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate profile filter indexes caching -// "*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate filter indexes caching -// "*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control action profile filter indexes caching +// "*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control resource filter indexes caching +// "*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control stat filter indexes caching +// "*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control threshold filter indexes caching +// "*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control route filter indexes caching +// "*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control attribute filter indexes caching +// "*ranking_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control ranking profile caching +// "*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control charger filter indexes caching +// "*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher filter indexes caching +// "*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate profile filter indexes caching +// "*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate filter indexes caching +// "*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control action profile filter indexes caching // "*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control coount profile filter indexes caching -// "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control reverse filter indexes caching used only for set and remove filters -// "*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher routes caching -// "*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher load( in case of *ratio ConnParams is present) -// "*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher interface -// "*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // diameter messages caching -// "*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "remote":false, "replicate": false}, // RPC responses caching -// "*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // closed sessions cached for CDRs -// "*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // events proccessed by ChargerS -// "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "remote":false, "replicate": false}, // protects CDRs against double-charging -// "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control the load_ids for items -// "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // RPC connections caching -// "*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // User cache -// "*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // stirShaken cache keys +// "*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control reverse filter indexes caching used only for set and remove filters +// "*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher routes caching +// "*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher load( in case of *ratio ConnParams is present) +// "*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher interface +// "*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // diameter messages caching +// "*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "remote":false, "replicate": false}, // RPC responses caching +// "*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // closed sessions cached for CDRs +// "*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // events proccessed by ChargerS +// "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "remote":false, "replicate": false}, // protects CDRs against double-charging +// "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control the load_ids for items +// "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // RPC connections caching +// "*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // User cache +// "*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // stirShaken cache keys // "*apiban":{"limit": -1, "ttl": "2m", "static_ttl": false, "remote":false, "replicate": false}, -// "*sentrypeer":{"limit": -1, "ttl": "24h", "static_ttl": true, "remote":false, "replicate": false}, -// "*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // caps cached samples -// "*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // the replication hosts cache(used when replication_filtered is enbled) +// "*sentrypeer":{"limit": -1, "ttl": "24h", "static_ttl": true, "remote":false, "replicate": false}, +// "*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // caps cached samples +// "*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // the replication hosts cache(used when replication_filtered is enbled) // }, // "replication_conns": [], -// "remote_conns": [], // the conns that are queried when the items are not found in cache +// "remote_conns": [] // the conns that are queried when the items are not found in cache // }, -// "filters": { // Filters configuration (*new) -// "stats_conns": [], // connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "resources_conns": [], // connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "accounts_conns": [], // connections to AccountS for <*accounts> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "filters": { +// "stats_conns": [], // connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "resources_conns": [], // connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "accounts_conns": [] // connections to AccountS for <*accounts> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id> // }, -// "cdrs": { // CDRs config -// "enabled": false, // start the CDR Server: -// "extra_fields": [], // extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON) -// "session_cost_retries": 5, // number of queries to session_costs before recalculating CDR -// "chargers_conns": [], // connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id> -// "attributes_conns": [], // connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> -// "thresholds_conns": [], // connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> -// "stats_conns": [], // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports -// "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request -// "ees_conns": [], // connections to EventExporter -// "rates_conns": [], // connections to RateS -// "accounts_conns": [], // connections to AccountS +// "cdrs": { +// "enabled": false, // start the CDR Server: +// "extra_fields": [], // extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON) +// "session_cost_retries": 5, // number of queries to session_costs before recalculating CDR +// "chargers_conns": [], // connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id> +// "attributes_conns": [], // connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> +// "thresholds_conns": [], // connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> +// "stats_conns": [], // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports +// "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request +// "ees_conns": [], // connections to EventExporter +// "rates_conns": [], // connections to RateS +// "accounts_conns": [], // connections to AccountS // "opts": { // // "*accounts": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*attributes": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*chargers": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*ees": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*rates": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*stats": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*thresholds": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*refund": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*rerate": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*store": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": true, -// // }, -// // ], -// }, +// // "Value": true +// // } +// // ] +// } // }, -// "ers": { // EventReaderService -// "enabled": false, // starts the EventReader service: -// "sessions_conns":["*internal"], // RPC Connections IDs -// // "ees_conns": [], // connection for routing processed and invalid messages through EEs -// "partial_cache_ttl": "1s", // the duration to cache partial records when not pairing +// "ers": { // EventReaderService +// "enabled": false, // starts the EventReader service: +// "sessions_conns":["*internal"], // RPC Connections IDs +// // "ees_conns": [], // connection for routing processed and invalid messages through EEs +// "partial_cache_ttl": "1s", // the duration to cache partial records when not pairing // "readers": [ // { // "id": "*default", // identifier of the EventReader profile @@ -466,7 +461,7 @@ // // "natsCertificateAuthority": "", // the path to a custom certificate authority file( used by tls) // // "natsClientCertificate": "", // the path to a client certificate( used by tls) // // "natsClientKey": "", // the path to a client key( used by tls) -// // "natsJetStreamMaxWait": "5s", // the maximum amount of time to wait for a response +// // "natsJetStreamMaxWait": "5s" // the maximum amount of time to wait for a response // }, // "fields":[ // import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value // {"tag": "ToR", "path": "*cgreq.ToR", "type": "*variable", "value": "~*req.2", "mandatory": true}, @@ -487,18 +482,18 @@ // ] // }, -// "efs": { // ExportFailover service -// "enabled": false, // starts the EventReader service: -// "poster_attempts": 3, // number of attempts before considering post request failed (eg: *httpPost, CDR exports) +// "efs": { +// "enabled": false, // starts the EventReader service: +// "poster_attempts": 3, // number of attempts before considering post request failed (eg: *httpPost, CDR exports) // "failed_posts_dir": "/var/spool/cgrates/failed_posts", // directory path where we store failed requests -// "failed_posts_ttl": "5s", // time to wait before writing the failed posts in a single file +// "failed_posts_ttl": "5s" // time to wait before writing the failed posts in a single file // }, -// "ees": { // EventExporterService +// "ees": { // "enabled": false, // starts the EventReader service: // "attributes_conns":[], // RPC Connections IDs // "cache": { -// "*fileCSV": {"limit": -1, "ttl": "5s", "static_ttl": false}, +// "*fileCSV": {"limit": -1, "ttl": "5s", "static_ttl": false} // }, // "exporters": [ // { @@ -611,7 +606,7 @@ // // "connIDs": [], // connections for connManager to this exporter // // "rpcConnTimeout" : "1s", // connection unsuccesfull on timeout // // "rpcReplyTimeout":"2s", // connection down at replies if taking longer that this value -// // "rpcAPIOpts": {}, // opts that will be passed within APIOpts +// // "rpcAPIOpts": {} // opts that will be passed within APIOpts // }, // "fields":[] // import fields template, tag will match internally CDR field, in case of .csv value will be represented by index of the field value // } @@ -620,275 +615,282 @@ // "sessions": { -// "enabled": false, // starts the session service: -// "listen_bijson": "127.0.0.1:2014", // address where to listen for bidirectional JSON-RPC requests -// "listen_bigob": "", // address where to listen for bidirectional GOB-RPC requests -// "chargers_conns": [], // connections to ChargerS for session forking <""|*internal|$rpc_conns_id> -// "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> -// "resources_conns": [], // connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id> -// "thresholds_conns": [], // connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id> -// "stats_conns": [], // connections to StatS for reporting session events <""|*internal|$rpc_conns_id> -// "routes_conns": [], // connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id> -// "attributes_conns": [], // connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id> -// "replication_conns": [], // replicate sessions towards these session services -// "debit_interval": "0s", // interval to perform debits on. -// "store_session_costs": false, // enable storing of the session costs within CDRs -// "default_usage":{ // the usage if the event is missing the usage field +// "enabled": false, // starts the session service: +// "listen_bijson": "127.0.0.1:2014", // address where to listen for bidirectional JSON-RPC requests +// "listen_bigob": "", // address where to listen for bidirectional GOB-RPC requests +// "chargers_conns": [], // connections to ChargerS for session forking <""|*internal|$rpc_conns_id> +// "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> +// "resources_conns": [], // connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id> +// "thresholds_conns": [], // connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id> +// "stats_conns": [], // connections to StatS for reporting session events <""|*internal|$rpc_conns_id> +// "routes_conns": [], // connections to RouteS for querying routes for event <""|*internal|$rpc_conns_id> +// "attributes_conns": [], // connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id> +// "replication_conns": [], // replicate sessions towards these session services +// "debit_interval": "0s", // interval to perform debits on. +// "store_session_costs": false, // enable storing of the session costs within CDRs +// "default_usage":{ // the usage if the event is missing the usage field // "*any": "3h", // "*voice": "3h", // "*data": "1048576", -// "*sms": "1", +// "*sms": "1" // }, -// "session_ttl": "0s", // time after a session with no updates is terminated, not defined by default -// //"session_ttl_max_delay": "", // activates session_ttl randomization and limits the maximum possible delay -// //"session_ttl_last_used": "", // tweak LastUsed for sessions timing-out, not defined by default -// //"session_ttl_usage": "", // tweak Usage for sessions timing-out, not defined by default -// //"session_last_usage": "", // tweak LastUsage for session timing-out, not defined by default -// "session_indexes": [], // index sessions based on these fields for GetActiveSessions API -// "client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0"> -// "channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable) -// "terminate_attempts": 5, // attempts to get the session before terminating it -// "alterable_fields": [], // the session fields that can be updated -// //"min_dur_low_balance": "5s", // threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval) +// "session_ttl": "0s", // time after a session with no updates is terminated, not defined by default +// //"session_ttl_max_delay": "", // activates session_ttl randomization and limits the maximum possible delay +// //"session_ttl_last_used": "", // tweak LastUsed for sessions timing-out, not defined by default +// //"session_ttl_usage": "", // tweak Usage for sessions timing-out, not defined by default +// //"session_last_usage": "", // tweak LastUsage for session timing-out, not defined by default +// "session_indexes": [], // index sessions based on these fields for GetActiveSessions API +// "client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0"> +// "channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable) +// "terminate_attempts": 5, // attempts to get the session before terminating it +// "alterable_fields": [], // the session fields that can be updated +// //"min_dur_low_balance": "5s", // threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval) // "stir": { -// "allowed_attest": ["*any"], // the default attest for stir/shaken authentication <*any|A|B|C> -// "payload_maxduration": "-1", // the duration that stir header is valid after it was created -// "default_attest": "A", // the default attest level if not mentioned in API -// "publickey_path": "", // the path to the public key -// "privatekey_path": "", // the path to the private key +// "allowed_attest": ["*any"], // the default attest for stir/shaken authentication <*any|A|B|C> +// "payload_maxduration": "-1", // the duration that stir header is valid after it was created +// "default_attest": "A", // the default attest level if not mentioned in API +// "publickey_path": "", // the path to the public key +// "privatekey_path": "", // the path to the private key // }, -// "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request -// "rates_conns": [], // connections to RateS -// "accounts_conns": [], // connections to AccountS +// "actions_conns": [], // connections to SchedulerS in case of *dynaprepaid request +// "rates_conns": [], // connections to RateS +// "accounts_conns": [], // connections to AccountS // "opts": { // // "*accounts": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*attributes": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*cdrs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*chargers": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*resources": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*routes": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*stats": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*thresholds": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*initiate": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*update": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*terminate": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*message": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*attributesDerivedReply": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*blockerError": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*cdrsDerivedReply": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*resourcesAuthorize": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*resourcesAllocate": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*resourcesRelease": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*resourcesDerivedReply": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*routesDerivedReply": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*statsDerivedReply": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*thresholdsDerivedReply": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*maxUsage": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*forceDuration": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*ttl": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": "" +// // } // // ], // // "*chargeable": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], // // "*ttlLastUsage": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": "" +// // } // // ], // // "*ttlLastUsed": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": "" +// // } // // ], // // "*debitInterval": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": "" +// // } // // ], // // "*ttlMaxDelay": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": "" +// // } // // ], // // "*ttlUsage": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, -// // ], -// }, +// // "Value": "" +// // } +// // ] +// } // }, // "asterisk_agent": { -// "enabled": false, // starts the Asterisk agent: +// "enabled": false, // starts the Asterisk agent: // "sessions_conns": ["*birpc_internal"], -// "create_cdr": false, // create CDR out of events and sends it to CDRS component -// "asterisk_conns":[ // instantiate connections to multiple Asterisk servers -// {"address": "127.0.0.1:8088", "user": "cgrates", "password": "CGRateS.org", "connect_attempts": 3, "reconnects": 5, "max_reconnect_interval": ""} -// ], +// "create_cdr": false, // create CDR out of events and sends it to CDRS component +// "asterisk_conns":[ // instantiate connections to multiple Asterisk servers +// { +// "address": "127.0.0.1:8088", +// "user": "cgrates", +// "password": "CGRateS.org", +// "connect_attempts": 3, +// "reconnects": 5, +// "max_reconnect_interval": "" +// } +// ] // }, @@ -917,360 +919,360 @@ // "kamailio_agent": { -// "enabled": false, // starts Kamailio agent: +// "enabled": false, // starts Kamailio agent: // "sessions_conns": ["*birpc_internal"], -// "create_cdr": false, // create CDR out of events and sends them to CDRS component -// "timezone": "", // timezone of the Kamailio server -// "evapi_conns":[ // instantiate connections to multiple Kamailio servers -// {"address": "127.0.0.1:8448", "reconnects": 5, "max_reconnect_interval": ""} -// ], +// "create_cdr": false, // create CDR out of events and sends them to CDRS component +// "timezone": "", // timezone of the Kamailio server +// "evapi_conns":[ // instantiate connections to multiple Kamailio servers +// { +// "address": "127.0.0.1:8448", +// "reconnects": 5, +// "max_reconnect_interval": "" +// } +// ] // }, // "diameter_agent": { -// "enabled": false, // enables the diameter agent: -// "listen": "127.0.0.1:3868", // address where to listen for diameter requests -// "listen_net": "tcp", // transport type for diameter +// "enabled": false, // enables the diameter agent: +// "listen": "127.0.0.1:3868", // address where to listen for diameter requests +// "listen_net": "tcp", // transport type for diameter // "dictionaries_path": "/usr/share/cgrates/diameter/dict/", // path towards directory holding additional dictionaries to load // "sessions_conns": ["*birpc_internal"], -// "origin_host": "CGR-DA", // diameter Origin-Host AVP used in replies -// "origin_realm": "cgrates.org", // diameter Origin-Realm AVP used in replies -// "vendor_id": 0, // diameter Vendor-Id AVP used in replies -// "product_name": "CGRateS", // diameter Product-Name AVP used in replies -// "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> -// "request_processors": [ // list of processors to be applied to diameter messages -// ], +// "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> +// "request_processors": [] // list of processors to be applied to diameter messages // }, // "radius_agent": { -// "enabled": false, // enables the radius agent: -// "listen_net": "udp", // network to listen on -// "listen_auth": "127.0.0.1:1812", // address where to listen for radius authentication requests -// "listen_acct": "127.0.0.1:1813", // address where to listen for radius accounting requests -// "client_secrets": { // hash containing secrets for clients connecting here <*default|$client_ip> +// "enabled": false, // enables the radius agent: +// "listen_net": "udp", // network to listen on +// "listen_auth": "127.0.0.1:1812", // address where to listen for radius authentication requests +// "listen_acct": "127.0.0.1:1813", // address where to listen for radius accounting requests +// "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> +// "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 -// ], +// "request_processors": [] // request processors to be applied to Radius messages // }, -// "http_agent": [ // HTTP Agents, ie towards cnc.to MVNE platform -// ], +// "http_agent": [], // HTTP Agents, ie towards cnc.to MVNE platform // "dns_agent": { -// "enabled": false, // enables the DNS agent: +// "enabled": false, // enables the DNS agent: // "listeners":[ // { -// "address": "127.0.0.1:53", // address where to listen for DNS requests -// "network": "udp" // network to listen on +// "address": "127.0.0.1:53", // address where to listen for DNS requests +// "network": "udp" // network to listen on // } // ], // "sessions_conns": ["*internal"], -// "timezone": "", // timezone of the events if not specified -// "request_processors": [ // request processors to be applied to DNS messages -// ], +// "timezone": "", // timezone of the events if not specified +// "request_processors": [] // request processors to be applied to DNS messages // }, -// "attributes": { // AttributeS config -// "enabled": false, // starts attribute service: -// "stats_conns": [], // connections to StatS, empty to disable: <""|*internal|$rpc_conns_id> -// "resources_conns": [], // connections to ResourceS, empty to disable: <""|*internal|$rpc_conns_id> -// "accounts_conns": [], // connections to AccountS, empty to disable: <""|*internal|$rpc_conns_id> -// "indexed_selects": true, // enable profile matching exclusively on indexes +// "attributes": { +// "enabled": false, // starts attribute service: +// "stats_conns": [], // connections to StatS, empty to disable: <""|*internal|$rpc_conns_id> +// "resources_conns": [], // connections to ResourceS, empty to disable: <""|*internal|$rpc_conns_id> +// "accounts_conns": [], // connections to AccountS, empty to disable: <""|*internal|$rpc_conns_id> +// "indexed_selects": true, // enable profile matching exclusively on indexes // //"string_indexed_fields": [], // query indexes based on these fields for faster processing // "prefix_indexed_fields": [], // query indexes based on these fields for faster processing // "suffix_indexed_fields": [], // query indexes based on these fields for faster processing // "exists_indexed_fields": [], // query indexes based on these fields for faster processing // "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "opts":{ // -// // "*profileIDs": [ +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "opts":{ +// // "*profileIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, +// // "Value": [] +// // } // // ], -// // "*processRuns": [ // number of run loops when processing event +// // "*processRuns": [ // number of run loops when processing event // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 1, -// // }, -// // ], -// // "*profileRuns": [ // number of runs a profile will process during the event +// // "Value": 1 +// // } +// // ], +// // "*profileRuns": [ // number of runs a profile will process during the event // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 0, -// // }, -// // ], -// // "*profileIgnoreFilters": [ // ignore the filters for attributeIDs +// // "Value": 0 +// // } +// // ], +// // "*profileIgnoreFilters": [ // ignore the filters for attributeIDs // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, -// // ], -// }, +// // "Value": false +// // } +// // ] +// } // }, -// "chargers": { // ChargerS config -// "enabled": false, // starts charger service: . -// "attributes_conns": [], // connections to AttributeS for event fields altering <""|127.0.0.1:2013> -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "chargers": { +// "enabled": false, // starts charger service: +// "attributes_conns": [], // connections to AttributeS for event fields altering <""|127.0.0.1:2013> +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) // }, -// "resources": { // ResourceS config -// "enabled": false, // starts ResourceLimiter service: . -// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> -// "thresholds_conns": [], // connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "opts":{ // -// // "*usageID": [ +// "resources": { +// "enabled": false, // starts ResourceLimiter service: +// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> +// "thresholds_conns": [], // connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "opts":{ +// // "*usageID": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": "" +// // } // // ], -// // "*usageTTL": [ +// // "*usageTTL": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "72h", -// // }, +// // "Value": "72h" +// // } // // ], -// // "*units": [ +// // "*units": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 1, -// // }, -// // ], -// }, +// // "Value": 1 +// // } +// // ] +// } // }, -// "stats": { // StatS config -// "enabled": false, // starts Stat service: . -// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> -// "store_uncompressed_limit": 0, // used to compress data -// "thresholds_conns": [], // connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> -// "ees_conns": [], // connections to EEs for StatUpdates, empty to disable export functionality: <""|*internal|$rpc_conns_id> -// "ees_exporter_ids": [], // list of EventExporter profiles to use for real-time StatUpdate exports -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "opts": { // -// // "*profileIDs": [ +// "stats": { +// "enabled": false, // starts Stat service: +// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> +// "store_uncompressed_limit": 0, // used to compress data +// "thresholds_conns": [], // connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> +// "ees_conns": [], // connections to EEs for StatUpdates, empty to disable export functionality: <""|*internal|$rpc_conns_id> +// "ees_exporter_ids": [], // list of EventExporter profiles to use for real-time StatUpdate exports +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "opts": { +// // "*profileIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, +// // "Value": [] +// // } +// // ], +// // "*profileIgnoreFilters": [ // ignore the filters for statIDs +// // { +// // "Tenant": "*any", +// // "FilterIDs": [], +// // "Value": false +// // } // // ], -// // "*profileIgnoreFilters": [ // ignore the filters for statIDs +// // "*roundingDecimals": [ // ignore the filters for statIDs // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, -// // ], -// // "*roundingDecimals": [ // ignore the filters for statIDs -// // { -// // "Tenant": "*any", -// // "FilterIDs": [], -// // "Value": 5, -// // }, +// // "Value": 5 +// // } // // ], // // "*prometheusStatIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, -// // ], -// }, +// // "Value": [] +// // } +// // ] +// } // }, -// "thresholds": { // ThresholdS -// "enabled": false, // starts ThresholdS service: . -// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "actions_conns": [], // connections to ActionS to execute the actions -// "opts":{ // -// // "*thresholdsIDs": [ +// "thresholds": { +// "enabled": false, // starts ThresholdS service: +// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "actions_conns": [], // connections to ActionS to execute the actions +// "opts":{ +// // "*thresholdsIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, +// // "Value": [] +// // } // // ], -// // "*profileIgnoreFilters": [ // ignore the filters for thresholdIDs +// // "*profileIgnoreFilters": [ // ignore the filters for thresholdIDs // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, -// // ], -// }, +// // "Value": false +// // } +// // ] +// } // }, -// "trends":{ // TrendS config -// "enabled": false, // starts TrendS service: . -// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> -// "store_uncompressed_limit": 0, // used to compress metrics -// "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "scheduled_ids": {}, // autoload these trend ids on start -// "thresholds_conns": [], // connections to ThresholdS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "ees_conns": [], // connections to EEs for trendSummary, empty to disable export functionality: <""|*internal|$rpc_conns_id> -// "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time trendSummary exports +// "trends":{ +// "enabled": false, // starts TrendS service: . +// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> +// "store_uncompressed_limit": 0, // used to compress metrics +// "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "scheduled_ids": {}, // autoload these trend ids on start +// "thresholds_conns": [], // connections to ThresholdS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "ees_conns": [], // connections to EEs for trendSummary, empty to disable export functionality: <""|*internal|$rpc_conns_id> +// "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time trendSummary exports // }, -// "rankings":{ // RankingS config -// "enabled": false, // starts RankingS service: . -// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> -// "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "scheduled_ids": {}, // autoload these ranking ids on start -// "thresholds_conns": [], // connections to ThresholdS for rankingSummary reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> -// "ees_conns": [], // connections to EEs for rankingSummary events, empty to disable export functionality: <""|*internal|$rpc_conns_id> -// "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time rankingSummary exports +// "rankings":{ +// "enabled": false, // starts RankingS service: . +// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur> +// "stats_conns": [], // connections to StatS ,empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "scheduled_ids": {}, // autoload these ranking ids on start +// "thresholds_conns": [], // connections to ThresholdS for rankingSummary reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> +// "ees_conns": [], // connections to EEs for rankingSummary events, empty to disable export functionality: <""|*internal|$rpc_conns_id> +// "ees_exporter_ids": [] // list of EventExporter profiles to use for real-time rankingSummary exports // }, -// "routes": { // RouteS config -// "enabled": false, // starts RouteS service: . -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "attributes_conns": [], // connections to AttributeS for altering events before route queries: <""|*internal|$rpc_conns_id> -// "resources_conns": [], // connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id> -// "stats_conns": [], // connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "rates_conns": [], // connections to RateS -// "accounts_conns": [], // connections to AccountS -// "default_ratio":1, // default ratio used in case of *load strategy -// "opts":{ // -// // "*context": [ +// "routes": { +// "enabled": false, // starts RouteS service: . +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "attributes_conns": [], // connections to AttributeS for altering events before route queries: <""|*internal|$rpc_conns_id> +// "resources_conns": [], // connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id> +// "stats_conns": [], // connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id> +// "rates_conns": [], // connections to RateS +// "accounts_conns": [], // connections to AccountS +// "default_ratio":1, // default ratio used in case of *load strategy +// "opts":{ +// // "*context": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "*routes", -// // }, -// // ], -// // "*profileCount": [ -// // { -// // "Tenant": "*any", -// // "FilterIDs": [], -// // "Value": 1, -// // }, +// // "Value": "*routes" +// // } // // ], -// // "*ignoreErrors": [ +// // "*profileCount": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": 1 +// // } // // ], -// // "*maxCost": [ +// // "*ignoreErrors": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "", -// // }, +// // "Value": false +// // } // // ], -// // "*limit": [ +// // "*maxCost": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 1, -// // }, +// // "Value": "" +// // } // // ], -// // "*offset": [ +// // "*limit": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 1, -// // }, +// // "Value": 1 +// // } // // ], -// // "*maxItems": [ +// // "*offset": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 1, -// // }, +// // "Value": 1 +// // } // // ], -// // "*usage": [ +// // "*maxItems": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "1m", -// // }, +// // "Value": 1 +// // } // // ], -// }, +// // "*usage": [ +// // { +// // "Tenant": "*any", +// // "FilterIDs": [], +// // "Value": "1m" +// // } +// // ] +// } // }, -// "loaders": [ // LoaderS config +// "loaders": [ // { -// "id": "*default", // identifier of the Loader -// "enabled": false, // starts as service: . -// "tenant": "", // tenant used in filterS.Pass -// "run_delay": "0", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together -// "lockfile_path": ".cgr.lck", // Filename containing concurrency lock in case of delayed processing +// "id": "*default", // identifier of the Loader +// "enabled": false, // starts as service: . +// "tenant": "", // tenant used in filterS.Pass +// "run_delay": "0", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together +// "lockfile_path": ".cgr.lck", // Filename containing concurrency lock in case of delayed processing // "caches_conns": ["*internal"], -// "field_separator": ",", // separator used in case of csv files -// "tp_in_dir": "/var/spool/cgrates/loader/in", // absolute path towards the directory where the TPs are stored -// "tp_out_dir": "/var/spool/cgrates/loader/out", // absolute path towards the directory where processed TPs will be moved -// "action": "*store", // what should the loader do<*store|*parse|*remove|*dryRun> +// "field_separator": ",", // separator used in case of csv files +// "tp_in_dir": "/var/spool/cgrates/loader/in", // absolute path towards the directory where the TPs are stored +// "tp_out_dir": "/var/spool/cgrates/loader/out", // absolute path towards the directory where processed TPs will be moved +// "action": "*store", // what should the loader do<*store|*parse|*remove|*dryRun> // "opts": { // // "*cache": "*reload", // "*withIndex": true, // // "*forceLock": false, -// // "*stopOnError": false, +// // "*stopOnError": false // }, // "cache":{ // "*filters":{"limit": -1, "ttl": "5s", "static_ttl": false}, @@ -1284,23 +1286,23 @@ // "*dispatcher_hosts":{"limit": -1, "ttl": "5s", "static_ttl": false}, // "*rate_profiles":{"limit": -1, "ttl": "5s", "static_ttl": false}, // "*action_profiles":{"limit": -1, "ttl": "5s", "static_ttl": false}, -// "*accounts":{"limit": -1, "ttl": "5s", "static_ttl": false}, +// "*accounts":{"limit": -1, "ttl": "5s", "static_ttl": false} // }, -// "data":[ // data profiles to load +// "data":[ // data profiles to load // { -// "type": "*filters", // data source type -// "file_name": "Filters.csv", // file name in the tp_in_dir +// "type": "*filters", // data source type +// "file_name": "Filters.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, // {"tag": "Type", "path": "Rules.Type", "type": "*variable", "value": "~*req.2", "new_branch":true}, // {"tag": "Element", "path": "Rules.Element", "type": "*variable", "value": "~*req.3"}, -// {"tag": "Values", "path": "Rules.Values", "type": "*variable", "value": "~*req.4"}, -// ], +// {"tag": "Values", "path": "Rules.Values", "type": "*variable", "value": "~*req.4"} +// ] // }, // { -// "type": "*attributes", // data source type -// "file_name": "Attributes.csv", // file name in the tp_in_dir +// "type": "*attributes", // data source type +// "file_name": "Attributes.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "TenantID", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1308,15 +1310,15 @@ // {"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"}, // {"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"}, // {"tag": "AttributeFilterIDs", "path": "Attributes.FilterIDs", "type": "*variable", "value": "~*req.5","new_branch":true}, -// {"tag": "AttributeBlockers", "path": "Attributes.Blockers", "type": "*variable", "value": "~*req.6"}, +// {"tag": "AttributeBlockers", "path": "Attributes.Blockers", "type": "*variable", "value": "~*req.6"}, // {"tag": "Path", "path": "Attributes.Path", "type": "*variable", "value": "~*req.7"}, // {"tag": "Type", "path": "Attributes.Type", "type": "*variable", "value": "~*req.8"}, -// {"tag": "Value", "path": "Attributes.Value", "type": "*variable", "value": "~*req.9"}, -// ], +// {"tag": "Value", "path": "Attributes.Value", "type": "*variable", "value": "~*req.9"} +// ] // }, // { -// "type": "*resources", // data source type -// "file_name": "Resources.csv", // file name in the tp_in_dir +// "type": "*resources", // data source type +// "file_name": "Resources.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1327,12 +1329,12 @@ // {"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~*req.6"}, // {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"}, // {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~*req.8"}, -// {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"}, -// ], +// {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"} +// ] // }, // { -// "type": "*stats", // data source type -// "file_name": "Stats.csv", // file name in the tp_in_dir +// "type": "*stats", // data source type +// "file_name": "Stats.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1346,12 +1348,12 @@ // {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.9"}, // {"tag": "MetricIDs", "path": "Metrics.MetricID", "type": "*variable", "value": "~*req.10","new_branch":true}, // {"tag": "MetricFilterIDs", "path": "Metrics.FilterIDs", "type": "*variable", "value": "~*req.11"}, -// {"tag": "MetricBlockers", "path": "Metrics.Blockers", "type": "*variable", "value": "~*req.12"}, -// ], +// {"tag": "MetricBlockers", "path": "Metrics.Blockers", "type": "*variable", "value": "~*req.12"} +// ] // }, // { -// "type": "*thresholds", // data source type -// "file_name": "Thresholds.csv", // file name in the tp_in_dir +// "type": "*thresholds", // data source type +// "file_name": "Thresholds.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1362,12 +1364,12 @@ // {"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~*req.6"}, // {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~*req.7"}, // {"tag": "ActionProfileIDs", "path": "ActionProfileIDs", "type": "*variable", "value": "~*req.8"}, -// {"tag": "Async", "path": "Async", "type": "*variable", "value": "~*req.9"}, -// ], +// {"tag": "Async", "path": "Async", "type": "*variable", "value": "~*req.9"} +// ] // }, // { -// "type": "*routes", // data source type -// "file_name": "Routes.csv", // file name in the tp_in_dir +// "type": "*routes", // data source type +// "file_name": "Routes.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1384,12 +1386,12 @@ // {"tag": "RouteStatIDs", "path": "Routes.StatIDs", "type": "*variable", "value": "~*req.12"}, // {"tag": "RouteWeights", "path": "Routes.Weights", "type": "*variable", "value": "~*req.13"}, // {"tag": "RouteBlockers", "path": "Routes.Blockers", "type": "*variable", "value": "~*req.14"}, -// {"tag": "RouteParameters", "path": "Routes.RouteParameters", "type": "*variable", "value": "~*req.15"}, -// ], +// {"tag": "RouteParameters", "path": "Routes.RouteParameters", "type": "*variable", "value": "~*req.15"} +// ] // }, // { -// "type": "*chargers", // data source type -// "file_name": "Chargers.csv", // file name in the tp_in_dir +// "type": "*chargers", // data source type +// "file_name": "Chargers.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1397,12 +1399,12 @@ // {"tag": "Weights", "path": "Weights", "type": "*variable", "value": "~*req.3"}, // {"tag": "Blockers", "path": "Blockers", "type": "*variable", "value": "~*req.4"}, // {"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~*req.5"}, -// {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.6"}, -// ], +// {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~*req.6"} +// ] // }, // { -// "type": "*dispatchers", // data source type -// "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir +// "type": "*dispatchers", // data source type +// "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1414,12 +1416,12 @@ // {"tag": "ConnFilterIDs", "path": "Hosts.FilterIDs", "type": "*variable", "value": "~*req.7"}, // {"tag": "ConnWeight", "path": "Hosts.Weight", "type": "*variable", "value": "~*req.8"}, // {"tag": "ConnBlocker", "path": "Hosts.Blocker", "type": "*variable", "value": "~*req.9"}, -// {"tag": "ConnParameters", "path": "Hosts.Params", "type": "*variable", "value": "~*req.10"}, -// ], +// {"tag": "ConnParameters", "path": "Hosts.Params", "type": "*variable", "value": "~*req.10"} +// ] // }, // { -// "type": "*dispatcher_hosts", // data source type -// "file_name": "DispatcherHosts.csv", // file name in the tp_in_dir +// "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": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1433,12 +1435,12 @@ // {"tag": "TLS", "path": "TLS", "type": "*variable", "value": "~*req.9"}, // {"tag": "ClientKey", "path": "ClientKey", "type": "*variable", "value":"~*req.10"}, // {"tag": "ClientCertificate", "path": "ClientCertificate", "type": "*variable", "value":"~*req.11"}, -// {"tag": "CaCertificate", "path": "CaCertificate", "type": "*variable", "value":"~*req.12"}, -// ], +// {"tag": "CaCertificate", "path": "CaCertificate", "type": "*variable", "value":"~*req.12"} +// ] // }, // { -// "type": "*rate_profiles", // data source type -// "file_name": "Rates.csv", // file name in the tp_in_dir +// "type": "*rate_profiles", // data source type +// "file_name": "Rates.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1456,12 +1458,12 @@ // {"tag": "RateFixedFee", "path": "Rates[<~*req.7>].IntervalRates.FixedFee", "type": "*variable", "value": "~*req.13", "filters": ["*notempty:~*req.7:"]}, // {"tag": "RateRecurrentFee", "path": "Rates[<~*req.7>].IntervalRates.RecurrentFee", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.7:"]}, // {"tag": "RateUnit", "path": "Rates[<~*req.7>].IntervalRates.Unit", "type": "*variable", "value": "~*req.15", "filters": ["*notempty:~*req.7:"]}, -// {"tag": "RateIncrement", "path": "Rates[<~*req.7>].IntervalRates.Increment", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.7:"]}, -// ], +// {"tag": "RateIncrement", "path": "Rates[<~*req.7>].IntervalRates.Increment", "type": "*variable", "value": "~*req.16", "filters": ["*notempty:~*req.7:"]} +// ] // }, // { -// "type": "*action_profiles", // data source type -// "file_name": "Actions.csv", // file name in the tp_in_dir +// "type": "*action_profiles", // data source type +// "file_name": "Actions.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1477,12 +1479,12 @@ // {"tag": "ActionType", "path": "Actions[<~*req.8>].Type", "type": "*variable", "value": "~*req.11", "filters": ["*notempty:~*req.8:"]}, // {"tag": "ActionOpts", "path": "Actions[<~*req.8>].Opts", "type": "*variable", "value": "~*req.12", "filters": ["*notempty:~*req.8:"]}, // {"tag": "ActionPath", "path": "Actions[<~*req.8>].Diktats.Path", "type": "*variable", "value": "~*req.13","new_branch":true, "filters": ["*notempty:~*req.8:"]}, -// {"tag": "ActionValue", "path": "Actions[<~*req.8>].Diktats.Value", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.8:"]}, -// ], +// {"tag": "ActionValue", "path": "Actions[<~*req.8>].Diktats.Value", "type": "*variable", "value": "~*req.14", "filters": ["*notempty:~*req.8:"]} +// ] // }, // { -// "type": "*accounts", // data source type -// "file_name": "Accounts.csv", // file name in the tp_in_dir +// "type": "*accounts", // data source type +// "file_name": "Accounts.csv", // file name in the tp_in_dir // "fields": [ // {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~*req.0", "mandatory": true}, // {"tag": "ID", "path": "ID", "type": "*variable", "value": "~*req.1", "mandatory": true}, @@ -1501,53 +1503,53 @@ // {"tag": "BalanceCostIncrements", "path": "Balances[<~*req.6>].CostIncrements", "type": "*variable", "value": "~*req.14","filters": ["*notempty:~*req.6:"]}, // {"tag": "BalanceAttributeIDs", "path": "Balances[<~*req.6>].AttributeIDs", "type": "*variable", "value": "~*req.15","filters": ["*notempty:~*req.6:"]}, // {"tag": "BalanceRateProfileIDs", "path": "Balances[<~*req.6>].RateProfileIDs", "type": "*variable", "value": "~*req.16","filters": ["*notempty:~*req.6:"]}, -// {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.17"}, -// ], -// }, -// ], -// }, +// {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~*req.17"} +// ] +// } +// ] +// } // ], // "suretax": { -// "url": "", // API url -// "client_number": "", // client number, provided by SureTax -// "validation_key": "", // validation key provided by SureTax -// "business_unit": "", // client’s Business Unit -// "timezone": "Local", // convert the time of the events to this timezone before sending request out -// "include_local_cost": false, // sum local calculated cost with tax one in final cost -// "return_file_code": "0", // default or Quote purposes <0|Q> -// "response_group": "03", // determines how taxes are grouped for the response <03|13> -// "response_type": "D4", // determines the granularity of taxes and (optionally) the decimal precision for the tax calculations and amounts in the response -// "regulatory_code": "03", // provider type -// "client_tracking": "~*opts.*originID", // template extracting client information out of StoredCdr; -// "customer_number": "~*req.Subject", // template extracting customer number out of StoredCdr; -// "orig_number": "~*req.Subject", // template extracting origination number out of StoredCdr; -// "term_number": "~*req.Destination", // template extracting termination number out of StoredCdr; -// "bill_to_number": "", // template extracting billed to number out of StoredCdr; -// "zipcode": "", // template extracting billing zip code out of StoredCdr; -// "plus4": "", // template extracting billing zip code extension out of StoredCdr; -// "p2pzipcode": "", // template extracting secondary zip code out of StoredCdr; -// "p2pplus4": "", // template extracting secondary zip code extension out of StoredCdr; -// "units": "1", // template extracting number of “lines” or unique charges contained within the revenue out of StoredCdr; -// "unit_type": "00", // template extracting number of unique access lines out of StoredCdr; -// "tax_included": "0", // template extracting tax included in revenue out of StoredCdr; -// "tax_situs_rule": "04", // template extracting tax situs rule out of StoredCdr; -// "trans_type_code": "010101", // template extracting transaction type indicator out of StoredCdr; -// "sales_type_code": "R", // template extracting sales type code out of StoredCdr; -// "tax_exemption_code_list": "", // template extracting tax exemption code list out of StoredCdr; +// "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 +// "include_local_cost": false, // sum local calculated cost with tax one in final cost +// "return_file_code": "0", // default or Quote purposes <0|Q> +// "response_group": "03", // determines how taxes are grouped for the response <03|13> +// "response_type": "D4", // determines the granularity of taxes and (optionally) the decimal precision for the tax calculations and amounts in the response +// "regulatory_code": "03", // provider type +// "client_tracking": "~*opts.*originID", // template extracting client information out of StoredCdr; +// "customer_number": "~*req.Subject", // template extracting customer number out of StoredCdr; +// "orig_number": "~*req.Subject", // template extracting origination number out of StoredCdr; +// "term_number": "~*req.Destination", // template extracting termination number out of StoredCdr; +// "bill_to_number": "", // template extracting billed to number out of StoredCdr; +// "zipcode": "", // template extracting billing zip code out of StoredCdr; +// "plus4": "", // template extracting billing zip code extension out of StoredCdr; +// "p2pzipcode": "", // template extracting secondary zip code out of StoredCdr; +// "p2pplus4": "", // template extracting secondary zip code extension out of StoredCdr; +// "units": "1", // template extracting number of “lines” or unique charges contained within the revenue out of StoredCdr; +// "unit_type": "00", // template extracting number of unique access lines out of StoredCdr; +// "tax_included": "0", // template extracting tax included in revenue out of StoredCdr; +// "tax_situs_rule": "04", // template extracting tax situs rule out of StoredCdr; +// "trans_type_code": "010101", // template extracting transaction type indicator out of StoredCdr; +// "sales_type_code": "R", // template extracting sales type code out of StoredCdr; +// "tax_exemption_code_list": "", // template extracting tax exemption code list out of StoredCdr; // }, -// "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 +// "loader": { // loader for tariff plans out of .csv files +// "tpid": "", // tariff plan identificator +// "data_path": "./", // path towards tariff plan files +// "disable_reverse": false, // disable reverse computing +// "field_separator": ",", // separator used in case of csv files // "caches_conns":["*localhost"], // "actions_conns": ["*localhost"], // "gapi_credentials": ".gapi/credentials.json", // the path to the credentials for google API or the credentials.json file content -// "gapi_token": ".gapi/token.json" // the path to the token for google API or the token.json file content +// "gapi_token": ".gapi/token.json" // the path to the token for google API or the token.json file content // }, @@ -1582,18 +1584,18 @@ // }, -// "dispatchers":{ // DispatcherS config -// "enabled": false, // starts DispatcherS service: . -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "attributes_conns": [], // connections to AttributeS for API authorization, empty to disable auth functionality: <""|*internal|$rpc_conns_id> -// "opts": { // -// // "*dispatchers": [ +// "dispatchers":{ +// "enabled": false, // starts DispatcherS service: . +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "attributes_conns": [], // connections to AttributeS for API authorization, empty to disable auth functionality: <""|*internal|$rpc_conns_id> +// "opts": { +// // "*dispatchers": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], @@ -1609,124 +1611,123 @@ // "enabled": false, // "registrars_conns": [], // "hosts": [], -// "refresh_interval": "5m", +// "refresh_interval": "5m" // }, // "dispatchers":{ // "enabled": false, // "registrars_conns": [], // "hosts": [], -// "refresh_interval": "5m", -// }, +// "refresh_interval": "5m" +// } // }, -// "analyzers":{ // AnalyzerS config -// "enabled": false, // starts AnalyzerS service: . +// "analyzers":{ +// "enabled": false, // starts AnalyzerS service: . // "db_path": "/var/spool/cgrates/analyzers", // path to the folder where to store the information -// "index_type": "*scorch", // the type of index for the storage: <*internal|*scorch|*boltdb|*leveldb|*mossdb> -// "ttl": "24h", // time to wait before removing the API capture -// "ees_conns": [], // connections to EEs -// "cleanup_interval": "1h", // the interval we clean the db -// "opts":{ // -// // "*exporterIDs": [ +// "index_type": "*scorch", // the type of index for the storage: <*internal|*scorch|*boltdb|*leveldb|*mossdb> +// "ttl": "24h", // time to wait before removing the API capture +// "ees_conns": [], // connections to EEs +// "cleanup_interval": "1h", // the interval we clean the db +// "opts":{ +// // "*exporterIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, -// // ], -// }, +// // "Value": [] +// // } +// // ] +// } // }, // "admins": { // "enabled": false, // "caches_conns":["*internal"], -// "actions_conns": [], // connections to ActionS for reloads -// "attributes_conns": [], // connections to AttributeS for CDRExporter -// "ees_conns": [], // connections to EEs +// "actions_conns": [], // connections to ActionS for reloads +// "attributes_conns": [], // connections to AttributeS for CDRExporter +// "ees_conns": [] // connections to EEs // }, // "rates": { // "enabled": false, -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "rate_indexed_selects": true, // enable profile matching exclusively on indexes -// //"rate_string_indexed_fields": [], // query indexes based on these fields for faster processing -// "rate_prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "rate_suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "rate_exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "rate_indexed_selects": true, // enable profile matching exclusively on indexes +// //"rate_string_indexed_fields": [], // query indexes based on these fields for faster processing +// "rate_prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "rate_suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "rate_exists_indexed_fields": [], // query indexes based on these fields for faster processing // "rate_notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "rate_nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "verbosity": 1000, // number of increment iterations allowed -// "opts":{ // -// // "*profileIDs": [ // select the rate profiles used for cost calculation +// "rate_nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "verbosity": 1000, // number of increment iterations allowed +// "opts":{ +// // "*profileIDs": [ // select the rate profiles used for cost calculation // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, -// // ], -// // "*startTime": [ // start time used for cost calculation -// // { -// // "Tenant": "*any", -// // "FilterIDs": [], -// // "Value": "*now", -// // }, +// // "Value": [] +// // } // // ], -// // "*usage": [ // usage used for cost calculation +// // "*startTime": [ // start time used for cost calculation // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "1m", -// // }, +// // "Value": "*now" +// // } // // ], -// // "*intervalStart": [ // event interval start +// // "*usage": [ // usage used for cost calculation // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "0", -// // }, +// // "Value": "1m" +// // } // // ], -// // "*profileIgnoreFilters": [ // ignore the filters for rateProfileIDs +// // "*intervalStart": [ // event interval start // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, -// // ], -// }, +// // "Value": "0" +// // } +// // ], +// // "*profileIgnoreFilters": [ // ignore the filters for rateProfileIDs +// // { +// // "Tenant": "*any", +// // "FilterIDs": [], +// // "Value": false +// // } +// // ] +// } // }, -// "sip_agent": { // SIP Agents, only used for redirections -// "enabled": false, // enables the SIP agent: -// "listen": "127.0.0.1:5060", // address where to listen for SIP requests -// "listen_net": "udp", // network to listen on +// "sip_agent": { // SIP Agents, only used for redirections +// "enabled": false, // enables the SIP agent: +// "listen": "127.0.0.1:5060", // address where to listen for SIP requests +// "listen_net": "udp", // network to listen on // "sessions_conns": ["*internal"], -// "timezone": "", // timezone of the events if not specified -// "retransmission_timer": "1s", // the duration to wait to receive an ACK before resending the reply -// "request_processors": [ // request processors to be applied to SIP messages -// ], +// "timezone": "", // timezone of the events if not specified +// "retransmission_timer": "1s", // the duration to wait to receive an ACK before resending the reply +// "request_processors": [] // request processors to be applied to SIP messages // }, // "janus_agent": { -// "enabled": false, // enables the Janus agent: +// "enabled": false, // enables the Janus agent: // "url": "/janus", // "sessions_conns": ["*internal"], -// "janus_conns": [{ // instantiate connections to multiple Janus Servers -// "address": "127.0.0.1:8088", // janus API address -// "type": "*ws", // type of the transport to interact via janus API -// "admin_address": "localhost:7188", // janus admin address used to retrive more information for sessions and handles -// "admin_password": "", // secret to pass restriction to communicate to the endpoint +// "janus_conns": [{ // instantiate connections to multiple Janus Servers +// "address": "127.0.0.1:8088", // janus API address +// "type": "*ws", // type of the transport to interact via janus API +// "admin_address": "localhost:7188", // janus admin address used to retrive more information for sessions and handles +// "admin_password": "" // secret to pass restriction to communicate to the endpoint // }], -// "request_processors": [], // request processors to be applied to Janus messages +// "request_processors": [] // request processors to be applied to Janus messages // }, // "templates": { @@ -1736,7 +1737,7 @@ // {"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}, +// "value": "~*vars.OriginRealm", "mandatory": true} // ], // "*cca": [ // {"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable", @@ -1752,7 +1753,7 @@ // {"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}, +// "value": "~*req.CC-Request-Number", "mandatory": true} // ], // "*asr": [ // {"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable", @@ -1766,7 +1767,7 @@ // {"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}, +// "value": "~*vars.*appid", "mandatory": true} // ], // "*rar": [ // {"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable", @@ -1782,11 +1783,11 @@ // {"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"}, +// "value": "0"} // ], // "*errSip": [ // {"tag": "Request", "path": "*rep.Request", "type": "*constant", -// "value": "SIP/2.0 500 Internal Server Error", "mandatory": true}, +// "value": "SIP/2.0 500 Internal Server Error", "mandatory": true} // ], // "*cdrLog": [ // cdrLog template is used in ActionS to build the event that is send to CDRs in case of *cdrLog actionType // {"tag": "ToR", "path": "*cdr.ToR", "type": "*variable", @@ -1814,113 +1815,113 @@ // {"tag": "AnswerTime", "path": "*cdr.AnswerTime", "type": "*constant", // "value": "*now", "mandatory": true}, // {"tag": "PreRated", "path": "*cdr.PreRated", "type": "*constant", -// "value": "true", "mandatory": true}, -// ], +// "value": "true", "mandatory": true} +// ] // }, // "configs": { // "enabled": false, -// "url": "/configs/", // configs url -// "root_dir": "/var/spool/cgrates/configs", // root directory in case of calling /configs request +// "url": "/configs/", // configs url +// "root_dir": "/var/spool/cgrates/configs" // root directory in case of calling /configs request // }, // "apiban": { // "enabled": false, -// "keys": [], +// "keys": [] // }, -// "sentrypeer":{ +// "sentrypeer": { // "client_id":"", // "client_secret":"", // "token_url":"https://authz.sentrypeer.com/oauth/token", // "ips_url":"https://sentrypeer.com/api/ip-addresses", // "numbers_url":"https://sentrypeer.com/api/phone-numbers", // "audience":"https://sentrypeer.com/api", -// "grant_type":"client_credentials", +// "grant_type":"client_credentials" // }, -// "actions": { // ActionS config -// "enabled": false, // starts attribute service: -// "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> -// "ees_conns": [], // connections to Ees for exporting event <""|*internal|$rpc_conns_id> -// "thresholds_conns": [], // connections to ThresholdS for *reset_threshold action <""|*internal|$rpc_conns_id> -// "stats_conns": [], // connections to StatS for *reset_stat_queue action: <""|*internal|$rpc_conns_id> -// "accounts_conns": [], // connections to AccountS for *topup/*topup_reset action: <""|*internal|$rpc_conns_id> -// "tenants":[], // List of tenants to operate on -// "indexed_selects": true, // enable profile matching exclusively on indexes -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "dynaprepaid_actionprofile": [], // -// "opts":{ -// // "*profileIDs": [ +// "actions": { +// "enabled": false, // starts attribute service: +// "cdrs_conns": [], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id> +// "ees_conns": [], // connections to Ees for exporting event <""|*internal|$rpc_conns_id> +// "thresholds_conns": [], // connections to ThresholdS for *reset_threshold action <""|*internal|$rpc_conns_id> +// "stats_conns": [], // connections to StatS for *reset_stat_queue action: <""|*internal|$rpc_conns_id> +// "accounts_conns": [], // connections to AccountS for *topup/*topup_reset action: <""|*internal|$rpc_conns_id> +// "tenants":[], // List of tenants to operate on +// "indexed_selects": true, // enable profile matching exclusively on indexes +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "dynaprepaid_actionprofile": [], +// "opts":{ +// // "*profileIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], // // "Value": [], -// // }, +// // } // // ], -// // "*profileIgnoreFilters": [ // ignore the filters for actionProfileIDs +// // "*profileIgnoreFilters": [ // ignore the filters for actionProfileIDs // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, +// // "Value": false +// // } // // ], -// // "*posterAttempts": [ // poster attempts for HTTPPost action type +// // "*posterAttempts": [ // poster attempts for HTTPPost action type // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": 1, -// // }, -// // ], -// }, +// // "Value": 1 +// // } +// // ] +// } // }, -// "accounts": { // AccountS config -// "enabled": false, // starts service: -// "indexed_selects": true, // enable profile matching exclusively on indexes -// "attributes_conns": [], // connections to AttributeS for account/balance updates, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> -// "rates_conns": [], // connections to RatesS for account/balance updates, empty to disable rates functionality: <""|*internal|$rpc_conns_id> -// "thresholds_conns": [], // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> -// //"string_indexed_fields": [], // query indexes based on these fields for faster processing -// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing -// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing -// "exists_indexed_fields": [], // query indexes based on these fields for faster processing -// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing -// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) -// "max_iterations": 1000, // maximum number of iterations -// "max_usage": "72h", // maximum time of usage -// "opts":{ // -// // "*profileIDs": [ // +// "accounts": { +// "enabled": false, // starts service: +// "indexed_selects": true, // enable profile matching exclusively on indexes +// "attributes_conns": [], // connections to AttributeS for account/balance updates, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> +// "rates_conns": [], // connections to RatesS for account/balance updates, empty to disable rates functionality: <""|*internal|$rpc_conns_id> +// "thresholds_conns": [], // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> +// //"string_indexed_fields": [], // query indexes based on these fields for faster processing +// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing +// "suffix_indexed_fields": [], // query indexes based on these fields for faster processing +// "exists_indexed_fields": [], // query indexes based on these fields for faster processing +// "notexists_indexed_fields": [], // query indexes based on these fields for faster processing +// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level) +// "max_iterations": 1000, // maximum number of iterations +// "max_usage": "72h", // maximum time of usage +// "opts":{ +// // "*profileIDs": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": [], -// // }, +// // "Value": [] +// // } // // ], -// // "*usage": [ // +// // "*usage": [ // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": "72h", -// // }, +// // "Value": "72h" +// // } // // ], -// // "*profileIgnoreFilters": [ // ignore the filters for accountIDs +// // "*profileIgnoreFilters": [ // ignore the filters for accountIDs // // { // // "Tenant": "*any", // // "FilterIDs": [], -// // "Value": false, -// // }, -// // ], -// }, +// // "Value": false +// // } +// // ] +// } // }, @@ -1953,8 +1954,7 @@ // }, // "tpes": { -// "enabled": false, -// }, - +// "enabled": false +// } }