[Users] t_on_failure doesn't

Klaus Darilion klaus.mailinglists at pernau.at
Tue Aug 22 15:38:20 CEST 2006


Is the auto-reply generated in t_relay or at the end of the script? 
Would this work?
         if (!t_relay()) {
		rewrite URI
		t_relay again?
         };

regards
klaus

Bogdan-Andrei Iancu wrote:
> for the moment is not possible - please fill in a bug report on the 
> tracker to have in mind to work out a solution for this.
> 
> regards,
> bogdan
> 
> Nathan Hawkins wrote:
> 
>> So am I correct in understanding that there is currently no way to
>> handle this condition? This seems like a serious problem with using TCP.
>>
>> Bogdan-Andrei Iancu wrote:
>>  
>>
>>> Hi Nathan,
>>>
>>> failure route is called in case of a call failure (negative reply) and
>>> not if a sending error occurred.
>>>
>>> the right way to do it will be to have a way to disable the auto reply
>>> in case of error in  t_reply() and deal with the error from the script.
>>>
>>> regards,
>>> bogdan
>>>
>>> Nathan Hawkins wrote:
>>>
>>>   
>>>> I'm trying to use the LCR module to do a failover between two
>>>> gateways. For testing purposes, I have a gateway record pointed at an
>>>> IP that isn't used. The problem is, I can't seem to get OpenSER to
>>>> fail over to the other gateway. I want to use TCP (with TLS when I'm
>>>> done), but I get this:
>>>>
>>>> Jul 20 15:36:57 asiago /usr/sbin/openser[11896]: route[6]: routing to
>>>> INVITE sip:MYDID at MYIPADDRESS:5060;transport=tcp
>>>> Jul 20 15:37:17 asiago /usr/sbin/openser[11896]: ERROR:
>>>> tcp_blocking_connect: timeout (10)
>>>> Jul 20 15:37:17 asiago /usr/sbin/openser[11896]: ERROR:
>>>> tcpconn_connect: tcp_blocking_connect failed
>>>> Jul 20 15:37:17 asiago /usr/sbin/openser[11896]: ERROR: tcp_send:
>>>> connect failed
>>>> Jul 20 15:37:17 asiago /usr/sbin/openser[11896]: msg_send: ERROR:
>>>> tcp_send failed
>>>> Jul 20 15:37:17 asiago /usr/sbin/openser[11896]:
>>>> ERROR:tm:t_forward_nonack: sending request failed
>>>>
>>>> (IP and username censored.)
>>>>
>>>> OpenSER sends this to the caller:
>>>> SIP/2.0 477 Unfortunately error on sending to next hop occurred 
>>>> (477/TM)
>>>>
>>>> Why can't I catch this with either the return code from t_relay or
>>>> the failure route?
>>>>
>>>> It will go to the failure route if I get a reply back from the next
>>>> hop. But I need to fail to the other gateway.
>>>>
>>>> The relevent parts of the configs are shown below. (Addresses 
>>>> censored.)
>>>>
>>>> Any help would greatly appreciated.
>>>>
>>>> Thanks,
>>>>
>>>>   ---Nathan
>>>>
>>>>
>>>> Config snippet:
>>>>
>>>>   # ok, so maybe try a gateway...
>>>>   if( load_gws() ) {
>>>>       xlog("L_INFO","route[3]: gateway routing $rm $ru");
>>>>       t_on_failure("1");
>>>>       route(6);
>>>>       return;
>>>>   }
>>>> }
>>>>
>>>> route[6] {
>>>>   xlog("L_INFO","route[6]: $rm $ru");
>>>>   t_on_failure("1");
>>>>   t_on_reply("1");
>>>>   if (!next_gw()) {
>>>>       xlog("L_INFO","route[6]: no more gateways for $ru");
>>>>       exit;
>>>>   }
>>>>   xlog("L_INFO","route[6]: routing to $rm $ru");
>>>>   if(!t_relay()) {
>>>>       xlog("L_INFO","route[6]: t_relay returned $rc");
>>>>       sl_reply_error();
>>>>   }
>>>>   return;
>>>> }
>>>>
>>>> failure_route[1] {
>>>>   xlog("L_INFO","failure_route[1]: $rm $ru");
>>>>   t_on_failure("1");
>>>>   if(t_check_status("404")) {
>>>>       xlog("L_INFO","failure_route[1]: failing call with 404 for $ru");
>>>>       return;
>>>>   }
>>>>   if (!next_gw()) {
>>>>       xlog("L_INFO","route[6]: no more gateways for $ru");
>>>>       exit;
>>>>   }
>>>>   append_branch();
>>>>   xlog("L_INFO","failure_route[1]: sending $rm $ru");
>>>>   if(!t_relay()) {
>>>>       xlog("L_INFO","route[6]: t_relay returned $rc");
>>>>   }
>>>>   return;
>>>> }
>>>>
>>>>
>>>> Gateways:
>>>>
>>>> mysql> select * from gw where grp_id=4;
>>>> +---------+--------+-----------+------+------------+-----------+--------+ 
>>>>
>>>>
>>>> | gw_name | grp_id | ip_addr   | port | uri_scheme | transport |
>>>> prefix |
>>>> +---------+--------+-----------+------+------------+-----------+--------+ 
>>>>
>>>>
>>>> | ithaka  |      4 | CENSORED | 5060 |       NULL |         2 | 
>>>> NULL   |
>>>> | larink  |      4 | BAD_ADDRESS | 5060 |       NULL |         2 |
>>>> NULL   |
>>>> +---------+--------+-----------+------+------------+-----------+--------+ 
>>>>
>>>>
>>>> 2 rows in set (0.00 sec)
>>>>
>>>>
>>>> ithaka is a working OpenSER proxy. larink is an empty IP address.
>>>> (There used to be a server named larink.)
>>>>
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at openser.org
>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>     
>>
>>  
>>
> 
> 
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users





More information about the Users mailing list