I have my Asterisk box behind a NAT and unfortunaltelly my SIP phone is also behind a NAT. I know this question have been discussed a lot …
Here is a solution :
I installed OpenVPN server on the Asterisk box
I installed OpenVPN on the windows client
I configured all this and … it works perfectly through the VPN.
OpenVPN is quite straightforward to install (just generate some certifcates and keys and change one config file on both sides !)
It need only one port to be open in the firewall.