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.
|
invokeTimer |
Not applicable for the ANSI protocol. |
opcode |
Represents the operation code in an invoke component: typedef struct Tcap_Ansi_Opcode
Refer to TcapAnsiOpcode for information about the fields. |
errcode |
Represents the error code in a return error component: typedef struct Tcap_Ansi_Errcode Refer to TcapAnsiErrcode for information about the fields. |
prbcode |
Represents the problem code in a reject component: typedef struct Tcap_Ansi_Prbcode 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 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 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 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 |