We have both the smsCDA and the imsi_list translation in the
MO-ForwardSM-Arg, and have to put both in one matching function, as in
the case of multiple matching functions only one of them will be
executed.
This module is able to match a SCCP message against a given
Destination-GT prefix and checks if the message contains an
Invoke(SRI-for-SM). If both conditions are true, it alters the TT from
whatever it may currently be to 3.
This is used for SMS special routing cases at the STP.
we cannot store persistent/dynamically created state like the references
to our SCCP MASQ state tables in the application environment, as the
environment gets cleared and re-initialized by the
application_controller on osmo_util:reload_config().
So now we use named_tables instead to ensure persistency accross
config reload
We used to convert from inetrnational format into national format on the
MSC->STP direction of ISUP messages. This is no longer the case, we now
need to send exclusively international format.
When the MSC responds with a SRI-SM-Response, we match against a
user-supplied list of IMSs. If there is a match, we replace the
known prefix of the IMSI with a new known prefix.
The mgw_nat_sup supervisor now starts one mgw_nat_usr process for each
MSC-STP link defined in the configuration file. However, the actual
translation/mangling/masquerading configuration as well as runtime state
like allocated SCCP mappings is global/shared between all signalling
links.
Furthermore, a new mgw_nat_adm process is introduced to ensure config
file reloading (formerly handled by the single mgw_nat_usr) does not
have to run in the supervisor (and risk crashing it).
This allows us to use the osmo_ss7_gtt module for matching Sccp
addresses including GT ranges.
The eunit tests have been extended to test the new code.
By keeping a module reference, we can call multiple functions inside the
module, and not just one. This will allow us to propagate a 'reload_config'
function call into the rewrite actors.
Instead of a static configuration of rewrite/mangling/patching steps,
we now introduce the concept of a 'rewrite_actor', which is a callback
function that determines which rewrite/patching code to call at which
particular layer of the protocol.
The default rewrite actor "bow_onw" resembles the existing rewrite
behavior.
There is a stub new rewrite actore "vfuk_onw", which will be used
for Camel phase rewriting.