From dea74897270b3ebe8445d82042f4a931d5304865 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 24 Apr 2013 12:35:25 +0530 Subject: add eunit tests for ISUP prefix rewrite corner cases --- test/mgw_nat_act_bow_onw_tests.erl | 94 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 test/mgw_nat_act_bow_onw_tests.erl diff --git a/test/mgw_nat_act_bow_onw_tests.erl b/test/mgw_nat_act_bow_onw_tests.erl new file mode 100644 index 0000000..19d5c57 --- /dev/null +++ b/test/mgw_nat_act_bow_onw_tests.erl @@ -0,0 +1,94 @@ +-module(mgw_nat_act_bow_onw_tests). +-author('Harald Welte '). + +-include_lib("eunit/include/eunit.hrl"). + +-include_lib("osmo_ss7/include/sccp.hrl"). +-include_lib("osmo_ss7/include/isup.hrl"). +-include_lib("osmo_ss7/include/osmo_util.hrl"). + +% unmodified original called party number in national format +-define(IAM_CALLED_DEC_IN, + #party_number{nature_of_addr_ind=?ISUP_ADDR_NAT_NATIONAL, + internal_net_num=1, + number_incompl_ind=undefined, + numbering_plan=1, + present_restrict=undefined, + screening_ind=undefined, + phone_number=[9,2,9,9,4,1,9,0,8,7,15]}). + +-define(IAM_CALLING_EMPTY_DEC_IN, + #party_number{nature_of_addr_ind=?ISUP_ADDR_NAT_NATIONAL, + internal_net_num=undefined, + number_incompl_ind=0, + numbering_plan=1, + present_restrict=1, + screening_ind=3, + phone_number=[]}). + +% modified called party number in international format +-define(IAM_CALLED_DEC_OUT, + ?IAM_CALLED_DEC_IN#party_number{nature_of_addr_ind=?ISUP_ADDR_NAT_INTERNATIONAL, + phone_number=[4,9,9,2,9,9,4,1,9,0,8,7,15]}). + + + +% IAM message in STP-MSC direction containing national number +-define(ISUP_IAM_DEC, {isup_msg,1,14, [{conn_ind_nature,16}, {fw_call_ind,24832}, + {calling_cat,10}, {transm_medium_req,3}, + {?ISUP_PAR_CALLED_P_NUM, ?IAM_CALLED_DEC_IN}, + {?ISUP_PAR_CALLING_P_NUM, ?IAM_CALLING_EMPTY_DEC_IN}, + {57,{2,<<"1À">>}}, {29,{3,<<144,144,163>>}}]}). + +% modified IAM message in STP-MSC direction containing internationalized number +-define(ISUP_IAM_OUT, {isup_msg,1,14, [{conn_ind_nature,16}, {fw_call_ind,24832}, + {calling_cat,10}, {transm_medium_req,3}, + {?ISUP_PAR_CALLED_P_NUM, ?IAM_CALLED_DEC_OUT}, + {?ISUP_PAR_CALLING_P_NUM, ?IAM_CALLING_EMPTY_DEC_IN}, + {57,{2,<<"1À">>}}, {29,{3,<<144,144,163>>}}]}). + + +% variant: calling number is national number with 00 prefix, need to +% remove 00 and set to international +-define(IAM_CALLING00_DEC_IN, + ?IAM_CALLING_EMPTY_DEC_IN#party_number{phone_number=[0,0,4,9,1,2,3,4,5,6,7,8,9,0,15]}). +-define(IAM_CALLING00_DEC_OUT, + ?IAM_CALLING00_DEC_IN#party_number{nature_of_addr_ind=?ISUP_ADDR_NAT_INTERNATIONAL, + phone_number=[4,9,1,2,3,4,5,6,7,8,9,0,15]}). +-define(ISUP_IAM00_DEC, {isup_msg,1,14, [{conn_ind_nature,16}, {fw_call_ind,24832}, + {calling_cat,10}, {transm_medium_req,3}, + {?ISUP_PAR_CALLED_P_NUM, ?IAM_CALLED_DEC_IN}, + {?ISUP_PAR_CALLING_P_NUM, ?IAM_CALLING00_DEC_IN}, + {57,{2,<<"1À">>}}, {29,{3,<<144,144,163>>}}]}). +-define(ISUP_IAM00_OUT, {isup_msg,1,14, [{conn_ind_nature,16}, {fw_call_ind,24832}, + {calling_cat,10}, {transm_medium_req,3}, + {?ISUP_PAR_CALLED_P_NUM, ?IAM_CALLED_DEC_OUT}, + {?ISUP_PAR_CALLING_P_NUM, ?IAM_CALLING00_DEC_OUT}, + {57,{2,<<"1À">>}}, {29,{3,<<144,144,163>>}}]}). + +setup() -> + application:set_env(mgw_nat, msrn_pfx_msc, 41489099), + application:set_env(mgw_nat, msrn_pfx_stp, 4991806040), + application:set_env(mgw_nat, intern_pfx, 49). + %mgw_nat_act_vfuk_onw:reload_config(). + +teardown(_) -> + application:unset_env(mgw_nat, msrn_pfx_msc), + application:unset_env(mgw_nat, msrn_pfx_stp), + application:unset_env(mgw_nat, intenr_pfx). + + +mangle_rx_iam() -> + ?assertEqual(?ISUP_IAM_OUT, mgw_nat:mangle_rx_isup(from_stp, path, 1, ?ISUP_IAM_DEC)). + +mangle_rx_iam00() -> + ?assertEqual(?ISUP_IAM00_OUT, mgw_nat:mangle_rx_isup(from_stp, path, 1, ?ISUP_IAM00_DEC)). + +bow_onw_test_() -> + {setup, + fun setup/0, + fun teardown/1, + [ ?_test(mangle_rx_iam()), + ?_test(mangle_rx_iam00()) + ] + }. -- cgit v1.2.3