· 5 years ago · Jun 10, 2020, 04:54 PM
1{
2
3// Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
4// Copyright (C) ITsysCOM GmbH
5//
6// This file contains the default configuration hardcoded into CGRateS.
7// This is what you get when you load CGRateS with an empty configuration file.
8
9"general": {
10// "node_id": "", // identifier of this instance in the cluster, if empty it will be autogenerated
11//"logger":"*syslog", // controls the destination of logs <*syslog|*stdout>
12 "log_level": 6, // control the level of messages logged (0-emerg to 7-debug)
13// "http_skip_tls_verify": false, // if enabled HttpClient will accept any TLS certificate
14 "rounding_decimals": 10, // system level precision for floats
15// "dbdata_encoding": "*msgpack", // encoding used to store object data in strings: <*msgpack|*json>
16// "tpexport_dir": "/var/spool/cgrates/tpe", // path towards export folder for offline TariffPlans
17// "poster_attempts": 3, // number of attempts before considering post request failed (eg: *http_post, CDR exports)
18// "failed_posts_dir": "/var/spool/cgrates/failed_posts", // directory path where we store failed requests
19 "failed_posts_ttl": "5s", // time to wait before writing the failed posts in a single file
20 "default_request_type": "*postpaid", // default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated>
21// "default_category": "call", // default category to consider when missing from requests
22 "default_tenant": "softnet-mobil", // default tenant to consider when missing from requests
23// "default_timezone": "Local", // default timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
24// "default_caching":"*reload", // default actions to do when caching items
25// "connect_attempts": 5, // initial server connect attempts
26// "reconnects": -1, // number of retries in case of connection lost
27// "connect_timeout": "1s", // consider connection unsuccessful on timeout, 0 to disable the feature
28// "reply_timeout": "2s", // consider connection down for replies taking longer than this value
29// "locking_timeout": "0", // timeout internal locks to avoid deadlocks
30// "digest_separator": ",", // separator to use in replies containing data digests
31// "digest_equal": ":", // equal symbol used in case of digests
32// "rsr_separator": ";", // separator used within RSR fields
33// "max_parralel_conns": 100, // the maximum number of connection used by the *parallel strategy
34},
35
36
37// "rpc_conns": {
38// "*localhost": {
39// "conns": [{"address": "127.0.0.1:2012", "transport":"*json"}],
40// },
41// }, // rpc connections definitions
42
43
44"data_db": { // database used to store runtime data (eg: accounts)
45 "db_type": "*redis", // data_db type: <*redis|*mongo>
46 "db_host": "127.0.0.1", // data_db host address
47 "db_port": 6379, // data_db port to reach the database
48 "db_name": "10", // data_db database name to connect to
49// "db_user": "cgrates", // username to use when connecting to data_db
50// "db_password": "", // password to use when connecting to data_db
51// "redis_sentinel":"", // the name of sentinel when used
52// "query_timeout":"10s",
53// "remote_conns":[],
54// "replication_conns":[],
55// "items":{
56// "*accounts":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
57// "*reverse_destinations": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
58// "*destinations": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
59// "*rating_plans": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
60// "*rating_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
61// "*actions":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
62// "*action_plans": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
63// "*account_action_plans":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
64// "*action_triggers":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
65// "*shared_groups":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
66// "*timings": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
67// "*resource_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
68// "*resources":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
69// "*statqueue_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
70// "*statqueues": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
71// "*threshold_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
72// "*thresholds": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
73// "*filters": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
74// "*supplier_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
75// "*attribute_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
76// "*charger_profiles": {"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
77// "*dispatcher_profiles":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
78// "*dispatcher_hosts":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
79// "*filter_indexes" :{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
80// "*load_ids":{"remote":false, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
81// },
82},
83
84
85"stor_db": { // database used to store offline tariff plans and CDRs
86 "db_type": "*mysql", // stor database type to use: <*mongo|*mysql|*postgres|*internal>
87 //"db_host": "127.0.0.1", // the host to connect to
88 //"db_port": 3306, // the port to reach the stor_db
89 //"db_name": "cgrates", // stor database name
90 //"db_user": "cgrates", // username to use when connecting to stor_db
91 "db_password": "CGRateS.org", // password to use when connecting to stor_db
92 // "max_open_conns": 100, // maximum database connections opened, not applying for mongo
93 // "max_idle_conns": 10, // maximum database connections idle, not applying for mongo
94 // "conn_max_lifetime": 0, // maximum amount of time in seconds a connection may be reused (0 for unlimited), not applying for mongo
95 // "string_indexed_fields": [], // indexes on cdrs table to speed up queries, used in case of *mongo and *internal
96 // "prefix_indexed_fields":[], // prefix indexes on cdrs table to speed up queries, used in case of *internal
97 // "query_timeout":"10s",
98 // "sslmode":"disable", // sslmode in case of *postgres
99 // "items":{
100 // "session_costs": {"limit": -1, "ttl": "", "static_ttl": false},
101 // "cdrs": {"limit": -1, "ttl": "", "static_ttl": false},
102 // "tp_timings":{"limit": -1, "ttl": "", "static_ttl": false},
103 // "tp_destinations": {"limit": -1, "ttl": "", "static_ttl": false},
104 // "tp_rates": {"limit": -1, "ttl": "", "static_ttl": false},
105 // "tp_destination_rates": {"limit": -1, "ttl": "", "static_ttl": false},
106 // "tp_rating_plans":{"limit": -1, "ttl": "", "static_ttl": false},
107 // "tp_rating_profiles":{"limit": -1, "ttl": "", "static_ttl": false},
108 // "tp_shared_groups": {"limit": -1, "ttl": "", "static_ttl": false},
109 // "tp_actions":{"limit": -1, "ttl": "", "static_ttl": false},
110 // "tp_action_plans":{"limit": -1, "ttl": "", "static_ttl": false},
111 // "tp_action_triggers":{"limit": -1, "ttl": "", "static_ttl": false},
112 // "tp_account_actions": {"limit": -1, "ttl": "", "static_ttl": false},
113 // "tp_resources":{"limit": -1, "ttl": "", "static_ttl": false},
114 // "tp_stats":{"limit": -1, "ttl": "", "static_ttl": false},
115 // "tp_thresholds": {"limit": -1, "ttl": "", "static_ttl": false},
116 // "tp_filters": {"limit": -1, "ttl": "", "static_ttl": false},
117 // "tp_suppliers": {"limit": -1, "ttl": "", "static_ttl": false},
118 // "tp_attributes":{"limit": -1, "ttl": "", "static_ttl": false},
119 // "tp_chargers":{"limit": -1, "ttl": "", "static_ttl": false},
120 // "versions": {"limit": -1, "ttl": "", "static_ttl": false},
121 // "tp_dispatcher_profiles":{"limit": -1, "ttl": "", "static_ttl": false},
122 // "tp_dispatcher_hosts":{"limit": -1, "ttl": "", "static_ttl": false},
123 // },
124},
125
126
127"listen": {
128 "rpc_json": ":2012", // RPC JSON listening address
129 "rpc_gob": ":2013", // RPC GOB listening address
130 "http": ":2080", // HTTP listening address
131// "rpc_json_tls" : "127.0.0.1:2022", // RPC JSON TLS listening address
132// "rpc_gob_tls": "127.0.0.1:2023", // RPC GOB TLS listening address
133// "http_tls": "127.0.0.1:2280", // HTTP TLS listening address
134},
135
136
137// "tls": {
138// "server_certificate" : "", // path to server certificate
139// "server_key":"", // path to server key
140// "client_certificate" : "", // path to client certificate
141// "client_key":"", // path to client key
142// "ca_certificate":"", // path to CA certificate (populate for self-signed certificate otherwise let it empty)
143// "server_policy":4, // server_policy determines the TLS Client Authentication (0-NoClientCert, 1-RequestClientCert, 2-RequireAnyClientCert, 3-VerifyClientCertIfGiven, 4-RequireAndVerifyClientCert)
144// "server_name":"",
145// },
146
147
148 "http": { // HTTP server configuration
149 "json_rpc_url": "/jsonrpc", // JSON RPC relative URL ("" to disable)
150// "ws_url": "/ws", // WebSockets relative URL ("" to disable)
151// "freeswitch_cdrs_url": "/freeswitch_json", // Freeswitch CDRS relative URL ("" to disable)
152// "http_cdrs": "/cdr_http", // CDRS relative URL ("" to disable)
153// "use_basic_auth": false, // use basic authentication
154// "auth_users": {}, // basic authentication usernames and base64-encoded passwords (eg: { "username1": "cGFzc3dvcmQ=", "username2": "cGFzc3dvcmQy "})
155 },
156
157
158"schedulers": {
159 "enabled": true, // start Scheduler service: <true|false>
160 "cdrs_conns": ["*localhost"], // connections to CDRs for *cdrlog actions <""|*internal|$rpc_conns_id>
161 // "filters": [], // only execute actions matching these filters
162},
163
164
165// "caches":{
166// "partitions": {
167// "*destinations": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // destination caching
168// "*reverse_destinations": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // reverse destinations index caching
169// "*rating_plans": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // rating plans caching
170// "*rating_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // rating profiles caching
171// "*actions": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // actions caching
172// "*action_plans": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // action plans caching
173// "*account_action_plans": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // account action plans index caching
174// "*action_triggers": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // action triggers caching
175// "*shared_groups": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // shared groups caching
176// "*timings": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // timings caching
177// "*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control resource profiles caching
178// "*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control resources caching
179// "*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // matching resources to events
180// "*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // statqueue profiles
181// "*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // statqueues with metrics
182// "*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control threshold profiles caching
183// "*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control thresholds caching
184// "*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control filters caching
185// "*supplier_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control supplier profile caching
186// "*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control attribute profile caching
187// "*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control charger profile caching
188// "*dispatcher_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control dispatcher profile caching
189// "*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control dispatcher hosts caching
190// "*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control resource filter indexes caching
191// "*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control stat filter indexes caching
192// "*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control threshold filter indexes caching
193// "*supplier_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control supplier filter indexes caching
194// "*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control attribute filter indexes caching
195// "*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control charger filter indexes caching
196// "*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher filter indexes caching
197// "*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher routes caching
198// "*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher load ( in case of *load strategy )
199// "*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher interface
200// "*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "replicate": false}, // diameter messages caching
201// "*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "replicate": false}, // RPC responses caching
202// "*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "replicate": false}, // closed sessions cached for CDRs
203// "*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "replicate": false}, // protects CDRs against double-charging
204// "*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control the load_ids for items
205// "*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // RPC connections caching
206// "*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "replicate": false}, // User cache
207// },
208// "replication_conns": [],
209// },
210
211
212 "filters": { // Filters configuration (*new)
213 "stats_conns": ["*localhost"], // connections to StatS for <*stats> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
214 "resources_conns": ["*localhost"], // connections to ResourceS for <*resources> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
215 "apiers_conns": ["*localhost"], // connections to RALs for <*accounts> filters, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
216 },
217
218
219"rals": {
220 "enabled": true, // enable Rating/Accounting service: <true|false>
221 // "thresholds_conns": [], // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
222 "stats_conns": ["*localhost"], // connections to StatS for account/balance updates, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
223 // "caches_conns":["*internal"], // connections to CacheS for account/balance updates
224 // "rp_subject_prefix_matching": false, // enables prefix matching for the rating profile subject
225 // "remove_expired":true, // enables automatic removal of expired balances
226 // "max_computed_usage": { // do not compute usage higher than this, prevents memory overload
227 // "*any": "189h",
228 // "*voice": "72h",
229 // "*data": "107374182400",
230 // "*sms": "10000",
231 // "*mms": "10000"
232 // },
233 "max_increments": 10000000,
234 // "balance_rating_subject":{ // default rating subject in case that balance rating subject is empty
235 // "*any": "*zero1ns",
236 // "*voice": "*zero1s"
237 // },
238},
239
240
241"cdrs": { // CDRs config
242 "enabled": true, // start the CDR Server: <true|false>
243// "extra_fields": [], // extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON)
244 "store_cdrs": true, // store cdrs in StorDB
245// "session_cost_retries": 5, // number of queries to session_costs before recalculating CDR
246 "chargers_conns": ["*localhost"], // connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id>
247 "rals_conns": ["*localhost"], // connections to RALs for cost calculation: <""|*internal|$rpc_conns_id>
248 "attributes_conns": ["*localhost"], // connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id>
249// "thresholds_conns": [], // connection to ThresholdS for CDR reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
250 "stats_conns": ["*localhost"], // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
251// "online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports
252 },
253
254
255// "cdre": { // CDRe config
256// "*default": {
257// "export_format": "*file_csv", // exported CDRs format <*file_csv|*file_fwv|*http_post|*http_json_cdr|*http_json_map|*amqp_json_cdr|*amqp_json_map|*sqs_json_map>
258// "export_path": "/var/spool/cgrates/cdre", // path where the exported CDRs will be placed
259// "filters" :[], // filters for this export
260// "tenant": "", // tenant used in filterS.Pass
261// "synchronous": false, // block processing until export has a result
262// "attempts": 1, // export attempts
263// "field_separator": ",", // used field separator in some export formats, eg: *file_csv
264// "attributes_context": "", // attributes context - empty disables attributes processing
265// "fields": [ // template of the exported content fields
266// {"path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
267// {"path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
268// {"path": "*exp.ToR", "type": "*variable", "value": "~*req.ToR"},
269// {"path": "*exp.OriginID", "type": "*variable", "value": "~*req.OriginID"},
270// {"path": "*exp.RequestType", "type": "*variable", "value": "~*req.RequestType"},
271// {"path": "*exp.Tenant", "type": "*variable", "value": "~*req.Tenant"},
272// {"path": "*exp.Category", "type": "*variable", "value": "~*req.Category"},
273// {"path": "*exp.Account", "type": "*variable", "value": "~*req.Account"},
274// {"path": "*exp.Subject", "type": "*variable", "value": "~*req.Subject"},
275// {"path": "*exp.Destination", "type": "*variable", "value": "~*req.Destination"},
276// {"path": "*exp.SetupTime", "type": "*variable", "value": "~*req.SetupTime", "layout": "2006-01-02T15:04:05Z07:00"},
277// {"path": "*exp.AnswerTime", "type": "*variable", "value": "~*req.AnswerTime", "layout": "2006-01-02T15:04:05Z07:00"},
278// {"path": "*exp.Usage", "type": "*variable", "value": "~*req.Usage"},
279// {"path": "*exp.Cost", "type": "*variable", "value": "~*req.Cost", "rounding_decimals": 4},
280// ],
281// },
282
283
284
285"ers": { // EventReaderService
286 "enabled": true, // starts the EventReader service: <true|false>
287 "sessions_conns":["*localhost"], // RPC Connections IDs
288 "readers": [
289 {
290 "id": "Roaming_voice_out1", // identifier of the EventReader profile
291 "type": "*file_csv", // reader type <*file_csv>
292 //"row_length" : 0, // Number of fields from csv file
293 "field_separator": ";", // separator used in case of csv files
294 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
295 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
296 "source_path": "/usr/local/cdrs/TAP1", // read data from this path
297 "processed_path": "/usr/local/cdrs/TAP2", // move processed data here
298 // "xml_root_path": "", // path towards one event in case of XML CDRs
299 "tenant": "softnet-mobil", // tenant used by import
300 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
301 "filters": ["*string:~*req.5:20","*string:~*req.19:0","*string:~*req.20:11"], // limit parsing based on the filters
302 "flags": ["*message","*attributes","*log","*stats","*cdrs"], // flags to influence the event processing
303 "fields":[
304 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
305 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
306 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
307 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.6", "mandatory": true},
308 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
309 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.16", "mandatory": true},
310 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
311 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
312 {"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.4:s/(\\d+)/voice-${1}/", "mandatory": true},
313 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.6", "mandatory": true},
314 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.6", "mandatory": true},
315 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "value": "~*req.9", "mandatory": true},
316 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
317 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
318 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.16:s/(\\d+)/${1}s/", "mandatory": true},
319 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
320 ],
321 "cache_dump_fields": [],
322 },
323 {
324 "id": "Roaming_voice_out2", // identifier of the EventReader profile
325 "type": "*file_csv", // reader type <*file_csv>
326 //"row_length" : 0, // Number of fields from csv file
327 "field_separator": ";", // separator used in case of csv files
328 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
329 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
330 "source_path": "/usr/local/cdrs/TAP2", // read data from this path
331 "processed_path": "/usr/local/cdrs/TAP3", // move processed data here
332 // "xml_root_path": "", // path towards one event in case of XML CDRs
333 "tenant": "softnet-mobil", // tenant used by import
334 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
335 "filters": ["*string:~*req.5:20","*string:~*req.19:0","*string:~*req.20:10"], // limit parsing based on the filters
336 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
337 "fields":[
338 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
339 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
340 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
341 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.6", "mandatory": true},
342 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
343 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.16", "mandatory": true},
344 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
345 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
346 {"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.4:s/(\\d+)/voice-${1}/", "mandatory": true},
347 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.6", "mandatory": true},
348 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.6", "mandatory": true},
349 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "value": "~*req.9", "mandatory": true},
350 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
351 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
352 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.16:s/(\\d+)/${1}s/", "mandatory": true},
353 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
354 ],
355 "cache_dump_fields": [],
356 },
357 {
358 "id": "Roaming_voice_in1", // identifier of the EventReader profile
359 "type": "*file_csv", // reader type <*file_csv>
360 //"row_length" : 0, // Number of fields from csv file
361 "field_separator": ";", // separator used in case of csv files
362 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
363 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
364 "source_path": "/usr/local/cdrs/TAP3", // read data from this path
365 "processed_path": "/usr/local/cdrs/TAP4", // move processed data here
366 // "xml_root_path": "", // path towards one event in case of XML CDRs
367 "tenant": "softnet-mobil", // tenant used by import
368 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
369 "filters": ["*string:~*req.5:30","*string:~*req.19:0","*string:~*req.20:10"], // limit parsing based on the filters
370 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
371 "fields":[
372 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
373 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
374 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
375 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.6", "mandatory": true},
376 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
377 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.16", "mandatory": true},
378 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
379 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
380 {"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.4:s/(\\d+)/voice-${1}/", "mandatory": true},
381 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.6", "mandatory": true},
382 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.6", "mandatory": true},
383 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "value": "~*req.9", "mandatory": true},
384 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
385 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
386 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.16:s/(\\d+)/${1}s/", "mandatory": true},
387 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "in", "mandatory": true},
388 ],
389 "cache_dump_fields": [],
390 },
391
392 {
393 "id": "Roaming_voice_in2", // identifier of the EventReader profile
394 "type": "*file_csv", // reader type <*file_csv>
395 //"row_length" : 0, // Number of fields from csv file
396 "field_separator": ";", // separator used in case of csv files
397 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
398 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
399 "source_path": "/usr/local/cdrs/TAP4", // read data from this path
400 "processed_path": "/usr/local/cdrs_temp/TAP", // move processed data here
401 // "xml_root_path": "", // path towards one event in case of XML CDRs
402 "tenant": "softnet-mobil", // tenant used by import
403 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
404 "filters": ["*string:~*req.5:30","*string:~*req.19:0","*string:~*req.20:11"], //,"*notempty:~*req.9:" // limit parsing based on the filters
405 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
406 "fields":[
407 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
408 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
409 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
410 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.6", "mandatory": true},
411 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
412 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.16", "mandatory": true},
413 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
414 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
415 {"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.4:s/(\\d+)/voice-${1}/", "mandatory": true},
416 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.6", "mandatory": true},
417 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.6", "mandatory": true},
418 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "filters":["*empty:~*req.9:"],"value":"~*req.12:s/00(\\d+)(\\w+)/${1}/", "mandatory": true},
419 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable", "filters":["*notempty:~*req.9:"],"value":"~*req.9", "mandatory": true},
420 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
421 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.14", "mandatory": true},
422 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.16:s/(\\d+)/${1}s/", "mandatory": true},
423 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "in", "mandatory": true},
424 ],
425 "cache_dump_fields": [],
426 },
427 //
428 {
429 "id": "Voice_slo_112", // identifier of the EventReader profile
430 "type": "*file_csv", // reader type <*file_csv>
431 //"row_length" : 0, // Number of fields from csv file
432 "field_separator": ";", // separator used in case of csv files
433 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
434 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
435 "source_path": "/usr/local/cdrs/CCI_SLO_112", // read data from this path
436 "processed_path": "/usr/local/cdrs/CCI_SLO_VOICE_OUT", // move processed data here
437 // "xml_root_path": "", // path towards one event in case of XML CDRs
438 "tenant": "softnet-mobil", // tenant used by import
439 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
440 "filters": ["*string:~*req.4:MO","*string:~*req.19:12","*notempty:~*req.6:"], //,"*notempty:~*req.9:" // limit parsing based on the filters
441 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
442 "fields":[
443 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
444 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
445 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
446 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
447 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
448 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
449 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
450 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
451 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-voice", "mandatory": true},
452 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
453 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
454 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*constant","value":"112", "mandatory": true},
455 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
456 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
457 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.17:s/(\\d+)/${1}s/", "mandatory": true},
458 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
459 ],
460 "cache_dump_fields": [],
461 },
462 {
463 "id": "Voice_slo", // identifier of the EventReader profile
464 "type": "*file_csv", // reader type <*file_csv>
465 //"row_length" : 0, // Number of fields from csv file
466 "field_separator": ";", // separator used in case of csv files
467 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
468 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
469 "source_path": "/usr/local/cdrs/CCI_SLO_VOICE_OUT", // read data from this path
470 "processed_path": "/usr/local/cdrs/CCI_SLO_CF", // move processed data here
471 // "xml_root_path": "", // path towards one event in case of XML CDRs
472 "tenant": "softnet-mobil", // tenant used by import
473 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
474 "filters": ["*string:~*req.4:MO","*notempty:~*req.6:"], //,"*notempty:~*req.9:" // limit parsing based on the filters
475 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
476 "fields":[
477 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
478 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
479 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
480 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
481 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
482 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
483 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
484 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
485 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-voice", "mandatory": true},
486 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
487 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
488 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.6:s/^4\\-1\\-(\\d+)/386${1}/:s/^2\\-1\\-[0]([1-9]\\d+)/386${1}/:s/^2\\-1\\-[0][0](\\d+)/${1}/:s/^1\\-1\\-(\\d+)/${1}/:s/^2\\-1\\-(118[0,8])/386${1}/:s/^2\\-1\\-(195)/386${1}/:s/^2\\-1\\-(199[1,9])/386${1}/:s/^2\\-1\\-(1987)/386${1}/:s/^2\\-1\\-(1970)/386${1}/:s/^2\\-1\\-(19116)/386${1}/:s/^2\\-1\\-(113)/386${1}/:s/^2\\-1\\-(1808)/386${1}/:s/^2\\-1\\-(1320)/386${1}/", "mandatory": true},
489 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
490 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
491 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.17:s/(\\d+)/${1}s/", "mandatory": true},
492 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
493 ],
494 "cache_dump_fields": [],
495 },
496 {
497 "id": "Voice_slo_cf", // identifier of the EventReader profile
498 "type": "*file_csv", // reader type <*file_csv>
499 //"row_length" : 0, // Number of fields from csv file
500 "field_separator": ";", // separator used in case of csv files
501 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
502 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
503 "source_path": "/usr/local/cdrs/CCI_SLO_CF", // read data from this path
504 "processed_path": "/usr/local/cdrs/CCI_MMS_SLO_OUT", // move processed data here
505 // "xml_root_path": "", // path towards one event in case of XML CDRs
506 "tenant": "softnet-mobil", // tenant used by import
507 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
508 "filters": ["*string:~*req.4:CF"], //,"*notempty:~*req.9:" // limit parsing based on the filters
509 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
510 "fields":[
511 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
512 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
513 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
514 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
515 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
516 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
517 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
518 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
519 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-voice", "mandatory": true},
520 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
521 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
522 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.~6:s/^4\\-1\\-(\\d+)/386${1}/:s/^2\\-1\\-[0][1-9](\\d+)/386${1}/:s/^2\\-1\\-[0][0](\\d+)/${1}/:s/^1\\-1\\-(\\d+)/${1}/", "mandatory": true},
523 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
524 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
525 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.17", "mandatory": true},
526 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
527 ],
528 "cache_dump_fields": [],
529 },
530 {
531 "id": "MMS_slo_out", // identifier of the EventReader profile
532 "type": "*file_csv", // reader type <*file_csv>
533 //"row_length" : 0, // Number of fields from csv file
534 "field_separator": ";", // separator used in case of csv files
535 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
536 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
537 "source_path": "/usr/local/cdrs/CCI_MMS_SLO_OUT", // read data from this path
538 "processed_path": "/usr/local/cdrs/CCI_MMS_SLO_IN", // move processed data here
539 // "xml_root_path": "", // path towards one event in case of XML CDRs
540 "tenant": "softnet-mobil", // tenant used by import
541 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
542 "filters": ["*string:~*req.4:MMO"], //,"*notempty:~*req.9:" // limit parsing based on the filters
543 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
544 "fields":[
545 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*sms", "mandatory": true},
546 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
547 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
548 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
549 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
550 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
551 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
552 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
553 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-sms-mms", "mandatory": true},
554 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
555 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
556 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.~6:s/4\\-1\\-([1-9]\\d+)/386${1}/:s/1\\-1\\-([1-9]\\d+)/${1}/:s/2\\-1\\-00([1-9]\\d+)/${1}/:s/2\\-1\\-0([1-9]\\d+)/386${1}/:s/2\\-1\\-([1-9]\\d+)/${1}/", "mandatory": true},
557 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
558 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
559 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*constant", "value": "1", "mandatory": true},
560 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
561 ],
562 "cache_dump_fields": [],
563 },
564 {
565 "id": "MMS_slo_in", // identifier of the EventReader profile
566 "type": "*file_csv", // reader type <*file_csv>
567 //"row_length" : 0, // Number of fields from csv file
568 "field_separator": ";", // separator used in case of csv files
569 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
570 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
571 "source_path": "/usr/local/cdrs/CCI_MMS_SLO_IN", // read data from this path
572 "processed_path": "/usr/local/cdrs/CCI_SLO_VOICE_IN", // move processed data here
573 // "xml_root_path": "", // path towards one event in case of XML CDRs
574 "tenant": "softnet-mobil", // tenant used by import
575 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
576 "filters": ["*string:~*req.4:MMT"], //,"*notempty:~*req.9:" // limit parsing based on the filters
577 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
578 "fields":[
579 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*sms", "mandatory": true},
580 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
581 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
582 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
583 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
584 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
585 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
586 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
587 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-sms-mms-in", "mandatory": true},
588 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
589 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
590 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.~6:s/4\\-1\\-([1-9]\\d+)/386${1}/:s/1\\-1\\-([1-9]\\d+)/${1}/:s/2\\-1\\-00([1-9]\\d+)/${1}/:s/2\\-1\\-0([1-9]\\d+)/386${1}/:s/2\\-1\\-([1-9]\\d+)/${1}/", "mandatory": true},
591 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
592 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
593 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*constant", "value": "1", "mandatory": true},
594 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
595 ],
596 "cache_dump_fields": [],
597 },
598 {
599 "id": "slo_voice_in", // identifier of the EventReader profile
600 "type": "*file_csv", // reader type <*file_csv>
601 //"row_length" : 0, // Number of fields from csv file
602 "field_separator": ";", // separator used in case of csv files
603 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
604 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
605 "source_path": "/usr/local/cdrs/CCI_SLO_VOICE_IN", // read data from this path
606 "processed_path": "/usr/local/cdrs/CCI_SLO_DATA", // move processed data here
607 // "xml_root_path": "", // path towards one event in case of XML CDRs
608 "tenant": "softnet-mobil", // tenant used by import
609 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
610 "filters": ["*string:~*req.4:MMT"], //,"*notempty:~*req.9:" // limit parsing based on the filters
611 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
612 "fields":[
613 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*voice", "mandatory": true},
614 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
615 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
616 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
617 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
618 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
619 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
620 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
621 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-voice-in", "mandatory": true},
622 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
623 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
624 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.5:s/4\\-1\\-([1-9]\\d+)/386${1}/:s/1\\-1\\-([1-9]\\d+)/${1}/", "mandatory": true},
625 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
626 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
627 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.17:s/(\\d+)/${1}s/", "mandatory": true},
628 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "in", "mandatory": true},
629 ],
630 "cache_dump_fields": [],
631 },
632 {
633 "id": "slo_data1", // identifier of the EventReader profile
634 "type": "*file_csv", // reader type <*file_csv>
635 //"row_length" : 0, // Number of fields from csv file
636 "field_separator": ";", // separator used in case of csv files
637 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
638 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
639 "source_path": "/usr/local/cdrs/CCI_SLO_DATA", // read data from this path
640 "processed_path": "/usr/local/cdrs/CCI_EU_DATA", // move processed data here
641 // "xml_root_path": "", // path towards one event in case of XML CDRs
642 "tenant": "softnet-mobil",
643
644 //"data_usage_multiply_factor": 0.0009765625, "type": "*multiply", "value": "~*req.33:s/(\\d+)/${1}/;0.002"
645 // tenant used by import
646 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
647 "filters": ["*string:~*req.21:S_OTHER","*rsr::~*req.53(~.+,.+,FU_HOME:$)"], //,"*notempty:~*req.9:" // limit parsing based on the filters
648 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
649 "fields":[
650 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*data", "mandatory": true},
651 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
652 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
653 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
654 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
655 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
656 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
657 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
658 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-data", "mandatory": true},
659 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
660 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
661 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*constant","value":"38651123123", "mandatory": true},
662 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
663 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
664 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*multiply","value": "0.0009765625;~*req.33", "mandatory": true},
665 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
666 ],
667 "cache_dump_fields": [],
668 },
669 {
670 "id": "eu_data", // identifier of the EventReader profile
671 "type": "*file_csv", // reader type <*file_csv>
672 //"row_length" : 0, // Number of fields from csv file
673 "field_separator": ";", // separator used in case of csv files
674 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
675 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
676 "source_path": "/usr/local/cdrs/CCI_EU_DATA", // read data from this path
677 "processed_path": "/usr/local/cdrs/CCI_WORLD_DATA", // move processed data here
678 // "xml_root_path": "", // path towards one event in case of XML CDRs
679 "tenant": "softnet-mobil", // tenant used by import
680 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
681 "filters": ["*string:~*req.21:S_OTHER","*rsr::~*req.53(~.+,.+,FU_HO_EU:$)"], //,"*notempty:~*req.9:" // limit parsing based on the filters
682 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
683 "fields":[
684 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*data", "mandatory": true},
685 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
686 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
687 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
688 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
689 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
690 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
691 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
692 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "EU-data", "mandatory": true},
693 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
694 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
695 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*constant","value":"38651123123", "mandatory": true},
696 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
697 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
698 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.33", "mandatory": true},
699 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
700 ],
701 "cache_dump_fields": [],
702 },
703 {
704 "id": "roaming_data", // identifier of the EventReader profile
705 "type": "*file_csv", // reader type <*file_csv>
706 //"row_length" : 0, // Number of fields from csv file
707 "field_separator": ";", // separator used in case of csv files
708 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
709 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
710 "source_path": "/usr/local/cdrs/CCI_WORLD_DATA", // read data from this path
711 "processed_path": "/usr/local/cdrs/CCI_SLO_SMS_OUT", // move processed data here
712 // "xml_root_path": "", // path towards one event in case of XML CDRs
713 "tenant": "softnet-mobil", // tenant used by import
714 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
715 "filters": ["*string:~*req.21:S_OTHER","*rsr::~*req.53(~.+,.+,ACCOUNT_ROAM_WORLD:)"], //,"*notempty:~*req.9:" // limit parsing based on the filters
716 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
717 "fields":[
718 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*data", "mandatory": true},
719 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
720 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
721 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
722 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
723 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
724 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
725 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
726 {"tag": "Category", "path": "*cgreq.Category", "type": "*variable", "value": "~*req.12:s/([aA-zZ]\\w+)/data-${1}/:s/^$/data-SAT/:s/^$/data-sat/", "mandatory": true},
727 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
728 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
729 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*constant","value":"38651123123", "mandatory": true},
730 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
731 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
732 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.33", "mandatory": true},
733 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
734 ],
735 "cache_dump_fields": [],
736 },
737
738 {
739 "id": "Short_numbers", // identifier of the EventReader profile
740 "type": "*file_csv", // reader type <*file_csv>
741 //"row_length" : 0, // Number of fields from csv file
742 "field_separator": ";", // separator used in case of csv files
743 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
744 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
745 "source_path": "/usr/local/cdrs/EXTSERVICES", // read data from this path
746 "processed_path": "/usr/local/cdrs_temp/EXTSERVICES", // move processed data here
747 // "xml_root_path": "", // path towards one event in case of XML CDRs
748 "tenant": "softnet-mobil", // tenant used by import // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
749 "filters": ["*string:~*req.21:600000"], //,"*notempty:~*req.9:" // limit parsing based on the filters
750 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
751 "fields":[
752 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*sms", "mandatory": true},
753 {"tag": "OriginID", "path": "*cgreq.OriginID", "type": "*variable", "value": "~*req.13", "mandatory": true},
754 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*rated", "mandatory": true},
755 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
756 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "premium-sms", "mandatory": true},
757 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.~1:s/([1-9]\\d+)/386${1}/", "mandatory": true},
758 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.~1:s/([1-9]\\d+)/386${1}/", "mandatory": true},
759 {"tag": "Destination1", "path": "*cgreq.Destination", "type": "*composed","value":"~*req.6", "mandatory": true},
760 {"tag": "Destination2", "path": "*cgreq.Destination", "type": "*composed","value":".", "mandatory": true},
761 {"tag": "Destination2", "path": "*cgreq.Destination", "type": "*composed","value":"~*req.7", "mandatory": true},
762
763 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.18", "mandatory": true},
764 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.18", "mandatory": true},
765 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*variable", "value": "~*req.35", "mandatory": true},
766 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
767 {"tag": "Cost", "field_id": "Cost", "type": "*variable", "value": "~*req.10:s/(\\d+)(,)(\\d+)/${1}.${3}/", "mandatory": true},
768 {"tag": "Rated", "field_id": "Rated", "type": "*constant", "value": "^true", "mandatory": true},
769 ],
770 "cache_dump_fields": [],
771 },
772 {
773 "id": "slo_out_sms", // identifier of the EventReader profile
774 "type": "*file_csv", // reader type <*file_csv>
775 //"row_length" : 0, // Number of fields from csv file
776 "field_separator": ";", // separator used in case of csv files
777 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
778 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
779 "source_path": "/usr/local/cdrs/CCI_SLO_SMS_OUT", // read data from this path
780 "processed_path": "/usr/local/cdrs/CCI_SLO_SMS_IN", // move processed data here
781 // "xml_root_path": "", // path towards one event in case of XML CDRs
782 "tenant": "softnet-mobil", // tenant used by import
783 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
784 "filters": ["*string:~*req.4:SMS"], //,"*notempty:~*req.9:" // limit parsing based on the filters
785 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
786 "fields":[
787 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*sms", "mandatory": true},
788 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
789 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
790 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
791 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
792 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
793 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
794 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
795 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-sms-mms", "mandatory": true},
796 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
797 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
798 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.6:s/4\\-1\\-([1-9]\\d+)/386${1}/:s/1\\-1\\-([1-9]\\d+)/${1}/:s/2\\-1\\-00([1-9]\\d+)/${1}/:s/2\\-1\\-0([1-9]\\d+)/386${1}/:s/2\\-1\\-([1-9]\\d+)/${1}/:s/1\\-1\\-0([1-9]\\d+)/386${1}/:s/(6566)/386${1}/:s/2\\-1\\-(1808)/386${1}/", "mandatory": true},
799 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
800 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
801 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*constant", "value": "1", "mandatory": true},
802 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "out", "mandatory": true},
803 ],
804 "cache_dump_fields": [],
805 },
806 {
807 "id": "slo_in_sms", // identifier of the EventReader profile
808 "type": "*file_csv", // reader type <*file_csv>
809 //"row_length" : 0, // Number of fields from csv file
810 "field_separator": ";", // separator used in case of csv files
811 "run_delay": "-1", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
812 "concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
813 "source_path": "/usr/local/cdrs/CCI_SLO_SMS_IN", // read data from this path
814 "processed_path": "/usr/local/cdrs_temp/CCI", // move processed data here
815 // "xml_root_path": "", // path towards one event in case of XML CDRs
816 "tenant": "softnet-mobil", // tenant used by import
817 // "timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
818 "filters": ["*string:~*req.4:SMT"], //,"*notempty:~*req.9:" // limit parsing based on the filters
819 "flags": ["*message","*attributes","*log","*cdrs"], // flags to influence the event processing
820 "fields":[
821 {"tag": "ToR", "path": "*cgreq.ToR", "type": "*constant", "value": "*sms", "mandatory": true},
822 {"tag": "OriginID1", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.2", "mandatory": true},
823 {"tag": "OriginID2", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
824 {"tag": "OriginID3", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.3", "mandatory": true},
825 {"tag": "OriginID4", "path": "*cgreq.OriginID", "type": "*composed", "value": "_", "mandatory": true},
826 {"tag": "OriginID5", "path": "*cgreq.OriginID", "type": "*composed", "value": "~*req.4", "mandatory": true},
827 {"tag": "RequestType", "path": "*cgreq.RequestType", "type": "*constant", "value": "*postpaid", "mandatory": true},
828 {"tag": "Tenant", "path": "*cgreq.Tenant", "type": "*constant", "value": "softnet-mobil", "mandatory": true},
829 {"tag": "Category", "path": "*cgreq.Category", "type": "*constant", "value": "slo-sms-mms-in", "mandatory": true},
830 {"tag": "Account", "path": "*cgreq.Account", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
831 {"tag": "Subject", "path": "*cgreq.Subject", "type": "*variable", "value": "~*req.2:s/[0]([1-9]\\d+)/386${1}/", "mandatory": true},
832 {"tag": "Destination", "path": "*cgreq.Destination", "type": "*variable","value":"~*req.5:s/1\\-1\\-([1-9]\\d+)/${1}/:s/2\\-1\\-([1-9]\\d+)/${1}/:s/2\\-1\\-[0]([1-9]\\d+)/386${1}/:s/2\\-1\\-[0][0]([1-9]\\d+)/${1}/:s/(6566)/386${1}/", "mandatory": true},
833 {"tag": "SetupTime", "path": "*cgreq.SetupTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
834 {"tag": "AnswerTime", "path": "*cgreq.AnswerTime", "type": "*variable", "value": "~*req.16", "mandatory": true},
835 {"tag": "Usage", "path": "*cgreq.Usage", "type": "*constant", "value": "1", "mandatory": true},
836 {"tag": "Direction", "path": "*cgreq.Direction", "type": "*constant", "value": "in", "mandatory": true},
837 ],
838 "cache_dump_fields": [],
839 },
840
841
842 ],
843},
844
845
846"sessions": {
847 "enabled": true, // starts the session service: <true|false>
848// "listen_bijson": "127.0.0.1:2014", // address where to listen for bidirectional JSON-RPC requests
849 "chargers_conns": ["*localhost"], // connections to ChargerS for session forking <""|*internal|$rpc_conns_id> "rals_conns": ["*localhost"], // connections to RALs for rating/accounting <""|*internal|$rpc_conns_id>
850 "cdrs_conns": ["*localhost"], // connections to CDRs for CDR posting <""|*internal|$rpc_conns_id>
851 "resources_conns": ["*localhost"], // connections to ResourceS for resources monitoring <""|*internal|$rpc_conns_id>
852 // "thresholds_conns": [], // connections to ThresholdS for reporting session events <""|*internal|$rpc_conns_id>
853 "stats_conns": ["*localhost"], // connections to StatS for reporting session events <""|*internal|$rpc_conns_id>
854 // "suppliers_conns": [], // connections to SupplierS for querying suppliers for event <""|*internal|$rpc_conns_id>
855 "attributes_conns": ["*localhost"], // connections to AttributeS for altering event fields <""|*internal|$rpc_conns_id>
856 // "replication_conns": [], // replicate sessions towards these session services
857 // "debit_interval": "0s", // interval to perform debits on.
858 // "store_session_costs": false, // enable storing of the session costs within CDRs
859 // "min_call_duration": "0s", // only authorize calls with allowed duration higher than this
860 // "max_call_duration": "3h", // maximum call duration a prepaid call can last
861 // "session_ttl": "0s", // time after a session with no updates is terminated, not defined by default
862 // //"session_ttl_max_delay": "", // activates session_ttl randomization and limits the maximum possible delay
863 // //"session_ttl_last_used": "", // tweak LastUsed for sessions timing-out, not defined by default
864 // //"session_ttl_usage": "", // tweak Usage for sessions timing-out, not defined by default
865 // "session_indexes": [], // index sessions based on these fields for GetActiveSessions API
866 // "client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0">
867 // "channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable)
868 // "terminate_attempts": 5, // attempts to get the session before terminating it
869 // "alterable_fields": [], // the session fields that can be updated
870 // //"min_dur_low_balance": "5s", // threshold which will trigger low balance warnings for prepaid calls (needs to be lower than debit_interval)
871},
872
873
874// "asterisk_agent": {
875// "enabled": false, // starts the Asterisk agent: <true|false>
876// "sessions_conns": ["*internal"],
877// "create_cdr": false, // create CDR out of events and sends it to CDRS component
878// "asterisk_conns":[ // instantiate connections to multiple Asterisk servers
879// {"address": "127.0.0.1:8088", "user": "cgrates", "password": "CGRateS.org", "connect_attempts": 3,"reconnects": 5}
880// ],
881// },
882
883
884// "freeswitch_agent": {
885// "enabled": false, // starts the FreeSWITCH agent: <true|false>
886// "sessions_conns": ["*internal"],
887// "subscribe_park": true, // subscribe via fsock to receive park events
888// "create_cdr": false, // creates CDR out of events and sends them to CDRS component
889// "extra_fields": [], // extra fields to store in auth/CDRs when creating them
890// "low_balance_ann_file": "", // file to be played when low balance is reached for prepaid calls
891// "empty_balance_context": "", // if defined, prepaid calls will be transferred to this context on empty balance
892// "empty_balance_ann_file": "", // file to be played before disconnecting prepaid calls on empty balance (applies only if no context defined)
893// "max_wait_connection": "2s", // maximum duration to wait for a connection to be retrieved from the pool
894// "event_socket_conns":[ // instantiate connections to multiple FreeSWITCH servers
895// {"address": "127.0.0.1:8021", "password": "ClueCon", "reconnects": 5,"alias":""}
896// ],
897// },
898
899
900// "kamailio_agent": {
901// "enabled": false, // starts Kamailio agent: <true|false>
902// "sessions_conns": ["*internal"],
903// "create_cdr": false, // create CDR out of events and sends them to CDRS component
904// "timezone": "", // timezone of the Kamailio server
905// "evapi_conns":[ // instantiate connections to multiple Kamailio servers
906// {"address": "127.0.0.1:8448", "reconnects": 5}
907// ],
908// },
909
910
911// "diameter_agent": {
912// "enabled": false, // enables the diameter agent: <true|false>// "listen": "127.0.0.1:3868", // address where to listen for diameter requests <x.y.z.y/x1.y1.z1.y1:1234>
913// "listen_net": "tcp", // transport type for diameter <tcp|sctp>
914// "dictionaries_path": "/usr/share/cgrates/diameter/dict/", // path towards directory holding additional dictionaries to load
915// "sessions_conns": ["*internal"],
916// "origin_host": "CGR-DA", // diameter Origin-Host AVP used in replies
917// "origin_realm": "cgrates.org", // diameter Origin-Realm AVP used in replies
918// "vendor_id": 0, // diameter Vendor-Id AVP used in replies
919// "product_name": "CGRateS", // diameter Product-Name AVP used in replies
920// "concurrent_requests": -1, // limit the number of active requests processed by the server <-1|0-n>
921// "synced_conn_requests": false, // process one request at the time per connection
922// "asr_template": "", // enable AbortSession message being sent to client on DisconnectSession
923// "rar_template": "", // template used to build the Re-Auth-Request
924// "forced_disconnect": "*none", // the request to send to diameter on DisconnectSession <*none|*asr|*rar>
925// "templates":{ // default message templates
926// "*err": [
927// {"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable",
928// "value": "~*req.Session-Id", "mandatory": true},
929// {"tag": "OriginHost", "path": "*rep.Origin-Host", "type": "*variable",
930// "value": "~*vars.OriginHost", "mandatory": true},
931// {"tag": "OriginRealm", "path": "*rep.Origin-Realm", "type": "*variable",
932// "value": "~*vars.OriginRealm", "mandatory": true},
933// ],
934// "*cca": [
935// {"tag": "SessionId", "path": "*rep.Session-Id", "type": "*variable",
936// "value": "~*req.Session-Id", "mandatory": true},
937// {"tag": "ResultCode", "path": "*rep.Result-Code", "type": "*constant",
938// "value": "2001"},
939// {"tag": "OriginHost", "path": "*rep.Origin-Host", "type": "*variable",
940// "value": "~*vars.OriginHost", "mandatory": true},
941// {"tag": "OriginRealm", "path": "*rep.Origin-Realm", "type": "*variable",
942// "value": "~*vars.OriginRealm", "mandatory": true},
943// {"tag": "AuthApplicationId", "path": "*rep.Auth-Application-Id", "type": "*variable",
944// "value": "~*vars.*appid", "mandatory": true},
945// {"tag": "CCRequestType", "path": "*rep.CC-Request-Type", "type": "*variable",
946// "value": "~*req.CC-Request-Type", "mandatory": true},
947// {"tag": "CCRequestNumber", "path": "*rep.CC-Request-Number", "type": "*variable",
948// "value": "~*req.CC-Request-Number", "mandatory": true},
949// ],
950// "*asr": [
951// {"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable",
952// "value": "~*req.Session-Id", "mandatory": true},
953// {"tag": "OriginHost", "path": "*diamreq.Origin-Host", "type": "*variable",
954// "value": "~*req.Destination-Host", "mandatory": true},
955// {"tag": "OriginRealm", "path": "*diamreq.Origin-Realm", "type": "*variable",
956// "value": "~*req.Destination-Realm", "mandatory": true},
957// {"tag": "DestinationRealm", "path": "*diamreq.Destination-Realm", "type": "*variable",
958// "value": "~*req.Origin-Realm", "mandatory": true},
959// {"tag": "DestinationHost", "path": "*diamreq.Destination-Host", "type": "*variable",
960// "value": "~*req.Origin-Host", "mandatory": true},
961// {"tag": "AuthApplicationId", "path": "*diamreq.Auth-Application-Id", "type": "*variable",
962// "value": "~*vars.*appid", "mandatory": true},
963// ],
964// "*rar": [
965// {"tag": "SessionId", "path": "*diamreq.Session-Id", "type": "*variable",
966// "value": "~*req.Session-Id", "mandatory": true},
967// {"tag": "OriginHost", "path": "*diamreq.Origin-Host", "type": "*variable",
968// "value": "~*req.Destination-Host", "mandatory": true},
969// {"tag": "OriginRealm", "path": "*diamreq.Origin-Realm", "type": "*variable",
970// "value": "~*req.Destination-Realm", "mandatory": true},
971// {"tag": "DestinationRealm", "path": "*diamreq.Destination-Realm", "type": "*variable",
972// "value": "~*req.Origin-Realm", "mandatory": true},
973// {"tag": "DestinationHost", "path": "*diamreq.Destination-Host", "type": "*variable",
974// "value": "~*req.Origin-Host", "mandatory": true},
975// {"tag": "AuthApplicationId", "path": "*diamreq.Auth-Application-Id", "type": "*variable",
976// "value": "~*vars.*appid", "mandatory": true},
977// {"tag": "ReAuthRequestType", "path": "*diamreq.Re-Auth-Request-Type", "type": "*constant",
978// "value": "0"},
979// ]
980// },
981// "request_processors": [ // list of processors to be applied to diameter messages
982// ],
983// },
984
985
986// "radius_agent": {
987// "enabled": false, // enables the radius agent: <true|false>
988// "listen_net": "udp", // network to listen on <udp|tcp>
989// "listen_auth": "127.0.0.1:1812", // address where to listen for radius authentication requests <x.y.z.y:1234>
990// "listen_acct": "127.0.0.1:1813", // address where to listen for radius accounting requests <x.y.z.y:1234>
991// "client_secrets": { // hash containing secrets for clients connecting here <*default|$client_ip>
992// "*default": "CGRateS.org"
993// },
994// "client_dictionaries": { // per client path towards directory holding additional dictionaries to load (extra to RFC)
995// "*default": "/usr/share/cgrates/radius/dict/", // key represents the client IP or catch-all <*default|$client_ip>
996// },
997// "sessions_conns": ["*internal"],
998// "request_processors": [ // request processors to be applied to Radius messages
999// ],
1000// },
1001
1002
1003// "http_agent": [ // HTTP Agents, ie towards cnc.to MVNE platform
1004// ],
1005
1006
1007// "dns_agent": {
1008// "enabled": false, // enables the DNS agent: <true|false>
1009// "listen": "127.0.0.1:2053", // address where to listen for DNS requests <x.y.z.y:1234>
1010// "listen_net": "udp", // network to listen on <udp|tcp|tcp-tls>
1011// "sessions_conns": ["*internal"],
1012// "timezone": "", // timezone of the events if not specified <UTC|Local|$IANA_TZ_DB>
1013// "request_processors": [ // request processors to be applied to DNS messages// ],
1014// },
1015
1016
1017"attributes": { // AttributeS config
1018 "enabled": true, // starts attribute service: <true|false>.
1019// "indexed_selects":true, // enable profile matching exclusively on indexes
1020 //"string_indexed_fields": [], // query indexes based on these fields for faster processing
1021 // "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1022 // "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1023 "process_runs": 4, // number of run loops when processing event
1024},
1025
1026
1027"chargers": { // ChargerS config
1028 "enabled": true, // starts charger service: <true|false>.
1029 "attributes_conns": ["*localhost"], // connections to AttributeS for event fields altering <""|127.0.0.1:2013>
1030// "indexed_selects":true, // enable profile matching exclusively on indexes
1031 //"string_indexed_fields": [], // query indexes based on these fields for faster processing
1032 // "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1033 // "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1034},
1035
1036
1037"resources": { // ResourceS config
1038 "enabled": true, // starts ResourceLimiter service: <true|false>.
1039 // "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
1040 // "thresholds_conns": [], // connections to ThresholdS for resource reporting, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
1041 // "indexed_selects":true, // enable profile matching exclusively on indexes
1042 // "string_indexed_fields": [], // query indexes based on these fields for faster processing
1043 // "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1044 // "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1045},
1046
1047
1048 "stats": { // StatS config
1049 "enabled": true, // starts Stat service: <true|false>.
1050 "store_interval": "1s", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
1051// "store_uncompressed_limit": 0, // used to compress data
1052// "thresholds_conns": [], // connections to ThresholdS for StatUpdates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id>
1053// "indexed_selects":true, // enable profile matching exclusively on indexes
1054// "string_indexed_fields": [], // query indexes based on these fields for faster processing
1055// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1056// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1057 },
1058
1059
1060// "thresholds": { // ThresholdS
1061// "enabled": false, // starts ThresholdS service: <true|false>.
1062// "store_interval": "", // dump cache regularly to dataDB, 0 - dump at start/shutdown: <""|$dur>
1063// "indexed_selects":true, // enable profile matching exclusively on indexes
1064// "string_indexed_fields": [], // query indexes based on these fields for faster processing
1065// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1066// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1067// },
1068
1069
1070 "suppliers": { // SupplierS config
1071 "enabled": true, // starts SupplierS service: <true|false>.
1072// "indexed_selects":true, // enable profile matching exclusively on indexes
1073// "string_indexed_fields": [], // query indexes based on these fields for faster processing
1074// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1075// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1076// "attributes_conns": [], // connections to AttributeS for altering events before supplier queries: <""|*internal|$rpc_conns_id>
1077// "resources_conns": [], // connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id>
1078 "stats_conns": ["*localhost"], // connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
1079 "rals_conns": ["*localhost"], // connections to Rater for calculating cost, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
1080// "default_ratio":1 // default ratio used in case of *load strategy
1081 },
1082
1083
1084// "loaders": [ // LoaderS config
1085// {
1086// "id": "*default", // identifier of the Loader
1087// "enabled": false, // starts as service: <true|false>.
1088// "tenant": "", // tenant used in filterS.Pass
1089// "dry_run": false, // do not send the CDRs to CDRS, just parse them
1090// "run_delay": 0, // sleep interval in seconds between consecutive runs, 0 to use automation via inotify
1091// "lock_filename": ".cgr.lck", // Filename containing concurrency lock in case of delayed processing
1092// "caches_conns": ["*internal"],
1093// "field_separator": ",", // separator used in case of csv files
1094// "tp_in_dir": "/var/spool/cgrates/loader/in", // absolute path towards the directory where the TPs are stored
1095// "tp_out_dir": "/var/spool/cgrates/loader/out", // absolute path towards the directory where processed TPs will be moved
1096// "data":[ // data profiles to load
1097// {
1098// "type": "*attributes", // data source type
1099// "file_name": "Attributes.csv", // file name in the tp_in_dir
1100// "fields": [
1101// {"tag": "TenantID", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1102// {"tag": "ProfileID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1103// {"tag": "Contexts", "path": "Contexts", "type": "*variable", "value": "~2"},
1104// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~3"},
1105// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~4"},
1106// {"tag": "AttributeFilterIDs", "path": "AttributeFilterIDs", "type": "*variable", "value": "~5"},
1107// {"tag": "Path", "path": "Path", "type": "*variable", "value": "~6"},
1108// {"tag": "Type", "path": "Type", "type": "*variable", "value": "~7"},
1109// {"tag": "Value", "path": "Value", "type": "*variable", "value": "~8"},
1110// {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~9"},
1111// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~10"},
1112// ],
1113// },
1114// {
1115// "type": "*filters", // data source type
1116// "file_name": "Filters.csv", // file name in the tp_in_dir
1117// "fields": [
1118// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1119// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1120// {"tag": "Type", "path": "Type", "type": "*variable", "value": "~2"},
1121// {"tag": "Element", "path": "Element", "type": "*variable", "value": "~3"},
1122// {"tag": "Values", "path": "Values", "type": "*variable", "value": "~4"},
1123// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~5"},
1124// ],
1125// },
1126// {
1127// "type": "*resources", // data source type
1128// "file_name": "Resources.csv", // file name in the tp_in_dir
1129// "fields": [
1130// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1131// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1132// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
1133// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
1134// {"tag": "TTL", "path": "UsageTTL", "type": "*variable", "value": "~4"},
1135// {"tag": "Limit", "path": "Limit", "type": "*variable", "value": "~5"},
1136// {"tag": "AllocationMessage", "path": "AllocationMessage", "type": "*variable", "value": "~6"},
1137// {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~7"},
1138// {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~8"},
1139// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~9"},
1140// {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~10"},
1141// ],
1142// },
1143// {
1144// "type": "*stats", // data source type
1145// "file_name": "Stats.csv", // file name in the tp_in_dir
1146// "fields": [
1147// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1148// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1149// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
1150// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
1151// {"tag": "QueueLength", "path": "QueueLength", "type": "*variable", "value": "~4"},
1152// {"tag": "TTL", "path": "TTL", "type": "*variable", "value": "~5"},
1153// {"tag": "MinItems", "path": "MinItems", "type": "*variable", "value": "~6"},
1154// {"tag": "MetricIDs", "path": "MetricIDs", "type": "*variable", "value": "~7"},
1155// {"tag": "MetricFilterIDs", "path": "MetricFilterIDs", "type": "*variable", "value": "~8"},
1156// {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~9"},
1157// {"tag": "Stored", "path": "Stored", "type": "*variable", "value": "~10"},
1158// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~11"},
1159// {"tag": "ThresholdIDs", "path": "ThresholdIDs", "type": "*variable", "value": "~12"},
1160// ],
1161// },
1162// {
1163// "type": "*thresholds", // data source type
1164// "file_name": "Thresholds.csv", // file name in the tp_in_dir
1165// "fields": [
1166// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1167// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1168// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
1169// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
1170// {"tag": "MaxHits", "path": "MaxHits", "type": "*variable", "value": "~4"},
1171// {"tag": "MinHits", "path": "MinHits", "type": "*variable", "value": "~5"},
1172// {"tag": "MinSleep", "path": "MinSleep", "type": "*variable", "value": "~6"},
1173// {"tag": "Blocker", "path": "Blocker", "type": "*variable", "value": "~7"},
1174// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~8"},
1175// {"tag": "ActionIDs", "path": "ActionIDs", "type": "*variable", "value": "~9"},
1176// {"tag": "Async", "path": "Async", "type": "*variable", "value": "~10"},
1177// ],
1178// },
1179// {
1180// "type": "*suppliers", // data source type
1181// "file_name": "Suppliers.csv", // file name in the tp_in_dir
1182// "fields": [
1183// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1184// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1185// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
1186// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
1187// {"tag": "Sorting", "path": "Sorting", "type": "*variable", "value": "~4"},
1188// {"tag": "SortingParamameters", "path": "SortingParamameters", "type": "*variable", "value": "~5"},
1189// {"tag": "SupplierID", "path": "SupplierID", "type": "*variable", "value": "~6"},
1190// {"tag": "SupplierFilterIDs", "path": "SupplierFilterIDs", "type": "*variable", "value": "~7"},
1191// {"tag": "SupplierAccountIDs", "path": "SupplierAccountIDs", "type": "*variable", "value": "~8"},
1192// {"tag": "SupplierRatingPlanIDs", "path": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"},
1193// {"tag": "SupplierResourceIDs", "path": "SupplierResourceIDs", "type": "*variable", "value": "~10"},
1194// {"tag": "SupplierStatIDs", "path": "SupplierStatIDs", "type": "*variable", "value": "~11"},
1195// {"tag": "SupplierWeight", "path": "SupplierWeight", "type": "*variable", "value": "~12"},
1196// {"tag": "SupplierBlocker", "path": "SupplierBlocker", "type": "*variable", "value": "~13"},
1197// {"tag": "SupplierParameters", "path": "SupplierParameters", "type": "*variable", "value": "~14"},
1198// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~15"},
1199// ],
1200// },
1201// {
1202// "type": "*chargers", // data source type
1203// "file_name": "Chargers.csv", // file name in the tp_in_dir
1204// "fields": [
1205// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1206// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1207// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~2"},
1208// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~3"},
1209// {"tag": "RunID", "path": "RunID", "type": "*variable", "value": "~4"},
1210// {"tag": "AttributeIDs", "path": "AttributeIDs", "type": "*variable", "value": "~5"},
1211// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~6"},
1212// ],
1213// },
1214// {
1215// "type": "*dispatchers", // data source type
1216// "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir
1217// "fields": [
1218// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1219// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1220// {"tag": "Contexts", "path": "Contexts", "type": "*variable", "value": "~2"},
1221// {"tag": "FilterIDs", "path": "FilterIDs", "type": "*variable", "value": "~3"},
1222// {"tag": "ActivationInterval", "path": "ActivationInterval", "type": "*variable", "value": "~4"},
1223// {"tag": "Strategy", "path": "Strategy", "type": "*variable", "value": "~5"},
1224// {"tag": "StrategyParameters", "path": "StrategyParameters", "type": "*variable", "value": "~6"},
1225// {"tag": "ConnID", "path": "ConnID", "type": "*variable", "value": "~7"},
1226// {"tag": "ConnFilterIDs", "path": "ConnFilterIDs", "type": "*variable", "value": "~8"},
1227// {"tag": "ConnWeight", "path": "ConnWeight", "type": "*variable", "value": "~9"},
1228// {"tag": "ConnBlocker", "path": "ConnBlocker", "type": "*variable", "value": "~10"},
1229// {"tag": "ConnParameters", "path": "ConnParameters", "type": "*variable", "value": "~11"},
1230// {"tag": "Weight", "path": "Weight", "type": "*variable", "value": "~12"},
1231// ],
1232// },
1233// {
1234// "type": "*dispatcher_hosts", // data source type
1235// "file_name": "DispatcherHosts.csv", // file name in the tp_in_dir
1236// "fields": [
1237// {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true},
1238// {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true},
1239// {"tag": "Address", "path": "Address", "type": "*variable", "value": "~2"},
1240// {"tag": "Transport", "path": "Transport", "type": "*variable", "value": "~3"},
1241// {"tag": "TLS", "path": "TLS", "type": "*variable", "value": "~4"},
1242// ],
1243// },
1244// ],
1245// },
1246// ],
1247
1248
1249// "mailer": {
1250// "server": "localhost", // the server to use when sending emails out
1251// "auth_user": "cgrates", // authenticate to email server using this user
1252// "auth_password": "CGRateS.org", // authenticate to email server with this password
1253// "from_address": "cgr-mailer@localhost.localdomain" // from address used when sending emails out
1254// },
1255
1256
1257// "suretax": {
1258// "url": "", // API url
1259// "client_number": "", // client number, provided by SureTax
1260// "validation_key": "", // validation key provided by SureTax
1261// "business_unit": "", // client’s Business Unit
1262// "timezone": "Local", // convert the time of the events to this timezone before sending request out <UTC|Local|$IANA_TZ_DB>
1263// "include_local_cost": false, // sum local calculated cost with tax one in final cost
1264// "return_file_code": "0", // default or Quote purposes <0|Q>
1265// "response_group": "03", // determines how taxes are grouped for the response <03|13>
1266// "response_type": "D4", // determines the granularity of taxes and (optionally) the decimal precision for the tax calculations and amounts in the response
1267// "regulatory_code": "03", // provider type
1268// "client_tracking": "~*req.CGRID", // template extracting client information out of StoredCdr; <RSRParsers>
1269// "customer_number": "~*req.Subject", // template extracting customer number out of StoredCdr; <RSRParsers>
1270// "orig_number": "~*req.Subject", // template extracting origination number out of StoredCdr; <RSRParsers>
1271// "term_number": "~*req.Destination", // template extracting termination number out of StoredCdr; <RSRParsers>
1272// "bill_to_number": "", // template extracting billed to number out of StoredCdr; <RSRParsers>
1273// "zipcode": "", // template extracting billing zip code out of StoredCdr; <RSRParsers>
1274// "plus4": "", // template extracting billing zip code extension out of StoredCdr; <RSRParsers>
1275// "p2pzipcode": "", // template extracting secondary zip code out of StoredCdr; <RSRParsers>
1276// "p2pplus4": "", // template extracting secondary zip code extension out of StoredCdr; <RSRParsers>
1277// "units": "1", // template extracting number of “lines” or unique charges contained within the revenue out of StoredCdr; <RSRParsers>
1278// "unit_type": "00", // template extracting number of unique access lines out of StoredCdr; <RSRParsers>// "tax_included": "0", // template extracting tax included in revenue out of StoredCdr; <RSRParsers>
1279// "tax_situs_rule": "04", // template extracting tax situs rule out of StoredCdr; <RSRParsers>
1280// "trans_type_code": "010101", // template extracting transaction type indicator out of StoredCdr; <RSRParsers>
1281// "sales_type_code": "R", // template extracting sales type code out of StoredCdr; <RSRParsers>
1282// "tax_exemption_code_list": "", // template extracting tax exemption code list out of StoredCdr; <RSRParsers>
1283// },
1284
1285
1286// "loader": { // loader for tariff plans out of .csv files
1287// "tpid": "", // tariff plan identificator
1288// "data_path": "./", // path towards tariff plan files
1289// "disable_reverse": false, // disable reverse computing
1290// "field_separator": ",", // separator used in case of csv files
1291// "caches_conns":["*localhost"],
1292// "scheduler_conns": ["*localhost"],
1293// "gapi_credentials": ".gapi/credentials.json", // the path to the credentials for google API or the credentials.json file content
1294// "gapi_token": ".gapi/token.json" // the path to the token for google API or the token.json file content
1295// },
1296
1297
1298// "migrator": {
1299// "out_datadb_type": "redis",
1300// "out_datadb_host": "127.0.0.1",
1301// "out_datadb_port": "6379",
1302// "out_datadb_name": "10",
1303// "out_datadb_user": "cgrates",
1304// "out_datadb_password": "",
1305// "out_datadb_encoding" : "msgpack",
1306// "out_stordb_type": "mysql",
1307// "out_stordb_host": "127.0.0.1",
1308// "out_stordb_port": "3306",
1309// "out_stordb_name": "cgrates",
1310// "out_stordb_user": "cgrates",
1311// "out_stordb_password": "",
1312// "users_filters":[],
1313// },
1314
1315
1316// "dispatchers":{ // DispatcherS config
1317// "enabled": false, // starts DispatcherS service: <true|false>.
1318// "indexed_selects":true, // enable profile matching exclusively on indexes
1319// "string_indexed_fields": [], // query indexes based on these fields for faster processing
1320// "prefix_indexed_fields": [], // query indexes based on these fields for faster processing
1321// "nested_fields": false, // determines which field is checked when matching indexed filters(true: all; false: only the one on the first level)
1322// "attributes_conns": [], // connections to AttributeS for API authorization, empty to disable auth functionality: <""|*internal|$rpc_conns_id>
1323// },
1324
1325
1326"analyzers":{ // AnalyzerS config
1327 "enabled":true // starts AnalyzerS service: <true|false>.
1328},
1329
1330
1331"apiers": {
1332 "enabled": true,
1333// "caches_conns":["*internal"],
1334 "scheduler_conns": ["*localhost"], // connections to SchedulerS for reloads
1335 "attributes_conns": ["*localhost"], // connections to AttributeS for CDRExporter
1336},
1337
1338}