Hi Jan,

What happens if you set the dmq server address to the advertised address?

listen=udp:172.17.0.2:5063 advertise 10.20.8.88:5063
modparam("dmq", "server_address", "sip:10.20.8.88:5063")

Cheers,

Charles


On Tue, 18 Jun 2019 at 07:53, <jenus@cyberchaos.nl> wrote:
Julien,

I have the following config:

Host ip: 10.20.8.88  Internal container ip:  172.17.0.2


listen=udp:172.17.0.2:5063 advertise 10.20.8.88:5063


# ----- dmq params -----
modparam("dmq", "server_address", "sip:172.17.0.2:5063")
modparam("dmq", "num_workers", 4)
modparam("dmq", "ping_interval", 90)
modparam("dmq", "notification_address",
"sip:sip12.voip.domain.test:5063")      (on the other node this is
sip11.domain.test)
modparam("dmq", "multi_notify", 1)

# ----- dmq_usrloc params -----
modparam("dmq_usrloc", "enable", 1)
modparam("dmq_usrloc", "sync", 1)
modparam("dmq_usrloc", "batch_msg_contacts", 50)  # 50 contacts /
message
modparam("dmq_usrloc", "batch_size", 10000)       # 10000 contacts /
batch
modparam("dmq_usrloc", "batch_usleep", 500000)    # one batch every
500ms


Here is the output of the kamcmd dmq.list_nodes

root@9d81434d491f:/# kamcmd dmq.list_nodes
{
         host: 10.20.8.89
         port: 5063
         resolved_ip: 10.20.8.89
         status: active
         last_notification: 0
         local: 0
}
{
         host: 10.20.8.88
         port: 5063
         resolved_ip: 10.20.8.88
         status: active
         last_notification: 0
         local: 0
}
{
         host: 172.17.0.2
         port: 5063
         resolved_ip: 172.17.0.2
         status: active
         last_notification: 0
         local: 1
}


I will collect some traces as well of the sync request as requested by
Charles.

Thanks,

Jan

Julien Chavanton schreef op 2019-06-17 21:00:
> Can you share the settings you are using :
>
> modparam("dmq", "server_address", "?")
> modparam("dmq", "notification_address", "?")
>
> On Mon, Jun 17, 2019 at 11:30 AM <jenus@cyberchaos.nl> wrote:
>
>> Hi all,
>>
>> Is there any other way to filter DMQ peers? I now have a issue with
>> dmq_usrloc when running in a docker container. When the node comes
>> online the peer is sending the KDMQ usrloc packet (with the
>> registered
>> contacts) to the internal container ip and not the actual external
>> ip.
>> Both ip's show up as DMQ peers, after a few keepalive failures the
>> dmq
>> peer with the internal container ip becomes inactive and no updates
>> are
>> sent to that peer. But the usrloc sync seems to happen before the
>> peer
>> is inactive.
>>
>> I tried to strip the peers with the internal container ip's, this
>> works
>> for the requests, but i'm not able to fix this for the responses.
>>
>> Thanks,
>>
>> Jan
>>
>> jenus@cyberchaos.nl schreef op 2019-05-02 08:59:
>>> 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@10.10.10.94:5060
>> [1]>;tag=616b7acb681ed5e9cbc485b3faa09d62.0a3d
>>> From:
>>> <sip:notification_peer@10.10.10.13:5060
>> [2]>;tag=e8f29c06c4b85a188f6533f08d60feb6-ff29
>>> CSeq: 10 KDMQ
>>> Call-ID: 17042656602ca532-23367@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
>>>
>>>
>>> _______________________________________________
>>> Kamailio (SER) - Users Mailing List
>>> sr-users@lists.kamailio.org
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users@lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
> Links:
> ------
> [1] http://sip:notification_peer@10.10.10.94:5060
> [2] http://sip:notification_peer@10.10.10.13:5060
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


--
Charles Chance
Managing Director


t. 0330 120 1200    m. 07932 063 891

Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, Birmingham Science Park, Birmingham B7 4BB.