Hello Team,
We are using Kamailio 5.5.2 (DMQ + usrloc) modules. We want to replicate all users from server-2(Registration) to server-1(Proxy) .
Replication worked perfectly fine but we noticed that after restarting the receiver (Proxy node) data has not been replicated automatically. If we re-register the users it is replicating to the receiver side but the old data is not replicated.
Can you please guide us where we made the mistake?
Please find the configuration
SERVER-1 (Proxy) ========================
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.187:5060") modparam("dmq", "notification_address", "sip:10.128.77.188:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) #modparam("dmq", "worker_usleep", 0) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[KMDQ_SAVE_LOCATION] {
if(is_method("KDMQ")) { dmq_handle_message(); } if (dmq_is_from_node()) { if(!save("location")) xlogl("L_ERR", "Error saving contact\n"); } }
SERVER-2 (Registration) ======================
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.188:5060") modparam("dmq", "notification_address", "sip:10.128.77.187:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[SAVE_LOCATION]{ save("location"); }
version: kamailio 5.5.2 (x86_64/linux) e2b6cc flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: e2b6cc
Hello,
if you want to use DMQ for synchronizing usrloc information, I think just calling dmq_handling_message() is enough. The save() call in the Server 1 (proxy) should not be necessary.
Try to deactivate it and see if it still synchronizing (e.g. by looking with ngrep for KDMQ messages). If not, there is a problem with the DMQ cluster, which would explain also the missing sync on startup.
Cheers,
Henning
-- Henning Westerholt – https://skalatan.de/blog/ Kamailio services – https://gilawa.comhttps://gilawa.com/
From: sr-dev sr-dev-bounces@lists.kamailio.org On Behalf Of Hardik Patel Sent: Wednesday, November 3, 2021 4:11 PM To: sr-dev@lists.kamailio.org Subject: [sr-dev] DMQ userloc data not replicated after restarting the receiver service.
Hello Team,
We are using Kamailio 5.5.2 (DMQ + usrloc) modules. We want to replicate all users from server-2(Registration) to server-1(Proxy) .
Replication worked perfectly fine but we noticed that after restarting the receiver (Proxy node) data has not been replicated automatically. If we re-register the users it is replicating to the receiver side but the old data is not replicated.
Can you please guide us where we made the mistake?
Please find the configuration
SERVER-1 (Proxy) ========================
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.187:5060http://10.128.77.187:5060") modparam("dmq", "notification_address", "sip:10.128.77.188:5060http://10.128.77.188:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) #modparam("dmq", "worker_usleep", 0) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[KMDQ_SAVE_LOCATION] {
if(is_method("KDMQ")) { dmq_handle_message(); } if (dmq_is_from_node()) { if(!save("location")) xlogl("L_ERR", "Error saving contact\n"); } }
SERVER-2 (Registration) ======================
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.188:5060http://10.128.77.188:5060") modparam("dmq", "notification_address", "sip:10.128.77.187:5060http://10.128.77.187:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[SAVE_LOCATION]{ save("location"); }
version: kamailio 5.5.2 (x86_64/linux) e2b6cc flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: e2b6cc
-- Hardik Patel
Hi Henning
Thanks for the reply. We tried as you suggested but it is not working. Also our main issue is to sync data on startup. In case of the proxy (Receiver) service has rebooted then it should replicate the data from the main server, it is not working now.
Please let me know what we can do to make it working?
On Sun, Nov 7, 2021 at 1:29 AM Henning Westerholt hw@gilawa.com wrote:
Hello,
if you want to use DMQ for synchronizing usrloc information, I think just calling dmq_handling_message() is enough. The save() call in the Server 1 (proxy) should not be necessary.
Try to deactivate it and see if it still synchronizing (e.g. by looking with ngrep for KDMQ messages). If not, there is a problem with the DMQ cluster, which would explain also the missing sync on startup.
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com
*From:* sr-dev sr-dev-bounces@lists.kamailio.org *On Behalf Of *Hardik Patel *Sent:* Wednesday, November 3, 2021 4:11 PM *To:* sr-dev@lists.kamailio.org *Subject:* [sr-dev] DMQ userloc data not replicated after restarting the receiver service.
Hello Team,
We are using Kamailio 5.5.2 (DMQ + usrloc) modules. We want to replicate all users from server-2(Registration) to server-1(Proxy) .
Replication worked perfectly fine but we noticed that after restarting the receiver (Proxy node) data has not been replicated automatically. If we re-register the users it is replicating to the receiver side but the old data is not replicated.
Can you please guide us where we made the mistake?
Please find the configuration
SERVER-1 (Proxy)
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.187:5060") modparam("dmq", "notification_address", "sip:10.128.77.188:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) #modparam("dmq", "worker_usleep", 0) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[KMDQ_SAVE_LOCATION] {
if(is_method("KDMQ")) { dmq_handle_message(); } if (dmq_is_from_node()) { if(!save("location")) xlogl("L_ERR", "Error saving contact\n"); }
}
SERVER-2 (Registration)
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.188:5060") modparam("dmq", "notification_address", "sip:10.128.77.187:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[SAVE_LOCATION]{ save("location"); }
version: kamailio 5.5.2 (x86_64/linux) e2b6cc flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: e2b6cc
--
Hardik Patel
Hello Hardik,
Ok. As already suggested, did you already tried to debug it further with e.g. ngrep for the KDMQ messages?
Cheers,
Henning
From: Hardik Patel hardikitpl@gmail.com Sent: Tuesday, November 9, 2021 4:14 PM To: Henning Westerholt hw@gilawa.com Cc: Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org Subject: Re: [sr-dev] DMQ userloc data not replicated after restarting the receiver service.
Hi Henning
Thanks for the reply. We tried as you suggested but it is not working. Also our main issue is to sync data on startup. In case of the proxy (Receiver) service has rebooted then it should replicate the data from the main server, it is not working now.
Please let me know what we can do to make it working?
On Sun, Nov 7, 2021 at 1:29 AM Henning Westerholt <hw@gilawa.commailto:hw@gilawa.com> wrote: Hello,
if you want to use DMQ for synchronizing usrloc information, I think just calling dmq_handling_message() is enough. The save() call in the Server 1 (proxy) should not be necessary.
Try to deactivate it and see if it still synchronizing (e.g. by looking with ngrep for KDMQ messages). If not, there is a problem with the DMQ cluster, which would explain also the missing sync on startup.
Cheers,
Henning
-- Henning Westerholt – https://skalatan.de/blog/ Kamailio services – https://gilawa.comhttps://gilawa.com/
From: sr-dev <sr-dev-bounces@lists.kamailio.orgmailto:sr-dev-bounces@lists.kamailio.org> On Behalf Of Hardik Patel Sent: Wednesday, November 3, 2021 4:11 PM To: sr-dev@lists.kamailio.orgmailto:sr-dev@lists.kamailio.org Subject: [sr-dev] DMQ userloc data not replicated after restarting the receiver service.
Hello Team,
We are using Kamailio 5.5.2 (DMQ + usrloc) modules. We want to replicate all users from server-2(Registration) to server-1(Proxy) .
Replication worked perfectly fine but we noticed that after restarting the receiver (Proxy node) data has not been replicated automatically. If we re-register the users it is replicating to the receiver side but the old data is not replicated.
Can you please guide us where we made the mistake?
Please find the configuration
SERVER-1 (Proxy) ========================
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.187:5060http://10.128.77.187:5060") modparam("dmq", "notification_address", "sip:10.128.77.188:5060http://10.128.77.188:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) #modparam("dmq", "worker_usleep", 0) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[KMDQ_SAVE_LOCATION] {
if(is_method("KDMQ")) { dmq_handle_message(); } if (dmq_is_from_node()) { if(!save("location")) xlogl("L_ERR", "Error saving contact\n"); } }
SERVER-2 (Registration) ======================
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.188:5060http://10.128.77.188:5060") modparam("dmq", "notification_address", "sip:10.128.77.187:5060http://10.128.77.187:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[SAVE_LOCATION]{ save("location"); }
version: kamailio 5.5.2 (x86_64/linux) e2b6cc flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: e2b6cc
-- Hardik Patel
-- Hardik Patel
Hi Henning
Thanks for the hint. I have checked and applied the change on the registrar server.
Previously I was using dmq_handle_message(); from a proxy server but now I am using it from the registrar server as well and it works for me. Now it is working fine as per my expectations and it is replicating the data on reboot as well.
Thanks again for your help.
On Tue, Nov 9, 2021 at 8:47 PM Henning Westerholt hw@gilawa.com wrote:
Hello Hardik,
Ok. As already suggested, did you already tried to debug it further with e.g. ngrep for the KDMQ messages?
Cheers,
Henning
*From:* Hardik Patel hardikitpl@gmail.com *Sent:* Tuesday, November 9, 2021 4:14 PM *To:* Henning Westerholt hw@gilawa.com *Cc:* Kamailio (SER) - Development Mailing List <sr-dev@lists.kamailio.org
*Subject:* Re: [sr-dev] DMQ userloc data not replicated after restarting the receiver service.
Hi Henning
Thanks for the reply.
We tried as you suggested but it is not working. Also our main issue is to sync data on startup. In case of the proxy (Receiver) service has rebooted then it should replicate the data from the main server, it is not working now.
Please let me know what we can do to make it working?
On Sun, Nov 7, 2021 at 1:29 AM Henning Westerholt hw@gilawa.com wrote:
Hello,
if you want to use DMQ for synchronizing usrloc information, I think just calling dmq_handling_message() is enough. The save() call in the Server 1 (proxy) should not be necessary.
Try to deactivate it and see if it still synchronizing (e.g. by looking with ngrep for KDMQ messages). If not, there is a problem with the DMQ cluster, which would explain also the missing sync on startup.
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com
*From:* sr-dev sr-dev-bounces@lists.kamailio.org *On Behalf Of *Hardik Patel *Sent:* Wednesday, November 3, 2021 4:11 PM *To:* sr-dev@lists.kamailio.org *Subject:* [sr-dev] DMQ userloc data not replicated after restarting the receiver service.
Hello Team,
We are using Kamailio 5.5.2 (DMQ + usrloc) modules. We want to replicate all users from server-2(Registration) to server-1(Proxy) .
Replication worked perfectly fine but we noticed that after restarting the receiver (Proxy node) data has not been replicated automatically. If we re-register the users it is replicating to the receiver side but the old data is not replicated.
Can you please guide us where we made the mistake?
Please find the configuration
SERVER-1 (Proxy)
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.187:5060") modparam("dmq", "notification_address", "sip:10.128.77.188:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) #modparam("dmq", "worker_usleep", 0) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[KMDQ_SAVE_LOCATION] {
if(is_method("KDMQ")) { dmq_handle_message(); } if (dmq_is_from_node()) { if(!save("location")) xlogl("L_ERR", "Error saving contact\n"); }
}
SERVER-2 (Registration)
#--- dmq db param ---- modparam("dmq","server_address","sip:10.128.77.188:5060") modparam("dmq", "notification_address", "sip:10.128.77.187:5060") modparam("dmq", "num_workers", 6) modparam("dmq", "multi_notify", 1) modparam("dmq", "ping_interval", 60)
#--- dmq usrloc db param ---- modparam("dmq_usrloc", "enable", 1) modparam("dmq_usrloc", "replicate_socket_info", 1) modparam("dmq_usrloc", "sync", 1) modparam("dmq_usrloc", "batch_size", 2000) modparam("dmq_usrloc", "batch_usleep", 1000)
route[SAVE_LOCATION]{ save("location"); }
version: kamailio 5.5.2 (x86_64/linux) e2b6cc flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: e2b6cc
--
Hardik Patel
--
Hardik Patel