Module: kamailio Branch: master Commit: a935d8d414d665ea89859449e622435bc7106f64 URL: https://github.com/kamailio/kamailio/commit/a935d8d414d665ea89859449e622435b...
Author: Emmanuel Schmidbauer emmanuel.schmidbauer@textnow.com Committer: Emmanuel Schmidbauer emmanuel.schmidbauer@textnow.com Date: 2020-06-12T16:02:19-04:00
dmq_usrloc: add new parameter `usrloc_delete` to disable synchronizing delete actions
---
Modified: src/modules/dmq_usrloc/dmq_usrloc.c Modified: src/modules/dmq_usrloc/doc/dmq_usrloc.xml Modified: src/modules/dmq_usrloc/doc/dmq_usrloc_admin.xml Modified: src/modules/dmq_usrloc/usrloc_sync.c
---
Diff: https://github.com/kamailio/kamailio/commit/a935d8d414d665ea89859449e622435b... Patch: https://github.com/kamailio/kamailio/commit/a935d8d414d665ea89859449e622435b...
---
diff --git a/src/modules/dmq_usrloc/dmq_usrloc.c b/src/modules/dmq_usrloc/dmq_usrloc.c index 62d8ba75d3..b7fbed9406 100644 --- a/src/modules/dmq_usrloc/dmq_usrloc.c +++ b/src/modules/dmq_usrloc/dmq_usrloc.c @@ -42,6 +42,7 @@ int _dmq_usrloc_batch_msg_contacts = 1; int _dmq_usrloc_batch_msg_size = 60000; int _dmq_usrloc_batch_usleep = 0; str _dmq_usrloc_domain = str_init("location"); +int _dmq_usrloc_delete = 1;
usrloc_api_t dmq_ul;
@@ -56,6 +57,7 @@ static param_export_t params[] = { {"batch_size", INT_PARAM, &_dmq_usrloc_batch_size}, {"batch_usleep", INT_PARAM, &_dmq_usrloc_batch_usleep}, {"usrloc_domain", PARAM_STR, &_dmq_usrloc_domain}, + {"usrloc_delete", INT_PARAM, &_dmq_usrloc_delete}, {0, 0, 0} };
diff --git a/src/modules/dmq_usrloc/doc/dmq_usrloc.xml b/src/modules/dmq_usrloc/doc/dmq_usrloc.xml index 8391296cf8..61e594b40b 100644 --- a/src/modules/dmq_usrloc/doc/dmq_usrloc.xml +++ b/src/modules/dmq_usrloc/doc/dmq_usrloc.xml @@ -55,6 +55,22 @@ <copyright> <year>2017</year> </copyright> + <authorgroup> + <editor> + <firstname>Emmanuel</firstname> + <surname>Schmidbauer</surname> + <affiliation><orgname>TextNow Inc.</orgname></affiliation> + <email>emmanuel.schmidbauer@textnow.com</email> + <address> + <otheraddr> + <ulink></ulink> + </otheraddr> + </address> + </editor> + </authorgroup> + <copyright> + <year>2020</year> + </copyright> </bookinfo> <toc></toc>
diff --git a/src/modules/dmq_usrloc/doc/dmq_usrloc_admin.xml b/src/modules/dmq_usrloc/doc/dmq_usrloc_admin.xml index 52620f2b13..2bd0756c85 100644 --- a/src/modules/dmq_usrloc/doc/dmq_usrloc_admin.xml +++ b/src/modules/dmq_usrloc/doc/dmq_usrloc_admin.xml @@ -282,7 +282,25 @@ modparam("dmq_usrloc", "replicate_socket_info", 0) </programlisting> </example> </section> + <section id="usrloc_dmq.p.usrloc_delete"> + <title><varname>usrloc_delete</varname> (int)</title> + <para> + Enable (1) or disable (0) synchronizing usrloc delete actions. Disabling delete actions can be useful when user location data is ephemeral. + </para> + <para> + <emphasis> + Default value is 1. + </emphasis> + </para> + <example> + <title>Set <varname>usrloc_domain</varname> parameter</title> + <programlisting format="linespecific"> +... +modparam("dmq_usrloc", "usrloc_delete", 0) +... +</programlisting> + </example> + </section> </section>
</chapter> - diff --git a/src/modules/dmq_usrloc/usrloc_sync.c b/src/modules/dmq_usrloc/usrloc_sync.c index 2c5b93292d..d52ddd4932 100644 --- a/src/modules/dmq_usrloc/usrloc_sync.c +++ b/src/modules/dmq_usrloc/usrloc_sync.c @@ -58,6 +58,7 @@ extern int _dmq_usrloc_batch_msg_size; extern int _dmq_usrloc_batch_size; extern int _dmq_usrloc_batch_usleep; extern str _dmq_usrloc_domain; +extern int _dmq_usrloc_delete;
static int add_contact(str aor, ucontact_info_t* ci) { @@ -815,7 +816,9 @@ void dmq_ul_cb_contact(ucontact_t* ptr, int type, void* param) usrloc_dmq_send_contact(ptr, aor, DMQ_UPDATE, 0); break; case UL_CONTACT_DELETE: - usrloc_dmq_send_contact(ptr, aor, DMQ_RM, 0); + if (_dmq_usrloc_delete >= 1) { + usrloc_dmq_send_contact(ptr, aor, DMQ_RM, 0); + } break; case UL_CONTACT_EXPIRE: //usrloc_dmq_send_contact(ptr, aor, DMQ_UPDATE);