76
Java TM Call Control v1.0 to Session Initiation Protocol Mapping JAIN TM Community A dynamicsoft, Fujitsu, NEC, NTT, Sun Microsystems, Telcordia Technologies, Ubiquity document Date: Oct 25, 2001 Version: 1.0 Author: Hiroshi Sasaki - NEC Co-Authors: John-Luc Bakker – Telcordia Technologies Phelim O’Doherty – Sun Microsystems, Inc.

Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

  • Upload
    vudung

  • View
    226

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

JavaTM Call Control v1.0 to Session Initiation Protocol Mapping

JAINTM Community

A dynamicsoft, Fujitsu, NEC, NTT, Sun Microsystems, Telcordia Technologies, Ubiquity document

Date: Oct 25, 2001 Version: 1.0 Author: Hiroshi Sasaki - NEC Co-Authors: John-Luc Bakker – Telcordia Technologies Phelim O’Doherty – Sun Microsystems, Inc.

Page 2: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2001 Sun Microsystems, Inc.

All rights reserved. Sun, Sun Microsystems, the Sun Logo, JAIN, Java and Javadoc are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

Page 3: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Abstract

This document has been authored by various companies within the JAINTM Community as an example mapping from the Java Call Control (JCC) protocol to the SIP Protocol. Its purpose is to aid potential implementers of the JCC Specification to wire down the JCC protocol to the SIP protocol. This document should be regarded as an example mapping and not as the standardized way to map from the JCC Specification to the SIP protocol. The mapping will not detail error behavior, successful behavior is assumed.

The audience is assumed to be knowledgeable of the JCC API and the SIP protocol. This document is not a tutorial on JCC or SIP. It is also highly recommended to read the IEICE Paper on JCC to SIP reference [2].

This document is accompanied by a mapping from the JCC protocol to the Intelligent Network Application Part (INAP) and the H323 protocol these additional documents are available from http://java.sun.com/products/jain.

Page 4: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Table Of Contents

ABSTRACT....................................................................................................................... 3

1.0 INTRODUCTION....................................................................................................... 5

1.1 BRIEF INTRODUCTION TO JCC.................................................................................... 5 1.2 BRIEF INTRODUCTION TO SIP..................................................................................... 6 1.3 APPROACH ................................................................................................................. 6

2.0 MAPPED METHODS................................................................................................ 7

2.1 JCCPROVIDER............................................................................................................. 7 2.2 JCPPROVIDERLISTENER ........................................................................................... 16 2.3 CALLLOADCONTROLLISTENER................................................................................ 19 2.4 JCCCALL .................................................................................................................. 21 2.5 JCCCALLLISTENER................................................................................................... 29 2.6 JCCCONNECTION................................................................................................ 35 2.7 JCCCONNECTIONLISTENER ................................................................................ 50

3.0 METHODS NOT MAPPED .................................................................................... 72

3.1 JCCPROVIDER........................................................................................................... 72 3.2 JCCCALL .................................................................................................................. 73 3.3JCCCONNECTION....................................................................................................... 74

4.0 REFERENCES.......................................................................................................... 75

5.0 APPENDIX................................................................................................................ 76

5.1 JCC CONNECTION OBJECT FSM.............................................................................. 76

Page 5: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

1.0 Introduction

The JCC API provides a common open interface into any kind of telecommunications network. This document exemplifies a possible mapping from JCC 1.0 to SIP. This mapping is descriptive; it does not introduce any implementations constraints or prescribe how the mapping from JCC to the underlying network is to be performed, whatsoever. For reasons of clarity, a mapping from the Java Call Control API to JAIN SIP API method(s) and the SIP individual messages are given.

Only the call control aspects of the JCC API are considered in this document. The authentication and discovery aspects of the API are assumed to have completed successfully. Although the API consists of two packages, where the objects in one package inherit from the other, only the methods on objects in the JCC package are mapped.

1.1 Brief introduction to JCC

JCC is an abstraction for performing call control and hence is independent of any network protocol. It is up to the implementation of JCC to support any network protocol such as SIP, H.323, ISUP, INAP, etc. by performing the appropriate mapping. This document gives a descriptive mapping from JCC to SIP.

The JCC API is a Java interface for creating, monitoring, controlling, manipulating and tearing down communications sessions in a converged PSTN, packet-switched, and wireless environment. It provides facilities for first-party as well as third-party applications, and is applicable to network elements (such as switches or Call Agents) both at the network periphery (e.g. Class 5 or end-office switches) and at the core (e.g. Class 4 or tandem switches).

JCC allows applications to be invoked or triggered during session set-up in a manner similar in spirit to the way in which IN or AIN services can be invoked. JCC thus allows programmers to develop applications that can execute on any platform that supports the API, increasing the market for their applications. It also allows service providers to rapidly and efficiently offer services to end users by developing the services themselves, by outsourcing development, purchasing services developed by third parties, or a combination thereof.

The API is not intended to open up telecommunications networks’ signaling infrastructure for public usage. Rather, network capabilities are intended to be encapsulated and made visible using object technology in a secure, manageable, and billable manner. This approach allows third party service providers to develop applications supported by the network without compromising network security, integrity, and reliability.

The API is specified in terms of a coherent collection of related and interacting objects that model different physical and logical elements involved in a session, and related functions. Applications interact with these objects via an object-oriented Listener

Page 6: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

paradigm. Note that the API is applicable to control of voice, data or multimedia sessions, and not just voice calls, but for convenience we often use the word “call” in the specification.

1.2 Brief introduction to SIP

The purpose of the Session Initiation Protocol is described below. The text has been taken directly from the abstract of the SIP Specification, RFC 2543 [4]:

“The Session Initiation Protocol (SIP) is an application- layer control (signaling) protocol for creating, modifying and terminating sessions with one or more participants. These sessions include Internet multimedia conferences, Internet telephone calls and multimedia distribution. Members in a session can communicate via multicast or via a mesh of unicast relations, or a combination of these.”

SIP invitations are used to create sessions carry session descriptions, which allow participants to agree on a set of compatible media types. SIP supports user mobility by proxying and redirecting requests to the user's current location. Users can register their current location. SIP is not tied to any particular conference control protocol. SIP is designed to be independent of the lower- layer transport protocol and can be extended with additional capabilities.

1.3 Approach

Each JCC API method will be mapped to a SIP message a top down approach, hence certain SIP messages may not be mapped. Prior to mapping the method some explanation is given. Further information in each method can be found in the Javadoc packed with the specification.

Figure 1 is a template for the call flow, it will be shown per JCC method (if appropriate); it details the SIP message(s) that cause a JCC Application method invocation or the JCC Implementation method that causes SIP message(s) to be sent. Not shown in the picture are the JAIN SIP methods; the execution of these methods is assumed within the JAIN SIP API implementation box.

Following the call flow, the normal operation and context is outlined. Next, the JCC method is mapped to SIP API methods and fields and to protocol messages and fields (if appropriate).

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Figure 1 Call flow diagram

Page 7: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.0 Mapped Methods

2.1 JccProvider

JcpCall createCall()

Creates a new instance of the call with no connections.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The Application has been instructed to initiate a call setup.

1 The Application invokes the createCall method.

2. The JCC Implementation creates a new call object.

Parameter Mapping

None

JcpAddress getAddress(String address)

Returns a JcpAddress object, which corresponds to the (telephone) number string provided.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

createCall No appropriate SIP message

getAddress No appropriate SIP message

Page 8: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions The JccAddress object corresponding to the (telephone) number string provided must be instantiated.

1 The Application invokes the getAddress method.

2. The JCC Implementation returns an address object corresponding to the given number.

Parameter Mapping

None

void shutdown()

Instructs the JcpProvider to shut itself down and provide all necessary cleanups.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None

1 The Application invokes the shutdown method.

2. The JCC Implementation instructs JccProvider to shutdown itself.

Parameter Mapping

None

shutdown No appropriate SIP message

Page 9: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

EventFilter createEventFilterAddressRange(String lowAddress, String highAddress, int matchDisposition, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterAddressRange method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

EventFilter createEventFilterAddressRegEx(String addressRegex, int matchDisposition, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC pla tform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

createEventFilterAddressRange No appropriate SIP message

createEventFilterAddressRegEx No appropriate SIP message

Page 10: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterAddressRegEx method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

EventFilter createEventFilterAnd(EventFilter[] filters, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None

1 The Application invokes the createEventFilterAnd method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

createEventFilterAnd No appropriate SIP message

Page 11: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

EventFilter createEventFilterDestAddressRange(String lowDestAddress, String highDestAddress, int matchDisposition, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterDestAddressRange method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

EventFilter createEventFilterDestAddressRegEx(String destAddressRegex, int matchDisposition, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

createEventFilterDestAddressRange No appropriate SIP message

createEventFilterDestAddressRegEx No appropriate SIP message

Page 12: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterDestAddressRegEx method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

EventFilter createEventFilterEventSet(int[] blockEvents, int[] notifyEvents)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterEventSet method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

createEventFilterEventSet No appropriate SIP message

Page 13: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

EventFilter createEventFilterOr(EventFilter[] filters, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterOr method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

EventFilter createEventFilterOrigAddressRange(String lowOrigAddress, String highOrigAddress, int matchDisposition, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

createEventFilterOr No appropriate SIP message

createEventFilterOrigAddressRange No appropriate SIP message

Page 14: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterOrigAddressRange method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

EventFilter createEventFilterOrigAddressRegEx(String origAddressRegex, int matchDisposition, int nomatchDisposition)

This method returns a standard EventFilter, which is implemented by the JCC platform.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None.

1 The Application invokes the createEventFilterOrigAddressRegEx method.

2. The JCC Implementation creates EventFilter object according to the arguments, and returns it.

Parameter Mapping

None

createEventFilterOrigAddressRegExNo appropriate SIP message

Page 15: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void setCallLoadControl(JccAddress[] address, double duration, double[] mechanism, int[] treatment)

This method imposes or removes load control on calls made to the specified addresses.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions None

1 The Application invokes the setCallLoadControl method.

2. The JCC Implementation imposes or removes load control on calls corresponding to the specified address.

Parameter Mapping

None

setCallLoadControl No appropriate SIP message

Page 16: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.2 JcpProviderListener

void providerEventTransmissionEnded(JcpProviderEvent providerevent)

Indicates that the application will no longer receive JcpProvider events on the instance of the JcpProviderListener.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the Provider has been registered, and the Application invokes the JcpProvider.removeProviderListener method to stop receiving the events related to the Provider.

1 The JCC Implementation invokes the providerEventTransmissionEnded method.

2 The JCC Implementation removes the registration of JcpProviderListener.

Parameter Mapping

None

providerEventTransmissionEnded

No appropriate SIP message

Page 17: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void providerInService(JcpProviderEvent providerevent)

Indicates that the state of the JcpProvider has changed to JcpProvider.IN_SERVICE.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the Provider has been registered.

1 The JCC Implementation detects that the state of Provider object has been transited to SERVICE.

2 The JCC Implementation invokes the providerInService method.

Parameter Mapping

None

void providerOutOfService(JcpProviderEvent providerevent)

Indicates that the state of the JcpProvider has changed to JcpProvider.OUT_OF_SERVICE.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

providerInService

No appropriate SIP message

providerOutOfService

No appropriate SIP message

Page 18: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions The listener object for the Provider has been registered.

1 The JCC Implementation detects that the state of Provider object has been transited to OUT_OF_SERVICE.

2 The JCC Implementation invokes the providerOutOfService method.

Parameter Mapping

None

void providerShutdown(JcpProviderEvent providerevent)

Indicates that the state of the JcpProvider has changed to JcpProvider.SHUTDOWN.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the Provider has been registered, and the API implementation moves to the SHUTDOWN state.

1 The JCC Implementation detects that the state of the Provider has transited to SHUTDOWN.

2 The JCC Implementation invokes the providerShutdown method

Parameter Mapping

None

providerShutdown

No appropriate SIP message

Page 19: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.3 CallLoadControlListener

void providerCallOverloadCeased(CallLoadControlEvent loadcontrolevent)

This method indicates that the network has detected that the overload has ceased and has automatically removed load control on calls requested to a particular address range or calls made to a particular destination.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for load control events has been registered, and load control functionality has been available.

1 The JCC Implementation detects that the overload has ceased and has automatically removed load control on calls requested to a particular address range.

2 The JCC Implementation invokes the providerCallOverloadCeased method

Parameter Mapping

None

providerCallOverloadCeased

No appropriate SIP message

Page 20: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void providerCallOverloadEncountered(CallLoadControlEvent loadcontrolevent)

This method indicates that the network has detected overload and may have automatically imposed load control on calls requested to a particular address range or calls made to a particular destination.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Normal Operation

Pre-conditions The listener object for load control events has been registered, and load control functionality has been available.

1 The JCC Implementation detects that overload and may have automatically imposed load control on calls requested to a particular address range.

2 The JCC Implementation invokes the providerCallOverloadEncountered method

Parameter Mapping

None

providerCallOverloadEncountered

No appropriate SIP message

Page 21: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.4 JccCall

JccConnection createConnection(String targetAddress, String originatingAddress, String originalCalledAddress, String redirectingAddress)

Creates (a) new JccConnection(s) and attaches it/them to this JccCall.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions Call object has been created.

1 The Application invokes the createConnection method.

2. The JCC Implementation creates (a) new connection(s) corresponding to the string(s) given as (an) address parameter(s), and attaches it/them to the call.

Parameter Mapping

None

createConnection No appropriate SIP message

Page 22: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void release()

This method requests the release of the call object and associated connection objects.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Note: SIP response code depends on the situation in which the release method is invoked. However, the release method does not convey the reason of releasing, SIP response code is undecided. ‘Over 400’ means the SIP response messages of which response code is over 400.

Normal Operation

1. In case of incoming call.

Pre-conditions Call in progress.

1 The Application invokes the release method.

2 If terminating party has not answered, the JCC Implementation sends CANCEL request to terminating party and sends over 400 response to originating party. Otherwise it sends BYE request to all parties.

3 If all connections are released, JCC Implementation releases this call.

Parameter Mapping

From: release To: SIP CANCEL message

Header

Body

From: release To: SIP over 400 response message

Header

Body

release BYE or CANCEL or Over 400 message

Page 23: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

From: release To: SIP BYE message

Header

Body

2. In case of third party call.

Pre-conditions Call in progress.

1 The Application invokes the release method.

2 The JCC Implementation sends CANCEL request to the party who has not answered and sends BYE request to the party who has answered.

3 If all connections are released, JCC Implementation releases this call.

Parameter Mapping

From: release To: SIP CANCEL message

Header

Body

From: release To: SIP BYE message

Header

Body

Error Condition

3. The JCC Implementation has started to release this call.

Pre-conditions The JCC Implementation has started to release this call.

1 The Application invokes release method.

2 The JCC Implementation invokes the exception on release method.

Parameter Mapping

None

Page 24: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

JccConnection routeCall(String targetAddress, String originatingAddress, String originalDestinationAddress, String redirectingAddress)

This method requests routing of a call to the targetAddress given as an input parameter.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Note: It depends on the JCC Implementation whether INVITE or 3xx is sent.

Normal Operation

1. Third party call setup (The targetAddress and originatingAddress are specified, and the targetAddress is equal to the originatingAddress.)

Pre-conditions Call object has been created, and does not have any connections of which state is not DISCONNECTED.

1 The Application invokes the routeCall method.

2. The JCC Implementation creates a new JccConnection object corresponding to the targetAddress parameter, and attaches it to call object.

3 The JCC Implementation sends INVITE message to the destination related with the targetAddress parameter.

Parameter Mapping

From: routeCall To: SIP INVITE message

Header

targetAddress To

From

originatingAddress

originalDestinationAddress

redirectingAddress

routeCall INVITE or 3xx

Page 25: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2. Third party call setup (The targetAddress is different from the originatingAddress, and call does not have any connection.)

Pre-conditions Call object has been created, and does not have any connection of which state is not DISCONNECTED.

1 The Application invokes the routeCall method.

2. The JCC Implementation creates a new JccConnection object corresponding to the originatingAddress parameter, and attaches it to call object.

3 The JCC Implementation sends INVITE message to the destination related with the originatingAddress parameter.

4 The JCC Implementation creates a new JccConnection object corresponding to the targetAddress parameter, and attaches it to call object.

5 The JCC Implementation sends INVITE message to the destination related with the targetAddress parameter.

Parameter Mapping

From: routeCall To: SIP 1st INVITE message

targetAddress

Header

originatingAddress To

From

originalDestinationAddress

redirectingAddress

From: routeCall To: SIP 2nd INVITE message

Header

targetAddress To

originatingAddress From

originalDestinationAddress

redirectingAddress

3. Third party call setup (The targetAddress is different from the originatingAddress, and call has any connections.)

Page 26: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Pre-conditions Call object has been created.

Connection object(s) have been created.

1 The Application invokes the routeCall method.

2. The JCC Implementation creates a new JccConnection object corresponding to the targetAddress parameter, and attaches it to call object. Then, JCC Implementation sends INVITE message to the destination related with the targetAddress parameter.

Parameter Mapping

From: routeCall To: SIP INVITE message

Header

targetAddress To

originatingAddress From

originalDestinationAddress

redirectingAddress

4. Number translation of incoming call.

Pre-conditions Call object has been created.

Connection objects have been created.

1 The Application invokes the routeCall method.

2. The JCC Implementation creates a new JccConnection object corresponding to the targetAddress parameter, and attaches it to call object. Then, JCC Implementation sends INVITE message to the destination related with the targetAddress parameter.

Or, the JCC Implementation may send 3xx message to the upstream SIP element, (e.g. if originalAddress is set), and leave the actual forwarding to it.

Parameter Mapping

From: routeCall To: SIP INVITE message

Request-Line

targetAddress Request-URI

Header

Page 27: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

originatingAddress From

originalDestinationAddress To

redirectingAddress

From: routeCall To: SIP 3xx message

Header

targetAddress Contact

originatingAddress From

originalDestinationAddress To

redirectingAddress

Error Condition

5. The target address is an invalid.

Pre-conditions The JCC Implementation does not have information or permission of routing the party corresponding to the target address.

The Application has been invoked the routeCall method.

1 The JCC Implementation detects that the target address is invalid.

2 The JCC Implementation invokes the exception on routeCall method.

Parameter Mapping

None

Page 28: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void superviseCall(JccCallListener calllistener, double time, int treatment, double bytes)

The application calls this method to supervise a call.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The application has been notified of a new call.

1 The Application invokes the supreviseCall method.

2. The JCC Implementation registers a reference of the listener object to notify the supervision events. Then, it starts a time based or a volume based supervision. If an application calls this function before calling a routeCall method, the time based supervision will start as soon as the call is answered bye the called party.

Parameter Mapping

None

supreviseCall No appropriate SIP message

Page 29: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.5 JccCallListener

void callActive(JcpCallEvent callevent)

Indicates that the state of the JcpCall object has changed to JcpCall.ACTIVE.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the call has been registerd.

The call object has been created, and does not have any connections of which state is not DISCONNECTED.

The JCC Implementation will create a new connection.

(The application will invoke JccCall.createConnection / JccCall.routeCall method, or the JCC Implementation has been received a new INVITE message and has not created a connection yet.)

1 The JCC Implementation creates a new connection object.

2 The state of the call object has changed to ACTIVE.

3 The JCC Implementation invokes the callActive method

Parameter Mapping

None

callActive

No appropriate SIP message

Page 30: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void callCreated(JcpCallEvent callevent)

Indicates that the state of the JcpCall object has changed to JcpCall.IDLE.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

1. In case of third party call.

Pre-conditions The listener object for the call has been registerd.

1 The Application invokes the JccProvider.createCall method.

2 The JCC Implementation detects the creation of a new call object.

3 The JCC Implementation invokes the callCreated method

Parameter Mapping

None

2. In case of incoming call.

Pre-conditions The listener object for the call has been registerd.

1 The JCC Implementation receives an INVITE message which is sent from within a new session.

callCreated

No appropriate SIP message

callCreated

INVITE

Page 31: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

from within a new session.

2 The JCC Implementation creates a call object.

3 The JCC Implementation invokes the callCreated method

Parameter Mapping

From: SIP INVITE message To: callCreated

Header

Body

JccCallEvent

cause(get from JccCallEvent.getCause)

ID(get from JccCallEvent.getID)

Source (get from JccCallEvent.getSource)

JccCall (get from JccCallEvent.getCall method)

state (get from JccCall.getState)

JccConnection(get from JccCall.getConnections)

* The parameters in this object will be set by subsequent JccConnectionLister methods.

void callEventTransmissionEnded(JcpCallEvent callevent)

This method is called to indicate that the application will no longer receive JcpCallEvent events on the instance of the JcpCallListener.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

callEventTransmissionEnded

No appropriate SIP message

Page 32: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions The listener object for the call has been registered, and the Application invokes the JccCall.removeCallListener or JccProvider.removeCallListener method to stop receiving the events related to a specified call or all calls.

1 The JCC Implementation invokes the callEventTransmissionEnded method.

2 The JCC Implementation removes the registration of JccCallListener object.

Parameter Mapping

None

void callInvalid(JcpCallEvent callevent)

Indicates that the state of the JcpCall object has changed to JcpCall.INVALID.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the call has been registerd.

All connection objects on this call will be deleted.

1 The JCC Implementation deletes all connections on this call.

2 The JCC Implementation invokes the callInvalid method

Parameter Mapping

None

callInvalid

No appropriate SIP message

Page 33: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void callSuperviseEnd(JccCallEvent callevent)

Indicates that the supervision of the call has ended.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The Application has started the supervision of a call, and the supervision will end soon.

1 The JCC Implementation detects the end of the supervision of a call.

2 The JCC Implementation invokes the callSuperviseEnd method

Parameter Mapping

None

callSuperviseEnd

No appropriate SIP message

Page 34: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void callSuperviseStart(JccCallEvent callevent)

Indicates that the supervision of the call has started.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The Application will start the supervision of a call using JccCall.superviseCall method.

1 The JCC Implementation starts the supervision of a call.

2 The JCC Implementation invokes the callSuperviseStart method.

Parameter Mapping

None

callSuperviseStart

No appropriate SIP message

Page 35: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.6 JccConnection

JcpAddress getAddress()

Returns the JcpAddress associated with this JcpConnection.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions Call and connection objects have been created.

1 The Application invokes the getAddress method.

2. The JCC Implementation returns the address associated with the connection.

Parameter Mapping

None

void answer()

This method causes the call to be answered.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

getAddress No appropriate SIP message

answer 200 OK

Page 36: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

1. The application invokes the method to be enabled.

Pre-conditions The JCC Implementation has received INVITE message from SIP Peer, and call does not answer yet.

1 The Application invokes the answer method.

2. The JCC Implementation instructs the call to answer.

Parameter Mapping

From: answer To: SIP 200 message

Header

Body

Error Condition

2. The application invokes the method to answer an outgoing call leg.

Pre-conditions The Application has been invoked the method to answer an outgoing call leg.

1 The JCC Implementation invokes the exception on answer method.

Parameter Mapping

None

3. JCC Implementation fails to negotiate the media.

Pre-conditions The JCC Implementation has received INVITE message from SIP Peer, and call does not answer yet.

The JCC Implementation does not support the media which is specified in INVITE message.

1 The JCC Implementation invokes the answer method.

2 The JCC Implementation fails to negotiate the media.

2 The JCC Implementation invokes the exception on answer method.

Parameter Mapping

None

Page 37: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void attachMedia()

This method will allow transmission on all associated bearer connections or media channels to and from other parties in the call.

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

1. The JCC Implementation manages the node which controls the media not using SIP, and the media stream on each terminal is attached to that node.

Pre-conditions The state of the connection is CONNECTED, and bearer connections or media channels are detached from this connection.

1 The Application invokes the attachMedia method.

2. The JCC Implementation starts transmission on all associated bearer connections or media channels to and from other parties in the call.

Parameter Mapping

None

attachMedia No appropriate SIP message

attachMedia INVITE

Page 38: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2. The media stream is established between terminals directory.

Pre-conditions The state of the connection is CONNECTED, and bearer connections or media channels are detached from this connection.

1 The Application invokes the attachMedia method.

2. The JCC Implementation sends INVITE message to attach the media.

Parameter Mapping

From: attachMedia To: SIP INVITE message

Header

Body

SDP

(SDP will be set to attach media.)

void continueProcessing()

This method requests the platform to continue processing.

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

1. The application invokes the method to be enabled.

Pre-conditions The JCC Implementation has suspended the call processing due to the firing of a blocking event (trigger)

1 The Application invokes the continueProcessing method.

2. The JCC Implementation continues the call processing.

continueProcessing No appropriate SIP message

Page 39: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Parameter Mapping

None

Error Condition

2. The connection is not in the proper state.

Pre-conditions The connection is not in the proper state.

1 The Application invokes the continueProcessing method.

2 The JCC Implementation invokes the exception on continueProcessing method.

Parameter Mapping

None

void detachMedia()

This method will detach the JccConnection from the call, i.e., this will prevent transmission on any associated bearer connections or media channels to and from other parties in the call.

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

detachMedia No appropriate SIP message

detachMedia INVITE

Page 40: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

1. The JCC Implementation manages the node which controls the media not using SIP, and the media stream on each terminal is attached to that node.

Pre-conditions The state of the connection is CONNECTED, and bearer connections or media channels are attached to this connection.

1 The Application invokes the detachMedia method.

2. The JCC Implementation stops transmission on all associated bearer connections or media channels to and from other parties in the call.

Parameter Mapping

None

2. The media stream is established between terminals directory.

Pre-conditions The state of the connection is CONNECTED, and bearer connections or media channels are attached to this connection.

1 The Application invokes the detachMedia method.

2. The JCC Implementation sends INVITE message to stops transmissions on all associated media channels to and from other parties in the call.

Parameter Mapping

From: detachMedia To: SIP INVITE message

Header

Body

SDP

(SDP will be set to stop the media.)

Page 41: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

String getDestinationAddress()

Returns the address of the destination party.

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

Pre-conditions Call and connection objects have been created.

1 The Application invokes the getDestinationAddress method.

2. When invoked on an originating connection, the JCC Implementation returns the address of the destination party. Otherwise, it returns null.

Parameter Mapping

None

String getLastAddress()

Returns the last redirected address associated with this JccConnection.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

getDestinationAddress No appropriate SIP message

getLastAddress No appropriate SIP message

Page 42: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions Call and connection objects have been created.

1 The Application invokes the getLastAddress method on originating connection.

2. The JCC Implementation returns the last redirected address associated with the connection.

Parameter Mapping

None

String getMoreDialedDigits()

This method is used by the application to instruct the platform to collect further address information (which may be in the form of digits or letters) and return this to the application.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The state of connection object is ADDRESS_COLLECT or ADDRESS_ANALYZE.

1 The Application invokes the getMoreDialedDigits method.

2. The JCC Implementation starts to collect further address information and returns this to the application

Parameter Mapping

None

getMoreDialedDigits No appropriate SIP message

Page 43: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

String getOriginalAddress()

Returns the original address associated with this JccConnection.

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

Pre-conditions Call and connection objects have been created.

1 The Application invokes the getOriginalAddress method.

2. The JCC Implementation returns the address which was called initially.

Parameter Mapping

None

JccAddress getOriginatingAddress()

Returns the address of the originating party.

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

getOriginalAddress No appropriate SIP message

getOriginatingAddress No appropriate SIP message

Page 44: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

Pre-conditions Call and connection objects have been created.

1 The Application invokes the getOriginatingAddress method.

2. When invoked on a terminating connection, the JCC Implementation returns the address of the originating party.

When invoked on an originating connection, the JCC Implementation returns the address of which value is equal the return value of JcpConnection.getAddress().

If there is no originating party, the JCC Implementation returns null.

Parameter Mapping

None

void release()

Drops a JccConnection from an active telephone call.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Note: SIP response code depends on the situation in which release method is invoked. However, release method does not convey the reason of releasing, SIP response code is undecided. ‘Over 400’ means the SIP response messages of which response code is over 400.

release BYE or CANCEL or Over 400 message

Page 45: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

1. In case of incoming call.

Pre-conditions Call in progress.

1 The Application invokes the release method.

2 If terminating party has not answered, the JCC Implementation sends CANCEL request to terminating party or sends over 400 response to originating party according to the connection invoked this method. Otherwise it sends to BYE request to specified party.

Parameter Mapping

From: release To: SIP CANCEL message

Header

Body

From: release To: SIP over 400 response message

Header

Body

2. In case of third party call.

Pre-conditions Call in progress.

1 The Application invokes the release method.

2 According to the connection invoked this method, the JCC Implementation sends CANCEL request to the party who has not answered or sends BYE request to the party who has answered

Parameter Mapping

From: release To: SIP CANCEL message

Header

Body

From: release To: SIP BYE message

Header

Body

Page 46: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Error Condition

3. The JCC Implementation has started to release this connection.

Pre-conditions The JCC Implementation has started to release this connection.

1 The Application invokes release method.

2 The JCC Implementation invokes the exception on release method.

Parameter Mapping

None

void routeConnection(boolean attachmedia)

Routes this JccConnection to the target address associated with this JccConnection object.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Note: It depends on the JCC Implementation whether INVITE or 3xx is sent.

Normal Operation

1. The application invokes the method to be enabled.

Pre-conditions The state of the connection objects is IDLE or AUTHORIZE_CALL_ATTEMPT.

1 The Application invokes the routeConnection method.

2 The JCC Implementation sends INVITE message to the destination corresponding to the address associated with this connection object.

If attachmedia argument is set to ‘TRUE’, the JCC Implementation attaches the media after the connection is routed. If attachmedia argument is set to ‘FALSE’, the JCC Implementation does nothing.

routeConnection INVITE or 3xx

Page 47: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

argument is set to ‘FALSE’, the JCC Implementation does nothing.

Or, the JCC Implementation may send 3xx message to the upstream SIP element, (e.g. if originalAddress is set), and leave the actual forwarding to it.

Parameter Mapping

From: routeConnection To: SIP INVITE message

Header

To

From

Body

attachMedia SDP

(If attachmedia is ‘TRUE’, SDP will be set to attach media. If attachmedia is ‘FALSE’, SDP will be set not to attach media.)

From: routeConnection To: SIP 3xx message

Header

To

From

Address Contact

Body

Note: JccCall.routeCall() is equivalent to the JccCall.createConnection() + routeConnection(FALSE) + attachMedia() or also equivalent to the JccCall.createConnection() + routeConnection(TRUE). The parameters of the JccCall.createConnection will be mapped to SIP message by the same rule as JccCall.routeCall().

Error Condition

2. The address associated with this connection is an invalid.

Pre-conditions The JCC Implementation does not have information or permission of routing the party corresponding to the address.

The Application has been invoked the routeConnection method.

Page 48: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

1 The JCC Implementation detects that the address associate with this connection is invalid.

2 The JCC Implementation invokes the exception on routeConnection method.

Parameter Mapping

None

void selectRoute(String address)

Replaces address information onto an existing JccConnection.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Note: It depends on the JCC Implementation whether INVITE or 3xx is sent.

Normal Operation

1. The application invokes the method to be enabled.

Pre-conditions The state of connection object is ADDRESS_COLLECT or ADDRESS_ANALYZE.

1 The Application invokes the selectRoute method.

2. The JCC Implementation replaces the address information with new address specified by this method.

3 The JCC Implementation sends INVITE message to the destination corresponding the target address.

Or, the JCC Implementation sends 3xx message to the upstream SIP element and leaves the actual forwarding to it.

selectRoute INVITE or 3xx

Page 49: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Parameter Mapping

From: selectRoute To: SIP INVITE message

Request-Line

address Request-URI

Header

To

From

Body

From: selectRoute To: SIP 3xx message

Header

To

From

address Contact

Body

Error Condition

2. The address parameter is an invalid.

Pre-conditions The JCC Implementation does not have information or permission of routing the party corresponding to the address parameter.

The Application has been invoked the selectRoute method.

1 The JCC Implementation detects that the address specified by this method is invalid.

2 The JCC Implementation invokes the exception on selectRoute method.

Parameter Mapping

None

Page 50: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2.7 JccConnectionListener

Note: JccConnectionListener extends the JccCall interface. The methods found in this interface are already described in a previous section. They will not be repeated here.

void connectionAlerting(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection has just been placed in the JcpConnection.ALERTING state

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

1. In case of third party call (originating party setup)

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message to the destination corresponding to the originating party.

1 The JCC Implementation receives 180(Ringing) message.

2 The state of connection object transits to ALERTING.

3 The JCC Implementation invokes the connectionAlerting method.

Parameter Mapping

From: SIP 180 message To: connectionAlerting

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

connectionAlerting

180(Ringing)

Page 51: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From

Body

2. In case of third party call (terminating party setup)

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message to the destination corresponding to the terminating party.

1 The JCC Implementation receives 180(Ringing) message.

2 The state of connection object transits to ALERTING.

3 The JCC Implementation invokes the connectionAlerting method.

Parameter Mapping

From: SIP 180 message To: connectionAlerting

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From address(get from JccConnection.getOriginatingAddress)

Body

3. In case of incoming call.

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message to the destination corresponding to the terminating party.

Page 52: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

1 The JCC Implementation receives 180(Ringing) message.

2 The state of the terminating connection transits to ALERTING.

3 The JCC Implementation invokes the connectionAlerting method.

4 The state of originating connection transits to ALERTING.

5 The JCC Implementation invokes the connectionAlerting method.

Parameter Mapping

From: SIP 180 message To: connectionAlerting(for the terminating party)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From address(get from JccConnection.getOriginatingAddress)

Body

From: SIP 180 message To: connectionAlerting(for the originating party)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getDestinationAddress)

From address(get from JccConnection.getAddress)

Body

Page 53: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionConnected(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection has just been placed in the JcpConnection.CONNECTED state

Call Flow

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

1. In case of third party call (originating party setup)

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message to the destination corresponding to the originating party.

1 The JCC Implementation receives 200(OK) message.

2 The state of connection object transits to CONNECTED.

3 The JCC Implementation invokes the connectionConnected method.

Parameter Mapping

From: SIP 200 message To: connectionConnected

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From

connectionConnected

200(OK)

Page 54: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Body

2. In case of third party call (terminating party setup)

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message to the destination corresponding to the terminating party.

1 The JCC Implementation receives 200 (OK) message.

2 The state of connection object transits to CONNECTED.

3 The JCC Implementation invokes the connectionConnected method.

Parameter Mapping

From: SIP 180 message To: connectionConnected

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From address(get from JccConnection.getOriginatingAddress)

Body

3. In case of incoming call.

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message to the destination corresponding to the terminating party.

1 The JCC Implementation receives 200 (OK) message.

2 The state of the terminating connection object transits to CONNECTED.

3 The JCC Implementation invokes the connectionConnected method.

4 The state of the originating connection object transits to CONNECTED.

Page 55: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

CONNECTED.

5 The JCC Implementation invokes the connectionConnected method

Parameter Mapping

From: SIP 180 message To: connectionConnected(for the terminating party)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From address(get from JccConnection.getOriginatingAddress)

Body

From: SIP 180 message To: connectionConnected(for the originating party)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getDestinationAddress)

From address(get from JccConnection.getAddress)

Body

Page 56: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionCreated(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection object has just been created.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

Normal Operation

1. In case of third party call.

Pre-conditions The listener object for the connection has been registered.

The call object has been created by using JccProvider.createCall method.

1 The Application invokes the method which creates a new connection.

(Ex: The application invokes JccCall.createConnection methods.)

2 The JCC Implementation detects the creation of a new connection object

3 The state of the connection object transits to IDLE.

4 The JCC Implementation invokes the connectionCreated method

Parameter Mapping

None

connectionCreated

No appropriate SIP message

connectionCreated

INVITE

Page 57: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

2. In case of incoming call.

Pre-conditions The listener object for the call has been registerd.

1 The JCC Implementation receives an INVITE message which is sent from within a new session.

2 The JCC Implementation creates a call and connection objects.

3 The states of originating and terminating connections transit to IDLE.

4 The JCC Implementation invokes the connectionCreated method on each connection listener.

Parameter Mapping

From: SIP INVITE message To: connectionCreated(for originating connection)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Request-Line

Request-URI address (get from JccConnection.getDestinationAddress)

Header

To address (get from JccConnection.getOriginalAddress)

From address (get from JccConnection.getAddress)

Body

From: SIP INVITE message To: connectionCreated(for terminating connection)

Connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Page 58: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Request-Line

Request-URI address (get from JccConnection.getAddress)

Header

To address (get from JccConnection.getOriginalAddress)

From address(get from JccConnection.getOriginatingAddress)

Body

void connectionDisconnected(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection has just been placed in the JcpConnection.DISCONNECTED state.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

JCC

Application JCC

Implementation SIP Peer

JAIN SIP API Implementation

connectionDisconnected

BYE or 3xx message

connectionDisconnected

No appropriate SIP message

Page 59: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

1. The Application releases an existing connection.

Pre-conditions The listener object for the connection has been registered.

Call and connection objects have been created.

1 The Application invokes the method which releases an existing connection.

(Ex: The Application invokes the JccConnection.release method.)

2 The state of connection object transits to DISCONNECTED.

3 The JCC Implementation invokes the connectionDisconnected method.

Parameter Mapping

None.

2. Receive BYE message.

Pre-conditions The listener object for the connection has been registered.

The state of connection object is CONNECTED.

1 The JCC Implementation receives BYE message.

2 The state of originating and terminating connection object transits to DISCONNECTED.

3 The JCC Implementation invokes the connectionDisconnected method on each connection listener.

Parameter Mapping

From: SIP BYE message To: connectionDisconnected(for originating connection)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Request-Line

Page 60: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Request-URI address (get from JccConnection.getDestinationAddress)

Header

To address (get from JccConnection.getOriginalAddress)

From address (get from JccConnection.getAddress)

Body

From: SIP BYE message To: connectionDisconnected(for terminating connection)

connectionevent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Request-Line

Request-URI address (get from JccConnection.getAddress)

Header

To address (get from JccConnection.getOriginalAddress)

From address(get from JccConnection.getOriginatingAddress)

Body

3. Receive 3xx (Redirection) message.

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message.

1 The JCC Implementation receives 3xx message.

2 The state of terminating connection object transits to DISCONNECTED.

3 The JCC Implementation invokes the connectionDisconnected method.

Page 61: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Parameter Mapping

From: SIP 3xx message To: connectionDisconnected

connectionEvent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From Address (get from JccConnection.getOriginatingAddress)

Body

void connectionFailed(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection has just been placed in the JcpConnection.FAILED state.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

connectionFailed

CANCEL or Over 400 message

Page 62: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

Normal Operation

1. Receive over 400 response message

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has sent INVITE message.

1 The JCC Implementation receives over 400 response message.

2 The state of terminating connection object transits to FAILED.

3 The JCC Implementation invokes the connectionFailed method.

4 The state of originating connection object transits to FAILED.

5 The JCC Implementation invokes the connectionFailed method.

Parameter Mapping

From: SIP over 400 message

To: connectionFailed(for terminating connection)

connectionEvent

Response-Line

SIP response code (*) cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getAddress)

From Address (get from JccConnection.getOriginatingAddress)

Body

From: SIP over 400 message

To: connectionFailed(for originating connection)

connectionEvent

Response-Line

SIP response code (*) cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

Page 63: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

JccConnection(get from JccConnectionEvent.getConnection)

Header

To address (get from JccConnection.getDestinationAddress)

From address(get from JccConnection.getAddress)

Body

(*) The cause value in the argument ‘connectionevent’ is corresponding to SIP response code. However, there is no rule of mapping from cause value to SIP response code.

2. Receive CANCEL message corresponding to INVITE message

Pre-conditions The listener object for the connection has been registered.

The JCC Implementation has received INVITE message.

1 The JCC Implementation receives CANCEL message.

2 The state of terminating connection object transits to FAILED.

3 The JCC Implementation invokes the connectionFailed method.

4 The state of originating connection object transits to FAILED.

5 The JCC Implementation invokes the connectionFailed method.

Parameter Mapping

From: SIP CANCEL message

To: connectionFailed(for terminating connection)

connectionEvent

cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Request-Line

Request-URI address (get from JccConnection.getAddress)

Header

To address (get from JccConnection.getOriginalAddress)

Page 64: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

From originatingAddress(get from JccConnection.getOriginatingAddress)

Body

From: SIP CANCEL message

To: connectionFailed(for originating connection)

connectionEvent

Response-Line

SIP response code (*) cause (get from JccConnectionEvent.getCause)

ID(get from JccConnectionEvent.getID)

source(get from JccConnectionEvent.getSource)

JccConnection(get from JccConnectionEvent.getConnection)

Request-Line

Request-URI address (get from JccConnection.getDestinationAddress)

Header

To address (get from JccConnection.getOriginalAddress)

From address(get from JccConnection.getAddress)

Body

(*) The cause value in the argument ‘connectionevent’ is corresponding to SIP response code. However, there is no rule of mapping from cause value to SIP response code.

Page 65: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionInProgress(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection has just been placed in the JcpConnection.INPROGRESS state.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection object has been created, and the state of connection object is IDLE.

1 The JCC Implementation starts to process the connection.

2 The state of connection object transits from IDLE to INPROGRESS.

3 The JCC Implementation invokes the connectionInprogress method.

Parameter Mapping

None

connectionInProgress

No appropriate SIP message

Page 66: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionUnknown(JcpConnectionEvent connectionevent)

Indicates that the JcpConnection has just been placed in the JcpConnection.UNKNOWN state.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection objects have been created.

1 The JCC Implementation becomes to be unable to determine the current state of the connection.

2. The Application invokes the connectionUnknown method.

Parameter Mapping

None

connectionUnknown

No appropriate SIP message

Page 67: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionAddressAnalyze(JccConnectionEvent connectionevent)

Indicates that the JccConnection has just been placed in the JccConnection.ADDRESS_ANALYZE state.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection object has been created, and the state of connection object is AUTHORIZE_CALL_ATTEMPT or ADDRESS_COLLECT.

1 The JCC Implementation collects complete initial information package/dialing string from the originating party.

2 The state of connection object transits to ADDRESS_ANALYZE.

3 The JCC Implementation invokes the connectionAddressAnalyze method.

Parameter Mapping

None

connectionAddressAnalyze

No appropriate SIP message

Page 68: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionAddressCollect(JccConnectionEvent connectionevent)

Indicates that the JccConnection has just been placed in the JccConnection.ADDRESS_COLLECT state

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection object has been created, and the state of connection object is AUTHORIZE_CALL_ATTEMPT or CALL_DELIVERY.

1 The JCC Implementation authorizes the originating address for this call.

2 The state of connection object transits to ADDRESS_COLLECT.

3 The JCC Implementation invokes the connectionAddressCollect method.

Parameter Mapping

None

connectionAddressCollect

No appropriate SIP message

Page 69: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionAuthorizeCallAttempt(JccConnectionEvent connectionevent)

Indicates that the JccConnection has just been placed in the JccConnection.AUTHORIZE_CALL_ATTEMPT state.

Call Flow

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection object has been created, and the state of connection object is IDLE.

1 The JCC Implementation starts to authorize originating or terminating terminal for the call.

2 The state of connection object transits from IDLE to AUTHORIZE_CALL_ATTEMPT.

3 The JCC Implementation invokes the connectionAuthorizeCallAttempt method.

Parameter Mapping

None

connectionAuthorizeCallAttempt

No appropriate SIP message

Page 70: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionCallDelivery(JccConnectionEvent connectionevent)

Indicates that the JccConnection has just been placed in the JccConnection.CALL_DELIVERY state

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection object has been created, and the state of connection object is AUTHORIZE_CALL_ATTEMPT or ADDRESS_ANALYZE.

1 The JCC Implementation becomes to be able to use the routing address and call type on the originating connection, or the JCC Implementation authorize the terminating connection

2 The state of connection object transits to CALL_DELIVERY.

3 The JCC Implementation invokes the connectionCallDelivery method.

Parameter Mapping

None

connectionCallDelivery

No appropriate SIP message

Page 71: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

void connectionSuspended(JccConnectionEvent connectionevent)

Indicates that the JccConnection has just been placed in the JccConnection.SUSPENDED state

JCC

Application JCC

Implementation SIP

Peer JAIN SIP API

Implementation

Normal Operation

Pre-conditions The listener object for the connection has been registered.

Call and connection object has been created and connected.

1 The JCC Implementation receives the message which indicates transition to SUSPEND.

2 The state of connection object transits to CALL_SUSPEND.

3 The JCC Implementation invokes the connectionSuspend method.

Parameter Mapping

None

connectionSuspended

No appropriate SIP message

Page 72: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

3.0 Methods not mapped

3.1 JccProvider

void addProviderListener(JcpProviderListener providerlistener)

Adds a listener to this provider.

void removeProviderListener(JcpProviderListener providerlistener)

Removes the given listener from the provider.

String getName()

Returns the unique string name of this JcpProvider instance.

int getState()

Returns the state of the JcpProvider.

void addCallListener(JccCallListener calllistener, EventFilter filter)

Add a call listener to all (future and current) call objects within the domain of this provider.

void addCallListener(JcpCallListener calllistener)

Add a call listener to all (future and current) call objects within the domain of this provider.

void addCallLoadControlListener(CallLoadControlListener loadcontrollistener, EventFilter filter)

Adds a listener to listen to load control related events.

void addConnectionListener(JccConnectionListener connectionlistener, EventFilter filter)

Add a connection listener to all connections under this JcpProvider.Add a connection listener to all connections under this JcpProvider.

void removeCallListener(JcpCallListener calllistener)

Removes a call listener that was previously registered.

void removeCallLoadControlListener(CallLoadControlListener loadcontrollistener)

Deregisters the load control listener.

void removeConnectionListener(JcpConnectionListener connectionlistener)

Removes a connection listener that was registered previously.

Page 73: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

3.2 JccCall

void addCallListener(JcpCallListener calllistener)

Add a listener to this call.

JcpConnection[] getConnections()

Retrieves an array of connections associated with this call.

JcpProvider getProvider()

Retrieves the provider handling this call object.

int getState()

Retrieves the state of the call.

void removeCallListener(JcpCallListener calllistener)

Removes a listener from this call.

void addCallListener(JccCallListener calllistener, EventFilter filter)

Add a listener to this call.

void addConnectionListener(JccConnectionListener cl, EventFilter filter)

Add a connection listener to all connections under this call.

void removeConnectionListener(JccConnectionListener cl)

Removes the connection listener from all connections under this call.

Page 74: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

3.3JccConnection

JcpCall getCall()

Retrieves the JcpCall that is associated with this JcpConnection.

int getState()

Retrieves the state of the JcpConnection object.

int getJccState()

Retrieves the state of the JccConnection object.

boolean isBlocked()

Returns a boolean value indicating if the JccConnection is currently blocked due to a blocking event having been fired to a listener registered for that blocking event.

Page 75: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

4.0 References

[1] Java Call Control (JCC) Specification JCP JSR21 – http://jcp.org/jsr/detail/21.jsp

[2] JAIN Call Control and Session Initiation Protocol, IEICE TRANS. Commun. VOL. E84, NO.10 October 2001 Paper by Ravi Jain, John-Luc Bakker and Farooq Anjum

[3] JAIN Session Initiation Protocol (SIP) Specification JCP JSR32 - http://jcp.org/jsr/detail/32.jsp

[4] Session Initiation Protocol (SIP) IETF RFC 2543 - http://www.ietf.org/rfc/rfc2543.txt

[5] JCC to INAP Mapping – http://java.sun.com/products/jain

[6] JCC to H323 Mapping - http://java.sun.com/products/jain

Page 76: Java Call Control v1.0 to Session Initiation Protocol Mapping · JavaTM Call Control v1.0 to Session Initiation Protocol Mapping JAINTM Community A dynamicsoft, Fujitsu, NEC, NTT,

5.0 Appendix

5.1 JCC Connection Object FSM