<div dir="ltr"><div style>M.Khaled,</div><div style><br></div><div style>It may be easier to perform HTTP Queries to perform the LRN lookup. Have a look at <a href="http://www.bulkvs.com">www.bulkvs.com</a> where we offer HTTP based LRN DIPs.</div>
<div style><br></div><div style>Cheers -</div><div style><br></div><div style>Daniel</div><div><br></div><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">M.Khaled W Chehab</b> <span dir="ltr">&lt;<a href="mailto:kchehab@icucall.com" target="_blank">kchehab@icucall.com</a>&gt;</span><br>


Date: Tue, May 14, 2013 at 6:17 AM<br>Subject: [OpenSIPS-Users] Sip server dipping/advice<br>To: <a href="mailto:users@lists.opensips.org" target="_blank">users@lists.opensips.org</a>, <a href="mailto:users-bounces@lists.opensips.org" target="_blank">users-bounces@lists.opensips.org</a><br>


<br><br><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">Hi,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I am using opensips 1.8.x with do_routing module ,and trying to implement the US  dipping service in my script<u></u><u></u></p>


<p class="MsoNormal">I am sending the call to the dipping sip server gateway and receive the 302 message containing  the LRN number  ,<u></u><u></u></p><p class="MsoNormal">As as result I can have the rn number but I am sending the invite  to the dipping provider twice ,please can you advice how to setup it in the right way  <u></u><u></u></p>


<p class="MsoNormal"><span style="color:#1f497d">if ($rU=~&quot;^.&quot;) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                route(7);<u></u><u></u></span></p><p class="MsoNormal">

<span style="color:#1f497d">                route(1);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">                exit;<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">route[1] {<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">        if (subst_uri(&#39;/(<a>sip:.*);nat=yes/\1/&#39;)</a>) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                setbflag(6);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">        }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        if (isflagset(5)) {<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">               search_append(&#39;Contact:.*sip:[^&gt;[:cntrl:]]*&#39;, &#39;;nat=yes&#39;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        }<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        # for INVITEs enable some additional helper routes<u></u><u></u></span></p><p class="MsoNormal">


<span style="color:#1f497d">        if (is_method(&quot;INVITE&quot;)) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                t_on_branch(&quot;2&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                t_on_reply(&quot;2&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                t_on_failure(&quot;1&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                avp_db_query(&quot;UPDATE `opensips`.`invites` set `trunkip` =&#39;$rd&#39; where  `CALLID` = &#39;$ci&#39; &quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        } else if (is_method(&quot;BYE&quot;)) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                setflag(1); # do accounting ...<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                setflag(3); #transaction falis<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                setflag(4); #CDR Table<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                xlog(&quot;----------------------------------------Route 1 Bye---------------&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                       <u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">        } else if (is_method(&quot;ACK&quot;)) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                # call answered an ACKed, start billing here<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        } else if (is_method(&quot;CANCEL&quot;)) {<u></u><u></u></span></p><p class="MsoNormal">


<span style="color:#1f497d">                # call cancelled by caller, do clean up here&#39; &quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        }<u></u><u></u></span></p><p class="MsoNormal">


<span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        if (!t_relay()) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                xlog(&quot;L_INFO&quot;, &quot;--Debug Customer ID:$avp(Cusid)/IP:$si------#11###Reply: $T_reply_code\n&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                send_reply(&quot;500&quot;,&quot;Internal Error&quot;);<u></u><u></u></span></p>

<p class="MsoNormal">
<span style="color:#1f497d">        };<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        exit;<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">}<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">route[7]{<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">if (!do_routing(&quot;$avp(Cusid)&quot;,&quot;FW&quot;)) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">drop();<u></u><u></u></span></p><p class="MsoNormal">


<span style="color:#1f497d">                        exit;<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">}<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">route[6] {<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">if ( use_next_gw() ) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                $var(prefix) = $(avp(gw_attrs){csv.value,1});<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                                $rU = $var(prefix) + $avp(dst);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                xlog(&quot;L_INFO&quot;, &quot;--Debug Customer ID:$avp(Cusid)/IP:$si-----Calling number to Next Provier $rU\n&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                                setflag(26); #Missed calls<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                t_on_failure(&quot;1&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                                t_relay();<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                exit;<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                        }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">}<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">branch_route[2] {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        xlog(&quot;L_INFO&quot;, &quot;--Debug Customer ID:$avp(Cusid)/IP:$si-----new branch at $ru\n&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                route(7);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">}<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">failure_route[1] {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"> <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">         if (!t_check_status(&quot;302&quot;)) {<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                if (!next_routing()){<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                        xlog(&quot;L_INFO&quot;, &quot;LRN - Unable to DIP&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                        t_reply(&quot;500&quot;,&quot;Unable to DIP&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                        exit;<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                xlog(&quot;L_INFO&quot;, &quot;LRN - Unable to DIP - Trying Next&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                t_on_failure(&quot;1&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                t_relay();<u></u><u></u></span></p><p class="MsoNormal">


<span style="color:#1f497d">                exit;  <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">        if (!$(&lt;reply&gt;ct.fields(uri){param.value,rn})){<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                       xlog(&quot;L_INFO&quot;, &quot;LRN - No redirect information found&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                            route(1);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                  }else if ($(&lt;reply&gt;ct.fields(uri){param.value,rn}) == $tU){<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                  xlog(&quot;L_INFO&quot;, &quot;LRN - Returned same number, no need to redirect&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                                    route(1);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                                  }else{ <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                        xlog(&quot;LRN-----$rU-------Else lRN  $avp(lrnct)---------&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                        $rU=$avp(lrnct);           <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                        xlog(&quot;LRN-----$rU-------Else lRN  $avp(lrnct)---------&quot;);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                 route(1);<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                               <u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">        }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                <u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                if (!t_check_status(&quot;487&quot;)) {<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                        #$avp(failure_count) = $avp(failure_count) + 1;  480|486|603<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">                        route(6);<u></u><u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d">                }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">        }<u></u><u></u></span></p><p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>


<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:#1f497d">}<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p></div></div><br>_______________________________________________<br>



Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br></div><br></div>
</blockquote></div><br></div></div>