Understanding Avaya’s Personal Profile Manager (PPM)

If you were to design a SIP telephone solely based on the features available from IETF (Internet Engineer Task Force – the owners of SIP) specifications, you would have a decent enough telephone that gave you a couple dozen different features. You could make, hold, and release calls.   You could transfer calls as well as conference in other users. You could even perform a few of the more esoteric telephony functions such as park and pickup.

However, what if you wanted to do group paging or activate malicious call trace from that phone? There are no SIP specifications for those features. Does that mean you are out of luck and have to stay on your older H.323 or digital phone sets? Thankfully, no.

I wrote extensively about the startup sequence for an Avaya SIP phone in my article, The Steps Involved in Booting an Avaya SIP Telephone. In addition to SIP registration, an Avaya SIP phone downloads and processes a configuration file, sends out a slew of SUBSCRIBE messages, and uses something called Personal Profile Manager (PPM). I briefly discussed PPM in the article, but it warrants a deeper inspection. Along with those Avaya specific subscriptions, PPM is what makes an Avaya phone standout from its generic brothers and sisters.

PPM began its life on the Avaya Session Enablement Server (SES). You may remember SES if you implemented SIP trunks or SIP endpoints prior to release 6.0 of Communication Manager. SES was fine for its day, but it had a number of architectural issues and was replaced by the present day Session Manager. When that happened, PPM became a part of every instance of SM. Specifically it runs as an HttpServlet within a JBoss container. Don’t worry if that doesn’t mean anything to you. The important aspect is that PPM functions like a mini web server whose job it is to provide user data to SIP telephones.

PPM exposes a series of web services interfaces that utilize WSDL (Web Services Description Language) for remote access. This means that a SIP phone can send web services commands in the form of SOAP (Simple Object Access Protocol) requests to PPM in order to retrieve and manage SIP related user data. WSDL and SOAP are open standards which means that PPM isn’t limited to Avaya phones. For example, some Toshiba SIP phones have implemented PPM to allow them greater integration with an Avaya Aura system.

PPM data can be categorized into four different areas – Endpoint Features, SIP Telephony/Feature Data, Configuration Data, and Maintenance Operations. A list of the methods exposed by PPM includes the following:

Contact List:
– addContact
– deleteContact
– updateContact
– addGroup
– deleteGroup
– updateGroup
– getContactList
– getContactProfile
– changePassword
– getSpeedDialList
– searchContact
– searchContactCount

– reportStatus
– sendCommand
– sendCommandAll
– getRegistrations

Device Data:
– getDeviceData
– setDeviceData
– deleteDeviceData

Service Location:
– getHomeServer
– getHomeCapabilities

Feature Server Data:
– setTerminalInformation
– getTerminalInformation
– getVolumeSettings
– getRingerSettings
– setRingerSettings
– getOneTouchDialList
– setOneTouchDialList
– getExpiredTimerVal
– getIdleLineSelection
– getMessageWaitingExt
– getAutoAnswerType
– getDialPlan
– getButtonAssignments
– getSoftMenuKeyAssignments
– getEndpointConfiguration
– getAllEndpointConfiguration
– getVMONInformation
– getMyDevices
– getNumberFormatting
– getIdentity
– setIdentity

Hopefully, you are beginning to recognize the amount of data that PPM makes available to a SIP phone. For example, knowing the dial plan of Communication Manager through getDialPlan allows a phone to know when a complete string of digits has been entered. Using PPM, a SIP phone can initiate a call without forcing the user to press “#” to signify the end of a phone number. Additionally, web services commands such as addContact allow a user to manipulate his or her contact list right from the phone.

Who supports PPM? At this point in time, I have found adherence from the following SIP endpoints:

Avaya Aura one-X Deskphone (96×0 and 96×1)

Avaya Aura one-X Communicator

Avaya Aura Flare Experience for Windows and iPad

Avaya Aura Desktop Video Device (ADVD)

Avaya Aura one-X Mobile for Apple IOS (iPhone)

Avaya “Hospitality” Phone

DevConnect Third Party Endpoints, e.g. Toshiba SIP Phone

So, where do you create the data used by PPM? Why, with Avaya Aura System Manager, of course. System administrators launch System Manger to perform all end-user administration. PPM will then make that data available through its web services interfaces. I read that there is a maximum delay of 10 minutes from the moment System Manager saves the data and it becomes available to PPM

Lastly, PPM promotes security by only permitting access via encrypted https. This prevents someone from sniffing the LAN and retrieving sensitive user data.

Unless you are looking for the programming specifics of PPM, I have said about as much as I want to say today. The main point is that PPM is a tool used to retrieve and maintain SIP user data. It was built on open standards such as WSDL and SOAP. This makes PPM usable outside of Avaya’s proprietary endpoints. Any developer can jazz up his or her bare-bones SIP phone with the features that are required by an enterprise user. No one should be forced to go backwards after upgrading to the latest and greatest of anything. PPM and similar technologies make a good thing like SIP that much better.

P.S. This is my 100th blog post.  Happy Centennial to me!


  1. great post but I am specifically looking for programming specific of PPM. Can you suggest a good link or document ?

    1. Thank you, Rohit. You should be able to obtain PPM documentation at the Avaya DevConnect site. You will need to become a DevConnect partner, but it’s a free signup. https://www.devconnectprogram.com/site/global/home/p_home.gsp

  2. Well done for your effort, I really appreciate you taking the time to explain this, thanks.

    1. You’re welcome. I am always happy to be of assistance.

  3. Yugesh Babu · · Reply

    Thank you for this post. How to update PPM dial plan of SIP phone ? If in system manager, Where exactly ?

    1. Yugesh. I am not sure of the exact answer, but I do know a few things. System Manager is where PPM resides so SMGR configurations will play a part. I also believe that Communication Manager translations will be involved. My guess is that most of the work will be done in CM and SMGR will import those translations which will ultimately be provided to the SIP phone via PPM.

      I am sorry I don’t have a better answer than that. I will ask around, though, and get back to you if I find something better.

      1. YUGESH BABU · ·

        Hello Andrew,

        Yes, the sip phone dial plan that we see in SM ppm trace is purely derived from ars and aar table CM. Changes made in CM Ars table (via Smgr inventory) get syncronized and ppm database gets updated. So for sip phone to update its dial plan, we have to reload the config(alternatively reboot the endpoint) to get updated dial plan from ppm database. Thank you very much.

  4. Glad to be of assistance, Yugesh. I figured I was right, but it’s nice to have someone else in agreement.

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

%d bloggers like this: