Hello,
Is there any way to add those functions from the nathelper module to the usrloc module?
*keepalive_timeoutnatping_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.
Hello,
the usrloc keepalive are done on its timer interval:
- https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.ti...
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@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
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@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.ti...
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@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
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@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@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.ti...
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@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
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 mailto:sip%3Aoptions@devserver.net") modparam("usrloc", "ka_domain", "devserver.net http://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@gmail.com mailto:iliusha.md@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@gmail.com <mailto:miconda@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.timer_interval <https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.timer_interval> 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@lists.kamailio.org <mailto:sr-users@lists.kamailio.org> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
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@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@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@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.ti...
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@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
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 http://8.8.8.123:10037 Path: [not set] State: CS_SYNC Flags: 0 CFlags: 12288 Socket: udp:1.1.1.10:5060 http://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@gmail.com mailto:miconda@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 <mailto:sip%3Aoptions@devserver.net>") modparam("usrloc", "ka_domain", "devserver.net <http://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@gmail.com <mailto:iliusha.md@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@gmail.com <mailto:miconda@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.timer_interval <https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.timer_interval> 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@lists.kamailio.org <mailto:sr-users@lists.kamailio.org> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
Hello,
It works also for me with UDP contacts, thank you. One more thing I noticed - by using *db_mode=1* and *db_load=1* 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.
Regards, Ilie.
On Wed, 23 Sep 2020 at 16:35, Daniel-Constantin Mierla miconda@gmail.com wrote:
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@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@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@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.ti...
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@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
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda Funding: https://www.paypal.me/dcmierla
Hello,
can you try with the lastest 5.4 branch?
Did it happen also when nathelper was used for keepalive-based contact removing?
Cheers, Daniel
On 25.09.20 00:46, Ilie Soltanici wrote:
Hello,
It works also for me with UDP contacts, thank you. One more thing I noticed - by using *db_mode=1* and *db_load=1* 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.
Regards, Ilie.
On Wed, 23 Sep 2020 at 16:35, Daniel-Constantin Mierla <miconda@gmail.com mailto:miconda@gmail.com> wrote:
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 <http://8.8.8.123:10037> Path: [not set] State: CS_SYNC Flags: 0 CFlags: 12288 Socket: udp:1.1.1.10:5060 <http://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@gmail.com <mailto:miconda@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 <mailto:sip%3Aoptions@devserver.net>") modparam("usrloc", "ka_domain", "devserver.net <http://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@gmail.com <mailto:iliusha.md@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@gmail.com <mailto:miconda@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.timer_interval <https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.timer_interval> 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@lists.kamailio.org <mailto:sr-users@lists.kamailio.org> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
-- Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
Hello,
Not, with the nathelper module it was working fine, after Kamailio restart all contacts came back as they were before restart. Just tried now with the latest 5.4 branch - and everything seems to be working perfectly now.
Thank you Daniel.
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.
Regards, Ilie.
On Fri, 25 Sep 2020 at 10:24, Daniel-Constantin Mierla miconda@gmail.com wrote:
Hello,
can you try with the lastest 5.4 branch?
Did it happen also when nathelper was used for keepalive-based contact removing?
Cheers, Daniel On 25.09.20 00:46, Ilie Soltanici wrote:
Hello,
It works also for me with UDP contacts, thank you. One more thing I noticed - by using *db_mode=1* and *db_load=1* 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.
Regards, Ilie.
On Wed, 23 Sep 2020 at 16:35, Daniel-Constantin Mierla miconda@gmail.com wrote:
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@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@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@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.ti...
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@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
--
Daniel-Constantin Mierla -- www.asipto.comwww.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