From 0637b919343a0e0e9a199c2c03cf6ed092838e63 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 10 Jun 2013 09:00:51 +0200 Subject: [PATCH] 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. --- TCAP/src/ITU/tcap_cco_server.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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),