2 Introduction

TCAP is a layer of the SS7 communications protocol that was developed to add transaction based functionality, such as maintaining a dialogue with a database, providing the mechanism to access remote switches and activating features within those switches, to the existing telephone network. The TCAP layer is designed for signaling related messages and provides a means for transfer of information from one application at a switch to another application within another network entity. The information passed through the TCAP layer must be transferred between applications, transparently through the network.

The objective of the JAIN TCAP API specification is to specify a Java API that will provide the interfaces and classes required to initialize and terminate a TCAP session, manage TCAP dialogue identifiers, retrieve, build and send dialogue and component primitives.

2.1 System Overview

TCAP captures the general essence of Transaction processing, which is a sequence of gathering and transferring information. A logical example of transaction processing [Also see Appendix IV] in every day life is the interaction between an ATM and a person, see Figure 2.1:
 
 



In this example the person interfaces to the ATM machine and has no idea how the ATM is talking to the Bank. The ATM presents a single interface to what are multiple interfaces. A SS7 TCAP protocol stack operates the same way. TCAP provides one interface to the application, when in reality, there may be numerous underlying interactions taking place. All the details of the transaction are not sent to the far node until the final piece of information has been gathered and checked.

In the ATM example, the transaction is not completed until the person has collected the card and walked away. This is analogous to a structured dialogue in TCAP, which is not deleted until the dialogue is complete. The ATM machine handles all the error processing, similarly TCAP has to handle all possible error conditions.

In the ATM example, the person could enter wrong values, enter different accounts to draw from, different amounts of money, etc. or the Bank had the option to reject the request based on any of the data provided.

This simple ATM example does not take into account all the complexities of money transactions, but the basic idea is to interact with a bank to exchange information, and hopefully get money. In the same way, there are many complexities needed to support SS7 TCAP processing, but the goals are the same, interact with a foreign entity to which you send and retrieve information, and hopefully get results.

Although the interactions between the banking system and the ATM are quite complex, the interface to the human is quite simple. Similarly this specification and the resultant API specification only deal with the simple interface to the functions of TCAP. While the TCAP layer and the SS7 Network are quite complex, the API specification hides the complexities so applications can focus on services. The TCAP API is only concerned with the application interface, not the SS7 implementation.
 

2.1.1 Transaction Capabilities Application Part

The purpose of TCAP is to provide the means for the transfer of information between signaling point nodes and to provide generic services to applications such as mobile telephony and free phone service, while being independent of any of these. TCAP is used in the real world today, by a variety of applications including:

Figure 2.2 shows where TCAP resides in the functional representation of an SS7 stack.

In the SS7 stack diagram the other layers included are:

ISUP: - A protocol of SS7 which provides the signaling functions necessary to basic bearer services and supplementary services for voice and non-voice applications in the Integrated Services Digital Network. It defines the protocol and procedures used to set-up, manage and release trunk circuits that carry voice and data call over the Public Switched Telephone Network (PSTN).

SCCP: - Additional functions to the Message Transfer Part to cater for both connectionless as well as connection-orientated network service and to achieve an Open Standards Interconnection compatible network service. The SCCP transfers signaling data units across the SS7 network, with or without using a logical signaling connection.

MTP: - The functional part of a common channel signaling system which transfers signaling messages as required by all the users, and which performs the necessary subsidiary functions, for example error control and signaling.

The dialogue between two TCAP users is initiated by one of the users with a 'BEGIN' primitive, and terminated by one of the users with an 'END' primitive. Data and commands are passed in the dialogue by 'component's. Once a dialogue has been established between two TCAP users successive components are exchanged between both users. A TCAP user may pass a number of components into the TCAP layer. However only when the TCAP user employs a dialogue request primitive will the transmission of all previously passed components with the same dialogue identifier are triggered. The most common component primitives include:

Where a component is a protocol data unit exchanged between TC-Users, via the TCAP layer. The most common dialogue primitives include: Where a dialogue is an association established between two TC-Users exchanging components, as opposed to a transaction which is an association between two Transaction Capabilities providers.

A typical message exchange sequence between two nodes in a network during a structured dialogue is illustrated in Figure 2.4. The signaling between a User and the TCAP within a node, is the Component and Dialogue handling primitives passed between them. The diagram uses JAIN terminology when referring to the TCAP Component and Dialogue handling primitives. The mapping of these JAIN Events to protocol specific primitives is outlined in Table 2.1
 
 

A User passes a number of Component primitives to the TCAP followed by a Dialogue primitive (bold). The receipt of a Dialogue handling primitive by TCAP from a User triggers the transmission of all previously passed components to the destination node. At the receiving node TCAP passes a Dialogue handling Indication primitive to the user along with any associated Component Indication primitives. Indication primitives are passed from TCAP to the User, while request primitives are passed from the User to TCAP. It should be noted that the time sequence of invocation/result pairs in Figure 2.4 is just an example of such a sequencing.When multiple invocations are received in a BEGIN, they are handed up to the User one after another with no implication that you wait for results of a previous one before handing up the next invocation. According to the TCAP specifications the invocations are handed up to the remote User in the same order in which they were handed down to the local User.
 

JainEvent No ITU Primitive ANSI Primitive  Event Properties
Invoke  1, 2  TC_INVOKE  TC_INVOKE_NL  isLastInvoke() == false 
Invoke  TC_INVOKE  TC_INVOKE  isLastInvoke() == true 
Begin    TC_BEGIN  TC_QWP

TC_QWOP 

isAllowedPermission() == true

isAllowedPermission() == false 

Result  2, 1  TC_RESULT_NL  TC_RESULT_NL  isLastResult() == false 
Result  TC_RESULT_L  TC_RESULT_L  isLastResult() == true 
End    TC_END  TC_RESPONSE   

Table 2.1 - Mapping of JAIN Events to protocol primitives for Figure 2.4


 
 

A typical message exchange sequence between two nodes in a network during an unstructured dialogue is illustrated in Figure 2.5. In contrast to a structured dialogue, there is no initiation or termination associated with an unstructured dialogue in that there is no response expected from the remote node. The mapping of these JAIN Events to protocol specific primitives is outlined in Table 2.2

JainEvent No ITU Primitive ANSI Primitive  Event Properties
Invoke  1, 2  TC_INVOKE  TC_INVOKE_NL  isLastInvoke() == false 
Invoke  TC_INVOKE  TC_INVOKE  isLastInvoke() == true 
Unidirectional    TC_UNI  TC_UNI   

Table 2.2 - Mapping of JAIN Events to protocol primitives for Figure 2.5


 
 

A typical message exchange sequence between two nodes in a network during a continued structured dialogue is illustrated is Figure 2.6. The Continue Dialogue handling primitive indicates the continuation of the dialogue. The mapping of these JAIN Events to protocol specific primitives is outlined in Table 2.3
 
 

JainEvent No ITU Primitive ANSI Primitive  Event Properties
Invoke    TC_INVOKE  TC_INVOKE  isLastInvoke() == true 
Begin    TC_BEGIN  TC_QWP

TC_QWOP 

isAllowedPermission() == true

isAllowedPermission() == false 

Result  TC_RESULT_NL  TC_RESULT_NL  isLastResult() == false 
Continue    TC_CONTINUE  TC_CWP

TC_CWOP 

isAllowedPermission() == true

isAllowedPermission() == false 

Result  TC_RESULT_L  TC_RESULT_L  isLastResult() == true 
End    TC_END  TC_RESPONSE   

Table 2.3 - Mapping of JAIN Events to protocol primitives for Figure 2.6


Copyright - 2000 Sun Microsystems
28 June 00
If you have any comments or queries, please mail them to [email protected]