Commit Graph

55 Commits

Author SHA1 Message Date
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 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 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 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 2e7ab1fe65 CCO: ensure state.components is always a list, not just a record 2011-12-17 18:34:47 +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 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 fb5de0e5cc rename ets 'transaction' table to 'tcap_transaction'
the ets namespace is global, so weshould prefix it with the name tcap to
avoid collisions with other applications.
2011-12-15 11:33:17 +01:00
Harald Welte 665aacb35b TCO server: make sure argument list for behaviour module is a list 2011-12-13 19:19:47 +01:00
Harald Welte 467e7c7a59 fix various typos in the ISM 2011-12-12 00:42:19 +01:00
Harald Welte e676002dd9 ISM: generate a nice process name including dialogue + invoke ID 2011-10-22 22:19:01 +02:00
Harald Welte bd91071d0b include DHA pid in init arguments of component supervisor 2011-10-22 22:18:39 +02:00
Harald Welte 57be88ad13 CCO: handle incoming Reject from ISM 2011-10-22 19:54:33 +02:00
Harald Welte 75c35570e9 ISM: actually generate REJECT components 2011-10-22 19:54:12 +02:00
Harald Welte 3afbf0a65a CCO: Use TC.hrl instead of ROS 2011-10-18 21:12:44 +02:00
Harald Welte c9e48ab1e7 TCAP DHA: Make sure to use gen_server:cast for CCO as it is no gen_fsm 2011-10-18 21:12:15 +02:00
Harald Welte 4d8b44a455 create a new ets table to save the DialogueId -> DHA-Pid mapping 2011-10-18 21:09:46 +02:00
Harald Welte 59d0c8ab37 Implement the actual CCO, it was just a skeleton before... 2011-10-18 20:52:29 +02:00
Harald Welte 6b363e580e first attempt at implementing the TCO and ISM parts 2011-10-18 20:22:36 +02:00
Harald Welte b3888e41fd DHA: use correct name for component supervisor 2011-10-16 01:16:56 +02:00
Harald Welte 5930d0f720 TSM FSM: dialogue_sup -> tcap_dialogue_sup 2011-10-15 23:45:17 +02:00
Harald Welte 841dee9e0d tcap_tsm_fsm: Properly evaluate result of asn1 encoding
results from the asn1 encoder are always prefixed with {ok, ..}

As the encoder returns binary data, the list_to_binary() function is
bogus.  The result might be an iolist() - which we simply specify the
underlying SCCP transport implementation must support (or flatten
itself).
2011-10-15 22:51:39 +02:00