[OpenSIPS-Users] Sip server dipping/advice

M.Khaled W Chehab kchehab at icucall.com
Tue May 14 12:17:21 CEST 2013


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);

                }

        }

 

 

}

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20130514/3e698469/attachment.htm>


More information about the Users mailing list