[SR-Users] Modify DMQ 200OK in on_reply route
jenus at cyberchaos.nl
jenus at cyberchaos.nl
Thu May 2 08:59:46 CEST 2019
Hi all,
I'm trying to run a kamailio DMQ node inside a docker container. All
works fine but i have one issue with DMQ. Since the kamailio process
inside the container is behind a nat i have set the advertise address to
the external ip, this works fine for the via headers but DMQ keeps
sending the internal interface in the KDMQ notification_peer messages.
The external ip is in there as well. Example:
SIP/2.0 200 OK
Via: SIP/2.0/UDP
10.10.10.13;branch=z9hG4bK2dcb.c6326de2000000000000000000000000.0
To:
<sip:notification_peer at 10.10.10.94:5060>;tag=616b7acb681ed5e9cbc485b3faa09d62.0a3d
From:
<sip:notification_peer at 10.10.10.13:5060>;tag=e8f29c06c4b85a188f6533f08d60feb6-ff29
CSeq: 10 KDMQ
Call-ID: 17042656602ca532-23367 at x.x.x.x
Content-Type: text/plain
Server: kamailio (5.1.4 (x86_64/linux))
Content-Length: 222
sip:10.10.10.13:5060;status=active
sip:10.10.10.12:5060;status=active
sip:10.10.10.92:5060;status=active
sip:10.10.10.93:5060;status=active
sip:10.10.10.94:5060;status=active <-- entry for container external ip
sip:172.17.0.2:5060;status=disabled <-- entry for container internal ip
I tried to strip this entry using the replace_body_atonce in the
tm:local-request route. This works fine for the KDMQ request, but when i
try to remove the same line from 200OK responses that are send out as a
response to incomming KDMQ messages this seems to fail. I use the
following code:
# Working code (for outgoing KDMQ requests):
event_route [tm:local-request]
{
if(is_method("KDMQ") && $rU == "notification_peer")
replace_body_atonce("sip:172.17.0.*:5060;status=.*", "");
}
# Failing code (for 200OK responses):
reply_route
{
xlog("L_ALERT", "REPLY: Sending out reply, tU is $tU rs is $rs\n");
if ($rs == "200" && $tU == "notification_peer")
{
replace_body_atonce("sip:172.17.0.*:5060;status=.*", "");
}
}
I'm running kamailio 5.1.4. Is there a way to strip a line from the body
of a local generated 200OK response? Or is there a way to avoid that DMQ
inserts the internal container ip in the first place.
Thanks,
Jan Hazenberg
More information about the sr-users
mailing list