[OpenSIPS-Users] Problem with t_relay after

Chevio emercado at rapidlink.com
Tue Mar 10 15:01:05 CET 2009


Hi Bogdan,

I am using 1.4.2-tls

Chevio

Bogdan-Andrei Iancu wrote:
> 
> Hi Chevio,
> 
> what opensips version are you using?
> 
> Regards,
> Bogdan
> 
> Chevio wrote:
>> Hi All, 
>>
>> I  am having a weird problem with t_relay when calling it from route[2]
>> in
>> the script below.
>>
>> The problem that I am experiencing is that it does not relay the message
>> to
>> the modified destination uri host/port. Instead it relays the message to
>> the
>> modified uri/host/port from route[1]. 
>>
>> I initially thought the problem was with my tncgw_route custom module
>> that
>> modifies the msg->new_uri
>> but after some testing and debugging I realized that if I modify the
>> destination uri host/port with rewritehostport functino on route[2]
>> t_relay() is also failing (sending the message to the modified uri in
>> route[1]).
>>
>> Then I decided to try t_relay("udp:host:port") instead of t_relay() on
>> route[2] and it worked fine. So the question is why does t_relay() is not
>> picking the msg->new_uri when called from route[2]?.  
>>
>> route[1] {
>> 	setflag(22);
>> 	# send it out now; use stateful forwarding as it works reliably
>> 	# even for UDP2TCP
>> 	
>> 	if (method=="INVITE"){
>> 		t_on_failure("1");
>> 		t_on_reply("1");
>>
>> 		$var(route_result)=tncgw_route("1");
>> 		tncgw_cdr();
>> 		
>> 		if($var(route_result)==-404){
>> 			xlog("Invalid Route send 404 \n");
>> 			sl_send_reply("404","Invalid Route");
>> 			tncgw_releasecdr("404","SB Invalid Route");  
>> 			exit;
>> 			
>> 		}
>>
>> 		if($var(route_result)==-503){
>> 			xlog("Congestion, send 503 \n");
>> 			sl_send_reply("503","No route available for destination");
>> 			tncgw_releasecdr("503","SB No route available for destination");  
>> 			exit;
>> 			
>> 		}
>>
>> 		if($var(route_result)<0){
>> 			xlog("Call not routed\n");
>> 			sl_send_reply("503","No route available for destination");
>> 			tncgw_releasecdr("$var(route_result)","SB Call not routed");  
>> 			exit;
>> 		}
>>
>>
>> 		t_relay();
>> 		exit;	
>> 	}
>> }
>>
>> route[2] {
>> 	setflag(22);
>> 	# send it out now; use stateful forwarding as it works reliably
>> 	# even for UDP2TCP
>> 	t_on_reply("2");
>> 	$var(route_result)=tncgw_route("2");
>>              tncgw_cdr();
>>
>> 	if($var(route_result)==-404){
>> 		xlog("Invalid Route send 404 \n");
>> 		sl_send_reply("404","Invalid Route");
>> 		tncgw_releasecdr("404","SB Invalid Route");  
>> 		exit;
>> 	}
>>
>> 	if($var(route_result)==-503){
>> 		xlog("Congestion, send 503 \n");
>> 		sl_send_reply("503","No route available for destination");
>> 		tncgw_releasecdr("503","SB No route available for destination");  
>> 		exit;
>> 	}
>>
>> 	if($var(route_result)<0){
>> 		xlog("Call not routed\n");
>> 		sl_send_reply("503","SB No route available for destination");
>> 		tncgw_releasecdr("$var(route_result)","SB Call not routed");  
>> 		exit;
>> 	}
>>
>> 	if (!t_relay()){
>> 	
>> 		sl_reply_error();
>>
>> 	};
>> }
>>
>> failure_route[1] {
>> 	setflag(22);
>> 	if(status=~"3[0-9][0-9]|4[0-9][0-9]|5[0-9][0-9]|6[0-9][0-9]")
>> 	{
>> 		/*
>> 		if first carrier failed the call then try the next in route
>> 		*/
>> 		append_branch();
>> 		route(2);
>> 		exit;
>> 	}
>> }
>>
>>
>> onreply_route[1] {
>>         setflag(22);
>> 	if (status=~"3[0-9][0-9]|4[0-9][0-9]|5[0-9][0-9]|6[0-9][0-9]") {
>> 		# Response from carrier
>> 		tncgw_releasecdr("$rs","From Carrier");
>> 	}
>>
>> }
>>
>> I appreciate any help.
>>
>> Thank you.
>>
>> Chevio
>>
>>   
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 
> 

-- 
View this message in context: http://n2.nabble.com/Problem-with-t_relay-after-tp2450413p2455317.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.




More information about the Users mailing list