Hello,
actually the expires processing on keepalive was done in a callback
function triggered only by nathelper, only sending keepalive and computing
roundtrip was done on usrloc internal timer callbacks. I pushed fixes to
master and 5.4 branches, I tested briefly with a tcp contact and all seemed
ok. Let me know if works for you as well.
Cheers,
Daniel
On 23.09.20 10:51, Ilie Soltanici wrote:
Hello,
It's sitting in the memory until the expiration time it's arriving. See
below the ul dump output:
Every 2.0s: /usr/local/sbin/kamcmd ul.dump
Wed Sep 23 09:43:44 2020
{
Domains: {
Domain: {
Domain: location
Size: 1024
AoRs: {
Info: {
AoR: 101
HashID: -1698832128
Contacts: {
Contact: {
Address:
sip:101@192.168.0.18:49195;ob
Expires: 3548
Q: 1.000000
Call-ID:
03514e7aff5a4c3785b471923ef9a4c5
CSeq: 49773
User-Agent:
MicroSIP/3.20.0
Received: sip:
8.8.8.123:10037
Path: [not set]
State: CS_SYNC
Flags: 0
CFlags: 12288
Socket: udp:
1.1.1.10:5060
Methods: 8159
Ruid:
uloc-b-5f6a75ac-7ed8-1
Instance: [not set]
Reg-Id: 0
Server-Id: 11
Tcpconn-Id: -1
Keepalive: 1
Last-Keepalive:
1600850587
KA-Roundtrip: 20790
Last-Modified:
1600850572
}
}
}
}
Stats: {
Records: 1
Max-Slots: 1
}
}
}
}
So, for the above extension (101) it will be removed from the memory only
after 3548 sec, even if I killed manually that connection and the softphone
it's not replying anymore to the keepalive options. By using the
keepalive_timeout function from the nathelper module - it's working fine.
Regards,
Ilie.
On Wed, 23 Sep 2020 at 08:05, Daniel-Constantin Mierla <miconda(a)gmail.com>
wrote:
Hello,
have you watched for how long it stays in memory? The usrloc keepalive
should leverage the same mechanism that was used by the keepalive done by
nathelper module, it should not delete the record immediately, but after
ka_timeout elapsed from the last received keepalive, then expires is set to
current timestamp + 10 seconds, so the next timer cleanup should remove
with.
Can you get the kamctl up dump for the phone you tested with? The
keepalive related attributes (last keepalive timestamp, last rtt) should be
in the json output/
Cheers,
Daniel
On 23.09.20 00:13, Ilie Soltanici wrote:
Hello,
Tried with the latest 5.4 branch, but ka_timeout still not working for
me, the record it's still available in ul.dump even if that extension is
not replying anymore to the Options sent by the module.
See below used configuration:
modparam("usrloc", "nat_bflag", FLB_NATB)
modparam("usrloc", "use_domain", FLS_MULTIDOMAIN)
modparam("usrloc", "timer_interval", 30)
modparam("usrloc", "db_mode", 1)
modparam("usrloc", "db_load", 1)
modparam("usrloc", "db_insert_update", 1)
modparam("usrloc", "matching_mode", 3)
modparam("usrloc", "fetch_rows", 4000)
modparam("usrloc", "timer_procs", 4)
modparam("usrloc", "handle_lost_tcp", 1)
modparam("usrloc", "close_expired_tcp", 1)
modparam("usrloc", "db_timer_clean", 1)
modparam("usrloc", "server_id_filter", 1)
modparam("usrloc", "ka_mode", 1)
modparam("usrloc", "ka_method", "OPTIONS")
modparam("usrloc", "ka_from", "sip:options@devserver.net")
modparam("usrloc", "ka_domain", "devserver.net")
modparam("usrloc", "ka_filter", 0)
modparam("usrloc", "ka_timeout", 60)
modparam("tm|usrloc", "xavp_contact", "ulattrs")
version: kamailio 5.4.1 (x86_64/linux) 609685
Regards,
Ilie
On Tue, 22 Sep 2020 at 18:58, Ilie Soltanici <iliusha.md(a)gmail.com>
wrote:
Thank you Daniel for the latest update, I will
try to test the latest
5.4 branch on the Dev environment and will come back here for any issues
encountered.
Regards,
Ilie.
On Tue 22 Sep 2020 at 18:44, Daniel-Constantin Mierla <miconda(a)gmail.com>
wrote:
>
>
>
>
>
>
>
>
>
>
> Hello,
>
>
> the usrloc keepalive are done on its timer interval:
>
>
> -
>
>
>
https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.t…
>
>
> For the keepalive timeout I was misled by presence of the global
>
> variable in the usrloc, but was actually not exported by this
>
> module. I did it afterwards, just pushed to branch 5.4 as well.
>
>
> While is not recommended to run both at the same time, imo
>
> nothing really bad can happen, you may see more keepalives for
>
> natted udp contacts (not for tls, tcp, ...).
>
>
> As for an unorthodox and untested idea :-) : if you do not want
>
> to run from latest 5.4 branch yet, you can eventually set
>
> natping_interval to a very large value, like 20 years in seconds,
>
> so you are pretty sure you will do an upgrade before nathelper
>
> timer fires,
>
>
> Cheers,
>
>
> Daniel
>
>
>
>
> On 22.09.20 19:17, Ilie Soltanici
>
> wrote:
>
>
>
>
>
>
>
>
>
>
> Hello,
>
>
>
>
>
>
>
> Is there any way to add those functions from the nathelper
>
> module to the usrloc module?
>
>
>
>
>
>
>
>
>
>
> *keepalive_timeout natping_interval*
>
>
>
>
>
>
>
> I'm looking to use ka_mode feature from the usrloc module
>
> in order to have roundtrip time computed for each extension
>
> but because those functions are missing in the usrloc module
>
> and per documentation this functionality conflicts in some way
>
> with nathelper module it's not recommended to have both
>
> modules enabled. Or maybe there is another way to have them
>
> "interconnected"?
>
>
>
>
>
>
>
>
>
> Thank you.
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
>
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
>
>
> --
>
> Daniel-Constantin Mierla --
www.asipto.com
>
www.twitter.com/miconda --
www.linkedin.com/in/miconda
>
> Funding:
https://www.paypal.me/dcmierla
>
>
>
>
>
>
>
> --
Daniel-Constantin Mierla --
www.asipto.comwww.twitter.com/miconda --
www.linkedin.com/in/miconda
Funding:
https://www.paypal.me/dcmierla
--