<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <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 class="moz-cite-prefix">On 23.09.20 10:51, Ilie Soltanici
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAJQ6-U33p14eowFFozP3Bv-DCzAUSyQSQyci1wpVjWzZn8Vt7g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <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 class="moz-txt-link-freetext" href="sip:101@192.168.0.18:49195;ob">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"
            moz-do-not-send="true">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"
            moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">sip:options@devserver.net</a>")<br>
                  modparam("usrloc", "ka_domain", "<a
                    href="http://devserver.net" target="_blank"
                    moz-do-not-send="true">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"
                    moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">sr-users@lists.kamailio.org</a>

<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" style="font-family:monospace" target="_blank" moz-do-not-send="true">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" moz-do-not-send="true">www.asipto.com</a>

<a href="http://www.twitter.com/miconda" style="font-family:monospace" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" style="font-family:monospace" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>

Funding: <a href="https://www.paypal.me/dcmierla" style="font-family:monospace" target="_blank" moz-do-not-send="true">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" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank" moz-do-not-send="true">https://www.paypal.me/dcmierla</a></pre>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla -- <a class="moz-txt-link-abbreviated" href="http://www.asipto.com">www.asipto.com</a>
<a class="moz-txt-link-abbreviated" href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a class="moz-txt-link-abbreviated" href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a>
Funding: <a class="moz-txt-link-freetext" href="https://www.paypal.me/dcmierla">https://www.paypal.me/dcmierla</a></pre>
  </body>
</html>