Understood. I went through this a while back.
As long as you're willing to bind to two different SIP ports (i.e. different SIP port on your internal signalling), this is the solution:
listen=udp:private.ip:5060 advertise public.ip:5060 listen=udp:private.ip:5080
Combine with enable_double_rr, shake well, et voila! :-)
-- Alex
-- Principal, Evariste Systems LLC (www.evaristesys.com)
Sent from my Google Nexus.