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