3CX Phone System on a Hyper V virtual instance - Settings required - 3CX
pixel500w-500x1
Zero Admin
With the new Dashboard
pixel500w-500x1
Bulletproof Security
With SSL certs and NGINX
pixel500w-500x1
Install on $150 Appliance
Intel MiniPC architecture
pixel500w-500x1
New, Intuitive Windows Client
More themes, more UC
pixel500w-500x1
More CRM Integrations
Scripting Interface to add your own
pixel500w-500x1
Improved Integrated Web Conferencing
iOS and Android apps included
pixel500w-500x1
Personal Click2Meet URLs

3CX Phone System on a Hyper V virtual instance – Settings required

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

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:

  1. Open a Command Prompt.
  2. Click Start > Type cmd > Press Enter.
  3. Perform an ipconfig.
  1. Type ipconfig /all and press Enter.
  2. 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.
  1. Start Hyper-V Manager.
  2. Right Click Start > Click Control Panel > Double Click Administrative Tools > Click Hyper-V Manager.
  3. In the Virtual Machines section, choose the machine you want to configure, right click on it and choose settings
  4. In the Settings window select the Network Adapter (in the left pane).
  5. In the MAC Address field choose the Static toggle button.
  6. 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
  7. 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

  1. To verify if you have Integrated Services installed perform an ipconfig.
  2. Type ipconfig /all and press Enter.
  3. 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.
  4. 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

  1. Open the Administrative Command prompt Click Start > Click Run > Type CMD
  2. When Administrative Command prompt run “w32tm /query /source”
  3. The Result should be “VM IC Time Synchronization Provider”
    image
  4. If you read “Local CMOS Clock” or a name of an NTP host you need to install integrated services
    image
  5. Refer to the Appendix to find out why keeping the time is an essential part

Installation of integrated services

  1. Open your Virtual machine.
  2. In the Hyper-V Manager right click on the Virtual Machine you want to use and click Connect.
  3. Log into the Virtual Machine with local administrator credentials.
  4. In the Virtual Machine Connection application click on Action Menu and select Insert Integration Services Setup Disk.
  5. Select Install Hyper-V Integration Services in the AutoPlay dialog box and press Enter.
  6. When the installation finishes, you will be prompted to restart the virtual machine. Click OK to restart the machine.
  7. 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

Appendix

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.

Please Note: If the Hyper- V time synchronization Integration Service is disabled, all the time synchronization aspects of the Hyper-V that are time zone aware, will also be disabled. The only thing active will be the initial RTC synchronization which in not time aware.

In relation of VoIP (Audio) 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.

You might also be interested in:


Ask a Question

Please only post questions in regards to the document you are currently reading.
Technical support or pre sales questions must be posted via the support or sales channels and such comments will be deleted. Thank you for understanding

Leave a Reply

  1. Pingback: Creating a Hyper V instance for 3CX in Windows 2008

  2. Brian Mills

    Fantastic, clear instructions! can I check, V14 manual says it has high availability – does this mean that we can set this up withing a Hyper-V cluster and mark the Hyper-V as High Availability?

    Millsey

    July 30, 2015 at 5:15 pm Reply
    • Charalambos Eleftheriou

      @Brian, Thanks for your question. A failover option will be available in the near future.

      July 31, 2015 at 9:55 am
    • Brian Mills

      Thanks for replying, BUT we are currently on physical server with 12.5 – we are planning to move our install to Hyper-V. If we set this Hyper-V within a cluster and as “High Availablilty” then the Hyper-V will automatically be brought up on another host if the host fails. We can do this right now. Even better would be to have two 3CX systems inside a failover cluster, with continuous sync, then the downtime is only the time it takes to determine that the active has failed. Is this the mechanism, or are you building some 3CX specific failover? Sorry to nag about this, btu I am moving our whole system to High Availability – most of the standard stuff I can cluster for rapid return to service, but some apps are standalone and we have to rely on the Hyper-V being brought up on another host.

      July 31, 2015 at 12:48 pm
    • Charalambos Eleftheriou

      @Brian, Thank you for the reply. The failover option in development is for V14 but at the moment and we do not have any specific details to offer you at this time. As soon as we have something to offer you, rest assured we will let you know.
      Thanks again.

      July 31, 2015 at 1:51 pm
  3. William

    Hello,
    I want to know how I can change “Microsoft Virtual Machine Bus Network Adapter” to “Hyper-V network Adapter” . I have install the integration services but I’s already “Microsoft Virtual Machine Bus Network Adapter”

    October 19, 2015 at 5:46 pm Reply
    • Charalambos Eleftheriou

      @William, Thanks for the question. We can not really offer you much in the way of support for this as this is something you will have to check with Microsoft and not us.

      October 19, 2015 at 6:42 pm
  4. Premier Innovisions

    Instructions need to be clarified.

    FROM WITHIN THE HYPERV INSTANCE YOU ARE RUNNING 3CX ON.

    1) Open a Command Prompt.
    2) Click Start > Type cmd > Press Enter.
    3) 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 EXIT THE HYPERV INSTANCE YOU ARE IN to enter this MAC ADDRESS in the Hyper-V Manager AS EXPLAINED IN Step 10.

    If you are not in the HYPERV instance that 3CX is running in ipconfig will just give you the IP address of the Host machine and if you enter that number in HyperV neither machine will be seen on the network since they will be sharing an IP Address.

    February 29, 2016 at 6:36 pm Reply
    • Charalambos Eleftheriou

      @Premier Innovisions. The command is ipconfig/all to also reveal the MAC address not just the IP address. The idea is to use the MAC address not the IP.

      February 29, 2016 at 9:15 pm
  5. Pingback: 3CX License Key Is In Use Already - 3CX - Schweiz

  6. ben hemed

    you have a recommendation about which server do not install on the 3cx (dc, iis, sql etc..)?

    September 7, 2016 at 12:16 pm Reply
  7. darren

    does the server hosting vm need to have an audio card for voicemail features to work.
    i can not hear the please leave message when i call and nothing is recorded in the messages. its just white noise.

    November 18, 2016 at 3:59 am Reply
    • You do not need to have an audio card installed no. But if you get white noise it means 1 of 2 things. Either you have a routing issue and you are sending voice packets somewhere else (not to the server) OR you have a problem with the client side (Audio related issues)

      November 21, 2016 at 12:40 pm
<