[sr-dev] Removing Record-Route header

Andrey Deykunov deykunov at gmail.com
Mon Jun 8 09:47:06 CEST 2020


Hi Henning,

Here is an example where I call set_advertised_address() and
set_advertised_port() before relaying to the B2BUA:


route
{
        ...

        ...

        t_on_reply("REPLY_FROM_B2BUA");

        if (!add_contact_alias()) {
                xlog("L_ERR", "sip_call_id=$ci; Failed aliasing contact $ct
");
                send_reply("400", "Bad request");
                exit;
        }

        rewritehostport("<%= @ipaddr %>:1024");

        set_advertised_address("<%= @ipaddr %>");
        set_advertised_port(5060);

        if (!t_relay_to_udp("<%= @ipaddr %>", "1024")) {
                xlog("L_ERR", "sip_call_id=$ci; Failed relaying $rm to b2bua");
                sl_reply_error();
        }
}




The SIP message sent from kamailio to B2BUA after that looks like:

IP (tos 0x10, ttl 64, id 53886, offset 0, flags [none], proto UDP (17),
length 1509)
    10.99.8.107.5060 > 10.99.8.107.1024: [bad udp cksum 0x2b7e -> 0xf867!]
UDP, length 1481
E....~.. at .|.
c.k
c.k......+~INVITE sip:301 at 10.99.8.107:1024 SIP/2.0
Record-Route: <sip:18.156.22.8;lr=on;ftag=51c5ba2b8447498798a4e630dca6c17a>
Via: SIP/2.0/UDP 10.99.8.107:5060
;branch=z9hG4bKa09f.30a09da6e92bdfa999ccb517ecba6f97.0
Via: SIP/2.0/UDP 10.9.18.77:50342
;received=37.202.8.10;rport=50342;branch=z9hG4bKPj888cd8a8501547fc851e5724ef3f7b1a
Max-Forwards: 69
From: <sip:74807310 at 18.156.22.8>;tag=51c5ba2b8447498798a4e630dca6c17a
To: <sip:301 at 18.156.22.8>
Contact: <sip:74807310 at 10.9.18.77:50342
;alias=37.202.8.10~50342~1;alias=37.202.8.10~50342~1;ob>
Call-ID: f92450e6fad14d59bfea70100358bd05
CSeq: 232 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY,
REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
User-Agent: MicroSIP/3.19.28
Authorization: Digest username="74807310", realm="
hpbx200-1.euc1.telecomsvc.com", nonce="Xt3p017d6KfFSpRngRjuDCInFYIAVnPB",
uri="sip:301 at 18.156.22.8", response="5e8f6a54064aba0d703c62dcbc746807"
Content-Type: application/sdp
Content-Length:   386
P-Debug-header: advertized local


where  18.156.22.8 in the *'Record-Route'* header is an external IP set by
the '*advertise*' setting  in the '*listen*' block:


listen=udp:<%= @ipaddr %>:5060 advertise <%= node['hpbx'][
'nat_public_ipaddr'] %>:5060


and 10.99.8.107:5060 in the *'Via'* header is an internal IP:port replaced
by  *set_advertised_address*() and *set_advertised_port*() functions before
relaying to B2BUA. So, I need '*Record-Route*' to be having internal IP
just as in the '*Via*' header.

The functions such enable_double_rr() and record_route_advertised_address()
did not help here.
Any ideas?


Thanks,
Andrey





вс, 7 июн. 2020 г. в 12:35, Henning Westerholt <hw at skalatan.de>:

> Hello,
>
>
>
> not know the details of your cfg, but did you tried already to deactivate
> this parameter:
>
>
>
>
> https://kamailio.org/docs/modules/devel/modules/rr.html#rr.p.enable_double_rr
>
>
>
> Another option could be not not use record_route() but this function
> instead:
>
>
>
>
> https://kamailio.org/docs/modules/devel/modules/rr.html#rr.f.record_route_adv_addr
>
>
>
> Cheers,
>
>
>
> Henning
>
>
>
> --
>
> Henning Westerholt – https://skalatan.de/blog/
>
> Kamailio services – https://gilawa.com
>
>
>
> *From:* sr-dev <sr-dev-bounces at lists.kamailio.org> *On Behalf Of *Andrey
> Deykunov
> *Sent:* Friday, June 5, 2020 2:33 PM
> *To:* Kamailio (SER) - Development Mailing List <sr-dev at lists.kamailio.org
> >
> *Subject:* [sr-dev] Removing Record-Route header
>
>
>
> Hi guys,
>
>
>
> I'm using Kamailio 5.3.1 in the AWS cloud. For this purpose I'm setting up
> a 'nat_public_ipaddr' in the 'advertise' feature:
>
>
>
>
>
> listen=tls:<%= @ipaddr %>:5061 advertise <%= node['hpbx'][
> 'nat_public_ipaddr'] %>:5061
>
> listen=tcp:<%= @ipaddr %>:5060 advertise <%= node['hpbx'][
> 'nat_public_ipaddr'] %>:5060
>
> listen=udp:<%= @ipaddr %>:5060 advertise <%= node['hpbx'][
> 'nat_public_ipaddr'] %>:5060
>
>
>
>
>
>
>
> When I need relaying an incoming message to one of our internal services
> (for example B2BUA, VMAIL etc) I'm setting up an internal address
> '@ipaddr'  in the Via header instead of 'nat_public_ipaddr' :
>
>
>
>
>
> set_advertised_address("<%= @ipaddr %>");
>
> set_advertised_port(5060);
>
>
>
>
>
>
>
> All works fine, but Kamailio adds a 'Record-Route' header containing
> 'nat_public_ipaddr' automatically into such messages. How can I remove this
> header or insert my internal address instead before relaying the message?
> Is it possible?
>
>
>
> Thanks,
>
> Andrey
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20200608/3a11198d/attachment-0001.html>


More information about the sr-dev mailing list