You are here: SwitchKit® Development Environment - TCAP Interface User’s Guide > D Appendix - SKTAL Dialog and Component Structure Definitions > SKTAL_DLG and SKTAL_CPT Structure Definitions

SKTAL_DLG and SKTAL_CPT Structure Definitions

/*

* Quality of service indicator octet definitions:

* (To select more than one option OR together options)

*/

#define QOSI_RET_OPT (0x01) /* Return Option */

#define QOSI_SEQ_CTRL (0x02) /* Sequence Control */

#define QOSI_SLS_KEY (0x04) /* SLS key present */

#define QOSI_PRIORITY (0x08) /* Message priority octet present */

#define QOSI_NETWK_IND (0x10) /* Use provided network indicator */

#define QOSI_PROT_VER (0x20) /* Force inclusion of the TCAP ver */

/*

* TCAP_PN_TERMINATION Values:

*/

#define TCAP_END_BASIC (0) /* Basic end */

#define TCAP_END_PREARRANGED (1) /* Pre-arranged end */

/*

* TCAP_PN_CPT_PRESENT Values:

*/

#define TCAP_NO_CPT (0) /* No component(s) present */

#define TCAP_CPT_PRESENT (1) /* Component(s) present */

/*

* TCAP_PN_LAST_CPT Values:

*/

#define TCAP_MORE_CPTS (0) /* More component(s) to follow */

#define TCAP_LAST_CPT (1) /* This is the last component */

#define TCPEND_BASIC TCAP_END_BASIC

#define TCPEND_PREARRANGED TCAP_END_PREARRANGED

#define TCP_NO_CPT TCAP_NO_CPT

#define TCP_CPT_PRESENT TCAP_CPT_PRESENT

#define TCP_MORE_CPTS TCAP_MORE_CPTS

#define TCP_LAST_CPT TCAP_LAST_CPT

/* Size values for Manual TCAP Parser */

#define MAX_TCAP_CPT_SIZE (304)

#define MAX_NO_OF_TCAP_CPTS (4)

#define MAX_TCAP_DLG_SIZE (336)

#define MAX_TCAP_TRANS_SIZE \

(MAX_TCAP_DLG_SIZE + (MAX_TCAP_CPT_SIZE * MAX_NO_OF_TCAP_CPTS))

/********************************************************************

* *

* Structure definitions for Component Primitives *

* *

********************************************************************/

/*

* Definitions for buffer sizes in the 'C' structured

* representation of TCAP protocol primitives.

*

* Each value must allow space for the tag, length and associated data to be stored.

* The user may need to change the values given in

* order to support larger parameters or to reduce

* the size of the structures if it is known that

* certain parameters lengths will never be exceeded.

*/

#define IV_SIZE (4) /* space for 'invoke_id' parameter */

#define OP_SIZE (32) /* space for 'operation' parameter */

#define PR_SIZE (256) /* space for 'parameter' parameter */

#define ER_SIZE (32) /* space for 'error' parameter */

#define PB_SIZE (16) /* space for 'problem' parameter */

#define AC_SIZE (64)/* space for 'ac_name' parameter */

#define UI_SIZE (256) /* space for 'user_info' parameter */

#define AB_SIZE (256) /* space for 'abt_info' parameter */

/*

* Substructures for Components

*/

typedef struct cpt_inv_id

{

SKTAL_USHORT len;

SKTAL_OCTET data [IV_SIZE];

}

CPT_INV_ID;

typedef struct cpt_op

{

SKTAL_USHORT len;

SKTAL_OCTET data [OP_SIZE];

}

CPT_OP;

typedef struct cpt_param

{

SKTAL_USHORT len;

SKTAL_OCTET data [PR_SIZE];

}

CPT_PARAM;

typedef struct cpt_error_code

{

SKTAL_USHORT len;

SKTAL_OCTET data [ER_SIZE];

}

CPT_ERROR_CODE;

typedef struct cpt_problem

{

SKTAL_USHORT len;

SKTAL_OCTET data [PB_SIZE];

}

CPT_PROBLEM;

/*

* Invoke primitive. REQ and IND

* Invoke not last primitive. REQ and IND

*/

typedef struct cpt_invoke

{

CPT_INV_ID invoke_id;

CPT_OP operation;

CPT_PARAM param;

#if defined(CCITT)

SKTAL_USHORT opClass; /* 1, 2, 3 or 4 */

#dendif

SKTAL_USHORT timeout; /* 0 .. 409 */

CPT_INV_ID linked_id;

#define correlation_id linked_id /* FOR ANSI */

}

CPT_INVOKE;

/*

* Return result last primitive. REQ and IND

* Return result not last primitive. REQ and IND

*/

typedef struct cpt_result

{

CPT_INV_ID invoke_id;

#if defined(CCITT)

CPT_OP operation;

#endif

CPT_PARAM param;

}

CPT_RESULT;

/*

* User error primitive. REQ and IND

*/

typedef struct cpt_error

{

CPT_INV_ID invoke_id;

CPT_ERROR_CODE error;

CPT_PARAM param;

}

CPT_ERROR;

/*

* User reject primitive. REQ and IND

* Local reject primitive. IND only.

* Remote reject primitive. IND only.

*/

typedef struct cpt_reject

{

CPT_INV_ID invoke_id;

CPT_PROBLEM problem;

#if defined(ANSI)

CPT_PARAM param;

#endif

}

CPT_REJECT;

/*

* User cancel primitive. REQ only.

* Local cancel primitive. IND only.

*/

typedef struct cpt_cancel

{

CPT_INV_ID invoke_id;

}

CPT_CANCEL;

/*

* Timer Reset primitive (ITU White Book 97 only). REQ only.

*/

#if defined(CCITT)

typedef struct cpt_timerReset

{

CPT_INV_ID invoke_id;

}

CPT_TIMER_RESET;

#endif

/*

* Union of all of the above

*/

typedef struct tcap_cpt

{

SKTAL_USHORT last_component; /* either 0 or non-zero */

SKTAL_USHORT ptype; /* prim type (TCPPT_xxx values) */

Union

{

CPT_INVOKE invoke;

CPT_RESULT result;

CPT_ERROR error;

CPT_REJECT reject;

CPT_CANCEL cancel;

#if defined(CCITT)

CPT_TIMER_RESET timerReset;

#endif

}

u;

}

TCAP_CPT;

/********************************************************************

* *

* Structure definitions for Dialogue Primitives *

* *

********************************************************************/

/*

* Dialog substructures

*/

typedef struct dlg_qos

{

SKTAL_OCTET indicator;

SKTAL_OCTET sls_key;

SKTAL_OCTET priority;

SKTAL_OCTET networkInd;

}

DLG_QOS;

typedef struct ac_name

{

SKTAL_USHORT len;

SKTAL_OCTET data [AC_SIZE];

}

DLG_AC_NAME;

typedef struct usr_inf

{

SKTAL_USHORT len;

SKTAL_OCTET data [UI_SIZE];

}

DLG_USR_INF;

typedef struct abt_inf

{

SKTAL_USHORT len;

SKTAL_OCTET data[AB_SIZE];

}

DLG_ABT_INF;

/*

* ITU and ANSI UNI. REQ and IND.

*/

typedef struct dlg_uni

{

SKTAL_USHORT cpt_present; /* 0 or 1 */

DLG_QOS qos;

DLG_AC_NAME ac_name;

DLG_USR_INF user_info;

SCCP_ADDR orig_addr;

SCCP_ADDR dest_addr;

MTP3_POINT_CODE opc; /* for use when address doesn't include */

MTP3_POINT_CODE dpc; /* for use when address doesn't include */

}

DLG_UNI;

/*

* ITU BEGIN, ANSI QUERY W/PERM and WO/PERM. REQ and IND.

*/

typedef struct dlg_begin

{

SKTAL_USHORT cpt_present; /* 0 or 1 */

DLG_QOS qos;

DLG_AC_NAME ac_name;

DLG_USR_INF user_info;

SCCP_ADDR orig_addr;

SCCP_ADDR dest_addr;

MTP3_POINT_CODE opc; /* for use when address doesn't include */

MTP3_POINT_CODE dpc; /* for use when address doesn't include */

}

DLG_BEGIN;

/*

* ITU CONTINUE, ANSI CONV W/PERM and WO/PERM. REQ and IND.

*/

typedef struct dlg_continue

{

SKTAL_USHORT cpt_present; /* 0 or 1 */

DLG_QOS qos; /* Indication only. Ignore for request */

DLG_AC_NAME ac_name;

DLG_USR_INF user_info;

SCCP_ADDR orig_addr;

MTP3_POINT_CODE opc; /* for use when address doesn't include */

}

DLG_CONTINUE;

/*

* ITU END, ANSI RESP. REQ and IND.

*/

typedef struct dlg_end

{

SKTAL_USHORT cpt_present; /* 0 or 1 */

DLG_QOS qos; /* Indication only. Ignore for request */

DLG_AC_NAME ac_name;

DLG_USR_INF user_info;

SKTAL_OCTET termination; /* 0 or 1 */

}

DLG_END;

/*

* ITU U-ABORT. REQ only.

* ITU P-ABORT. IND only.

* ANSI ABORT, IND only.

*/

typedef struct dlg_abort

{

SKTAL_USHORT abort_reason;

DLG_QOS qos; /* Indication only. Ignore for request */

DLG_AC_NAME ac_name; /* P-ABORT does not include this */

DLG_USR_INF user_info; /* P-ABORT does not include this */

DLG_ABT_INF abort_info; /* ANSI only */

}

DLG_ABORT;

/*

* ITU NOTICE and ANSI NOTICE. IND only (based on QOS return option).

*/

typedef struct dlg_notice

{

SKTAL_OCTET report_cause;

SKTAL_OCTET user_data_len; /* Presence depends on manufacturer */

SCCP_ADDR orig_addr; /* Presence depends on manufacturer */

SCCP_ADDR dest_addr; /* Presence depends on manufacturer */

SCCP_DATA user_data; /* Presence depends on manufacturer */

}

DLG_NOTICE;

/*

* Union of above types

*/

typedef struct tcap_dlg

{

SKTAL_USHORT ptype; /* primitive type (TCPPT_xxx values) */

Union

{

DLG_UNI uni;

DLG_BEGIN begin;

DLG_CONTINUE cont;

DLG_END end;

DLG_ABORT abort;

DLG_NOTICE notice;

}

u;

}

SKTAL_DLG;

See Transaction Capability Application Part.
A sequence of eight bits.
Comité Consultatif Internationale de Telephonique et Telegraphique (now ITU)
American National Standards Institute. ANSI administers and coordinates the U.S. voluntary standardization and conformity assessment system for the
telecommunications industry. More details on these standards may be
viewed at www.ansi.org.
International Telecommunications Union (UN)
Message Transfer Part level 3 - network level