I am a very curious person. In fact, my mom tells me that the first word from my mouth was not “mama,” but “why.” I am not the type that accepts something without asking a number of probing questions. “Where did you hear that?” “Do you have any supporting documentation?” “Is that a reliable source?” Needless to say, my grade school and high school teachers probably sighed every time I raised my hand in class.
This sense of curiosity and need to verify are still with me today. I double, triple, and quadruple check a so-called fact until I am convinced of it. Even then, I am always on the lookout for information that might sway me one way or the other. I can’t even begin to count the number of times when I was convinced that I was right only to find new data that forces me to question my conclusion.
At this point you may be wondering what all this has to do with unified communications. Stick around and I will tell you.
I have been working with Avaya SIP telephones for a number of years and was certain that I knew exactly what was occurring when one booted up. However, I recently came across a couple of documents that caused me to rethink that. It’s not that I was way off base, but I found a number of places where things worked a little differently than what I previously understood — different enough to make me want to write the steps down for posterity.
Warning: This is pretty nerdy stuff and not for the faint of heart. I applaud anyone who is as curious as I am about SIP in the detail I am about to present.
At a high level, the boot sequence for an Avaya 9600-series SIP phone is as follows:
1: Power on and initialize hardware and software.
2: Set the LAN speed and begin talking to DHCP in order to acquire IP addresses for the phone and and HTTP configuration server. If the HTTP server’s IP address is not set in DHCP option 242, it may be manually configured on the phone.
3: If present on the network, initiate Link Layer Discovery Protocol (LLDP). Among other things, LLDP allows the SIP phone to determine the virtual LAN (VLAN) used for voice traffic.
4: Using the HTTP server, request the 96x1Supgrade.txt file. This file will indicate if it is necessary to download new SIP firmware.
5: Using the HTTP server, request the 46xxsettings.txt file. This file contains information that an Avaya SIP phone needs to properly function. The phone obtains its domain name, Network Time Protocol server, time zone, DiffServe Code Point, speaker phone settings, and other such values from the 46xxsettings.txt file. This file is used in both Avaya and non-Avaya environments. Used with non-Avaya systems, the file contains information that would otherwise be downloaded via the Avaya Personal Profile Manager. Examples of such data includes the addresses of the Message Waiting and Music-on-Hold servers.
6: Using the HTTP server, retrieve language files. For example, Mlf_Hebrew.xml allows the phone to display prompts and text in Hebrew.
7: Using the HTTP server, retrieve the Avaya Menu Admin file. This file contains links for useful web content. For example, help desk for phone issues, news, ESPN news, etc. can be set in the Menu Admin file.
8: Contact the Network Time Protocol (NTP) server to synchronize time-of-day.
9: Within the 46xxsettings file is the value, SIP_CONTROLLER_LIST. This value provides the IP addresses and transport types (UDP, TCP, or TLS) for the Session Managers this phone has been assigned to. The phone sends SIP REGISTER request messages to all Session Managers in the list. This allows the phone to be simultaneously registered to more than one Session Manager at a time. Avaya phones support three SIP registrations – two core Session Managers and one Survivable Remote Session Manager (i.e. LSP).
These registrations will most likely be challenged with “401 Unauthorized” response messages. The phone will then resend the registrations with the user’s encrypted password.
To read more about SIP authentication, please see my blog, Proving it With SIP Authentication.
The REGISTER request contains a lot of valuable information. In addition to the duration of the registration, the phone will announce its model number, serial number, firmware release, and if this registration is for the primary or backup session manager.
10: Next, the phone will send out a series of SIP SUBSCRIBE messages. Known as event packages, the phone will subscribe to the following:
- “phone features” such as send all calls, call-fwd, etc.
- used for reloading configuration, button changes, contact changes, etc.
- line appearance state
- message waiting indicator
- type of registration, phone’s Address of Record (AOR)
For some detail on these subscriptions, please refer to my article, Avaya SIP Telephones.
11: The phone will now exchange data with the Avaya Personal Profile Manager (PPM) using a series of HTTP/XML SOAP requests.
The PPM is a software module that runs as part of an Avaya Session Manager. It consists of a series of web services that phones use to retrieve and manage SIP related user data. Key PPM data elements consist of the following.
– Endpoint “Features”
- Contact lists and Speed dial information
- Device data (user, ringer, volume)
– SIP Telephony / Feature Data
- Dial plan
- Location data
- Button data
- Emergency numbers
– Configuration Data
- Primary, Secondary, and Survivable Remote Session Managers
– Maintenance Operations
Examples of PPM requests include getInitialEndpointConfiguration, getDeviceData, getHomeServer, getOneTouchDialList, and getVolumeSettings.
There is overlap in the values that can be set in the 46xxsettings file and PPM. PPM values always take precedence.
At this point the phone has booted and is ready to go. For the most part, SIP will be sent to and from the phone, but the phone will also use PPM to perform operations such as adding a new number to the user’s contact list.
I hope you were able to stick with this. Yes, it’s a little involved, but these steps enable an Avaya SIP phone to be nearly on par feature-wise with its H.323 and digital counterparts. Without the SIP subscriptions and data obtained from the 46xxsetting file and PPM, you wouldn’t get much more than SIPPING-19 functionality.
In a future blog I plan on addressing what all this means for remote users and session borders controllers.
Whew is right. It sounds simple and only takes seconds, but it is complicated. Well done AP… I wonder how many SIP sets booted in the time it took you to write this one … ?
Thanks, Cary! It is amazing how much happens during the boot cycle and how quickly it occurs.
Thanks! very informative. May I ask from where does the phone pick up codecs which it sends as a part of SDP in the INVITE message. I have a scenario where the users from the same site use the same trunk to reach CM but one of the phones sends 18 101 (G729) whereas the other sends 0 18 101 (G711 as well as G729) and they try to access voicemail. AAM doesn’t support G729 until v6.3
So the caller sending 18 101 gets a response “488 not acceptable here”
Thank you for the comment!
This should help you understand how codec selection occurs: https://andrewjprokop.wordpress.com/2014/10/06/understanding-avaya-codec-selection/
Hi Great read!. We have a Head Office with an Avaya IP Office and a 3 sub offices. The sub offices are in different time zones. 1 of the sub offices displays the time of the head office and the other 2 display the correct local time. Do you know Where the sub offices obtain their time from? Thanks
Thanks. Time zones are assigned to locations and different offices will have their own location.
Hi There, This might not be the right platform – If possible please redirect me? I need to know where to get an example of a txt file. I need one for a 9608 Avaya phone as am looking to update the “aux” codes automatically from our HTTP server for all phones. Needed to edit default settings for all phones in our center. Primarily Aux codes on the phones menu. Back end CRM system settings is not an issue but not looking for that.
Any assistance is welcome. Thank you
Hi, Shouldn’t the step 2 and 3 be switched? If you have the dhcp on vlan 10, and change it to vlan 20 with lldp, you’ll have to make another dhcp request on that subnet.
Thanks for the article! Could you please assist on how to configure the 46xxsettings.txt file? I have a little home project, I am trying to configure an avaya 1616 and a 9608 with a cisco 2811 router, so that I can call one phone from the other, with no luck so far. Tried to configure freepbx as call server, but I could find just little ducomentation on how to do this. Any help is appriciated!
I managed to load SIP firmware on an avaya 9611G finally but now my challenge is now registering on asterisk it is just displaying acquiring services after entering sip server IP transport tcp, port 5060 and entering the extension and password
It may be looking for the 4xxsettings file.
Thank you so much or the response, the 46xxsettings file is there why do you think its not picking it
My dear colleague Alex,
While your warning or boring content is likely a good idea . . .
You should ALSO include a note in there that says:
“EVEN IF YOU KNOW WHAT YOU’RE TALKING ABOUT . . .
HERE IS SOME $^(# THAT YOU HAVE LIKELY FORGOTTEN ABOUT.”
I was searching Google for information on how to convert my Avaya J179 back to a standard Avaya configuration from the current mode with Ring Central. Of course, that search turns up an article by the infamous Alex Prokop! 😉
Even though this information dates back to just over six years ago, it’s relevancy and accuracy maintains through today. That, my friend, is a testament to your knowledge, as well as your ability to communicate effectively. That is something that is often lost in today’s workforce. I believe one of the roots of this issue is that when you and I had to learn everything – there was no resource to go to. There was no Google. Hell, there was barely any Internet, at least not an internet that was publicly accessible outside of the ‘uber-geek’ arena. So even though you didn’t answer my specific question, I did find this to be a great read over morning coffee, and I wanted to give you recognition and thanks for that.
Please continue to be safe and healthy during the quarantine, and thank you for all of your contributions over the years, you are one of the most selfless individuals that I know, and more importantly a person I carry great respect for.
VP Public Safety Solutions
“This sense of curiosity and need to verify are still with me today. I double, triple, and quadruple check a so-called fact until I am convinced of it. Even then, I am always on the lookout for information that might sway me one way or the other. I can’t even begin to count the number of times when I was convinced that I was right only to find new data that forces me to question my conclusion.”
If only the rest of us did this! I try but fall short. It is indeed comendable.
I fall short more than I care to admit. The trick is to keep trying no matter how often you fail. 🙂