[SR-Users] Kamailio and NAT

Nelson Migliaro eng.migliaro at gmail.com
Wed Jan 13 20:31:14 CET 2016


Hello,

I finally were able to run my Kamailio behind NAT but in order to
accomplish that I included:

listen=udp:SOURCE-IP:5060 advertise PUBLIC-IP:52548

52548 is the port my internet router change when doing NAT (5060->52548). I
found this port sniffing traffic

Conclusions at this point are:

---------------------------------------------1--------------------------------------------------------------------------------------------------
If I use this line:

listen=udp:SOURCE-IP:5060 advertise PUBLIC-IP:5060 it does not work :(

When I dial a call, INVITE / ACK / Trying / OK goes fine because they are
part of the same transaction
When remote party disconnects the call, BYE goes to PUBLIC-IP port 5060 and
router blocks de request. I assume vendor sends BYE to 5060 because it is a
new transaction

-----------------------------------------------2--------------------------------------------------------------------------------------------------
If I use this line:

listen=udp:SOURCE-IP:5060 advertise PUBLIC-IP:52548 it work !!!!!!

When I dial a call, INVITE / ACK / Trying / OK goes fine because they are
part of the same transaction
When remote party disconnects the call, BYE goes to PUBLIC-IP port 52548
and router forward the request to Kamailio. Since there is an open
connection.

I need to find the way to find the way to advertise the public port
internet router is doing NAT (PAT).

---------------------------------------------------------------------------------------------------------------------------------------------------
This trace is a call that worked fine because I included line:

listen=udp:SOURCE-IP:5060 advertise PUBLIC-IP:52548


This trace is an INVITE with this line: listen=udp:SOURCE-IP:5060 advertise
PUBLIC-IP:52548
2016/01/13 20:10:15.793568 PRIVATE-IP-KAMAILIO:5060 -> VENDOR-IP:5060
INVITE sip:NUM-DESTINATION at VENDOR-IP SIP/2.0
Record-Route:
<sip:PUBLIC-IP:52548;lr=on;ftag=as3b72a453;vsf=AAAAAAEECQkCAgsNAXBeL0NPXVQfU0suMTY5LjIzMQ--;vst=AAAAAAAAAAAAAAAAAABCUEIAX1lKWF5MF0tB
A-;nat=yes>
Via: SIP/2.0/UDP
PUBLIC-IP:52548;branch=z9hG4bKdd74.992e238037882e809653f713a5a580a9.0
Via: SIP/2.0/UDP
PRIVATE-IP-SOFTPHONE:5060;received=PRIVATE-IP-SOFTPHONE;branch=z9hG4bK2f4e76ba;rport=5060
Max-Forwards: 69
From: NUM-SOURCE <sip:NUM-SOURCE at PRIVATE-IP-KAMAILIO>;tag=as3b72a453
To: <sip:NUM-DESTINATION at sip.VENDOR-IP>
Contact: <sip:NUM-SOURCE at PRIVATE-IP-SOFTPHONE:5060;alias=PUBLIC-IP~5060~1>
Call-ID: 329950447629810f7bdeaeed0cc034e1 at PRIVATE-IP-SOFTPHONE:5060
CSeq: 102 INVITE
User-Agent: Kamailio
Date: Wed, 13 Jan 2016 19:10:15 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO,
PUBLISH, MESSAGE
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 255


Trying.....

2016/01/13 20:10:15.842055 VENDOR-IP:5060 -> PRIVATE-IP-KAMAILIO:5060
SIP/2.0 100 trying -- your call is important to us
Via: SIP/2.0/UDP
PUBLIC-IP:52548;branch=z9hG4bKdd74.992e238037882e809653f713a5a580a9.1;rport=52548
Via: SIP/2.0/UDP
PRIVATE-IP-SOFTPHONE:5060;received=PRIVATE-IP-SOFTPHONE;branch=z9hG4bK2f4e76ba;rport=5060
From: NUM-SOURCE <sip:NUM-SOURCE at PRIVATE-IP-KAMAILIO>;tag=as3b72a453
To: <sip:NUM-DESTINATION at VENDOR-IP>
Call-ID: 329950447629810f7bdeaeed0cc034e1 at PRIVATE-IP-SOFTPHONE:5060
CSeq: 102 INVITE
Server: kamailio
Content-Length: 0




And finally a BYE

2016/01/13 20:10:28.545526 VENDOR-IP:5060 -> PRIVATE-IP-KAMAILIO:5060
BYE sip:34982298000 at PRIVATE-IP-SOFTPHONE:5060;alias=PUBLIC-IP~5060~1 SIP/2.0
Via: SIP/2.0/UDP
VENDOR-IP;branch=z9hG4bK26d8.847e6e14eef37e2cfc8b5e81d33de73d.0
From: <sip:675896262 at PRIVATE-IP-KAMAILIO>;tag=gK0293ed93
To: "NUM-SOURCE" <sip:NUM-SOURCE at norvoz.es>;tag=as3b72a453
Call-ID: 329950447629810f7bdeaeed0cc034e1 at PRIVATE-IP-SOFTPHONE:5060
CSeq: 28731 BYE
Max-Forwards: 69
Route:
<sip:PUBLIC-IP:52548;lr=on;ftag=as3b72a453;vsf=AAAAAAEECQkCAgsNAXBeL0NPXVQfU0suMTY5LjIzMQ--;vst=AAAAAAAAAAAAAAAAAABCUEIAX1lKWF5MF0tBMzA-;na
yes>
Reason: Q.850;cause=16
Content-Length: 0



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

Finally, It is finally working because I hardcoded NAT´d port.
I would like to find a way to avoid setting the port in "hard".

Thank you






2016-01-13 12:59 GMT+01:00 Gholamreza Sabery <gr.sabery at gmail.com>:

> When you are running Kamailio behind a NAT you should use advertise
> parameter of listen address. According to documentation " A typical use
> case for advertise address is when running SIP server behind a
> NAT/Firewall, when the local IP address (to be used for bind) is different
> than the public IP address (to be used for advertising).". For example:
>
> listen=udp:10.10.10.10:5060 advertise  11.11.11.11:5060
>
> For more info refer to http://www.kamailio.org/wiki/cookbooks/3.3.x/core#listen
>
> Regards
>
> Gholamreza Sabery Tabrizy
>
>
>
> On Wed, Jan 13, 2016 at 2:39 AM, Daniel-Constantin Mierla <
> miconda at gmail.com> wrote:
>
>> Hello,
>>
>> can you get the SIP trace with all the packets of such dialog outside of
>> the NAT router? It will help to see the headers and based on that we may be
>> able to provide a solution.
>>
>> Cheers,
>> Daniel
>>
>>
>> On 12/01/16 19:13, Nelson Migliaro wrote:
>>
>> Thank you for your answer.
>>
>> The problem I have is with internet router doing to PAT to SIP port.
>> I am already advertising public IP but unfortunately I cant know the
>> public port I am using.
>>
>> 2015-12-28 18:17 GMT+01:00 Alexandru Covalschi <568691 at gmail.com>:
>>
>>> AFAIK bye is usually sent to the address stored in record_route. Try
>>> setting changing record_route() to
>>> record_route_preset("PUBLICIP:5060;nat=yes:)
>>>
>>> 2015-12-23 16:28 GMT+02:00 Nelson Migliaro < <eng.migliaro at gmail.com>
>>> eng.migliaro at gmail.com>:
>>>
>>>>
>>>> Hello,
>>>>
>>>> I am running Kamailio behind NAT.
>>>>
>>>> Kanailio has a private IP and I am relaying NAT to internet router.
>>>>
>>>> I am using:
>>>>
>>>> - #!define WITH_NAT
>>>> - listen=udp:PRIVATE-IP:5060 advertise PUBLIC-IP:5060
>>>>
>>>> - Patched RTP proxy including the advertise option
>>>>
>>>> And everything goes fine. I can make calls and have two way audio.
>>>>
>>>> The problem begins when the callee ends the call. BYE is not received
>>>> in Kamailio (caller)
>>>>
>>>> I included the public IP using "add_contact_alias" because
>>>> "set_contact_alias" was not adding the public IP. I included this in in
>>>> NATDETECT (pre loaded router)
>>>>
>>>>         if(is_first_hop()) {
>>>>             xlog("L_NOTICE","Metodo: $rm \n");
>>>>             xlog("L_NOTICE","is first hop\n");
>>>>             #set_contact_alias();
>>>>                  if (!add_contact_alias("PUBLIC-IP", "$Rp", "udp")) {
>>>>                  xlog("L_ERR", "Error in aliasing contact $ct\n");
>>>>                     send_reply("400", "Bad request");
>>>>                             exit;
>>>>                     }
>>>>         }
>>>>
>>>> I think the problem is related to destination that BYE is sent by the
>>>> vendor. From what I see IP and port is taken from advertised in contact
>>>> (PUBLIC-IP and 5060).
>>>> The problem is that internet router changes the source port.
>>>>
>>>> Contact: <sip:999999999 at PRIVATE-IP:5060;alias=PUBLIC-IP~5060~1>
>>>>
>>>> --- Is it correcto to add_contact_alias("PUBLIC-IP", "$Rp", "udp") in
>>>> order to received new transactions or should I follow a different
>>>> procedure???
>>>>
>>>> Thank you
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>> sr-users at lists.sip-router.org
>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>
>>>
>>> --
>>> Alexandru Covalschi
>>> ABRISS-Solutions
>>> VoIP engineer and system administrator
>>> phone: +37367398493
>>> web: http://abs-telecom.com/
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>> --
>> Daniel-Constantin Mierlahttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>> Book: SIP Routing With Kamailio - http://www.asipto.comhttp://miconda.eu
>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20160113/4a406682/attachment.html>


More information about the sr-users mailing list