From e6834e1b784df96a115370fa54effe7db3d5c9ee Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 21 May 2020 16:57:36 +0300 Subject: [PATCH] Updated call tests --- agents/astagent.go | 5 ++++- agents/fsevent_test.go | 4 ++-- .../samples/tutmysql_internal/cgrates.json | 4 ++-- .../asterisk/etc/asterisk/extensions.conf | 2 +- .../cgrates/etc/cgrates/cgrates.json | 1 + .../cgrates/etc/cgrates/cgrates.json | 1 + .../freeswitch/etc/freeswitch_conf.tar.gz | Bin 27908 -> 27649 bytes .../etc/kamailio/kamailio-cgrates.cfg | 2 +- .../asterisk/etc/asterisk/extensions.conf | 2 +- .../cgrates/etc/cgrates/cgrates.json | 1 + .../cgrates/etc/cgrates/cgrates.json | 1 + .../freeswitch/etc/freeswitch_conf.tar.gz | Bin 27611 -> 27637 bytes .../etc/kamailio/kamailio-cgrates.cfg | 2 +- docs/diamagent.rst | 4 ++-- docs/ers.rst | 4 ++-- docs/sessions.rst | 6 +++--- docs/suppliers.rst | 2 +- general_tests/tutorial_calls_test.go | 2 +- utils/cgrevent_test.go | 18 +++++++++--------- 19 files changed, 34 insertions(+), 27 deletions(-) diff --git a/agents/astagent.go b/agents/astagent.go index 49195d2ba..46da18f39 100644 --- a/agents/astagent.go +++ b/agents/astagent.go @@ -321,7 +321,10 @@ func (sma *AsteriskAgent) handleChannelDestroyed(ev *SMAsteriskEvent) { if sma.cgrCfg.AsteriskAgentCfg().CreateCDR { if err := sma.connMgr.Call(sma.cgrCfg.AsteriskAgentCfg().SessionSConns, sma, utils.SessionSv1ProcessCDR, - cgrEvDisp, &reply); err != nil { + &utils.CGREventWithArgDispatcher{ + CGREvent: cgrEvDisp.CGREvent, + ArgDispatcher: cgrEvDisp.ArgDispatcher, + }, &reply); err != nil { utils.Logger.Err(fmt.Sprintf("<%s> Error: %s when attempting to process CDR for channelID: %s", utils.AsteriskAgent, err.Error(), ev.ChannelID())) } diff --git a/agents/fsevent_test.go b/agents/fsevent_test.go index d96f84aa4..1eb88a71a 100644 --- a/agents/fsevent_test.go +++ b/agents/fsevent_test.go @@ -639,7 +639,7 @@ func TestSliceAsFsArray(t *testing.T) { // Make sure processing of the hangup event produces the same output as FS-JSON CDR func TestSyncFsEventWithJsonCdr(t *testing.T) { body := []byte(` -{"core-uuid":"63e2315b-d538-4dfa-9ed5-af73ba6210b6","switchname":"teo","channel_data":{"state":"CS_REPORTING","state_number":"11","flags":"0=1;1=1;3=1;20=1;37=1;38=1;40=1;43=1;48=1;53=1;75=1;77=1;106=1;112=1;113=1;122=1;134=1","caps":"1=1;2=1;3=1;4=1;5=1;6=1"},"callStats":{"audio":{"inbound":{"raw_bytes":174156,"media_bytes":166416,"packet_count":1033,"media_packet_count":988,"skip_packet_count":7,"jitter_packet_count":0,"dtmf_packet_count":0,"cng_packet_count":0,"flush_packet_count":45,"largest_jb_size":0,"jitter_min_variance":0.500000,"jitter_max_variance":31.769231,"jitter_loss_rate":0,"jitter_burst_rate":0,"mean_interval":20.171779,"flaw_total":1,"quality_percentage":99,"mos":4.492027,"errorLog":[{"start":1521025783725905,"stop":1521025788366141,"flaws":10763,"consecutiveFlaws":0,"durationMS":4640}]},"outbound":{"raw_bytes":43344,"media_bytes":43344,"packet_count":252,"media_packet_count":252,"skip_packet_count":0,"dtmf_packet_count":0,"cng_packet_count":0,"rtcp_packet_count":0,"rtcp_octet_count":0}}},"variables":{"uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","session_id":"1","sip_from_user":"1001","sip_from_uri":"1001@192.168.56.202","sip_from_host":"192.168.56.202","channel_name":"sofia/internal/1001@192.168.56.202","ep_codec_string":"mod_spandsp.G722@8000h@20i@64000b,CORE_PCM_MODULE.PCMU@8000h@20i@64000b,CORE_PCM_MODULE.PCMA@8000h@20i@64000b,mod_spandsp.GSM@8000h@20i@13200b","sip_local_network_addr":"192.168.56.202","sip_network_ip":"192.168.56.1","sip_network_port":"5060","sip_invite_stamp":"1521025758006702","sip_received_ip":"192.168.56.1","sip_received_port":"5060","sip_via_protocol":"udp","sip_authorized":"true","Event-Name":"REQUEST_PARAMS","Core-UUID":"63e2315b-d538-4dfa-9ed5-af73ba6210b6","FreeSWITCH-Hostname":"teo","FreeSWITCH-Switchname":"teo","FreeSWITCH-IPv4":"10.0.2.15","FreeSWITCH-IPv6":"::1","Event-Date-Local":"2018-03-14 07:09:18","Event-Date-GMT":"Wed, 14 Mar 2018 11:09:18 GMT","Event-Date-Timestamp":"1521025758006702","Event-Calling-File":"sofia.c","Event-Calling-Function":"sofia_handle_sip_i_invite","Event-Calling-Line-Number":"10096","Event-Sequence":"1025","sip_number_alias":"1001","sip_auth_username":"1001","sip_auth_realm":"192.168.56.202","number_alias":"1001","requested_user_name":"1001","requested_domain_name":"192.168.56.202","record_stereo":"true","transfer_fallback_extension":"operator","toll_allow":"domestic,international,local","accountcode":"1001","user_context":"default","effective_caller_id_name":"Extension 1001","effective_caller_id_number":"1001","callgroup":"techsupport","cgr_reqtype":"*prepaid","cgr_flags":"*resources,*attributes,*sessions,*suppliers","user_name":"1001","domain_name":"192.168.56.202","sip_from_user_stripped":"1001","sofia_profile_name":"internal","recovery_profile_name":"internal","sip_req_user":"1002","sip_req_uri":"1002@192.168.56.202","sip_req_host":"192.168.56.202","sip_to_user":"1002","sip_to_uri":"1002@192.168.56.202","sip_to_host":"192.168.56.202","sip_contact_params":"transport=udp;registering_acc=192_168_56_202","sip_contact_user":"1001","sip_contact_port":"5060","sip_contact_uri":"1001@192.168.56.1:5060","sip_contact_host":"192.168.56.1","sip_via_host":"192.168.56.1","sip_via_port":"5060","presence_id":"1001@192.168.56.202","cgr_resource_allocation":"ResGroup1","cgr_suppliers":"ARRAY::3|:supplier2|:supplier3|:supplier1","cgr_notify":"AUTH_OK","max_forwards":"69","transfer_history":"1521025758:86c9ebb2-888f-42d5-9afa-2101449a4b86:bl_xfer:1002/default/XML","transfer_source":"1521025758:86c9ebb2-888f-42d5-9afa-2101449a4b86:bl_xfer:1002/default/XML","DP_MATCH":"ARRAY::1002|:1002","call_uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","call_timeout":"30","current_application_data":"user/1002@192.168.56.202","current_application":"bridge","dialed_user":"1002","dialed_domain":"192.168.56.202","originated_legs":"ARRAY::9c1afb4f-1d4a-4e45-84a3-d25721981bf5;Outbound Call;1002|:9c1afb4f-1d4a-4e45-84a3-d25721981bf5;Outbound Call;1002","switch_m_sdp":"v=0\r\no=1002-jitsi.org 0 0 IN IP4 192.168.56.1\r\ns=-\r\nc=IN IP4 192.168.56.1\r\nt=0 0\r\nm=audio 5004 RTP/AVP 9 0 8 3 101\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:3 GSM/8000\r\na=rtpmap:101 telephone-event/8000\r\n","rtp_use_codec_name":"G722","rtp_use_codec_rate":"8000","rtp_use_codec_ptime":"20","rtp_use_codec_channels":"1","rtp_last_audio_codec_string":"G722@8000h@20i@1c","read_codec":"G722","original_read_codec":"G722","read_rate":"16000","original_read_rate":"16000","write_codec":"G722","write_rate":"16000","local_media_ip":"192.168.56.202","local_media_port":"29014","advertised_media_ip":"192.168.56.202","rtp_use_timer_name":"soft","rtp_use_pt":"9","rtp_use_ssrc":"2729250253","endpoint_disposition":"ANSWER","originate_causes":"ARRAY::9c1afb4f-1d4a-4e45-84a3-d25721981bf5;NONE|:9c1afb4f-1d4a-4e45-84a3-d25721981bf5;NONE","originate_disposition":"SUCCESS","DIALSTATUS":"SUCCESS","last_bridge_to":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","bridge_channel":"sofia/internal/1002@192.168.56.1:5060","bridge_uuid":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","signal_bond":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","last_sent_callee_id_name":"Outbound Call","last_sent_callee_id_number":"1002","switch_r_sdp":"v=0\r\no=1001-jitsi.org 0 2 IN IP4 192.168.56.1\r\ns=-\r\nc=IN IP4 192.168.56.1\r\nt=0 0\r\nm=audio 5000 RTP/AVP 96 97 98 9 100 102 0 8 103 3 104 4 101\r\na=rtpmap:96 opus/48000/2\r\na=fmtp:96 usedtx=1\r\na=rtpmap:97 SILK/24000\r\na=rtpmap:98 SILK/16000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:100 speex/32000\r\na=rtpmap:102 speex/16000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:103 iLBC/8000\r\na=rtpmap:3 GSM/8000\r\na=rtpmap:104 speex/8000\r\na=rtpmap:4 G723/8000\r\na=fmtp:4 annexa=no;bitrate=6.3\r\na=rtpmap:101 telephone-event/8000\r\na=ptime:20\r\na=extmap:1 urn:ietf:params:rtp-hdrext:csrc-audio-level\r\na=extmap:2 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=rtcp-xr:voip-metrics\r\na=zrtp-hash:1.10 8e8dd2fa6803f32845f26e55879c776a4bc015ee05b41630313aee27ef77fb30\r\nm=video 5006 RTP/AVP 105 99\r\na=rtpmap:105 H264/90000\r\na=fmtp:105 profile-level-id=4DE01f;packetization-mode=1\r\na=rtpmap:99 H264/90000\r\na=fmtp:99 profile-level-id=4DE01f\r\na=recvonly\r\na=imageattr:105 send * recv [x=[1:1920],y=[1:1080]]\r\na=imageattr:99 send * recv [x=[1:1920],y=[1:1080]]\r\n","rtp_use_codec_string":"G722,PCMU,PCMA,GSM","r_sdp_audio_zrtp_hash":"1.10 8e8dd2fa6803f32845f26e55879c776a4bc015ee05b41630313aee27ef77fb30","audio_media_flow":"sendrecv","remote_media_ip":"192.168.56.1","remote_media_port":"5000","rtp_audio_recv_pt":"9","dtmf_type":"rfc2833","rtp_2833_send_payload":"101","rtp_2833_recv_payload":"101","video_possible":"true","video_media_flow":"sendonly","rtp_local_sdp_str":"v=0\r\no=FreeSWITCH 1520996753 1520996756 IN IP4 192.168.56.202\r\ns=FreeSWITCH\r\nc=IN IP4 192.168.56.202\r\nt=0 0\r\nm=audio 29014 RTP/AVP 9 101\r\na=rtpmap:9 G722/8000\r\na=rtpmap:101 telephone-event/8000\r\na=fmtp:101 0-16\r\na=ptime:20\r\na=sendrecv\r\nm=video 0 RTP/AVP 19\r\n","sip_to_tag":"aDUZXF1Z1vD6p","sip_from_tag":"df94d020","sip_cseq":"4","sip_call_id":"985e365faa0ec79a7fa75d001ef2449f@0:0:0:0:0:0:0:0","sip_full_via":"SIP/2.0/UDP 192.168.56.1:5060;branch=z9hG4bK-323230-ab335b3491dd24f5ec251b9700716b97","sip_from_display":"1001","sip_full_from":"\"1001\" ;tag=df94d020","sip_full_to":";tag=aDUZXF1Z1vD6p","sip_term_status":"200","proto_specific_hangup_cause":"sip:200","sip_term_cause":"16","last_bridge_role":"originator","sip_user_agent":"Jitsi2.10.5550Windows 10","sip_hangup_disposition":"recv_bye","bridge_hangup_cause":"NORMAL_CLEARING","hangup_cause":"NORMAL_CLEARING","hangup_cause_q850":"16","digits_dialed":"none","start_stamp":"2018-03-14 07:09:18","profile_start_stamp":"2018-03-14 07:09:18","answer_stamp":"2018-03-14 07:09:27","bridge_stamp":"2018-03-14 07:09:27","hold_stamp":"2018-03-14 07:09:27","progress_stamp":"2018-03-14 07:09:18","progress_media_stamp":"2018-03-14 07:09:27","hold_events":"{{1521025767847893,1521025783334494}}","end_stamp":"2018-03-14 07:09:48","start_epoch":"1521025758","start_uepoch":"1521025758006702","profile_start_epoch":"1521025758","profile_start_uepoch":"1521025758026167","answer_epoch":"1521025767","answer_uepoch":"1521025767766321","bridge_epoch":"1521025767","bridge_uepoch":"1521025767766321","last_hold_epoch":"1521025767","last_hold_uepoch":"1521025767847892","hold_accum_seconds":"15","hold_accum_usec":"15486602","hold_accum_ms":"15486","resurrect_epoch":"0","resurrect_uepoch":"0","progress_epoch":"1521025758","progress_uepoch":"1521025758116123","progress_media_epoch":"1521025767","progress_media_uepoch":"1521025767766321","end_epoch":"1521025788","end_uepoch":"1521025788366141","last_app":"bridge","last_arg":"user/1002@192.168.56.202","caller_id":"\"1001\" <1001>","duration":"30","billsec":"21","progresssec":"0","answersec":"9","waitsec":"9","progress_mediasec":"9","flow_billsec":"30","mduration":"30360","billmsec":"20600","progressmsec":"110","answermsec":"9760","waitmsec":"9760","progress_mediamsec":"9760","flow_billmsec":"30360","uduration":"30359439","billusec":"20599820","progressusec":"109421","answerusec":"9759619","waitusec":"9759619","progress_mediausec":"9759619","flow_billusec":"30359439","rtp_audio_in_raw_bytes":"174156","rtp_audio_in_media_bytes":"166416","rtp_audio_in_packet_count":"1033","rtp_audio_in_media_packet_count":"988","rtp_audio_in_skip_packet_count":"7","rtp_audio_in_jitter_packet_count":"0","rtp_audio_in_dtmf_packet_count":"0","rtp_audio_in_cng_packet_count":"0","rtp_audio_in_flush_packet_count":"45","rtp_audio_in_largest_jb_size":"0","rtp_audio_in_jitter_min_variance":"0.50","rtp_audio_in_jitter_max_variance":"31.77","rtp_audio_in_jitter_loss_rate":"0.00","rtp_audio_in_jitter_burst_rate":"0.00","rtp_audio_in_mean_interval":"20.17","rtp_audio_in_flaw_total":"1","rtp_audio_in_quality_percentage":"99.00","rtp_audio_in_mos":"4.49","rtp_audio_out_raw_bytes":"43344","rtp_audio_out_media_bytes":"43344","rtp_audio_out_packet_count":"252","rtp_audio_out_media_packet_count":"252","rtp_audio_out_skip_packet_count":"0","rtp_audio_out_dtmf_packet_count":"0","rtp_audio_out_cng_packet_count":"0","rtp_audio_rtcp_packet_count":"0","rtp_audio_rtcp_octet_count":"0"},"app_log":{"applications":[{"app_name":"info","app_data":"","app_stamp":"1521025758010697"},{"app_name":"park","app_data":"","app_stamp":"1521025758011143"},{"app_name":"set","app_data":"ringback=","app_stamp":"1521025758057183"},{"app_name":"set","app_data":"call_timeout=30","app_stamp":"1521025758057474"},{"app_name":"bridge","app_data":"user/1002@192.168.56.202","app_stamp":"1521025758057698"}]},"callflow":[{"dialplan":"XML","profile_index":"2","extension":{"name":"Local_Extension","number":"1002","applications":[{"app_name":"set","app_data":"ringback=${us-ring}"},{"app_name":"set","app_data":"call_timeout=30"},{"app_name":"bridge","app_data":"user/${destination_number}@${domain_name}"}]},"caller_profile":{"username":"1001","dialplan":"XML","caller_id_name":"1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"1002","destination_number":"1002","uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1001@192.168.56.202","originatee":{"originatee_caller_profiles":[{"username":"1001","dialplan":"XML","caller_id_name":"Extension 1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"1002","destination_number":"1002","uuid":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1002@192.168.56.1:5060"},{"username":"1001","dialplan":"XML","caller_id_name":"Extension 1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"1002","destination_number":"1002","uuid":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1002@192.168.56.1:5060"}]}},"times":{"created_time":"1521025758006702","profile_created_time":"1521025758026167","progress_time":"1521025758116123","progress_media_time":"1521025767766321","answered_time":"1521025767766321","bridged_time":"1521025767766321","last_hold_time":"1521025767847892","hold_accum_time":"15486602","hangup_time":"1521025788366141","resurrect_time":"0","transfer_time":"0"}},{"dialplan":"XML","profile_index":"1","extension":{"name":"CGRateS_Auth","number":"1002","applications":[{"app_name":"info","app_data":""},{"app_name":"park","app_data":""}]},"caller_profile":{"username":"1001","dialplan":"XML","caller_id_name":"1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"","destination_number":"1002","uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1001@192.168.56.202"},"times":{"created_time":"1521025758006702","profile_created_time":"1521025758006702","progress_time":"0","progress_media_time":"0","answered_time":"0","bridged_time":"0","last_hold_time":"0","hold_accum_time":"0","hangup_time":"0","resurrect_time":"0","transfer_time":"1521025758026167"}}]} `) +{"core-uuid":"63e2315b-d538-4dfa-9ed5-af73ba6210b6","switchname":"teo","channel_data":{"state":"CS_REPORTING","state_number":"11","flags":"0=1;1=1;3=1;20=1;37=1;38=1;40=1;43=1;48=1;53=1;75=1;77=1;106=1;112=1;113=1;122=1;134=1","caps":"1=1;2=1;3=1;4=1;5=1;6=1"},"callStats":{"audio":{"inbound":{"raw_bytes":174156,"media_bytes":166416,"packet_count":1033,"media_packet_count":988,"skip_packet_count":7,"jitter_packet_count":0,"dtmf_packet_count":0,"cng_packet_count":0,"flush_packet_count":45,"largest_jb_size":0,"jitter_min_variance":0.500000,"jitter_max_variance":31.769231,"jitter_loss_rate":0,"jitter_burst_rate":0,"mean_interval":20.171779,"flaw_total":1,"quality_percentage":99,"mos":4.492027,"errorLog":[{"start":1521025783725905,"stop":1521025788366141,"flaws":10763,"consecutiveFlaws":0,"durationMS":4640}]},"outbound":{"raw_bytes":43344,"media_bytes":43344,"packet_count":252,"media_packet_count":252,"skip_packet_count":0,"dtmf_packet_count":0,"cng_packet_count":0,"rtcp_packet_count":0,"rtcp_octet_count":0}}},"variables":{"uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","session_id":"1","sip_from_user":"1001","sip_from_uri":"1001@192.168.56.202","sip_from_host":"192.168.56.202","channel_name":"sofia/internal/1001@192.168.56.202","ep_codec_string":"mod_spandsp.G722@8000h@20i@64000b,CORE_PCM_MODULE.PCMU@8000h@20i@64000b,CORE_PCM_MODULE.PCMA@8000h@20i@64000b,mod_spandsp.GSM@8000h@20i@13200b","sip_local_network_addr":"192.168.56.202","sip_network_ip":"192.168.56.1","sip_network_port":"5060","sip_invite_stamp":"1521025758006702","sip_received_ip":"192.168.56.1","sip_received_port":"5060","sip_via_protocol":"udp","sip_authorized":"true","Event-Name":"REQUEST_PARAMS","Core-UUID":"63e2315b-d538-4dfa-9ed5-af73ba6210b6","FreeSWITCH-Hostname":"teo","FreeSWITCH-Switchname":"teo","FreeSWITCH-IPv4":"10.0.2.15","FreeSWITCH-IPv6":"::1","Event-Date-Local":"2018-03-14 07:09:18","Event-Date-GMT":"Wed, 14 Mar 2018 11:09:18 GMT","Event-Date-Timestamp":"1521025758006702","Event-Calling-File":"sofia.c","Event-Calling-Function":"sofia_handle_sip_i_invite","Event-Calling-Line-Number":"10096","Event-Sequence":"1025","sip_number_alias":"1001","sip_auth_username":"1001","sip_auth_realm":"192.168.56.202","number_alias":"1001","requested_user_name":"1001","requested_domain_name":"192.168.56.202","record_stereo":"true","transfer_fallback_extension":"operator","toll_allow":"domestic,international,local","accountcode":"1001","user_context":"default","effective_caller_id_name":"Extension 1001","effective_caller_id_number":"1001","callgroup":"techsupport","cgr_reqtype":"*prepaid","cgr_flags":"*resources,*attributes,*sessions,*routes","user_name":"1001","domain_name":"192.168.56.202","sip_from_user_stripped":"1001","sofia_profile_name":"internal","recovery_profile_name":"internal","sip_req_user":"1002","sip_req_uri":"1002@192.168.56.202","sip_req_host":"192.168.56.202","sip_to_user":"1002","sip_to_uri":"1002@192.168.56.202","sip_to_host":"192.168.56.202","sip_contact_params":"transport=udp;registering_acc=192_168_56_202","sip_contact_user":"1001","sip_contact_port":"5060","sip_contact_uri":"1001@192.168.56.1:5060","sip_contact_host":"192.168.56.1","sip_via_host":"192.168.56.1","sip_via_port":"5060","presence_id":"1001@192.168.56.202","cgr_resource_allocation":"ResGroup1","cgr_suppliers":"ARRAY::3|:supplier2|:supplier3|:supplier1","cgr_notify":"AUTH_OK","max_forwards":"69","transfer_history":"1521025758:86c9ebb2-888f-42d5-9afa-2101449a4b86:bl_xfer:1002/default/XML","transfer_source":"1521025758:86c9ebb2-888f-42d5-9afa-2101449a4b86:bl_xfer:1002/default/XML","DP_MATCH":"ARRAY::1002|:1002","call_uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","call_timeout":"30","current_application_data":"user/1002@192.168.56.202","current_application":"bridge","dialed_user":"1002","dialed_domain":"192.168.56.202","originated_legs":"ARRAY::9c1afb4f-1d4a-4e45-84a3-d25721981bf5;Outbound Call;1002|:9c1afb4f-1d4a-4e45-84a3-d25721981bf5;Outbound Call;1002","switch_m_sdp":"v=0\r\no=1002-jitsi.org 0 0 IN IP4 192.168.56.1\r\ns=-\r\nc=IN IP4 192.168.56.1\r\nt=0 0\r\nm=audio 5004 RTP/AVP 9 0 8 3 101\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:3 GSM/8000\r\na=rtpmap:101 telephone-event/8000\r\n","rtp_use_codec_name":"G722","rtp_use_codec_rate":"8000","rtp_use_codec_ptime":"20","rtp_use_codec_channels":"1","rtp_last_audio_codec_string":"G722@8000h@20i@1c","read_codec":"G722","original_read_codec":"G722","read_rate":"16000","original_read_rate":"16000","write_codec":"G722","write_rate":"16000","local_media_ip":"192.168.56.202","local_media_port":"29014","advertised_media_ip":"192.168.56.202","rtp_use_timer_name":"soft","rtp_use_pt":"9","rtp_use_ssrc":"2729250253","endpoint_disposition":"ANSWER","originate_causes":"ARRAY::9c1afb4f-1d4a-4e45-84a3-d25721981bf5;NONE|:9c1afb4f-1d4a-4e45-84a3-d25721981bf5;NONE","originate_disposition":"SUCCESS","DIALSTATUS":"SUCCESS","last_bridge_to":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","bridge_channel":"sofia/internal/1002@192.168.56.1:5060","bridge_uuid":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","signal_bond":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","last_sent_callee_id_name":"Outbound Call","last_sent_callee_id_number":"1002","switch_r_sdp":"v=0\r\no=1001-jitsi.org 0 2 IN IP4 192.168.56.1\r\ns=-\r\nc=IN IP4 192.168.56.1\r\nt=0 0\r\nm=audio 5000 RTP/AVP 96 97 98 9 100 102 0 8 103 3 104 4 101\r\na=rtpmap:96 opus/48000/2\r\na=fmtp:96 usedtx=1\r\na=rtpmap:97 SILK/24000\r\na=rtpmap:98 SILK/16000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:100 speex/32000\r\na=rtpmap:102 speex/16000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:103 iLBC/8000\r\na=rtpmap:3 GSM/8000\r\na=rtpmap:104 speex/8000\r\na=rtpmap:4 G723/8000\r\na=fmtp:4 annexa=no;bitrate=6.3\r\na=rtpmap:101 telephone-event/8000\r\na=ptime:20\r\na=extmap:1 urn:ietf:params:rtp-hdrext:csrc-audio-level\r\na=extmap:2 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=rtcp-xr:voip-metrics\r\na=zrtp-hash:1.10 8e8dd2fa6803f32845f26e55879c776a4bc015ee05b41630313aee27ef77fb30\r\nm=video 5006 RTP/AVP 105 99\r\na=rtpmap:105 H264/90000\r\na=fmtp:105 profile-level-id=4DE01f;packetization-mode=1\r\na=rtpmap:99 H264/90000\r\na=fmtp:99 profile-level-id=4DE01f\r\na=recvonly\r\na=imageattr:105 send * recv [x=[1:1920],y=[1:1080]]\r\na=imageattr:99 send * recv [x=[1:1920],y=[1:1080]]\r\n","rtp_use_codec_string":"G722,PCMU,PCMA,GSM","r_sdp_audio_zrtp_hash":"1.10 8e8dd2fa6803f32845f26e55879c776a4bc015ee05b41630313aee27ef77fb30","audio_media_flow":"sendrecv","remote_media_ip":"192.168.56.1","remote_media_port":"5000","rtp_audio_recv_pt":"9","dtmf_type":"rfc2833","rtp_2833_send_payload":"101","rtp_2833_recv_payload":"101","video_possible":"true","video_media_flow":"sendonly","rtp_local_sdp_str":"v=0\r\no=FreeSWITCH 1520996753 1520996756 IN IP4 192.168.56.202\r\ns=FreeSWITCH\r\nc=IN IP4 192.168.56.202\r\nt=0 0\r\nm=audio 29014 RTP/AVP 9 101\r\na=rtpmap:9 G722/8000\r\na=rtpmap:101 telephone-event/8000\r\na=fmtp:101 0-16\r\na=ptime:20\r\na=sendrecv\r\nm=video 0 RTP/AVP 19\r\n","sip_to_tag":"aDUZXF1Z1vD6p","sip_from_tag":"df94d020","sip_cseq":"4","sip_call_id":"985e365faa0ec79a7fa75d001ef2449f@0:0:0:0:0:0:0:0","sip_full_via":"SIP/2.0/UDP 192.168.56.1:5060;branch=z9hG4bK-323230-ab335b3491dd24f5ec251b9700716b97","sip_from_display":"1001","sip_full_from":"\"1001\" ;tag=df94d020","sip_full_to":";tag=aDUZXF1Z1vD6p","sip_term_status":"200","proto_specific_hangup_cause":"sip:200","sip_term_cause":"16","last_bridge_role":"originator","sip_user_agent":"Jitsi2.10.5550Windows 10","sip_hangup_disposition":"recv_bye","bridge_hangup_cause":"NORMAL_CLEARING","hangup_cause":"NORMAL_CLEARING","hangup_cause_q850":"16","digits_dialed":"none","start_stamp":"2018-03-14 07:09:18","profile_start_stamp":"2018-03-14 07:09:18","answer_stamp":"2018-03-14 07:09:27","bridge_stamp":"2018-03-14 07:09:27","hold_stamp":"2018-03-14 07:09:27","progress_stamp":"2018-03-14 07:09:18","progress_media_stamp":"2018-03-14 07:09:27","hold_events":"{{1521025767847893,1521025783334494}}","end_stamp":"2018-03-14 07:09:48","start_epoch":"1521025758","start_uepoch":"1521025758006702","profile_start_epoch":"1521025758","profile_start_uepoch":"1521025758026167","answer_epoch":"1521025767","answer_uepoch":"1521025767766321","bridge_epoch":"1521025767","bridge_uepoch":"1521025767766321","last_hold_epoch":"1521025767","last_hold_uepoch":"1521025767847892","hold_accum_seconds":"15","hold_accum_usec":"15486602","hold_accum_ms":"15486","resurrect_epoch":"0","resurrect_uepoch":"0","progress_epoch":"1521025758","progress_uepoch":"1521025758116123","progress_media_epoch":"1521025767","progress_media_uepoch":"1521025767766321","end_epoch":"1521025788","end_uepoch":"1521025788366141","last_app":"bridge","last_arg":"user/1002@192.168.56.202","caller_id":"\"1001\" <1001>","duration":"30","billsec":"21","progresssec":"0","answersec":"9","waitsec":"9","progress_mediasec":"9","flow_billsec":"30","mduration":"30360","billmsec":"20600","progressmsec":"110","answermsec":"9760","waitmsec":"9760","progress_mediamsec":"9760","flow_billmsec":"30360","uduration":"30359439","billusec":"20599820","progressusec":"109421","answerusec":"9759619","waitusec":"9759619","progress_mediausec":"9759619","flow_billusec":"30359439","rtp_audio_in_raw_bytes":"174156","rtp_audio_in_media_bytes":"166416","rtp_audio_in_packet_count":"1033","rtp_audio_in_media_packet_count":"988","rtp_audio_in_skip_packet_count":"7","rtp_audio_in_jitter_packet_count":"0","rtp_audio_in_dtmf_packet_count":"0","rtp_audio_in_cng_packet_count":"0","rtp_audio_in_flush_packet_count":"45","rtp_audio_in_largest_jb_size":"0","rtp_audio_in_jitter_min_variance":"0.50","rtp_audio_in_jitter_max_variance":"31.77","rtp_audio_in_jitter_loss_rate":"0.00","rtp_audio_in_jitter_burst_rate":"0.00","rtp_audio_in_mean_interval":"20.17","rtp_audio_in_flaw_total":"1","rtp_audio_in_quality_percentage":"99.00","rtp_audio_in_mos":"4.49","rtp_audio_out_raw_bytes":"43344","rtp_audio_out_media_bytes":"43344","rtp_audio_out_packet_count":"252","rtp_audio_out_media_packet_count":"252","rtp_audio_out_skip_packet_count":"0","rtp_audio_out_dtmf_packet_count":"0","rtp_audio_out_cng_packet_count":"0","rtp_audio_rtcp_packet_count":"0","rtp_audio_rtcp_octet_count":"0"},"app_log":{"applications":[{"app_name":"info","app_data":"","app_stamp":"1521025758010697"},{"app_name":"park","app_data":"","app_stamp":"1521025758011143"},{"app_name":"set","app_data":"ringback=","app_stamp":"1521025758057183"},{"app_name":"set","app_data":"call_timeout=30","app_stamp":"1521025758057474"},{"app_name":"bridge","app_data":"user/1002@192.168.56.202","app_stamp":"1521025758057698"}]},"callflow":[{"dialplan":"XML","profile_index":"2","extension":{"name":"Local_Extension","number":"1002","applications":[{"app_name":"set","app_data":"ringback=${us-ring}"},{"app_name":"set","app_data":"call_timeout=30"},{"app_name":"bridge","app_data":"user/${destination_number}@${domain_name}"}]},"caller_profile":{"username":"1001","dialplan":"XML","caller_id_name":"1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"1002","destination_number":"1002","uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1001@192.168.56.202","originatee":{"originatee_caller_profiles":[{"username":"1001","dialplan":"XML","caller_id_name":"Extension 1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"1002","destination_number":"1002","uuid":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1002@192.168.56.1:5060"},{"username":"1001","dialplan":"XML","caller_id_name":"Extension 1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"1002","destination_number":"1002","uuid":"9c1afb4f-1d4a-4e45-84a3-d25721981bf5","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1002@192.168.56.1:5060"}]}},"times":{"created_time":"1521025758006702","profile_created_time":"1521025758026167","progress_time":"1521025758116123","progress_media_time":"1521025767766321","answered_time":"1521025767766321","bridged_time":"1521025767766321","last_hold_time":"1521025767847892","hold_accum_time":"15486602","hangup_time":"1521025788366141","resurrect_time":"0","transfer_time":"0"}},{"dialplan":"XML","profile_index":"1","extension":{"name":"CGRateS_Auth","number":"1002","applications":[{"app_name":"info","app_data":""},{"app_name":"park","app_data":""}]},"caller_profile":{"username":"1001","dialplan":"XML","caller_id_name":"1001","ani":"1001","aniii":"","caller_id_number":"1001","network_addr":"192.168.56.1","rdnis":"","destination_number":"1002","uuid":"5a3a1d91-90d3-4db4-af5c-cc3ae15d93a4","source":"mod_sofia","context":"default","chan_name":"sofia/internal/1001@192.168.56.202"},"times":{"created_time":"1521025758006702","profile_created_time":"1521025758006702","progress_time":"0","progress_media_time":"0","answered_time":"0","bridged_time":"0","last_hold_time":"0","hold_accum_time":"0","hangup_time":"0","resurrect_time":"0","transfer_time":"1521025758026167"}}]} `) hangUp := `Event-Name: CHANNEL_HANGUP_COMPLETE Core-UUID: 63e2315b-d538-4dfa-9ed5-af73ba6210b6 FreeSWITCH-Hostname: teo @@ -776,7 +776,7 @@ variable_effective_caller_id_name: Extension%201001 variable_effective_caller_id_number: 1001 variable_callgroup: techsupport variable_cgr_reqtype: *prepaid -variable_cgr_flags: *resources,*attributes,*sessions,*suppliers +variable_cgr_flags: *resources,*attributes,*sessions,*routes variable_user_name: 1001 variable_domain_name: 192.168.56.202 variable_sip_from_user_stripped: 1001 diff --git a/data/conf/samples/tutmysql_internal/cgrates.json b/data/conf/samples/tutmysql_internal/cgrates.json index 7550e6440..a13bf16e7 100644 --- a/data/conf/samples/tutmysql_internal/cgrates.json +++ b/data/conf/samples/tutmysql_internal/cgrates.json @@ -128,8 +128,8 @@ ], }, { - "type": "*suppliers", // data source type - "file_name": "Suppliers.csv", // file name in the tp_in_dir + "type": "*routes", // data source type + "file_name": "Routes.csv", // file name in the tp_in_dir "fields": [ {"tag": "Tenant", "path": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, {"tag": "ID", "path": "ID", "type": "*variable", "value": "~1", "mandatory": true}, diff --git a/data/tutorial_tests/asterisk_ari/asterisk/etc/asterisk/extensions.conf b/data/tutorial_tests/asterisk_ari/asterisk/etc/asterisk/extensions.conf index 6369762a0..63cf346e3 100755 --- a/data/tutorial_tests/asterisk_ari/asterisk/etc/asterisk/extensions.conf +++ b/data/tutorial_tests/asterisk_ari/asterisk/etc/asterisk/extensions.conf @@ -2,7 +2,7 @@ exten => _1XXX,1,NoOp() same => n,Set(CGRMaxSessionTime=0); use it to disconnect automatically the call if CGRateS is not active same => n,DumpChan() - same => n,Stasis(cgrates_auth,cgr_reqtype=*prepaid,cgr_supplier=supplier1,"cgr_flags=*accounts,*attributes,*resources,*stats,*suppliers,*thresholds") + same => n,Stasis(cgrates_auth,cgr_reqtype=*prepaid,cgr_supplier=supplier1,"cgr_flags=*accounts,*attributes,*resources,*stats,*routes,*thresholds") same => n,Dial(PJSIP/${EXTEN},30,L(${CGRMaxSessionTime})) same => n,Hangup() diff --git a/data/tutorial_tests/asterisk_ari/cgrates/etc/cgrates/cgrates.json b/data/tutorial_tests/asterisk_ari/cgrates/etc/cgrates/cgrates.json index 2eee498e2..7975e6f98 100644 --- a/data/tutorial_tests/asterisk_ari/cgrates/etc/cgrates/cgrates.json +++ b/data/tutorial_tests/asterisk_ari/cgrates/etc/cgrates/cgrates.json @@ -103,6 +103,7 @@ "enabled": true, "resources_conns": ["*internal"], "stats_conns": ["*internal"], + "rals_conns": ["*internal"], "string_indexed_fields": ["Account"], }, diff --git a/data/tutorial_tests/fs_evsock/cgrates/etc/cgrates/cgrates.json b/data/tutorial_tests/fs_evsock/cgrates/etc/cgrates/cgrates.json index d3b9a83ff..8389365da 100644 --- a/data/tutorial_tests/fs_evsock/cgrates/etc/cgrates/cgrates.json +++ b/data/tutorial_tests/fs_evsock/cgrates/etc/cgrates/cgrates.json @@ -101,6 +101,7 @@ "enabled": true, "resources_conns": ["*internal"], "stats_conns": ["*internal"], + "rals_conns": ["*internal"], "string_indexed_fields": ["Account"], }, diff --git a/data/tutorial_tests/fs_evsock/freeswitch/etc/freeswitch_conf.tar.gz b/data/tutorial_tests/fs_evsock/freeswitch/etc/freeswitch_conf.tar.gz index 26ab81db125d528948f5591d4bc7d4d48c6a5b76..839da9b385d6136b3fe4eb2fbc5313c483c9df0c 100644 GIT binary patch literal 27649 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%0A(=CDvUAfXqGW!Dq-1dy|Fmz1G7>;{PY8&^jfH;f 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�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 diff --git a/data/tutorial_tests/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg b/data/tutorial_tests/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg index 18ba8eb13..2dbd48671 100644 --- a/data/tutorial_tests/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg +++ b/data/tutorial_tests/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg @@ -113,7 +113,7 @@ route[CGRATES_SESSIONAUTH_REQUEST] { evapi_async_relay("{\"event\":\"CGR_AUTH_REQUEST\", \"tr_index\":\"$T(id_index)\", \"tr_label\":\"$T(id_label)\", - \"cgr_flags\":\"*attributes,*accounts,*suppliers,*resources,*thresholds\", + \"cgr_flags\":\"*attributes,*accounts,*routes,*resources,*thresholds\", \"reply_route\":\"CGR_SESSIONAUTH_REPLY\", \"Account\":\"$fU\", \"Destination\":\"$rU\", diff --git a/data/tutorials/asterisk_ari/asterisk/etc/asterisk/extensions.conf b/data/tutorials/asterisk_ari/asterisk/etc/asterisk/extensions.conf index 6369762a0..63cf346e3 100755 --- a/data/tutorials/asterisk_ari/asterisk/etc/asterisk/extensions.conf +++ b/data/tutorials/asterisk_ari/asterisk/etc/asterisk/extensions.conf @@ -2,7 +2,7 @@ exten => _1XXX,1,NoOp() same => n,Set(CGRMaxSessionTime=0); use it to disconnect automatically the call if CGRateS is not active same => n,DumpChan() - same => n,Stasis(cgrates_auth,cgr_reqtype=*prepaid,cgr_supplier=supplier1,"cgr_flags=*accounts,*attributes,*resources,*stats,*suppliers,*thresholds") + same => n,Stasis(cgrates_auth,cgr_reqtype=*prepaid,cgr_supplier=supplier1,"cgr_flags=*accounts,*attributes,*resources,*stats,*routes,*thresholds") same => n,Dial(PJSIP/${EXTEN},30,L(${CGRMaxSessionTime})) same => n,Hangup() diff --git a/data/tutorials/asterisk_ari/cgrates/etc/cgrates/cgrates.json b/data/tutorials/asterisk_ari/cgrates/etc/cgrates/cgrates.json index 76e83173c..a1385d1c3 100644 --- a/data/tutorials/asterisk_ari/cgrates/etc/cgrates/cgrates.json +++ b/data/tutorials/asterisk_ari/cgrates/etc/cgrates/cgrates.json @@ -102,6 +102,7 @@ "enabled": true, "resources_conns": ["*internal"], "stats_conns": ["*internal"], + "rals_conns": ["*internal"], "string_indexed_fields": ["Account"], }, diff --git a/data/tutorials/fs_evsock/cgrates/etc/cgrates/cgrates.json b/data/tutorials/fs_evsock/cgrates/etc/cgrates/cgrates.json index d3b9a83ff..8389365da 100644 --- a/data/tutorials/fs_evsock/cgrates/etc/cgrates/cgrates.json +++ b/data/tutorials/fs_evsock/cgrates/etc/cgrates/cgrates.json @@ -101,6 +101,7 @@ "enabled": true, "resources_conns": ["*internal"], "stats_conns": ["*internal"], + "rals_conns": ["*internal"], "string_indexed_fields": ["Account"], }, diff --git a/data/tutorials/fs_evsock/freeswitch/etc/freeswitch_conf.tar.gz b/data/tutorials/fs_evsock/freeswitch/etc/freeswitch_conf.tar.gz index 74b96049a16cd035bfd3cb53386969b5134f4241..a92990d3c51689f23f99cb0b5db1850b2ec877a7 100644 GIT binary patch literal 27637 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 z zcpv#cZ{A5?O||x)KF3sFuO5H}Vso#++po+Y5lF%U@Sn>6gxfiK&p^tBPWPZFTTsCw c=wu}48@NEw`#)!5(4c10WN!1=l}o! diff --git a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg index 18ba8eb13..2dbd48671 100644 --- a/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg +++ b/data/tutorials/kamevapi/kamailio/etc/kamailio/kamailio-cgrates.cfg @@ -113,7 +113,7 @@ route[CGRATES_SESSIONAUTH_REQUEST] { evapi_async_relay("{\"event\":\"CGR_AUTH_REQUEST\", \"tr_index\":\"$T(id_index)\", \"tr_label\":\"$T(id_label)\", - \"cgr_flags\":\"*attributes,*accounts,*suppliers,*resources,*thresholds\", + \"cgr_flags\":\"*attributes,*accounts,*routes,*resources,*thresholds\", \"reply_route\":\"CGR_SESSIONAUTH_REPLY\", \"Account\":\"$fU\", \"Destination\":\"$rU\", diff --git a/docs/diamagent.rst b/docs/diamagent.rst index 471f5386e..53493bc58 100644 --- a/docs/diamagent.rst +++ b/docs/diamagent.rst @@ -364,7 +364,7 @@ flags **\*auth** Sends the request for authorization on CGRateS. - Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*suppliers**, **\*suppliers_ignore_errors**, **\*suppliers_event_cost** which are used to influence the auth behavior on CGRateS side. More info on that can be found on the **SessionS** component's API behavior. + Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*routes**, **\*routes_ignore_errors**, **\*routes_event_cost** which are used to influence the auth behavior on CGRateS side. More info on that can be found on the **SessionS** component's API behavior. **\*initiate** Initiates a session out of request on CGRateS side. @@ -384,7 +384,7 @@ flags **\*message** Process the request as individual message charging on CGRateS side. - Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*suppliers**, **\*suppliers_ignore_errors**, **\*suppliers_event_cost** which are used to influence the behavior on CGRateS side. + Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*routes**, **\*routes_ignore_errors**, **\*routes_event_cost** which are used to influence the behavior on CGRateS side. **\*event** diff --git a/docs/ers.rst b/docs/ers.rst index 0728ba1fd..cdef64da1 100644 --- a/docs/ers.rst +++ b/docs/ers.rst @@ -214,7 +214,7 @@ flags **\*auth** Sends the Event for authorization on CGRateS. - Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*suppliers**, **\*suppliers_ignore_errors**, **\*suppliers_event_cost** which are used to influence the auth behavior on CGRateS side. More info on that can be found on the **SessionS** component's API behavior. + Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*routes**, **\*routes_ignore_errors**, **\*routes_event_cost** which are used to influence the auth behavior on CGRateS side. More info on that can be found on the **SessionS** component's API behavior. **\*initiate** Initiates a session out of Event on CGRateS side. @@ -234,7 +234,7 @@ flags **\*message** Process the Event as individual message charging on CGRateS side. - Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*suppliers**, **\*suppliers_ignore_errors**, **\*suppliers_event_cost** which are used to influence the behavior on CGRateS side. + Auxiliary flags available: **\*attributes**, **\*thresholds**, **\*stats**, **\*resources**, **\*accounts**, **\*routes**, **\*routes_ignore_errors**, **\*routes_event_cost** which are used to influence the behavior on CGRateS side. **\*event** Process the Event as generic event on CGRateS side. diff --git a/docs/sessions.rst b/docs/sessions.rst index e764f3b8c..f9479c00e 100644 --- a/docs/sessions.rst +++ b/docs/sessions.rst @@ -341,14 +341,14 @@ Instead of arguments, the options for enabling various functionaity will come in **\*terminate** Terminate a session (or initialize + terminate) out of event. -\*suppliers +\*routes Process the event with :ref:`Suppliers`. Auxiliary flags available: **\*ignore_errors** - Ignore the suppliers with errors instead of failing the request completely. + Ignore the routes with errors instead of failing the request completely. **\*event_cost** - Ignore suppliers with cost higher than the event cost. + Ignore routes with cost higher than the event cost. \*thresholds Process the event with :ref:`ThresholdS` for monitoring. diff --git a/docs/suppliers.rst b/docs/suppliers.rst index e62c78af1..4d4663653 100644 --- a/docs/suppliers.rst +++ b/docs/suppliers.rst @@ -52,7 +52,7 @@ SupplierS **SupplierS** is the **CGRateS** component responsible for handling the *SupplierProfiles*. -It is configured within **suppliers** section from :ref:`JSON configuration ` via the following parameters: +It is configured within **routes** section from :ref:`JSON configuration ` via the following parameters: enabled Will enable starting of the service. Possible values: . diff --git a/general_tests/tutorial_calls_test.go b/general_tests/tutorial_calls_test.go index f5577a8b9..18c513ca9 100755 --- a/general_tests/tutorial_calls_test.go +++ b/general_tests/tutorial_calls_test.go @@ -610,7 +610,7 @@ func testCallStatMetrics(t *testing.T) { if err := tutorialCallsRpc.Call(utils.StatSv1GetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats2"}, &metrics); err != nil { - t.Error(err) + t.Fatal(err) } if optConf == utils.Asterisk { metrics[utils.MetaTCD] = strings.Split(metrics[utils.MetaTCD], ".")[0] + "s" diff --git a/utils/cgrevent_test.go b/utils/cgrevent_test.go index 71c65840b..61d5149e1 100644 --- a/utils/cgrevent_test.go +++ b/utils/cgrevent_test.go @@ -361,16 +361,16 @@ func TestCGREventconsumeRoutePaginator(t *testing.T) { if err != nil { t.Error(err) } - //check if *suppliers_limit and *suppliers_offset was deleted + //check if *routes_limit and *routes_offset was deleted if _, has := opts[RoutesLimit]; has { - t.Errorf("*suppliers_limit wasn't deleted") + t.Errorf("*routes_limit wasn't deleted") } else if _, has := opts[RoutesOffset]; has { - t.Errorf("*suppliers_offset wasn't deleted") + t.Errorf("*routes_offset wasn't deleted") } if !reflect.DeepEqual(eOut, rcv) { t.Errorf("Expecting: %+v, received: %+v", eOut, rcv) } - //check without *suppliers_limit, but with *suppliers_offset + //check without *routes_limit, but with *routes_offset opts = map[string]interface{}{ RoutesOffset: 20, } @@ -382,16 +382,16 @@ func TestCGREventconsumeRoutePaginator(t *testing.T) { if err != nil { t.Error(err) } - //check if *suppliers_limit and *suppliers_offset was deleted + //check if *routes_limit and *routes_offset was deleted if _, has := opts[RoutesLimit]; has { - t.Errorf("*suppliers_limit wasn't deleted") + t.Errorf("*routes_limit wasn't deleted") } else if _, has := opts[RoutesOffset]; has { - t.Errorf("*suppliers_offset wasn't deleted") + t.Errorf("*routes_offset wasn't deleted") } if !reflect.DeepEqual(eOut, rcv) { t.Errorf("Expecting: %+v, received: %+v", eOut, rcv) } - //check with notAnInt at *suppliers_limit + //check with notAnInt at *routes_limit opts = map[string]interface{}{ RoutesLimit: "Not an int", } @@ -403,7 +403,7 @@ func TestCGREventconsumeRoutePaginator(t *testing.T) { if !reflect.DeepEqual(eOut, rcv) { t.Errorf("Expecting: %+v, received: %+v", eOut, rcv) } - //check with notAnInt at and *suppliers_offset + //check with notAnInt at and *routes_offset opts = map[string]interface{}{ RoutesOffset: "Not an int", }