<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.StileMessaggioDiPostaElettronica17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.Section1
        {page:Section1;}
/* List Definitions */
@list l0
        {mso-list-id:1255170073;
        mso-list-type:hybrid;
        mso-list-template-ids:-248727748 -1003716162 68157443 68157445 68157441 68157443 68157445 68157441 68157443 68157445;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=IT link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span lang=EN-US>Hi, i have a problem about the handling of
the “cancel” message.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>The call flow is this:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>A -----------------> (Invite) Proxy
(P) B<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> (100
Tryng) <--------------------------- <o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:212.4pt;text-indent:35.4pt'><span
lang=EN-US>----------------->(Invite) B<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> (100
Tryng) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> (183
Progress) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>(183 Progress) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> (200
OK) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:35.4pt'><span lang=EN-US>(200 OK) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>--------------------------------->(CANCEL)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>(200 canceling) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> (200
OK) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>(200 OK) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>----------------->(ACK)<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:212.4pt;text-indent:35.4pt'><span
lang=EN-US>----------------->(ACK)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> (BYE) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>(BYE) <---------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>----------------->(481
Call Leg/Transaction Does Not Exist)<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:212.4pt;text-indent:35.4pt'><span
lang=EN-US>----------------->(481 Call Leg/Transaction Does Not Exist)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>The B side
answer with OK, after a while , a send a CANCEL. I don’t know why
Kamailio don’t forward this message to the B side.<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>B retry to send
the OK message, then A send the ACK.<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>At the end , B
send BYE , but A don’t have the transactin.<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>In this
situation, kamailio should deliver the “CANCEL” to the B side ? (even
if, before B send the OK )<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>Or the proxy
should not consider the CANCEL because B has answered with “OK”
?<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>Where is the
error on my configuration ?<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>Thanks<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>I have Kamailio
1.5.3 and my configuration is this:<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("siptrace",
"trace_on", 0)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("carrierroute",
"config_source", "db")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("auth_db",
"password_column", "ha1")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("auth_db",
"use_domain", 1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("usrloc",
"db_mode", 2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#modparam("usrloc","nat_bflag",
8)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("permissions",
"trusted_table", "trusted")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("permissions",
"db_mode", 1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("permissions",
"peer_tag_avp", "$avp(i:707)")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("mi_fifo",
"fifo_name", "/tmp/kamailio_fifo")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("avpops","avp_table","usr_preferences")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("avpops","attribute_column","attribute")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("avpops","value_column","value")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("uac","from_restore_mode","auto")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("tm",
"fr_timer", 12)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("tm",
"wt_timer", 32)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("rr",
"append_fromtag", 1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#modparam("rr",
"enable_full_lr", 1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("userblacklist",
"use_domain", 0)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#modparam("dialog",
"dlg_flag", 2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("registrar|nathelper",
"received_avp", "$avp(i:42)")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#modparam("registrar",
"min_expires", 17000)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("acc",
"db_flag", 2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("acc",
"db_missed_flag", 3)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("acc",
"db_table_acc", "acc")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("acc",
"db_table_missed_calls", "missed_calls")<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>modparam("acc",
"detect_direction", 1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>route{<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># Sanity Check
Section<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
if (!mf_process_maxfwd_header("10")) <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
{<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
sl_send_reply("483", "Too Many Hops");<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
};<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
if (msg:len > max_len) <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
{<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
sl_send_reply("513", "Message Overflow");<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
};<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># Preprocessing<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(!method=="REGISTER") record_route();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># NAT Detection<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> force_rport();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(nat_uac_test("19")) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(method=="REGISTER") {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> fix_nated_register();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> fix_nated_contact();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> setflag(7);<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
----------------------------------------------------------------- <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> sip_trace();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> ##Loose_route
packets<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(has_totag()) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(loose_route()) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if(method=="BYE")
{<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> #Account
BYE transactions<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> setflag(2);<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> route(2);<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
( is_method("ACK") ) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
if ( t_check_trans() ) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
#
non loose-route, but stateful ACK; <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
# must be an ACK after a 487 or e.g. 404 from upstream server<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
t_relay();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
}
else {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
# ACK without matching transaction ... ignore and discard.\n");<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
}<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>
}<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> sl_send_reply("404","Not
here");<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># CANCEL
processing <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
----------------------------------------------------------------- <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(is_method("CANCEL")) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(t_check_trans()) t_relay();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> t_check_trans();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
-----------------------------------------------------------------<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>#
----------------------------------------------------------------- <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(method =="OPTIONS" || method=="SUBSCRIBE") {exit;};<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(method =="REGISTER") {route(3);}; <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> route(1);<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>route[2] <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>{ <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> t_on_reply("1");
<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(!t_relay()) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> sl_reply_error();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>} <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>……<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>failure_route[2]
{<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(t_was_cancelled()) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US># xlog("INFO:cancelled
transaction--\n");<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> } <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> revert_uri();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>……<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> t_on_failure("2");<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> append_branch();<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> if
(!t_relay()) {<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US>}<o:p></o:p></span></p>
</div>
</body>
</html>