ITU-T component structure

The ITU-T component structure is used by applications implementing ITU-T TCAP:

typedef struct Tcap_Itu_Comp
{
  TcapCompId       invokeId;       /* invoke id                        */
  TcapCompId       linkedId;       /* linked id                        */
  U16              invokeTimer;    /* Invoke Timer                     */
  U8               opClass;        /* operation class for invoke       */
  U8               spare;          /* spare for alignment              */
                   union           /* component type-specific fields   */
  {
    TcapItuOpcode  opcode;         /* operation code for invoke        */
    TcapItuErrcode errcode;        /* error code for return error      */
    TcapItuPrbcode prbcode;        /* problem code for reject          */
  } uComp;

} TcapItuComp;

 

Fields are coded as follows:

Field

Description

invokeID

Contains the invocation ID. It must be set for any invoke component to a value unique to all outstanding invoke components belonging to this transaction. To cancel an outstanding invoke component, this field is set to the invokeID of the component that is cancelled.

linkedId

Contains the optional ITU-T linked ID. The linked ID can be used to create a linked invoke (a new invoke sent as a response to a received invoke) by setting this field to the invokeID from the original received invoke and setting the invokeId to a new unique value.

invokeTimer

Specifies the time, in seconds, to wait for a response to an invoke component. If zero, the value from the TCAP SAP configuration is used. This field is ignored for any component other than an invoke component.

opClass

Specifies the ITU-T operation class. It is encoded to one of the values specified in the opClass table.

opcode

Represents the operation code in an invoke component:

typedef struct Tcap_Itu_Opcode
{
  U8           opCodeType;   /* operation code type */
  U8           spare;        /* spare for alignment */
  U8           fill;         /* fill for alignment  */
  U8           fill2;        /* fill for alignment  */
  TcapOctetStr opCode;       /* opcode length/value */
} TcapItuOpcode;

The opCode value is a variable length octet string coded to the standards for the application protocol in use.

opCodeType can be set to one of the following values:

0 = TCAP_NONE   Opcode omitted (return result only)

1 = TCAP_LOCAL   Local error/operation code

2 = TCAP_GLOBAL    Global error/operation code

errcode

Represents the error code in a return error component:

typedef struct Tcap_Itu_Errcode
{
  U8           errCodeId;       /* error code identifier         */
  U8           fill;            /* fill for alignment            */
  U8           fill2;           /* fill for alignment            */
  U8           spare;           /* spare for alignment           */
  TcapOctetStr errCode;         /* error code length/value       */
} TcapItuErrcode;

 

The errCode value is a variable length octet string coded to the standards for the application protocol in use. errCodeId can be set to either:

1 = TCAP_LOCAL   Local error/operation code

2 = TCAP_GLOBAL   Global error/operation code

prbcode

Represents the problem code in a reject component:

typedef struct Tcap_Itu_Prbcode
{
  U8           probType;        /* problem type                  */
  U8           spare;           /* spare for alignment           */
  U8           fill;            /* fill for alignment            */
  U8           fill2;           /* fill for alignment            */
  TcapOctetStr prbCode;         /* problem code length/value     */
} TcapItuPrbcode;

 

The probType field classifies the problem encountered in the rejected component:

0x00 = TCAP_PROB_NONE   No problem code flag

0x80 = TCAP_PROB_GENERAL   General problem code flag

0x81 = TCAP_PROB_INVOKE   Invoke problem code flag

0x82 = TCAP_PROB_RET_RES   Return result problem code

0x83 = TCAP_PROB_RET_ERR   Return error problem code flag

 

The prbCode value is a variable length octet string:

General problems

0 = TCAP_UNREC_COMP   Unrecognized component

1 = TCAP_MISTYPED_COMP   Mistyped parameter

2 = TCAP_BAD_STRUC_COMP   Badly structured component

Invoke problems

0 = TCAP_DUP_INVOKE   Duplicate invoke ID

1 = TCAP_UNREC_OPR   Unrecognized invoke ID

2 = TCAP_MISTYPED_PARAM   Mistyped parameter

3 = TCAP_RESOURCE_LIMIT   Resource limitation

4 = TCAP_INIT_RELEASE   Initiating release

5 = TCAP_UNREC_LINKED_ID   Unrecognized linked ID

6 = TCAP_LINKED_RESP_UNX   Linked response unexpected

7 = TCAP_UNX_LINKED_OP   Unexpected linked operation

Return result problem

0 = TCAP_RR_UNREC_INVKID   Unrecognized invoke ID

1 = TCAP_UNX_RETRSLT   Return result unexpected

2 = TCAP_RR_MISTYPED_PAR   Mistyped parameter

Return error problems

0 = TCAP_RE_UNREC_INVKID   Unrecognized invoke ID

1 = TCAP_RE_UNX_RETERR   Unexpected return error

2 = TCAP_UNREC_ERROR   Unrecognized error

3 = TCAP_UNX_ERR   Unexpected error

4 = TCAP_RE_MISTYPED_PAR   Mistyped parameter


The opclass field can be one of the following values:

Value

Description

1

Both successes and failures are reported. A timeout is an abnormal failure.

2

Only failure is reported. A timeout implies successful completion.

3

Only success is reported. A timeout implies a failed operation.

4

Neither success or failure is reported. There is no interpretation of timeout.