{
// CGRateS Configuration file
//

"general": {
 	"node_id": "DispatcherS1",
	"log_level": 7,
 	"reconnects": 1,	
},


"listen": {
	"rpc_json": ":2012",				// RPC JSON listening address
	"rpc_gob": ":2013",					// RPC GOB listening address
	"http": ":2080",					// HTTP listening address
},

"data_db": {								// database used to store runtime data (eg: accounts, cdr stats)
	"db_type": "mongo",					// stor database type to use: <mysql|postgres>
	"db_port": 27017, 						// the port to reach the stordb
	"db_name": "datadb",
	"db_password": "",
},

"stor_db": {
	"db_type": "mongo",					// stor database type to use: <mysql|postgres>
	"db_port": 27017, 						// the port to reach the stordb
	"db_name": "stordb",
	"db_password": "",
},

"attributes": {
	"enabled": true
},

"scheduler": {
	"enabled": true,				
},

"rals": {
	"enabled": true,
},

"dispatchers":{
 	"enabled": true,
 	// "attributes_conns": [
		// {"address": "*internal"},
 	// ],
},

"radius_agent": {
	"enabled": true,
	"request_processors": [
		{
			"id": "KamailioAuth",
			"filters": ["*string:~*vars.*radReqType:*radAuth"],
			"flags": ["*auth", "*accounts","*dispatchers"],
			"request_fields":[
				{"tag": "Category", "field_id": "Category", "type": "*constant", "value": "call"},
				// {"tag": "*api_key", "field_id": "*api_key", "type": "*constant", "value": "ses12345"},
				{"tag": "RequestType", "field_id": "RequestType", "type": "*constant", 
					"value": "*prepaid", "mandatory": true},	
				{"tag": "OriginID", "field_id": "OriginID", "type": "*composed", 
					"value": "~*req.Acct-Session-Id;-;~*req.Sip-From-Tag", "mandatory": true},
				{"tag": "Account", "field_id": "Account", "type": "*composed", 
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "Subject", "field_id": "Subject", "type": "*variable",
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "Destination", "field_id": "Destination", "type": "*composed", 
					"value": "~*req.Called-Station-Id", "mandatory": true},
				{"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed", 
					"value": "~*req.Event-Timestamp", "mandatory": true},
				{"tag": "AnswerTime", "field_id": "AnswerTime", "type": "*composed", 
					"value": "~*req.Event-Timestamp", "mandatory": true},
			],
			"reply_fields":[
				{"tag": "MaxUsage", "field_id": "SIP-AVP", "type": "*composed", 
					"value": "session_max_time#;~*cgrep.MaxUsage{*duration_seconds}", "mandatory": true},
			],
		},
		{
			"id": "KamailioAccountingStart",
			"filters": ["*string:~*req.Acct-Status-Type:Start"],
			"flags": ["*initiate", "*attributes", "*resources", "*accounts","*dispatchers"],
			"request_fields":[	
				{"tag": "Category", "field_id": "Category", "type": "*constant", "value": "call"},
				// {"tag": "*api_key", "field_id": "*api_key", "type": "*constant", "value": "ses12345"},
				{"tag": "RequestType", "field_id": "RequestType", "type": "*constant", 
					"value": "*prepaid", "mandatory": true},	
				{"tag": "OriginID", "field_id": "OriginID", "type": "*composed", 
					"value": "~*req.Acct-Session-Id;-;~*req.Sip-From-Tag;-;~*req.Sip-To-Tag", "mandatory": true},
				{"tag": "OriginHost", "field_id": "OriginHost", "type": "*composed", 
					"value": "~*req.NAS-IP-Address", "mandatory": true},
				{"tag": "Account", "field_id": "Account", "type": "*composed", 
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "Subject", "field_id": "Subject", "type": "*variable",
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "Destination", "field_id": "Destination", "type": "*composed", 
					"value": "~*req.Called-Station-Id", "mandatory": true},
				{"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed", 
					"value": "~*req.Ascend-User-Acct-Time", "mandatory": true},
				{"tag": "AnswerTime", "field_id": "AnswerTime", "type": "*composed", 
					"value": "~*req.Ascend-User-Acct-Time", "mandatory": true},
				{"tag": "RemoteAddr" , "field_id": "RemoteAddr", "type": "*remote_host"},
			],
			"reply_fields":[],
		},
		{
			"id": "KamailioAccountingStop",
			"filters": ["*string:~*req.Acct-Status-Type:Stop"],
			"flags": ["*terminate", "*resources", "*accounts", "*cdrs","*dispatchers"],
			"request_fields":[	
				{"tag": "Category", "field_id": "Category", "type": "*constant", "value": "call"},
				// {"tag": "*api_key", "field_id": "*api_key", "type": "*constant", "value": "ses12345"},
				{"tag": "RequestType", "field_id": "RequestType", "type": "*constant", 
					"value": "*prepaid", "mandatory": true},	
				{"tag": "OriginID", "field_id": "OriginID", "type": "*composed", 
					"value": "~*req.Acct-Session-Id;-;~*req.Sip-From-Tag;-;~*req.Sip-To-Tag", "mandatory": true},
				{"tag": "OriginHost", "field_id": "OriginHost", "type": "*composed", 
					"value": "~*req.NAS-IP-Address", "mandatory": true},
				{"tag": "Account", "field_id": "Account", "type": "*composed", 
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "Subject", "field_id": "Subject", "type": "*variable",
					"value": "~*req.User-Name", "mandatory": true},
				{"tag": "Destination", "field_id": "Destination", "type": "*composed", 
					"value": "~*req.Called-Station-Id", "mandatory": true},
				{"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed", 
					"value": "~*req.Ascend-User-Acct-Time", "mandatory": true},
				{"tag": "AnswerTime", "field_id": "AnswerTime", "type": "*composed", 
					"value": "~*req.Ascend-User-Acct-Time", "mandatory": true},
				{"tag": "Usage", "field_id": "Usage", "type": "*usage_difference", 
					"value": "~*req.Event-Timestamp;~*req.Ascend-User-Acct-Time", "mandatory": true},
				{"tag": "RemoteAddr" , "field_id": "RemoteAddr", "type": "*remote_host"},
			],
			"reply_fields":[],
		},
		
	],

},

"apier": {
	"scheduler_conns": [					// connections to SchedulerS for reloads
		{"address": "*internal"},
	],
},
}
