[OpenSIPS-Users] Sip server dipping/advice

Daniel Yu daniel at bulkvs.com
Thu May 23 07:14:48 CEST 2013


M.Khaled,

It may be easier to perform HTTP Queries to perform the LRN lookup. Have a
look at www.bulkvs.com where we offer HTTP based LRN DIPs.

Cheers -

Daniel



> ---------- Forwarded message ----------
> From: M.Khaled W Chehab <kchehab at icucall.com>
> Date: Tue, May 14, 2013 at 6:17 AM
> Subject: [OpenSIPS-Users] Sip server dipping/advice
> To: users at lists.opensips.org, users-bounces at lists.opensips.org
>
>
> Hi,****
>
> ** **
>
> ** **
>
> I am using opensips 1.8.x with do_routing module ,and trying to implement
> the US  dipping service in my script****
>
> I am sending the call to the dipping sip server gateway and receive the
> 302 message containing  the LRN number  ,****
>
> 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  ****
>
> if ($rU=~"^.") {****
>
>                 route(7);****
>
>                 route(1);****
>
>                 exit;****
>
> ** **
>
> route[1] {****
>
>         if (subst_uri('/(sip:.*);nat=yes/\1/')) {****
>
>                 setbflag(6);****
>
>         }****
>
> ** **
>
>         if (isflagset(5)) {****
>
>                search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');*
> ***
>
>         }****
>
>  ****
>
>         # for INVITEs enable some additional helper routes****
>
>         if (is_method("INVITE")) {****
>
> ** **
>
>  ****
>
>                 t_on_branch("2");****
>
>                 t_on_reply("2");****
>
>                 t_on_failure("1");****
>
>                 avp_db_query("UPDATE `opensips`.`invites` set `trunkip`
> ='$rd' where  `CALLID` = '$ci' ");****
>
> ** **
>
>         } else if (is_method("BYE")) {****
>
>                 setflag(1); # do accounting ...****
>
>                 setflag(3); #transaction falis****
>
>                 setflag(4); #CDR Table****
>
>                 xlog("----------------------------------------Route 1
> Bye---------------");****
>
>                        ****
>
>         } else if (is_method("ACK")) {****
>
>                 # call answered an ACKed, start billing here****
>
> ** **
>
>         } else if (is_method("CANCEL")) {****
>
>                 # call cancelled by caller, do clean up here' ");****
>
>         }****
>
> ** **
>
>         if (!t_relay()) {****
>
>                 xlog("L_INFO", "--Debug Customer
> ID:$avp(Cusid)/IP:$si------#11###Reply: $T_reply_code\n");****
>
> ** **
>
>                 send_reply("500","Internal Error");****
>
>         };****
>
> ** **
>
>         exit;****
>
> }****
>
>  ****
>
> route[7]{****
>
> if (!do_routing("$avp(Cusid)","FW")) {****
>
> drop();****
>
>                         exit;****
>
>                 }****
>
> }****
>
> ** **
>
>  ****
>
> route[6] {****
>
> if ( use_next_gw() ) {****
>
>                                 $var(prefix) =
> $(avp(gw_attrs){csv.value,1});****
>
>                                 $rU = $var(prefix) + $avp(dst);****
>
>                                 xlog("L_INFO", "--Debug Customer
> ID:$avp(Cusid)/IP:$si-----Calling number to Next Provier $rU\n");****
>
>                                 setflag(26); #Missed calls****
>
>                                 t_on_failure("1");****
>
>                                 t_relay();****
>
>                                 exit;****
>
>                         }****
>
> }****
>
> ** **
>
>  ****
>
> branch_route[2] {****
>
>         xlog("L_INFO", "--Debug Customer ID:$avp(Cusid)/IP:$si-----new
> branch at $ru\n");****
>
>                 route(7);****
>
> }****
>
> ** **
>
>  ****
>
> failure_route[1] {****
>
> ** **
>
>  ****
>
>          if (!t_check_status("302")) {****
>
>                 if (!next_routing()){****
>
>                         xlog("L_INFO", "LRN - Unable to DIP");****
>
>                         t_reply("500","Unable to DIP");****
>
>                         exit;****
>
>                 }****
>
>                 xlog("L_INFO", "LRN - Unable to DIP - Trying Next");****
>
>                 t_on_failure("1");****
>
>                 t_relay();****
>
>                 exit;  ****
>
>         }****
>
> ** **
>
>         if (!$(<reply>ct.fields(uri){param.value,rn})){****
>
>                                        xlog("L_INFO", "LRN - No redirect
> information found");****
>
>                             route(1);****
>
>                                   }else if
> ($(<reply>ct.fields(uri){param.value,rn}) == $tU){****
>
>                   xlog("L_INFO", "LRN - Returned same number, no need to
> redirect");****
>
>                                     route(1);****
>
>                                   }else{ ****
>
>                         xlog("LRN-----$rU-------Else lRN
> $avp(lrnct)---------");****
>
>                         $rU=$avp(lrnct);           ****
>
>                         xlog("LRN-----$rU-------Else lRN
> $avp(lrnct)---------");****
>
> ** **
>
>                  route(1);****
>
>                                ****
>
>         }****
>
>                 ****
>
>                 if (!t_check_status("487")) {****
>
>                         #$avp(failure_count) = $avp(failure_count) + 1;
> 480|486|603****
>
>                         route(6);****
>
>                 }****
>
>         }****
>
> ** **
>
> ** **
>
> }****
>
> ** **
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20130523/e9873ad0/attachment.htm>


More information about the Users mailing list