I am trying to understand how tm module works.
I found in
http://www.iptel.org/ser/doc/prerelease/x545.html--->Stateful
User Agent Server:
______________________________________________
t_newtran shields subsequent code from retransmissions. It returns success
and continues when a new request arrived. It exits current route block
immediately on receipt of a retransmissions.
-----------------------------------------------
I found in the README included in tm module:
_______________________________________________
Name: t_newtran
Params: 0
Desc: creates a new transaction, returns a negative value on
error; this is the only way a script can add a new transaction
in an atomic way; typically, it is used to deploy a UAS
-----------------------------------------------
I think the two explanations above are inconsistent. I am quite confused.
Take the scripts below for example:
_______________________________
if ( !t_newtran()) {
sl_reply_error();
break;
};
# the following log will be only printed on receipt of
# a new message; retranmissions are absorbed by t_newtran
log(1, "New Transaction Arrived\n");
if (uri=~"a@") {
if (!t_reply("409", "Bizzar Error")) {
sl_reply_error();
};
} else {
if (!t_reply("699", "I don't want to chat with you")) {
sl_reply_error();
};
};
-------------------------------
My understanding is: If t_newtran() returns successfully, the scripts will
not execute forward until a new message rather than retransmission of the
original message is received. Am I right? If wrong, how does it work
actually?
Thanks!
Younger Wang