IP Phones – Enriching User Interfaces
Over the past couple of months, we’ve become heavily involved in developing alternative IP Phone user interfaces and experiences. Initially, when most people think about IP Phone experiences, they think about the following:
- Plastics
- Graphic UI
- Number of colors on the screen
- SIP compatibility
- SIP feature set
- Native phone telephony features
- etc.
However, while the above are fairly important (who am I kidding, these are very important – these make for 80% of the experience), another aspect of the experience is usually totally neglected – and that 20% sometimes makes for 25% of your services customer calls.
So, what am I talking about exactly? in order to explain, let us examine a certain scenario. Imagine that your office PBX system is based on Asterisk and that your entire office is based upon SNOM 370 IP terminals. Now, a feature such as DND is available both at the phone level and the PBX level. If you activate one, the other isn’t notified (in most cases) and thus, a situation where the phone user may not receive calls can be related to 2 distinct issues: DND at the phone side or DND at the PBX side.
Now, if you talk to most IP Centrex application companies (eg: BroadSoft), they would indicate that they are fully integrated with specific vendor handsets – however, what happens with all the rest? – they are simply left out with the problem. That means that if my company decides to utilize some low cost, unfamiliar, Chinese IP phone vendor – there is high chance that I’ll run into the above mentioned problem.
Question remains: How can we streamline and unify the two experienced? Can we replace the existing phone menus and functionality, without modifying the firmware – while allowing to various vendors to inter-op with the same solution? – the general answer would be YES – however, this needs to balanced by a simple fact – not all IP phone terminals can support enriched user interfaces. Specifically talking, low-cost IP Phone terminals can not support this, simply because the low cost manufacturers neglect the requirement for this.
At this point, a new question arises: what IP Phone terminals do support this ability? – in general, the answer would be – the costly ones. The following will now include a few of the available IP Phone handsets, that can be enriched with customized user interfaces.
CISCO IP Phone Handsets
CISCO IP Phone teminals (mainly the 79XX series) can utilize a built-in minibrowser, capable of rendering displays and interactions based upon a proprietary XML based interface. The interface allows for the creation of both textual and graphical user interfaces, thus, allowing for the creation of highly interactive experiences.
Here’s a short examples of how we would create a textual menu on a Cisco 79XX series phone, utilizing the XML format:
<CiscoIPPhoneMenu> <Title>Title of Menu</Title> <Prompt>Prompt text.</Prompt> <MenuItem> <Name>Name of Menu Item.</Name> <URL>http://remote.site/your.commnad</URL> </MenuItem> <MenuItem> <Name>Name of Menu Item.</Name> <URL>http://remote.site/your.commnad</URL> </MenuItem> </CiscoIPPhoneMenu>
As you may surely notice, the above format is fairly simplistic. Our menu is built from items indicated by remote URLs. Each URL will activate a remote function, which may be a new minibrowser XML page, an operational functions or even a command sent back to the phone itself.
Additional functionality includes the displaying of graphical menus, display of images, interaction with the user and displaying of remote information services (stocks, weather, etc). The XML pages are served directly from a simple web server, thus, any web scripting language can be utilized to create new experiences and interfaces. Here’s a small example how to utilize PHP with the Cisco minibrowser:
<? header("Content-type: text/xml"); header("Connection: close"); header("Expires: -1"); $mysql_conn = mysql_connect("localhost", "asteriskuser", ""); mysql_select_db("directory", $mysql_conn); $result = mysql_query("SELECT name,tel FROM lunchdir", $mysql_conn); print("<CiscoIPPhoneDirectory>\n"); print("\t<Title>Lunch Time Essentials</Title>\n"); print("\t<Prompt>Who will deliver food today?</Prompt>\n"); while($row = mysql_fetch_row($result)) { print("\t<DirectoryEntry>\n"); print("\t\t<Name>"); print($row[0]); print("</Name>\n"); print("\t\t<Telephone>"); print($row[1]); print("</Telephone>\n"); print("\t</DirectoryEntry>\n"); } print("</CiscoIPPhoneDirectory>\n"); ?> Above code was taken from http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services
The above example shows how to create a mySQL based Directory service, utilizing the Cisco minibrowser.
Aastra IP Phone Handsets
The Aastra 5xi includes support for an XML minibrowser, fairly similar to the one Cisco introduces. The main difference between Aastra and Cisco, is that Aastra introduces a somewhat bi-directional interface. Where Cisco introduces an interface where the phone only browses and re-acts, Aastra introduces a POST based interface back into the phone, allowing for even richer user interfaces and experiences to be developed.
Additional information about the Aastra XML API can be found at:
http://www.aastra.co.uk/cps/rde/xbcr/SID-3D8CCB6A-7B886D10/16/XML_API_PA-001008-00-03_2.2.1_0805.zip
Why is this important?
As IP telephony networks become feature rich, a high level of chance exists for non-conformity of user interfaces and user experience. In other words, while one phone will present a certain UI, the next vendor phone will present a completely new UI. Imagine the amount of support and customer care resources, devoted to learning and supporting each of the models… Imagine the level of complexity, sometimes required to support or configure a certain model… In other words, try to estimate the costs of maintaining multiple UIs on your ITSP network – you by now surely understand that UI uniformity not only looks good – it makes business sense.
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=46b6c7bc-386a-4851-b3c8-12c71aaac81e)