Hi all Kamailio developers,
I would like to propose a new module that I've written recently, the tsilo
module where tsilo stands for "transaction silo" (thanks Daniel for
suggesting the name). The module provides the ability to add branches to a
transaction that has already been relayed and still hasn't got a final
response. It achieves it by storing in an internal table a list of
transactions per r-uri.
The scenarios for which this functionality has been originally though are
those in which a user's device is usually not registered on kamailio but,
in case of incoming invite, can be "waken up" (and so trigger its
registration) by means of mechanisms other than SIP; typically scenarios
involving APN, GCM or other push mechanisms.
The module exposes 3 functions to configuration script:
- t_store(): store the current transaction
- t_append(domain, ruri): append branches to all the transactions existing
for "ruri" looking up new contacts in "domain" table
- t_append_to(tindex, tlabel, domain): append branches to transaction
identified by tindex and tlabel looking up new contacts in "domain" table
The module depends on tm and registrar module on which some modifications
have been done:
registrar: new api function update_to_dset to update the dset without
rewriting the r-uri
tm: new api function t_append_branches and some modifications on t_fwd.* to
implement it
I hope that this contribution could be useful for the community and I look
forward to hearing your feedback, thoughts, suggestions.
Best regards,
Federico Cabiddu