[OpenSIPS-Users] TLS relay blocked as server retries stale locations

yufei.tao yufei.tao at redembedded.com
Wed Sep 8 12:15:41 CEST 2010


Hi

I see that by default all the AOR entries in the location table are put
on different branches. When one branch received 18x/2xx I cancel the
other branches by t_cancel_branch("o"). But the problem is that once the
t_relay() is called, the canceling won't happen until all the failed
retries of sending INVITE to the stale AORs are done. And the retries
are holding up the relaying of the ACK and the cancels. 

So this is a similar problem to 
http://www.mail-archive.com/devel@lists.opensips.org/msg03199.html
but I didn't see any final solutions as to:

Is it possible to make the tcp/tls send non-blocking (or something like
that) so the long process of retrying sending of the INVITE to all AOR
entries can be interrupted and t_cancel_branch("o") processed (so to
stop the branches that retry sending to stale AORs) instead of finishing
all the retries first?

Thanks!
Yufei
 
On Tue, 2010-09-07 at 11:27 +0100, yufei.tao wrote:
> Hello
> 
> 
> I have set up opensips1.6.2 for TLS. All is fine under normal
> conditions. But there is a problem for the server to relay properly if 2
> SIP clients are turned on and off a few times, which results in a few
> stale entries in the location table. Then client1 calls client2:
> 
>    client1                   server                  client2
> 
>              ... ...                  ... ...
> 
>            ---INVITE--->             ---INVITE--->
>            <---Ringing---            <---Ringing---
>            <---OK---                 <---OK---
>            ---ACK--->
> 
> And ACK isn't relayed to client2 (on time), as server is busy retrying
> (and failing) relay INVITE to the stale entries in the location table.
> It takes too long for the box so call is dropped.
> 
> I have tried to reduce tcp_connect_timeout to 1, and children=8
> according to
> http://www.mail-archive.com/devel@lists.opensips.org/msg03199.html
> But still not working.
> 
> I wonder if it's possible to let opensips relay on a separate branch for
> each entry in the location table for a client, so that when one branch
> has received 180/OK, I can cancel the other branches. But don't know if
> it is possible, or if yes, how to do it? Or, should it be done in any
> other ways?
> 
> Thank you very much! 
> 

-- 




More information about the Users mailing list