PingTel Phone

PingTel Diagram
PingTel phone.  Image located on PingTel site.


SIP Capabilities

The PingTel Xpressa phone makes heavy use of the Session Initiation Protocol (SIP).  When a user of the Xpressa phone dials a telephone number or enters a SIP address, an INVITE message is sent to the appropriate SUA or Proxy.  A response code is sent back to the PingTel phone and, if successful, a phone conversation begins.  (In reality, this is a gross oversimplification of the SIP protcol.  The reader is directed to RFC2543 for a much more authoritative and detailed look at SIP.) Once a session is initiated, "toll" to "CD" quality VoIP communication between the two or more parties is established using G.711 and G.729 codecs.  

The Xpressa phone comes pre-built with a SIP stack.  The standard Java API provided by PingTel, discussed in depth below, allows the programmer to send only INVITE messages to a given SIP address.  Using undocumented API calls, however, SIP messages may be constructed at the granularity of the SIP header fields.  That is, it is possible (and PingIM makes heavy use of this) to construct any grammatically-correct SIP message, such as DO, MESSAGE, SUBSCRIBE, and/or NOTIFY messages.  SIP messages may contain any MIME content-type and payload.  Using the underlying PingTel SIP implementation, the programmer may then add the custom-built SIP message to the outgoing message queue.  

Undocumented function calls also allow for the implementation of SIP "listeners" -- methods that are executed whenever a specific message type is popped off of the SIP stack.  This was especially critical for receiving instant messages and SUBSCRIBE/NOTIFY messages (as described in future sections).  Using these undocumented API calls, it was possible to greatly extend both the usability and functionality of the PingIM product.



Java Virtual Machine

The PingTel Xpressa phone includes the embedded PersonalJava virtual machine .  PersonalJava supports core Java functionality, including threading.  Additionally, JNDI and JDBC support have been preinstalled on the Xpressa phone.



GUI Interface

PingTel Xpressa phones include a small 160x160 pixel LCD display:

PingTel graphical user interface

As can be seen in the above illustration, PingTel phones have 11 "soft-keys" (4 on each side, 3 below) and a scroll knob (not pictured).  For the most part, graphics appear crisp and easy-to-read.  Like most Palm-sized LCD displays, the major problem lies with screen real-estate; that is, it is very difficult to display a reasonable amount of information on one screen without requiring the user to scroll endlessly.  Additionally, the number of soft-keys is a limiting factor.  Handheld devices that feature a stylus can present the user with hundreds of options (on most handhelds, the stylus can differentiate between individual pixels; thus the programmer can theoretically have as many inputs as there are points on the display.)  The limitation of only 11 soft-keys makes constructing a user-friend interface for a feature-rich application considerably more difficult.

The PingTel API provides four standard screens:

Two-column scrollable lists two-column scrollable list
Single-column scrollable lists
single-column scrollable list
Message boxes
message box
Tabbed-layouts
tabbed layout

Using the com.pingtel.xpressa.awt, com.pingtel.xpressa.awt.form, and com.pingtel.xpressa.awt.event packages (all of which are included in the PingTel development kit), it is fairly easy to construct each of the above types of forms.



Emulator

PingTel has released an Xpressa emulator for Windows based PCs called Instant Xpressa Softphone.  Downloading the emulator is free, but requires registration.  The emulator does a reasonably good job of mirroring the behavior and capabilities of the PingTel Xpressa phone.  As with the Xpressa phone, the emulator includes a web-based configuration tool (explained below) that allows for easy loading and unloading of Java applications.

One important and undocumented point concerning the installation of the emulator is worth noting here.  On NT based versions of Windows (e.g., NT, 2000, and XP Professional), the JIT compiler must be disabled for the emulator to work properly.  In the ixpressa.bat file, the option -nojit should be appended to the Java command-line (which appears twice in this file).  



Configuration Tool

Both the Xpressa phone and Instant Xpressa softphone are configured through a web-based interface.  PingTel phones run a local webserver (by default on port 80) that houses the configuration tool.  

Configuration Tool

Through this interface, users may load or unload applications onto their phones.  These applications must be stored in a jar file on a separate web server.  Applications are specified by using its pertinent URL.


Previous Page     Contents     Next Page