Reading your question again, I realize you weren't looking for nat advice in general, you only wanted to know how the received parameter is added. Well there's no special function to do this, since it's core SIP, received is added any time a request is relayed or a local response is generated. It is always added if different from host addr in via, regardless of nat detection or loading of nat modules in kamailio.

On Tue, 29 Sep 2020, 03:48 George Diamantopoulos, <georgediam@gmail.com> wrote:
Received parameter is always added to via, and is part of the core sip RFC. This is how responses are routed.

To get nat traversal on kamailio, you generally need the following in addition:

- Received only handles address masquerading, for port translation you also need to look at rport.
- A way to perform nat traversal for subsequent in dialog requests, and additionally for initial requests involving location lookup. This is where nathelper or similar must be involved.
- Prevent UDP Connection Tracking Timeout on NAT boxes (keeping nat alive). This can be achieved in many ways, including configuration on NATed devices (low registration expiration, keepalives) but it's better to employ keepalive functionality by kamailio modules (nathelper or usrloc ka, for example).

The actual way to perform these tasks is a bit more involved, and I'd suggest looking at the kamailio sample configuration file which should work for most cases.

On Mon, 28 Sep 2020, 19:36 Duarte Rocha, <duarterocha91@gmail.com> wrote:
Greetings, 

When NAT is detected in my Kamailio, the proxy add the parameter "received" to the Via header which includes the source IP.

What is the mechanic or function responsible for this behaviour? Does it come from the NATHELPER module?

Best Regards,
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users