From cb55abc0f792613a3e2f684bb043a9f78828ff75 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 24 Jun 2013 14:40:19 +0200 Subject: [PATCH] TCAP CCO: Handle case where ReturnResult.result is asn1_NOVALUE --- TCAP/src/ITU/tcap_cco_server.erl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/TCAP/src/ITU/tcap_cco_server.erl b/TCAP/src/ITU/tcap_cco_server.erl index 13732c0..ee93a5a 100644 --- a/TCAP/src/ITU/tcap_cco_server.erl +++ b/TCAP/src/ITU/tcap_cco_server.erl @@ -319,14 +319,26 @@ asn_rec_to_uprim({invoke, AsnRec}, DlgId, Last) when is_record(AsnRec, 'Invoke') parameters = AsnRec#'Invoke'.argument, lastComponent = Last}; asn_rec_to_uprim({returnResultNotLast, AsnRec}, DlgId, Last) when is_record(AsnRec, 'ReturnResult') -> - #'ReturnResult_result'{opcode = Op, result = Result} = AsnRec#'ReturnResult'.result, + case AsnRec#'ReturnResult'.result of + #'ReturnResult_result'{opcode = Op, result = Result} -> + ok; + asn1_NOVALUE -> + Op = undefined, + Result = undefined + end, #'TC-RESULT-NL'{dialogueID = DlgId, invokeID = inv_id_to_uprim(AsnRec#'ReturnResult'.invokeId), operation = Op, parameters = Result, lastComponent = Last}; asn_rec_to_uprim({returnResult, AsnRec}, DlgId, Last) when is_record(AsnRec, 'ReturnResult') -> - #'ReturnResult_result'{opcode = Op, result = Result} = AsnRec#'ReturnResult'.result, + case AsnRec#'ReturnResult'.result of + #'ReturnResult_result'{opcode = Op, result = Result} -> + ok; + asn1_NOVALUE -> + Op = undefined, + Result = undefined + end, #'TC-RESULT-L'{dialogueID = DlgId, invokeID = inv_id_to_uprim(AsnRec#'ReturnResult'.invokeId), operation = Op,