Identifying/Changing Your MagicJack Proxy to fix call quality problems
MagicJack is selling like hotcakes all around the country. This is great for the parent company, but can present challenges for the consumers that purchase the device, particularly if you live in one of their crowded markets (i.e. for me in Atlanta). I’ve been working on several tips and tricks to optimize MagicJack and fix some common problems, and this one solves the issue mentioned above. After experiencing some pops and cracks in my calls, I started wondering if maybe the MagicJack server was slightly overloaded, and if so, was there a way to change the server. After scouring through every program option, I realized that there wasn’t a way to specify a different server from within the MagicJack application, but having a good understanding of networking, I was sure I could find some tricks.
After experimentation, I found that if a MagicJack server wasn’t available, it automatically routed to the next available server, so in my case, if the Atlanta server was down for some reason, I would be automatically routed to the next closest server, or Memphis, TN. To make MagicJack think that Atlanta was down, I created a fake route on my computer that pointed to a non-existent server, and once MagicJack determined it couldn’t connect to Atlanta, as expected, I was routed to Memphis. I jumped out of excitement upon realizing that the quality was now PERFECT. There were no more pops or cracks, and none of my call recipients were complaining of static. This tip to optimize MagicJack and fix some common problems is the one I needed to throw away my home phone bill. Just a warning, these next few steps are pretty technical, so please be careful, or ask a techie friend to help you out!
Find your proxy to fix common MagicJack problems
To effectively optimize MagicJack and fix call quality problems, you need to first identify the proxy server that you are using. The steps below outline how to identify the proxy and vms servers that MagicJack is currently using to complete calls:
Step 1) Download the application pmdump from http://www.ntsecurity.nu/toolbox/pmdump/ – pmdump lets you dump the memory from a particular process; this is how we will get the proxy server
Step 2) Start MagicJack
Step 3) Identify MagicJack’s process ID (PID)
a) Open a command prompt (start->run->cmd).
b) Execute pmdump -list
c) Find “magicjack.exe” in the output. Note the number associated with it (usually 3 to 4 digits).
Step 4) Make at least one call
Step 5) Using the command prompt and PID as described above, execute: pmdump [pid] magicjack.txt
Step 6) Open magicjack.txt using a text editor and search for the string: s=ENSResip
For example, if you connect to the Atlanta proxy, you should see:
o=- 390440284 390440284 IN IP4 18.104.22.168
c=IN IP4 22.214.171.124
Note the IP addresses for both the proxy and the vms servers (126.96.36.199 for proxy and 188.8.131.52 for vms).
So you’ve found your proxy, now it is time to change it
Windows has a great built in function for establishing “routes” for servers. As I mentioned earlier in the article, the next trick to optimize MagicJack and fix call quality problems is making MagicJack think that the Atlanta server is down, so it will default to the next available server. Using the “route” command, you can set the Atlanta proxy and vms servers to a non-existent IP address on your local network (if your computer is 192.168.1.2, you could use anything in that range, so 192.168.1.39). To do this, run the following command from the command prompt:
route add [ip of proxy] mask 255.255.255.255 192.168.1.39 -p
route add [ip of vms] mask 255.255.255.255 192.168.1.39 -p
The command above will tell your computer that the MagicJack proxy server is actually at 192.168.1.39, which is a bad address, so MagicJack will try the next available, and hopefully less busy, server. The -p option tells your computer to keep the route persistent, or remember it after a reboot. If you want to use a specific proxy server (i.e. you decide that the Austin, Texas server is the absolute best), you basically repeat the process above, but block EVERY proxy server, except for the one you want to use.