Previous Page     Contents     Next Page


Introduction

The PingIM application aims to be a feature rich, easy-to-use, and SIP compliant instant messenger application for the PingTel VoIP phone.  The application was started as an independent computer science project advised by Dr. Schulzrinne and Xiaotao Wu of Columbia University .  

Developed using the Java APIs provided by the PingTel corporation, PingIM includes the following features:
In order to implement many of the features listed above, more functionality than was offered by the standard PingTel APIs was required.  The success of this project depended heavily on the advice, recommendations, and help of the PingTel corporation.  PingTel assisted in providing details of hidden functionality that were present in their Java interface which allowed PingIM to directly interface with the underlying SIP protocol stack.  Without PingTel's assistance, PingIM would be a very limited application.  Particularly, this author would like to thank Alex Zolatar of PingTel for his tremendous and invaluable assistance.  

One of the major strengths of the PingIM application is that it utilizes the SIP stack that is built into PingTel phones.  (It is in this area that the undocumented API calls that PingTel provided were especially useful.)  Since PingIM uses SIP for all message passing (e.g., presence information, instant messaging, and X10 commands), PingIM is easily interoperable with existing SIP user agents.  For example, successful testing of instant messaging has been conducted between a PingIM instance running on a PingTel phone and a SIPC instance running on Solaris.  However, some functions of PingIM (notably presentity) are "PingIM" specific in that interoperability with other SUA may be restricted.

Surprisingly, one of the most difficult aspects in the design and implementation of PingIM was the graphical user interface (GUI).  The PingTel Java API has a limited number of menu types (list, selection, etc.) that can be displayed to the user.  The screen size and lack of customizability for these menus made the graphical design and user experience more of a challenge than first anticipated.  However, this author (who by no means claims to be a user experience guru), feels that the final user design is both fairly intuitive and incorporates the maximum amount of functionality per screen.

Like most applications that are designed for small, Java-enabled devices, the ability of a user to enter data into the application proved very difficult.  PingTel phones use the same text input algorithm as many popular mobile phones.  That is, in order to type the word "HELLO", the user must press the '4' key twice, followed by '3' twice, then '5' three times, and '5' three times again, finally followed by the pressing of the '6' key three times.  Clearly, having lengthy text-based conversations between PingTel telephones would be slow at best and extremely frustating at worst.  For PingIM to gain widespread acceptance among PingTel users, a better text input mechanism than is currently available would have to be developed.  A future decision would have to be made as to whether that functionality should belong to PingIM, or be a built-in feature of the PingTel VoIP phone.


The first section of this documentation, PingTel phone, serves as a brief introduction to the capabilities and features of the PingTel telephone.  It is by no means meant to be a comprehensive guide or reference to the many features and abilities of the PingTel device.  For that, the reader is referred to the PingTel website .  For readers already familiar with the PingTel phone, the section that follows, PingIM Design, may be a better starting point.  At any time, the reader may use the links at the top and bottom of every page to navigate throughout this document.



Picture of PingIM
PingIM running on the PingTel Emulator for Windows.



Previous Page     Contents     Next Page