Replace STUN with Traversal{Client,Server}. The key difference is that the server sends a packet to the client (to be dropped) before the client tries to send to the server. This allows it to work in various situations where pure STUN doesn't.