Hello,

to clarify: without my last patch, was it working on the local node? Or now with the patch is working for local node, but still an issue of not replicating the xavps?

Cheers,
Daniel

On 29.05.19 09:02, Patrick Wakano wrote:
Hi Daniel!
I tried the patch, but it didn't work.... After some more debugging I noticed that actually the problem is in the replication via the dmq_usrloc module. The Kamailio which receives the registration can access the attributes despite the DB mode (also it works without your patch). The problem is that the replicated nodes don't have access to it.
Sorry my first impression was that the location attributes was not working with DB mode 0, but actually it is the DMQ replication failing to send contact attributes to other nodes...
I got this in the logs, may be helpful (the serialized data has nothing related to the xavp...)
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: registrar [save.c:410]: pack_ci(): generated ruid is: uloc-5cee2114-5abe-2
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: usrloc [ucontact.c:73]: ucontact_xavp_store(): trying to clone per contact xavps
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: <core> [core/xavp.c:697]: xavp_clone_level_nodata(): cloned root xavp [ulattrs]
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: <core> [core/xavp.c:721]: xavp_clone_level_nodata(): cloned inner xavp [cluster_node]
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: usrloc [ucontact.c:1701]: update_ucontact(): exists callback for type= UL_CONTACT_UPDATE
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: usrloc [ul_callback.h:84]: run_ul_callbacks(): contact=0x7f51b624d418, callback type 2/15, id 1 entered
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: dmq_usrloc [usrloc_sync.c:776]: dmq_ul_cb_contact(): Callback from usrloc with type=2
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: dmq_usrloc [usrloc_sync.c:427]: init_usrloc_dmq_recv(): Initializing usrloc_dmq_recv for pid (23230)
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: dmq_usrloc [usrloc_sync.c:785]: dmq_ul_cb_contact(): Replicating local update to other nodes...
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: dmq_usrloc [usrloc_sync.c:746]: usrloc_dmq_send_contact(): sending serialized data {"action":1,"aor":"345671002","ruid":"uloc-5cee20df-5953-1","c":"sip:345671002@172.28.128.200:5060;rinstance=38e53fed7e84e081;transport=UDP","received":"","path":"<sip:172.28.128.102:5060;received=sip:172.28.128.200:5060;lr>","callid":"NOeeFh1Bh5JR0eJG8DENkg..","user_agent":"Z 3.15.40006 rv2.8.20","instance":"","expires":1559110577,"cseq":12,"flags":0,"cflags":3072,"q":-1,"last_modified":1559109977,"methods":4294967295,"reg_id":0,"server_id":0}
May 29 16:06:18 kamailio-2 /usr/sbin/kamailio[23230]: DEBUG: dmq_usrloc [usrloc_sync.c:315]: usrloc_dmq_send(): sending dmq broadcast...

I can open a ticket if the problem is confirmed!
Thanks,
Cheers,
Patrick Wakano

On Tue, 28 May 2019 at 17:17, Patrick Wakano <pwakano@gmail.com> wrote:
Wow, that was fast!
I will try later on and let you know!
Thanks Daniel for your time and effort! Really appreciate it!

Cheers,
Patrick Wakano


On Tue, 28 May 2019 at 17:00, Daniel-Constantin Mierla <miconda@gmail.com> wrote:

Hello,

can you try with master branch or apply the patch from next commit?

  - https://github.com/kamailio/kamailio/commit/76f0fa8a0330de3885f5f3830eb90061c59045d4

If works ok, then I will backport.

Cheers,
Daniel

On 28.05.19 08:30, Patrick Wakano wrote:
Forgot to mention I am using version 5.2.2.
# kamailio -v
version: kamailio 5.2.2 (x86_64/linux) 67f967
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, 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
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: 67f967
compiled on 11:40:41 Mar 11 2019 with gcc 4.8.5

On Tue, 28 May 2019 at 16:26, Patrick Wakano <pwakano@gmail.com> wrote:
Hello list,
Hope you all doing well!

I am trying to use the extra attributes (xavp_contact) of the usrloc module to save some additional info about the user.
I am setting the value before the save() and doing a call to registered() (not lookup()) before trying to access these extra attributes. This works fine with db_mode=3 but does not work in case of db_mode=0.
Does anyone knows if it should also work with mode 0? I was expecting it to work but a call to kamcmd ul.dump show nothing related.....
I don't want to use the DB for the location purposes because I prefer to have multiple servers using the dmq_usrloc (that works like a charm!) and it conflicts with DB persistence of the location table (when the DMQ replication happens, all servers (sharing the same DB) try to save the same user info in the location table)

Thank you,
Kind regards,
Patrick Wakano

_______________________________________________
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
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda