Two sip users behind nat

Hi,

I have two sip softphones (x-lite) behind one nat and Asterisk on a public address.
The only way they can have voice call is to set nat=yes, and directmedia=no that means asterisk remains in media path.
Is it possible for Asterisk to detect that these two sip phones are behind the same nat address and pass their corresponding private addresses to them so that they communicate directly without having asterisk in between? This way the phones can send/receive media totally in the private internal network.

Thanks

localnet parameter in [general] of sip.conf