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