Now that I understand why my Droid phone is using a panic-inducing IP address, I decided to try my hand again at getting the SIPdroid app to work with my home phone system.
My first try was to set my firewall rules to allow traffic from 28.x.x.x. The problem with this is that since the 28.x.x.x addresses aren’t advertised (and thus routable), my home server can get packets from them all day, but can’t send anything back. My ISPs routers don’t know what to do with them.
The task then was to get my phone to stop sending SIP packets with this bogus IP address in them. In the VoIP world, this is done through the use of a STUN server. A STUN server provides a way for a SIP client to determine its real, public IP address: the client connects to an outside STUN server and the server returns the IP from which it got the request. There are plenty of STUN servers out there and SIPdroid comes configured to use Ekiga’s by default. I turned it on and eagerly waited to see my packets finally reach their destination.
Only … they didn’t. With the help of the STUN server the SIP packets now included the correct IP address but the packets still weren’t passing back through Sprint’s firewall. Now I’m wondering whether Sprint is filtering SIP traffic bound for phones or there’s some other technical issue I haven’t yet solved.
I’ll dig more into this tomorrow.