JSR 21
Java Call Control Specification
CHANGE LOG

PROPOSED CHANGES
 
ACCEPTED CHANGES
GENERAL:
  1. 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 expected.

  2. 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.

  3. Consistently use classes in the corresponding package.

    IMPACT: Change JccProvider.removeConnectionListener(JcpConnectionListener) into JccProvider.removeConnectionListener(JccConnectionListener).

  4. 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.

  5. Some cause codes supported by JcpEvent are not common with JTAPI cause codes.

    IMPACT: Move JcpEvent.CAUSE_MORE_DIGITS_NEEDED and JcpEvent.CAUSE_REDIRECTED to JccCallEvent.

  6. 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.

  7. 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.

  8. 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

  1. The constructor of some exceptions does not assign arguments passed to the exception's fields.

    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

  1. Clarify the usage of the JccConnection.answer() method

    IMPACT: The JccConnection.answer() is only applicable on terminating connections.

  2. 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.

  3. 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

  1. Review and clarify descriptions of JccProvider.createEventFilter*(...) methods.

    IMPACT: Clarify that events should be filtered per connection object.

 

DEFERRED CHANGES
GENERAL:
  1. The operation getMoreDialedDigits() will retrieve all digits (according to the number plan), the current definition does not allow it to be satisfied by a partial address.

    IMPACT: Update JccConnection.getMoreDialedDigits() such that it accepts a minimum length of addressing information as argument.

    REASON: This alignment issue is deferred for the next release of JCC