Auto Provisioning Avaya IP Phones

I’ve been incredibly busy the past three months designing a new secondary Data Center while also designing a new Computer Room for a physical move of our office. With our office move we’ll be getting all new Avaya 1120e IP Phones, about 140 of them, along with a new CS1000E. In previous large scale IP phone deployments we had to “stage” the IP phones by manually configuring them and upgrading them to a version of software that supported LLDP-MED. Thankfully the IP phones now come with a version of software that supports LLDP-MED as well as Avaya’s zero touch provisioning which is going to save us a lot of time and effort.

I tested the process Friday and it worked as advertised. Here’s how I set everything up… please bare in mind there are many many ways to set this up so the following example is just how I decided to set everything up.

Avaya Ethernet Routing Switch 5520s

I configured the edge/closet Avaya Ethernet Routing Switch 5520s running software release 6.2.4 exactly as I’ve previously documented in this blog post. We’ll be using ADAC/LLDP-MED to assign the IP Phones a voice VLAN and to set the proper QoS tags.

DHCP – Infoblox

With that done I turned my efforts toward DHCP. I created a DHCP range in the voice VLAN with two special settings. I created a filter on the IP range to check for the DHCP vendor option “Nortel-i2004-A”. This will help make sure that only IP phones are provided an IP address from this DHCP range. Next I added DHCP option 244 with the following value,


That’s all I did for the DHCP component, the magic comes in the next step.


In my example I used a CentOS Linux server at which had Apache running with a directory structure of /var/www/html/avaya/sitea. In that folder I had the following files; system.prv and sitea.prv (this file was actually blank). You can deploy the provisioning files via HTTP or TFTP. You can utilize Microsoft’s IIS or whichever web server you’re more comfortable with. Please refer to the references listed at the end of this document for additional steps to get IIS to recognize the .prv files

Here’s what I put in the system.prv file;


I chose to configure the Avaya IP Phones around a geographic basis. Within each location all the IP phones are configured identically but the settings can vary from location to location depending on the model and on the actual CS1000E for that site. I chose to break them down using different directories and then set DHCP option 244 to the appropriate directory for that site. In one voice VLAN the DHCP server might return “Nortel-i2004-B,prov=;” but in another voice VLAN the server might return “Nortel-i2004-B,prov=;” Utilizing the different directories allows me an easy way to control the different settings per geographic location. It also makes troubleshooting much easier and straightforward.


With everything setup I preceded to test my configuration. I unboxed a new Avaya 1120e IP phone and connected it to Avaya Ethernet Routing Switch 5520. The IP phone powered up and appeared to pull a DHCP address from the voice VLAN – I believe the factory configuration now has LLDP-MED enabled by default, that’s the only way the Avaya IP phone would have gotten a DHCP address from the voice VLAN. I purposely didn’t create any DHCP ranges in the data VLAN just to see how the Avaya IP phone would react. With an IP address the IP phone read the DHCP option 224 and proceed to download system.prv, sitea.prv and 00AABBCCDDEE.prv (the MAC address of the actual IP phone). After reading the provisioning files the IP phone rebooted itself and eventually came back up to a NODE and TN prompt which was expected. Once the technician entered the NODE and TN the IP phone upgraded itself to the version of software that we had loaded on the CS1000E. It rebooted again and came right up without any additional intervention.

You can eliminate technician needing to enter the NODE and TN information by creating REG entries with the MAC address of the IP phone and the NODE and TN information in the provisioning files – you can find additional information regarding the REG entries in the references below. Since this is a greenfield installation I thought it would be more work to actual document the MAC address of each IP phone than it would be if the technicians just went cube to cube configuring the proper NODE and TN information for each user.



Avaya IP Phone Fundamentals for Communication Server 1000
Avaya IP Telephony Deployment Technical Configuration Guide

Comments on this entry are closed.

  • Telecom116 July 8, 2012, 3:15 pm

    You might rethink doing the Node/TN deployment using the REG entries; it saved us much time during our mass phone deployment. We had eight different buildings and 100+ phones to distribute. This reduced the deployment time of having to wait for the phone to boot to enter Node/TN information.

    Our tech used a USB barcode reader to read the MAC address off the phone boxes into a spreadsheet, then associated the TN she assigned in the CS1000E and labeled the box with the office/location information. I wrote an Excel formula to build the REG information line, which I put into a text file for the Provisioning server.

    • Michael McNamara July 8, 2012, 3:51 pm

      Thanks for the comment.

      As you know there are pros and cons, never tried using a barcode scanner to read the MAC address – very interesting idea.

      In this deployment we’ll probably need to three visits to each location. The first will be to place the IP phone, unbox it, assemble it and connect it to the network. The second trip will be to enter the NODE and TN information, and the last will be to verify that every desk/cube has the correct DN and has dialtone.

      That’s a HUGE improvement over previous deployments where we spent days with 4-5 people manually configuring and upgrading each IP phone separately. The packaging has even been improved. When I unboxed the Avaya IP phone I only had to extend the base of the phone and then connect the handset to the cord, everything else was already assembled.

      We could collect the MAC addresses ahead of time but then we’d need to make sure that each IP phone was delivered and installed into a specific location. With this approach we just need an IP phone on every desk, it doesn’t have to be the one with MAC address AA:BB:CC:DD:EE:FF.

      As I mentioned there are pros and cons, this seems like a much simpler approach in the short term, and it’s a task I can assign to lower tiered resources. I can see how the use of the REG entries would benefit in the long term, just don’t have the resources right now to organize that effort. :(


      • Michael H July 30, 2012, 10:48 am

        I’ve used a cheap bluetooth scanner for inventory in my department, and we just scan every barcode on the back of the device as well as our own internal tracking barcode.

        • Michael McNamara July 30, 2012, 8:53 pm

          Hi Michael,

          Do you put that information into Excel or some asset tracking solution?

          Thanks for the comment!

  • Jake Koch July 13, 2012, 1:41 am

    Hi Mike,

    Thanks so much for this blog, I have used a few times and its has always helped… much better than the complicated Avaya docs.

    I have spent the last few days messing with Automatic provisioning using TFTP on a BCM450 R6 system. All of the Automatic provisioning using TFTP info that I can find is in the ‘IP Phones Fundamentals Nortel Communication Server 1000’ docs… Do you know of any other docs that deal with auto provisioning?

    My real question is how do you set the voice vlan ID in the .prv file… I can find no option for this and have even tried to guess at what it would be called. Since PC vlan ID opt is DVID=#, I tried VVID=# and VVsource=# (instead of specify source, DHCP, LLDP or Auto, which I dont understand how auto could work) … there is an option in the doc at the top of page 505 but the config option is blank.

    link to avaya doc

    Anyway have you ever been able to set the the voice vlan ID In 1100 series phone with a .prv file? or does voice vlan have to be set manual, with DHCP string or with LLDP ?

    BCM450 R6 with lates SU, 1140Es with latest firmware.

    And, a side question (as if this post was not long enough) I read somewhere on this site, in one of the replies, that some1 was able to TFTP auto config to a 2004 set, is that true?

    thanks again, your good at what you do,

  • Jake Koch July 30, 2012, 11:21 pm

    Thanks for the reply Michael,

    After I posted my question, I kept looking and found the answer… I was on my way back here to post it but you had already gotten to it.

    I have another question related to auto provisioning of Nortel/Avaya IP phones. Is it possible to remotely change an IP sets internal settings to ‘All Auto’ with out touching the phone? I am working on a network that has grown and changed… a lot. The original installers manually provisioned every set. This has become a problem and we are trying to use a provisioning server to standardize the configs and push changes easily. I was thinking about using a provisioning server to tell the sets to download a SIP firmware, and once they have done that, then downgrade them back to Unistim with the same automatic provisioning process in the hopes that this would default the phone, and it should come up with ‘All Auto’ settings… however I have not had a chance to test this yet.

    Any thoughts on how to remotely change an IP phones internal settings ?

    thanks again,

  • David August 6, 2012, 9:11 am

    Hello Michael,

    We have recenlty carried out a deployement of a new CS1000e network with 6000 + IP telephones using a provisioning server with a web based front end which allows us to scan the telephones into the provisioning server using the MAC bar code on the box and back of the phone. When scanned each phone is automatically assigned its TN. Provisining server,VLAN and S1, S2 information is set in the DHCP options for each location. Its then just a matter of plugging the phone in and letting it provision itself. We also set .prv files for each site which allows us to change S1, S2 settings etc if needed.

    The use of the provisioning server saved us a lot of man hours during the deployment of the phones. We were able to scan the boxes at our main site and then send the phones out for users to plug in themselves. It also saves us travel time if we have any faulty phones as we can provision a replacement phone by simply replacing the faulty phones MAC address in the provisioning server and sending the phone out to the user to replace.

    We also use the web front end to provide stock control. When we have new phones arrive on site they are scanned into the provisioning server as in stock. When they are put into service they appear as out of stock.

    The majority of phones are 12xx series ip phones but we also have around 200 2002i and 2004i phones. These phones only use the DHCP Nortel-i2004-A options which meant we where not able to get them to look at the provisioning server. These had to be set to full DHCP to pick up the S1, S2 and VLAN and then have the TN info manually added.

    We picked up a lot of the details we needed to set this all up from your website and would like to thank you for providing so much useful information.



    • Michael McNamara August 6, 2012, 10:11 pm

      Hi David,

      That’s very impressive piece of automation and I’m sure it was very handy with 6,000 IP phones to deploy.

      Thanks for sharing your story.


  • Steve Panton August 24, 2012, 2:48 pm

    I am testing this out and I can see the phone successfull download all the .prv files, however when it reboots is seems to fail at “Starting DHCP”…..what do you think I am missing?

    • Michael McNamara August 26, 2012, 3:55 pm

      Hi Steve,

      How have you configured the IP phones?
      How have you configured the network?
      How have you configured the DHCP server?

      Feel free to post on the discussion forums.

      Good Luck!

  • Steve August 27, 2012, 8:19 am

    1. I have baseline the system.prv by using your example about….change the s1 and s2 with my informaiton. I also add the zone number to the file
    2. Cisco switches using LLDP-MED
    3. Nortel-i2004-B,prov=10.88.X.X

    The laptop plug in behind the phone will work fine how the phone is stuck at “Starting DHCP” after loading the System.prv, phone.prv, and device.prv files.

  • Scott October 18, 2012, 4:36 pm

    Your earlier talk about provisioning IP sets is what got me started, now having deployed more than 1000 sets without opening a box I revisit the post and see that it’s even better than before.
    I have a spreadsheet that we scan all the barcodes off the boxes into adjacent TN information. A vbscript then runs and creates all of the provisioning files that are then placed in the provisioning server. Phone gets unboxxed, plugged in and voila instant IP phones.
    We also upload all of our IP set programming into the CS1000 via comma separated values spreadsheet. Amazing how many phones can be cranked out in an upload and the programming never varies. In a new installation the UCM can create multiple sets, however in my case we are upgrading existing TDM sets so I do that in Excel.
    I’ve enjoyed a great deal of success and wanted to let you know that you provided my foundation for this project.
    also, I am happy to share any of my tips etc…. so anyone reading this can contact me via e-mail
    anthony.giarratano .a.t.

    Editor: I’ve obfuscated Anthony’s email address to save him from the needless SPAM he’s sure to receive.

  • Manuel November 14, 2013, 5:25 pm

    We have a problem with Avaya 9608 phones looping looking for DHCP. Some phones it works, some phones it does not. It just randomly started happening.

    • Michael McNamara November 14, 2013, 10:22 pm

      Hi Manuel,

      The majority of times the problem is either with the IP phone configuration, the DHCP server configuration (DHCP options returned to the IP phone are insufficient) or the network port is mis-configured. I would suggest you review this Avaya Technical Guide;

      Good Luck!