<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 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        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.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></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=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></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<o:p></o:p></p><p class=MsoNormal>I am sending the call to the dipping sip server gateway and receive the 302 message containing the LRN number ,<o:p></o:p></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 <o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>if ($rU=~"^.") {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(7);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(1);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> exit;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>route[1] {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (subst_uri('/(<a href="sip:.*);nat=yes/\1/')">sip:.*);nat=yes/\1/')</a>) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> setbflag(6);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (isflagset(5)) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> # for INVITEs enable some additional helper routes<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (is_method("INVITE")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_on_branch("2");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_on_reply("2");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_on_failure("1");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> avp_db_query("UPDATE `opensips`.`invites` set `trunkip` ='$rd' where `CALLID` = '$ci' ");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> } else if (is_method("BYE")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> setflag(1); # do accounting ...<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> setflag(3); #transaction falis<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> setflag(4); #CDR Table<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("----------------------------------------Route 1 Bye---------------");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> } else if (is_method("ACK")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> # call answered an ACKed, start billing here<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> } else if (is_method("CANCEL")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> # call cancelled by caller, do clean up here' ");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (!t_relay()) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "--Debug Customer ID:$avp(Cusid)/IP:$si------#11###Reply: $T_reply_code\n");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> send_reply("500","Internal Error");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> };<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> exit;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>route[7]{<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>if (!do_routing("$avp(Cusid)","FW")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>drop();<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> exit;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>route[6] {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>if ( use_next_gw() ) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> $var(prefix) = $(avp(gw_attrs){csv.value,1});<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> $rU = $var(prefix) + $avp(dst);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "--Debug Customer ID:$avp(Cusid)/IP:$si-----Calling number to Next Provier $rU\n");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> setflag(26); #Missed calls<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_on_failure("1");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_relay();<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> exit;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>branch_route[2] {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "--Debug Customer ID:$avp(Cusid)/IP:$si-----new branch at $ru\n");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(7);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>failure_route[1] {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (!t_check_status("302")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (!next_routing()){<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "LRN - Unable to DIP");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_reply("500","Unable to DIP");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> exit;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "LRN - Unable to DIP - Trying Next");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_on_failure("1");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> t_relay();<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> exit; <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (!$(<reply>ct.fields(uri){param.value,rn})){<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "LRN - No redirect information found");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(1);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }else if ($(<reply>ct.fields(uri){param.value,rn}) == $tU){<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("L_INFO", "LRN - Returned same number, no need to redirect");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(1);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }else{ <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("LRN-----$rU-------Else lRN $avp(lrnct)---------");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> $rU=$avp(lrnct); <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> xlog("LRN-----$rU-------Else lRN $avp(lrnct)---------");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(1);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> if (!t_check_status("487")) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> #$avp(failure_count) = $avp(failure_count) + 1; 480|486|603<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> route(6);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>