t_suspend() and t_continue() functions are introduced.
authorMiklos Tirpak <miklos@iptel.org>
Mon, 10 Nov 2008 12:47:02 +0000 (12:47 +0000)
committerMiklos Tirpak <miklos@iptel.org>
Mon, 10 Nov 2008 12:47:02 +0000 (12:47 +0000)
commit3ee91bcbc6ecfa862069b1bd189d425ea8f0d4fc
treeae90dd5b734016a30aa0ee129350fdb5e3623d42
parent8bfe70f5a44d30819327b9eaa1eaebf24ff90818
t_suspend() and t_continue() functions are introduced.

These fuctions can be used by other modules to implement
asynchronous actions: t_suspend() saves the transaction, returns its
identifiers, and t_continue() continues the SIP request processing.
(The transaction processing does not continue from the same point
in the script, a separate route block defined by the parameter of
t_continue() is executed instead. The reply lock is held during the
route block execution.) FR timer is ticking while the
transaction is suspended, and the transaction's failure route is
executed if t_continue() is not called in time.

Missing: msg lumps are saved by t_suspend() and are not updated by
the subsequent t_relay(). This means that the modifications made
between them are lost.
modules/tm/t_cancel.c
modules/tm/t_fwd.c
modules/tm/t_reply.c
modules/tm/t_reply.h
modules/tm/t_suspend.c [new file with mode: 0644]
modules/tm/t_suspend.h [new file with mode: 0644]
modules/tm/tm.c
modules/tm/tm_load.c
modules/tm/tm_load.h