No shot against AT&T here, but the reception in my home office sucks. It’s probably just the combination of zombie-proof glass, the custom kevlar/copper mesh in the walls, and the tin foil hat I wear, but I called the carrier about it anyway. They suggested I buy one of those mini cell site jobs for ninety bucks. Instead I spent several times that amount for a new phone because I heard it was capable of Wi-Fi calling i.e. using my internet connection to make and receive calls. Sure enough it seemed it was …
Unfortunately, even after upgrading the network I still experienced warbled voices and dropped calls, meaning pineapple and broccoli pizza showing up at my neighbor’s door. Very bad.
However, all was not lost. With a little network trickery – mostly tinkering with IP addressing and port forwarding – I was able to get consistent Wi-Fi calling. Crystal clear with near zero drops, and my favorite Chinese takeout joint is again accepting my orders. Very good.
Note that the instruction that follow were done using a plain vanilla iPhone 6s and an Airport Extreme, but that doesn’t mean the general premise won’t work with a Samsung Galaxy and old Linksys gear. All is being provided in as layman-esque terms as possible for this reason; technical types providing commentary such as “you didn’t define NAT correctly” will be punished via intentional disregard. Further, everything that follows assumes you have Wi-Fi calling activated. If not, read the instructions here for getting it running.
As basic networking explanations go …
Each time your phone connects to your Wi-Fi, that device hands your phone what is called an IP address. Usually, it does so using a fancy method called Dynamic Host Configuration Protocol, or DHCP. It does so kind of randomly, based on availability within allowed ranges; that address is your phone’s private address. Outside your network, say at your cable modem, there is another IP address, a public address. When your phone makes a request to the internet, like doing a Google search and receiving results, all the search website really sees is that public address. Your Wi-Fi router sits in the middle, doing what’s called network address translation (NAT), checking the request coming in from the public address and routing it to your phone at the private address. Every device connected to your network – laptops, tablets, weather reporting-enabled refrigerators (yea, dumb) – all get the same treatment. In addition, your router likely has a built-in firewall, a software guardian of sorts that [generally] keeps miscreants from directly attacking the computer on your desk.
Firewalls look at traffic on ports, and determine whether to allow or block them. Different software uses different ports, and ports are standardized by internet guru types. For example, your web browser almost always uses port 80; in the case of looking at a secure site (like this one) it would be port 443. Firewalls will allow traffic across those ports without much of a hassle, as long as the traffic jives with the port its coming in on. Wi-Fi calling also uses certain ports, and by letting your router know that you will need these ports open you can greatly enhance your calling experience. There’s a fancy name for this too (go figure … it’s technology): Quality of Service, or QoS for short. It’s a big deal in the telephony realm.
We are going to do some QoS work. By reserving a DHCP IP address – assigning a consistent private IP address to the phone – we give the router a specific address (always!) for translation. Then we open up some specific ports, but only for that private IP address, thereby keeping the rest of the network secure.
Now The Dirt
Step one, open Airport Utility and log into your router. Then select the Network tab. You’ll see this, but with blank boxes where it says DHCP Reservations and Port Settings …
We are going to reserve an address for your phone here. DHCP reservations are based on MAC address, a kind of serial number for the network interfaces of all devices. So we need to get the MAC address for the Wi-Fi antenna of your phone. To do so, select the Settings icon on said phone, then go to General / About. You should see a screen like below:
Write down the six groups of two letter/number combinations, separate by colons, you see next to “Wi-Fi Address”. Example: A1:2B:C3:4D:E5:6F (yes, fake).
Then, go back to Airport Utility, and under DHCP Reservations select the “+” sign. You will get a dropdown like so …
Enter something in the Description box – I used “phone” because it is so damn original – and select “MAC Address” from the Reserve Address By dropdown. Then enter the MAC address you got from your phone into the next box (it should do the colons for you), and finally an IP address anywhere in the “DHCP Range” from the prior screen. For example, my router’s range is set to 10.0.1.2 to 10.0.1.5, a stingy four IP address; I used the first two for my computers, so the next was 10.0.1.4, which gets assigned to my phone. A clue here … notice that only the last number needs changing. When done there hit save.
Next, we are going to “free up” ports to use with that particular IP address you just assigned to your phone. Start by clicking the “+” under Port Settings, and look for this:
Now remember those Wi-Fi calling ports for iPhones I mentioned earlier? They are 500 and 4500, using UDP (User Datagram Protocol i.e. a topic for another time), and the rest for Apple products can be found here). We are going to do the last action twice, once for each of those port numbers. Just fill in like the above image, replacing my IP address assignment with yours, save and then repeat for the next port by clicking the “+” again like below.
At this point you should be set. All you need to do now is save all changes, usually prompted by exiting Airport Utility (or the admin interface of your favorite router) or hitting the/some “Update” button, at which point your router will reset. It is also a good idea to turn off the Wi-Fi on all devices previously connected to your router, and restart your phone; that phone should pick up the IP address you’ve assigned it from here on out, and your calls over Wi-Fi should be substantially improved.
MG signing off (with a “your welcome”)
Editors note: the author has done QoS tuning on numerous IP telephony systems, including small-scale business phones and some very large interactive voice response platforms in call centers. However, your result may vary, ’cause he doesn’t know absolutely everything and that’s just how disclaimers go.