- The JAIN group has changed the package structure. It is proposed to adopt the new, common
JAIN packaging structure.
IMPACT: Introduce the javax.jain.services.jcp and javax.jain.services.jcp packages. These
will replace the jain.application.services.jcp and jain.application.services.jcc packages
in future releases. No further development on jain.application.services packages is
- Remove some methods that have an EventFilter as argument. Note that EventFilters are only used
for events emitted by JccConnection Final State Machines.
IMPACT: Remove the superfluous JccProvider.addCallListener(JccCallListener, EventFilter),
JccCall.addCallListener(JccCallListener, EventFilter), and
JccProvider.addCallLoadControlListener(CallLoadControlListener, EventFilter) as an
EventFilter object is only applicable to JccConnection objects and their events.
- Consistently use classes in the corresponding package.
IMPACT: Change JccProvider.removeConnectionListener(JcpConnectionListener) into
- Applications releasing a call cannot pass a release cause.
IMPACT: Update JccCall.release() and JccConnection.release() such that it accepts a release
cause as an argument.
- Some cause codes supported by JcpEvent are not common with JTAPI cause codes.
IMPACT: Move JcpEvent.CAUSE_MORE_DIGITS_NEEDED and JcpEvent.CAUSE_REDIRECTED
- Some cause codes supported by the Parlay Multi Party Call Control API release 3.0
should be supported.
IMPACT: Introduce additional cause codes in JccCallEvent: CAUSE_BUSY,
CAUSE_CALL_RESTRICTED, CAUSE_GENERAL_FAILURE, CAUSE_NO_ANSWER, CAUSE_TIMER_EXPIRY,
and CAUSE_USER_NOT_AVAILABLE. Introduce a JccProvider.createEventFilterCauseCode(int, int, int)
method that supports filtering on a cause code.
- Release 1.0 of JCC mentioned that JccCall.routeCall and JccConnection.routeConnection
had awkward semantics and indicated a fix of these in a future release.
IMPACT: Introduced JccConnection connect(JccAddress,String); invocation of this method will result in the
creation of a first party call. Therefore, the semantics for JccCall.routeCall(String,String,String,String) and
JccCall.createConnection(String,String,String,String) have been simplified.
- Ambiguity was noticed in the description of *_EVENT_TRANSMISSION_ENDED events.
IMPACT: Clarified JcpProviderEvent.PROVIDER_EVENT_TRANSMISSION_ENDED and
JcpCallEvent.CALL_EVENT_TRANSMISSION_ENDED usage. These events signal that the object
obtained through respectively JcpProviderEvent.getProvider() or JcpCallEvent..getCall()
has become unobservable and that this event is the last event sent. To maintain this the
post conditions for JccCall.removeConnectionListener(JccConnectionListener) and
JcpCall.removeCallListener(JcpCallListener) have been relaxed.
JAIN JCC EXCEPTIONS
- The constructor of some exceptions does not assign arguments passed to the exception's
IMPACT: Update exceptions, add code in the constructors to handle exception fields of the
following exceptions: InvalidArgumentException, ProviderUnavailableException,
PrivilegeViolationException, PlatformException, and MethodNotSupportedException.
JAIN JCCCONNECTION CLASS
Clarify the usage of the JccConnection.answer() method
IMPACT: The JccConnection.answer() is only applicable on terminating connections.
Enable efficient support for redirecting applications.
IMPACT: A new method, JccConnection.getRedirectedAddress() has been introduced.
This method allows an application to keep track of redirection if it occurs. To support
this, the description of JccCallEvent.CAUSE_REDIRECTED has been altered.
Clarify that the circumstances under which JccConnection.continueProcessing() is applicable.
IMPACT: Update the description of JccConnection.continueProcessing(), the
method is applicable in all EventFilter.EVENT_BLOCK states.
JAIN JCCPROVIDER CLASS
Review and clarify descriptions of JccProvider.createEventFilter*(...) methods.
IMPACT: Clarify that events should be filtered per connection object.