summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2013-06-10 09:00:51 +0200
committerHarald Welte <laforge@gnumonks.org>2013-06-10 09:00:51 +0200
commit0637b919343a0e0e9a199c2c03cf6ed092838e63 (patch)
tree4e765fda41d125389f4e3cfc056bcecfb9684022
parentf319881540feff0c5d9c07d776bae5bc99caac80 (diff)
CCO: TCAP 'Invoke' parameters are not OPTIONAL
... so we cannot feed asn1_NOVALUE into the encoder, but have to pass an empty list instead. sigh.
-rw-r--r--TCAP/src/ITU/tcap_cco_server.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/TCAP/src/ITU/tcap_cco_server.erl b/TCAP/src/ITU/tcap_cco_server.erl
index 72a6c76..1e5f78b 100644
--- a/TCAP/src/ITU/tcap_cco_server.erl
+++ b/TCAP/src/ITU/tcap_cco_server.erl
@@ -277,12 +277,19 @@ terminate_ISMs([{_Id, ISM}|Tail]) ->
gen_fsm:send_event(ISM, terminate),
terminate_ISMs(Tail).
+undef2empty(undefined) ->
+ [];
+undef2empty(asn1_NOVALUE) ->
+ [];
+undef2empty(Foo) ->
+ Foo.
+
% Convert from user-visible primitive records to asn1ct-generated record
uprim_to_asn_rec(Uprim) when is_record(Uprim, 'TC-INVOKE') ->
{invoke, #'Invoke'{invokeId = inv_id_to_asn_rec(Uprim#'TC-INVOKE'.invokeID),
linkedId = inv_id_to_asn_rec(Uprim#'TC-INVOKE'.linkedID),
opcode = osmo_util:asn_val(Uprim#'TC-INVOKE'.operation),
- argument = osmo_util:asn_val(Uprim#'TC-INVOKE'.parameters)}};
+ argument = undef2empty(Uprim#'TC-INVOKE'.parameters)}};
uprim_to_asn_rec(#'TC-RESULT-NL'{invokeID = InvId, operation = Op,
parameters = Params}) ->
ResRes = #'ReturnResult_result'{opcode = osmo_util:asn_val(Op),