Let me begin by saying that this article is not so much a “how-to” as a “how I did” post. I don’t claim that this is the only way, nor even the best way, to optimize magicJack’s performance. It’s just the way that works best for me. This post is based on a magicJack GO connected to the Ethernet port of a router running DD-WRT firmware.
If you don’t know what magicJack is, it’s an extremely low-cost, self-contained, VoIP (Voice over Internet Protocol) adapter that, when properly configured over a decent broadband Internet connection, usually provides acceptable-quality voice telephone service.
I’ve been using magicJack for years as a “land-line” number to give to people and businesses who demand a phone number, but to whom I don’t want to give my mobile phone number. Chief among these are banks, retailers who want my number for their loyalty card and rewards programs, government agencies, and others by whom I don’t care to be bothered. Giving them only the magicJack number allows me to limit the people who have my cell number to family members and a few close friends and trusted business associates.
magicJack’s call quality has improved steadily since the first one I bought, but it’s still not as clear as an old-school copper POTS line. But neither is any other VoIP connection I’ve ever used. Some are better than others, but they also cost much more than magicJack does. For my purposes, magicJack works well enough — especially with my Internet router configured to prioritize the traffic to the magicJack adapter.
At this point, one might wonder why I care about the voice quality on a phone number that I give mainly to people and organizations that I don’t want to talk to. The reason is that occasionally I have to call those people and organizations, and I don’t want them to have any number other then the magicJack number showing up on their Caller ID or ANI screens. So it’s important that it work reasonably well for those occasions when I initiate the call.
Configuring DD-WRT for Optimal magicJack Performance
Just to be clear, magicJack adapters almost always work simply by plugging them in and activating them. But the quality can be less-than-wonderful unless you prioritize the adapter’s traffic in the router.
I also should mention that it’s perfectly fine to use a magicJack as a primary phone number for people you actually do want to talk to. In that case, it’s even more important that your router be configured to prioritize the magicJack’s traffic.
The router I use is a Linksys WRT AC3200 ACM on which I installed the DD-WRT router firmware, and that’s the router and firmware this article is based on. Some of the settings may be available on other router firmware, but I make no promises. Please note that these steps apply to a magicJack connected to a router with an Ethernet cable, not one connected to a computer via the USB port.
Here are the steps I used to configure my router running DD-WRT for the best possible magicJack performance.
1. Find the magicJack’s MAC Address
The easiest way to find the magicJack’s MAC address when using DD-WRT is to log in to the router, click the “Status” tab, and then click the “LAN” tab under status. Look for the device with a MAC Address starting with 6C:33:A9. That device is your magicJack. Copy the whole number down, not just the 6C:33:A9 part.
In other routers, look for a section labeled “Active Clients,” “Client Table,” “DHCP Clients,” or something along those lines. When you start seeing MAC addresses, you’re probably in the right place.
2. Determine Your Baseline Upload and Download Speeds
With as little running on your computer and any other devices on the network as possible, do a speed test using a site like Open Speed Test. I suggest you do this several times over the course of a few days, and consider the averages to be your baseline upload and download speeds. If your measured speeds are higher than your provisioned speeds (the speeds you’re paying for), however, then use your provisioned speeds rather than your actual speeds as your baseline values.
3. Configure QOS
While in the DD-WRT interface, click the “NAT / QOS” tab on top, and then the “QOS” tab under it. Here are the settings that seem to work best for me.
Start QOS: Enable.
Packet Scheduler: HTB
Queuing Discipline: FQ_CODEL
Downlink (kbps): 90 percent of your baseline download speed
Uplink (kbps): 90 percent of your baseline upload speed
Note that you must enter the speeds in kbps. If you need a bandwidth convertor, this one is about as good as any.
Assuming that you have no other special network needs that require that other packets be prioritized, I suggest you only check “ACK” in this section. ACK is short for “Acknowledge,” and at the risk of grossly over-simplifying, VoIP traffic uses a lot of ACKs. Prioritizing ACK helps solve the common problem of choppy sound when using magicJack (and many other VOiP services).
If you still get choppy sound after doing everything on this page, try checking both “ACK” and “SYN” in this section. Then save and apply the settings, and reboot both the router and the magicJack.
Look for “sip [ 0 ~ 0 ]” in the dropdown list, click “Add,” and assign it a priority of “Premium.” SIP stands for “Session Initiation Protocol” and is the protocol that magicJack and most other VOiP providers use.
In theory, setting the MAC priority shouldn’t be necessary if you have SIP prioritized. But I’ve found that it often helps with magicJack devices. Next to the “Add” button enter your magicJack’s MAC address, then click “Add” and assign it a priority of “Premium.” If you have more then one VoIP adapter, you can add them the same way.
Finally, click “Save” and “Apply Settings,” and make sure that all your settings have been saved.
Theoretically you should be done at this point, but I’ve found it’s often necessary to restart both the magicJack and the router for these changes to take effect. Just unplug the magicJack’s power adapter and let it sit for a few seconds, unplug the router and wait for a few seconds, plug the magicJack in again and wait for it’s lights to come on, and plug the router in again. After it boots up, go back to the QOS page in the router interface and make sure all the settings were saved.