Package com.avaya.jtapi.tsapi

This package is the Avaya implementation of JTAPI .

See:
          Description

Interface Summary
ITsapiAddress ITsapiAddress extends Jtapi Address, CallControlAddress, CallCenterAddress, RouteAddress.
ITsapiAddressMsgWaitingEvent ITsapiAddressMsgWaitingEvent implements Jtapi CallCtlAddrMessageWaitingEv.
ITsapiAgent ITsapiAgent extends Agent.
ITsapiCall ITsapiCall extends Jtapi Call, CallControlCall, CallCenterCall.
ITsapiCallIDPrivate ITsapiCallIDPrivate lets you retrieve TSAPI information associated with a JTAPI Call.
ITsapiCallInfo ITsapiCallInfo adds new call information for Call and events
ITsapiConnection ITsapiConnection extends Jtapi Connection and CallControlConnection.
ITsapiConnIDPrivate ITsapiConnIDPrivate lets you retrieve TSAPI information associated with a JTAPI Connection or TerminalConnection.
ITsapiConnNetworkReachedEvent ITsapiConnNetworkReachedEvent extends Jtapi CallCtlConnNetworkReachedEv.
ITsapiCSTAUniversalFailure the list of universal failure codes that can be returned in CSTA UniversalFailure unsolicited events and confirmation events.
ITsapiException The ITsapiException interface adds an errorType and errorCode to all Jtapi exceptions.
ITsapiPeer ITsapiPeer extends JtapiPeer to allow applications a mechanism to specify the vendor(s) they want to negotiate data with.
ITsapiProvider ITsapiProvider adds methods to obtain vendor-specific version information.
ITsapiProviderPrivate ITsapiProviderPrivate lets you retrieve or create JTAPI objects from TSAPI constructs.
ITsapiProviderTsapiInitializingEvent This interface indicates the provider is in the Tsapi initializing state.
ITsapiProviderTsapiInServiceEvent This interface indicates the provider is in the Tsapi in service state.
ITsapiProviderTsapiOutOfServiceEvent This interface indicates the provider is in the Tsapi out of service state.
ITsapiProviderTsapiShutdownEvent This interface indicates the provider is in the Tsapi shutdown state.
ITsapiRoutePrivate ITsapiRoutePrivate lets you retrieve TSAPI information associated with a JTAPI Route Session.
ITsapiRouteSession ITsapiRouteSession extends Jtapi RouteSession to return the Call object associated with the RouteSession.
ITsapiRouteUsedEvent ITsapiRouteUsedEvent extends Jtapi RouteUsedEvent.
ITsapiTerminal ITsapiTerminal extends Terminal, CallControlTerminal and AgentTerminal.
ITsapiTerminalConnection ITsapiTerminalConnection extends TerminalConnection, CallControlTerminalConnection, and MediaTerminalConnection.
ITsapiTrunk ITsapiTrunk extends Jtapi CallCenterTrunk.
LucentAddress This interface add Avaya-specific methods to the Address interface.
LucentAddressMsgWaitingEvent This interface add Avaya-specific methods to the CallCtlAddrMessageWaitingEv interface.
LucentAgent The LucentAgent interface extends the ITsapiAgent interface.
LucentCall The LucentCall interface extends ITsapiCall with Avaya-specific features.
LucentCallEx  
LucentCallInfo The LucentCallInfo interface provides access methods for Avaya-specific call information.
LucentConnection The LucentConnection interface extends ITsapiConnection with Avaya-specific features.
LucentConnectionID used to access the contents of a TSAPI ConnectionID as defined by Avaya's TSAPI service implementation.
LucentConnNetworkReachedEvent Returns supplementary call progress information from the ISDN Progress Indicator Information Element.
LucentProvider LucentProvider adds methods to obtain Avaya-specific switch information.
LucentRouteSession The LucentRouteSession interface extends ITsapiRouteSession with Avaya-specific features.
LucentRouteUsedEvent This private interface to the RouteUsedEvent helps pre-Avaya JTAPI 3.1 applications which use the JTAPI 1.2 RouteUsedEvent.getRouteUsed() method to be adapted to conform to to the JTAPI 1.4 specification with a one-line code change.
LucentTerminal The LucentTerminal interface extends the ITsapiTerminal interface.
LucentTerminalConnection The LucentTerminalConnection interface extends ITsapiTerminalConnection with Avaya-specific features.
LucentTrunk This interface extends the ITsapiTrunk interface with features specific to DEFINITY G3 PBX Driver Version 6 private data.
LucentV5Call The LucentV5Call interface extends ITsapiCall with Avaya-specific features.
LucentV5CallInfo The LucentV5CallInfo interface provides access to call information from Avaya DEFINITY switches with PBX Driver Version 5 private data.
LucentV5Connection The LucentV5Connection interface extends LucentConnection with features specific to DEFINITY G3 PBX Driver Version 5 private data.
LucentV5Provider LucentV5Provider adds the Advice Of Charge feature.
LucentV5Terminal The LucentV5Terminal interface extends the LucentTerminal interface.
LucentV5TerminalConnection The LucentV5TerminalConnection interface extends LucentTerminalConnection with features specific to DEFINITY G3 PBX Driver Version 5 private data.
LucentV5TerminalConnectionEx this interface extends the LucentV5TerminalConnection interface with features specific to DEFINITY G3 PBX Driver Version 5 private data - specifically, with a method that provides the ability to exert more control over how DTMF (dual tone multi-function) tones are generated.
LucentV5TerminalEx This interface extends LucentV5Terminal with additional features specific to DEFINITY G3 PBX Driver Version 5 private data.
LucentV6Agent This interface extends the LucentAgent interface with features specific to DEFINITY G3 PBX Driver Version 6 private data.
LucentV6Connection This interface extends LucentV5Connection with features specific to DEFINITY G3 PBX Driver Version 6 private data.
LucentV7Agent This interface extends the LucentV6Agent interface with features specific to DEFINITY G3 PBX Driver Version 7 private data.
LucentV7Call The LucentV7Call interface extends LucentV5Call with additional Avaya features exposed through the LucentV7CallInfo interface.
LucentV7CallInfo The LucentV7CallInfo interface provides access to call information from ECS DEFINITY switches with PBX Driver Version 7 private data.
LucentV7Provider adds queries which give information about the underlying Avaya switching platform.
LucentV7RouteSession The LucentV7RouteSession interface extends LucentRouteSession to add the ability to use the Network Call Redirection feature of call routing on Avaya switches.
 

Class Summary
CallClassifierInfo Provides information on call classifier port usage.
ConnectionID This class exposes the TSAPI ConnectionID, for implementors of other vendors' private data.
ExtendedDeviceID A TSAPI Extended Device ID.
LookaheadInfo Lookahead interflow is a DEFINITY G3 switch feature that routes some of the incoming calls from one switch to another so that they can be handled more efficiently and will not be lost.
LucentAgentStateInfo This is the object that is returned by the query getStateInfo() in LucentAgent.
LucentAgentStateInfoEx This is the object that is returned by the query getStateInfo() in LucentAgent.
LucentBillType This class defines constants used with the LucentV5Call.setBillRate() method.
LucentChargeAdviceEvent  
LucentChargeError This class defines constants used with the LucentChargeAdviceEvent.getChargeError() method.
LucentChargeType This class defines constants used with the LucentChargeAdviceEvent.getChargeType() method.
LucentEventCause gives the list of event cause values returned in a number of contexts by the underlying Avaya TSAPI service.
LucentRedirectType This class defines constants used with LucentV7RouteSelect to specify Network Call Redirection.
LucentV5AgentStateInfo This is the object that is returned by the query getStateInfo in LucentAgent.
LucentV5TerminalConnectionExImpl  
LucentV6AgentStateInfo This is the object that is returned by the query getStateInfo method of the LucentAgent interface, with the DEFINITY G3 Driver supporting and using Private data version 6.
LucentV6AgentStateInfoEx This is a new object that will be return by the query getStateInfo method of the LucentAgent interface.
NetworkProgressInfo Contains supplementary call progress information from the ISDN Progress Indicator Information Element.
OriginalCallInfo Original Call Information is made available in conjunction with the consult() service.
Q931UserToUserInfo User-to-user information used specifically for a Q.931/I.451 User-Network Call Control Message.
TrunkGroupInfo Provides information on trunk group usage.
TsapiPeer TsapiPeer implements JtapiPeer.
TsapiPrivate The TsapiPrivate object is used to pass vendor-specific information between an application and the service provider, via the JTAPI data interfaces.
UserEnteredCode Contains the code/digits that may have been entered by the caller through the DEFINITY G3 call prompting feature or the collected digits feature.
UserToUserInfo User-to-user information is an ISDN feature which allows end-to-end transmission of application data during call setup/teardown.
V5NetworkProgressInfo Adds DEFINITY G3V6-specific data to the NetworkProgressInfo event
V5OriginalCallInfo This class adds DEFINITY G3 PBX Driver Version 5 private data extensions to OriginalCallInfo.
V7DeviceHistoryEntry an entry that represents a connection that was formerly on a call.
V7OriginalCallInfo This class adds DEFINITY G3 PBX Driver Version 7 private data extensions to OriginalCallInfo.
 

Exception Summary
TsapiInvalidArgumentException TsapiInvalidArgumentException extends Jtapi InvalidArgumentException to add implementation specific errorType and errorCode.
TsapiInvalidPartyException TsapiInvalidPartyException extends Jtapi InvalidPartyException to add implementation specific errorType and errorCode.
TsapiInvalidStateException TsapiInvalidStateException extends Jtapi InvalidStateException to add implementation specific errorType and errorCode.
TsapiMethodNotSupportedException TsapiMethodNotSupportedException extends MethodNotSupportedException to add implementation specific errorType and errorCode.
TsapiPlatformException TsapiPlatformException extends Jtapi PlatformException to add implementation specific errorType and errorCode.
TsapiPrivilegeViolationException TsapiPrivilegeViolationException extends PrivilegeViolationException to add acs / csta error codes.
TsapiProviderUnavailableException TsapiProviderUnavailableException extends Jtapi ProviderUnavailableException to add implementation specific errorType and errorCode.
TsapiResourceUnavailableException TsapiResourceUnavailableException extends Jtapi ResourceUnavailableException to add implementation specific errorType and errorCode.
 

Package com.avaya.jtapi.tsapi Description

This package is the Avaya implementation of JTAPI .

The Avaya Implementation of JTAPI 

Avaya MultiVantage Application Enablement Services (AE Services) JTAPI, Release 3.1.0, supports the JTAPI 1.4 specification. The Avaya Implementation of JTAPI supports the JTAPI 1.4 specification with Observers only, not Listeners. The JTAPI 1.4 specification is a superset of the JTAPI 1.2 specification, and the Avaya implementation of JTAPI 1.4  includes the Observer (1.2) methods.

This section describes general information about JTAPI and then goes into greater detail about the level of support  AE Services JTAPI provides for interfaces and associated methods. It includes the following topics:

NOTE: Be sure to read both the JTAPI Client Readme (packaged with the AE Services JTAPI client) and the JTAPI SDK Readme (packaged with the AE Services JTAPI SDK). 


Compatibility 

The JTAPI Client Release 3.1.0 is backward compatible with the following Servers:

JTAPI Client R 3.1.0 requires Sun Java 2 SDK, Standard Edition, JDK v1.4.2 or higher


Source code changes required for migrating to AE Services JTAPI, Release 3.1.0

For most applications, all that is required is a re-compile.
There are, however, two source incompatibilities. If these are in your program, you will need to make source changes

Replace getCause with getReason 

Change this: (JTAPI 1.2 API code)

     import javax.telephony.ProviderUnavailableException;
	catch (ProviderUnavailableException e)
	{
	     System.out.println("ProviderUnavailableException: returns "+ e.getCause());
	}
To this: (JTAPI 1.4 API code)
     import javax.telephony.ProviderUnavailableException;
	catch (ProviderUnavailableException e)
	{
	    System.out.println("ProviderUnavailableException: returns "+ e.getReason());
    }

Replace RouteUsed with LucentRouteUsed

The AE Services JTAPI 3.1.0 implementation uses a private interface to the RouteUsed event (LucentV7RouteUsed). This private RouteUsed event returns an address (which is consistent with the JTAPI 1.2 specification), instead of a terminal (which is specified by the 1.4 JTAPI specification). If you plan to use the RouteUsed event, you must make sure you recode the RouteUsed event to the private from. 
Change this: (JTAPI 1.2 API code)
Address ad; RouteUsed ev;
ad= ev.getRouteUsed(); 
To this: (JTAPI 1.4 API code)
Address ad; RouteUsed ev;
ad= ((LucentRouteUsed)ev).getRouteUsedAddress();

JTAPI new features available in the Properties file (TSAPI.PRO)

AE Services JTAPI Release 3.1.0 provides enhanced JTAPI tracing and a configurable TCP timeout that allows a timeout before moving to the next AE Services server on the server list.

Packaging Simplification

AE Services JTAPI Release 3.1.0 is now distributed as a single JAR file. There is no separate debug JAR.


Application Development Basics

The following list describes the basic steps that are common to virtually all JTAPI applications.

  1. Obtain a JtapiPeer object using the JtapiPeerFactory class. For example:
    (The TsapiPeer class, com.avaya.jtapi.tsapi.TsapiPeer,  represents the Avaya JTAPI implementation.)

jtapiPeer = JtapiPeerFactory.getJtapiPeer("com.avaya.jtapi.tsapi.TsapiPeer") 

  1. Obtain a list of available tlinks by using the getServices() method of the JtapiPeer class. For example: 

String[ ] tlinks = jtapiPeer.getServices(); 

  1. Obtain a Provider object using the getProvider() method of the TsapiPeer class. Specify the aeserver tlink name and aeserver login and password, for example: 

provider = tsapiPeer.getProvider("avaya#cstaserv#csta#aeserver;" + "login=user1;" + "passwd=user1pass;")

where 

 

Applications that register route requests 

The methods that return addresses (such as getAdresses() on Provider and getRouteableAddresses() on CallCenterProvider) will always return an address for the special string ALL_ROUTE_ADDRESS, which is defined in RouteAddress. However, an application will be able to successfully register a route for the address only if the user, on behalf of whom the application is making the request, is administered in the AE Services SDB with the Routing Services Access Group set to 'Any Device'.

Applications that use Expert Agent Selection 

If your application runs with Communication Manager Expert Agent Selection (EAS), use the addAgent method on the javax.callcenter.AgentTerminal interface to log in an EAS agent, and just let the ACDAddress field be null.

JTAPI Sample Applications 

The AE Services JTAPI SDK provides the following sample JTAPI applications (or applets) to help you get started. Each application is in a separate directory under SAMPLES. Each directory contains both the source and the executable files. Examine the source files -- *.java and *.html -- for information about the JTAPI interfaces used. The following sections contain high-level descriptions of these applications, along with information about how to configure your system to run them. 

Note: These sample applications assume that you are using the ecsjtapia.jar file included (which is a component of the AE Services JTAPI Client)  and the Sun appletviewer included in the Java Development Kit (JDK) available from JavaSoft at Sun.

ACD applet 

This applet demonstrates using the JTAPI Call Center package. The ACD applet does the following operations: gets the ACDAddresses known to the provider and the agents logged-in at those ACD splits. tries to log-in two agents specified as parameters in the acd.html file. 

Follow these steps to run the ACD applet.

  1. Modify CLASSPATH to include ecsjtapia.jar and the directory containing the tsapi.pro file. 
  2. Modify the tsapi.pro file to include the IP address or hostname of your AE Server. 
  3. Modify the acd.html file to customize it for your environment. You will need to change the following applet parameters: 
    • SERVICENAME - Advertised name of the CTI link 
    • LOGIN - CT User login (authentication login) 
    • PASSWORD - CT User password (authentication password) 
    • ACD - Split extension for an ACD administered on your PBX 
    • AGENT1 - Agent for split specified (logged-off) 
    • AGENT2 - Agent for split specified (logged-off) 
  4. From the command prompt on Windows, type: 
    appletviewer acd.html 

CallLog Application 

This application uses JTAPI along with some of the AE Services extensions to JTAPI to access functionality specific to Communication Manager. The CallLog application has the following purposes:

Follow these steps to run the CallLog application, 

  1. Modify classpath  to include ecsjtapia.jar, and the directory containing the tsapi.pro file.
  2. Modify the tsapi.pro file to include the IP address or hostname of your AE Server .
  3. From the command prompt on Windows, type:
    start java CallLog  

TSTest Applet/Application (in the TSTest directory)

Use TSTest to make a call in order to test the installation of the JTAPI client software. TSTest can be executed as an applet or a stand-alone Java application. Follow these steps to set up the environment for TSTest. 

  1. Modify classpath  to include ecsjtapia.jar, and the directory containing the TSAPI.PRO file.
  2. Modify the tsapi.pro file to include the IP address or hostname of your AE Server.

Running TSTest as a standalone java application

To run TSTest as a standalone java application, do the following:

Running TSTest as an applet for Internet Explorer

To run TSTest as an applet for Internet Explorer, do the following:

  1. Copy the TSTest directory and the ecsjtapia.jar file to the web server.
  2. Copy the modified tsapi.pro file to the client's java library directory. (On a Windows 2000 or Windows XP  this is the java\lib directory.)
  3. Access the web page tstest.html to run the applet.

Route applet

The route applet demonstrates the use of the JTAPI Call Center package. It is a routing application that registers the VDN specified in the route.html for routing. When a call is received by the VDN, the applet requests a route destination. When the route destination is entered, the call is routed to that destination.

Running the Route applet

Follow these steps to run the Route Applet.

  1. Modify CLASSPATH to include ecsjtapia.jar, and the directory containing the tsapi.pro file.
  2. Modify the tsapi.pro file to include the IP address or hostname of your AE Server.
  3. Modify the route.html file to customize it for your environment. You will need to change the following applet parameters:
  1. From the command prompt on Windows, type: 
    appletviewer route.html 

JTAPI implementation details

The following sections describes only the JTAPI packages that contain interfaces and methods that have either been specially implemented or are not supported. 

Note: The JTAPI Phone Package and the JTAPI Phone Events Package are not supported.


JTAPI Core Package implementation details

The following table describes the Core Package interfaces and methods that are specially implemented. 

Interface Method Implementation Notes
Address  getTerminals AE Services allows for an instance of the TSAPI Service without the TSAPI Service Security Database. The absence of the AE Services Security Database (SDB) results in the return of a NULL for address.getTerminal and terminal.getAddress because JTAPI depends on the contents of the SDB. Without the SDB, there is no listing of addresses and no information to pass.
Connection disconnect For Communication Manager, the Connection/disconnect method must be called with Connection in the CONNECTED state. 
JtapiPeer Not applicable Obtain a JtapiPeer object using the JtapiPeerFactory class. The TsapiPeer class represents this implementation of the JtapiPeer. To obtain TsapiPeer, do:JtapiPeerFactory.getJtapiPeer(com.avaya.jtapi.tsapi.TsapiPeer)
JtapiPeer getServices The JtapiPeer/getServices method returns an array of service names that can be used to build the String needed to be passed to JtapiPeer.getProvider(). These Strings are the AE Server tlink names.
JtapiPeer getProvider The string provided by JtapiPeer/getProvider must contain a AE Services tlink name as well as login and password for user authentication. The format of the String must be:<tlink>;login=<loginID>;passwd=<pw>
Terminal  getAddresses AE Services allows for an instance of the TSAPI Service without the TSAPI Service Security Database. The absence of the AE Services Security Database (SDB) results in the return of a NULL for address.getTerminal and terminal.getAddress because JTAPI depends on the contents of the SDB. Without the SDB, there is no listing of addresses and no information to pass.

JTAPI Call Center Package implementation details

The following table describes the Call Center Package interfaces and methods that either specially implemented or not supported.

Interface  Method Implementation Notes
ACDAddress  getOldestCallQueued  Method not supported.
CDAddress  getRelativeQueueLoad  Method not supported.
ACDAddress  getQueueWaitTime  Method not supported.
ACDAddress  getACDManagerAddress Method not supported.
ACDManagerAddress  getACDAddresses Method not supported.
Agent  getAgentID The AgentObject/getAgentID method returns a null string for Avaya Communication Manager.
AgentTerminalObserver   No methods defined. The AgentTerminalObserver only supports the AgentTermLoggedOnEv and AgentTermLoggedOffEv when the state change is produced through the JTAPI application. In order to monitor agent activity (e.g., agents logging on and off manually), an ACDAddressObserver should be added to the ACDAddress.
CallCenterCall connectPredictive The CallCenterCall/connectPredictive method is supported for Communication Manager, but he answeringEndpointType parameter is not supported. The maxRings and answeringTreatment parameters are supported. If the Call is observed and the ACDAddress or AgentTerminal is also call observed, then two unique Call objects will be created that are associated with the same real call. Other methods must be used to determine that there are two Call objects representing the same real call: 
  • One way to do this, if the called address is unique among all calls, is to use the Call.getCalledAddress() method. 
  • Another way is to use the UserToUserInfo Avaya MultiVantage Software server-specific extension. The application can send a unique ID in the UserToUserInfo with the connectPredictive and this ID will be reported in call events for the ACDAddress or AgentTerminal. The UserToUserInfo can also be retrieved directly from the Calls.

In any case, both Call objects and all Connections and TerminalConnections in both Calls are valid. Valid requests may be made of any of the objects.

CallCenterCall  getApplication data Method not supported.
CallCenterCall  setApplication data Method not supported.
RouteAddress   registerRouteCallback The RouteAddress/registerRouteCallback method is supported. Only one RouteCallback may be registered for an Address at a time.
RouteSession   selectRoute The RouteSession/selectRoute method is supported. Only the first route specified in the routeSelected parameter is used. The subsequent routes are ignored.

JTAPI Call Center Events Package implementation details

The following table describes the Call Center Events package interfaces and methods that are either specially implemented or not supported.

Interfaces  
Implementation notes
ACDAddrNotReadyEv 
These events are not supported. They will be generated by the implementation and sent to the application when an explicit state change is requested by the application.
ACDAddrReadyEv 
ACDAddrWorkNotReadyEv 
ACDAddrWorkReadyEv 
AgentTermBusyEv 
AgentTermEv 
AgentTermNotReadyEv 
AgentTermReadyEv 
AgentTermWorkNotReadyEv 
AgentTermWorkReadyEv 
CallCentCallAppDataEv 

 

JTAPI Call Control Package implementation details

The following table describes the Call Control Package interfaces and methods that are either specially implemented or not supported.

Interface  
Method Implementation notes
CallControlAddress 
setForwarding Avaya supports the FORWARD_UNCONDITIONALLY forwarding type only when used in combination with the ALL_CALLS filter type. 
CallControlAddress getDoNotDisturb The following methods are paired synonyms:
  • CallControlAddress/getDoNotDisturb 
  • CallControlTerminal/getDoNotDisturb 
  • CallControlAddress/setDoNotDisturb 
  • CallControlTerminal/setDoNotDisturb

For these methods, there is no distinction between an Address and a Terminal. CallControlAddress.getDoNotDisturb() and CallControlTerminal.getDoNotDisturb() always return equivalent values.

CallControlAddress setDoNotDisturb The following methods are paired synonyms:
  • CallControlAddress/getDoNotDisturb 
  • CallControlTerminal/getDoNotDisturb 
  • CallControlAddress/setDoNotDisturb 
  • CallControlTerminal/setDoNotDisturb

For these methods, there is no distinction between an Address and a Terminal. CallControlAddress.getDoNotDisturb() and CallControlTerminal.getDoNotDisturb() always return equivalent values.

 

CallControlCall 
offHook  Method not supported.
CallControlCall transfer(String address)  Method not supported.
CallControlCall consult(TerminalConnection termconn) Method not supported.
CallControlConnection 
accept     Method not supported.
CallControlConnection  reject  Method not supported.
CallControlConnection  addToAddress  Method not supported.
CallControlConnection  park  Method not supported.
CallControlTerminal 
getDoNotDisturb  The following methods are paired synonyms:
  • CallControlAddress/getDoNotDisturb 
  • CallControlTerminal/getDoNotDisturb 
  • CallControlAddress/setDoNotDisturb 
  • CallControlTerminal/setDoNotDisturb

For these methods, there is no distinction between an Address and a Terminal. CallControlAddress.getDoNotDisturb() and CallControlTerminal.getDoNotDisturb() always return equivalent values.

CallControlTerminal setDoNotDisturb  The following methods are paired synonyms:
  • CallControlAddress/getDoNotDisturb 
  • CallControlTerminal/getDoNotDisturb 
  • CallControlAddress/setDoNotDisturb 
  • CallControlTerminal/setDoNotDisturb

For these methods, there is no distinction between an Address and a Terminal. CallControlAddress.getDoNotDisturb() and CallControlTerminal.getDoNotDisturb() always return equivalent values.

CallControlTerminal pickupFromGroup (String pickupGroup, Address terminalAddress)  Method not supported.
CallControlTerminalConnection 
join  Method not supported.
CallControlTerminalConnection leave  Method not supported. 

JTAPI Call Control Events Package implementation details

The following table describes the Call Control Events Package interfaces and methods that are specially implemented.

Interface  
Method Implementation notes
CallCtlAddrDoNotDisturbEv 
getDoNotDisturbState The CallCtrlAddrDoNotDisturbEv event is sent even if DoNotDisturb was changed using CallControlTerminal.setDoNotDisturb(). For DoNotDisturb, there is no distinction between an Address and a Terminal.
CallCtlConnDialingEv Not applicable Interface not supported.
CallCtlConnOfferedEv Not applicable Interface not supported.
CallCtlTermConnInUseEv Not applicable Interface not supported.

JTAPI Media Package implementation details

The following table describes the Media Package methods that are not supported.

Interface  
Methods Implementation notes
MediaTerminalConnection
getMediaAvailability Method not supported. 
MediaTerminalConnection getMediaState Method not supported. 
MediaTerminalConnection useDefaultSpeaker Method not supported. 
MediaTerminalConnection useRecordURL Method not supported. 
MediaTerminalConnection useDefaultMicrophone Method not supported. 
MediaTerminalConnection usePlayURL Method not supported. 
MediaTerminalConnection startPlaying Method not supported. 
MediaTerminalConnection stopPlaying Method not supported. 
MediaTerminalConnection startRecording Method not supported. 
MediaTerminalConnection stopRecording Method not supported. 
MediaTerminalConnection setDtmfDetection Method not supported. 
MediaTerminalConnection generateDtmf Method not supported. 

JTAPI Media Events Package implementation details

The following table describes the Media Events Package interfaces and methods that are either specially implemented or not supported.

Interface  
Implementation notes
MediaTermConnAvailableEv 
Not supported
MediaTermConnDtmfEv 
Although the MediaTermConnDtmfEv interface has been defined as a TerminalConnection event, the TerminalConnection field will be null. The Call field will be filled in with the call to which the DTMF digits have been applied.This event is sent only when a DTMF detector is attached to the call and DTMF tones are detected. The tone detector is disconnected when the far end answers or "#" is detected. This event is used in conjunction with the Communication Manager-specific extension LucentRouteSession/selectRouteAndCollect.
MediaTermConnStateEv 
Not supported.
MediaTermConnUnavailableEv
Not supported.

JTAPI Private Data Package implementation details

The following table describes the JTAPI Private Data package interfaces and methods that are specially implemented.

Interface  
Method Implementation notes
PrivateData 
setPrivateData For this method, the private data Object parameter must be an instance of TsapiPrivate.
PrivateData sendPrivateData For this method, the private data Object parameter must be an instance of TsapiPrivate.

TSAPI Service Extensions to JTAPI 

This information is optional, and it applies to non-standard additions to JTAPI. This package is available only from the Avaya AE Services implementation of JTAPI and is not available from any other implementation of JTAPI.  It contains the AE Services extensions to JTAPI that can be used to program applications for any switch that conforms to the CSTA Specification and works in an AE Server environment.

What are the Extensions?

There are two types of extensions: extensions to JTAPI exceptions and extensions to JTAPI Provider events.

Extensions to JTAPI Exceptions

AE Services extensions to the JTAPI exceptions provide more detailed error information than is defined in JTAPI. These extensions consist of the CSTA and ACS error codes provided by TSAPI.

For information about Computer-Supported Telecommunications Applications (CSTA) and API Control Services (ACS) error codes, refer to Avaya MultiVantage Application Enablement Services TSAPI Programmer's Reference, 02-300545

Extensions to JTAPI Provider Events

AE Services defines additional JTAPI Provider events. These events provide more detailed Provider state changes. These TSAPI Provider states map to JTAPI Provider states as follows:

TSAPI Provider State JTAPI Provider State
ITsapiProvider.TSAPI_OUT_OF_SERVICE Provider.OUT_OF_SERVICE
ITsapiProvider.TSAPI_INITIALIZING Provider.OUT_OF_SERVICE
ITsapiProvider.TSAPI_IN_SERVICE Provider.IN_SERVICE
ITsapiProvider.TSAPI_SHUTDOWN Provider.SHUTDOWN
 

Communication Manager Extensions to JTAPI

This section  describes non-standard additions to JTAPI. This package is available only from the Avaya implementation of JTAPI and is not available from any other implementation of JTAPI.

This information is optional. It is an intermediate private data package that allows programmers to access private data through Java interfaces rather than through raw private data bytes. It contains the Communication Manager specific feature extensions that support the AE Services implementation of JTAPI intended for applications that operate solely with the Communication Manager software and the AE Services TSAPI Service. 

Who should be using these extensions?

This section is intended for application programmers with a knowledge of both the Java programming language and JTAPI.

Communication Manager  features provided by Communication Manager- specific extensions to JTAPI

This table summarizes the the Communication Manager features that are available as an extensions to JTAPI.

Feature Name and Description Class or Interface Returned/Used by Methods in Class or Interface
Advice of Charge - Reports network charges incurred by outgoing trunk calls (supported by G3V5) LucentChargeAdviceEvent LucentV5Provider
Agent Work Mode - Specifies the overriding mode of the Agent; affects the cycle of the possibly occurring Agents states.

G3V5 adds support for: reason code.

G3V6 adds support for Pending Work Modes. A JTAPI Application may request to change an Agent's state to Agent.WORK_NOT_READY and Agent.NOT.READY, and to have the state change be held "pending" until all current calls active on the Agent's Agent Terminal are completed.

Not applicable LucentAgent

LucentAgentStateInfo

LucentTerminal

LucentV5Terminal

LucentV5TerminalEx

LucentV5AgentStateInfo

LucentV6Agent

LucentV6AgentStateInfo

Call Classifier Information - Provides information on call classifier port usage Provides information on call classifier port usage CallClassifierInfo LucentProvider
Collect Digits - Allows a route request to wait for a specified number of digits to be collected Not applicable LucentRouteSession
Dial-Ahead Digits - Allows a route request to place digits in a dial-ahead buffer Allows a route request to place digits in a dial-ahead buffer  Not applicable LucentRouteSession
Direct Agent Calls - Allows calls to be made to and from specific logged-in ACD Agents Allows calls to be made to and from specific logged-in ACD Agents Not applicable  LucentCall

LucentRouteSession

Dropping Resources - Allows specific switch resources to be dropped from the call Allows specific switch resources to be dropped from the call Not applicable LucentConnection LucentTerminalConnection
Flexible Billing - Allows changing the billing rate for incoming 900-type calls (supported by G3V5)  Not applicable LucentV5Call
Flexible Generation of DTMF Tones - Enables an application to specify tone duration and inter-tone delay duration. Not applicable LucentV5TerminalConnectionEx
Integrated Directory Name - Allows the G3 Integrated Directory Database name to be returned  Not applicable LucentAddress

LucentTerminal

Look-Ahead Interflow Information - Can be used by a routing server application to determine the proper destination of a call May be used by a routing server application to determine the proper destination of a call LookaheadInfo LucentCallInfo

LucentCallInfo

Lucent Call Information - Provides Avaya ECS -specific call information on Call and CallControlCall events; information includes delivering ACD, distributing Address, originating Trunk, reason for last Call event, and other information.

G3V5 adds support for: Universal Call ID, Originator Type, and Flex Billing Flag. Provides Avaya ECS -specific call information on Call and CallControlCall events; information includes delivering ACD, distributing Address, originating Trunk, reason for last Call event, and other information.

LucentCallInfo

LucentV5CallInfo

LucentCallInfo

LucentV5CallInfo

Implemented by Lucent call objects, route session objects, and CallControlCall events.LucentCallInfo (extended by LucentCall; extended by LucentV5CallInfo; extended by CallControlCall events)
Message Waiting Application Information - Indicates which types of applications have enabled message waiting  Not applicable LucentAddress LucentAddressMsgWaitingEvent
Network Progress Information - Contains supplementary call progress information from the ISDN Progress Indicator Information Element.

G3V5 adds support for: trunk. 

NetworkProgressInfo

V5NetworkProgressInfo

LucentConnNetworkReachedEvent
Original Call Information - Contains information about the original call in conjunction with the Call.consult() service.

G3V5 adds support for: Universal Call ID, Originator Type, and Flex Billing Flag.

OriginalCallInfo

V5OriginalCallInfo

LucentCallInfo

LucentV5CallInfo

Priority Calls - Enables priority calling Enables priority calling. Not applicable LucentCall

LucentRouteSession

Selective Listen - Allows control of listen paths between parties on a conference call (supported by G3V5). Not applicable LucentV5TerminalConnection
Single Step Conference - Adds another party to a call (added party does not alert; used mainly for service observing) (supported by G3V5). Not applicable LucentV5Call
Supervisor Assist Calls - Allows logged-in ACD Agents to place calls to a supervisor’s extension. Not applicable LucentCall
Switch Date and Time Information - Returns the current date and time from Communication Manager. Not applicable LucentProvider
Trunk Group Information - Provides information on trunk group usage.

Trunk associates group and member information with a connection. If a connection is associated with a trunk party, then the application can get trunk group number and trunk group member information.

TrunkGroupInfo LucentProvider

LucentV6 Connection

LucentTrunk

ITsapiTrunk

Universal Call ID - A call identifier that is globally unique across switches and the public network (supported by G3V5). Not applicable LucentV5CallInfo (extended by LucentV5Call)
User Entered Code - The code/digits that may have been entered by the caller through the G3 Call Prompting feature of the Collected Digits feature. UserEnteredCode LucentCallInfo

OriginalCallInfo

User-to-User Information An ISDN feature that allows end-to-end transmission of application data during call setup/teardown. UUI can be specified, and will be made available, accommodating string values up to 96 characters long. UserToUserInfo LucentCall

LucentCallInfo

LucentConnection

LucentRouteSession

LucentTerminalConnection

LucentCallInfo

Network Call Redirection -  The Adjunct Route support for Network Call Redirection capability allows an adjunct to request that an incoming trunk call be rerouted using the Network Call Redirection feature supported by the serving PSTN instead of having the call routed via a tandem trunk configuration.

The LucentV7RouteSession interface extends LucentRouteSession to add the ability to use the Network Call Redirection feature of call routing on Avaya switches. When a Provider is bound to a ECS switch, this interface may be used to access this additional capability.The route session object which implements this interface also implements the ECSCallInfo interface.

Not applicable LucentV7CallInfo

LucentV7RouteSession

 

ISDN Redirecting Number (Redirecting Number Information Element presented through DeviceHistory) - The .ISDN Redirecting Number for ASAI Events. Communication Manager feature will be used by CTI applications to provide enhanced treatment of incoming ISDN calls routed over an Integrated Services Digital Network (ISDN) facility.

Device History Entry - The V7DeviceHistoryEntry is an entry that represents a connection that was formerly on a call. This provides equivalent content to the Avaya TSAPI service implementation of CSTA3 DeviceHistory parameter (see ECMA-269 Edition 5, "12.2.13 DeviceHistory"). Note that private interfaces are defined to enable an application to use the TSAPI information (specifically the ConnectionID).

V7DeviceHistory

V7OriginalCallInfo

LucentV7CallInfo

LucentV7RouteSession

 

 

Query Device Name - The private Query DeviceName service allows an application to query the switch to identify the Integrated Directory name assigned to an extension. With this version of private data, when a name has been assigned to an Attendant station extension, then an application can use the getDirectoryName method of the LucentAddress interface to get the configured Integrated Directory name assigned to that attendant extension. Not applicable LucentAddress
Enhanced Get API Capabilities function - The GetAPICaps function is enhanced to return the following information. 
  • Administered Switch Version 
  • Software Version 
  • Offer Type (values to be added in future releases of TSAPI Service)
  • Server Type (more values to be added in future releases )
    This field will be a null string for DEFINITY systems. Valid values for Linux systems include: isp2100, premio, icc, laptop, ld380g3, hs20_8832_vm, hs20, ibmx305, ibmx306, and tn8400 
  • the maximum number of device history entries (devicehistoryCount)
Not applicable
LucentV7Provider
Increased Aux Reason Codes - AE Services supports the full range of Aux reason codes (values 0-99) that Communication Manager provides. Not applicable LucentV7Agent
Expanded universal failure error codes - The list of universal failure codes that can be returned in CSTA UniversalFailure unsolicited events and confirmation events. This is useful, for example, for JTAPI exceptions thrown by the Avaya implementation which returns these values. Not applicable ITsapiCSTAUniversalFailure
User-to-user information used specifically for a Q.931/I.451 User-Network Call Control Message - This form of UUI can be used to send commands out to an ISDN network, and subsequently to an SS7 network if an ISDN/SS7 gateway is used. An object of this type is initialized with a byte array value (see constructor) and its value may be retrieved as a byte array (see UserToUserInfo).This information, when available, is obtained via the LucentCallInfo.getUserToUserInfo() method. An instance so acquired may be classified using 'instanceof'. Q931UserToUserInfo LucentCall

LucentCallInfo

LucentConnection

LucentRouteSession

LucentTerminalConnection

LucentCallInfo

Connection ID - The LucentConnectionID is used to access the contents of a TSAPI ConnectionID as defined by Avaya's TSAPI service implementation. Not applicable LucentConnectionID
Added Cause Values - The LucentEventCause gives the list of event cause values returned in a number of contexts by the underlying Avaya TSAPI service. Note that 'EC_NONE' through 'EC_VOICE_UNIT_INITIATOR' values are taken from of the ECMA-179 'CSTA 1 Services' specification, and the subsequent cause value extensions, added specifically to expose additional capability, adopted names and values outlined in the CSTA3 service specification (ECMA-269, 'CSTA 3 Services'). Not applicable LucentEventCause
Private interface to RouteUsedEvent returns an Address - This private interface to the RouteUsedEvent helps pre-Avaya JTAPI 3.1 applications which use the JTAPI 1.2 RouteUsedEvent.getRouteUsed() method to be adapted to conform to to the JTAPI 1.4 specification with a one-line code change. The problem is that the JTAPI 1.4 getRouteUsed method no longer returns an Address; instead it now returns a Terminal. In many scenarios this is a problem because no Terminal may be used to represent an off-switch party, so for those 'routes' this will return 'null'. An Address may be returned for off-switch parties. To solve this problem caused by the new return value, this private interface includes a new method that returns what the JTAPI 1.2 method used to use (an Address), so that it can be used as a replacement API call. Not applicable LucentRouteUsedEvent
Access to expanded range of reason codes - This interface extends the LucentV6Agent interface with features specific to DEFINITY G3 PBX Driver Version 7 private data. When a Provider is bound to a DEFINITY switch which supports V7 private data, this interface may be used to access additional capabilities. This interface specifically provides access to the ability to set a broader range of reason codes for the setState() method. Specifically: it is an application-defined reasonCode (1-99) which may be specified when the state is set to Agent.NOT_READY or Agent.LOG_OUT. A zero (0) value is also allowed, meaning "no reason". Not applicable LucentV7Agent
Access to additional call capabilities - The LucentV7Call interface extends LucentV5Call with additional Avaya features exposed through the LucentV7CallInfo interface. When a Provider is bound to a Avaya CM switch with PBX Driver Version 7 private data, that interface may be used to access additional Call capabilities. Not applicable LucentV7Call
Access to call information from DEFINITY with version 7 private data - The LucentV7CallInfo interface provides access to call information from ECS DEFINITY switches with PBX Driver Version 7 private data. These methods are implemented on the call object, the route session object, and on certain call control call events. For example, if a CallControlCallObserver receives a CallCtlConnAlertingEv, it may be cast to LucentV7CallInfo to use the getDeviceHistory() method. These methods may return null if the requested data is not available. Not applicable LucentV7CallInfo
Expanded queries for Avaya Communication Manager - Adds queries which give information about the underlying Avaya switching platform. Introduced with TSAPI service PBX Driver Private Data Version 7, with TSAPI service on Application Enablement Services Server 3.1. Not applicable LucentV7Provider

Using Avaya  Private Data Extensions

This section describes nonstandard additions to JTAPI. This package is available only from the Avaya  implementation of JTAPI and is not available from any other implementation of JTAPI.

Who Should Be Using These Extensions?

The private data extensions to JTAPI  allow application programmers to interpret or use private data when their applications are supplied with private data in its raw form (i.e., without an intermediate private data package.)

The remainder of this section provides guidelines for using or interpreting private data when it is supplied in its raw form.


Converting TSAPI Constructs to JTAPI Objects

Some Avaya private interface methods expose raw TSAPI constructs.  The ITsapiProviderPrivate interface defines methods that allow raw TSAPI constructs to be converted into their JTAPI equivalents. The following table lists the raw TSAPI constructs that may be converted into their JTAPI equivalents. It lists the TSAPI constructs, the Java version (the Java class) of the TSAPI constructs, the JTAPI objects to which they are converted, and the method to be used for the conversion.

Mapping of TSAPI Constructs to JTAPI Objects

TSAPI Construct Java Class JTAPI Object

Conversion Method in TsapiProviderPrivate

ExtendedDeviceID_t ExtendedDeviceID Address getAddress()
ExtendedDeviceID_t ExtendedDeviceID Terminal getTerminal()
ConnectionID_t ConnectionID Connection getConnection()
ConnectionID_t ConnectionID TerminalConnection getTerminalConnection()
callID (field in a ConnectionID_t) int Call getCall()

TSAPI constructs such as DeviceID may be converted to JTAPI objects via standard JTAPI methods such as Provider.getAddress(String) and Provider.getTerminal(String).

Many TSAPI requests have corresponding JTAPI interfaces and methods, as listed in TSAPI Requests with Associated JTAPI Interfaces and Methods. See TSAPI Requests without Associated JTAPI Mapping  for the TSAPI requests that do not have corresponding JTAPI interfaces and methods. Therefore, there is no access to the private data for these TSAPI requests.

Mapping of Possible JTAPI Events to TSAPI Events lists TSAPI events and corresponding JTAPI events that might be in the event array in which the PrivateEvent is delivered.


TSAPI Requests with Associated JTAPI Interfaces and Methods

TSAPI Requests JTAPI Interfaces JTAPI Methods
cstaMakeCall Call connect
cstaClearConnection Connection disconnect
acsEnumServerNames JtapiPeer getServices
acsOpenStream JtapiPeer getProvider
acsCloseStream Provider shutdown
cstaAnswerCall TerminalConnection answer
cstaSetAgentState AgentTerminal

Agent

addAgent

setState

cstaQueryAgentState Agent getState
cstaMakePredictiveCall CallCenterCall connectPredictive
cstaRouteRegisterReq RouteAddress registerRouteCallback
cstaRouteRegisterCancel RouteAddress cancelRouteCallback
cstaRouteSelectInv RouteSession selectRoute
cstaRouteEndInv RouteSession endRoute
cstaSetForwarding CallControlAddress setForwarding

cancelForwarding

cstaQueryForwarding CallControlAddress getForwarding
cstaQueryDoNotDisturb CallControlAddress getDoNotDisturb
cstaSetDoNotDisturb CallControlAddress setDoNotDisturb
cstaQueryMsgWaitingInd CallControlAddress getMessageWaiting
cstaSetMsgWaitingInd CallControlAddress setMessageWaiting
cstaClearCall CallControlCall drop
cstaConferenceCall CallControlCall conference
cstaTransferCall CallControlCall transfer
cstaConsultationCall CallControlCall consult
cstaDeflectCall CallControlConnection redirect
cstaQueryDoNotDisturb CallControlTerminal getDoNotDisturb
cstaSetDnd CallControlTerminal setDoNotDisturb
cstaPickupCall CallControlTerminal pickup
cstaGroupPickupCall CallControlTerminal pickupFromGroup
cstaHoldCall CallControlTerminalConnection hold
cstaRetrieveCall CallControlTerminalConnection unhold
cstaSendPrivateEvent Private Data sendPrivateData

TSAPI Requests without Associated JTAPI Mapping

Here is a list of  the TSAPI requests that do not have corresponding JTAPI interfaces and methods. Therefore, there is no access to the private data for these TSAPI requests.

TSAPI Requests that do not have corresponding JTAPI interfaces and methods
Call Control Services cstaAlternateCall, cstaCallCompletion, cstaReconnectCall
Supplementary Services cstaQueryLastNumber, cstaQueryDeviceInfo
Monitor Services cstaChangeMonitorFilter, FeatureEventReport, CSTACallInfoEvent
Escape Services cstaEscapeServiceConf, CSTA_ESCAPE_SVC_REQ
Maintenance Services cstaSysStatReq, cstaSysStatStart, cstaSysStatStop, cstaChangeSysStatFilter, cstaSysStatReqConf, cstaSysStatEvent

Mapping of Possible JTAPI Events to TSAPI Events

Here is a list of  TSAPI events and the associated possible JTAPI events that might be in the event array in which the PrivateEvent is delivered.

Note:A cstaDeliveredEvent sets the connection state to ALERTING. If this is a state change, a ConnAlertingEv and PrivateEvent will be in the event array delivered to the CallObserver. If the state was already ALERTING, the PrivateEvent will be in the event array by itself.

TSAPI Events

Possible JTAPI Event in Array with Private Event

CSTACallClearedEvent CallInvalidEv
CSTAMonitorEndedEvent CallObservationEndedEv
CSTADeliveredEvent ConnAlertingEv
CSTAEstablishedEvent ConnConnectedEv
CSTAConnectionClearedEvent ConnDisconnectedEv
CSTAFailedEvent ConnFailedEv
CSTADoNotDisturbEvent CallCtlAddrDoNotDisturbEv
CSTAForwardingEvent CallCtlAddrForwardEv
CSTAMessageWaitingEvent CallCtlAddrMessageWaitingEv
CSTAServiceInitiatedEvent CallCtlConnInitiatedEv
CSTANetworkReachedEvent CallCtlConnNetworkReachedEv
CSTAQueuedEvent CallCtlConnQueuedEv
CSTALoggedOffEvent ACDAddrLoggedOffEv

AgentTermLoggedOffEv

CSTALoggedOnEvent ACDAddrLoggedOnEv

AgentTermLoggedOnEv

CSTANotReadyEvent ACDAddrNotReadyEv

AgentTermNotReadyEv

CSTAReadyEvent ACDAddrReadyEv

AgentTermReadyEv

CSTAWorkNotReadyEvent ACDAddrWorkNotReadyEv

AgentTermWorkNotReadyEv

CSTAWorkReadyEvent ACDAddrWorkReadyEv

AgentTermWorkReadyEv

CSTARouteRequestExtEvent RouteEvent
CSTAReRouteRequestEvent ReRouteEvent
CSTARouteUsedExtEvent RouteUsedEvent
CSTARouteEndEvent RouteEndEvent
CSTARouteRegisterAbortEvent RouteCallbackEndedEvent
 

 

 



Copyright © 2005 Avaya All Rights Reserved.