JTAPI
Kevin Curran, Computer Lecturer - Magee College
JTAPI
JTAPI is the JavaTM API
for telephony call control. It is an extensible API designed to scale for
use in a range of domains from first party call control in a consumer device
to third party call control in large distributed call centers.
JTAPI 1.3 is the latest release of the specification and was endorsed by the
Enterprise Computer Telephony Forum on July 23, 1999. Please visit the
(ECTF home page) for details on this endorsement.
This page is
designed to provide a brief technical overview of JTAPI, a summary of changes
from the JTAPI 1.2 release, a short history of JTAPI, and the JTAPI
definition.
The complete JTAPI specifications are located at:
Overview
JTAPI is the set of classes, interfaces, and principles of operation that
constitute a JavaTM extension package in the javax.* name space. JTAPI implementations
are the interface between Java TM computer telephony applications and telephony
services, whether those services are implemented as software, as in the
case of a soft PBX, or hardware. JTAPI defines the access to one or
more of the following areas of functionality: Call Control, Telephone Physical
Device Control, Media Services for Telephony, and Administrative Services
for Telephony.
While this site refers you to implementations, you can only find
the JTAPI specification in the form of JavaTM interfaces here.
The JTAPI interfaces are structured by use of Java TM packages, with a core
package that expresses minimal JTAPI, atomic JTAPI, as it were and other
packages that build upon those core features. These feature packages
take the core's simplistic model and extend and specialize it in some way
that makes some aspect of the core interfaces better suited for a particular
class of applications. We will leave the details of how the packages
extend the core to the documentation that you will find with each of the
packages, however, the names of the packages should suffice to give a flavor
of their purpose:
-
CallControl
-
CallCenter
-
Media
-
Mobile
-
Phone
-
PrivateData
The JTAPI 1.3 specification is a successor to JTAPI 1.2, which was
authored by a host of partners associated by membership to the Enterprise
Computer Telephony Forum (ECTF.)
JTAPI 1.3 is a transitional specification, meant to prepare for a number
of significant improvements in the JTAPI 2.0 specification, which will
follow later this calendar year (1999.)
The work of writing the JTAPI specification, a process that began in
August of 1996, has been structured by a combination of ECTF operating
procedures and (then) JavaSoft policies. With the release of JTAPI
1.3, the
JavaTM
Community Process defines the new open process for designing
JavaTM APIs. The the creation and release
of JTAPI 2.0 will be fully under
that process, with JTAPI 1.3 as a first step in that direction.
Changes
JTAPI 1.3 now supports the listener event pattern and contains two new
packages:
-
The core package now has a listener event pattern in the style of
JDKTM 1.1+.
While observer event pattern has not been deprecated, prepare for that
eventuality in JTAPI 2.0. The intent is to fully support the listener event
pattern in all JTAPI packages in the JTAPI 2.0 release.
-
The JTAPI 1.2 media package is now being replaced by the ECTF S.410 media
specification. The JTAPI 1.2 methods are deprecated.
-
A mobile package is now available to address the special needs of mobile
telephony.
Both the mobile and media packages support only the listener event pattern.
History
The JavaTM Telephony API (JTAPI) was designed by a consortium of industry-leading
computer and telecommunications companies interested in designing a portable,
object-oriented API for computer-telephony integrated call control. The
requirements for this API were that it be simple, easy to implement on
top of existing CTI platforms, integrate both first-party and third-party
call control models, and be scalable and extensible. The initial
working group consisted of representatives from Intel
, Lucent , NortelNetworks,
Novell, and Sun
Microsystems, Inc.
After several draft releases, which were made available to licensees
and to the public for review, the working group released version 1.0 of
the JavaTM Telephony API specification (JTAPI) on October 30, 1997.
The working group was joined by IBM
for a follow-on version. JTAPI version 1.1 was released January 31,
1997. JTAPI version 1.2 was released in February, 1998.
Following the release of JTAPI v1.1, other companies, who were members
of the Enterprise Computer Telephony Forum
(ECTF) , worked to help developed the
specification, including Dialogic
and Siemens.
Work was initiated on the new JTAPI media package (ECTF S.410) in February
1997. The JTAPI mobile work began in September of 1997. The
two packages are being released for the first time in JTAPI 1.3.
Sun and ECTF are now working as "partner" on JTAPI. The
ECTF is now the lead organization developing JTAPI for developing JTAPI
specification. An important step in solidifying the partnership was
the release of the JavaTM
Community Process (JCP)
by Sun in December 1998. Starting with the JTAPI 2.0 release, ECTF
will follow the JCP.
JTAPI Definition
JTAPI is the set of classes, interfaces, and principles of operation that
constitute a JavaTM technology extension package in the javax.* name space. The
JTAPI specification defines the application interface to JavaTM computer
telephony applications and telephones or telephone systems. JTAPI provides
access to one or more of the following areas of functionality: Call Control,
Telephone Physical Device Control, Media Services for Telephony,
and Administrative Services for Telephony.
Applications using the JTAPI interface include (but are not limited
to):
-
Call logging and tracking software
-
Auto-dialing software
-
Screen-based telephone applications
-
Screen-pop software
-
Call routing applications
-
Automated attendants
-
Interactive Voice Response (IVR) systems
-
Agent software
-
Call center management software
-
Fax send and receive
-
Voicemail
Telephony platforms supporting these applications by providing JTAPI include
(but are not limited to):
-
Individual telephone sets (both wired and wireless)
-
PBXs and CT Servers based on circuit switching technology
-
Elements of IP Telephony (and other packet voice networks) including
endpoints, gateways, media services servers, and call control implementations
-
Computer platforms and software applications utilizing other call control
(CTI) and media services APIs or protocols
JTAPI enables the creation of portable value-add JavaTM software products
that can operate on any telephony product that exposes its services through
a JTAPI interface. For example, the same JTAPI application can run on a
cellular phone and a media server on a VoIP network if both expose a JTAPI
interface. JTAPI makes this possible by presenting an abstraction of telephony
services that is independent of a given implementation's underlying network
and its relationship to that network.
JTAPI provides the following:
-
Call Control
Call Control refers to control and observation of call processing (such
as address translation, call setup, call tear down, call routing, supplementary
services, and access to call associated information). This includes support
for wired and wireless implementations ranging in complexity from the simplest
call control features to the full suite of PBX/ACD call control functionality.
In its simplest implementation, JTAPI gives access to only a single
telephony device (e.g. first party). But, the specification applies
equally well to implementations which provide access spanning multiple
devices (e.g. third party).
-
Telephone Physical Device Control
Physical Device Control includes monitoring and control over one or
more user interface elements of a telephone including: its display, buttons
and lamps (real and virtual), auditory components, hook switches associated
with physical telephone devices independent of call control functionality.
-
Media Services for Telephony
Media Services includes manipulation and processing of the media streams
associated with calls (including tone generation and detection, fax processing,
recording and playback, text to speech, automatic speech recognition, etc.).
-
Administrative Services for Telephony
Start-up, shut-down, and management (fault, configuration, accounting,
performance and security) of telephony resources providing functionality
through the JTAPI interface.
JTAPI is used to access the services of a telephone system, however not
all the functionality required to implement a telephone system is
specified by JTAPI . JTAPI does not expose individual signalling protocols
(such as SS7, ISDN, GSM, etc.) and associated features that a particular
telephone or telephone system implementation is likely to need internally.
Nor does it include non-telephony services that JavaTM-based telephones are
likely to need (such as interfaces to draw a telephone user interface on
a bitmapped display). Implementation of power management, messaging, web
browsing, SNMP support, access to device-specific functions, etc., will
require other complementary JavaTM interfaces to do so.
The scope of JTAPI corresponds to the top-most layer of interfaces defined
by the ECTF architectural framework and encompasses the functionality of
the call control (C.xxx), media services (S.xxx), and administrative services
(M.xxx) areas. For further information, refer to the ECTF architectural
framework (described in documents available at http://www.ectf.org/ectf/tech/tech.htm).