Hello,

Just wanted to confirm if this was the intended behavior.

When setting "ka_mode" with a setting of "4", it:
- Makes it so that Keep Alives are sent to UDP contacts only
- TCP contacts are not sent Keep Alives, but are still adhering to the Keep Alive timer
- And because TCP contacts are not receiving these keepalives, it trigger the "usrloc:contact-expired" event route when that Keep Alive timer elapses for that specific contact.

-----

If this was the intended behavior, is there a way only have the Keep Alives sent to UDP contacts, and not have TCP contacts not bound by the keep alive timer.

I'm not sure if my current setup is mis-configured.

Thank you.
On Tuesday, August 20th, 2024 at 11:01 AM, James Lipski <jameslipski@protonmail.com> wrote:

Hello,

I wanted to know if this can be accomplished, or if I'm doing something wrong.

What I'm hoping to accomplish is to have kamailio periodically send OPTIONS packets to endpoints that are connected over UDP only.

As of right now, I currently have the following configured under usrloc:

modparam("usrloc", "timer_interval", 5)
modparam("usrloc", "timer_procs", 2)
modparam("usrloc", "use_domain", MULTIDOMAIN)
modparam("usrloc", "db_url", DBURL)
modparam("usrloc", "db_mode", 0)
modparam("usrloc", "ka_mode", 1)
modparam("usrloc", "ka_method", "OPTIONS")
modparam("usrloc", "ka_from", "sip:ping@sip-domain.com")
modparam("usrloc", "ka_domain", "sip-domain.com")
modparam("usrloc", "ka_timeout", 125)
modparam("usrloc", "ka_interval", 60)

With these parameters, all endpoints will be sent OPTIONS packets periodically as expected. When setting "ka_mode" to "4", as expected, endpoints registered with UDP only receive OPTIONS packets; which is what I wanted.

The issue that I'm having with these parameters is that endpoints registered with anything other that UDP are triggering a contact-expired event after a little over 2 minutes. I have the registrar set to 3600 as an expiry; I'm assuming the contact is expiring due to the "ka_timeout" value.

--------------------------

Is there a way to only have keep-alive packets/ and timeouts apply to endpoints registered on UDP?

Thank you.