Hi,
I have come accross an issue whereby when I replicate registration information to client
nodes on the dmq bus, the AOR's of the client nodes for that replication event are
garbled.
I am running the release version of kamailio v4.3.0 with the following 3 patches applied:
https://github.com/kamailio/kamailio/commit/894796f6f1fa2d2778ace5c56f58d20…
https://github.com/kamailio/kamailio/commit/039231a3b61c00fe36e868417144daa…
https://github.com/kamailio/kamailio/commit/733fd5daf74963b152a2964f9eea1a6…
```
# kamailio -V
version: kamailio 4.3.0 (x86_64/linux) c6aa95
flags: STATS: Off, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST,
DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, DBG_F_MALLOC, 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_LISTEN 16, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: c6aa95
compiled on 15:27:56 Jul 7 2015 with gcc 4.4.7
```
Here is a sipgrep trace of the messaging of the UAC registering and the corresponding KDMQ
messages sent to the 2 client nodes on the DMQ bus:
```
U 2015/07/07 15:35:33.103946 10.7.0.109:5060 -> 10.7.0.173:5060
REGISTER sip:subscriber_domain;transport=UDP SIP/2.0.
Via: SIP/2.0/UDP 10.7.0.109;branch=z9hG4bK6c8.182de67239d973bafe4e581e6574d8a2.0.
Via: SIP/2.0/UDP
192.168.1.238:54270;rport=57937;received=212.2.160.202;branch=z9hG4bK-524287-1---6ab5bde6fb54f05f.
Max-Forwards: 69.
Contact:
<sip:subscriber_name@192.168.1.238:54270;alias=212.2.160.202~57937~1;rinstance=f07ae8c64e7a1962;transport=UDP>.
To: <sip:subscriber_name@subscriber_domain;transport=UDP>.
From: <sip:subscriber_name@subscriber_domain;transport=UDP>;tag=06548a73.
Call-ID: iwGubUeCiNBMYcFqL4Kf4g...
CSeq: 1 REGISTER.
Expires: 110.
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE.
Supported: replaces, norefersub, extended-refer, timer, outbound, path,
X-cisco-serviceuri.
User-Agent: Z 3.7.30891 r30851.
Allow-Events: presence, kpml.
Content-Length: 0.
Path: <sip:10.7.0.109;lr;received=sip:212.2.160.202:57937>.
.
U 2015/07/07 15:35:33.104583 10.7.0.173:5060 -> 10.7.0.109:5060
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP 10.7.0.109;branch=z9hG4bK6c8.182de67239d973bafe4e581e6574d8a2.0.
Via: SIP/2.0/UDP
192.168.1.238:54270;rport=57937;received=212.2.160.202;branch=z9hG4bK-524287-1---6ab5bde6fb54f05f.
To:
<sip:subscriber_name@subscriber_domain;transport=UDP>;tag=a55e8da2dec08a1e8faf1efe616c4a58.1527.
From: <sip:subscriber_name@subscriber_domain;transport=UDP>;tag=06548a73.
Call-ID: iwGubUeCiNBMYcFqL4Kf4g...
CSeq: 1 REGISTER.
WWW-Authenticate: Digest realm="subscriber_domain",
nonce="VZvk4VWb47UOTbXkF6UTXuGtMmOr1krjmNayRoRwfIGueG5nlHEkwEmw7rOA",
qop="auth".
Server: reg01.
Content-Length: 0.
.
U 2015/07/07 15:35:33.148675 10.7.0.109:5060 -> 10.7.0.173:5060
REGISTER sip:subscriber_domain;transport=UDP SIP/2.0.
Via: SIP/2.0/UDP 10.7.0.109;branch=z9hG4bK3c8.fdc7855158bceefc94eb231cfd28c710.0.
Via: SIP/2.0/UDP
192.168.1.238:54270;rport=57937;received=212.2.160.202;branch=z9hG4bK-524287-1---7ce5e69b3282c0a4.
Max-Forwards: 69.
Contact:
<sip:subscriber_name@192.168.1.238:54270;alias=212.2.160.202~57937~1;rinstance=f07ae8c64e7a1962;transport=UDP>.
To: <sip:subscriber_name@subscriber_domain;transport=UDP>.
From: <sip:subscriber_name@subscriber_domain;transport=UDP>;tag=06548a73.
Call-ID: iwGubUeCiNBMYcFqL4Kf4g...
CSeq: 2 REGISTER.
Expires: 110.
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE.
Supported: replaces, norefersub, extended-refer, timer, outbound, path,
X-cisco-serviceuri.
User-Agent: Z 3.7.30891 r30851.
Authorization: Digest
username="subscriber_name",realm="subscriber_domain",nonce="VZvk4VWb47UOTbXkF6UTXuGtMmOr1krjmNayRoRwfIGueG5nlHEkwEmw7rOA",uri="sip:subscriber_domain;transport=UDP",response="0f65399a35348e73d88fe8fccdff972f",cnonce="acef54d83f88bc6174ef900d1c202aee",nc=00000001,qop=auth,algorithm=MD5.
Allow-Events: presence, kpml.
Content-Length: 0.
Path: <sip:10.7.0.109;lr;received=sip:212.2.160.202:57937>.
.
Unknown METHOD: KDMQ
U 2015/07/07 15:35:33.151528 10.6.0.173:5060 -> 10.6.0.175:5060
KDMQ sip:usrloc@10.6.0.175:5060 SIP/2.0.
Via: SIP/2.0/UDP 10.6.0.173;branch=z9hG4bK9cbc.6c89b871000000000000000000000000.0.
To: <sip:usrloc@10.6.0.175:5060>.
From: <sip:usrloc@10.6.0.173:5060>;tag=390c95c339281829d3cea6f43c8512cb-0295.
CSeq: 10 KDMQ.
Call-ID: 7f7531821a1befa0-18771(a)10.6.0.173.
Content-Length: 499.
User-Agent: kamailio (reg01).
Max-Forwards: 1.
Content-Type: application/json.
.
{"action":1,"aor":"subscriber_name@subscriber_domain","ruid":"uloc-559bdf82-4953-b","c":"sip:subscriber_name@192.168.1.238:54270;alias=212.2.160.202~57937~1;rinstance=f07ae8c64e7a1962;transport=UDP","received":"sip:212.2.160.202:57937","path":"<sip:10.7.0.109;lr;received=sip:212.2.160.202:57937>","callid":"iwGubUeCiNBMYcFqL4Kf4g..","user_agent":"Z
3.7.30891
r30851","instance":"","expires":1436279846,"cseq":2,"flags":0,"cflags":64,"q":-1,"last_modified":1436279733,"methods":5087,"reg_id":0}
Unknown METHOD: KDMQ
U 2015/07/07 15:35:33.151629 10.6.0.173:5060 -> 10.6.0.174:5060
KDMQ sip:usrloc@10.6.0.174:5060 SIP/2.0.
Via: SIP/2.0/UDP 10.6.0.173;branch=z9hG4bKacbc.8ccb40f3000000000000000000000000.0.
To: <sip:usrloc@10.6.0.174:5060>.
From: <sip:usrloc@10.6.0.173:5060>;tag=390c95c339281829d3cea6f43c8512cb-7c1a.
CSeq: 10 KDMQ.
Call-ID: 7f7531821a1befa1-18771(a)10.6.0.173.
Content-Length: 499.
User-Agent: kamailio (reg01).
Max-Forwards: 1.
Content-Type: application/json.
.
{"action":1,"aor":"subscriber_name@subscriber_domain","ruid":"uloc-559bdf82-4953-b","c":"sip:subscriber_name@192.168.1.238:54270;alias=212.2.160.202~57937~1;rinstance=f07ae8c64e7a1962;transport=UDP","received":"sip:212.2.160.202:57937","path":"<sip:10.7.0.109;lr;received=sip:212.2.160.202:57937>","callid":"iwGubUeCiNBMYcFqL4Kf4g..","user_agent":"Z
3.7.30891
r30851","instance":"","expires":1436279846,"cseq":2,"flags":0,"cflags":64,"q":-1,"last_modified":1436279733,"methods":5087,"reg_id":0}
U 2015/07/07 15:35:33.151750 10.7.0.173:5060 -> 10.7.0.109:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 10.7.0.109;branch=z9hG4bK3c8.fdc7855158bceefc94eb231cfd28c710.0.
Via: SIP/2.0/UDP
192.168.1.238:54270;rport=57937;received=212.2.160.202;branch=z9hG4bK-524287-1---7ce5e69b3282c0a4.
To:
<sip:subscriber_name@subscriber_domain;transport=UDP>;tag=a55e8da2dec08a1e8faf1efe616c4a58.2d89.
From: <sip:subscriber_name@subscriber_domain;transport=UDP>;tag=06548a73.
Call-ID: iwGubUeCiNBMYcFqL4Kf4g...
CSeq: 2 REGISTER.
Contact:
<sip:subscriber_name@192.168.1.238:54270;alias=212.2.160.202~57937~1;rinstance=f07ae8c64e7a1962;transport=UDP>;expires=113;received="sip:212.2.160.202:57937".
Server: reg01.
Content-Length: 0.
.
```
Here is the output of "kamctl ul show" on the node that the UAC registered on:
```
[reg01]# kamctl ul show
Domain:: location table=1024 records=1 max_slot=1
AOR:: subscriber_name@subscriber_domain
Contact::
sip:subscriber_name@192.168.1.238:54270;alias=212.2.160.202~57937~1;rinstance=f07ae8c64e7a1962;transport=UDP
Q=
Expires:: 22
Callid:: iwGubUeCiNBMYcFqL4Kf4g..
Cseq:: 2
User-agent:: Z 3.7.30891 r30851
Received:: sip:212.2.160.202:57937
Path:: <sip:10.7.0.109;lr;received=sip:212.2.160.202:57937>
State:: CS_NEW
Flags:: 0
Cflag:: 64
Socket:: udp:10.7.0.173:5060
Methods:: 5087
Ruid:: uloc-559bdf82-4953-b
Reg-Id:: 0
Last-Keepalive:: 1436279733
Last-Modified:: 1436279733
```
And here is the output of "kamctl ul show" on the two client nodes on the bus:
```
[reg02]# kamctl ul show
Domain:: location table=1024 records=1 max_slot=1
AOR:: À.e
[reg03]# kamctl ul show
Domain:: location table=1024 records=1 max_slot=1
AOR:: Àn"
```
My dmq related parameter settings are as follows:
```
# grep -i dmq module_definitions.cfg
loadmodule "dmq.so"
loadmodule "dmq_usrloc.so"
# ----- dmq params -----
modparam("dmq", "server_address", DMQ_ADDRESS)
modparam("dmq", "notification_address",
"sip:sip-registrars:5060")
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 4)
# ----- dmq_usrloc params -----
modparam("dmq_usrloc", "enable", 1)
```
The "sip-registrars" host/domain name resolves to the following 3 addresses (via
DNS):
```
10.6.0.173
10.6.0.174
10.6.0.175
```
I am getting the following nathelper errors in the logs of the client nodes too, I
presume, because of the garbeld AOR:
```
Jul 7 15:35:45 reg02 /usr/sbin/kamailio[5466]: ERROR: <core>
[parser/parse_rr.c:71]: do_parse_rr_body(): parse_rr(): Error while parsing name-addr ()
Jul 7 15:35:45 reg02 /usr/sbin/kamailio[5466]: ERROR: <core>
[parser/parse_rr.c:454]: get_path_dst_uri(): failed to parse Path body
Jul 7 15:35:45 reg02 /usr/sbin/kamailio[5466]: ERROR: nathelper [nathelper.c:2147]:
nh_timer(): failed to get dst_uri for Path
Jul 7 15:35:45 reg02 /usr/sbin/kamailio[5466]: ERROR: <core>
[parser/parse_rr.c:71]: do_parse_rr_body(): parse_rr(): Error while parsing name-addr ()
Jul 7 15:35:45 reg02 /usr/sbin/kamailio[5466]: ERROR: <core>
[parser/parse_rr.c:454]: get_path_dst_uri(): failed to parse Path body
Jul 7 15:35:45 reg02 /usr/sbin/kamailio[5466]: ERROR: nathelper [nathelper.c:2147]:
nh_timer(): failed to get dst_uri for Path
```
```
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: <core>
[parser/parse_rr.c:71]: do_parse_rr_body(): parse_rr(): Error while parsing name-addr ()
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: <core>
[parser/parse_rr.c:454]: get_path_dst_uri(): failed to parse Path body
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: nathelper [nathelper.c:2147]:
nh_timer(): failed to get dst_uri for Path
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: <core>
[parser/parse_rr.c:71]: do_parse_rr_body(): parse_rr(): Error while parsing name-addr ()
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: <core>
[parser/parse_rr.c:454]: get_path_dst_uri(): failed to parse Path body
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: nathelper [nathelper.c:2147]:
nh_timer(): failed to get dst_uri for Path
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: <core>
[parser/parse_rr.c:71]: do_parse_rr_body(): parse_rr(): Error while parsing name-addr ()
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: <core>
[parser/parse_rr.c:454]: get_path_dst_uri(): failed to parse Path body
Jul 7 15:35:58 reg03 /usr/sbin/kamailio[28790]: ERROR: nathelper [nathelper.c:2147]:
nh_timer(): failed to get dst_uri for Path
```
Please let me know if you require any further info from me.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/237