JCAT
v0.3.1

Package javax.csapi.cc.jcc

This package contains Java Call Control API interfaces.

See:
          Description

Interface Summary
CallLoadControlEvent This is the base interface for all Load Control related Events.
CallLoadControlListener Interface for notifying load control related changes happening in a JccProvider event.
EventFilter An instance of this EventFilter is supplied to the event source in the addxxxListener() method by the EventListener to indicate what Events are required by the EventListener.
JccAddress This interface represents the JccAddress.
JccCall A JccCall is a transient association of (zero or more) addresses for the purposes of engaging in a real-time communications interchange.
JccCallEvent This is the base interface for all JccCall-related events.
JccCallListener This interface reports all changes to the JccCall object.
JccConnection The purpose of a JccConnection object is to describe the relationship between a JccCall object and a JccAddress object.
JccConnectionEvent This is the base interface for all JccConnection related events.
JccConnectionListener This interface is an extension of the JccCallListener interface and reports state changes both of the JccCall and its JccConnections.
JccEvent The Event interface is the parent of all JCC Event interfaces.
JccPeer The JccPeer interface represents a vendor's particular implementation of the JCC API.
JccProvider A JccProvider represents the telephony software-entity that interfaces with a telephony subsystem.
JccProviderEvent This is the base interface for all JccProvider related events.
JccProviderListener Interface for notifying changes happening in a JccProvider.
MidCallData An instance of this MidCallData interface is returned by JccConnection.getMidCallData() after an event with id JccConnectionEvent.CONNECTION_MID_CALL occured.
 

Class Summary
JccPeerFactory The JccPeerFactory class is a class by which applications obtain a JccProvider object.
 

Exception Summary
InvalidArgumentException This Exception indicates that an invalid argument is passed into a method.
InvalidPartyException This exception indicates that a party given as an argument to the method call was invalid.
InvalidStateException An InvalidStateException indicates that that current state of an object involved in the method invocation does not meet the acceptable pre-conditions for the method.
MethodNotSupportedException This Exception indicates that the method which was invoked is not supported by the implementation.
PlatformException A PlatformException indicates an implementation specific exception.
PrivilegeViolationException This exception indicates that an action pertaining to a certain object failed because the application did not have the proper security permissions to execute that command.
ProviderUnavailableException This exception indicates that the JccProvider is currently not available to the application.
ResourceUnavailableException This exception indicates that a resource inside the system is not available to complete an operation.
 

Package javax.csapi.cc.jcc Description

This package contains Java Call Control API interfaces.

The following shows tables give an overview of side effects of the JccCall and JccConnection methods. These tables are here given for convenience, for more details read the actual method description.

Table 1: JccConnection state to acronym mapping

S1=IDLES2=AUTHORIZE_CALL_ATTEMPTS3=ADDRESS_COLLECT
S4=ADDRESS_ANALYZES5=CALL_DELIVERYS6=ALERTING
S7=CONNECTEDS8=DISCONNECTEDS9=FAILED

Table 1 gives a numbers the JccConnection's states S1 to S9. This shorthand is introduced to reduce the size of the columns in the subsequent tables.

Table 2: method invocation

implicit resumption
of processing
invoke when
not blocked
S1S2S3S4S5S6S7S8S9
JccCall.routeCall()NoYesS1S2S3S4S5S6S7S8S9
JccCall.release()YesYesS8S8S8S8S8S8S8S8S8
JccCall.
createConnection()
NoYesS1S2S3S4S5S6S7S8S9
JccConnection.
connect()
N.A.YesS1S2S3S4S5S6S7S8S9
JccConnection.
routeConnection()
YesNoS5S5
JccConnection.
selectRoute()
YesNoS5S5
JccConnection.
answer()
YesNoS7S7
JccConnection.
continueProcessing()
YesNoS2S2S3S4S5S6S7S8S9
JccConnection.
release()
YesYesS8S8S8S8S8S8S8
JccConnection.
attachMedia()
NoYesS7
JccConnection.
detachMedia()
NoYesS7
JccConnection.
getMidCallData()
NoYesS7

The answer() method can only be successfully invoked on a Terminating Connection; invoking it on an Originating Connection will not cause a transition to the CONNECTED state.

Table 2 contains a list of methods and 3 different types of columns. The first column, labeled " implicit resumption of processing" denotes is invocation of that methods causes the blocked processing to be resumed. The second column, labeled "invoke when not blocked" lists if a methods can be invoked if the processing is not blocked. The third type lists all states and whether a methods can be successfully invoked in these state.

Table 3: Terminating and Originating connection states

S1S2S3S4S5S6S7S8S9
Originating Connection statesXXXXXXXX
Terminating Connection statesXXXXXXX

Table 3 shows all valid states for either originating or terminating connections.

Table 4: state change relationships

If this connection changes statethen this connection also changes state
FromTo
FromTo
Originating connectionTerminating connection
ADDRESS_ANALYZECALL_DELIVERY
Not exists or IDLEIDLE
Terminating connectionOriginating connection
IDLEany state other than IDLE
CALL_DELIVERYCONNECTED
Either connectionOther connection
Any stateDISCONNECTED
Any stateDISCONNECTED
Either connectionOther connection
Any stateFAILED
Any stateDISCONNECTED

All of the transitions sketched in the table 4 only apply in case of a two-party call. The table demonstrates what a state change has for effect on other connections in the call.

Table 5: method results

Originating connectionTerminating connection
S1S2S3S4S5S7S8S9
S1S2S5S6S7S8S9
getDestinationAddress()
XXOOOXXX
XXXXXXX
getOriginatingAddress()
OOOOOOOO
OOOOOOO
getLastAddress()
XXXXXXXX
OOOOOOO
getOriginalAddress()
XXXXXXXX
OOOOOOO
getRedirectedAddress()
XXXXXXXX
XXXXXOX
getAddress()
OOOOOOOO
OOOOOOO

In table 5, X denotes that the methods returns null, and O denotes that the method returns a valid value if possible. The table shows the in what states a return value can be expected.


JCAT
v0.3.1

August, 2003
If you have any comments or queries, please mail them to JSR-122-EG@JCP.ORG

Copyright - 2001, 2003 Sun Microsystems