📄 overview.html
字号:
<HTML><HEAD><TITLE>The Java Telephony API</TITLE><!-- Changed by: Jordan M. Slott, 18-Jan-1997 --></HEAD><BODY BGCOLOR="#ffffff"><IMG SRC="images/jtapi-1.1.logo.gif" ALIGN="left"><BR><BR><BR><BR><H1><CENTER>The<BR>Java Telephony API</CENTER></H1><H2><EM><CENTER>An Overview<BR><BR><BR>January 28, 1997<BR>Version 1.1</CENTER></EM></H2><BR><BR><BR><H2>Introduction<HR></H2><FONT SIZE="+1"><P>The <STRONG>Java Telephony API</STRONG> (<STRONG>JTAPI</STRONG>) is a portable,object-oriented application programming interface for Java-basedcomputer-telephony applications. JTAPI serves a broad audience, fromcall center application developers to web page designers. JTAPI supports bothfirst- and third-party telephony application domains. The API is designed tomake programming simple applications easy, while providing those featuresnecessary for advanced telephony applications.</P><P>The Java Telephony API is, in fact, a set of API's. The "core" API providesthe basic <EM>call model</EM> and rudementary telephony features, such as placingtelephone calls and answering telephone calls. The core API is surrounded bystandard extension API's providing functionality for specific telephonydomains, such as call centers and media stream access. The JTAPI core and extension package architectures are described later in this document.</P><P>Applications written using the Java Telephony API are portable across thevarious computer platforms and telephone systems. Implementations of JTAPIwill be available for existing computer-telephony integration platforms suchas Sun Microsystem's SunXTL, Microsoft and Intel's TAPI, Novell and Lucent'sTSAPI, and IBM's CallPath. Additionally, independent hardware vendors maychoose to provide implementations of the Java Telephony API on top of their ownproprietary hardware.</P><BR><H3>Overview Document Organization</H3><P>This document is organized into the following sections:</P><TABLE CELLPADDING=2 WIDTH="100%"><TR><TD WIDTH="20%"><A HREF="Overview.html#FEATURES">Java Telephony API Features</A></TD><TD WIDTH="80%">Describes the features of JTAPI and the principles on which itwas designed.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#CONFIGURATIONS">Supported Configurations</A></TD><TD WIDTH="80%">Summarizes the environments in which JTAPI may be used and thecomputer and sofware configurations for which it was designed.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#ARCHITECTURE">Java Telephony Package Architecture</A></TD><TD WIDTH="80%">Summarizes how the Java Telephony API is organized into variousJava language packages. A brief description accompanies each package along withlinks to more detailed documentation.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#CALLMODEL">The Java Telephony Call Model</A></TD><TD WIDTH="80%">Describes how telephone calls and different objects thatmake up telephone calls are represented in this API.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#COREMETHODS">Core Package Methods</A></TD><TD WIDTH="80%">Provides a brief summary of the key methods available in the corepackage which perform the most basic telephony operations, such as placing atelephone call, answering a telephone call, and dropping a telephone call.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#CONNECTIONSTATES">Connection Object States</TD><TD WIDTH="80%">Describes the states in which the Connection object can exist.It provides a description of the allowable transitions from each state.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#TERMINALCONNECTIONSTATES">TerminalConnection Object States</TD><TD WIDTH="80%">Describes the states in which the TerminalConnection object canexist. It provides a description of the allowable transitions from each state.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#PLACINGCALL">Placing a Telephone Call</A></TD><TD WIDTH="80%">One of the most common features used in any telephony API is placing a telephone call. This section describes the JTAPI method invocations requiredto place a telephone call, while examining the state changes the call model undergoes. This analysis will begin with placing the telephone callat an originating phone. It will progress through a called phone answering and end with the termination of the call.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#OBSERVERS">The Java Telephony Observer Model</A></TD><TD WIDTH="80%">Describes the JTAPI observer model. Applications use observersfor asynchronous notification of changes in the state of the JTAPI call model.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#EXAMPLES">Application Code Examples</A></TD><TD WIDTH="80%">Provides two real-life code examples using the Java Telephony API.One places a telephone call to a specified telephone number. There otheranswers incoming telephone calls to a designated Terminal.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#PROVIDER">Locating and Obtaining Providers</A></TD><TD WIDTH="80%">Describes the manner in which applications create and obtainJTAPI Provider objects.</TD></TR><TR><TD WIDTH="20%"><A HREF="Overview.html#SECURITY">Security</A></TD><TD WIDTH="80%">Summarizes the JTAPI security strategy.</TD></TR></TABLE><BR><BR><H3>History of the Java Telephony API</H3><P>The Java Telephony API specification represents the combined efforts of designteams from Sun Microsystems, Lucent, Nortel, Novell, Intel, and IBM, operatingunder the direction of JavaSoft.</P><P>The Java Telephony API version 1.0 specification was release to the public onNovember 1, 1996.</P><P>This version of the specification, version 1.1 is being release to the publicon February 1, 1997.</P><BR><BR><H2><A NAME="FEATURES">Java Telephony Features</A><HR></H2><P>The features and guiding design principles for the Java Telephony API are:</P><IMG SRC="images/magenta-ball.gif">Brings simplicity to the simple and most basic telephony applications<BR><IMG SRC="images/magenta-ball.gif">Provides a scalable framework that spans desktop applications to distributed callcenter telephony applications<BR><IMG SRC="images/magenta-ball.gif">Interfaces applications directly to service providers or acts as a Java interface to existing telephony APIs, such as SunXTL, TSAPI, and TAPI <BR><IMG SRC="images/magenta-ball.gif">Based on a simple core that is augmented with standard extension packages<BR><IMG SRC="images/magenta-ball.gif">Runs on a wide range of hardware configurations, wherever Javarun-time can be used<BR><BR><BR><H2><A NAME="CONFIGURATIONS">Supported Configurations</A><HR></H2><P>JTAPI runs on a variety of system configurations, including centralizedservers with direct access to telephony resources, and remote networkcomputers which access telephony resources over a network. In the firstconfiguration, a network computer is running the JTAPI application and isaccessing telephony resources over the a network, as illustrated in<A HREF="Overview.html#NETWORKCOMPUTER"> Figure 1.</A> In the second configuration, theapplication is running on a computer with its own telephony resources, asillustrated in <A HREF="Overview.html#DESKTOPCOMPUTER">Figure 2.</a></P><H3><A NAME="NETWORKCOMPUTER">Network Computer (NC) Configuration</A></H3><P>In a network configuration, the JTAPI application or Java applet runs on aremote workstation. This workstation can be a network computer with only adisplay, keyboard, processor, and some memory. It accesses network resources,making use of a centralized server that manages telephonyresources. JTAPI communicates with this server via a remote communicationmechanism, such as Java's Remote Method Invocation (RMI), JOE, or a telephonyprotocol. The following diagram shows this configuration.</P><CENTER><IMG SRC="images/network.gif"></CENTER><CENTER><P><FONT SIZE=-1 FACE="Helvetica"><STRONG>Figure 1: Network Configuration</STRONG></FONT></P></CENTER><A name="DESKTOPCOMPUTER"><H3>Desktop Computer Configuration</H3></A><P>In a desktop configuration, the JTAPI application or Java applet runs on thesame workstation that houses the telephony resources. The following diagramshows the desktion configuration.</P><CENTER><IMG SRC="images/desktop.gif"></CENTER><CENTER><P><FONT SIZE=-1 FACE="Helvetica"><STRONG>Figure 2: Desktop Configuration</STRONG></FONT></P></CENTER><BR><BR><H2><A NAME="ARCHITECTURE">Java Telephony Package Architecture<HR></A></H2><P>The Java Telephony API is composed of a set of Java language <EM>packages.</EM>Each package provides a specific piece of functionality for a certain aspectof computer-telephony applications. Implementations of telephony servers choose the packages theysupport, depending upon the capabilities of their underlying platform andhardware. Applications may query for the packages supported by theimplementation they are currently using. Additionally, applications may concernthemsevles with only the supported packages it needs to accomplish its tasks.The diagram below depicts the architecture of the JTAPI packages.</P><CENTER><IMG SRC="images/cube.gif"></CENTER><CENTER><P><FONT SIZE=-1 FACE="Helvetica">Figure 3: Core/Extension Package Relationship</FONT></P></CENTER><P>At the center of the Java Telephony API is the "core" package. The core packageprovides the basic framework to model telephone calls and rudementarytelephony features. These features include placing a telephone call, answeringa telephone call, and dropping a telephone call. Simple telephony applicationswill only need to use the core to accomplish their tasks, and do not needto concern themselves with the details of other packages. For example, the corepackage permits applet designers to add telephone capablities to a Web pagewith ease.</P><P>Layered around the JTAPI core package are a number of "standard extension"packages. These extension packages each bring additional telephonyfunctionality to the API. Currently, the following extension packages existfor this API: call control, call center, media, phone, private data, andcapabilities packages. Each package is summarized below in terms of the features itbrings to JTAPI, and is linked to a separate overview document andspecifications.</P><P>The JTAPI package architecture is a two-way street for both implementations andapplications. In other words, telephony server implementations choose which extension packages(in addition to the core package) they implement, based upon the capabilitiesof the underlying hardware. Also, applications choose which extension packages(in addition to the core package) they need to use to accomplish the desiredtasks of the application. Applications may query the implementation for theextension packages it supports, and the application developer does not needto concern himself/herself with the details of those packages not needed forthe application.</P><BR><H3>Java Telephony Standard Extension Packages</H3><P>Each JTAPI extension package has its own specification which augments the coreAPI, and in most cases has its own separate overview document describing it.The chart below lists each extension package available, with a link to theindividual overview document, if it exists.</P><TABLE CELLPADDING=2 WIDTH="100%"><TR><TD WIDTH="20%"><A HREF="CallCtlOverview.html">Call Control Package</A></TD><TD WIDTH="80%">The <EM><STRONG>java.telephony.callcontrol</STRONG></EM> package extends the corepackage by providing more advanced call-control features such as placing callson hold, transferring telephone calls, and conferencing telephone calls. Thispackage also provides a more detailed state model of telephone calls.</TD></TR><TR><TD WIDTH="20%"><A HREF="CallCentOverview.html">Call Center Package</A></TD><TD WIDTH="80%">The <EM><STRONG>java.telephony.callcenter</STRONG></EM> package providesapplications the ability to perform advanced features necessary for managinglarge call centers. Example of these advanced features include: Routing,Automated Call Distribution (ACD), Predictive Calling, and associatingapplication data with telephony objects.</TD></TR><TR><TD WIDTH="20%"><A HREF="MediaOverview.html">Media Package</A></TD><TD WIDTH="80%">The <EM><STRONG>java.telephony.media</STRONG></EM> Package provides applicationsaccess to the media streams associated with a telephone call. They are able toread and write data from these media streams. DTMF (touch-tone) and non-DTMFtone detection and generations is also provided in the java.telephony.media package</TD></TR><TR><TD WIDTH="20%"><A HREF="PhoneOverview.html">Phone Package</A></TD><TD WIDTH="80%">The <EM><STRONG>java.telephony.phone</STRONG></EM> package permits applications tocontrol the physical features of telephone hardware phone sets.Implementations may describe Terminals as collections of components, whereeach of these component-types have interfaces in this package.</TD></TR><TR><TD WIDTH="20%"><A HREF="CapabilitiesOverview.html">Capabilities Package</A></TD><TD WIDTH="80%">The <EM><STRONG>java.telephony.capabilities</STRONG></EM> package allows applicationsto query whether certain actions may be performed. Capabilities takes twoforms: <EM>static</EM> capabilities indicate whether an implementation supportsa feature; <EM>dynamic</EM> capabilities indicate whether a certain action isallowable given the current state of the call model.</TD></TR><TR><TD WIDTH="20%">Private Data Package
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -