[SR-Users] Loosing rtp only in carrierroute failureroute

Oliver Roth oliver.roth at triotel.ch
Tue Nov 26 20:41:49 CET 2013


No idea?

-----Ursprüngliche Nachricht-----
Von: sr-users-bounces at lists.sip-router.org [mailto:sr-users-bounces at lists.sip-router.org] Im Auftrag von Oliver Roth
Gesendet: Dienstag, 29. Oktober 2013 12:50
An: Kamailio (SER) - Users Mailing List
Betreff: [SR-Users] Loosing rtp only in carrierroute failureroute

Hi all 

We do have a strange problem with loosing rtp in case of carrierroute - failureroute.
If we send traffic directly to the failure gateway, we do have rtp without any problem

Situation:
Ua --> Freeswitch --> kamailio 3.3 --> gw 1 Error 404 --> failureroute --> media gateway voiceprompt for error 404 ==> this does not work

Ua --> Freeswitch --> kamailio 3.3 rewrite to dest for voiceprompt 404  -->media gateway voiceprompt for error 404 ==> this works!!

Any idea?
For me it seems being a problem with branching or so.

Regards,
Oli

Configs below:

Main routing block

request_route {
	--- do all the checks

	route(CARRIERROUTE);
	route(RELAY);
}


route[RELAY] {
	xlog(, "L_INFO", "RELAY: Outbound sent via $avp(s:trunk_out)");
	# enable additional event routes for forwarded requests
	# - serial forking, RTP relaying handling, a.s.o.
	if (is_method("INVITE|SUBSCRIBE")) {
		t_on_branch("MANAGE_BRANCH");
		t_on_reply("MANAGE_REPLY");
		xlog(,"L_INFO", "RELAX - Manage branch ...\n");
	}
	if (is_method("INVITE")) {
		t_on_failure("MANAGE_FAILURE");
	}

	if (!t_relay()) {
		sl_reply_error();
	}
	exit;
}

# carrierroute
route[CARRIERROUTE] {
	xlog(,"L_INFO","Carrierroute module start \n");
	$avp(s:tree) = "default";
	
	# lookup from user and from domain
	cr_user_carrier("$fU", "$avp(s:trunk_in)", "$avp(s:cr_pref_carr)");

	if($avp(s:cr_pref_carr) == 0){
		# lookup from domain
		cr_user_carrier("", "$avp(s:trunk_in)", "$avp(s:cr_pref_carr)");
	}	

	if(!cr_route("$avp(s:cr_pref_carr)", "$avp(s:tree)", "$rU", "$rU", "call_id", "$avp(s:todirection)" )){
		xlog("cr_route 403 no route found $avp(s:cr_pref_carr)");
               	sl_send_reply("403", "Not allowed");
		exit;
        }
	$avp(s:trunk_out) = $avp(s:todirection);
	route(ALTERHEADER);

}


failure_route[MANAGE_FAILURE] {
	
        if (t_grep_status("486")){
                xlog("L_INFO", "Status 486 - busy");
                t_reply("486", "Busy");
        }


	#revert_uri();
	route(NATMANAGE);

	if (t_is_canceled()) {
                exit;
        }

	xlog("L_INFO", "failure_route $rd $T_reply_code $avp(s:trunk_in), $avp(s:tree), $rU, $rd, $T_reply_code, $avp(s:tree) \n");

	if(!cr_next_domain("$avp(s:cr_pref_carr)", "$avp(s:tree)", "$rU", "$avp(s:trunk_in)", "$T_reply_code", "$avp(s:tree)" )){
              	xlog("cr_next_domain failed");
		exit;
	}

	if(!cr_route("$avp(s:cr_pref_carr)", "$avp(s:tree)", "$rU", "$rU", "call_id", "$avp(s:todirection)" )){
		xlog("cr_route failed");
		exit;
        }
	$avp(s:trunk_out) = $avp(s:todirection);


	if (is_method("INVITE"))
	{
		setflag(FLT_ACC); # do accounting
		setflag(FLT_ACCMISSED); # oro 28.10.13
	}
	

	
	route(ALTERHEADER);

	t_on_failure("MANAGE_FAILURE");

	if (!t_relay()) {
	       	xlog("failureroute t_relay failed");
  	     	exit;
        }

}

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users at lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-----
E-Mail ist virenfrei.
Von AVG überprüft - www.avg.de
Version: 2014.0.4158 / Virendatenbank: 3615/6784 - Ausgabedatum: 26.10.2013 



More information about the sr-users mailing list