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