[SR-Users] Modify DMQ 200OK in on_reply route

jenus at cyberchaos.nl jenus at cyberchaos.nl
Tue Jun 18 13:02:07 CEST 2019


Charles,

That seems to solve the problem. Usrloc is now synced at startup.  I 
don't have any duplicate dmq peers anymore as well. I will do some 
testing but for now the issue seems to be solved.

Many thanks for your quick help.

Jan

Charles Chance schreef op 2019-06-18 11:33:
> Hi Jan,
> 
> What happens if you set the dmq server address to the advertised
> address?
> 
> listen=udp:172.17.0.2:5063 [1] advertise 10.20.8.88:5063 [2]
> modparam("dmq", "server_address", "SIP:10.20.8.88:5063 [2]")
> 
> Cheers,
> 
> Charles
> 
> On Tue, 18 Jun 2019 at 07:53, <jenus at 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 [1] advertise 10.20.8.88:5063 [2]
>> 
>> # ----- dmq params -----
>> modparam("dmq", "server_address", "sip:172.17.0.2:5063 [1]")
>> 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 at 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 at 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 at 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 at 10.10.10.94:5060 [3]
>>>> [1]>;tag=616b7acb681ed5e9cbc485b3faa09d62.0a3d
>>>>> From:
>>>>> <sip:notification_peer at 10.10.10.13:5060 [4]
>>>> [2]>;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
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Kamailio (SER) - Users Mailing List
>>>>> sr-users at lists.kamailio.org
>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>> 
>>>> _______________________________________________
>>>> Kamailio (SER) - Users Mailing List
>>>> sr-users at 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 at lists.kamailio.org
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>> 
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at 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.
> 
> Links:
> ------
> [1] http://172.17.0.2:5063
> [2] http://10.20.8.88:5063
> [3] http://sip:notification_peer@10.10.10.94:5060
> [4] http://sip:notification_peer@10.10.10.13:5060
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users




More information about the sr-users mailing list