From 642a68b017aa3dfdc2a57164843ffeda05490729 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 16 Jan 2012 15:59:27 +0100 Subject: mtp3: add encoder/decoder for MTP3MG --- src/mtp3_codec.erl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/mtp3_codec.erl b/src/mtp3_codec.erl index df5b6b1..0fca990 100644 --- a/src/mtp3_codec.erl +++ b/src/mtp3_codec.erl @@ -34,8 +34,9 @@ parse_mtp3_routing_label(_, LabelBin) when is_binary(LabelBin) -> parse_mtp3_msg(DataBin) when is_binary(DataBin) -> <> = DataBin, {ok, RoutLbl, Payload} = parse_mtp3_routing_label(ServiceInd, Remain), + PayloadDec = decode_payload(ServiceInd, Payload), #mtp3_msg{network_ind = NetInd, service_ind = ServiceInd, routing_label = RoutLbl, - payload = Payload}. + payload = PayloadDec}. encode_mtp3_routing_label(#mtp3_routing_label{sig_link_sel = Sls, origin_pc = OpcIn, @@ -47,5 +48,19 @@ encode_mtp3_routing_label(#mtp3_routing_label{sig_link_sel = Sls, origin_pc = Op encode_mtp3_msg(#mtp3_msg{network_ind = NetInd, service_ind = ServiceInd, routing_label = RoutLbl, payload = Payload}) -> RoutLblBin = encode_mtp3_routing_label(RoutLbl), - <>. + PayloadBin = payload_to_binary(Payload), + <>. + + +decode_payload(?MTP3_SERV_MGMT, Payload) -> + <> = Payload, + #mtp3mg_msg{h0 = H0, h1 = H1, test_pattern = TP}; +decode_payload(_, Payload) -> + Payload. + +payload_to_binary(#mtp3mg_msg{h0=H0, h1=H1, test_pattern=TP}) -> + Len = byte_size(TP), + <>; +payload_to_binary(Whatever) -> + Whatever. -- cgit v1.2.3