<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt">Hi Bogdan,<br><br>The problem was with my INVITE dispatch route.<br><br>following is my complete script.<br><br><br>&nbsp;&nbsp;&nbsp; if (!allow_trusted()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_newtran();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_authorize("","subscriber");<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $var(x) = $retcode;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO","------return code after auth is $var(x) \n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($var(x)&lt;0) {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!lookup("location")){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO","------challenging to $fU
 \n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_challenge("","0");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (!check_from()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Spoofed From-URI detected");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO","Spoofed From-URI detected ! from --&gt; $fu -- IP $si PORT:$sp");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(is_present_hf("Proxy-Authorization")){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 consume_credentials();# Changed on 2010-06-25<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!lookup("location")) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewritehostport("192.168.102.5:5070");<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; append_hf("P-hint: usrloc applied\r\n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(1);<br><br><br>route[1] {<br><br><span style="font-weight: bold;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(is_method("INVITE")) {</span><br style="font-weight: bold;"><span style="font-weight: bold;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(t_check_trans())</span><br style="font-weight: bold;"><span style="font-weight: bold;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br style="font-weight: bold;"><span style="font-weight:
 bold;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO", "Duplicate message $ruri M=$rm&nbsp; F=$fu&nbsp; IP=$si \n"); </span><br style="font-weight: bold;"><span style="font-weight: bold;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;</span><br style="font-weight: bold;"><span style="font-weight: bold;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # send it out now; use stateful forwarding as it works reliably<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # even for UDP2TCP<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # xlog("L_INFO", "Request leaving server - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!t_relay()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO", "(Rewriting) t_relay 1 - M=$rm RURI=$ru F=$fu T=$tu IP=$si
 ID=$ci\n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_reply_error();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_on_reply("1");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<br>}<br><br>The commented lines has cause opensips to drop the packet as a duplicate one (Initial INVITE and subsequent retransmissions) . If I'm using t_newtran(); in auth route how to I check the duplicate messages ?<br><br>If I'm using t_newtran() don't I need to use <span style="font-weight: bold;">t_check_trans() to check for duplicates ?<br><br>can I create transactions for other requests which by pass the auth route as follow in route[1] ?<br><br></span>route[1] {<br>
<br>
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(is_method("INVITE")) {</span><br style="font-weight: bold;">
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!t_check_trans())</span><br style="font-weight: bold;">
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_newtran();</span><br style="font-weight: bold;">
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO", "creating transaction $ruri M=$rm&nbsp; F=$fu&nbsp; IP=$si \n"); </span><br style="font-weight: bold;">
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;</span><br style="font-weight: bold;">
<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br style="font-weight: bold;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # send it out now; use stateful forwarding as it works reliably<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # even for UDP2TCP<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # xlog("L_INFO", "Request leaving server - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!t_relay()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO", "(Rewriting) t_relay 1 - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_reply_error();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_on_reply("1");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<br>
}<br>
<br><span style="font-weight: bold;"><br>If I can clarify these things I can&nbsp; apply the changes in the production server.<br><br></span>Thanks<br><div><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 13px;"><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Bogdan-Andrei Iancu &lt;bogdan@voice-system.ro&gt;<br><b><span style="font-weight: bold;">To:</span></b> OpenSIPS users mailling list &lt;users@lists.opensips.org&gt;<br><b><span style="font-weight: bold;">Sent:</span></b> Wednesday, August 4, 2010 22:44:53<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [OpenSIPS-Users] Fw:  proxy_authorize("","subscriber") bug ??<br></font><br>Hi Pasan,<br><br>please enable full logging (set debug=6)&nbsp; and make a log capture for the <br>whole registration process - like first REGISTER,
 challenge, second <br>REGISTER...<br><br>Because in the first set of logs, I see that -3 is returned, which is <br>"stale nonce" - see <br><a href="http://www.opensips.org/html/docs/modules/1.6.x/auth_db.html#id228268" target="_blank">http://www.opensips.org/html/docs/modules/1.6.x/auth_db.html#id228268</a><br><br>Regards,<br>Bogdan<br><br>Pasan Meemaduma wrote:<br>&gt; Hi Bogdan,<br>&gt;<br>&gt; I had to setup a test opensips server to try your suggestion as I <br>&gt; can't do much testing on production server.<br>&gt;<br>&gt; When I have following in auth route opensips doesn't allow call being <br>&gt; routed properly<br>&gt;<br>&gt;<br>&gt;&nbsp; &nbsp;  if (!allow_trusted()) {<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  t_newtran();<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  proxy_authorize("","subscriber");<br>&gt;<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  $var(x) = $retcode;<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  xlog("L_INFO","------return code after auth is $var(x)
 \n");<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  if ($var(x)&lt;0) {<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  xlog("L_INFO","------var(x) &lt; 0 \n");<br>&gt;<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  if(!lookup("location") ){<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  xlog("L_INFO","------challenging to $fU \n");<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  proxy_challenge("","0");<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  exit;<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  }<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  } else if (!check_from()) {<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  sl_send_reply("403", "Spoofed From-URI detected");<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  xlog("L_INFO","Spoofed From-URI detected ! from --&gt; <br>&gt; $fu -- IP $si PORT:$sp");<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  exit;<br>&gt;&nbsp; &nbsp;
 &nbsp; &nbsp;  }<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  if(is_present_hf("Proxy-Authorization")){<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  consume_credentials();# Changed on 2010-06-25<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp;  }<br>&gt;&nbsp; &nbsp;  }<br>&gt;<br>&gt; I get the following in the /var/log/messages<br>&gt;<br>&gt; ug&nbsp; 4 14:24:01 devserver /usr/sbin/opensips[12766]: <br>&gt; INFO:xlog:mod_init: initializing...<br>&gt; Aug&nbsp; 4 14:24:01 devserver /usr/sbin/opensips[12766]: <br>&gt; INFO:textops:hname_fixup: using hdr type (16) instead of <br>&gt; &lt;Proxy-Authorization&gt;<br>&gt; Aug&nbsp; 4 14:24:01 devserver /usr/sbin/opensips[12766]: <br>&gt; INFO:core:probe_max_receive_buffer: using a UDP receive buffer of 255 kb<br>&gt; Aug&nbsp; 4 14:24:10 devserver /usr/sbin/opensips[12768]: ------return code <br>&gt; after auth is -4<br>&gt; Aug&nbsp; 4 14:24:10 devserver /usr/sbin/opensips[12768]: ------var(x) &lt; 0<br>&gt; Aug&nbsp; 4
 14:24:10 devserver /usr/sbin/opensips[12768]: ------challenging <br>&gt; to 1001<br>&gt; Aug&nbsp; 4 14:24:10 devserver /usr/sbin/opensips[12771]: ------return code <br>&gt; after auth is 1<br>&gt; Aug&nbsp; 4 14:24:18 devserver /usr/sbin/opensips[12771]: ------return code <br>&gt; after auth is 1<br>&gt; Aug&nbsp; 4 14:24:19 devserver /usr/sbin/opensips[12769]: ------return code <br>&gt; after auth is -4<br>&gt; Aug&nbsp; 4 14:24:19 devserver /usr/sbin/opensips[12769]: ------var(x) &lt; 0<br>&gt; Aug&nbsp; 4 14:24:26 devserver /usr/sbin/opensips[12771]: ------return code <br>&gt; after auth is 1<br>&gt; Aug&nbsp; 4 14:24:42 devserver /usr/sbin/opensips[12768]: ------return code <br>&gt; after auth is -3<br>&gt; Aug&nbsp; 4 14:24:42 devserver /usr/sbin/opensips[12768]: ------var(x) &lt; 0<br>&gt; Aug&nbsp; 4 14:24:42 devserver /usr/sbin/opensips[12768]: ------challenging <br>&gt; to 1001<br>&gt;<br>&gt;
 -------------------------------------------------<br>&gt;<br>&gt;<br>&gt; But if I try commenting the t_newtran It route the call successfully.<br>&gt;<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  # t_newtran();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;--- commented<br>&gt;&nbsp;  <br>&gt;<br>&gt; Aug&nbsp; 4 14:23:23 devserver /usr/sbin/opensips[12710]: <br>&gt; INFO:textops:mod_init: initializing...<br>&gt; Aug&nbsp; 4 14:23:23 devserver /usr/sbin/opensips[12710]: <br>&gt; INFO:uac:mod_init: initializing...<br>&gt; Aug&nbsp; 4 14:23:23 devserver /usr/sbin/opensips[12710]: <br>&gt; INFO:xlog:mod_init: initializing...<br>&gt; Aug&nbsp; 4 14:23:23 devserver /usr/sbin/opensips[12710]: <br>&gt; INFO:textops:hname_fixup: using hdr type (16) instead of <br>&gt; &lt;Proxy-Authorization&gt;<br>&gt; Aug&nbsp; 4 14:23:23 devserver /usr/sbin/opensips[12710]: <br>&gt; INFO:core:probe_max_receive_buffer: using a UDP receive buffer of 255 kb<br>&gt; Aug&nbsp; 4 14:23:29
 devserver /usr/sbin/opensips[12713]: ------return code <br>&gt; after auth is -4<br>&gt; Aug&nbsp; 4 14:23:29 devserver /usr/sbin/opensips[12713]: ------var(x) &lt; 0<br>&gt; Aug&nbsp; 4 14:23:29 devserver /usr/sbin/opensips[12713]: ------challenging <br>&gt; to 1001<br>&gt; Aug&nbsp; 4 14:23:29 devserver /usr/sbin/opensips[12715]: ------return code <br>&gt; after auth is 1<br>&gt;<br>&gt;<br>&gt; Looks like we can't t_newtran() like above. any clue ?<br>&gt;<br>&gt; Thanks<br>&gt;&nbsp; <br>&gt;<br>&gt;<br><br></div></div>
</div><br></body></html>