[SR-Users] Determine correct port in record-route if kamailio is behind NAT

Olle E. Johansson oej at edvina.net
Tue May 12 11:47:07 CEST 2020


Record route is used for coming transactions on the same dialog and needs to be something
the server is listening to.

The server (on the other side) for a TCP connection may reuse the TCP connection (if outbound is used) or
setup a new connection to the port advertised in Record-route/Route-headers.

As 5060 is the port Kamailio listens to, that is the one to be advertised. The other one
is just a source port used for outbound connections and nothing Kamailio listens on for
inbound connections.

/O

> On 12 May 2020, at 11:39, Michal Popovic <michal.popovic at cloudtalk.io> wrote:
> 
> Hi Daniel,
> 
> thank you for your help.
> 
> I have found out that reason for this behaviour was that kamailio relay UDP connection to TCP connection and tm module adds two record-routes.
> This is correct behaviour, but I am not sure if it is correct that first record-route advertised port 5060 if kamailio opens random port for the connection.
> Shouldn't there be a port that was used for outgoing connection?
> 
> Record-Route: <sip:xx.xx.xx.xx: <sip:xx.xx.xx.xx:>5060;transport=tcp;r2=on;lr=on;ftag=as1f9ba470>
> Record-Route: <sipxx.xx.xx.xx;r2=on;lr=on;ftag=as1f9ba470>
> 
> Bye,
> Michal
> 
> 
>> On 11 May 2020, at 13:39, Daniel-Constantin Mierla <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>> 
>> Hello,
>> 
>> the nature of tcp protocol makes local ports on connect (as well
>> accepted connection ports) ephemeral. Kamailio has for that reason
>> "connection aliases", so the matching is also done based on advertised
>> attributes, not only on connection source ip/port. The interconnect
>> provider should do it also for tcp/tls. I am not sure now, but I think
>> there is also in the RFC specs something about.
>> 
>> Then, the alternative, with the latest kernels and kamailio, you can try
>> to reuse the tcp port:
>> 
>>   * https://www.kamailio.org/wiki/cookbooks/5.3.x/core#tcp_reuse_port <https://www.kamailio.org/wiki/cookbooks/5.3.x/core#tcp_reuse_port>
>> 
>> On the other hand, the firewall may associate a different extern port
>> for connections originated from the same source ip/port, you will have
>> to test and see what happens.
>> 
>> Cheers,
>> Daniel
>> 
>> On 11.05.20 12:23, Michal Popovic wrote:
>>> Hello,
>>> 
>>> so it looks like kamailio used random port for opening connections to our partners but did not updates record-route port properly. AWS has symmetric NAT and that works fine.
>>> 
>>> Is there any way how to identify port and rewrite record-route?
>>> 
>>> Thanks.
>>> 
>>> Bye,
>>> Michal
>>> 
>>>> On 7 May 2020, at 17:25, Michal Popovic <michal.popovic at cloudtalk.io <mailto:michal.popovic at cloudtalk.io>> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> our kamailio used for sip trunk interconnections is behind NAT and our cloud provider opens random outgoing ports for outbound connections.
>>>> Our record-route is set to our external address and port 5060, that is probably incorrect, but we did not had any issues.
>>>> One of our partners suddenly begin sending BYEs to the port advertised in record-route instead of port from where he received call.
>>>> 
>>>> What is a correct approach here if we are not able to determine open port behind NAT?
>>>> 
>>>> Bye,
>>>> Michal
>>>> _______________________________________________
>>>> Kamailio (SER) - Users Mailing List
>>>> sr-users at lists.kamailio.org <mailto: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 <mailto:sr-users at lists.kamailio.org>
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>> 
>> -- 
>> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com/>
>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>> Funding: https://www.paypal.me/dcmierla <https://www.paypal.me/dcmierla>
>> 
> 
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20200512/da646f07/attachment.html>


More information about the sr-users mailing list