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

Charles Chance charles.chance at sipcentric.com
Tue Jun 18 16:38:58 CEST 2019


Perfect - glad that resolved the issue for you.

Best,

Charles

On Tue, 18 Jun 2019 at 13:59, <jenus at cyberchaos.nl> wrote:

> Charles,
>
> Yes i now only see the "external" host ip in the DMQ packets (except for
> the callid header):
>
> --------------
> Session Initiation Protocol (KDMQ)
>      Request-Line: KDMQ sip:usrloc at 10.20.8.88:5063 SIP/2.0
>          Method: KDMQ
>          Request-URI: sip:usrloc at 10.20.8.88:5063
>              Request-URI User Part: usrloc
>              Request-URI Host Part: 10.20.8.88
>              Request-URI Host Port: 5063
>          [Resent Packet: False]
>      Message Header
>          Via: SIP/2.0/UDP
> 10.20.8.89:5063;branch=z9hG4bK6bd9.e406be74000000000000000000000000.0
>              Transport: UDP
>              Sent-by Address: 10.20.8.89
>              Sent-by port: 5063
>              Branch: z9hG4bK6bd9.e406be74000000000000000000000000.0
>          To: <sip:usrloc at 10.20.8.88:5063>
>              SIP to address: sip:usrloc at 10.20.8.88:5063
>                  SIP to address User Part: usrloc
>                  SIP to address Host Part: 10.20.8.88
>                  SIP to address Host Port: 5063
>          From:
> <sip:usrloc at 10.20.8.89:5063>;tag=eeb67b6ee91998d3c4ad015de5249b76-9cd9
>              SIP from address: sip:usrloc at 10.20.8.89:5063
>                  SIP from address User Part: usrloc
>                  SIP from address Host Part: 10.20.8.89
>                  SIP from address Host Port: 5063
>              SIP from tag: eeb67b6ee91998d3c4ad015de5249b76-9cd9
>          CSeq: 10 KDMQ
>              Sequence Number: 10
>              Method: KDMQ
>          Call-ID: 30b095bd0e83ad17-388 at 172.17.0.2
>          Content-Length: 12
>          User-Agent: kamailio (5.1.8 (x86_64/linux))
>          Max-Forwards: 1
>          Content-Type: application/json
>      Message Body
>          JavaScript Object Notation: application/json
>              Object
>                  Member Key: "action"
>                      Number value: 3
>
> --------------
>
> Jan
>
> Charles Chance schreef op 2019-06-18 13:43:
> > The value of the server address parameter is what appears in the from
> > header - so if you want replies to go to your advertised/public
> > address then this is what the server address should be set to.
> >
> > Do the messages now contain the correct IP since updating the server
> > address?
> >
> > Cheers,
> >
> > Charles
> >
> > On Tue, 18 Jun 2019 at 12:09, <jenus at cyberchaos.nl> wrote:
> >
> >> All
> >>
> >> Here the KDMQ reqest from the node that comes online:
> >>
> >> ------------------
> >> Kamailio start on 10.20.8.89, sends a request to the active node
> >> 10.20.8.88
> >> ------------------
> >> KDMQ sip:usrloc at 10.20.8.88:5063 [1] SIP/2.0
> >> Via: SIP/2.0/UDP
> >>
> > 10.20.8.89:5063;branch=z9hG4bKd5bb.c2abf9b4000000000000000000000000.0
> >> To: <sip:usrloc at 10.20.8.88:5063 [1]>
> >> From:
> >> <sip:usrloc at 172.17.0.2:5063
> >> [2]>;tag=eeb67b6ee91998d3c4ad015de5249b76-7d61
> >> CSeq: 10 KDMQ
> >> Call-ID: 58f8ada547fd5ba0-225 at 172.17.0.2
> >> Content-Length: 12
> >> User-Agent: kamailio (5.1.8 (x86_64/linux))
> >> Max-Forwards: 1
> >> Content-Type: application/json
> >>
> >> {"action":3}
> >>
> >> SIP/2.0 200 OK
> >> Via: SIP/2.0/UDP
> >>
> > 10.20.8.89:5063;branch=z9hG4bKd5bb.c2abf9b4000000000000000000000000.0
> >> To:
> >> <sip:usrloc at 10.20.8.88:5063
> >> [1]>;tag=616b7acb681ed5e9cbc485b3faa09d62.f2b6
> >> From:
> >> <sip:usrloc at 172.17.0.2:5063
> >> [2]>;tag=eeb67b6ee91998d3c4ad015de5249b76-7d61
> >> CSeq: 10 KDMQ
> >> Call-ID: 58f8ada547fd5ba0-225 at 172.17.0.2
> >> Server: kamailio (5.1.8 (x86_64/linux))
> >> Content-Length: 0
> >> -----------------
> >>
> >> But after this to response from 10.20.8.88 back to 10.20.8.89 with
> >> the
> >> usrloc data.  If i replace the primary node that should send the
> >> usrloc
> >> info with the original kamailio server that is not running in docker
> >> i
> >> see a KDMQ usrloc at ... back to the server that is starting with all
> >> the
> >> usrloc data in the body.
> >>
> >> Let me know if you need more details or debug logs.
> >>
> >> Thanks,
> >>
> >> Jan
> >>
> >> jenus at cyberchaos.nl schreef op 2019-06-18 08:51:
> >>> 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 [3] advertise 10.20.8.88:5063 [4]
> >>>
> >>>
> >>> # ----- dmq params -----
> >>> modparam("dmq", "server_address", "sip:172.17.0.2:5063 [3]")
> >>> 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 [5]
> >>>>> [1]>;tag=616b7acb681ed5e9cbc485b3faa09d62.0a3d
> >>>>>> From:
> >>>>>> <sip:notification_peer at 10.10.10.13:5060 [6]
> >>>>> [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
> >>
> >> _______________________________________________
> >> 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://sip:usrloc@10.20.8.88:5063
> > [2] http://sip:usrloc@172.17.0.2:5063
> > [3] http://172.17.0.2:5063
> > [4] http://10.20.8.88:5063
> > [5] http://sip:notification_peer@10.10.10.94:5060
> > [6] 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20190618/4daa7cb9/attachment.html>


More information about the sr-users mailing list