From 049ee7350958ec580a8aff02a9c54e6a768396d7 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 24 Jun 2013 07:59:52 +0200 Subject: isup_codec: add gen_party_number() helper --- src/isup_codec.erl | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/isup_codec.erl') diff --git a/src/isup_codec.erl b/src/isup_codec.erl index ab7285d..dd2149f 100644 --- a/src/isup_codec.erl +++ b/src/isup_codec.erl @@ -35,7 +35,8 @@ -author('Harald Welte '). -include("isup.hrl"). --export([parse_isup_msg/1, encode_isup_msg/1, parse_isup_party/2, encode_isup_party/1]). +-export([parse_isup_msg/1, encode_isup_msg/1, parse_isup_party/2, + encode_isup_party/1, gen_party_number/3]). -compile(export_all). @@ -485,3 +486,34 @@ encode_isup_msg(Msg = #isup_msg{msg_type = MsgType}) -> HdrBin = encode_isup_hdr(Msg), Remain = encode_isup_msgt(MsgType, Msg), <>. + + +listify(L) when is_list(L) -> + L; +listify(L) when is_integer(L) -> + osmo_util:int2digit_list(L). + +encode_nature(international) -> + ?ISUP_ADDR_NAT_INTERNATIONAL; +encode_nature(national) -> + ?ISUP_ADDR_NAT_NATIONAL; +encode_nature(subscriber) -> + ?ISUP_ADDR_NAT_SUBSCRIBER; +encode_nature(Int) when is_integer(Int) -> + Int. + +encode_numplan(isdn) -> + 1; +encode_numplan(telephony) -> + 1; +encode_numplan(data) -> + 3; +encode_numplan(telex) -> + 4; +encode_numplan(Int) when is_integer(Int) -> + Int. + +gen_party_number(NAI, NumPlan, Number) -> + #party_number{nature_of_addr_ind = encode_nature(NAI), + numbering_plan = encode_numplan(NumPlan), + phone_number = listify(Number)}. -- cgit v1.2.3