.rs .\" Troff code generated by TPS Convert from ITU Original Files .\" Not Copyright ( c) 1991 .\" .\" Assumes tbl, eqn, MS macros, and lots of luck. .TA 1c 2c 3c 4c 5c 6c 7c 8c .ds CH .ds CF .EQ delim @@ .EN .nr LL 40.5P .nr ll 40.5P .nr HM 3P .nr FM 6P .nr PO 4P .nr PD 9p .po 4P .rs \v | 5i' .sp 2P .LP \fBRecommendation\ Q.773\fR .RT .sp 2P .sp 1P .ce 1000 \fBTRANSACTION\ CAPABILITIES\ FORMATS\ AND\ ENCODING\fR .EF '% Fascicle\ VI.9\ \(em\ Rec.\ Q.773'' .OF '''Fascicle\ VI.9\ \(em\ Rec.\ Q.773 %' .ce 0 .sp 1P .LP \fB1\fR \fBIntroduction\fR .sp 1P .RT .PP This Recommendation provides the format and encoding of Transaction Capabilities Application Part (TCAP) messages. Formats and Encoding for the Intermediate Service Part (ISP) are for further study. This Recommendation is based on the encoding rules provided in CCITT Recommendation\ X.209 and is consistent with that Recommendation. .RT .sp 2P .LP \fB2\fR \fBDescription conventions\fR .sp 1P .RT .PP This Recommendation does not use Recommendation X.209 formal description language. This Recommendation uses the description method of other Q.700\ series Recommendations. Annex\ A uses the formal decription language to supplement this Recommendation. .RT .sp 2P .LP \fB3\fR \fBStandard representation\fR .sp 1P .RT .sp 1P .LP 3.1 \fIGeneral message structure\fR .sp 9p .RT .PP Each information element within TCAP message has the same structure. An information element consists of three fields, which always appear in the following order. The Tag distinguishes one type from another and governs the interpretation of the Contents. The Length specifies the length of the Contents. The Contents is the substance of the element, containing the primary information the element is intended to convey. Figure\ 1/Q.733 shows an overview of a TCAP message and an information element. .RT .LP .rs .sp 10P .ad r \fBFigure 1/Q.773\fR .sp 1P .RT .ad b .RT .PP Each field is coded using one or more octets. Octets are labelled as shown in Figure\ 2/Q.773. The first octet is the first transmitted. Bits in an octet are labelled as shown in Figure\ 3/Q.773, with bit\ A the least significant and the first transmitted. .LP .rs .sp 10P .ad r \fBFigure 2/Q.773, p.\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 6P .ad r \fBFigure 3/Q.773, p.\fR .sp 1P .RT .ad b .RT .PP The contents of each element is either one value (Primitive) or one or more information elements (Constructor), as shown in Figure\ 4/Q.773. .LP .rs .sp 11P .ad r \fBFigure 4/Q.773, p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP 3.2 \fITag\fR .sp 9p .RT .PP An information element is first interpreted according to its position within the syntax of the message. The Tag distinguishes one information element from another and governs the interpretation of the Contents. It is one or more octets in length. The Tag is composed of \*QClass\*U, \*QForm\*U and \*QTag code\*U, as shown in Figure\ 5/Q.773. .RT .LP .rs .sp 8P .ad r \fBFigure 5/Q.773, p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP 3.2.1 \fITag class\fR .sp 9p .RT .PP All Tags use the two most significant bits (H and G) to indicate the Tag Class. These bits are coded as shown in Table\ 1/Q.773. .bp .RT .LP .ce \fBH.T. [T1.773]\fR .ce TABLE\ 1/Q.773 .ce \fBCoding of tag class .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(66p) | cw(42p) . Class Coding (HG) _ .T& lw(66p) | cw(42p) . Universal 00 _ .T& lw(66p) | cw(42p) . Application\(hywide 01 _ .T& lw(66p) | cw(42p) . Context\(hyspecific 10 _ .T& lw(66p) | cw(42p) . Private use 11 _ .TE .nr PS 9 .RT .ad r \fBTable 1/Q.773 [T1.773], p.\fR .sp 1P .RT .ad b .RT .PP The universal class is used for Tags that are exclusively standardized in CCITT Recommendation\ X.209 and are application independent types. Universal Tags may be used anywhere a universal information element type is used. The universal class applies across all CCITT Recommendations, i.e.\ across CCITT No.\ 7 ASEs, X.400 MHS,\ etc. .PP The Application\(hywide class is used for information elements that are standardized across all applications (ASEs) using CCITT No.\ 7 TC, i.e.\ TC\(hyUsers. .PP The Context\(hyspecific class is used for information elements that are specified within the context of the next higher construction and take into account the sequence of other data elements within the same construction. This class may be used for tags in a construction, and the tags may be re\(hyused in any other construction. .PP The Private Use class is reserved for information elements specific to a nation, a network or a private user. Such information elements are beyond the scope of the TC\ Recommendations. .PP The Tag codes of the Application\(hywide class not assigned in this Recommendation are reserved for future use. .RT .sp 1P .LP 3.2.2 \fIForm of the element\fR .sp 9p .RT .PP Bit F is used to indicate whether the element is \*QPrimitive\*U or \*QConstructor\*U, as is shown in Table\ 2/Q.773. A primitive element is one whose structure is atomic (i.e.\ one value only). A constructor element is one whose content is one or more information elements which may themselves be constructor elements. .PP Both forms of elements are shown in Figure\ 4/Q.773. .RT .ce \fBH.T. [T2.773]\fR .ce TABLE\ 2/Q.773 .ce \fBCoding element form\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(36p) . Element form Coding (F) _ .T& lw(48p) | cw(36p) . Primitive 0 _ .T& lw(48p) | cw(36p) . Constructor 1 _ .TE .nr PS 9 .RT .ad r \fBTable [T2.773], p.\fR .sp 1P .RT .ad b .RT .LP .bp .sp 1P .LP 3.2.3 \fITag code\fR .sp 9p .RT .PP Bits A to E of the first octet of the Tag plus any extension octets represent a Tag code that distinguishes one element type from another of the same class. Tag codes in the range 00000 to 11110 (0\ to 30\ decimal) are provided in one octet. .PP The extension mechanism is to code bits A to E of the first octet as 11111. Bit\ H of the following octet serves as an extension indication. If bit\ H of the extension octet is set to\ 0, then no further octets for this tag are used. If bit\ H is set to\ 1, the following octet is also used for extension of the Tag code. The resultant Tag consists of bits\ A to\ G of each extension octet, with bit\ G of the first extension octet being most significant and bit\ A of the last extension octet being least significant. Tag code\ 31 is encoded as 0011111 in bits\ G to\ A of a single extension octet. Higher tag codes continue from this point using the minimum possible number of extension octets. .PP Figure 6/Q.773 shows the detailed format of the Tag code. .RT .LP .rs .sp 14P .ad r \fBFigure 6/Q.773, p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP 3.3 \fILength of the Contents\fR .sp 9p .RT .PP The Length of the Contents is coded to indicate the number of octets in the Contents. The length does not include the Tag nor the Length of the Contents octets. .PP The Length of the Contents uses the short, long or indefinite form. If the length is less than 128\ octets, the short form is used. In the short form, bit\ H is coded\ 0, and the length is encoded as a binary number using bits\ A to\ G. .PP If the Length of the contents is greater than 127\ octets, then the long form of the Length of the Contents is used. The long form Length is from 2\ to 127\ octets long. Bit\ H of the first octet is coded\ 1, and bits\ A to\ G of the first octet encode a number one less than the size of the Length in octets as an unsigned binary number whose MSB and LSB are bits\ G and\ A, respectively. The length itself is encoded as an unsigned binary number whose MSB and LSB are bit\ H of the second octet and bit\ A of the last octet, respectively. This binary number should be encoded in the fewest possible octets, with no leading octets having the value\ 0. .PP The indefinite form is one octet long and may (but need not) be used in place of the short or long form, whenever the element is a constructor. It has the value 10000000. When this form is employed, a special end\(hyof\(hycontents (EOC) indicator terminates the Contents. .PP There is no notation for the end\(hyof\(hycontents indicator. Although considered part of the Contents syntactically, the end\(hyof\(hycontents indicator has no semantic significance. .PP The representation for the end\(hyof\(hycontents indicator is an element whose class is universal, whose form is primitive, whose ID Code has the value\ 0, and whose Contents is unused and absent: .RT .LP EOC Length Contents .LP 00(hex) 00(hex) Absent .PP Figure 7/Q.773 shows the formats of the Length field described above. The maximum value that may be encoded is constrained by the network message size limitations in the connectionless case. Limitations in the connection\(hyoriented case are for further study. .bp .LP .rs .sp 44P .ad r \fBFigure 7/Q.773 [T3.773], p.\ (traiter comme tableau MEP)\fR .sp 1P .RT .ad b .RT .LP .sp 6 .bp .sp 1P .LP 3.4 \fIContents\fR .sp 9p .RT .PP The contents is the substance of the element and contains the information the element is intended to convey. Its length is variable, but always an integral number of octets. The contents is interpreted in a type\(hydependent manner, i.e.\ according to the tag value. .RT .sp 2P .LP \fB4\fR \fBTCAP message structure\fR .sp 1P .RT .PP A TCAP message is structured as a single constructor information element. It consists of a Transaction Portion which contains information elements used by the Transaction sub\(hylayer, and a Component Portion which contains information elements used by the Component sub\(hylayer. One of the Transaction Portion elements is called the Component Portion, and it contains the Component sub\(hylayer information elements. Each Component is a constructor information element. .PP Figure 8/Q.773 shows the detailed TCAP message structure described above. .RT .LP .rs .sp 35P .ad r \fBFigure 8/Q.773 [T4.773], p.\ (traiter comme tableau MEP)\fR .sp 1P .RT .ad b .RT .LP .bp .sp 2P .LP \fB5\fR \fBTransaction Portion\fR .sp 1P .RT .PP Transaction Portion information elements use the Application Wide class as defined in \(sc\ 3.2.1. .RT .sp 1P .LP 5.1 \fIStructure of the Transaction Portion\fR .sp 9p .RT .PP The Transaction Portion fields for various message types are shown in Tables\ 3/Q.773 to\ 8/Q.773. .RT .ce \fBH.T. [T5.773]\fR .ce TABLE\ 3/Q.773 .ce \fBTransaction Portion fields\fR .ce \fBUnidirectional message type\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message Type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Component Portion tag Component Portion length } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { One or more Components (Not a part of Transaction Portion) (Described in \(sc 6) } Mandatory .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .nr PS 9 .RT .ad r \fBTable 3/Q.773 [T5.773], p.\fR .sp 1P .RT .ad b .RT .ce \fBH.T. [T6.773]\fR .ce TABLE\ 4/Q.773 .ce \fBTransaction portion fields\fR .ce \fBBegin message type .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { Originating Transaction ID tag Transaction ID length Transaction ID } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Component Portion tag Component Portion length } Mandatory | ub\d\u)\d _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { One or more Components (Not a part of Transaction Portion) (Described in \(sc 6) } Optional .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .LP \ub\d\u)\d The Component Portion tag is not required if there are no Components being sent in the message. .nr PS 9 .RT .ad r \fBTable 4/Q.773 [T6.773], p.\fR .sp 1P .RT .ad b .RT .LP .bp .ce \fBH.T. [T7.773]\fR .ce TABLE\ 5/Q.773 .ce \fBTransaction Portion fields\fR .ce \fBEnd message type .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { Destination Transaction ID tag Transaction ID length Transaction ID } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Component Portion tag Component Portion length } Mandatory | ub\d\u)\d _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { One or more Components (Not a part of Transaction Portion) (Described in \(sc 6) } Optional .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .LP \ub\d\u)\d See Note \ub\d\u)\d to Table 4/Q.773. .nr PS 9 .RT .ad r \fBTableau 5/Q.773, [T7.773], p.\fR .sp 1P .RT .ad b .RT .LP .sp 3 .ce \fBH.T. [T8.773]\fR .ce TABLE\ 6/Q.773 .ce \fBTransaction Portion fields\fR .ce \fBContinue message type\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { Originating Transaction ID tag Transaction ID length Transaction ID } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { Destination Transaction ID tag Transaction ID length Transaction ID } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Component Portion tag Component Portion length } Mandatory | ub\d\u)\d _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { One or more Components (Not a part of Transaction Portion) (Described in \(sc 6) } Optional .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .LP \ub\d\u)\d See Note \ub\d\u)\d to Table 4/Q.773. .nr PS 9 .RT .ad r \fBTableau 6/Q.773, [T8.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 3 .bp .ce \fBH.T. [T9.773]\fR .ce TABLE\ 7/Q.773 .ce \fBTransaction Portion fields\fR .ce \fBAbort message type (P\(hyAbort) .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { Destination Transaction ID tag Transaction ID length Transaction ID } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { P\(hyAbort Cause tag P\(hyAbort Cause length P\(hyAbort Cause } Mandatory | ub\d\u)\d .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .LP \ub\d\u)\d P\(hyAbort Cause is only present when the Abort is generated by the Transaction sub\(hylayer. .nr PS 9 .RT .ad r \fBTableau 7/Q.773, [T9.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 3 .ce \fBH.T. [T10.773]\fR .ce TABLE\ 8/Q.773 .ce \fBTransaction Portion fields\fR .ce \fBAbort message type (U\(hyAbort)\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Primitive { Destination Transaction ID tag Transaction ID length Transaction ID } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { User Abort Information tag User Abort Information length User Abort Information } Optional | ub\d\u)\d .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .LP \ub\d\u)\d The User Abort Information is optional, and may only be present when the Abort is generated by the TC\(hyUser. .nr PS 9 .RT .ad r \fBTableau 8/Q.773, [T10.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 3 .bp .sp 1P .LP 5.2 \fIMessage Type Tag\fR .sp 9p .RT .PP This field consists of one octet and is mandatory for all TCAP messages. Message Type tags are coded as shown in Table\ 9/Q.773. .RT .LP .sp 2 .ce \fBH.T. [T11.773]\fR .ce TABLE\ 9/Q.773 .ce \fBCoding of message type tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Message type H G F E D C B A _ .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unidirectional 0 1 1 0 0 0 0 1 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Begin 0 1 1 0 0 0 1 0 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . (reserved) 0 1 1 0 0 0 1 1 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . End 0 1 1 0 0 1 0 0 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Continue 0 1 1 0 0 1 0 1 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . (reserved) 0 1 1 0 0 1 1 0 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Abort 0 1 1 0 0 1 1 1 _ .TE .nr PS 9 .RT .ad r \fBTable 9/Q.773 [T11.773], p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP .sp 2 5.3 \fITransaction ID tags\fR .sp 9p .RT .PP Two types of Transaction IDs, i.e.\ Originating Transaction ID and Destination Transaction ID, may be used. Zero, one or two ID information elements are required depending upon the Message type used. Table\ 10/Q.773 depicts this relationship. .RT .LP .sp 2 .ce \fBH.T. [T12.773]\fR .ce TABLE\ 10/Q.773 .ce \fBTransaction ID(s) in each message type\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(48p) | cw(48p) . Message type Originating ID Destination ID _ .T& lw(48p) | cw(48p) | cw(48p) . Begin Yes No .T& lw(48p) | cw(48p) | cw(48p) . End No Yes .T& lw(48p) | cw(48p) | cw(48p) . Continue Yes Yes .T& lw(48p) | cw(48p) | cw(48p) . Abort No Yes _ .TE .nr PS 9 .RT .ad r \fBTable 10/Q.773 [T12.773], p.\fR .sp 1P .RT .ad b .RT .LP .sp 2 .bp .PP The Originating and Destinastion Transaction ID Tags are coded as shown in Table\ 11/Q.773. .ce \fBH.T. [T13.773]\fR .ce TABLE\ 11/Q.773 .ce \fBCoding of Transaction ID tags\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Originating Transaction ID Tag } 0 1 0 0 1 0 0 0 _ .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Destination Transaction ID Tag } 0 1 0 0 1 0 0 1 _ .TE .nr PS 9 .RT .ad r \fBTable 11/Q.773 [T13.773], p.\fR .sp 1P .RT .ad b .RT .PP The length of a Transaction ID is 1 to 4 octets. .sp 1P .LP 5.4 \fIP\(hyAbort Cause tag\fR .sp 9p .RT .PP The P\(hyAbort Cause tag is coded as shown in Table 12/Q.773. .RT .ce \fBH.T. [T14.773]\fR .ce TABLE\ 12/Q.773 .ce \fBCoding of P\(hyAbort Cause tag .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . P\(hyAbort Cause Tag 0 1 0 0 1 0 1 0 _ .TE .nr PS 9 .RT .ad r \fBTable 12/Q.773 [T14.773], p.\fR .sp 1P .RT .ad b .RT .PP The P\(hyAbort cause values are coded as shown in Table 13/Q.773. .ce \fBH.T. [T15.773]\fR .ce TABLE\ 13/Q.773 .ce \fBCoding of P\(hyAbort Cause values\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . P\(hyAbort Cause H G F E D C B A _ .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Message Type 0 0 0 0 0 0 0 0 .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Transaction ID 0 0 0 0 0 0 0 1 .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Badly Formatted Transaction Portion } 0 0 0 0 0 0 1 0 .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Incorrect Transaction Portion 0 0 0 0 0 0 1 1 .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Resource Limitation 0 0 0 0 0 1 0 0 _ .TE .nr PS 9 .RT .ad r \fBTable 13/Q.773 [T15.773], p.\fR .sp 1P .RT .ad b .RT .LP .bp .sp 1P .LP 5.5 \fIUser Abort Information tag\fR .sp 9p .RT .PP The User Abort Information element Tag is coded as shown in Table\ 14/Q.773. .RT .ce \fBH.T. [T16.773]\fR .ce TABLE\ 14/Q.773 .ce \fBCoding of User Abor Information tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . User Abort Information tag 0 1 1 0 1 0 1 1 _ .TE .nr PS 9 .RT .ad r \fBTable 14/Q.773 [T16.773], p.\fR .sp 1P .RT .ad b .RT .PP The TC\(hyUser may provide any information element desired as the contents of the User Abort Information element. .sp 1P .LP 5.6 \fIComponent Portion tag\fR .sp 9p .RT .PP The Component Portion Tag is coded as shown in Table\ 15/Q.773. .RT .ce \fBH.T. [T17.773]\fR .ce TABLE\ 15/Q.773 .ce \fBCoding of Component Portion tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(72p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Component Portion Tag 0 1 1 0 1 1 0 0 _ .TE .nr PS 9 .RT .ad r \fBTable 15/Q.773 [T17.773], p.\fR .sp 1P .RT .ad b .RT .sp 2P .LP \fB6\fR \fBComponent Portion\fR .sp 1P .RT .PP The Component Portion, when present, consists of one or more Components. The Components are based on, and extended from, the Remote Operations Service Element (ROSE) Application Protocol Data Units (APDUs) of Recommendation\ X.229 as indicated in Section\ 3/Q.772. .RT .sp 1P .LP 6.1 \fIComponent type tag\fR .sp 9p .RT .PP Each Component is a sequence of information elements. The Component types, as defined for TCAP, have the structure indicated in the following tables. .PP The information elements for the various Components shown in Tables\ 16/Q.773 to\ 19/Q.773 are all mandatory except the Linked\ ID and the parameters. The parameter may be one of the following: .RT .LP \(em A Sequence of parameters .LP \(em A Set of parameters .LP \(em A specific parameter with its own tag (i.e.\ not part of a sequence or set) .LP \(em Nothing at all (i.e.\ absent) .PP Section 6.4 and Table 24/Q.773 define the Sequence and Set tags. .bp .ce \fBH.T. [T18.773]\fR .ce TABLE\ 16/Q.773 .ce \fBInvoke component .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(120p) | cw(36p) . Invoke component Mandatory Indication _ .T& lw(120p) | cw(36p) . { Component type tag Component length } M _ .T& lw(120p) | cw(36p) . { Invoke ID tag Invoke ID length Invoke ID } M _ .T& lw(120p) | cw(36p) . { Linked ID tag Linked ID length Linked ID } O _ .T& lw(120p) | cw(36p) . { Operation Code tag Operation Code length Operation Code } M _ .T& lw(120p) | cw(36p) . Parameters O _ .TE .nr PS 9 .RT .ad r \fBTableau 16/Q.773, [T18.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 3 .ce \fBH.T. [T19.773]\fR .ce TABLE\ 17/Q.773 .ce \fBReturn Result (Last) and Return Result (Not Last) components\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(120p) | cw(36p) . { Return Result (Last) and Return Result (Not Last) components } Mandatory Indication _ .T& lw(120p) | cw(36p) . { Component type tag Component length } M _ .T& lw(120p) | cw(36p) . { Invoke ID tag Invoke ID length Invoke ID } M _ .T& lw(120p) | cw(36p) . Sequence tag Sequence length O | ub\d\u)\d _ .T& lw(120p) | cw(36p) . { Operation Code tag Operation Code length Operation Code } O | ub\d\u)\d _ .T& lw(120p) | cw(36p) . Parameters O | ub\d\u)\d .TE .LP \ua\d\u)\d ROSE has only one APDU called Return Result. See \(sc 3.1.2/Q.772. .LP \ub\d\u)\d Omitted when no information elements are included in the parameters. .nr PS 9 .RT .ad r \fBTableau 17/Q.773, [T19.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 3 .bp .ce \fBH.T. [T20.773]\fR .ce TABLE\ 18/Q.773 .ce \fBReturn Error Component\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(120p) | cw(36p) . Return Error component Mandatory Indication _ .T& lw(120p) | cw(36p) . { Component type tag Component length } M _ .T& lw(120p) | cw(36p) . { Invoke ID tag Invoke ID length Invoke ID } M _ .T& lw(120p) | cw(36p) . { Error Code tag Error Code length Error Code } M _ .T& lw(120p) | cw(36p) . Parameters O _ .TE .nr PS 9 .RT .ad r \fBTableau 18/Q.773, [T20.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 5 .ce \fBH.T. [T21.773]\fR .ce TABLE\ 19/Q.773 .ce \fBReject component\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(120p) | cw(36p) . Reject component Mandatory Indication _ .T& lw(120p) | cw(36p) . { Component type tag Component length } M _ .T& lw(120p) | cw(36p) . { Invoke ID tag | ua\d\u)\d Invoke ID length Invoke ID } M _ .T& lw(120p) | cw(36p) . { Problem Code tag Problem Code length Problem Code } M _ .T& lw(120p) | cw(36p) . Parameters O .TE .LP \ua\d\u)\d If the Invoke ID is not available, Universal Null (Table\ 22/Q.773) with length = 0 should be used. .nr PS 9 .RT .ad r \fBTableau 19/Q.773, [T21.773] p.\fR .sp 1P .RT .ad b .RT .LP .sp 5 .bp .PP The Component Type Tag is coded context\(hyspecific, constructor as indicated in Table\ 20/Q.773. .ce \fBH.T. [T22.773]\fR .ce TABLE\ 20/Q.773 .ce \fBComponent type tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Component type tag H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Invoke 1 0 1 0 0 0 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Result (Last) 1 0 1 0 0 0 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Error 1 0 1 0 0 0 1 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Reject 1 0 1 0 0 1 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . (reserved) 1 0 1 0 0 1 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . (reserved) 1 0 1 0 0 1 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Result (Not Last) 1 0 1 0 0 1 1 1 _ .TE .nr PS 9 .RT .ad r \fBTable 20/Q.773 [T22.773], p.\fR .sp 1P .RT .ad b .RT .PP .sp 1 The format of a Return Result (Not Last) is identical to that of a Return Result (Last). .sp 1P .LP 6.2 \fIComponent ID tag\fR .sp 9p .RT .PP The term Component ID refers to the Invoke ID or the Lined ID. The Component\ ID tag is coded as shown in Table\ 21/Q.773. .RT .LP .sp 1 .ce \fBH.T. [T23.773]\fR .ce TABLE\ 21/Q.773 .ce \fBCoding of Component ID Tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(120p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(120p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Invoke ID 0 0 0 0 0 0 1 0 .T& lw(120p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Linked ID | ua\d\u)\d 1 0 0 0 0 0 0 0 .TE .LP \ua\d\u)\d This tag differs from the Invoke ID, which is coded as a universal INTEGER, in order to distinguish it from the following tag (Operation Code) which is also coded as a universal INTEGER. .nr PS 9 .RT .ad r \fBTable 21/Q.773 [T23.773], p.\fR .sp 1P .RT .ad b .RT .PP .sp 1 The length of a Component ID is 1 octet. .PP An Invoke Component has one or two Component IDs: an Invoke ID, and if it is desired to associate the Invoke with a previous Invoke, then the Linked\ ID is provided in addition to the Invoke\ ID. .PP Return Result and Return Error Components have one Component ID, called an Invoke ID which is the reflection of the Invoke ID of the Invoke Component to which they are responding. .PP The Reject Component uses as its Invoke ID, the Invoke ID in the Component being rejected. If this ID is unavailable (e.g.\ due to mutilation of the message undetected by lower layers), then the Invoke\ ID tag is replaced with a universal NULL tag (which always has length\ =\ 0) as shown in Table\ 22/Q.773. .bp .RT .ce \fBH.T. [T24.773]\fR .ce TABLE\ 22/Q.773 .ce \fBCoding of NULL tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . NULL tag 0 0 0 0 0 1 0 1 _ .TE .nr PS 9 .RT .ad r \fBTable 22/Q.773 [T24.773], p.\fR .sp 1P .RT .ad b .RT .PP If an Invoke containing both Invoke and Linked\ IDs is being rejected, only the Invoke ID is used in the Reject Component. .sp 1P .LP 6.3 \fIOperation Code tag\fR .sp 9p .RT .PP Each operation is assigned a value to identify it. Operations can be classified as local or global operations. A local operation code follows an Operation Code Tag and Operation Code length. The Operation Code Tag is coded as shown in Table\ 23/Q.773. .RT .ce \fBH.T. [T25.773]\fR .ce TABLE\ 23/Q.773 .ce \fBCoding of Operation Code tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Local Operation Code tag 0 0 0 0 0 0 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Global Operation Code tag 0 0 0 0 0 1 1 0 _ .TE .nr PS 9 .RT .ad r \fBTable 23/Q.773 [T25.773], p.\fR .sp 1P .RT .ad b .RT .PP The Global Operation Code is coded as described in Recommendation\ X.209. .sp 1P .LP 6.4 \fISequence and Set tags\fR .sp 9p .RT .PP When there is more than one parameter in a Component (applicable to all Component types), they follow the Sequence or Set Tag, which are coded universal, constructor, as shown in Table\ 24/Q.773. The choice of Sequence or Set is at the discretion of the Application Service Element using TCAP. .RT .ce \fBH.T. [T26.773]\fR .ce TABLE\ 24/Q.773 .ce \fBCoding of Sequence and Set tags\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Sequence Tag 0 0 1 1 0 0 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Set Tag 0 0 1 1 0 0 0 1 _ .TE .nr PS 9 .RT .ad r \fBTable 24/Q.773 [T26.773], p.\fR .sp 1P .RT .ad b .RT .LP .bp .sp 1P .LP 6.5 \fIError Code tag\fR .sp 9p .RT .PP Each error is assigned a value to identify it. Errors can be classified as local or global errors. A local error code follows the Error Code Tag and Error Code Length. The Error Code Tag is coded as shown in Table\ 25/Q.773. .RT .ce \fBH.T. [T27.773]\fR .ce TABLE\ 25/Q.773 .ce \fBCoding of Error Code tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Local Error Code Tag 0 0 0 0 0 0 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Global Error Code Tag 0 0 0 0 0 1 1 0 _ .TE .nr PS 9 .RT .ad r \fBTable 25/Q.773 [T27.773], p.\fR .sp 1P .RT .ad b .RT .PP The Global Error Code is coded as described in Recommendation\ X.209. .sp 1P .LP 6.6 \fIProblem Code\fR .sp 9p .RT .PP The Problem Code consists of one of the four elements General Problem, Invoke Problem, Return Result Problem or Return Error Problem. The tags for these elements are coded as shown in Table\ 26/Q.773. Their values are shown in Tables\ 27/Q.773 to\ 30/Q.773. .RT .ce \fBH.T. [T28.773]\fR .ce TABLE\ 26/Q.773 .ce \fBCoding of Problem Type tags\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Problem Type H G F E D C B A _ .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . General Problem 1 0 0 0 0 0 0 0 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Invoke 1 0 0 0 0 0 0 1 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Result 1 0 0 0 0 0 1 0 .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Error 1 0 0 0 0 0 1 1 _ .TE .nr PS 9 .RT .ad r \fBTable 26/Q.773 [T28.773], p.\fR .sp 1P .RT .ad b .RT .ce \fBH.T. [T29.773]\fR .ce TABLE\ 27/Q.773 .ce \fBCoding of General Problem .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Unrecognized Component | ua\d\u)\d } 0 0 0 0 0 0 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Mistyped Component | ua\d\u)\d } 0 0 0 0 0 0 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Badly Structured Component | ua\d\u)\d } 0 0 0 0 0 0 1 0 .TE .LP \ua\d\u)\d TCAP Components are equivalent to ROSE APDUs. .nr PS 9 .RT .ad r \fBTable 27/Q.773 [T29.773], p.\fR .sp 1P .RT .ad b .RT .LP .bp .ce \fBH.T. [T30.773]\fR .ce TABLE\ 28/Q.773 .ce \fBCoding of Invoke Problem .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Duplicate Invoke ID 0 0 0 0 0 0 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Operation 0 0 0 0 0 0 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Mistyped Parameter | ua\d\u)\d } 0 0 0 0 0 0 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Resource Limitation 0 0 0 0 0 0 1 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Initiating Release | ub\d\u)\d } 0 0 0 0 0 1 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Linked ID 0 0 0 0 0 1 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Linked Response Unexpected 0 0 0 0 0 1 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Unexpected Linked | uc\d\u)\d Operation } 0 0 0 0 0 1 1 1 .TE .LP \ua\d\u)\d TCAP Invoke parameter is equivalent to ROSE Invoke argument. .LP \ub\d\u)\d ROSE uses \*QInitiator releasing\*U as only the initiator of the underlying association may release it. In TCAP, either entity may release the association. .LP \uc\d\u)\d ROSE refers to a linked operation as a child operation. .nr PS 9 .RT .ad r \fBTable 28/Q.773 [T30.773], p.\fR .sp 1P .RT .ad b .RT .ce \fBH.T. [T31.773]\fR .ce TABLE\ 29/Q.773 .ce \fBCoding of Return Result Problem\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Invoke ID 0 0 0 0 0 0 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Result Unexpected 0 0 0 0 0 0 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . { Mistyped Parameter | ua\d\u)\d } 0 0 0 0 0 0 1 0 .TE .LP \ua\d\u)\d TCAP Return Result parameter is equivalent to ROSE Return Result result. .nr PS 9 .RT .ad r \fBTable 29/Q.773 [T31.773], p.\fR .sp 1P .RT .ad b .RT .ce \fBH.T. [T32.773]\fR .ce TABLE\ 30/Q.773 .ce \fBCoding of Return Error Problem\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . H G F E D C B A _ .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Invoke ID 0 0 0 0 0 0 0 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Return Error Unexpected 0 0 0 0 0 0 0 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unrecognized Error 0 0 0 0 0 0 1 0 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unexpected Error 0 0 0 0 0 0 1 1 .T& lw(90p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Mistyped Parameter 0 0 0 0 0 1 0 0 _ .TE .nr PS 9 .RT .ad r \fBTable 30/Q.773 [T32.773], p.\fR .sp 1P .RT .ad b .RT .LP .bp .ce 1000 ANNEX\ A .ce 0 .ce 1000 (to Recommendation Q.773) .sp 9p .RT .ce 0 .ce 1000 \fBSpecification of Transaction Capabilities in ASN\fR .sp 1P .RT .ce 0 .LP TCAPMessage { ccittRecommendationQ.773ModuleA\ } EFINITIONs ::= .sp 1P .RT .sp 1P .LP BEGIN EXPORTS\ \ \ \ OPERATION, ERROR; .sp 9p .RT .LP \(hy\(hy\ \fITransaction Sub\(hyLayer fields\fR .sp 1P .LP MessageType ::= CHOIC { Unidirectional [APPLICATION 1] IMPLICIT Unidirectional, begin [APPLICATION 2] IMPLICIT Begin, end [APPLICATION 4] IMPLICIT End, continue [APPLICATION 5] IMPLICIT Continue, abort [APPLICATION 7] IMPLICIT Abor } .sp 9p .RT .sp 1P .LP Unidirectional ::= ComponentPortion Begin ::= SEQUENC { | rigTransactionID, ComponentPortion OPTIONAL\ } End ::= SEQUENC { | estTransactionID, ComponentPortion OPTIONAL\ } Continue ::= SEQUENC { | rigTransactionID, DestTransactionID, SEQUENCE] | ComponentPortion OPTIONAL\ } Abort ::= SEQUENC { | estTransactionID, SEQUENC { | CHOIC { P\(hyAbortCause, SEQUENC { | HOIC { \fR UserAbortInformation OPTIONAL\ } .sp 9p .RT .sp 1P .LP OrigTransactionID ::=\ [APPLICATION 8]\ IMPLICIT OCTET STRING DestTransactionID ::=\ [APPLICATION 9]\ IMPLICIT OCTET STRING .sp 9p .RT .LP P\(hyAbortCause ::=\ { APPLICATION 10]\ IMPLICIT INTEGE { unrecognizedMessageType\ (0), unrecognizedTransactionID\ (1), badlyFormattedTransactionPortion\ (2), incorrectTransactionPortion\ (3), resourceLimitation\ (4)\ } .sp 1P .LP UserAbortInformation ::=\ [APPLICATION 11]\ ANY OPTIONAL .sp 9p .RT .LP \(hy\(hy\ \fICOMPONENT PORTION. The last field in the transaction portion of the TCAP\fR \fImessage is the\fR \(hy\(hy\ \fIComponentPortion. The Component Portion may be empty.\fR .sp 1P .LP ComponentPortion ::=\ [APPLICATION 12]\ IMPLICIT SEQUENCE OF Component .sp 9p .RT .LP \(hy\(hy\ \fIComponent Sub\(hyLayer fields.\fR .LP \(hy\(hy\ \fICOMPONENT TYPE. Recommendation X.229 defines four Application Protocol\fR \fIData Units (APDUs).\fR \(hy\(hy\ \fITCAP adds returnResultNotLast to allow for the segmentation of a\fR \fIresult. Note: in X.229 EXPLICIT\fR \(hy\(hy\ \fIrather than IMPLICIT tagging is used\fR .sp 1P .LP Component ::= CHOICE { invoke [1]\ IMPLICIT Invoke, returnResultLast [2]\ IMPLICIT ReturnResult, returnError [3]\ IMPLICIT ReturnError, reject [4]\ IMPLICIT Reject, returnResultNotLast [7]\ IMPLICIT ReturnResult\ } .sp 9p .RT .LP \(hy\(hy\ \fIThe Components are sequences of data elements.\fR .bp .sp 1P .LP Invoke ::= SEQUENC { invokeID INTEGER, linked\(hyID[0] IMPLICIT INTEGER, OPTIONAL, operation code OPERATION, parameter ANY DEFINED BY operation code OPTIONAL\ } \(hy\(hy\ \fIANY is filled by the single ASN.1 data type\fR \(hy\(hy\ \fIfollowing the key word ARGUMENT in the type\fR \(hy\(hy\ \fIdefinition of a particular operation.\fR .sp 9p .RT .sp 1P .LP ReturnResult ::= SEQUENC { invokeID INTEGER, SEQUENC { operation code OPERATION, SEQUENC { parameters ANY DEFINED BY operation code \(hy\(hy\ \fIANY is filled by the single ASN.1 data\fR \(hy\(hy\ \fItype following the key word RESULT in\fR \(hy\(hy\ \fIthe type definition of a particular\fR \fIoperation\fR } PTIONAL\ } .sp 9p .RT .sp 1P .LP ReturnError ::= SEQUENC { invokeID INTEGER error code ERROR, parameter ANY DEFINED BY error code OPTIONAL\ } \(hy\(hy\ \fIANY is filled by the single ASN.1 data type\fR \(hy\(hy\ \fIfollowing the key word PARAMETER in the type\fR \(hy\(hy\ \fIdefinition of a particular error.\fR .sp 9p .RT .sp 1P .LP Reject ::= SEQUENC { invokeID CHOICE { INTEGER NULL\ } problem CHOIC { \ \ [0]\ IMPLICIT GeneralProblem, \ \ [1]\ IMPLICIT InvokeProblem \ \ [2]\ IMPLICIT ReturnResultProblem, \ \ [3]\ IMPLICIT ReturnErrorProblem\ } .sp 9p .RT .LP \(hy\(hy\ \fIOPERATIONS.\fR .LP \(hy\(hy\ \fIOperations are specified with the OPERATION MACRO. When an operation\fR \(hy\(hy\ \fIis specified, the valid parameter set, results, and errors for that\fR \(hy\(hy\ \fIoperation are indicated. Default values and optional parameters are\fR \(hy\(hy\ \fIpermitted.\fR .sp 1P .LP OPERATION MACRO ::= .sp 9p .RT .LP BEGIN .LP TYPE NOTATION ::= Parameter Result Errors Linked Operations .LP VALUE NOTATION ::= value(VALUE CHOIC { value(VALUE CHOICE localValue INTEGER, value(VALUE CHOICE globalValue OBJECT IDENTIFIER\ } .sp 1P .LP Parameter ::= \*QPARAMETER\*U NamedTyped\ | empty .sp 9p .RT .LP Result ::= \*QRESULT\*UResultType\ | empty .LP ResultType ::= NamedType\ | empty .LP Errors::= \*QERRORS\*U \* { *UErrorNames\* } *U\ | empty .LP LinkedOperations ::= \*QLINKED\*U \* { *ULinkedOperationNames\* } *U\ | empty .bp .LP ErrorNames ::= ErrorList\ | empty .LP ErrorList ::= Error\ | ErrorList\*Q,\*U Error .LP Error ::= value (ERROR)\ \(hy\(hy\ \fIshall reference an error value\fR | type\ \(hy\(hy\ \fIshall reference an error type if no error value is\fR \fIspecified\fR .LP LinkedOperationNames ::= OperationList\ | empty .LP OperationList ::= Operation\ | OperationList\*Q,\*UOperation .LP Operation ::= value (OPERATION)\ \(hy\(hy\ \fIshall reference an operation\fR \fIvalue\fR | type\ \(hy\(hy\ \fIshall reference an operation type if no operation value is\fR | type\ \(hy\(hy\ \fIspecified\fR .LP NamedType ::= identifier type\ | type .LP END .LP \(em\(em\ \fIERRORS\fR .LP \(em\(em\ \fIErrors are specified with the ERROR MACRO. When an error is\fR \(em\(em\ \fIspecified, the valid parameters for that error are indicated.\fR \(em\(em\ \fIDefault values and optional parameters are permitted.\fR .sp 1P .LP ERROR MACRO ::= .sp 9p .RT .LP BEGIN .LP TYPE NOTATION ::= Parameter .LP VALUE NOTATION ::= value (VALUE CHOIC { value(VALUE CHOICE localValue INTEGER, value(VALUE CHOICE globalValue OBJECT IDENTIFIER\ } .LP Parameter ::= \*QPARAMETER\*U NamedType\ | empty .LP NamedType ::= identifier type\ | type .LP END .LP \(em\(em\ \fIPROBLEMS.\fR .sp 1P .LP GeneralProblem ::= INTEGE { unrecognizedComponent (0), mistypedComponent (1), badlyStructuredComponent (2 } .sp 9p .RT .LP InvokeProblem ::= INTEGE { duplicateInvokeID (0), unrecognizedOperation (1), mistypedParameter (2), resourceLimitation (3), initiatingRelease (4), unrecognizedLinkedID (5), linkedResponseUnexpected (6), unexpectedLinkedOperation (7)\ } .LP ReturnResultProblem ::= INTEGE { unrecognizedInvokeID (0), returnResultUnexpected (1), mistypedParameter (2)\ } .LP ReturnErrorProblem ::= INTEGE { unrecognizedInvokeID (0), returnErrorUnexpected (1), unrecognizedError (2), unexpectedError (3), mistypedParameter (4)\ } .LP END \v'1P' .bp .ce 1000 APPENDIX\ I .ce 0 .ce 1000 (to Recommendation Q.773) .sp 9p .RT .ce 0 .ce 1000 \fBFormats and encoding for the Unidirectional message\fR .sp 1P .RT .ce 0 .LP I.1 \fIIntroduction\fR .sp 1P .RT .PP This Appendix provides the formats and encoding for the additional message type: Unidirectional. .RT .sp 1P .LP I.2 \fIStructure of the\fR \fITransaction Portion\fR .sp 9p .RT .PP Table I\(hy1/Q.773 relates to \(sc\ 5.1. It shows the Transaction Portion fields for this message type. .RT .LP .sp 1 .ce \fBH.T. [T33.773]\fR .ce TABLE\ I\(hy1/Q.773 .ce \fBTransaction Portion fields \(em Unidirectional message type\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(132p) | cw(48p) . Element Form Fields of Transaction Portion Mandatory Indication _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Message Type tag Total message length | ua\d\u)\d } Mandatory _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { Component Portion tag Component Portion length } Mandatory | ub\d\u)\d _ .T& lw(48p) | lw(132p) | lw(48p) . Constructor { One or more Components (Not a part of Transaction Portion) (Described in \(sc 6) } Optional .TE .LP \ua\d\u)\d See Note \ua\d\u)\d to Figure 8/Q.773. .LP \ub\d\u)\d The Component Portion Tag is not required if there are no Component being sent in the message. .nr PS 9 .RT .ad r \fBTable I\(hy1/Q.773 [T33.773], p.\fR .sp 1P .RT .ad b .RT .LP .sp 1 .sp 1P .LP I.3 \fIMessage type tag\fR .sp 9p .RT .PP Table I\(hy2/Q.773 relates to \(sc\ 5.2. It shows the coding of the Message Type tag. Note that the tag value included here is marked reserved in Table\ 8/Q.773. .RT .LP .sp 1 .ce \fBH.T. [T34.773]\fR .ce TABLE\ I\(hy2/Q.773 .ce \fBCoding of Message type tag\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Message Type H G F E D C B A _ .T& lw(60p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) | cw(12p) . Unidirectional 0 1 1 0 0 0 0 1 _ .TE .nr PS 9 .RT .ad r \fBTable I\(hy2/Q.773 [T34.773], p.\fR .sp 1P .RT .ad b .RT .LP .sp 1 .bp .sp 1P .LP I.4 \fITransaction IDs\fR .sp 9p .RT .PP Table I\(hy3/Q.773 shows the usage of Transaction IDs in the Unidirectional message type. No Transaction IDs are present. .RT .LP .ce \fBH.T. [T35.773]\fR .ce TABLE\ I\(hy3/Q.773 .ce \fBTransaction ID(s) in each message type\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(48p) | cw(48p) . Message Type Originating ID Destination ID _ .T& cw(48p) | cw(48p) | cw(48p) . Unidirectional No No _ .TE .nr PS 9 .RT .ad r \fBTable I\(hy3/Q.773 [T35.773], p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP I.5 \fIComponent Portion\fR .sp 9p .RT .PP The Component Portion in Unidirectional messages is as specified in \(sc\ 6. .RT .sp 1P .LP I.6 \fISpecification of the Unidirectional message in ASN\fR .sp 9p .RT .LP \(em\(em\ \fIThe ASN specification of the Unidirectional message (in\fR \(em\(em\ \fIconjunction with Annex\ A) is provided here. The following\fR \(em\(em\ \fIline should be added to the CHOICE of Message Type:\fR unidirectional ::=\ [APPLICATION 1]\ IMPLICIT Uni .LP \(em\(em\ \fIThe structure of the Unidirectional Message Type is:\fR Uni ::=\ ComponentPortion .sp 2P .LP \fBRecommendation\ Q.774\fR .RT .sp 2P .sp 1P .ce 1000 \fBTRANSACTION\ CAPABILITIES\ PROCEDURES\fR .EF '% Fascicle\ VI.9\ \(em\ Rec.\ Q.774'' .OF '''Fascicle\ VI.9\ \(em\ Rec.\ Q.774 %' .ce 0 .sp 1P .LP \fB1\fR \fBIntroduction\fR .sp 1P .RT .PP Transaction capabilities (TC) allows TC users to exchange components via transaction capabilities application part (TCAP) messages. Procedures described in this section specify the rules governing the information content and the exchange of TCAP messages between\ TC users. .RT .sp 1P .LP 1.1 \fIBasic guideline\fR .sp 9p .RT .PP To maximize flexibility in service architecture and implementation style, TCAP procedures restrict themselves to supporting the exchange of components between TC users. Application specific (TC user) procedures are not part of TCAP. .PP When the selection of a parameter value associated with a primitive that is required by a lower layer (sub\(hylayer) is not relevant to that layer (sub\(hylayer), the value is simply passed down through the primitive interface. The same assumption applies to the parameters received from a lower layer through the primitive interface which are not required for TCAP functions. .RT .sp 1P .LP 1.2 \fIOverview\fR .sp 9p .RT .PP Section 2 describes addressing rules for TC messages. Section 3 describes transaction capabilities based on a connectionless network service. Section\ 4 describes transaction capabilities based on a connection oriented network service. .bp .RT .sp 2P .LP \fB2\fR \fBAddressing\fR .sp 1P .RT .PP In a Signalling System No. 7 environment using a connectionless network service, TC messages will use any of the addressing options afforded by the signalling connection control part (SCCP). Assignment and use of global titles may be network and/or application specific. .PP Addressing options available for the intermediate service part (ISP) are for further study. Addressing options when other network providers are used are for further study. .RT .sp 2P .LP \fB3\fR \fBTransaction capabilities based on a connectionless\fR \fBnetwork service\fR .sp 1P .RT .sp 1P .LP 3.1 \fISub\(hylayering in TCAP\fR .sp 9p .RT .PP TCAP procedure is divided into component sub\(hylayer procedure and transaction sub\(hylayer procedure. The component sub\(hylayer procedure provides a TC user with the capability of invoking remote operations and receiving replies. The component sub\(hylayer also receives dialogue control information from a TC user, and, in turn, uses transaction sub\(hylayer capabilities for transaction control. .PP The component sub\(hylayer provides two kinds of procedures: .RT .LP \(em dialogue handling; .LP \(em component handling. .LP 3.2 \fIComponent sub\(hylayer procedures\fR .sp 1P .RT .sp 2P .LP 3.2.1 \fINormal procedure\fR .sp 1P .RT .sp 1P .LP 3.2.1.1 \fIComponent handling procedure\fR .sp 9p .RT .sp 1P .LP 3.2.1.1.1 \fIMapping of TC component handling service primitives\fR \fIto component types\fR .sp 9p .RT .PP Recommendation Q.771 describes the services provided by the component sub\(hylayer by defining the service interface between the TC user and the component sub\(hylayer and the interface between the component sub\(hylayer and the transaction sub\(hylayer. Component handling procedures map component handling service primitives onto components, which constitute the protocol data units (PDUs) of the component sub\(hylayer. A mapping of these primitives to component sub\(hylayer PDUs is indicated in Table\ 1/Q.774. .RT .sp 1P .LP 3.2.1.1.2 \fIManagement of component IDs\fR .sp 9p .RT .PP Component IDs are assigned by the invoking end at operation invocation time. A TC\(hyuser need not wait for one operation to complete before invoking another. At any point in time, a TC\(hyuser may have any number of operations in progress at a remote end (although the latter may reject an invoke component for lack of resources). .PP Each component ID value is associated with an operation invocation and its corresponding component state machine. Management of this component ID state machine takes place only at the end which invokes the operation. The other end reflects this component ID in its relies to the operation invocation, and does not manage a state machine for this connection ID. Note that both ends may invoke operations in a full\(hyduplex manner: each end manages state machines for the operations it has invoked, and is free to allocate component IDs independently of the other. .PP A component ID value may be reallocated when the corresponding state machine returns to idle. However, immediate reallocation could result in difficulties when certain abnormal situations arise. A released ID value (when the state machine returns of idle) should therefore not be real\(hylocated immediately; the way this is done is implementation\(hydependent, and thus is not described in this Recommendation. .PP Component states and state transitions are described in \(sc\ 3.2.1.1.3. .bp .RT .ce \fBH.T. [T1.774]\fR .ce TABLE\ 1/Q.774 .ce \fBMapping of TC component handling service primitives to\fR .ce \fBcomponents .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(60p) | cw(42p) | cw(78p) . Service Primitive Abbreviation Component Type _ .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyINVOKE INV INVOKE (Note 1) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyRESULT RR\(hyL Return Result (Last) (Note 1) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyU\(hyERROR RE Return Error (Note 1) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyU\(hyREJECT RJ Reject (Note 1) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyR\(hyREJECT RJ Reject (Note 1) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyL\(hyREJECT (Note 2) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyRESULT\(hyNL RR\(hyNL Return Result (Not Last) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyL\(hyCANCEL (Note 3) .T& lw(60p) | cw(42p) | lw(78p) . TC\(hyU\(hyCANCEL (Note 3) .TE .LP \fINote\ 1\fR \ \(em\ X.219 and X.229 Compatible. .LP \fINote\ 2\fR \ \(em\ Treatment of this primitive is described in \(sc 3.2.2.2. .LP \fINote\ 3\fR \ \(em\ There is no component type associated with this primitive since the effect is purely local. .nr PS 9 .RT .ad r \fBTableau 1/Q.774 [T1.774], p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP .sp 1 3.2.1.1.3 \fIOperation classes\fR .sp 9p .RT .LP .sp 1 .ce \fBH.T. [T2.774]\fR .ce TABLE\ 2/Q.774 .ce \fBOperation Classes .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(48p) | cw(120p) . Operation Class Description _ .T& cw(48p) | lw(120p) . 1 Reporting success or failure .T& cw(48p) | lw(120p) . 2 Reporting failure only .T& cw(48p) | lw(120p) . 3 Reporting success only .T& cw(48p) | lw(120p) . 4 Outcome not reported _ .TE .nr PS 9 .RT .ad r \fBTable 2/Q.774 [T2.774], p.\fR .sp 1P .RT .ad b .RT .LP .sp 1 .bp .PP A different type of state machine is defined for each class of operation, the state transitions of which are represented by Figures\ 1/Q.774 to 4/Q.774. These state machines are described here from a protocol point of view (sent/received components), whereas they are described in Recommendation\ Q.771 from a service (primitives) point of view. .PP The states of each component state machine are defined as follows: .RT .LP \(em Idle:The component ID value is not assigned to any pending operation. .LP \(em Operation Sent: The component ID value is assigned to an operation which has not been completed or rejected. .LP \(em Wait for Reject: When a component indicating the completion of an operation is received, the receiving TC\(hyuser may reject this result. The Wait for Reject State is introduced so that the component ID is retained for some time, thereby making the rejection possible. .PP State transitions are triggered by: .LP \(em a primitive received from the TC\(hyuser, causing a component to be built, and eventually sent; .LP \(em receipt of a component from the peer entity; .LP \(em a number of situations indicated on Figures\ 1/Q.774 to 4/Q.774, corresponding to the following situations: .LP Cancel: A timer is associated with an operation invocation. This invocation timer is started when the invoke component is passed to the transaction sub\(hylayer. The TC\(hyINVOKE request primitive indicates a timer value. A cancel situation occurs when the invoking TC\(hyuser decides to cancel the operation (TC\(hyU\(hyCANCEL request primitive) before either the final result (if any) is received, or a timeout situation occurs. On receipt of a TC\(hyU\(hyCANCEL request, the component sub\(hylayer stops the timer; any further replies will not be delivered to the TC\(hyuser, and TCAP will react according to abnormal situations as described in \(sc\ 3.2.2.2. .LP End situation: When an End or Abort message is received, or when prearranged end is used, TCAP returns any pending operations to Idle. .LP Invocation timeout: A timeout situation occurs when the timer associated with an operation invocation expires: the state machine returns to idle, with notification to the TC\(hyuser by means of a TC\(hyL\(hyCANCEL indication (in the case of a class\ 1, 2 or 3\ operation). This notification indicates an abnormal situation for a class\ 1 operation, or gives the definite outcome of a class\ 2 or 3\ operation for which no result has been received (normal situation). .LP Reject timeout: A Reject timeout situation occurs when the timer associated with the Wait for Reject state expires. If this occurs, the component sub\(hylayer assumes that the TC\(hyuser has accepted the component. .LP In the diagrams that follow, components contain either single ID values, or ordered pairs of IDs (i,\ y), where i is the invoke ID and y is the linked ID. The state diagrams are modeled for a single operation invocation with ID\ i. The value of y is not relevant to the ID\ i. A linked invoke operation can only be accepted if the linked to state machine is in the Operation Sent state. .LP Components can be received \*Qwell\(hyformed\*U or \*Qmalformed\*U. The diagrams show where this is significant. If it does matter whether the component is received \*Qwell\(hyformed\*U or \*Qmalformed\*U then the diagram indicates \*Qreceive\*U only. .PP Class 1 operations report failure or success. A rejection in the case of a protocol error may also occur. Upon invoking a class\ 1 operation, the invoking end will keep the ID\ i active until a \*Qlast\*U reply is received and can no longer be rejected. An ID may be released locally, at the option of the TC\(hyuser. This is indicated in Figure\ 1/Q.774. .bp .LP .rs .sp 47P .ad r \fBFigure 1/Q.774, p.\fR .sp 1P .RT .ad b .RT .LP .bp .PP Class 2 operations report failure only. A rejection in the case of a protocol error may also occur. Upon invoking a class\ 2 operation, the invoking end will keep the ID\ i active until a reply has been received and can no longer be rejected or until a timeout .FS A timeout for a class\ 2 operation is a \*Qnormal\*U situation. .FE cancel or end situation occurs. This is indicated in Figure\ 2/Q.774. .LP .rs .sp 40P .ad r \fBFigure 2/Q.774, p.\fR .sp 1P .RT .ad b .RT .LP .bp .PP Class 3 operations report success only. A rejection in the case of a protocol error may also occur. Upon invoking a class\ 3 operation, the invoking end will keep the ID\ i active until a reply has been received and can no longer be rejected or until a timeout .FS A timeout for a class\ 3 operation is a \*Qnormal\*U situation. .FE cancel or end situation occurs. This is indicated in Figure\ 3/Q.774. .LP .rs .sp 40P .ad r \fBFigure 3/Q.774, p.\fR .sp 1P .RT .ad b .RT .LP .bp .PP Class 4 operations do not report their outcome. A rejection in the case of a protocol error may also occur. Upon invoking a class\ 4 operation, the invoking end will keep the ID\ i active until a reject has been received or until a timeout .FS A timeout for a class\ 4 operation is a \*Qnormal\*U situation. .FE cancel or end situation occurs. This is indicated in Figure\ 4/Q.774. .LP .rs .sp 35P .ad r \fBFigure 4/Q.774, p.\fR .sp 1P .RT .ad b .RT .LP .bp .sp 1P .LP 3.2.1.2 \fISample component flows\fR .sp 9p .RT .PP Some sample component flows that are compatible with Recommendation X.229 (Remote operations) are indicated in Figure\ 5/Q.774. The flows show cases of valid component sequences correlated to an invoked operation. .RT .LP .rs .sp 28P .ad r \fBFigure 5/Q.774, p.\fR .sp 1P .RT .ad b .RT .PP Figure 6/Q.774 depics that, as an extension to Recommendations\ X.219 and X.229, TCAP permits multiple return results to respond to the same Invoke operation for the purpose of segmenting a result over a connectionless network service. .LP .rs .sp 13P .ad r \fBFigure 6/Q.774, p.\fR .sp 1P .RT .ad b .RT .LP .bp .sp 1P .LP 3.2.1.3 \fIDialogue control via TC primitives\fR .sp 9p .RT .PP The TC\(hyUNI, TC\(hyBEGIN, TC\(hyCONTINUE and TC\(hyEND request primitives are used by a TC\(hyuser to control the transfer of components. Components in a message are delivered to the remote TC\(hyuser in the same order in which they are received by the originating component sub\(hylayer from the local TC\(hyuser. The corresponding indication primitives are employed by the component sub\(hylayer to inform the TC\(hyuser at the receiving end of the state of the dialogue. .PP A TC\(hyuser employs a dialogue control request primitive to trigger transmission of all previously passed components with the same dialogue identifier. A component sub\(hylayer dialogue control primitive in turn triggers a corresponding service request to the transaction sub\(hylayer, the sub\(hylayer where the transaction control service is provided. A mapping of TC to TR transaction control primitives is provided in Table\ 3/Q.774. .RT .ce \fBH.T. [T3.774]\fR .ce TABLE\ 3/Q.774 .ce \fBMapping of TC Dialogue Handling Service Primitives to TR\fR .ce \fBPrimitives\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(66p) | cw(66p) . TC Primitive TR Primitive _ .T& lw(66p) | lw(66p) . TC\(hyUNI TR\(hyUNI .T& lw(66p) | lw(66p) . TC\(hyBEGIN TR\(hyBEGIN .T& lw(66p) | lw(66p) . TC\(hyCONTINUE TR\(hyCONTINUE .T& lw(66p) | lw(66p) . TC\(hyEND TR\(hyEND .T& lw(66p) | lw(66p) . TC\(hyU\(hyABORT TR\(hyU\(hyABORT .T& lw(66p) | lw(66p) . TC\(hyP\(hyABORT TR\(hyP\(hyABORT _ .TE .nr PS 9 .RT .ad r \fBTable 3/Q.744 [T3.774], p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP \fIDialogue begin\fR .sp 9p .RT .PP A TC\(hyBEGIN request primitive results in a TR\(hyBEGIN request primitive, which begins a transaction, and transmits any (0 or more) components passed on the interface with the same dialogue\ ID. .PP At the destination end, a TR\(hyBEGIN indication primitive is received by the component sub\(hylayer. It causes a TC\(hyBEGIN indication primitive starting a dialogue to be delivered to the TC\(hyuser, followed by component handling primitives associated with each of the components received (if any). .RT .sp 1P .LP \fIDialogue continuation\fR .sp 9p .RT .PP A TC\(hyCONTINUE request primitive results in a TR\(hyCONTINUE request primitive which transmits any components passed on the interface with the same dialogue\ ID. If reject components (see \(sc\ 3.2.2.2) have been built by the component sub\(hylayer for this dialogue, they are also transmitted. .PP At the destination end, a TR\(hyCONTINUE indication received by the component sub\(hylayer causes a TC\(hyCONTINUE to be delivered to the TC\(hyuser, followed by component handling primitives associated with each of the components received. .bp .RT .sp 1P .LP \fIDialogue end\fR .sp 9p .RT .PP In the case of basic end of a dialogue, any components passed on the interface plus any reject components built by the component sub\(hylayer for this dialogue are passed for transmission to the transaction sub\(hylayer in a TR\(hyEND request primitive, then the dialogue is ended. .PP At the destination end, a dialogue ends when each component (if any) accompanying the TR\(hyEND indication primitive have been delivered to the TC\(hyuser by an appropriate component handling primitive following the TC\(hyEND indication. .PP The component sub\(hylayer does not check, when a TC\(hyuser requests the end of a dialogue, that all the component state machines associated with this dialogue have returned to Idle. Similarly, no check is made by the component sub\(hylayer that all the state machines associated with a dialogue have returned to Idle when it has delivered the components accompanying a TR\(hyEND indication primitive. In an end situation, any non\(hyidle\(hystate machine is returned to Idle when the TR\(hyEND request primitive is passed to the transaction sub\(hylayer (at the originating side), or when all accompanying components have been delivered to the TC\(hyuser at the destination side; any components pending transmission are discarded. .PP Prearranged end and TC\(hyuser abort of a dialogue do not trigger transmission of pending components. All state machines associated with the dialogue are returned to idle, and the components are discarded. .RT .sp 2P .LP 3.2.2 \fIAbnormal procedures\fR .sp 1P .RT .sp 1P .LP 3.2.2.1 \fIDialogue control\fR .sp 9p .RT .PP Any abnormal situation detected by the component sub\(hylayer results in the rejection of a component, and in notification to the local TC\(hyuser. The component sub\(hylayer never decides to abort a dialogue. Abort of a dialogue is always the reflection of a decision by: .RT .LP \(em the transaction sub\(hylayer to abort the underlying transaction. The component sub\(hylayer idles the operation state machines of the dialogue, discards any pending component, and passes an abort indication to the TC\(hyusers (TC\(hyP\(hyABORT indication primitive); .LP \(em the TC\(hyuser to abort the dialogue. At the originating side, a TC\(hyU\(hyABORT request is received from the TC\(hyuser: active component state machines for this dialogue are idled, and a TR\(hyU\(hyABORT request is passed to the transaction sub\(hylayer. At the destination side, a corresponding TR\(hyU\(hyABORT indication is received from the transaction sub\(hylayer, any active component state machines for the dialogue are idled, and a TC\(hyU\(hyABORT indication is passed to the TC\(hyuser; .PP In both cases, accompanying information (P\(hyAbort cause, or user\(hyprovided information) passes transparently through the component sub\(hylayer. .PP Handling of the notification of abnormal situations which cannot be related to a particular dialogue is for further study. .RT .sp 1P .LP 3.2.2.2 \fIAbnormal procedures relating to operations\fR .sp 9p .RT .PP The following abnormal situations are considered: .RT .LP \(em no reaction to class 1 operation invocation (see \(sc\ 3.2.1.1.3); .LP \(em receipt of a malformed component: the component type and/or the Invoke ID cannot be recognized (i.e.\ the state machine cannot be identified); .LP \(em receipt of a well\(hyformed component in violation of authorized state transitions. .PP The actions taken by the component sub\(hylayer to report component portion errors are shown in Table\ 4/Q.774. The following considerations have guided the choices indicated in this Table: .LP \(em When a protocol error has been detected by the local TC\(hyuser, this TC\(hyuser is not subsequently advised via the TC\(hyReject (as indicated in Table\ 4/Q.774) since it is already aware of the protocol error. .LP \(em In other cases (reject by component sub\(hylayer), the local TC\(hyuser is always advised so that it can issue a dialogue control primitive (see the reject mechanism described below). .bp .LP \(em When a component is rejected, the associated state machine returns to Idle. .LP \(em The reject mechanism applies whenever possible: even if the Invoke ID is not assigned or not recognized (i.e.\ no state machine can be identified), the reject mechanism should be initiated. The only case where rejection is purely local is when the component to be rejected is itself a reject component. .PP Protocol errors in the component portion of a TCAP message are reported using the Reject component. The Reject component is sent in response to an incorrect component other than Reject. .PP When an invoke ID is available in a component to be Rejected, this ID is reflected in the Reject component. .RT .ce \fBH.T. [T4.774]\fR .ce TABLE\ 4/Q.774 .ce \fBAction Taken on Protocol Errors\fR .ce \fBin Component Portion\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(168p) | cw(60p) . Local Remote _ .TE .TS center box ; cw(42p) | cw(36p) | cw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) . Component Type received Type of error Local action Component State Machine Local user advised Component state machine Remote user advised _ .T& lw(42p) | lw(36p) | lw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) , ^ | l | l | c | c | c | c. INVOKE Syntax error Init. Reject Inv: NA Link: No change Yes | ua\d\u)\d Return to Idle Yes Linked ID unassigned Init. Reject Inv: NA Link: NA Yes | ua\d\u)\d Inv: Return to Idle Yes _ .T& lw(42p) | lw(36p) | lw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) , ^ | l | l | c | c | c | c. { RETURN \(ulRESULT (L/NL) or RETURN \(ulERROR } Syntax error Init. Reject Return to Idle Yes | ua\d\u)\d NA Yes Invoke ID unassigned Init. Reject NA Yes | ua\d\u)\d NA Yes _ .T& lw(42p) | lw(36p) | lw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) , ^ | l | l | c | c | c | c. RETURN \(ulRESULT (L/NL) Operation Class 2/4 Init. Reject Return to Idle Yes | ua\d\u)\d NA Yes _ .T& lw(42p) | lw(36p) | lw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) , ^ | l | l | c | c | c | c. RETURN \(ulERROR Operation Class\ 3/4 Init. Reject Return to Idle Yes | ua\d\u)\d NA Yes _ .T& lw(42p) | lw(36p) | lw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) , ^ | l | l | c | c | c | c. REJECT Syntax Error Local Reject Return to NA | ub\d\u)\d Yes NA No _ .T& lw(42p) | lw(36p) | lw(24p) | cw(36p) | cw(30p) | cw(30p) | cw(30p) , ^ | l | l | c | c | c | c. UNKNOWN Invoke ID derivable Init. Reject No Change (NA) Yes | ua\d\u)\d Return to Idle Yes Invoke ID non derivable Init. Reject (NA) Yes | ua\d\u)\d NA Yes .TE .LP NA:\ Not applicable. .LP \ua\d\u)\d This is to alert the TC User so it can issue a dialogue control primitive to send the Reject component formulated by the Component Sub\(hyLayer. .LP \ub\d\u)\d If Invoke ID present, and Invoke Problem, return Component State machine to idle. .nr PS 9 .RT .ad r \fBTable 4/Q.774 [T4.774], p.\fR .sp 1P .RT .ad b .RT .LP .bp .PP Component type abbreviations are identified in Table 1/Q.774. .PP In the case of multiple components within a message, when a malformed component is detected by the component sub\(hylayer, subsequent components in the message are discarded. .PP Rejection of any portion of a segmented result shall be equivalent to rejecting the entire result. .PP The associated state machine is returned to idle. Subsequent portions of the same segmented result shall also be rejected on the basis of no active state machine. .PP The reject mechanism: when the component sub\(hylayer detects a situation where (non\(hylocal) reject should be initiated (as per Table\ 4/Q.774), it builds a reject component, stores it, and informs the local TC\(hyuser by means of TC\(hyL\(hyREJECT indication primitive. The TC\(hyuser may decide: .RT .LP a) to continue the dialogue, or .LP b) to end the dialogue using the basic scenario, or .LP c) to abort the dialogue. .PP In cases a) and b), the first dialogue handling primitive (TC\(hyCONTINUE request or TC\(hyEND request respectively) issued by the TC\(hyuser triggers transmission of the stored reject component(s) built for this dialogue by the component sub\(hylayer. The remote component sub\(hylayer receives the reject component(s) built for this dialogue, idles the corresponding component state machine(s) if possible (as per Table\ 4/Q.774) and informs the TC\(hyuser of the (remote) rejection via TC\(hyR\(hyREJECT information primitive(s). .PP If the component sub\(hylayer generated reject combined with accumulated components from the TC\(hyuser exceeds the message length limitations, then the TC\(hyuser, being aware of the reject component, must initiate two dialogue handling primitives. The component sub\(hylayer, also being aware of the length problem, will send all the components, except the reject, with the first primitive. The reject will be sent with the next dialogue handling primitive together with any further components provided by the TC\(hyuser. .RT .sp 2P .LP 3.3 \fITransaction sub\(hylayer procedures\fR .sp 1P .RT .sp 1P .LP 3.3.1 \fIGeneral\fR .sp 9p .RT .PP The transaction sub\(hylayer provides for an association between its users (TR\(hyusers). This association is called a transaction. .PP The transaction sub\(hylayer procedure associates each TCAP message and, therefore, all the contained components with a particular transaction. .PP The transaction sub\(hylayer processes the transaction portion (message type and transaction ID) of a TCAP message. Transaction IDs identify a transaction. Each end assigns a local transaction identification; local transaction IDs are exchanged in the transaction portion of messages as indicated in Q.773. .PP The component portion of a TCAP message is passed between the component sub\(hylayer and the transaction sub\(hylayer as user data in the transaction sub\(hylayer primitives. .RT .sp 1P .LP 3.3.2 \fIMapping of TR service primitives to message types\fR .sp 9p .RT .PP Recommendation Q.771 describes the services performed by the transaction sub\(hylayer by defining the service interface between the TR user and the transaction sub\(hylayer and the transaction sub\(hylayer and the SCCP. Similarly, state transition diagrams appear in Recommendation\ Q.771 based on service primitives. In this section, a message based description of the protocol is provided. A mapping of TR\(hyprimitives to transaction sub\(hylayer protocol data units is indicated in Table\ 5/Q.774. .bp .RT .LP .ce \fBH.T. [T5.774]\fR .ce TABLE\ 5/Q.774 .ce \fBMapping of TR Service Primitives to Messages\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(72p) | cw(48p) . Service Primitive Message Type _ .T& lw(72p) | lw(48p) . TR\(hyUNI Unidirectional .T& lw(72p) | lw(48p) . TR\(hyP\(hyABORT Abort .T& lw(72p) | lw(48p) . TR\(hyBEGIN Begin .T& lw(72p) | lw(48p) . TR\(hyCONTINUE Continue .T& lw(72p) | lw(48p) . TR\(hyU\(hyABORT Abort .T& lw(72p) | lw(48p) . TR\(hyEND End _ .TE .nr PS 9 .RT .ad r \fBTable 5/Q.774 [T5.774], p.\fR .sp 1P .RT .ad b .RT .LP 3.3.3 \fINormal procedures\fR .sp 1P .RT .sp 2P .LP 3.3.3.1 \fIMessage transfer without establishing a transaction\fR .sp 1P .RT .sp 1P .LP 3.3.3.1.1 \fIActions of the sending end\fR .sp 9p .RT .PP The TR\(hyUNI request primitive is used when a TR\(hyuser sends a message to another TR\(hyuser but does not need to enter into a transaction. A unidirectional message, which does not have a transaction ID, is used in this case. .RT .sp 1P .LP 3.3.3.1.2 \fIActions of the receiving end\fR .sp 9p .RT .PP The receipt of a unidirectional message causes a TR\(hyUNI indication primitive to be passed to the TR\(hyuser. No further action is taken by the transaction sub\(hylayer. .RT .sp 2P .LP 3.3.3.2 \fIMessage transfer within a transaction\fR .sp 1P .RT .sp 1P .LP 3.3.3.2.1 \fITransaction begin\fR .sp 9p .RT .PP In the following discussion, the sending node of the first TCAP message is labelled node\ \*QA\*U, and the receiving node is labelled node\ \*QB\*U. .RT .sp 1P .LP 3.3.3.2.1.1\ \ \fIActions of the initiating end\fR .sp 9p .RT .PP The TR\(hyuser at node \*QA\*U initiates a transaction by using a TR\(hyBEGIN request primitive, which causes a begin message to be sent from node\ \*QA\*U to node\ \*QB\*U. .PP The begin message contains an originating transaction ID. This transaction ID value, when included in any future message from node\ \*QA\*U as the originating transaction ID or in a message to node\ \*QA\*U as the destination transaction ID, identifies the transaction to node\ \*QA\*U. .PP Once the transaction sub\(hylayer at node \*QA\*U has sent a begin message it cannot send another message to the transaction sub\(hylayer at node\ \*QB\*U for the same transaction until it receives a continue message from node\ \*QB\*U for this transaction. .bp .RT .sp 1P .LP 3.3.3.2.1.2\ \ \fIActions of the receiving end\fR .sp 9p .RT .PP The receipt of a Begin message causes a TR\(hyBEGIN indication primitive to be passed to the TR\(hyuser at node\ \*QB\*U. In response to a TR\(hyBEGIN indication primitive, the TR\(hyuser at node\ \*QB\*U decides whether or not to establish a transaction. If the TR\(hyuser does want to establish a transaction, it passes a TR\(hyCONTINUE request primitive to the transaction sub\(hylayer; otherwise, it terminates the transaction (see \(sc\ 3.3.3.2.3). These conditions are defined by the TR\(hyuser. .PP The Begin message contains only an originating transaction ID. If, after receiving a Begin message with a given originating transaction ID, the transaction sub\(hylayer receives another Begin message with the same originating transaction ID, the transaction sub\(hylayer does not consider this as an abnormal situation: a second transaction is initiated at node\ \*QB\*U. .RT .sp 1P .LP 3.3.3.2.2 \fITransaction continuation\fR .sp 9p .RT .PP A Continue message is sent from one node to another when a TR\(hyCONTINUE request primitive is passed from the TR\(hyuser to the transaction sub\(hylayer at the sending node. .PP A Continue message includes the destination transaction ID which is identical to the originating transaction ID received in messages from the peer node. Each node assigns its own originating transaction ID at transaction initiation time. The transaction IDs remain constant for the life of the transaction. .PP A Continue message includes both an originating transaction ID and a destination transaction ID. The originating transaction ID, in successive continue messages is not examined. .PP Receipt of a Continue message causes a TR\(hyCONTINUE indication primitive to be passed to the destination TR\(hyuser. .PP Once the user at node \*QB\*U has responded with a TR\(hyCONTINUE request primitive to establish a transaction, all subsequent interactions at either end between the TR\(hyuser and the transaction sub\(hylayer are via TR\(hyCONTINUE primitives until the transaction is to be terminated. In message terms, once a Continue message is sent from node\ \*QB\*U, all subsequent messages shall be Continue messages until the transaction is to be terminated. .RT .sp 1P .LP 3.3.3.2.3 \fITransaction termination\fR .sp 9p .RT .PP The basic method: A TR\(hyuser at either end may terminate a transaction by passing a TR\(hyEND request primitive (indicating basic end) to the transaction sub\(hylayer. An end message is sent to the peer entity which, in turn, passes a TR\(hyEND indication promitive to its TR\(hyuser. The end message contains a destination transaction\ ID. .PP The pre\(hyarranged method: This method implies that the peer entities know \fIa priori\fR \(em\ at a given point in the application script\ \(em that the transaction will be released. In this case, the TR\(hyuser passes a TR\(hyEND request primitive (indicating pre\(hyarranged end) to its transaction sub\(hylayer, and no End message is sent. .RT .sp 1P .LP 3.3.3.2.4 \fIAbort by the TR\(hyuser\fR .sp 9p .RT .PP When a TR\(hyuser wants to abort a transaction, it passes a TR\(hyU\(hyABORT request primitive to the transaction sub\(hylayer, which sends an abort message with user\(hyprovided (cause and diagnostic) information. .PP At the receiving side, the transaction sub\(hylayer receiving an Abort message containing user\(hyprovided information passes this information without analyzing it to the TR\(hyuser in a TR\(hyU\(hyABORT indication primitive. .bp .RT .sp 1P .LP 3.3.3.2.5 \fIExample of message exchange\fR .sp 9p .RT .PP Figure 7/Q.774 depicts an example of exchanges of TCAP messages between two TR\(hyusers. .RT .LP .rs .sp 19P .ad r \fBFigure 7/Q.774, p.\fR .sp 1P .RT .ad b .RT .sp 1P .LP 3.3.3.2.6 \fITransaction state transition diagrams\fR .sp 9p .RT .PP A state machine is associated with a transaction at each end of this transaction. Four transaction states are introduced: .RT .LP \(em Idle: no state machine exists; .LP \(em Init Sent (IS): a Begin message has been sent; an indication from the peer entity whether the transaction has been established or not is awaited; .LP \(em Init Received (IR): a Begin message has been received; a request from the TR\(hyuser either to continue the transaction, or to terminate it, is awaited; .LP \(em Active: the transaction is established: continue messages can be exchanged in both directions simultaneously. .PP Figure 8/Q.774 shows the transaction state transition diagram. .sp 1P .LP 3.3.4 \fIAbnormal procedures relating to transaction control\fR .sp 9p .RT .PP The following abnormal situations are covered by the transaction sub\(hylayer: .RT .LP 1) no reaction to transaction initiation; .LP 2) receipt of an indication of abnormal situation from the underlying layer; .LP 3) receipt of a message with an unassigned or non\(hyderivable destination transaction\ ID (non\(hyderivable means that the information is not found or not recognized): the message cannot be associated with a transaction; .LP 4) receipt of a message with a recognized destination transaction ID: the message can be associated with a transaction, but the message type is not compatible with the transaction state. .bp .LP .rs .sp 24P .ad r \fBFigure 8/Q.774, p.14\fR .sp 1P .RT .ad b .RT .PP Case 1 is covered by a local, implementation\(hydependent, mechanism which results in aborting the transaction locally, as described below. .PP Case 2 is for further study. .PP When a transaction portion error is found (cases 3 and 4 above), the transaction sub\(hylayer should take the following actions. .PP The status of the originating transaction ID should be checked. Actions are the following: .RT .LP 1) If the originating transaction ID is not derivable, the local end (which received the message) discards the message and does not take any other action; e.g.\ it does not send an abort message or terminate the transaction; or, .LP 2) If the originating transaction ID is derivable, the following actions are taken: .LP i) The transaction sub\(hylayer should form an abort message with an appropriate P\(hyAbort cause and transmit it to the originating end. The originating end will then take the appropriate action to terminate the transaction if the originating transaction\ ID is assigned. .LP ii) If the destination transaction ID is not derivable or derivable but not assigned, the transaction sub\(hylayer takes no action to terminate the transaction at its end. .LP iii) If the destination transaction ID is derivable and assigned: .LP a) the transaction sub\(hylayer terminates the transaction at its end, i.e. return to idle; .LP b) the transaction sub\(hylayer informs the component sub\(hylayer of the abort of the transaction via the transaction sub\(hylayer abort; and .LP c) the component sub\(hylayer should: .LP \(em release all component IDs associated with this transaction, .LP \(em discard any pending components for that transaction, .LP \(em inform the TC\(hyuser of the transaction abort. .PP Finally, regardless of the disposition of the transaction IDs, the entire erroneous TCAP message should be discarded. .bp .ce \fBH.T. [T6.774]\fR .ce TABLE\ 6/Q.774 .ce \fBActions when an Abnormal Transaction Portion is Received\fR .ps 9 .vs 11 .nr VS 11 .nr PS 9 .TS center box; cw(174p) | cw(54p) . { Local End (detects protocol error) } Remote End _ .TE .TS center box ; cw(42p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) . Message Type Received Origin. Tr. Id. Destin. Tr. Id. Action Transaction State Mach. Local User Advised Transaction State Mach. User Advised _ .T& lw(42p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) . UNIDIRECTIONAL \(em \(em Discard \(em | uc\d\u)\d No \(em | uc\d\u)\d No _ .T& lw(42p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) , ^ | c | c | c | c | c | c | c. BEGIN not der. \(em Discard NA No NA No der. \(em Abort NA No Ret to Idle | ua\d\u)\d Yes | ua\d\u)\d _ .T& lw(42p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) , ^ | c | c | c | c | c | c | c ^ | c | c | c | c | c | c | c. CONTINUE not der. \(em Discard NA No NA No der. not der unass. Abort NA No Ret to Idle | ua\d\u)\d Yes | ua\d\u)\d der. ass. Abort Ret to Idle Yes Ret to Idle | ua\d\u)\d Yes | ua\d\u)\d _ .T& lw(42p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) , ^ | c | c | c | c | c | c | c ^ | c | c | c | c | c | c | c. END/ABORT \(em not der unass. Discard NA No NA No \(em ass. Discard Ret to Idle Yes NA No _ .T& lw(42p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) | cw(30p) | cw(24p) , ^ | c | c | c | c | c | c | c ^ | c | c | c | c | c | c | c. UNKNOWN not der \(em Discard NA No NA No der. not der unass. Abort NA No Ret to Idle | ub\d\u)\d Yes | ua\d\u)\d der. ass. Abort Ret to Idle Yes Ret to Idle | ua\d\u)\d Yes | ua\d\u)\d .TE .LP NA:\ Transition to the Idle state is Not Applicable | ub\d\u)\d. .LP not der.:\ not derivable. .LP der.:\ derivable. .LP ass.:\ derivable and assigned. .LP unass.:\ derivable but unassigned. .LP \ua\d\u)\d If the Transaction ID is assigned at this end, otherwise the state transition is not applicable, and the user is not informed. .LP \ub\d\u)\d The expression NA is used in those cases where the normal procedure of Return to Idle at both ends following the appearance of an abnormal situation is Not Applicable because it is impossible to identify the Transaction ID(s) and therefore to relate the damaged message to a specific transaction at either ends (Local and/or Remote end). .LP \uc\d\u)\d The Unidirectional message does not refer to an explicit transaction and therefore it does not affect the Transaction State Machine. .nr PS 9 .RT .ad r \fBTable 6/Q.774 [T6.774], p.\fR .sp 1P .RT .ad b .RT .LP .bp .PP When receiving an Abort message, the destination transaction sub\(hylayer does the following: .LP \(em if the Abort message contains user\(hyabort information (or no information), inform the TR\(hyuser by means of the TR\(hyU\(hyABORT indication primitive; .LP \(em if the Abort message contains a P\(hyAbort cause information, inform the TR\(hyuser by means of the TR\(hyP\(hyABORT indication primitive. Notification to the management is for further study; .LP \(em in both cases, discard any pending messages for that transaction and return the transaction state machine to Idle. .sp 2P .LP \fB4\fR \fBTransaction capabilities based on a connection oriented\fR \fBnetwork service\fR .sp 1P .RT .PP For further study. \v'1P' .RT .ce 1000 ANNEX\ A .ce 0 .ce 1000 (to Recommendation Q.774) .sp 9p .RT .ce 0 .ce 1000 \fBTransaction capabilities SDLs\fR .sp 1P .RT .ce 0 .LP A.1 \fIGeneral\fR .sp 1P .RT .PP This Annex contains the description of the transaction capability procedures described in Recommendation\ Q.774 by means of SDLs according to the CCITT specification and description language. In order to facilitate the functional description as well as the understanding of the behaviour of the signalling system, the transaction capabilities application part (TCAP) is divided into the component sub\(hylayer and the transaction sub\(hylayer (Figure\ A\(hy1/Q.774). The component sub\(hylayer again is divided into a component handling block (CHA) and a dialogue handling block (DHA) (Figure\ A\(hy2/Q.774). .PP The SDL is provided according to this functional partitioning which is used only to facilitate understanding and is not intended to be adopted in a practical implementation of the TCAP. The functional blocks and their associated service primitives are shown in Figure\ A\(hy2/Q.774. .RT .sp 1P .LP A.2 \fIAbbreviations used in the SDL diagrams\fR .sp 9p .RT .LP CSL Component sub\(hylayer .LP L Last component .LP NL Not last component .LP SCCP Signalling connection control part .LP TC Transaction capabilities .LP TCAP Transaction capabilities application part .LP TCU TC\(hyuser .LP TSL Transaction sub\(hylayer .LP ISP Intermediate service part .LP IS Initiation sent state .LP IR Initiation received state .LP DHA Dialogue handling .LP CHA Component handling .LP RJ Reject .LP RE Return error .LP RR Return result .LP INV Invoke .LP ISM Invocation state machine .LP CCO Component coordinator .LP UNI Unidirectional .bp .sp 1P .LP A.3 \fIDrafting conventions\fR .sp 9p .RT .PP To indicate the direction of each interaction the symbols are used as shown below: .RT .LP .rs .sp 10P .ad r \fBFigure, p.\fR .sp 1P .RT .ad b .RT .LP .rs .sp 30P .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy1/Q.774, p.16\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy2a/Q.774, p.17\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy2b/Q.774, p.18\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy3/Q.774 (page 1 sur 6), p.19\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy3/Q.774 (page 2 sur 6), p.20\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy3/Q.774 (page 3 sur 6), p.21\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy3/Q.774 (page 4 sur 6), p.22\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy3/Q.774 (page 5 sur 6), p.23\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy3/Q.774 (page 6 sur 6), p.24\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy4/Q.774 (page 1 sur 2), p.25\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy4/Q.774 (page 2 sur 2), p.26\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy5/Q.774 (page 1 sur 4), p.27\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy5/Q.774 (page 2 sur 4), p.28\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy5/Q.774 (page 3 sur 4), p.29\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy5/Q.774 (page 4 sur 4), p.30\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy6/Q.774 (page 1 sur 6), p.31\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy6/Q.774 (page 2 sur 6), p.32\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy6/Q.774 (page 3 sur 6), p.33\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy6/Q.774 (page 4 sur 6), p.34\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy6/Q.774 (page 5 sur 6), p.35\fR .sp 1P .RT .ad b .RT .LP .bp .LP .rs .sp 47P .ad r \fBFigure A\(hy6/Q.774 (page 6 sur 6), p.36\fR .sp 1P .RT .ad b .RT .LP .bp