Hi , User,,,<br>
<br>
great issue to me ... please&nbsp; users help into my issue<br>
<br>
1) the softphones are not hung upping ... Disconnecting...<br>
&nbsp;that means&nbsp; Behind the Nat client&nbsp; send&nbsp;&nbsp; Bye
request .. But openser server is responseing the&nbsp; Bye .. and Ack
to server...<br>
<br>
<br>
<br>
<br>
my openser.cfg<br>
<br>
<br>
route{<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt; Starting\n&quot;);<br>
&nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header(&quot;10&quot;)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; if (msg:len &gt;=&nbsp; 2048 ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply(&quot;513&quot;, &quot;Message too big&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; NAT detection into route 2 \n&quot;);<br>
&nbsp;&nbsp;&nbsp; route(2);<br>
<br>
&nbsp;&nbsp;&nbsp; if (!method==&quot;REGISTER&quot;)&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt; method&nbsp; != REG\n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; record_route();<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; if (loose_route()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; append_hf(&quot;P-hint: rr-enforced\r\n&quot;); <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; if (!uri==myself) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; append_hf(&quot;P-hint: outbound\r\n&quot;); <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; if (uri==myself) {<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; uri==my\n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (method==&quot;REGISTER&quot;) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!www_authorize(&quot;&quot;, &quot;subscriber&quot;)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; www_challenge(&quot;&quot;, &quot;0&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (isflagset(5)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(6);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # if you want OPTIONS natpings uncomment next<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # setflag(7);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; save(&quot;location&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!lookup(&quot;location&quot;)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply(&quot;404&quot;, &quot;Not Found...... ! &quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; append_hf(&quot;P-hint: usrloc applied\r\n&quot;); <br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; route(1);<br>
}<br>
<br>
<br>
route[1] {<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; route[1] \n&quot;);<br>
&nbsp;&nbsp;&nbsp; if (subst_uri('/(sip:.*);nat=yes/\1/')){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(6);<br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; if (isflagset(5)||isflagset(6)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(3);<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; if (!t_relay()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; exit;<br>
}<br>
<br>
route[2]{<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; route[2] \n&quot;);<br>
&nbsp;&nbsp;&nbsp; force_rport();<br>
&nbsp;&nbsp;&nbsp; if (nat_uac_test(&quot;19&quot;)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; nat_uac-test_19\n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (method==&quot;REGISTER&quot;) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt; nat _ reg \n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_register();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt; nat_cantact \n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(5);<br>
&nbsp;&nbsp;&nbsp; };<br>
}<br>
<br>
route[3] {<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; route 3 \n&quot;);<br>
&nbsp;&nbsp;&nbsp; if (is_method(&quot;BYE|CANCEL&quot;)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; Bye\n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; acc_db_request(&quot;Stop&quot;,&quot;acc&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; unforce_rtp_proxy();<br>
&nbsp;&nbsp;&nbsp; } else if (is_method(&quot;INVITE&quot;)){<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt; Invite in route [3\n&quot;);<br>
&nbsp;&nbsp;&nbsp; acc_db_request(&quot;Start&quot;,&quot;acc&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; force_rtp_proxy();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_failure(&quot;1&quot;);<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; if (isflagset(5))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; search_append('Contact:.*sip:[^&gt;[:cntrl:]]*', ';nat=yes');<br>
&nbsp;&nbsp;&nbsp; t_on_reply(&quot;1&quot;);<br>
}<br>
<br>
failure_route[1] {<br>
&nbsp;&nbsp;&nbsp; if (isflagset(6) || isflagset(5)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; acc_db_request(&quot;Stop&quot;,&quot;acc&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; unforce_rtp_proxy();<br>
&nbsp;&nbsp;&nbsp; }<br>
}<br>
<br>
onreply_route[1] {<br>
&nbsp;&nbsp;&nbsp; log(&quot;Testing-------&gt;&nbsp; t_on_reply\n&quot;);<br>
&nbsp;&nbsp;&nbsp; if ((isflagset(5) || isflagset(6)) &amp;&amp; status=~&quot;(183)|(2[0-9][0-9])&quot;) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; force_rtp_proxy();<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; search_append('Contact:.*sip:[^&gt;[:cntrl:]]*', ';nat=yes');<br>
<br>
&nbsp;&nbsp;&nbsp; if (isflagset(6)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; exit;<br>
}<br clear="all"><br>-- <br> Thanks and Regards with cheers<br>Sunkara Ravi Prakash (Voip Developer)<br>Hyperion Technology<br><a href="http://www.hyperion-tech.com">www.hyperion-tech.com</a>