Understanding Avaya’s Personal Profile Manager (PPM)

If you were to design an 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.

This article originally appeared on SIP Adventures and is reprinted with permission.

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 daySession 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

Maintenance:
– 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!