[SR-Users] Cannot load usrloc table at startup using DMQ_USRLOC sync feature
Benedito Marques
benedito.marques1 at gmail.com
Mon Jul 25 14:51:05 CEST 2022
Ok, I'll do that. Thanks.
On Sun, Jul 24, 2022 at 8:56 AM Henning Westerholt <hw at gilawa.com> wrote:
> Hello,
>
>
>
> it should sync the existing records on startup, in fact it even logs some
> messages related to that.
>
>
>
> Maybe just give a more recent version a try, e.g. one of the later 5.5.x
> releases.
>
>
>
> Cheers,
>
>
>
> Henning
>
>
>
> --
>
> Henning Westerholt – https://skalatan.de/blog/
>
> Kamailio services – https://gilawa.com
>
>
>
> *From:* sr-users <sr-users-bounces at lists.kamailio.org> *On Behalf Of *Benedito
> Marques
> *Sent:* Thursday, July 21, 2022 8:37 PM
> *To:* Kamailio (SER) - Users Mailing List <sr-users at lists.kamailio.org>
> *Subject:* [SR-Users] Cannot load usrloc table at startup using
> DMQ_USRLOC sync feature
>
>
>
> I have an scenario with two kamailios, and no databases. At the first, I
> authenticate one subscriber successfully and save in memory usrloc:
>
>
> /etc/kamailio # kamailio --version
> version: kamailio 5.4.4 (x86_64/linux)
> 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_BLACKLIST,
> 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: unknown
> compiled on 16:13:18 Feb 15 2021 with gcc 9.3.0
> /etc/kamailio #
> /etc/kamailio #
>
> ---
>
>
> /etc/kamailio # cat /etc/os-release
> NAME="Alpine Linux"
> ID=alpine
> VERSION_ID=3.12.3
> PRETTY_NAME="Alpine Linux v3.12"
> HOME_URL="https://alpinelinux.org/"
> BUG_REPORT_URL="https://bugs.alpinelinux.org/"
>
> ---
>
>
> # Handle SIP registrations
> route[REGISTRAR] {
> if (!is_method("REGISTER")) return;
>
> if (!save("location","0x05")) {
> sl_reply_error();
> }
> exit;
> }
>
>
> --
>
>
> /etc/kamailio # kamcmd ul.dump
> {
> Domains: {
> Domain: {
> Domain: location
> Size: 1024
> AoRs: {
> Info: {
> AoR: 1014 at my.domain
> HashID: -1989102610
> Contacts: {
> Contact: {
> Address:
> sip:1014 at 10.0.0.2:7071;ob
> Expires: 299
> Q: -1.000000
> Call-ID:
> d5cf6d5f293647a59ba64ba996a793b0
> CSeq: 43689
> User-Agent:
> MicroSIP/3.20.7
> Received: sip:
> 10.0.0.2:7071
> Path: [not set]
> State: CS_NEW
> Flags: 1
> CFlags: 0
> Socket: [not set]
> Methods: 8159
> Ruid:
> uloc-62d95ca2-3c-1
> Instance: [not set]
> Reg-Id: 0
> Server-Id: 0
> Tcpconn-Id: -1
> Keepalive: 0
> Last-Keepalive:
> 1658412252
> KA-Roundtrip: 0
> Last-Modified:
> 1658412252
> }
> }
> }
> }
> Stats: {
> Records: 1
> Max-Slots: 1
> }
> }
> }
> }
> /etc/kamailio #
>
>
>
> *The problem is*: when I start the second kamailio server, the current
> usrloc users are not replicated to it, so in the second server the usrloc
> is empty:
>
>
>
> /etc/kamailio # kamcmd ul.dump
> {
> Domains: {
> Domain: {
> Domain: location
> Size: 1024
> AoRs: {
> }
> Stats: {
> Records: 0
> Max-Slots: 0
> }
> }
> }
> }
>
>
>
> *The modules loaded:*
>
> - dmq.so
> - dmq_usrloc.so
>
> *Params (sync enabled):*
>
> modparam("dmq_usrloc", "enable", 1)
> modparam("dmq_usrloc", "sync", 1)
> modparam("dmq_usrloc", "usrloc_domain", "location")
> modparam("dmq_usrloc", "usrloc_delete", 1)
> modparam("dmq_usrloc", "replicate_socket_info", 0)
>
>
> *Obs*: The DMQ replication is working perfectly. So, if I register
> another user in server 1, server 2 receives the KDMQ message and the new
> user appears on usrloc. The real problem is to load pre registered users at
> startup.
>
> *Log messages from second server at startup:*
>
>
> 0(51) DEBUG: <core> [core/sr_module.c:873]: init_mod(): dmq_usrloc
> 0(51) INFO: dmq_usrloc [dmq_usrloc.c:81]: mod_init(): dmq usrloc
> replication mode = 1
> 0(51) DEBUG: <core> [core/sr_module.c:652]: find_mod_export_record():
> found export of <ul_bind_usrloc> in module usrloc
> [/usr/lib/kamailio/modules/usrloc.so]
> 0(51) DEBUG: <core> [core/sr_module.c:652]: find_mod_export_record():
> found export of <bind_dmq> in module dmq [/usr/lib/kamailio/modules/dmq.so]
> 0(51) DEBUG: dmq_usrloc [usrloc_sync.c:286]: usrloc_dmq_initialize():
> loaded dmq api
> 0(51) DEBUG: dmq_usrloc [usrloc_sync.c:299]: usrloc_dmq_initialize(): dmq
> peer registered
> 0(51) DEBUG: dmq_usrloc [dmq_usrloc.c:111]: mod_init(): dmq_usrloc
> initialized
>
> 0(51) DEBUG: <core> [core/sr_module.c:804]: init_mod_child(): idx 0 rank
> -127: dmq_usrloc [main]
> 0(51) DEBUG: dmq_usrloc [dmq_usrloc.c:127]: child_init(): child_init
> PROC_INIT
>
> 7(62) DEBUG: dmq_usrloc [usrloc_sync.c:552]: usrloc_dmq_request_sync():
> requesting sync from dmq peers
> 0(51) DEBUG: <core> [core/sr_module.c:804]: init_mod_child(): idx 0 rank
> 0: dialog [main]
> 7(62) DEBUG: dmq_usrloc [usrloc_sync.c:568]: usrloc_dmq_request_sync():
> sending serialized data {"action":3}
> 7(62) DEBUG: dmq_usrloc [usrloc_sync.c:317]: usrloc_dmq_send(): sending
> dmq broadcast...
>
> 7(62) DEBUG: dmq [dmq_funcs.c:166]: bcast_dmq_message1(): skipping node
> sip:10.0.2.38:5090
> 7(62) DEBUG: dmq [dmq_funcs.c:166]: bcast_dmq_message1(): skipping node
> sip:10.0.2.30:5090
> 7(62) DEBUG: dmq [dmq_funcs.c:166]: bcast_dmq_message1(): skipping node
> sip:0.0.0.0:5090
>
>
>
>
> *List nodes at SERVER 1:*
>
>
> /etc/kamailio # kamcmd dmq.list_nodes
> {
> host: 10.0.1.36
> port: 5090
> resolved_ip: 10.0.1.36
> status: active
> last_notification: 0
> local: 0
> }
> {
> host: 10.0.1.35
> port: 5090
> resolved_ip: 10.0.1.35
> status: active
> last_notification: 0
> local: 0
> }
> {
> host: 0.0.0.0
> port: 5090
> resolved_ip: 0.0.0.0
> status: active
> last_notification: 0
> local: 1
> }
>
>
>
> *List nodes at SERVER 2:*
>
>
> /etc/kamailio # kamcmd dmq.list_nodes
> {
> host: 10.0.1.35
> port: 5090
> resolved_ip: 10.0.1.35
> status: active
> last_notification: 0
> local: 0
> }
> {
> host: 10.0.1.36
> port: 5090
> resolved_ip: 10.0.1.36
> status: active
> last_notification: 0
> local: 0
> }
> {
> host: 0.0.0.0
> port: 5090
> resolved_ip: 0.0.0.0
> status: active
> last_notification: 0
> local: 1
> }
>
>
>
>
> --
>
>
> Att,
> Benedito Marques
>
>
>
--
Att,
Benedito Marques
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20220725/28999e93/attachment.htm>
More information about the sr-users
mailing list