Friday, January 15, 2010

Best of New in Kamailio 3.0.0 - #18: transaction management

Transaction management (tm module) was the most re-worked internally. Inherited from SER via SIP Router framework, it brings a lot of novelty for Kamailio users. The core of the module in this form is out and tested heavily for more that two years.

When comparing with the version we have in older versions of Kamailio (OpenSER), the new design removed a lot of locks, improved the retransmissions timers and exports richer API to build new applications in tops of it.

In order to keep the module slim, a new module was created: tmx - tm extensions, trying to collect high application level function and let tm mainly for the core of transaction management.

Here is the summary about tm module:
  • module was overhauled
    • faster and more lightweight timer implementations for retransmissions
    • removed lot of locks by a better design
    • more internal hooks to develop applications on top of module
  • asynchronous message processing support
    • you can park the transaction and resume the processing later
    • meanwhile the SIP worker process can handle new SIP traffic
  • option to decide what replies to drop in serial forking steps
  • load of new functions to access transactions
  • new parameters to tune transaction management
As for tmx:
  • special pseudo-variables tied to tm in request, failure, branch or reply routes:
    • $T_inv(pv)
    • access to pseudo-variables and attributes of INVITE while processing the CANCEL
    • $T_req(pv)
    • access to pseudo-variables and attributes of SIP request while processing the reply
    • $T_rpl(pv)
    • access to pseudo-variables and attributes of SIP reply while processing the request

Best of New in Kamailio 3.0.0 - Table of Content.

No comments:

Post a Comment