Poor Sound Quality

Having issues with your magicJack? Post here, and we'll try to help you out!

Moderators: Bill Smith, Pilot

Post Reply
georgiatech
magicJack Apprentice
Posts: 11
Joined: Wed Aug 27, 2008 6:50 pm

Poor Sound Quality

Post by georgiatech »

I find that the sound quality of the Magic Jack is poor. Skype is much better. I've tried the MJ with two different ISPs. The sound quality is poor with both.
Uncle Spellbinder
MagicJack Newbie
Posts: 7
Joined: Sat Oct 04, 2008 7:46 am

Post by Uncle Spellbinder »

I get great sound, unless the incoming call is from a cell phone. Then it just sounds like a skipping record.
georgiatech
magicJack Apprentice
Posts: 11
Joined: Wed Aug 27, 2008 6:50 pm

Post by georgiatech »

I find that if the sound is acceptable on my end, it's poor on the other end. It still doesn't compare with Skype. Maybe they can still improve on it. It's better than the old MediaRing which had an echo on one end, but still not there.
VanguardLH
MagicJack User
Posts: 38
Joined: Mon Aug 04, 2008 2:06 am

Post by VanguardLH »

Good on your end (receive) sounds like you have plenty of downstream bandwidth for VOIP. Bad on their end (send) sounds like you either have low upstream speed or low available bandwidth to accomodate VOIP. It's possible Skype does better compresion than Ymax. Have you visited a speed test site to check your downstream and upstream speeds, like at http://www.speedtest.net? Are you using wireless connects to the cable modem from your host or are you wired between your host and the [router and then to the] cable modem?
georgiatech
magicJack Apprentice
Posts: 11
Joined: Wed Aug 27, 2008 6:50 pm

Post by georgiatech »

Speedtest.net tells me that my download speed is 2580 kb/s and upload speed is 781 kb/s. My computer connects to my Telus ADSL modem/router (2Wire) wirelessly. Would this upload speed cause the poor sound quality on the other end of the Magic Jack?
Thunder
Dan isn't smart enough to hire me
Posts: 156
Joined: Sun Apr 27, 2008 5:36 pm
Location: Chicago, IL

Post by Thunder »

Try hooking it up directly and see if anything improves. Wireless may have some type of interference depending on what kind of phone you are using.
Panasonic TX-TG6533
Magic Jack user since 5/02/08
Magic Jack 2014
Comcast
georgiatech
magicJack Apprentice
Posts: 11
Joined: Wed Aug 27, 2008 6:50 pm

Post by georgiatech »

Thanks for the suggestion. I'll give it a try.
az2008
MagicJack Sensei
Posts: 1404
Joined: Wed Aug 20, 2008 12:57 pm
Location: Tempe, AZ

Post by az2008 »

georgiatech wrote:Would this upload speed cause the poor sound quality on the other end of the Magic Jack?
To some extent, yes. I have 256 kbs up. It didn't take much other activity to destroy the sound quality on the other end (tested by calling the echo phone number: 909-390-0003 and doing a speedtest.net test while counting from 1 to 10).

I made a big difference by flashing my Linksys WRT54GL with Tomato (freeware firmware) and enabling QoS for MJ. But, I still get some drop outs when counting from 1 to 10.

I get the impression MJ may have oversold its capacity. I called my number today using a cell phone to check my voice mail. The automated voice prompts were very choppy and slowed down (like a computerized voice on a system that's undergoing a full backup or something).

Mark
VanguardLH
MagicJack User
Posts: 38
Joined: Mon Aug 04, 2008 2:06 am

Post by VanguardLH »

Also check if your router includes QoS (Quality of Service) options. In my Linksys router, I upped priority for ports 5060 and 5070. Of course, QoS in the router only applies if more than one host is connected to the router. I'm presuming that your software firewall on your host already has rules defined for magicjack processes. All security software (firewall, HIPS, anti-malware, anti-virus, etc.) incur an impact on responsiveness of a host and also on network speed so see what happens when you temporarily disable all of it (to allow unfettered network access). You'll still be protected from outside intruders by the firewall in your router.

The upstream bandwidth seems high enough but what is important is the available bandwidth at the time you are making phone calls. Apps could be auto-updating, Automatic Update in Windows might be trying to connect, your e-mail client might be polling several accounts, you might be running a P2P endpoint (Tor, eMule, etc.) and someone is currently yanking a file or portion of it that resides on your host. If you use a firewall that shows current connection status then check if there are other processes generating outbound traffic when you are making a VOIP call. Routers often provide a log function that you can review to see what connections were established at what time, so you could check if something more than ports 5060 and 5070 had traffic at the time of your call. WallWatcher works with many routers to present a better view of the router's log. Some firewall provide good analysis of connections and traffic or you might use a packet sniffer, like SmartSniff or Wireshark. The max upstream speed is less important than the available bandwidth at the time you make a call.

You mention using wireless nodes in your network. If you have a CAT5 cable, see what happens when you use a wired connection from your host to the router (I'm presuming the router already has a wired connection to the broadband modem if not using an integrated router+modem).

Check what other processes are running when you make a call. Although they may not be generating network traffic to consume a portion of the available bandwidth, they can impact usability of the host if, say, they generated a ton of disk activity when you're trying to call. They could flood the data bus. Besides CPU usage in Task Manager, add columns for read and write I/O (in bytes). See if anything spikes the CPU usage during the call and/or spikes disk I/O at that time.

Some broadband modems let you see their status page to see their signal levels. Some don't (usually because the ISP doesn't want you seeing or altering those values). You could call your ISP to have them check line level quality. You might want to also ask them to measure what is the effective electrical distance from their hub to your broadband router. You might be near the end of the maximum length to which they can support aDSL. While your ISP can measure signal strength at your broadband modem, they can't measure packet loss. Run "ping -n 25 <somehost>" to see how much, if any, packet loss you are suffering. If their web site is unpingable, use something like www.yahoo.com.
az2008
MagicJack Sensei
Posts: 1404
Joined: Wed Aug 20, 2008 12:57 pm
Location: Tempe, AZ

Post by az2008 »

VanguardLH wrote:In my Linksys router, I upped priority for ports 5060 and 5070.
From what little I know, that's only a control connection created when MJ is plugged in/started. When a call is placed/received, the real traffic occurs on a port between 10000 and 20000. When I played with QoS, I couldn't detect a noticeable difference (while doing a speedtest.net test) until I made ports 10000 to 20000 high priority. (I actually made the IP address that the port was opened to a high priority because I didn't like the idea of giving high priority to 10k ports).
VanguardLH wrote: QoS in the router only applies if more than one host is connected to the router.
That's not true. It makes a difference if only one computer is connected to the router, and multiple activities are occurring on that computer. This is easily verified by calling the echo phone number (909-390-0003) and counting from 1 to 10 while doing a speetest.net test. (This is how I found that putting priority on ports 5060 to 5070 didn't do anything. It didn't make a difference until I gave priority to the activity occurring on a port between 10000 and 20000 when the call actually occurs.).

Mark
georgiatech
magicJack Apprentice
Posts: 11
Joined: Wed Aug 27, 2008 6:50 pm

Post by georgiatech »

This is great information. I have a lot to check out. I'm familiar with Tomato because I use it in two Linksys 54WRTs. But I'm not using a Linksys with the 2Wire modem because it is an integrated modem/wireless router. I was also thinking about QOS to improve the sound quality of the MJ, but I'll read carefully what everyone has written and see if I should check that out.
az2008
MagicJack Sensei
Posts: 1404
Joined: Wed Aug 20, 2008 12:57 pm
Location: Tempe, AZ

Post by az2008 »

georgiatech wrote:I'm familiar with Tomato
Tomato made it easy to see the activity on a port between 10000 and 20000. It has a good graphic representation of the traffic, and the QoS priority it falls into. I wouldn't have known about the 10000-20000 port without it. I probably wouldn't have used WireShark. If I did, I'm not sure I would have put the pieces together to see that port.

Mark
VanguardLH
MagicJack User
Posts: 38
Joined: Mon Aug 04, 2008 2:06 am

Post by VanguardLH »

Using WallWatcher to gather and analyze the log from my Linksys router, I see port 5070 getting used to initiate the call and then a port in the 16xxx range to handle the voice traffic. This test was just for half a dozen calls made within a half hour interim to test which ports got used.
az2008
MagicJack Sensei
Posts: 1404
Joined: Wed Aug 20, 2008 12:57 pm
Location: Tempe, AZ

Post by az2008 »

VanguardLH wrote:Using WallWatcher to gather and analyze the log from my Linksys router, I see port 5070 getting used to initiate the call and then a port in the 16xxx range to handle the voice traffic. This test was just for half a dozen calls made within a half hour interim to test which ports got used.
Thanks. That's what I saw too. I've seen people refer to UDP ports 5060 to 5070. But, I only saw 5070 being used. And then I've rarely seen it mentioned that a random UDP port between 10000 to 20000 is used.

I think that pretty much makes QoS unusable because it can't be a good idea to make all those ports high priority. Surely something else will use a port within that block.

It seemed like the connection that's opened in that block goes to a hostname vms1. (I.e., find the proxy hostname used when MJ starts, and replace proxy1 with vms1. That seemed to be the pattern.). So, I gave priority to any port going to the IP address of that (vms1) hostname. I guess I could have restricted it to UDP ports 10000 - 20000 too.

There's a lot of risk in this because if MJ changes the IP address of that (vms1) host (or I get connected to a different city's proxy, and presumably that city's vms1 host), my MJ activity will fall to the default "lowest" priority. If someone thinks they're having trouble without QoS, they ought to see what it's like when it gets the lowest priority. :D

So. Unless I'm missing something, I don't think this is for everyone. They'd have to continuously be aware of the IP address they hardcoded in their router. If their service deteriorates, they'd have to investigate if the IP address changed. Maybe the alternative is to give priority to those 10k ports and just live with the possibility of something else using a port in that range, and competing with it for high priority. I chose to live with the hardcoded IP address. I'm sure it's a matter of when, not if I regret that choice.

Mark
VanguardLH
MagicJack User
Posts: 38
Joined: Mon Aug 04, 2008 2:06 am

Post by VanguardLH »

That's how socket connects work. You connect to a host on its listening port, like 5070, but both ends negotiate to use a different port (a higher one) so that listening port can disconnect from you and then listen for the next connect request. So you see the initial connect on 5070 but then both ends move to a higher port to continue the session. If both ends continued using port 5070, no one else could connect to the service during your session.

I only established priority for ports 5060 and 5070 to start the handshaking. I don't establish priority for unknown sockets that may be within some range in the future when the handshaking has to move the session to a different set of ports. If I'm making a call, I'm not active in a web browser or downloading files. Those would obviously be self-defeating to good call quality plus I'm focused on the call. There are other hosts connected to my router and I can't control what traffic they generate but I can give priority to the initial connect ports. If I was the only one on the router, I'd probably give high priority to whatever range of higher numbered session ports that I noticed magicJack used. That's because I could simply suspend my other networking activities during a call. However, my router is shared. magicJack is a choice for me but not by other users of that router, so I can't be throttling their network activity just because I have a VOIP call. High priority on the initial connect ports incurs insignificant impact on any shared user. My router doesn't let me grant higher priority to a range of ports, anyway. It does let me grant high priority to my host (by the plug-in port on the router or by MAC) but, again, other users sharing that router would get pissed at me for throttling their traffic during my VOIP calls.

Giving higher priority might help but if there is sufficient other traffic generated by other ports then they will still compete. Higher priority doesn't mean other traffic gets completely locked out. In my router, I can only choose High or Low priority for a port. Everything else not regulated is Medium priority. There is no choice for realtime priority that would lock out all other traffic.
Post Reply