From f1803eabfbecfac985735baf64d3abac29f32a3e Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 8 Jun 2013 01:14:21 +0200 Subject: [PATCH] DHA: fix parsing of BEGIN dialogue portion on incoming msgs --- TCAP/src/ITU/tcap_dha_fsm.erl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/TCAP/src/ITU/tcap_dha_fsm.erl b/TCAP/src/ITU/tcap_dha_fsm.erl index 522c8e8..56d398e 100644 --- a/TCAP/src/ITU/tcap_dha_fsm.erl +++ b/TCAP/src/ITU/tcap_dha_fsm.erl @@ -817,9 +817,12 @@ extract_uni_dialogue_portion(_DialoguePortion) -> %% Dialogue portion included? (yes) extract_begin_dialogue_portion(UserData) when is_record(UserData, 'TR-user-data'), UserData#'TR-user-data'.dialoguePortion /= undefined -> - %% Dialogue portion correct? - case 'DialoguePDUs':decode('DialoguePDU', UserData#'TR-user-data'.dialoguePortion) of - {ok, {dialoguePDU, AARQ}} when is_record(AARQ, 'AARQ-apdu') -> + %% Extract dialogue portion + %{'EXTERNAL', {syntax,{0,0,17,773,1,1,1}}, _, DlgPDU} = UserData#'TR-user-data'.dialoguePortion, + % some implementations seem to be broken and not send the 'symtax' part?!? + {'EXTERNAL', _, _, DlgPDU} = UserData#'TR-user-data'.dialoguePortion, + case 'DialoguePDUs':decode('DialoguePDU', DlgPDU) of + {ok, {dialogueRequest, AARQ}} when is_record(AARQ, 'AARQ-apdu') -> %% Is version 1 supported? case lists:member(version1, AARQ#'AARQ-apdu'.'protocol-version') of true ->