ANSI component structure

The ANSI component structure is used by applications implementing ANSI TCAP:

typedef struct Tcap_Ansi_Comp
{
  TcapCompId      invokeId;     /* invoke id                           */
  TcapCompId      corrId;       /* correlation id                      */
  U16             invokeTimer;  /* Invoke Timer                        */
                  union         /* component type-specfic fields       */
 {
  TcapAnsiOpcode  opcode;       /* operation code for invoke           */
  TcapAnsiErrcode errcode;      /* error code for return error         */
  TcapAnsiPrbcode prbcode;      /* problem code for reject             */
} uComp;

  U8              paramFlg;     /* Set or Sequence...                  */
  U8              spare;        /* spare for alignment                 */
} TcapAnsiComp;

 

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, set this field to the invokeID of the component that is cancelled.

corrId

Contains the optional ANSI correlation ID.

  • For a reply component (return result, return error, reject), set it to the invokeID of the component to which the reply is directed.

  • For an invoke component, it creates 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

Not applicable for the ANSI protocol.

opcode

Represents the operation code in an invoke component:

typedef struct Tcap_Ansi_Opcode
{
  U8  opCodeId;   /* operation code identifier                   */
  U8  opFamily;   /* operation code family                       */
  U8  opSpec;     /* operation code                              */
  U8  spare;      /* spare for alignment                         */
} TcapAnsiOpcode;

 

Refer to TcapAnsiOpcode for information about the fields.

errcode

Represents the error code in a return error component:

typedef struct Tcap_Ansi_Errcode
{
  U8  errCodeId; /* error code identifier  */
  U8  errCode;   /* error code value       */
  U8  fill;      /* fill for alignment     */
  U8  fill2;     /* fill for alignment     */
} TcapAnsiErrcode;

Refer to TcapAnsiErrcode for information about the fields.

prbcode

Represents the problem code in a reject component:

typedef struct Tcap_Ansi_Prbcode
{
  U8  probType;     /* problem type        */
  U8  probSpec;     /* problem specifier   */
  U8  fill;         /* fill for alignment  */
  U8  fill2;        /* fill for alignment  */
} TcapAnsiPrbcode;

Refer to TcapAnsiPrbcode for information about the fields.

parmFlg

Specifies whether application parameters associated with this component are encoded as (ASN.1) SET or SEQUENCE:

0 = TCAP_NO_SET_SEQ   No parameters

1 = TCAP_SEQUENCE   Parameter is a sequence

2 = TCAP_SET   Parameter is a set

parmFlg is valid only for ANSI protocols. When configured with the ANSI-88 protocol, only TCAP_SET is valid. When configured for ANSI-92 or later protocols, either TCAP_SET or TCAP_SEQUENCE can be used.

If parmFlg is set to TCAP_NO_SET_SEQ, then no parameter is sent, even if one is specified.


TcapAnsiOpcode

TcapAnsiOpcode contains the following fields:

Field

Value

opCodeId

Set to one of the following values:

3 = TCAP_NATIONAL   National TCAP

4 = TCAP_PRIVATE   Private TCAP

opFamily

There are several pre-defined fields for national TCAP. If the opCodeId specifies private TCAP, an application-specific value is used:

0x00 = TCAP_ANSI_NOF_NU   Not used

0x01 = TCAP_ANSI_NOF_PARAM   Parameter

0x02 = TCAP_ANSI_NOF_CHGING   Charging

0x03 = TCAP_ANSI_NOF_PR_INS   Provide instructions

0x04 = TCAP_ANSI_NOF_CN_CTL   Connection control

0x05 = TCAP_ANSI_NOF_CL_INT   Caller interaction

0x06 = TCAP_ANSI_NOF_SND_NO   Send notification

0x07 = TCAP_ANSI_NOF_NET_MN   Network management

0x08 = TCAP_ANSI_NOF_PROC   Procedural

0x09 = TCAP_ANSI_NOF_OP_CTL   Operation control family (ANSI-92)

0x0A = TCAP_ANSI_NOF_RP_EVT   Report event family (ANSI-92)

0x7E = TCAP_ANSI_NOF_MISC   Miscellaneous

0x7F = TCAP_ANSI_NOF_RSRVD   Reserved

To specify that a reply is required, the following value is logically OR'd with one of the previous values:

0x80 = TCAP_ANSI_NOF_RP_REQ   Reply required OR w/value

opSpec

Specifies a particular operation within an operation family:

0xFF = TCAP_ANSI_OS_RSRVD   All families - reserved

0x00 = TCAP_ANSI_OS_NU   All families - not used

0x01 = TCAP_ANSI_OS_PRV_VAL   Parameter - provide value

0x02 = TCAP_ANSI_OS_SET_VAL   Parameter - set value

0x01 = TCAP_ANSI_OS_BL_CALL   Charging - bill call

0x01 = TCAP_ANSI_OS_START   Provide instruction - start

0x02 = TCAP_ANSI_OS_ASSIST   Provide instruction assist

0x01 = TCAP_ANSI_OS_CONNECT   Connection control - connect

0x02 = TCAP_ANSI_OS_TMP_CON   Connection control - temporary connect

0x03 = TCAP_ANSI_OS_DISC   Connection control - disconnect

0x04 = TCAP_ANSI_OS_FWD_DIS   Connection control - forward disconnect

0x01 = TCAP_ANSI_OS_PLY_ANN   Caller interaction - play announcement

0x02 = TCAP_ANSI_OS_COL_DIG   Caller interaction - play and collect digits

0x03 = TCAP_ANSI_OS_INF_WTG   Caller interaction - information waiting

0x03 = TCAP_ANSI_OS_INF_PVD   Caller interaction - information provided

0x01 = TCAP_ANSI_OS_PTY_FRE   Send notification when free

0x01 = TCAP_ANSI_OS_RAS_TRM   Procedural report assist termination

0x01 = TCAP_ANSI_OS_CANCEL   Operation control - cancel

0x01 = TCAP_ANSI_OS_VM_AVL   Report event - voice message available

0x02 = TCAP_ANSI_OS_VM_RTVD   Report event - voice message retrieved

0x02 = TCAP_ANSI_OS_Q_CALL   Miscellaneous - queue call

0x02 = TCAP_ANSI_OS_DQ_CALL   Miscellaneous - dequeue call

0x01 = TCAP_ANSI_OS_CAL_GAP   Network management - call gap

0x01 = TCAP_ANSI_OS_TMP_HDN   Proc. - temporary handover


TcapAnsiErrcode

TcapAnsiErrcode contains the following fields:

Field

Value

errCodeId

Set to one of the following values:

3 = TCAP_NATIONAL   National TCAP

4 = TCAP_PRIVATE   Private TCAP

errCode

Has several pre-defined fields for national TCAP. If the errCodeId specifies private TCAP, an application-specific value is used:

0x00 = TCAP_ANSI_ERR_NU   Not used

0x01 = TCAP_ANSI_ERR_UX_CMP   Unexpected component sequence

0x02 = TCAP_ANSI_ERR_UX_DAT   Unexpected data value

0x03 = TCAP_ANSI_ERR_UA_NET   Unavailable network resource

0x04 = TCAP_ANSI_ERR_MSG_RC   Missing customer record

0x05 = TCAP_ANSI_ERR_REP_OD   Reply overdue (ANSI-88)

0x05 = TCAP_ANSI_ERR_REP_SC   Spare code (ANSI-92)

0x06 = TCAP_ANSI_ERR_DAT_UA   Data unavailable

0x07 = TCAP_ANSI_ERR_TSK_RE   Task refused (ANSI-92)

0x08 = TCAP_ANSI_ERR_Q_FULL   Queue full (ANSI-92)

0x09 = TCAP_ANSI_ERR_NO_Q   No queue (ANSI-92)

0x0A = TCAP_ANSI_ERR_TMR_EX   Timer expired (ANSI-92)

0x0B = TCAP_ANSI_ERR_DAT_EX   Data already exists (ANSI92)

0x0C = TCAP_ANSI_ERR_UNAUTH   Unauthorized request (ANSI-92)

0x0D = TCAP_ANSI_ERR_NOT_QD   Not queued (ANSI-92)

0x0E = TCAP_ANSI_ERR_UAS_DN   Unassigned DN (ANSI-92)

0x0F = TCAP_ANSI_ERR_SPARE   Spare (ANSI-92)

0x10 = TCAP_ANSI_ERR_NOT_AV   Notification available on destination DN (ANSI-92)

0x11 = TCAP_ANSI_ERR_VMSR_E   VMSR system ID does not match user profile (ANSI-92)


TcapAnsiPrbcode

TcapAnsiPrbcode contains the following fields:

Field

Value

probtype

Classifies the problem encountered in the rejected component:

0x00 = TCAP_ANSI_PRB_NU   Not used

0x01 = TCAP_ANSI_PRB_GEN   General

0x02 = TCAP_ANSI_PRB_INV   Invoke

0x03 = TCAP_ANSI_PRB_RR   Return result

0x04 = TCAP_ANSI_PRB_RE   Return error

0x05 = TCAP_ANSI_PRB_TRANS   Transaction portion

0xFF = TCAP_ANSI_PRB_RSRVD   All families - reserved

probSpec

General problems

0x01 = TCAP_ANSI_PRB_UR_CMP   Unrecognized component

0x02 = TCAP_ANSI_PRB_IN_CMP   Incorrect component

0x03 = TCAP_ANSI_PRB_BD_CMP   Badly structured component

Invoke problems

0x01 = TCAP_ANSI_PRB_DUP_ID   Duplicate invoke ID

0x02 = TCAP_ANSI_PRB_UR_OP   Unrecognized operation code

0x03 = TCAP_ANSI_PRB_IN_PRM   Incorrect parameter

0x04 = TCAP_ANSI_PRB_IUR_ID   Unrecognized correlation ID

Return result problems

0x01 = TCAP_ANSI_PRB_RUR_ID   Unrecognized correlation ID

0x02 = TCAP_ANSI_PRB_UX_RES   Unexpected return result

Return error problems

0x01 = TCAP_ANSI_PRB_EUR_ID   Unrecognized correlation ID

0x02 = TCAP_ANSI_PRB_UX_RER   Unexpected return error

0x03 = TCAP_ANSI_PRB_UR_ERR   Unrecognized error

0x04 = TCAP_ANSI_PRB_UX_ERR   Unexpected error

0x05 = TCAP_ANSI_PRB_EN_PRM   Incorrect parameter

Transaction portion problems

0x01 = TCAP_ANSI_PRB_UR_PKG   Unrecognized package type

0x02 = TCAP_ANSI_PRB_IN_TRN    Incorrect transaction part

0x03 = TCAP_ANSI_PRB_BD_TRN   Badly structured transaction portion

0x04 = TCAP_ANSI_PRB_UR_TRN   Unrecognized transaction ID

0x05 = TCAP_ANSI_PRB_PR_TRN   Permission to release

0x06 = TCAP_ANSI_PRB_RU_TRN   Resource unavailable