| TYING TOGETHER CTS LOOSE ENDS WITH JAVA BY
DAVID MANDATO
While we may welcome the proliferation of computer
telephony products, we abhor the accompanying growth in complexity. We may even wonder if
compounding interoperability and portability problems will ultimately slow market
expansion, even as the industry produces widget after widget. The challenge, then, is to
find a way to resolve these problems; to integrate applications and devices regardless of
which vendors created them.
One way to accomplish such integration is to define a standard, platform-independent
software framework, along with standardized hardware interfaces. One candidate to serve as
this framework is Java, which may yet become a dominant developer programming language,
although Java standards are incomplete. If Java succeeds, it will allow computer telephony
developers to create plug-and-play capabilities, integrating disparate applications and
devices, and ensuring continued growth in the industry.
JAVA PROSPECTS
Javas appeal, from the developers point of view, is its ability to shorten
development cycles. It can also lower maintenance costs for CT software applications. With
Java, an interpreted, object-oriented computer programming language, developers may write
platform-independent and reusable code. Javas platform-independent code vastly
simplifies the need to port and test software applications to devices or platforms.
Thanks to all these advantages, Java has steadily grown in popularity. According to Sun
Microsystems, the number of active Java developers has grown to more than 500,000.
Furthermore, Java usage, whether in jazzy Web sites or corporate intranets, is expected to
double in 1998.
On the other hand, the Java solution is not yet perfect. As an interpreted language,
Java is tailored for client/server applications, slowing the applications and lacking the
deterministic behavior essential for real-time applications.
Moreover, the Java Virtual Machine (JVM) the Java interpreter that can run Java
applications on multiple operating systems/hardware platform combinations has its
limitations. Specifically, it doesnt support sophisticated memory management models,
complicating development efforts to build custom solutions. The Java operating system
(JavaOS) may also undergo changes, possibly merging with the ChorusOS, and JavaProcessors
still do not have any commercial implementations. However, the combined JavaProcessor and
JavaOS solution and/or Embedded Java platforms should eventually solve these problems. A
solution for execution speed is to use native languages for time-critical tasks by using
the Java Native Interface. There is also currently a clone of the Java Virtual Machine
that features an accurate real-time garbage collection algorithm, deterministic tasking
behaviors, and a smaller memory footprint.
JAVA TELEPHONY API (JTAPI)
Java Telephony Application Programming Interface (JTAPI) is a Java API designed to enable
portability in the CT market. It is one of the initial steps to help prepare developers
and computer and communications equipment manufacturers for the increasing use of Java for
both business and personal applications.
The principal goal of JTAPI is to exploit the platform-independent nature of Java
technology to enable interoperability and interconnectivity of telephones, computers, and
other devices using the Internet and the telephony network. Moreover, because leading Web
browsers now support the Java Virtual Machine, JTAPI applets can be easily embedded in
HTML files. JTAPI can interface applications/applets directly to underlying CT services
provided by the platform used to transfer benefits to businesses and consumers. JTAPI can
also act as a Java interface to existing telephony APIs, such as Sun Microsystems
SunXTL, Intel/Microsofts TAPI, Lucent/Novells TSAPI, and IBMs CallPath.
JTAPI AND TAPI
Microsofts TAPI was originally developed to accomplish successful integration
between Windows-based CT applications and any hardware with Telephony Service Provider
driver support. JTAPI takes this goal even further, incorporating the interoperability of
Java with the promise of CT integration.
JTAPI can be used in a wide range of equipment, such as call center, service
platform, desktop, and mobile phone equipment. JTAPI applications used on these types of
equipment can run on any operating system/hardware platform that contains a JVM and an
implementation of JTAPI.
As corporations gradually take advantage of Web-based CT applications, JTAPI is not
necessarily required to run them, but Java, and therefore JTAPI, ultimately has the
potential to significantly reduce interoperability issues that TAPI may not address on its
own.
JTAPI APPLICATIONS
Corporations are already looking ways to make use of some JTAPI applications, including
the following:
Inbound/Outbound Call Centers
Many enterprises use inbound centers for automating customer sup-port and sales services
and to external inquiries to the proper group. For example, they can hotlines for
technical support sales agent groups.
Outbound call centers enable services, including predictive dialing and call preview.
Predictive dialing services can be automated with CT technologies to initiate multiple
simultaneous dials based on a list telephone addresses stored in database and on hit
rates, which are used to determine the optimal number of dials to initiate. These hit
rates are based on the number of answered/unanswered dials versus the number of agents
available to handle the outgoing calls. Call preview services provide an application that
automatically dials after previewing information about a per-son and/or organization.
Personal Information Manager
A personal information manager lets you use a browser application to integrate calendar,
address book, and expense sheet functionality.
Corporate Directories
These directories take advantage of a Web-based application to access corpo-rate
databases. Users can access real-time information from their desktop. Call control
functionality also enables call transferring and conferencing.
Unified Messaging
Users can tap into a universal mail-box via a browser. That is, users can consolidate all
their e-mail, voice, and facsimile messages, and access them either remotely or on the
desktop. Text-to- speech technology can be used to "listen" to e-mail. All forms
of mes-sages are managed in a similar fashion, although they often require different
physical media.
THE JTAPI SPECIFICATION
Sun Microsystems, Lucent, Nortel, Novell, Intel, and IBM have collaborated on a JTAPI
specification, even though the Java programming language is not yet mature and is still
under review by the International Organization for Standardization (ISO). JTAPI is the
reference specification (C.100) adopted by the Portable API Task Group of the Enterprise
Computer Telephony Forum (ECTF), which is also involved in developing hardware interface
specifications. The JTAPI specification was first released in October 1996, and, at the
time of this article, is in its 1.3 revision, which is not yet publicly available.
JTAPI is a set of APIs that include a basic "core" API and several additional
"standard extension" APIs. The core API provides an object-oriented framework to
model telephone calls and basic telephony features. For example, it enables initiation,
answering, and releasing of phone calls. The standard extension APIs provide additional
functionality.
JTAPI CORE API AND BASIC CALL MODEL
The JTAPI core API provides the capability to design simple telephony
applets/applications, such as adding telephone capabilities to a Web page. The JTAPI Basic
Call Model abstracts the logical/physical entities involved in a phone call as objects.
In a normal point-to-point call, each of the calls parties will be connected via
a single Call object, two Address objects, and two Connection objects. In the more general
case of a point-to-multipoint call, the number of Connection and Address objects increases
proportionally to the number of parties. One or more Address objects can be associated
with a Terminal object, which in turn is associated with only one Terminal Connection
object.
JTAPI STANDARD EXTENSION APIS
The standard extension APIs provide additional functionality to the core API. Standard
extension APIs available in JTAPI version 1.1 are as follows:
- Call control
provides a detailed telephone call and
advanced call control features, including telephone call transfer, call holding, and call
conferencing.
- Call center
provides advanced features for managing
large call centers. It uses features such as predictive calling, routing, and automated
call distribution (ACD).
- Media
enables applications/applets to access a
telephone call as a media stream. It also has touch-tone, DualTone MultiFrequency (DTMF),
and non-DTMF tone detection and generation functionality.
- Phone
provides applications/applets with control of
the telephone devices physical features. Certain JTAPI implementations may model
these physical terminals as individual features that each has an individual interface.
- Capabilities
package extends applications/ applets
capabilities to check both the static and dynamic capabilities that a particular JTAPI
implementation supports.
- Private data
enables applications/ applets to
exchange data directly with the underlying hardware switch. This capability also allows
the applications/ applets to perform actions, such as instructing a switch to perform a
switch-specific action.
JTAPI NETWORK/DESKTOP CONFIGURATIONS
JTAPI always resides between the software application and the
Java Run-Time environment. The platform-specific implementation of this interface is
either a local (desktop) or distributed (network) configuration.
In a local configuration , the complete JTAPI
implementation resides locally and makes use of dedicated CT hardware resources. In a
distributed configuration, a client side JTAPI implementation resides on the client
(either a dumb terminal or a desktop). The client is remotely connected to a server, where
a corresponding daemon program handles the clients requests to access the shared CT
hardware resources.
These configurations interconnect. For example, a desktop
JTAPI implementation can connect a user application to another application running on a
client terminal of a remote system.
COMMERCIAL JTAPI IMPLEMENTATIONS
Commercial JTAPI implementations are crucial to the success of
JTAPI in the CT industry. Standardization, although often a long process, eventually
creates the environment for commercial implementations to flourish. At the time this
article was written, two commercial implementations of the JTAPI specification were
available: The recent versions of IBMs CallPath, and Lucent Technologies
Passageway Telephony Services.
IBMs CallPath supports the JTAPI network
configuration and also leverages JavaBeans technology for improving code reuse and
customization (CallPath Telephony Beans). It implements JTAPI version 1.2 early-access
specification and enables two types of beans: basic and customizable. Lucent
Technologies Passageway Telephony Services provides the JTAPI mapping to the TSAPI
standard. It is designed to allow users to migrate to an object-oriented programming
environment without losing legacy investments.
SUMMARY
JTAPI has the potential to significantly reduce interoperability
issues in the CT market. It is important to the growth of the CT industry, mainly because
of the platform-independent and object-oriented nature of the Java programming language,
which helps to simplify portability.
As developers increasingly require faster
time-to-market cycles and reduced maintenance costs to compete, they need standards to
help answer interconnectivity and interoperability questions. Corporations, in a search to
cut costs and leverage legacy systems, are driving both the ECTF and JTAPI. IBM and Lucent
have already introduced commercial implementations, confirming the strength of the JTAPI
solution and providing a direction for the CT market over the next few years.
The ultimate impact of CT, however, is certain. Integration
will continue, and Java, through its platform-independence and the JTAPI commercial
implementations, is one of the most likely technologies to enable it.
David Mandato is a senior member of technical staff in the
Emerging Technologies Department at Trillium Digital Systems, Inc., a leading provider of
communications software solutions. Mandato, who earned an electronic engineering degree
from Universita degli Studi di Padova, has worked for more than seven years in the
telephony industry. He can be reached at [email protected].
|