My initial experiments with VoIP were all behind my firewall. Now that I want to have Asterisk interact with the rest of the world, I need to follow the Interop Labs 2006 advice and keep NAT away from VoIP because they don’t mix. I’m redesigning the integration of VoIP into my home network. I’ve moved my Asterisk server on to a DMZ where it now has a routable IP address.
One of my VoIP devices is a Cisco 7912 IP phone. Even if I’m willing to put a fortified (and firewalled) server outside the firewall, I still plan to keep VoIP devices inside. To make the phone aware of the new server address, I went into the phone configuration and changed the SIP server from its old IP address inside the firewall to a DNS name outside the firewall. When the phone restarted, it stubbornly refused to register. By looking at SIP debugging on Asterisk and firewall logs, I could tell that the phone was not sending the initial SIP registration message to the server. Moreover, I could tell it wasn’t even trying to look up the name I had entered for the SIP server. When I replaced the name with the IP address stored in DNS, everything worked just fine. Fortunately, I don’t plan to be changing my server’s address any time soon, so I can live with this small annoyance.