Getting started with AudioCodes IP Phone Manager Express

This post covers the initial setup of IP Phone Manager Express, an IP phone provisioning and configuration management platform from AudioCodes.

It’s a quick start guide for getting the utility up and running rather than covering the administration of devices. But by the end, you should understand how to install it and automatically provision your first AudioCodes phones.

Phones are Endpoints

Unlike traditional POTS lines, IP phones are endpoints which need to be managed like any other endpoint on an IP network. This includes provisioning, configuration management, monitoring, and security.

Typically IP Phones in the Lync/Skype for Business space do not come with any realistic way of actually managing these devices. DHCP points them to a share and they get their firmware and configuration files. End of story.

This is fine for the initial provisioning of phones, but what happens after the phone is out in the wild? How do you see who is logged into which phone? How can you see which firmware each phone is running (and where firmware updates might have failed)? What about phone models and IP addresses? How do you selectively push out changes to specific phones? What means can the tier 1 helpdesk be given to troubleshoot phone issues?

AudioCodes IP Phone Manager

AudioCodes IP Phone Manager is an attempt to solve this problem. It provides zero-touch and lite-touch provisioning, selective configuration and firmware management, dashboards, and much more. And all of this functionality is provided through an HTML5 web interface.

Before going any further, it’s important to realize there are multiple versions of IP Phone Manager. AudioCodes is one of those companies that realized they can provide free products which will act as a gateway drug to other non-free products. It’s a great way to provide options to consumers, it allows people to test things out before committing to a purchase and also works great for people who love to home lab.

For this post I’ll be going with IP Phone Manager Express, which is the free version of IP Phone Manager. There are huge differences between the products, including the way they are deployed. You can download IPP Manager Express here and also see the differences between Express and Pro.

Some limitations with Express

  • Supports a maximum of 500 registered phones
  • No HA
  • No alarm forwarding
  • No regional templates/configuration
  • No multi-tenancy

Some advantages with Express

  • It’s free!
  • Super easy to setup (10 minutes vs a couple of hours)
  • Not appliance-ish (runs on Windows Server 2012/R2)

Installation

The only pre-requisite for installation is Windows Server 2012 (or R2) and administrative rights. As a test, I did try running it on Server 2016 and it does not work. The installer takes care of all other pre-requisites for you.

First you need to grab the installer from their website.

Then just run the installer. This will install SQL Express and then it uses DISM to install some other features.

install.png

Once the install is finished, go to http://the_server_IP/ipp from a remote server or just http://localhost/ipp if you are on the server.

If connecting via localhost it will automatically log you in. Otherwise the default credentials are Admin, Admin.

login.png

You will first arrive at an empty dashboard.

dashboard.png

At this point, we already have a fully functional server. It even comes with pre-loaded firmware for all AudioCodes phones as well as default configuration templates. You can see the available firmware by going to Phones Configuration->Phone Firmware Files

firmware.png

Now we just need to get our phones to actually check-in to the server.

Adding Phones

There are numerous ways to setup provisioning to suite each organization’s needs. Regardless of which method is chosen, the phones will need to be pointed to the server in some way.

This can be manually by accessing the web interface of the phone and pointing it to the server. Most people use DHCP to enroll the devices.

I’ll be going over the setup of lite-touch provisioning using the ‘static’ method. This will just point all phones, regardless of model, to the IPP Manager’s DHCP configuration file which provides the appropriate configuration path, firmware, and other details.

DHCP Configuration

AudioCodes devices will automatically prioritize DHCP option 160, and fall back to 66/67, and finally a secondary fallback to option 43.

If you have other devices that happen to use Option 160, such as Polycom phones, you will need to take that into consideration. You can do this in a few different ways. One way is to limit the scope of each option 160, meaning some subnets would receive the Polycom provisioning URL and some networks would get the AudioCodes URL. If you are already doing this, then by all means go that route.

Otherwise, a better way is to use a policy based on either user class or based on the vendor identifier portion of the MAC address. This makes sure that only AudioCodes phones will receive the URL to the IPP Manager via option 160.

If you go with this route, each phone model will need its own user class.

For this example, I have 2 different AudioCodes phones. I’ll be creating a separate user class for my 2 phones: the 420HD and 440HD. This way I’m not in danger of any Polycom phones getting the IPP Manager URL rather than their FTP site.

But before I do the DHCP work, I need to grab the URL which I should be pointing them to. You can get this by going to Phone Configuration->System Settings and clicking on DHCP Option Configuration.

chrome_2017-01-30_15-00-11.pngThis will show the “DHCP Options 160 URL”. In my case it is “http://10.0.3.67/firmwarefiles;ipp/dhcpoption160.cfg”

Now I’ll head over to my DHCP server and add option 160, the user classes, and the policy. As usual, I’ll be using PowerShell for this, but the same thing can easily be done via the GUI.

The first step is to define option 160 (not set its value). This step is only required if option 160 does not already exist. You can check if this option exists by running

Get-DhcpServerv4OptionDefinition -OptionId 160

To define option 160

Add-DhcpServerv4OptionDefinition -Name "IPP Provisioning" -Description "IP Phone Provisioning" -OptionId 160 -Type String

To verify that the option was successfully create, run the same Get command as above

option160-check.png

The next step is to add the user class for each phone model. In my case the 420HD and 440HD

Add-DhcpServerv4Class -Name 420HD -Description "AudioCodes 420HD" -Data "420HD" -Type User

Add-DhcpServerv4Class -Name 440HD -Description "AudioCodes 440HD" -Data "440HD" -Type User

And now I’ll be adding a policy for each model. First you need to add the condition of the policy and then separately add the value of the option. For the 420HD condition, I’m saying: if the device identifies as user class 420HD within the scope 10.0.3.0, then it will get this policy.

Add-DhcpServerv4Policy -Name "420HD" -Condition OR -UserClass EQ,"420HD" -Description "AudioCodes 420HD" -ScopeId 10.0.3.0

Great, so a now that model will get a blank policy. To actually make it do something I’ll  need to set the option 160 value for devices which receive this policy. The value will be the URL from earlier

Set-DhcpServerv4OptionValue -OptionId 160 -PolicyName "420HD" -Value "http://10.0.3.67/firmwarefiles;ipp/dhcpoption160.cfg" -ScopeId 10.0.3.0

And now I’ll do both of those steps for the 440HD

Add-DhcpServerv4Policy -Name "440HD" -Condition OR -UserClass EQ,"440HD" -Description "AudioCodes 440HD" -ScopeId 10.0.3.0

Set-DhcpServerv4OptionValue -OptionId 160 -PolicyName "440HD" -Value "http://10.0.3.67" -ScopeId 10.0.3.0

I’ll double check the that the policies were created by running

Get-DhcpServerv4Policy -ScopeId 10.0.3.0

policies.png

And then I’ll double-check the value which was set for the 420HD policy

Get-DhcpServerv4OptionValue -ScopeId 10.0.3.0 -OptionId 160 -UserClass 420HD | select Value

option-value.png

Now if I plug a 420HD or a 440HD into this network and open up Wireshark I’ll see the whole DHCP negotiation process. The phone identifies as a 420HD (the value for option 77 will show this), and because of that will receive the proper URL as part of 160

wireshark.png

As a final note on the DHCP policy, I could have combined the policy rather than creating a discrete policy for each model. I still need the separate user class but I could have cobined them into a single policy like this

Add-DhcpServerv4Policy -Name "AudioCodes Provisioning" -Condition OR -UserClass EQ,420HD,440HD -Description "AudioCodes Provisioning" -ScopeId 10.0.3.0

Final Stretch

When the phones receive a URL for the IPP Manager, they will automatically download and install whatever firmware is set to the default for that model. This happens without approval.

The phones will also show up in the dashboard without approval. After logging in, we’ll now see a single unregistered device without a region. However, we’ll see other information such as the firmware, MAC address, model, and more.

dashboard2.png

Next we will want to approve the phone. But before approving the phone, you should know that the phones will still function without being approved. A user can still use the phone to login to whatever VoIP system it’s connected to and go about their business without any problem.  However, until the device is approved, it will not get its more specific configuration file and it will not dump its configuration file to the IPP Manager.

Alternatively I could upload a file in a certain format which contains the MAC addresses and other information which would allow them to be auto-approved.This allows for non-intervention but does require a lot of up-front work to get all of the MAC addresses imported.

Go to Dashboard->Device Status and click the “Approve” button to approve the phone

dev-status.png

This will bring up the approval form. It’s possible that a user has already been using the phone prior to being approved. If this is the case, the phone will already have an associated username. If not, just add a temporary username (it will get replaced later by whomever logs in).

approval-form.png

The phone will then reboot and download the global configuration file for this model. The configuration file is composed of merged configurations (phone specific, region specific, model specific, and global). The approval will also cause the phone to dump its configuration to the IPP Manager with the name of MACAddress.cfg.

You can see this by going to Phone Configuration->Phone Configuration Files

configs.png

Going back to the dashboard, we’ll now see that the phone has been associated with a region

dash3.png

However, the phone will still show as unregistered until a user logs in.

By going to Dashboard->Device Status, we can now see some of the other actions available. Click on Actions to display the context menu

menu.png

This allows you to push out configuration files, update the firmware, open the web admin to the phone, reboot the phone, and more. It also allows you to send a message to the phone which will display on it’s LCD. This is great for emergency situations.

If you had multiple phones here, you can use the filter box or just select multiple check-boxes to perform multiple changes at once.

Fin

This was just an introduction the the AudioCodes IPP Phone Manager Express. It doesn’t cover building configuration files, firmware management, and a whole lot more. I might cover these items at a later time.

And of course feel free to email me, comment, etc with any questions.

6 thoughts on “Getting started with AudioCodes IP Phone Manager Express

  1. Thank you for your post, very helpful.

    I am currently using the IP Phone Management and have set it up to work with AudioCodes 420HD, 430HD and 450HD.
    However, I have the following questions are:

    1- Is there a way to auto provision the phones without having the user sign in or enter their user name and password? basically, I would like to be able to have the user plug and play, and after the phones boot up, they automatically register with the users Lync or Skype for Business credentials.

    2- Can Polycom phones work with the AudioCodes IP Phone Management ?

    Thank you in advance,

    Chris

    Like

    1. Hey Christian!,

      1. Not really. The credentials need to come from somewhere. If you were going to put them into some form of configuration file to try and provisioning it with those credentials prior to deploying it, then you already have the credentials. You could just sign-in to the phone with those credentials and then give it to the user. Usually people just to PIN authorization which makes sign-in a breeze.

      2. Not really. However, you can do some form of provisining/management with the Polycom Trio 8800. But you cannot manage VVX or CX phones with this.

      Like

  2. Any ideas on where to start for troubleshooting if the phones are pulling firmware/configuration but aren’t registering to the IP Phone Manager Express web portal? I’m a bit perplexed as to why they aren’t coming in.

    Also: Thank you for this amazing blog post. I’m just dipping my feed in this stuff and this post helped a lot with our AudioCodes POC.

    Like

    1. You’re welcome — I’m glad it helped!

      Is there a single phone having this issue or multiple (i’m guessing multiple since you said phones, plural)? I had the same issue with my phone, and running a firmware update on the phone fixed it. I know that’s a very generic suggestion, but I would try it if you haven’t already.

      Also, you didn’t happen to change the default password for the ‘system’ user in IPP Manager did you? Lastly, make sure the firewall isn’t blocking anything. The web interface is over port 80/443 but phones will try to register over 8080 (or 8081) I believe. Check to see if your fw is blocking anything.

      Like

      1. Every phone where the scope option is active (in this case, just one subnet right now). I’ve tried three separate firmware updates, but no luck. I kept the “system” user the same, no password change. I likewise just made a rule for 8080 and 8081 but still no dice. I’ve reached out to a sales/support engineer with AudioCodes as well, I’m hoping they have some additional detail which might help.

        Thanks for the tips!

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s