Is there any way to get directmedia to work behind NAT?

I think I understand the problem. Just wondering if there is a solution.

EXT > NAT > Asterisk > SIP TRUNK

So ext on private IP behind NAT, Asterisk on public IP no NAT, SIP Trunk on public IP no NAT. I want the RTP traffic to go directly between the SIP trunk and the extension.

If I understand this correctly, it does not work because the extension SDP protocol reports the private IP and private port which asterisk forwards to the SIP trunk. My thinking is that if Asterisk was able to mangle the SDP when it sees a private IP and report the correct information it could work. The same way Asterisk determines IP and port with nat=force_rport,comedia.

There is a Kamailio mangler module that can do this. Wondering if there have been any discussions of including something like that in Asterisk.