Poor call quality / packet loss / jitter on HyperV machine


I recently installed Freepbx v2.11.0.25 on a HyperV Machine running asterisk 11.8.1. All phones and Asterisk VM are connected on a very small office LAN. I am having call quality issues with the majority of our calls. When we dial out the ring tone is even choppy (chops each continuous ring tone into three). I’ve adjusted all jitterbuffer settings to no avail (and tried without it). This problem occurs at all times and we are not even touching the available bandwidth from our ISP. I started looking for packetloss and all ping tests and tracert commands to our IAX provider’s server look fine. Essentially no TCP packet loss (I know this really is not an indicator of UDP packet loss). When I examine our IAX2 trunk during an active call I get the following results:

localhost*CLI> iax2 show netstats

                       -------- LOCAL --------------

Channel RTT Jit Del Lost % Drop 000 Kpkts
IAX2/trunk-2275 54 0 40 0 0 0 0 0
IAX2/iax-myname-trunk 1219 148 194 149 38 158 5 0
IAX2/trunk-5139 54 149 195 300 39 304 13 0
3 active IAX channels

      -------- REMOTE -------------      
      Jit Del Lost % Drop 000 Kpkts  FirstMsg   LastMsg
        0  40    0 0    0   0     0  Tx:NEW     RX:ACK
        0  40    0 0    0   0     0  Rx:NEW     TX:ACK
        0  40    0 0    0   0     0  Tx:NEW     RX:ACK

Could there be a problem passing UDP traffic on my HyperV machine’s virtual NIC? Please assume I know nothing, as I am a complete idiot when it comes to Asterisk and VOIP technology in general. Any help or thoughts would be greatly appreciated.


I would guess your issue is timing, IO load or both.

Make sure your VM is set as a Linux box.
Make sure you have adequate resources.
Remember your system has to run it self as well as your VM.

Ok I too believe it is a timing issue. Can you point me in the direction of some examples on how to resolve this? My host machine is running Windows Server 2012 R2, Linux integration services should be installed already. HyperV integration services should also be pre packaged with Centos 6. Under HyperV integration services I have time synchronization set to “off”.

thanks for the help

I don’t know if you have solved this or not.

But I had the same issue, and after much research and trouble shooting.

I found I had to disable “virtual Machine Queueing” on the network adapters.

once I did that network performance increase 10 fold .