From a0efe8a006288803e8f0cca88e0dd516f7e4672c Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 30 Jan 2012 22:51:16 +0100 Subject: [PATCH] CCO: Forward incoming INVOKE directly to TC-User --- TCAP/src/ITU/tcap_cco_server.erl | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/TCAP/src/ITU/tcap_cco_server.erl b/TCAP/src/ITU/tcap_cco_server.erl index cdbcf89..b6d76ad 100644 --- a/TCAP/src/ITU/tcap_cco_server.erl +++ b/TCAP/src/ITU/tcap_cco_server.erl @@ -152,7 +152,7 @@ handle_cast({'TC','U-REJECT',request, Param}, State) % DHA -> CHA (CCO): Components received handle_cast({components, Components}, State) -> % Figure A.6/Q.774 (2 of 4) - process_rx_components(State#state.ism, Components), + process_rx_components(State#state.ism, State#state.usap, Components), {noreply, State}; % ISM -> CCO: Generate REJ component @@ -328,13 +328,13 @@ asn_rec_to_uprim({reject, AsnRec}) when is_record(AsnRec, 'Reject') -> problemCode = AsnRec#'Reject'.problem}. -process_rx_components(_ISMs, []) -> +process_rx_components(_ISMs, _Usap, []) -> ok; -process_rx_components(ISMs, [Head|Tail]) -> - process_rx_component(ISMs, Head), - process_rx_components(ISMs, Tail). +process_rx_components(ISMs, Usap, [Head|Tail]) -> + process_rx_component(ISMs, Usap, Head), + process_rx_components(ISMs, Usap, Tail). -process_rx_component(ISMs, C={invoke, #'Invoke'{invokeId=InvId}}) -> +process_rx_component(ISMs, Usap, C={invoke, #'Invoke'{invokeId=InvId}}) -> {invoke, I} = C, case I#'Invoke'.linkedId of asn1_NOVALUE -> @@ -345,10 +345,9 @@ process_rx_component(ISMs, C={invoke, #'Invoke'{invokeId=InvId}}) -> ok end, Prim = asn_rec_to_uprim(C), - {InvId, ISM} = lists:keyfind(InvId, 1, ISMs), - gen_fsm:send_event(ISM, Prim); -process_rx_component(ISMs, C={reject, #'Reject'{invokeId=InvId, - problem=Problem}}) -> + gen_fsm:send_event(Usap, {'TC','INVOKE',indication,Prim}); +process_rx_component(ISMs, _Usap, C={reject, #'Reject'{invokeId=InvId, + problem=Problem}}) -> ISM = lists:keyfind(InvId, 1, ISMs), case Problem of {invoke, _} -> @@ -361,7 +360,7 @@ process_rx_component(ISMs, C={reject, #'Reject'{invokeId=InvId, Prim = asn_rec_to_uprim(C), {InvId, ISM} = lists:keyfind(InvId, 1, ISMs), gen_fsm:send_event(ISM, Prim); -process_rx_component(ISMs, Comp) -> +process_rx_component(ISMs, _Usap, Comp) -> % syntax error? InvId = get_invoke_id_from_comp(Comp), {InvId, ISM} = lists:keyfind(InvId, 1, ISMs),