<div dir="ltr"><div>Hello,</div><div><br></div><div>Not, with the nathelper module it was working fine, after Kamailio restart all contacts came back as they were before restart.</div><div>Just tried now with the latest 5.4 branch - and everything seems to be working perfectly now.<br></div><div><br></div><div>Thank you Daniel.</div><div><br></div><div>P.S. I don't want to bother you or this topic too much, but as an idea would be nice to have an event-route for this keepalived function, where we can trigger some action when the contact is replying to the options with RTT instead of parsing the log file.</div><div><br></div><div>Regards,</div><div>Ilie.<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 25 Sep 2020 at 10:24, Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com">miconda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p>can you try with the lastest 5.4 branch?</p>
<p>Did it happen also when nathelper was used for keepalive-based
contact removing?</p>
<p>Cheers,<br>
Daniel<br>
</p>
<div>On 25.09.20 00:46, Ilie Soltanici
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello,
<div><br>
</div>
<div>It works also for me with UDP contacts, thank you. One more
thing I noticed - by using <b>db_mode=1</b> and <b>db_load=1</b>
after restarting Kamailio it's not loading anymore all
contacts from the DB or it's loading but then keepalive module
it's removing them from the local memory, I believe this is
because keepalive doesn't know the status of the extension,
will be nice to have that fixed as well.</div>
<div><br>
</div>
<div>Regards,</div>
<div>Ilie.</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, 23 Sep 2020 at 16:35,
Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p>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.</p>
<p>Cheers,<br>
Daniel<br>
</p>
<p><br>
</p>
<div>On 23.09.20 10:51, Ilie Soltanici wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hello,</div>
<div><br>
</div>
<div>It's sitting in the memory until the expiration
time it's arriving. See below the ul dump output:</div>
<div><br>
</div>
<div>Every 2.0s: /usr/local/sbin/kamcmd ul.dump
Wed Sep 23
09:43:44 2020<br>
<br>
{<br>
Domains: {<br>
Domain: {<br>
Domain: location<br>
Size: 1024<br>
AoRs: {<br>
Info: {<br>
AoR: 101<br>
HashID:
-1698832128<br>
Contacts: {<br>
Contact: {<br>
Address: <a>sip:101@192.168.0.18:49195;ob</a><br>
Expires: 3548<br>
Q: 1.000000<br>
Call-ID: 03514e7aff5a4c3785b471923ef9a4c5<br>
CSeq: 49773<br>
User-Agent: MicroSIP/3.20.0<br>
Received: sip:<a href="http://8.8.8.123:10037" target="_blank">8.8.8.123:10037</a><br>
Path: [not set]<br>
State: CS_SYNC<br>
Flags: 0<br>
CFlags: 12288<br>
Socket: udp:<a href="http://1.1.1.10:5060" target="_blank">1.1.1.10:5060</a><br>
Methods: 8159<br>
Ruid: uloc-b-5f6a75ac-7ed8-1<br>
Instance: [not set]<br>
Reg-Id: 0<br>
Server-Id: 11<br>
Tcpconn-Id: -1<br>
Keepalive: 1<br>
Last-Keepalive: 1600850587<br>
KA-Roundtrip: 20790<br>
Last-Modified: 1600850572<br>
}<br>
}<br>
}<br>
}<br>
Stats: {<br>
Records: 1<br>
Max-Slots: 1<br>
}<br>
}<br>
}<br>
}</div>
<div><br>
</div>
<div>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. <br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Ilie.<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, 23 Sep 2020 at
08:05, Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p>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.</p>
<p>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/</p>
<p>Cheers,<br>
Daniel<br>
</p>
<div>On 23.09.20 00:13, Ilie Soltanici wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello,
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>See below used configuration:</div>
<div>modparam("usrloc", "nat_bflag", FLB_NATB)<br>
modparam("usrloc", "use_domain",
FLS_MULTIDOMAIN)<br>
modparam("usrloc", "timer_interval", 30)<br>
modparam("usrloc", "db_mode", 1)<br>
modparam("usrloc", "db_load", 1)<br>
modparam("usrloc", "db_insert_update", 1)<br>
modparam("usrloc", "matching_mode", 3)<br>
modparam("usrloc", "fetch_rows", 4000)<br>
modparam("usrloc", "timer_procs", 4)<br>
modparam("usrloc", "handle_lost_tcp", 1)<br>
modparam("usrloc", "close_expired_tcp", 1)<br>
modparam("usrloc", "db_timer_clean", 1)<br>
modparam("usrloc", "server_id_filter", 1)<br>
modparam("usrloc", "ka_mode", 1)<br>
modparam("usrloc", "ka_method", "OPTIONS")<br>
modparam("usrloc", "ka_from", "<a href="mailto:sip%3Aoptions@devserver.net" target="_blank">sip:options@devserver.net</a>")<br>
modparam("usrloc", "ka_domain", "<a href="http://devserver.net" target="_blank">devserver.net</a>")<br>
modparam("usrloc", "ka_filter", 0)<br>
modparam("usrloc", "ka_timeout", 60)<br>
modparam("tm|usrloc", "xavp_contact",
"ulattrs")<br>
</div>
<div><br>
</div>
<div>version: kamailio 5.4.1 (x86_64/linux)
609685<br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Ilie</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, 22 Sep
2020 at 18:58, Ilie Soltanici <<a href="mailto:iliusha.md@gmail.com" target="_blank">iliusha.md@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="auto">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.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Regards,</div>
<div dir="auto">Ilie.</div>
<div><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue
22 Sep 2020 at 18:44, Daniel-Constantin
Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<div><br>
<br>
<p>Hello,</p>
<br>
<br>
<p>the usrloc keepalive are done on
its timer interval:</p>
<br>
<br>
<p> -<br>
<br>
<a href="https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.timer_interval" target="_blank">https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.timer_interval</a></p>
<br>
<br>
<p>For the keepalive timeout I was
misled by presence of the global<br>
<br>
variable in the usrloc, but was
actually not exported by this<br>
<br>
module. I did it afterwards, just
pushed to branch 5.4 as well.</p>
<br>
<br>
<p>While is not recommended to run
both at the same time, imo<br>
<br>
nothing really bad can happen, you
may see more keepalives for<br>
<br>
natted udp contacts (not for tls,
tcp, ...).</p>
<br>
<br>
<p>As for an unorthodox and untested
idea :-) : if you do not want<br>
<br>
to run from latest 5.4 branch yet,
you can eventually set<br>
<br>
natping_interval to a very large
value, like 20 years in seconds,<br>
<br>
so you are pretty sure you will do
an upgrade before nathelper<br>
<br>
timer fires,</p>
<br>
<br>
<p>Cheers,<br>
<br>
<br>
Daniel<br>
<br>
<br>
</p>
</div>
<div><br>
<br>
<div>On 22.09.20 19:17, Ilie Soltanici<br>
<br>
wrote:<br>
<br>
<br>
</div>
<br>
<br>
</div>
<div>
<blockquote type="cite"><br>
<br>
<br>
<br>
<div dir="ltr"><br>
<br>
<div>Hello,</div>
<br>
<br>
<div><br>
<br>
<br>
</div>
<br>
<br>
<div>Is there any way to add those
functions from the nathelper<br>
<br>
module to the usrloc module?</div>
<br>
<br>
<div><br>
<br>
<br>
</div>
<br>
<br>
<div><b>keepalive_timeout<br>
<br>
<br>
natping_interval</b></div>
<br>
<br>
<div><br>
<br>
<br>
</div>
<br>
<br>
<div>I'm looking to use ka_mode
feature from the usrloc module<br>
<br>
in order to have roundtrip time
computed for each extension<br>
<br>
but because those functions are
missing in the usrloc module<br>
<br>
and per documentation this
functionality conflicts in some
way<br>
<br>
with nathelper module it's not
recommended to have both<br>
<br>
modules enabled. Or maybe there
is another way to have them<br>
<br>
"interconnected"?<br>
<br>
<br>
</div>
<br>
<br>
<div><br>
<br>
<br>
</div>
<br>
<br>
<div>Thank you.<br>
<br>
<br>
</div>
<br>
<br>
</div>
<br>
<br>
<br>
<br>
<br>
<fieldset></fieldset>
<br>
<br>
</blockquote>
</div>
<div>
<blockquote type="cite">
<pre style="font-family:monospace">_______________________________________________
Kamailio (SER) - Users Mailing List
<a href="mailto:sr-users@lists.kamailio.org" style="font-family:monospace" target="_blank">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" style="font-family:monospace" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
</blockquote>
</div>
<div>
<blockquote type="cite"><br>
<br>
</blockquote>
<br>
<br>
<pre cols="72" style="font-family:monospace">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" style="font-family:monospace" target="_blank">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" style="font-family:monospace" target="_blank">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" style="font-family:monospace" target="_blank">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" style="font-family:monospace" target="_blank">https://www.paypal.me/dcmierla</a></pre>
<br>
<br>
</div>
<br>
<br>
<br>
<br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank">https://www.paypal.me/dcmierla</a></pre>
</div>
</blockquote>
</div>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank">https://www.paypal.me/dcmierla</a></pre>
</div>
</blockquote>
</div>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank">https://www.paypal.me/dcmierla</a></pre>
</div>
</blockquote></div>