From 330fb7b894a24d36c2a6995a2510e51db9d9af12 Mon Sep 17 00:00:00 2001 From: DanB Date: Fri, 25 Apr 2014 19:35:59 +0200 Subject: [PATCH] Fixup duration parsing, adding some tests --- general_tests/ddazmbl2_test.go | 2 +- general_tests/ddazmbl3_test.go | 2 +- sessionmanager/fsevent.go | 4 +- sessionmanager/fsevent_test.go | 344 +++++++++++++++++++++++++++++ sessionmanager/fssessionmanager.go | 4 +- 5 files changed, 351 insertions(+), 5 deletions(-) diff --git a/general_tests/ddazmbl2_test.go b/general_tests/ddazmbl2_test.go index 8d5ea7ac0..70bf91ed4 100644 --- a/general_tests/ddazmbl2_test.go +++ b/general_tests/ddazmbl2_test.go @@ -120,7 +120,7 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` func TestExecuteActions2(t *testing.T) { scheduler.NewScheduler().LoadActionTimings(acntDb2) - time.Sleep(time.Duration(100) * time.Microsecond) // Give time to scheduler to topup the account + time.Sleep(time.Millisecond) // Give time to scheduler to topup the account if acnt, err := acntDb2.GetAccount("*out:cgrates.org:12345"); err != nil { t.Error(err) } else if len(acnt.BalanceMap) != 2 { diff --git a/general_tests/ddazmbl3_test.go b/general_tests/ddazmbl3_test.go index 98144f3a5..025e38aa3 100644 --- a/general_tests/ddazmbl3_test.go +++ b/general_tests/ddazmbl3_test.go @@ -118,7 +118,7 @@ cgrates.org,call,*out,discounted_minutes,2013-01-06T00:00:00Z,RP_UK_Mobile_BIG5_ func TestExecuteActions3(t *testing.T) { scheduler.NewScheduler().LoadActionTimings(acntDb3) - time.Sleep(time.Duration(100) * time.Microsecond) // Give time to scheduler to topup the account + time.Sleep(time.Millisecond) // Give time to scheduler to topup the account if acnt, err := acntDb3.GetAccount("*out:cgrates.org:12345"); err != nil { t.Error(err) } else if len(acnt.BalanceMap) != 1 { diff --git a/sessionmanager/fsevent.go b/sessionmanager/fsevent.go index bac553223..f3e85a6a9 100644 --- a/sessionmanager/fsevent.go +++ b/sessionmanager/fsevent.go @@ -21,6 +21,7 @@ package sessionmanager import ( "fmt" "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" "github.com/cgrates/fsock" "strings" @@ -47,7 +48,7 @@ const ( SETUP_TIME = "Caller-Channel-Created-Time" ANSWER_TIME = "Caller-Channel-Answered-Time" END_TIME = "Caller-Channel-Hangup-Time" - DURATION = "billsec" + DURATION = "variable_billsec" NAME = "Event-Name" HEARTBEAT = "HEARTBEAT" ANSWER = "CHANNEL_ANSWER" @@ -200,5 +201,6 @@ func (fsev FSEvent) GetDuration(fieldName string) (dur time.Duration, err error) if strings.HasPrefix(fieldName, utils.STATIC_VALUE_PREFIX) { // Static value durStr = fieldName[len(utils.STATIC_VALUE_PREFIX):] } + engine.Logger.Info(fmt.Sprintf("Parsing duration out of string: %s, fieldName: %s, field dur: %s, fsev: %s", durStr, fsev[fieldName], fsev[DURATION], fsev)) return utils.ParseDurationWithSecs(durStr) } diff --git a/sessionmanager/fsevent_test.go b/sessionmanager/fsevent_test.go index 3b4273e02..98c58ee36 100644 --- a/sessionmanager/fsevent_test.go +++ b/sessionmanager/fsevent_test.go @@ -20,6 +20,7 @@ package sessionmanager import ( "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/utils" "testing" "time" ) @@ -153,3 +154,346 @@ Task-Runtime: 1349437318` t.Error("Expecting nil time, got: ", answerTime) } } + +func TestParseFsHangup(t *testing.T) { + hangupEv := `Event-Name: CHANNEL_HANGUP_COMPLETE +Core-UUID: bb890f9e-0aae-476d-8292-91b434eb4f73 +FreeSWITCH-Hostname: iPBXDev +FreeSWITCH-Switchname: iPBXDev +FreeSWITCH-IPv4: 10.0.2.15 +FreeSWITCH-IPv6: %3A%3A1 +Event-Date-Local: 2014-04-25%2018%3A08%3A46 +Event-Date-GMT: Fri,%2025%20Apr%202014%2016%3A08%3A46%20GMT +Event-Date-Timestamp: 1398442126033605 +Event-Calling-File: switch_core_state_machine.c +Event-Calling-Function: switch_core_session_reporting_state +Event-Calling-Line-Number: 772 +Event-Sequence: 3499 +Hangup-Cause: NORMAL_CLEARING +Channel-State: CS_REPORTING +Channel-Call-State: HANGUP +Channel-State-Number: 11 +Channel-Name: sofia/internal/1003%40192.168.56.66 +Unique-ID: 37e9b766-5256-4e4b-b1ed-3767b930fec8 +Call-Direction: inbound +Presence-Call-Direction: inbound +Channel-HIT-Dialplan: true +Channel-Presence-ID: 1003%40192.168.56.66 +Channel-Call-UUID: 37e9b766-5256-4e4b-b1ed-3767b930fec8 +Answer-State: hangup +Hangup-Cause: NORMAL_CLEARING +Channel-Read-Codec-Name: G722 +Channel-Read-Codec-Rate: 16000 +Channel-Read-Codec-Bit-Rate: 64000 +Channel-Write-Codec-Name: G722 +Channel-Write-Codec-Rate: 16000 +Channel-Write-Codec-Bit-Rate: 64000 +Caller-Direction: inbound +Caller-Username: 1003 +Caller-Dialplan: XML +Caller-Caller-ID-Name: 1003 +Caller-Caller-ID-Number: 1003 +Caller-Orig-Caller-ID-Name: 1003 +Caller-Orig-Caller-ID-Number: 1003 +Caller-Callee-ID-Name: Outbound%20Call +Caller-Callee-ID-Number: 1002 +Caller-Network-Addr: 192.168.56.1 +Caller-ANI: 1003 +Caller-Destination-Number: 1002 +Caller-Unique-ID: 37e9b766-5256-4e4b-b1ed-3767b930fec8 +Caller-Source: mod_sofia +Caller-Transfer-Source: 1398442107%3A93b23eed-7c33-49c8-a52d-f2b22b84e418%3Abl_xfer%3A1002/default/XML +Caller-Context: default +Caller-RDNIS: 1002 +Caller-Channel-Name: sofia/internal/1003%40192.168.56.66 +Caller-Profile-Index: 2 +Caller-Profile-Created-Time: 1398442107850738 +Caller-Channel-Created-Time: 1398442107770704 +Caller-Channel-Answered-Time: 1398442120831856 +Caller-Channel-Progress-Time: 1398442108013993 +Caller-Channel-Progress-Media-Time: 1398442108050630 +Caller-Channel-Hangup-Time: 1398442125950531 +Caller-Channel-Transfer-Time: 0 +Caller-Channel-Resurrect-Time: 0 +Caller-Channel-Bridged-Time: 1398442120856148 +Caller-Channel-Last-Hold: 1398442121113991 +Caller-Channel-Hold-Accum: 0 +Caller-Screen-Bit: true +Caller-Privacy-Hide-Name: false +Caller-Privacy-Hide-Number: false +Other-Type: originatee +Other-Leg-Direction: outbound +Other-Leg-Username: 1003 +Other-Leg-Dialplan: XML +Other-Leg-Caller-ID-Name: Extension%201003 +Other-Leg-Caller-ID-Number: 1003 +Other-Leg-Orig-Caller-ID-Name: 1003 +Other-Leg-Orig-Caller-ID-Number: 1003 +Other-Leg-Callee-ID-Name: Outbound%20Call +Other-Leg-Callee-ID-Number: 1002 +Other-Leg-Network-Addr: 192.168.56.1 +Other-Leg-ANI: 1003 +Other-Leg-Destination-Number: 1002 +Other-Leg-Unique-ID: b7f3d830-b3a4-4e1c-b600-572eeb462c39 +Other-Leg-Source: mod_sofia +Other-Leg-Context: default +Other-Leg-RDNIS: 1002 +Other-Leg-Channel-Name: sofia/internal/sip%3A1002%40192.168.56.1%3A5060 +Other-Leg-Profile-Created-Time: 1398442107970626 +Other-Leg-Channel-Created-Time: 1398442107970626 +Other-Leg-Channel-Answered-Time: 1398442120810530 +Other-Leg-Channel-Progress-Time: 1398442108013993 +Other-Leg-Channel-Progress-Media-Time: 0 +Other-Leg-Channel-Hangup-Time: 0 +Other-Leg-Channel-Transfer-Time: 0 +Other-Leg-Channel-Resurrect-Time: 0 +Other-Leg-Channel-Bridged-Time: 0 +Other-Leg-Channel-Last-Hold: 0 +Other-Leg-Channel-Hold-Accum: 0 +Other-Leg-Screen-Bit: true +Other-Leg-Privacy-Hide-Name: false +Other-Leg-Privacy-Hide-Number: false +variable_direction: inbound +variable_uuid: 37e9b766-5256-4e4b-b1ed-3767b930fec8 +variable_session_id: 18 +variable_sip_from_user: 1003 +variable_sip_from_uri: 1003%40192.168.56.66 +variable_sip_from_host: 192.168.56.66 +variable_channel_name: sofia/internal/1003%40192.168.56.66 +variable_sip_local_network_addr: 192.168.56.66 +variable_sip_network_ip: 192.168.56.1 +variable_sip_network_port: 5060 +variable_sip_received_ip: 192.168.56.1 +variable_sip_received_port: 5060 +variable_sip_via_protocol: udp +variable_sip_authorized: true +variable_Event-Name: REQUEST_PARAMS +variable_Core-UUID: bb890f9e-0aae-476d-8292-91b434eb4f73 +variable_FreeSWITCH-Hostname: iPBXDev +variable_FreeSWITCH-Switchname: iPBXDev +variable_FreeSWITCH-IPv4: 10.0.2.15 +variable_FreeSWITCH-IPv6: %3A%3A1 +variable_Event-Date-Local: 2014-04-25%2018%3A08%3A27 +variable_Event-Date-GMT: Fri,%2025%20Apr%202014%2016%3A08%3A27%20GMT +variable_Event-Date-Timestamp: 1398442107770704 +variable_Event-Calling-File: sofia.c +variable_Event-Calling-Function: sofia_handle_sip_i_invite +variable_Event-Calling-Line-Number: 7996 +variable_Event-Sequence: 3355 +variable_sip_number_alias: 1003 +variable_sip_auth_username: 1003 +variable_sip_auth_realm: 192.168.56.66 +variable_number_alias: 1003 +variable_requested_domain_name: 192.168.56.66 +variable_record_stereo: true +variable_default_gateway: example.com +variable_default_areacode: 918 +variable_transfer_fallback_extension: operator +variable_toll_allow: domestic,international,local +variable_accountcode: 1003 +variable_user_context: default +variable_effective_caller_id_name: Extension%201003 +variable_effective_caller_id_number: 1003 +variable_outbound_caller_id_name: FreeSWITCH +variable_outbound_caller_id_number: 0000000000 +variable_callgroup: techsupport +variable_user_name: 1003 +variable_domain_name: 192.168.56.66 +variable_sip_from_user_stripped: 1003 +variable_sofia_profile_name: internal +variable_recovery_profile_name: internal +variable_sip_req_user: 1002 +variable_sip_req_uri: 1002%40192.168.56.66 +variable_sip_req_host: 192.168.56.66 +variable_sip_to_user: 1002 +variable_sip_to_uri: 1002%40192.168.56.66 +variable_sip_to_host: 192.168.56.66 +variable_sip_contact_params: transport%3Dudp%3Bregistering_acc%3D192_168_56_66 +variable_sip_contact_user: 1003 +variable_sip_contact_port: 5060 +variable_sip_contact_uri: 1003%40192.168.56.1%3A5060 +variable_sip_contact_host: 192.168.56.1 +variable_sip_user_agent: Jitsi2.5.5065Linux +variable_sip_via_host: 192.168.56.1 +variable_sip_via_port: 5060 +variable_presence_id: 1003%40192.168.56.66 +variable_ep_codec_string: G722%408000h%4020i%4064000b,PCMU%408000h%4020i%4064000b,PCMA%408000h%4020i%4064000b,GSM%408000h%4020i%4013200b +variable_cgr_notify: %2BAUTH_OK +variable_max_forwards: 69 +variable_transfer_history: 1398442107%3A93b23eed-7c33-49c8-a52d-f2b22b84e418%3Abl_xfer%3A1002/default/XML +variable_transfer_source: 1398442107%3A93b23eed-7c33-49c8-a52d-f2b22b84e418%3Abl_xfer%3A1002/default/XML +variable_DP_MATCH: ARRAY%3A%3A1002%7C%3A1002 +variable_call_uuid: 37e9b766-5256-4e4b-b1ed-3767b930fec8 +variable_open: true +variable_RFC2822_DATE: Fri,%2025%20Apr%202014%2018%3A08%3A27%20%2B0200 +variable_dialed_extension: 1002 +variable_export_vars: RFC2822_DATE,RFC2822_DATE,dialed_extension +variable_ringback: %25(2000,4000,440,480) +variable_transfer_ringback: local_stream%3A//moh +variable_call_timeout: 30 +variable_hangup_after_bridge: true +variable_continue_on_fail: true +variable_called_party_callgroup: techsupport +variable_current_application_data: user/1002%40192.168.56.66 +variable_current_application: bridge +variable_dialed_user: 1002 +variable_dialed_domain: 192.168.56.66 +variable_inherit_codec: true +variable_originated_legs: ARRAY%3A%3Ab7f3d830-b3a4-4e1c-b600-572eeb462c39%3BOutbound%20Call%3B1002%7C%3Ab7f3d830-b3a4-4e1c-b600-572eeb462c39%3BOutbound%20Call%3B1002 +variable_rtp_use_codec_string: G722,PCMU,PCMA,GSM +variable_sip_use_codec_name: G722 +variable_sip_use_codec_rate: 8000 +variable_sip_use_codec_ptime: 20 +variable_write_codec: G722 +variable_write_rate: 16000 +variable_video_possible: true +variable_local_media_ip: 192.168.56.66 +variable_local_media_port: 21546 +variable_advertised_media_ip: 192.168.56.66 +variable_sip_use_pt: 9 +variable_rtp_use_ssrc: 2808137364 +variable_zrtp_secure_media_confirmed_audio: true +variable_zrtp_sas1_string_audio: mqyn +variable_switch_m_sdp: v%3D0%0D%0Ao%3D1002%200%200%20IN%20IP4%20192.168.56.1%0D%0As%3D-%0D%0Ac%3DIN%20IP4%20192.168.56.1%0D%0At%3D0%200%0D%0Am%3Daudio%205056%20RTP/AVP%209%200%208%203%20101%0D%0Aa%3Drtpmap%3A9%20G722/8000%0D%0Aa%3Drtpmap%3A0%20PCMU/8000%0D%0Aa%3Drtpmap%3A8%20PCMA/8000%0D%0Aa%3Drtpmap%3A3%20GSM/8000%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0A +variable_read_codec: G722 +variable_read_rate: 16000 +variable_endpoint_disposition: ANSWER +variable_originate_causes: ARRAY%3A%3Ab7f3d830-b3a4-4e1c-b600-572eeb462c39%3BNONE%7C%3Ab7f3d830-b3a4-4e1c-b600-572eeb462c39%3BNONE +variable_originate_disposition: SUCCESS +variable_DIALSTATUS: SUCCESS +variable_last_bridge_to: b7f3d830-b3a4-4e1c-b600-572eeb462c39 +variable_bridge_channel: sofia/internal/sip%3A1002%40192.168.56.1%3A5060 +variable_bridge_uuid: b7f3d830-b3a4-4e1c-b600-572eeb462c39 +variable_signal_bond: b7f3d830-b3a4-4e1c-b600-572eeb462c39 +variable_cgr_reqtype: pseudoprepaid +variable_last_sent_callee_id_name: Outbound%20Call +variable_last_sent_callee_id_number: 1002 +variable_sip_reinvite_sdp: v%3D0%0D%0Ao%3D1003%200%201%20IN%20IP4%20192.168.56.1%0D%0As%3D-%0D%0Ac%3DIN%20IP4%20192.168.56.1%0D%0At%3D0%200%0D%0Am%3Daudio%205052%20RTP/AVP%2096%2097%2098%209%20100%20102%200%208%20103%203%20104%20101%0D%0Aa%3Dsendonly%0D%0Aa%3Drtpmap%3A96%20opus/48000/2%0D%0Aa%3Dfmtp%3A96%20usedtx%3D1%0D%0Aa%3Drtpmap%3A97%20SILK/24000%0D%0Aa%3Drtpmap%3A98%20SILK/16000%0D%0Aa%3Drtpmap%3A9%20G722/8000%0D%0Aa%3Drtpmap%3A100%20speex/32000%0D%0Aa%3Drtpmap%3A102%20speex/16000%0D%0Aa%3Drtpmap%3A0%20PCMU/8000%0D%0Aa%3Drtpmap%3A8%20PCMA/8000%0D%0Aa%3Drtpmap%3A103%20iLBC/8000%0D%0Aa%3Drtpmap%3A3%20GSM/8000%0D%0Aa%3Drtpmap%3A104%20speex/8000%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0Aa%3Dextmap%3A1%20urn%3Aietf%3Aparams%3Artp-hdrext%3Acsrc-audio-level%0D%0Aa%3Dzrtp-hash%3A1.10%20bd7a58a0a6cb4b71870cc776f1901436f82ab3c9f960b9fc9645086206a8a804%0D%0Am%3Dvideo%200%20RTP/AVP%20105%2099%0D%0A +variable_switch_r_sdp: v%3D0%0D%0Ao%3D1003%200%201%20IN%20IP4%20192.168.56.1%0D%0As%3D-%0D%0Ac%3DIN%20IP4%20192.168.56.1%0D%0At%3D0%200%0D%0Am%3Daudio%205052%20RTP/AVP%2096%2097%2098%209%20100%20102%200%208%20103%203%20104%20101%0D%0Aa%3Drtpmap%3A96%20opus/48000/2%0D%0Aa%3Dfmtp%3A96%20usedtx%3D1%0D%0Aa%3Drtpmap%3A97%20SILK/24000%0D%0Aa%3Drtpmap%3A98%20SILK/16000%0D%0Aa%3Drtpmap%3A9%20G722/8000%0D%0Aa%3Drtpmap%3A100%20speex/32000%0D%0Aa%3Drtpmap%3A102%20speex/16000%0D%0Aa%3Drtpmap%3A0%20PCMU/8000%0D%0Aa%3Drtpmap%3A8%20PCMA/8000%0D%0Aa%3Drtpmap%3A103%20iLBC/8000%0D%0Aa%3Drtpmap%3A3%20GSM/8000%0D%0Aa%3Drtpmap%3A104%20speex/8000%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0Aa%3Dsendonly%0D%0Aa%3Dextmap%3A1%20urn%3Aietf%3Aparams%3Artp-hdrext%3Acsrc-audio-level%0D%0Aa%3Dzrtp-hash%3A1.10%20bd7a58a0a6cb4b71870cc776f1901436f82ab3c9f960b9fc9645086206a8a804%0D%0Am%3Dvideo%200%20RTP/AVP%20105%2099%0D%0A +variable_r_sdp_audio_zrtp_hash: 1.10%20bd7a58a0a6cb4b71870cc776f1901436f82ab3c9f960b9fc9645086206a8a804 +variable_remote_media_ip: 192.168.56.1 +variable_remote_media_port: 5052 +variable_sip_audio_recv_pt: 9 +variable_dtmf_type: rfc2833 +variable_sip_2833_send_payload: 101 +variable_sip_2833_recv_payload: 101 +variable_sip_local_sdp_str: v%3D0%0Ao%3DFreeSWITCH%201398420562%201398420565%20IN%20IP4%20192.168.56.66%0As%3DFreeSWITCH%0Ac%3DIN%20IP4%20192.168.56.66%0At%3D0%200%0Am%3Daudio%2021546%20RTP/AVP%209%20101%0Aa%3Drtpmap%3A9%20G722/8000%0Aa%3Drtpmap%3A101%20telephone-event/8000%0Aa%3Dfmtp%3A101%200-16%0Aa%3Dptime%3A20%0Aa%3Dsendrecv%0A +variable_sip_to_tag: SUg05X4S6y5tQ +variable_sip_from_tag: 92f0bbcc +variable_sip_cseq: 3 +variable_sip_call_id: 91a3940835793bb505003344ba6fc116%400%3A0%3A0%3A0%3A0%3A0%3A0%3A0 +variable_sip_full_via: SIP/2.0/UDP%20192.168.56.1%3A5060%3Bbranch%3Dz9hG4bK-373830-8965548cad844d63bcb7a17c80e2e76f +variable_sip_from_display: 1003 +variable_sip_full_from: %221003%22%20%3Csip%3A1003%40192.168.56.66%3E%3Btag%3D92f0bbcc +variable_sip_full_to: %3Csip%3A1002%40192.168.56.66%3E%3Btag%3DSUg05X4S6y5tQ +variable_sip_hangup_phrase: OK +variable_last_bridge_hangup_cause: NORMAL_CLEARING +variable_last_bridge_proto_specific_hangup_cause: sip%3A200 +variable_bridge_hangup_cause: NORMAL_CLEARING +variable_hangup_cause: NORMAL_CLEARING +variable_hangup_cause_q850: 16 +variable_digits_dialed: none +variable_start_stamp: 2014-04-25%2018%3A08%3A27 +variable_profile_start_stamp: 2014-04-25%2018%3A08%3A27 +variable_answer_stamp: 2014-04-25%2018%3A08%3A40 +variable_bridge_stamp: 2014-04-25%2018%3A08%3A40 +variable_hold_stamp: 2014-04-25%2018%3A08%3A41 +variable_progress_stamp: 2014-04-25%2018%3A08%3A28 +variable_progress_media_stamp: 2014-04-25%2018%3A08%3A28 +variable_hold_events: %7B%7B1398442121114003,1398442125953702%7D%7D +variable_end_stamp: 2014-04-25%2018%3A08%3A45 +variable_start_epoch: 1398442107 +variable_start_uepoch: 1398442107770704 +variable_profile_start_epoch: 1398442107 +variable_profile_start_uepoch: 1398442107850738 +variable_answer_epoch: 1398442120 +variable_answer_uepoch: 1398442120831856 +variable_bridge_epoch: 1398442120 +variable_bridge_uepoch: 1398442120856148 +variable_last_hold_epoch: 1398442121 +variable_last_hold_uepoch: 1398442121113991 +variable_hold_accum_seconds: 0 +variable_hold_accum_usec: 0 +variable_hold_accum_ms: 0 +variable_resurrect_epoch: 0 +variable_resurrect_uepoch: 0 +variable_progress_epoch: 1398442108 +variable_progress_uepoch: 1398442108013993 +variable_progress_media_epoch: 1398442108 +variable_progress_media_uepoch: 1398442108050630 +variable_end_epoch: 1398442125 +variable_end_uepoch: 1398442125950531 +variable_last_app: bridge +variable_last_arg: user/1002%40192.168.56.66 +variable_caller_id: %221003%22%20%3C1003%3E +variable_duration: 18 +variable_billsec: 5 +variable_progresssec: 1 +variable_answersec: 13 +variable_waitsec: 13 +variable_progress_mediasec: 1 +variable_flow_billsec: 18 +variable_mduration: 18180 +variable_billmsec: 5119 +variable_progressmsec: 243 +variable_answermsec: 13061 +variable_waitmsec: 13086 +variable_progress_mediamsec: 280 +variable_flow_billmsec: 18180 +variable_uduration: 18179827 +variable_billusec: 5118675 +variable_progressusec: 243289 +variable_answerusec: 13061152 +variable_waitusec: 13085444 +variable_progress_mediausec: 279926 +variable_flow_billusec: 18179827 +variable_sip_hangup_disposition: send_bye +variable_rtp_audio_in_raw_bytes: 150072 +variable_rtp_audio_in_media_bytes: 148136 +variable_rtp_audio_in_packet_count: 854 +variable_rtp_audio_in_media_packet_count: 843 +variable_rtp_audio_in_skip_packet_count: 42 +variable_rtp_audio_in_jb_packet_count: 0 +variable_rtp_audio_in_dtmf_packet_count: 0 +variable_rtp_audio_in_cng_packet_count: 0 +variable_rtp_audio_in_flush_packet_count: 11 +variable_rtp_audio_in_largest_jb_size: 0 +variable_rtp_audio_out_raw_bytes: 140956 +variable_rtp_audio_out_media_bytes: 140956 +variable_rtp_audio_out_packet_count: 801 +variable_rtp_audio_out_media_packet_count: 801 +variable_rtp_audio_out_skip_packet_count: 0 +variable_rtp_audio_out_dtmf_packet_count: 0 +variable_rtp_audio_out_cng_packet_count: 0 +variable_rtp_audio_rtcp_packet_count: 0 +variable_rtp_audio_rtcp_octet_count: 0 +` + cfg, _ = config.NewDefaultCGRConfig() + config.SetCgrConfig(cfg) + ev := new(FSEvent).New(hangupEv) + setupTime, _ := ev.GetSetupTime(utils.META_DEFAULT) + answerTime, _ := ev.GetAnswerTime(utils.META_DEFAULT) + dur, _ := ev.GetDuration(utils.META_DEFAULT) + if ev.GetReqType(utils.META_DEFAULT) != utils.PSEUDOPREPAID || + ev.GetDirection(utils.META_DEFAULT) != "*out" || + ev.GetTenant(utils.META_DEFAULT) != "cgrates.org" || + ev.GetTOR(utils.META_DEFAULT) != "call" || + ev.GetAccount(utils.META_DEFAULT) != "1003" || + ev.GetSubject(utils.META_DEFAULT) != "1003" || + ev.GetDestination(utils.META_DEFAULT) != "1002" || + setupTime.UTC() != time.Date(2014, 4, 25, 16, 8, 27, 0, time.UTC) || + answerTime.UTC() != time.Date(2014, 4, 25, 16, 8, 40, 0, time.UTC) || + dur != time.Duration(5)*time.Second { + t.Error("Default values not matching", + ev.GetReqType(utils.META_DEFAULT) != utils.PSEUDOPREPAID, + ev.GetDirection(utils.META_DEFAULT) != "*out", + ev.GetTenant(utils.META_DEFAULT) != "cgrates.org", + ev.GetTOR(utils.META_DEFAULT) != "call", + ev.GetAccount(utils.META_DEFAULT) != "1003", + ev.GetSubject(utils.META_DEFAULT) != "1003", + ev.GetDestination(utils.META_DEFAULT) != "1002", + setupTime.UTC() != time.Date(2014, 4, 25, 17, 8, 27, 0, time.UTC), + answerTime.UTC() != time.Date(2014, 4, 25, 17, 8, 40, 0, time.UTC), + dur != time.Duration(5)*time.Second) + } +} diff --git a/sessionmanager/fssessionmanager.go b/sessionmanager/fssessionmanager.go index 5ed4a58cd..858739e6c 100644 --- a/sessionmanager/fssessionmanager.go +++ b/sessionmanager/fssessionmanager.go @@ -260,7 +260,7 @@ func (sm *FSSessionManager) OnChannelHangupComplete(ev Event) { } duration, err := ev.GetDuration(dc.DurationField) if err != nil { - engine.Logger.Crit("Error parsing postpaid call duration from event") + engine.Logger.Crit(fmt.Sprintf("Error parsing call duration from event %s", err.Error())) return } cd := engine.CallDescriptor{ @@ -296,7 +296,7 @@ func (sm *FSSessionManager) OnChannelHangupComplete(ev Event) { } duration, err := ev.GetDuration(dc.DurationField) if err != nil { - engine.Logger.Crit("Error parsing postpaid call duration from event") + engine.Logger.Crit(fmt.Sprintf("Error parsing call duration from event %s", err.Error())) return } hangupTime := startTime.Add(duration)