Kamailio + Asterisk behind NAT

The setup is

Kamailio public IP and Asterisk behind having a private IP.

the problem is with some of trunks and outgoing calls.
As you can imagine the SDP has a local ip address of the asterisk machine. Usually in those cases most trunks just send the replay to the ip address the sdp came from. But some dont and i dont get any RTP. so no audio from trunk.

There are two possible solutions, and i would like some of your input.

First, i setup the rtp range in asterisk, and enter the setting for outgoing media address, then on the public ip i just forward that range to the private address of asterisk.

The other is to proxy outgoing ( to the world ) calls to Kamailio and then have the trunks setup there.

What input are you looking for? Many people do this in Asterisk itself by configuring and port forwarding as you’ve mentioned, so that is certainly a viable approach.

mainly from experience is that ok solution.
i have done that also and it works for now.
for more boxes every asterisk has its own rtp range and the ports are forwarded to different machines.