Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usrloc keepalive: Not sending OPTIONS to UDP endpoints- 5.8.0 and 5.8.1 #3844

Open
lukeescude opened this issue May 7, 2024 · 3 comments
Open

Comments

@lukeescude
Copy link

lukeescude commented May 7, 2024

Running compiled Kamailio 5.8.1 (previously 5.8.0) on Debian 12 64-bit

We're seeing an issue with UDP endpoints (this issue does not happen with TCP and TLS) where usrloc will not send OPTIONS packet keepalives.

Here are all of our usrloc parameters:

modparam("usrloc", "db_mode", 0)
modparam("usrloc", "ka_domain", "SIPDOMAIN") #-- SIPDOMAIN is a fqdn
modparam("usrloc", "ka_from", "sip:proxy-ping@SIPDOMAIN")
modparam("usrloc", "ka_mode", 1)
modparam("usrloc", "timer_interval", 20) #-- How often to qualify endpoints and clean mem tables?
modparam("usrloc", "timer_procs", 4)
modparam("usrloc", "ka_randomize", 10)
modparam("usrloc", "use_domain", 0)
modparam("usrloc", "server_id_filter", 1)
modparam("usrloc", "ka_filter", 0)
modparam("usrloc", "ka_timeout", 60) #-- How quickly to expire a contact if it does not reply to keepalive?
modparam("usrloc", "matching_mode", 0)
modparam("usrloc", "handle_lost_tcp", 1)
modparam("usrloc", "close_expired_tcp", 1)
modparam("usrloc", "desc_time_order", 1)
modparam("usrloc", "hash_size", 14)

It seems usrloc is not actually using timer_interval at all for UDP devices, and UDP devices don't receive any OPTIONS packets at all. However, it does seem to be sending OPTIONS every 60 seconds on TCP/TLS. (this is confirmed via packet capture on a SIP phone).

@lukeescude
Copy link
Author

It does eventually start to send OPTIONS packets to endpoints, but it takes a very long time to begin.

@miconda
Copy link
Member

miconda commented Jun 3, 2024

Can you give an example value of what is very long time?

The interval of keepalive is defined by a new param:

@lukeescude
Copy link
Author

Even with ka_interval set to 40 seconds, it can take multiple minutes, or sometimes hours, for usrloc to begin sending OPTIONS packets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants