[OpenSIPS-Users] Invalid contacts in location table, TCP timeout
Bogdan-Andrei Iancu
bogdan at opensips.org
Thu Oct 25 12:51:03 CEST 2012
Hello Fabian,
Regarding your questions:
1) limiting the number of contacts to be used:
a) either keep in memory just one registration (last one) - see the
"cxx" and "f" flags
http://www.opensips.org/html/docs/modules/1.8.x/registrar.html#id292725
doing save("location","c1f")
b) either keep all contacts in mem, but use only the most recent one:
modparam("usrloc", "desc_time_order", 1)
lookup("location","b"); # see
http://www.opensips.org/html/docs/modules/1.8.x/registrar.html#id292943
2) regarding the TCP timeout, it can be controlled via tcp_connect_timeout:
http://www.opensips.org/Resources/DocsCoreFcn18#toc78
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 10/22/2012 01:34 PM, Fabian Bernhard wrote:
> Dear list
>
> We develop SIP clients and have an OpenSIPS 1.8.0 test server. We are
> bound to use TCP and frequently kill the clients without
> unregistering. This leads to invalid contacts in the location table.
>
> It often takes a long time for an INVITE or MESSAGE to be forwarded by
> the server. In syslog we see a lot of these entries:
>
> Oct 18 14:55:50 Debian-60-squeeze-64-minimal
> /usr/sbin/opensips[11050]: ERROR:core:tcp_blocking_connect: timeout 10
> s elapsed from 10 s
> Oct 18 14:55:50 Debian-60-squeeze-64-minimal
> /usr/sbin/opensips[11050]: ERROR:core:tcpconn_connect:
> tcp_blocking_connect failed
> Oct 18 14:55:50 Debian-60-squeeze-64-minimal
> /usr/sbin/opensips[11050]: ERROR:core:tcp_send: connect failed
> Oct 18 14:55:50 Debian-60-squeeze-64-minimal
> /usr/sbin/opensips[11050]: ERROR:tm:msg_send: tcp_send failed
> Oct 18 14:55:50 Debian-60-squeeze-64-minimal
> /usr/sbin/opensips[11050]: ERROR:tm:t_forward_nonack: sending request
> failed
>
> I think that OpenSIPS tries to forward the messages to all contacts in
> the location table, one contact after the other. Because some of them
> are not valid anymore the server is unable to send the message. This
> means that it takes 30 seconds for an INVITE to be received if there
> are 3 old contacts in the location table, due to the 10 seconds timeout.
>
> I have hoped that the following configuration would resolve the
> problem. I thought it would make OpenSIPS to send the message to the
> most recent contact first:
>
> modparam("usrloc", "desc_time_order", 1)
>
> It turned out that this is not the case, for whatever reason.
>
> My questions:
>
> 1/ Is this behavior normal and expected? I.e. waiting 10 seconds for
> the TCP timeout before trying the next contact in the location table?
> 2/ Is there a way to configure OpenSIPS to a) send the messages in
> parallel to all contacts and b) to delete invalid contacts from
> location table upon above error?
> 3/ Can I reduce the TCP timeout to something like 2 seconds? If yes: how?
>
> Thanks and best regards
>
> Fabian
>
>
>
> _______________________________________________
> 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/20121025/ed888c0a/attachment.htm>
More information about the Users
mailing list