Installing 3CX Phone System on a HyperV VM
When running Microsoft Hyper-V, it is important to have the following configured on your virtual server for optimal performance.
- Static MAC Address
- Reliable and accurate time source
- Integrated Services installed
- Broadcom NetXtreme 1-Gigabit
- Time Sync
Configuring a static MAC address
It is very important for the licensing that the MAC address of the host is a constant value beside it’s internal IP address. In order to set the MAC address of the VM running in a Hyper-V perform:
- Open a Command Prompt.
- Click Start > Type cmd > Press Enter.
- Perform an ipconfig.
- Type ipconfig /all and press Enter.
- Note down the value in the Physical Address field marked as xx-xx-xx-xx-xx-xx. You will need to enter this in the Hyper-V Manager in Step 10.
- Start Hyper-V Manager.
- Right Click Start > Click Control Panel > Double Click Administrative Tools > Click Hyper-V Manager.
- In the Virtual Machines section, choose the machine you want to configure, right click on it and choose settings
- In the Settings window select the Network Adapter (in the left pane).
- In the MAC Address field choose the Static toggle button.
- Set each of the fields to the values you got in the command prompt in step 4. Please do enter the MAC of the host where XX is used here as space holders
- Click Apply / OK.
Verifying Integrated Services are installed, and install if necessary
The integrated services solve some issues related to NTP and performance of the network card adapters.
Check if network drivers are installed
- To verify if you have Integrated Services installed perform an ipconfig.
- Type ipconfig /all and press Enter.
- If the result of the ipconfig shows your Network Adapter as “Microsoft Virtual Machine Bus Network Adapter”, you will need to install the Integration Services.
- If the result of the ipconfig shows your Network Adapter as “Hyper-V network Adapter”, you already have Integration Services installed.
Check if NTP source is set to the Hyper V server
- Open the Administrative Command prompt Click Start > Click Run > Type CMD
- When Administrative Command prompt run “w32tm /query /source”
- The Result should be “VM IC Time Synchronization Provider”
- If you read “Local CMOS Clock” or a name of an NTP host you need to install integrated services
- Refer to the Appendix to find out why keeping the time is an essential part
Installation of integrated services
- Open your Virtual machine.
- In the Hyper-V Manager right click on the Virtual Machine you want to use and click Connect.
- Log into the Virtual Machine with local administrator credentials.
- In the Virtual Machine Connection application click on Action Menu and select Insert Integration Services Setup Disk.
- Select Install Hyper-V Integration Services in the AutoPlay dialog box and press Enter.
- When the installation finishes, you will be prompted to restart the virtual machine. Click OK to restart the machine.
- Validate after the reboot if the network adapter and the ntp source are set correctly.
Broadcom NetXtreme 1-Gigabit
If your HyperV server uses the above defined network adapters the driver must be updated to the latest version and/or VMq needs to be disabled for those. More Information can be found here: https://support.microsoft.com/en-us/kb/2986895
In relation of VoIP transmission it is very important to keep track of the time and get the best possible information about time as audio needs to be fragmented into packages of exactly 20ms. If the time on the host is not accurate the audio will become jittery or extension unregister prematurely. Microsoft recommends to disable build in Hyper-V time sync for for VMs and place the time adjustment into the guest OS it self using NTP for a stable time result.
Microsoft statements regarding time synchronization:
When the virtual machine boots, it receives it’s time signal from the host machine’s RTC (Hardware based Real Time Clock), and uses its own internal routines to calculate how much time has passed. Depending on the load of the virtual machine, the time can sometimes lose synchronisation. Also once a virtual machine is restored from a saved state, the memory and status of the guest operating system is replaced. Both memory and state is altered with the same snapshot that was initially created. At this stage, we are reporting the correct time within the system’s RTC, even though the operating system is unable to detect the changes that took effect. Instead, it proceeds with its own internally calculated time. To attend to this matter, the Hyper-V Synchronization Integration Service is able to detect whenever it has reverted back from a saved state and thus applies the correct time.
This process is done by issuing a time change request through the normal user mode Interface provided by Windows. Moreover, this process adjusts the time zone difference between the management operating system and the guest operating system.