A really good way to improve the reliability of SIP through NAT is to not use UDP. I personally use SIP over TLS, because it encrypts it, and no form of NAT can mess it up. SIP over TCP can also help since it allows the NATing router to be able to tell for sure when a call has finished.
... View more