Commit Graph

137 Commits

Author SHA1 Message Date
Harald Welte 59d51e23a4 CCO: include DialogueID in user primitives; correctly convert InvokeID 2012-01-31 18:03:49 +01:00
Harald Welte 876c198584 DHA: work around TCAP implementations that forget tho send the id-as-dialogue 2012-01-31 00:10:14 +01:00
Harald Welte 141484622f DHA: Make sure to generate TC-END.ind to TC-User 2012-01-30 23:57:07 +01:00
Harald Welte 50f0aac344 tcap_sup: add comment 2012-01-30 23:37:53 +01:00
Harald Welte 44a2bf3a3a ISM: terminate gracefully if 'termiante' event received 2012-01-30 23:36:44 +01:00
Harald Welte c956b44d97 CCO: handle 'dialogue-terminated' gracefully 2012-01-30 23:35:21 +01:00
Harald Welte f43bffe405 DHA: handle TR-END.indication from TSL 2012-01-30 23:34:53 +01:00
Harald Welte 8d7b02530f TSM: fix incoming handling of Continue/End/Abort 2012-01-30 23:08:27 +01:00
Harald Welte 556e14a07f TCO: Fix ets lookup when receiving END transaction 2012-01-30 22:55:13 +01:00
Harald Welte a0efe8a006 CCO: Forward incoming INVOKE directly to TC-User 2012-01-30 22:51:16 +01:00
Harald Welte feb2275971 CCO: correctly resolve ISM Pid on response to outgoing Invokes 2012-01-30 22:36:02 +01:00
Harald Welte bc4c9669ae CCO: gem_fsm/gen_fsm spelling mistake 2012-01-30 21:18:00 +01:00
Harald Welte 7943c341b2 DHA: fix copy/paste mistake END/CONTINUE 2012-01-30 21:14:17 +01:00
Harald Welte 9bdce61410 TCO: Pass only Pid, not complete From tuple as Usap PID to DHA 2012-01-30 21:12:23 +01:00
Harald Welte d03ed86648 DHA: correct parsing of ComponentPortion and AARE-apdu 2012-01-30 21:06:03 +01:00
Harald Welte a8487477ad TSM: supervisor starts DHA, not us. Resolve DHA using ets 2012-01-30 20:51:23 +01:00
Harald Welte cd4dceba61 TSM: fix copy+paste mistake resulting in BadRecord exception 2012-01-30 19:50:49 +01:00
Harald Welte 8adb719ce5 TCO: correctly parse/decode incoming transaciton IDs to resolve TSM 2012-01-30 19:47:24 +01:00
Harald Welte fd392388e9 TCO: fix interpretation of incoming TPDUs
It's sufficient to call the asn1 decoder on TCMessage, we don't need
to call it again for begin/continue/end
2012-01-30 01:50:30 +01:00
Harald Welte aee832a6ee CCO: correctly encode InvokeId in local generation of Invoke 2012-01-30 01:33:07 +01:00
Harald Welte d2a045ad25 DHA: use TC:Components for encoding components, not TR:ComponentPortion 2012-01-30 01:21:48 +01:00
Harald Welte 8cecce3aba CCO: actually hand over the [{invoke, #'Invoke'{}}] style components to DHA 2012-01-30 01:21:21 +01:00
Harald Welte 5d2061e509 DHA: properly encode dialogueportion during BEGIN 2012-01-30 00:55:38 +01:00
Harald Welte 153cdc4564 ISM: give ISM processes a proper name to help debugging 2012-01-29 23:37:27 +01:00
Harald Welte c2773f018b enable gen_fsm debug tracing for TSM and DHA for the tiem being 2012-01-29 23:23:24 +01:00
Harald Welte 983e81e9e6 transaction supervisor: properly convert name from list to atom 2012-01-29 23:22:54 +01:00
Harald Welte 992982b298 TSM FSM: Make sure to replace 'undefined' in DialoguePortion with asn1_NOVALUE
The ASN.1 encoder wants to explicitly have asn1_NOVALUE for OPTIONAL
fields.  However, the default erlang record initializer is 'undefiend',
so we have to replace undefined with asn1_NOVALUE before feeding it to
asn1rt.
2012-01-29 23:06:42 +01:00
Harald Welte b8f82b68af DHA: Fix encoding of ComponentPortion 2012-01-29 20:24:22 +01:00
Harald Welte 05f7778a81 TCO/TCU: Make sure to start all supervisors on INVOKE
This introduces a new 'call' from the TC-User to TCO, which creates
the equired transaction_sup, dialogues_sup, dha_fsm and tsm_fsm _before_
the TC-INVOKE component will be passed into the new DHA fsm.

Once the TCO actually receives the TR-BEGIN, it will not start the
transaction supervisor, but merely look it up based on the TR-user
provided transaction ID.
2012-01-29 20:07:38 +01:00
Harald Welte 0b3d9b053c make sure CCO correctly starts new ISM 2012-01-29 20:02:25 +01:00
Harald Welte 24b34f506a transaction_sup: start dha_fsm in addition to dsm_fsm 2012-01-28 20:50:55 +01:00
Harald Welte dbb39e1776 Fxi the way that TCO starts transaction_sup and tsm_fsm in local-out-begin 2011-12-18 21:45:49 +01:00
Harald Welte bedd015b07 DHA: No need for passing PID of dialogue_sup into DHA 2011-12-18 12:54:08 +01:00
Harald Welte 4ab9bffba2 TSM: use a caller-provided Fun to send primitives towards SCCP 2011-12-18 12:22:31 +01:00
Harald Welte 6b0a7361be DHA: Since TCO is a gen_server, not gen_fsm, use cast! 2011-12-18 12:20:42 +01:00
Harald Welte f42d43b9f4 TCO: export the new_tid() function 2011-12-17 19:11:32 +01:00
Harald Welte 0f692c61b5 make sure that the 'transactionID' key in the ets table exists 2011-12-17 19:11:22 +01:00
Harald Welte a6ead2ab01 make sure ANSI part at least compiles, even if incomplete 2011-12-17 18:59:04 +01:00
Harald Welte 2cdfd20466 s/transaction_coordinator_server/tcap_tco_server/g 2011-12-17 18:56:54 +01:00
Harald Welte 04c548c2d8 CCO: make sure ISM list is initialized as empty list [] 2011-12-17 18:55:27 +01:00
Harald Welte f6f4f6d5cc CCO: fix typo (send_event instead of sent_event) 2011-12-17 18:37:44 +01:00
Harald Welte 70be83b1c9 tcap_invocation_sup:start_ism/5 instead of start_ism/1 2011-12-17 18:35:14 +01:00
Harald Welte 2e7ab1fe65 CCO: ensure state.components is always a list, not just a record 2011-12-17 18:34:47 +01:00
Harald Welte 5c0f228e11 tcap_user: correctly resolve DHA/TCO
ets lookups return a tuple, not just the Pid value that we want.
2011-12-17 18:27:28 +01:00
Harald Welte a0dd2c6228 TCAP: make sure to start tcap_invocation_sup above tcap_ism_fsm
The tcap_invocation_sup is cretaed at the same time the tcap_cco_server
is created.  Once TR requests BEGIN components, the tcap_invocation_sup
is requested to start a new tcap_ism_fsm child.
2011-12-17 17:47:41 +01:00
Harald Welte 205f585435 invocation supervisor: correctly call ISM 2011-12-17 17:22:55 +01:00
Harald Welte 9cb1851b3b ISM: properly register a local name 2011-12-17 17:22:35 +01:00
Harald Welte d828cfabba TCAP: resolve DHA / CCO dependencies on TC-U initiated BEGIN
Prior to this patch, DHA needs to know the CCO pid, and CCO needed to
know the DHA pid at startup.  The idea was to start CCO from within the
init() callback in DHA.  However, this caused a deadlock in the
supervisor.

We now use the locally registred process names (tcap_cco_DLGID) to
resolve the process.  However, it might be cleaner to use an ets table
at some later point.  For now it is nice to see the name of each process
in pman for debugging...
2011-12-17 17:06:29 +01:00
Harald Welte 5c1cd340eb make sure tcap_user start tcap_dialogue_sup starts tcap_dha_fsm 2011-12-16 00:36:45 +01:00
Harald Welte 66514a113e add new tcap_user:start_sap() function
This can be used to instantiate the per-SAP tcap_sap_sup and
tcap_tco_server callback module in a simple call like this:

{ok, TcoPid} = tcap_user:start_sap(osmo_sccp_tcap, [7], []).
2011-12-15 23:38:29 +01:00