[OpenSIPS-Users] LRN numbers

M.Khaled W Chehab kchehab at icucall.com
Thu May 16 13:31:18 CEST 2013


Dear Bogdan ,

 

I  Fix it by  setting do_routing()  instead of route(7) with t_relay 

 

Thanks 

 

From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org] 
Sent: Wednesday, May 15, 2013 8:36 PM
To: OpenSIPS users mailling list
Cc: M.Khaled W Chehab; users-bounces at lists.opensips.org
Subject: Re: [OpenSIPS-Users] LRN numbers

 

Hello,

You get that error as signaling functions are not allowed in branch route -
you invoke there route[7] which tried to send back a reply - the reply
sending function is not allowed in branch route.

Regards,



Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 05/13/2013 04:28 PM, M.Khaled W Chehab wrote: 

Hi again,

 

I fix it using the below code but still there is a mistake since I can find
the below error, please can you check if I am coding in correct way

 

CRITICAL:tm:w_t_reply: unsupported route_type (8)

ERROR:signaling:sig_send_reply_mod: failed to send reply with tm module

 

 

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")) {

                        send_reply("404","No PSTN Route found");

                        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_was_cancelled()) {

                xlog("L_INFO", "--Debug Customer
ID:$avp(Cusid)/IP:$si-----Call Canceled--SIP Reason:$T_reply_code\n");

                xlog("L_INFO", "##########==========End of invite for
Customer ID:$avp(Cusid)/IP:$si--Over
$rd====on_route_failure_1======##########3 \n");

                avp_db_query("delete   FROM `invites` WHERE `CALLID`
='$ci'");

 

                exit;

        }

 

 

 

        if (t_check_status("481") ) {

                acc_db_request("200 Dialog Timeout", "acc");

                xlog("-----Reply:
$T_reply_code#----------481-422-487--#####$rm from $si
(callid=$ci)######################################");

        }

        # If fr_timer expires t_check_status("408") is true, although $rs is
<null>

        if (t_check_status("(408)|(5[0-9][0-9])")) {

                #xlog("L_INFO", "--Debug Customer
ID:$avp(Cusid)/IP:$rd-----Delete Invite #####$rd Reply:
$T_reply_code#######14\n");

                xlog( "L_NOTICE", "[$Tf] FR: $ci -- TIMEOUT for Gateway $rd
(marking as bad)\n" );

        }

        if( t_check_status("[4-6][0-9][0-9]")){

                xlog("L_INFO", "--Debug Customer
ID:$avp(Cusid)/IP:$rd-----$si Reply: $T_reply_code#######13\n");

                xlog("L_INFO", "##########==========End of invite
ID:$avp(Cusid)/IP:$rd###############\n");

                #xlog( "L_NOTICE", "[$Tf] FR: $ci ------$rd----------Delete
2--------------\n" );

                avp_db_query("delete   FROM `invites` WHERE `CALLID`
='$ci'");

               

                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/20130516/598ca814/attachment-0001.htm>


More information about the Users mailing list