Kwan Hong Lee

May 1998


Introduction

Architecture

System Setup

Programming Environment

Applications

Future Work

Troubleshooting

References

People


Introduction

This project is an effort to try to integrate the functionality of the Internet and the telephone network in order to provide new services and applications that can allow more convenient ways of communication.  Our main development tool is Sun's Java Telephony API implemented by Lucent Technologies, which provides API's for controlling various aspects of telephony applications from simple call control to call center support.   Java Telephony API allows easy integration and rapid development of telephony applications that can take advantage of the Internet. 

Architecture

Computer and telephony integration is provided by the Passageway Telephony Services software which provides the necessary drivers to allow a desktop computer to control a PBX switch and control calls and telephones connected to the switch through an IP network.  As the diagram below shows, the computer with the telephony services installed, functions as the telephony server and is able to serve client and server applications that make use of the telephony services through the telephony services module. 

Applications can be built on top of the server or on the client and either way they make use of the telephony services library when they make Telephony Services API (TSAPI) calls.  TSAPI is the API used to make telephony requests.  TSAPI calls are mapped to CSTA (Computer Supported Telecommunications Applications) requests and Definity G3 PBX switch driver (G3PD) takes these requests and maps them to Definity specific CallVisor Adjunct/Switch Application Interface (ASAI).   G3PD directly communicates with the PBX switch to send control signals and receive responses.

Telephony Services Architecture

tservconfig.gif (18264 bytes)

Software Architecture in Detail

softarch.gif (5690 bytes)

Passageway Telephony Services

 

ASAI Protocol

CallVisor Adjunct/Switch Applications Interface (ASAI) is the underlying interface that is used by JTAPI and other telephony applications to communicate and manage calls on the switch.  ASAI allows an adjunct to manage calls, both incoming and outgoing, by providing the capability to monitor, initiate, control , and terminate calls on the switch.

The following functionality between associated adjuncts and the switch is supported.

System Setup

In this section, I describe the system setup currently in Systems Lab where this whole project was done.

Systems

VADA.CS.CORNELL.EDU (128.84.223.24) is a Windows NT Server used as telephony server which has the Lucent Passageway Telephony Services software installed.  In order to make use of telephony services, application programs need to access VADA.

MABELLEX.CS.CORNELL.EDU (128.84.154.25) is the Lucent Definity G3 PBX switch.  This switch is accessible from anywhere in the world since it sits outside the firewall.

Managing Phone Stations

Currently in Systems Lab, six phones are installed.   They are 45510 to 45515.

In order to connect phones to the switch, you need to logon to the PBX and use

add station xxxxx

command.  According to the wiring you have done on the distribution frame you assign a port number to each station.  (Regarding the port numbering refer to 5-375 of Definity Enterprise Communications Server Release 5 Implementation, Volume 2.)

In order to view which stations (phones, extensions, etc.) are currently taken you can use

list station

command.  Use page up and page down keys in order to browse the list.

Vector Directory Numbers

Vector directory numbers (VDN) are used for call routing in call centers, but in our applications VDN's are used to collect DTMF digits.  You can think of VDN's as virtual phone numbers.  They are just like any phone number which you can dial, but they do not have any physical phone associated with them.  In order to setup VDN's you must add a VDN and also a call vector associated with it.  After logging into PBX, in the command line first create a call vector you want to associate a VDN with. 

add vector x

is the command to add call vector with number x.  Call vector is a list of instructions such as collect digits, wait, or forward call.  Here's an example of a call vector :

COLLECT 4 DIGIT

ROUTE TO NUMBER 45530

So a VDN associated with a call vector will execute those instructions when a call is made to the VDN.  After the call vector is setup you can proceed to setting up the VDN.

add vdn xxxxx

is used to add a VDN where you can assign the call vector that you created above to this VDN. 

For more detailed information please refer to Definity Communications System Generic 3 Feature Description, Volume 1, page 3-431 (section on Call Vectoring).

Programming Environment

Java is the main development environment that we use.   Server applications, client applications, servlets, and applets can be programmed using Java and with the use of JTAPI we can integrate telephony functionality into these applications.

In order to better understand what JTAPI is all about, please refer to JAVASOFT's documentation on JTAPI.  It describes the different packages available in JTAPI from the Core Call package, to callcenter and media package.  It also describes the basic call model that JTAPI uses in order to control and monitor telephony.

http://java.sun.com/products/jtapi/

Applications

bulletTelephony Service Test Applet  

This is the most basic application which allows one to make a call from one phone to another from the web.checkout.gif (1008 bytes)

bulletInternet Voice Mail System   

This is the main application that has been developed during Spring 1998 and we hope to deploy this to the M.Eng. students for Fall 1998.checkout.gif (1008 bytes)

bulletAlarm Call Service   

This is an alarm call service application where a user registers for an alarm call through an applet at a web site and the alarm call is processed accordingly.checkout.gif (1008 bytes)

Future Work

Java Telephony API provides a whole new way of developing telephony applications on the web.  Further application development is definitely worthy, but we do not have to prove the potential. 

We will be deploying the Internet voice mail system for the Master's student here at Cornell next fall and this summer we will be working on extending the Real simulator in order to support telephony applications.

Other Possible Applications are described here so that you may ponder about the implementation, design and the potential of telephony application on the web.

Troubleshooting

1. When you get an error of the form

    Platform exception

    Cannot open stream

    Use tracert to check if you have network connection to the telephony server, vada.cs.cornell.edu, and the PBX, mabellex.cs.cornell.edu.

2. After adding a station, in order to access it from the application you must add it to the security database using Telephony Services Admin application.

3. After getting the provider in JTAPI, one must wait for the provider to reach the IN_SERVICE state before querying the provider.

while (myProvider.getState() != Provider.IN_SERVICE)
{
try
{
        Thread.sleep(3000);
        }
        catch(InterruptedException e) {}
}

References

Glossary

(from DEFINITY Enterprise Communications Server Network Manager’s Guide)

ADJLK Adjunct Link(s); label for the driver authorization disk or the switch station type which is required to enable the appropriate link connection and is provided with the G3PD.
ASAI Adjunct Switch Application Interface. Also called CallVisor® ASAI. An option on the DEFINITY switch that enables the Adjunct Services Messaging Interface between the switch and an Adjunct Processor (such as a Tserver). This messaging interface allows the Adjunct Processor to perform call monitoring and control functions. Also a station type for the switch – Tserver link.
CSTA Computer Supported Telecommunications Applications. A CTI standard established by the European Computer Manufacturers Association (ECMA).
CTI Computer-Telephony Integration
DEFINITY LAN Gateway (DLG) This gateway provides a virtual point-to-point connection between a particular Telephony Server and an associated port on the DEFINITY switch. It translates Adjunct Switch Application Interface (ASAI) messages from Q.921 synchronous data frames to TCP/IP Ethernet packets. DLG functionality is provided by the software running on the Multi-function Board (MFB) in the DEFINITY switch.
G3 PBX Driver The G3 PBX Driver is a Dynamic Link Library (DLL) on a Windows NT machine. The G3PD software communicates with both the DEFINITY G3 PBX and the Tserver to provide switch services to Telephony Services applications.
G3 Private Data Support Library Private data is a mechanism that allows a switch to provide value-added services that go beyond those defined in CSTA. The G3PD provides a number of private data services (for example, switch-collected call prompter digits in events, or sending Dual Tone Multi-Frequency (DTMF) tones that make up the support library.
PBX Driver A PBX-specific Dynamic Link Library (DLL) that receives TSAPI messages from a Telephony Server, reformats them into a set of messages understood by the PBX, and sends the reformatted messages to the PBX over a CTI link. Provided by the vendor supplying the PBX and CSTA services for a switch.
Telephony Server A server that has Telephony Services software installed. More than one Telephony Server can exist on a LAN. See Tserver below.
TSAPI Telephony Services Application Programming Interface. The interface used by applications to make telephony requests, such as call control requests (make a call, transfer a call), monitor requests (trace a call), or routing requests.
Tserver A program installed on a Windows NT machine that provides Telephony Services and receives TSAPI messages from client and server applications. These messages are checked for permissions and, if allowed, forwarded to the PBX driver.

Boom 1998

BOOM 1998 Homepage

Picture of our project

BOOM Project Slides (Power Point)

Presentation to Lucent People

Internet and Telephony

Resources

http://java.sun.com/products/jtapi/

http://www.javaworld.com/javaworld/jw-02-1997/jw-02-api.telephony.html

http://www.lucent.com/what/prodover/02f_bc.html

http://www.ietf.org/internet-drafts/draft-antti-telephony-url-04.txt

http://www.ietf.org/internet-drafts/draft-burg-pint-framework-00.txt

http://www.ietf.org/internet-drafts/draft-calhoun-diameter-res-mgmt-00.txt

http://www.zdnet.com/anchordesk/story/story_2113.html

http://www.phonezone.com/sctp/index.htm

People

This project is developed under the supervision of S. Keshav of C/NRG. The people working in this project are :