From e7d5812d17e1165492ad342c016c80bad24ae9aa Mon Sep 17 00:00:00 2001 From: Daniel <0xc0decafe@users.noreply.github.com> Date: Wed, 5 Oct 2016 12:42:59 +0200 Subject: Structure changed in regard to erlang OTP. Added binary release. --- src/ss7_helper.erl | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/ss7_helper.erl (limited to 'src/ss7_helper.erl') diff --git a/src/ss7_helper.erl b/src/ss7_helper.erl new file mode 100644 index 0000000..194cbad --- /dev/null +++ b/src/ss7_helper.erl @@ -0,0 +1,53 @@ +-module(ss7_helper). +-author('Daniel Mende '). + +-export([encode_phonenumber/4, + decode_phonenumber/1, + encode_msisdn/4, + decode_imsi/1, + remove_firstN/2, + tup2bin/1]). + +decode_imsi(<<>>) -> + []; +decode_imsi(Imsi) -> + <> = Imsi, + Dec = decode_imsi(Rest), + if + First==15 -> lists:append([Second], Dec); + true -> lists:append([Second,First], Dec) + end. + +%% =================================================================== +%% Phone Number helper +%% =================================================================== + +encode_phonenumber(Extension, NatureOfNumber, NumberPlan, Number) -> + {EncNumber, Digits} = encode_phonenumber(Number), + <>. +encode_phonenumber([First,Second|Tail]) -> + {EncNumber, Digits} = encode_phonenumber(Tail), + {<>, Digits + 2}; +encode_phonenumber([Last]) -> + {<<15:4, Last:4>>, 1}; +encode_phonenumber([]) -> + {<<>>, 0}. + +decode_phonenumber(<<_Extension:1, _NatureOfNumber:1, _NumberPlan:4, Number/binary>>) -> + decode_imsi(Number). + +encode_msisdn(Extension, NatureOfNumber, NumberPlan, Number) -> + {EncNumber, _} = encode_phonenumber(Number), + <>. + +%% =================================================================== +%% List helper +%% =================================================================== + +remove_firstN(_, []) -> []; +remove_firstN(1, [_|T]) -> T; +remove_firstN(N, [_|T]) -> remove_firstN(N-1, T). + + +tup2bin(Tupel) -> + binary:list_to_bin([element(I,Tupel) || I <- lists:seq(1,tuple_size(Tupel))]). -- cgit v1.2.3