home *** CD-ROM | disk | FTP | other *** search
/ Internet Standards / CD2.mdf / ccitt / 1992 / q / q775.asc < prev    next >
Text File  |  1991-12-31  |  79KB  |  1,403 lines

  1.          The drawings contained in this Recommendation have been done in Autocad.
  2.          Recommendation Q.775
  3.                                 GUIDELINES FOR USING TRANSACTION CAPABILITIES
  4.                                          (Melbourne, 1988)
  5.          1      Introduction
  6.          1.1    General
  7.                The purpose of this Recommendation is to provide  guidelines  to  potential
  8.          users  of  Transaction  Capabilities   (TC-users).   The   examples   given   are
  9.          illustrations only; they indicate how an application may use TCAP, not  how  TCAP
  10.          must  be  used  in  all  cases.  The  technical  basis  of  this   document   are
  11.          Recommendations Q.771  to  Q.774;  in  case  of  misalignment,  these  should  be
  12.          considered as the primary reference.
  13.                The  main  purpose  of  TCAP  is  to  provide   support   for   interactive
  14.          applications in a distributed environment. TCAP is based on Recommendations X.219
  15.          and X.229 (ROSE)  enhanced  as  necessary  to  provide  the  services  needed  by
  16.          TC-users. Interactions between distributed application entities are  modelled  by
  17.          Operations. An operation  is  invoked  by  an  (originating)  entity:  the  other
  18.          (destination) entity attempts to execute the operation and possibly  returns  the
  19.          outcome of this attempt.
  20.                The semantics of an operation (represented by its name and  parameters)  is
  21.          not relevant to TCAP; TCAP provides  facilities  which  are  independent  of  any
  22.          particular operation. The TC-user, when defining an application, must:
  23.                1)  select operations;
  24.                2)  select TCAP facilities to support these  operations.  Such  facilities
  25.                   include the handling of individual operations, and the ability to  have
  26.                   a number of related  operations  attached  to  an  association  between
  27.                   TC-users, called a dialogue;
  28.                3)  define the application script.
  29.                This Recommendation describes the selection process of defining  and  using
  30.          operations. The operations appearing hereafter are fictitious, and are taken  for
  31.          illustration purposes only. Also described are the facilities offered by TCAP for
  32.          handling one or a sequence  of  operations  in  a  dialogue.  The  definition  of
  33.          specific sequences of operations belongs to the application  protocol  definition
  34.          and is beyond the scope of this Recommendation; however, Chapter 4 gives a  brief
  35.          indication of what information an application specification should contain.
  36.                TCAP services  are  made  accessible  to  TC-users  via  primitives;  these
  37.          primitives model the interface between TCAP and its users, but do  not  constrain
  38.          any implementation of this interface.
  39.          1.2    Environment
  40.                TCAP defines the end-to-end protocol between TC-users which may be  located
  41.          in a Signalling System No. 7 network,  and/or  another  network  supporting  TCAP
  42.          protocols.
  43.                Two broad categories of users  have  been  considered  (see  Recommendation
  44.          Q.771, S 1.3.2). Only the first category is considered here, i.e. those which are
  45.          real-time sensitive users, and do not need to exchange large amounts of data.  It
  46.          is considered that for these users, protocols defined for OSI layers 4  to  6  in
  47.          the X series of Recommendations would result in excessive overheads and hence are
  48.          not used. A basic service has been  specified,  using  a  connectionless  network
  49.          service approach. Other categories of  users  might  require  connection-oriented
  50.          network and higher layer services.
  51.          Recomme 
  52.          Recommendation indicates what the connectionless approach cannot do, in order  to
  53.          help the application designer choose how to support an application.
  54.          2      Operations
  55.          2.1    Definition
  56.                An operation is invoked by an originating TC-user to request a  destination
  57.          TC-user to perform a given action.
  58.                A class is attached to  an  operation.  This  indicates  whether  either  a
  59.          successful outcome (result), or an unsuccessful outcome (error), or both, or none
  60.          have to be reported by the destination. The outcome is reported in a result.
  61.                As well as the class, the definition of  the  operation  includes  a  timer
  62.          value indicating when the operation  should  be  completed.  This  value  is  not
  63.          indicated to the remote TC-user; it is assumed that the application at both  ends
  64.          has a common understanding of the operations in use.
  65.                An operation is defined by:
  66.  
  67.  
  68.  
  69.  
  70.          Fascicle VI.9 - Rec. Q.775    PAGE101
  71.  
  72.                  -   its operation code and the type of any parameters associated with  the
  73.                      operation request;
  74.                  -   its class;
  75.                  -   if  the  class  requires  report  of  success,  the  possible  results
  76.                      corresponding to  successful  executions  are  defined  by  a  list  of
  77.                      parameters;
  78.                  -   if  the  class  requires  report  of  failure,  the  possible  results
  79.                      corresponding to situations where the operation could not  be  executed
  80.                      completely by the remote TC-user. Each such situation is identified  by
  81.                      a specific error cause; the list of these error causes is part  of  the
  82.                      operation definition. Diagnostic information can be added to the  error
  83.                      cause: if present, it is part of the definition;
  84.                  -   the list of possible linked operations, if replies consisting of linked 
  85.                      operations are allowed for this operation. Linked operations have to be
  86.                      described separately;
  87.                  -   a timer value indicating the interval by which the operation has to be
  88.                      completed. This  timer  value  is  used  to  manage  the  component  ID
  89.                      associated with the operation invocation.
  90.           2.2    Examples
  91.           2.2.1  Simple operations
  92.                 Note - The operation invocation should fit into one message, and so  should
  93.           a report of unsuccessful outcome. Reports  of  success  may  be  segmented  using
  94.           Return Result-Not last and Return Result-Last.
  95.                 Class 1 (both success and failure reported):
  96.                 Translate a freephone number into a called subscriber  number;  return  the
  97.           called number if the translation can be  performed,  otherwise  indicate  why  it
  98.           cannot; time allocated: 2 seconds.
  99.                 No reply being received  when  the  timer  expires  indicates  an  abnormal
  100.           situation (e.g. the operation invocation may have been lost): the  local  TC-user
  101.           is informed (operation cancel by TCAP).
  102.                 Class 2 (only failure reported):
  103.                 Perform a routine test and send a reply only in case something went  wrong;
  104.           time allocated: 1 minute.
  105.                 In the case of a class 2 operation, the TC-user is informed  if  no  result
  106.           has been received when the timer expires. This is  interpreted  as  a  successful
  107.           outcome, even if the invocation was lost. This aspect should be  considered  when
  108.           selecting class 2.
  109.                 Class 3 (only success reported):
  110.                 Perform a test: this corresponds to a pessimistic view,  where  failure  is
  111.           considered as the default option, not requiring any reply.
  112.                 Timer expiry is indicated to the TC-user: this  should  be  interpreted  by
  113.           the TC-user as a failure of the operation (but is considered normal by TC,  which
  114.           considers that the operation has terminated). This aspect  should  be  considered
  115.           when selecting class 3.
  116.                 Class 4 (neither success, nor failure reported):
  117.                 Send a warning, without expecting a reply or acknowledgement of any kind.
  118.                 In this case, a result never arises from the invocation of  the  operation.
  119.           The TC-user  relies  upon  TCAP  and  the  network  to  deliver  the  invocation.
  120.           Notification of the timer expiry is a local matter.
  121.                 The diagrams in Figure 1/Q.775 illustrate possible sequences of  primitives
  122.           as seen by the TC-user originating an operation.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.           PAGE118 Fascicle VI.9 - Rec. Q.775
  142.  
  143.                                        Fig. 1/Q.775 /T1120760-88 = 25 cm
  144.  
  145.                 Comparison with ROSE (Recommendation X.219) operation classes:
  146.                 ROSE provides for five classes  of  operations:  classes  2  to  5,  called
  147.           asynchronous classes, are identical to classes 1 to 4 of TCAP. ROSE's class 1  is
  148.           a synchronous class; it has no counterpart in TCAP, where  full-duplex  exchanges
  149.           of components are considered. However, a TC-user  can  decide  to  operate  in  a
  150.           synchronous manner (see S 3.2.1).
  151.           2.2.2  More sophisticated operations
  152.                 Operations with segmented results
  153.                 A successfull result may be divided into several segments,  each  of  which
  154.           is indicated to the originator of the operation by one primitive. This  facility,
  155.           using the TC-RESULT-NL primitive, can be used by TC-users to overcome the absence
  156.           of segmentation in the underlying layers. The last segment is  indicated  by  the
  157.           TC-RESULT-L primitive.
  158.                 The report of an error cannot be segmented.
  159.                 Apart from abnormal situations,  responses  are  delivered  to  the  remote
  160.           TC-user in the order in which they have  been  passed  to  TCAP  by  the  sending
  161.           TC-user.
  162.                 TC cannot identify a specific segment in the case of a segmented result.
  163.                 Example E1: An operation requests the execution of a test. The result of  a
  164.           correct execution is segmented in three parts P1, P2 and P3 to be returned to the
  165.           originator.
  166.                 A possible primitive sequence for example E1 is given in Table 1/Q.775
  167.                                                  TABLE 1/Q.775
  168.  
  169.                    TC USER A                    TC USER B
  170.                                        
  171.           TC-INVOKE req                TC-INVOKE ind
  172.           (Test, Class = 1)            (Test)
  173.                                        TC-RESULT-NL req
  174.                                        (P1)
  175.                                        
  176.                                        
  177.           TC-RESULT-NL ind             TC-RESULT-NL req
  178.           (P1)                         (P2)
  179.                                        
  180.                                        
  181.           TC-RESULT-NL ind             TC-RESULT-L req
  182.           (P2)                         (P3)
  183.           TC-RESULT-L ind              
  184.           (P3)                         
  185.                                     Time
  186.                 The diagram in Figure 2/Q.775 illustrates possible sequences of  primitives
  187.           seen by the originator of an operation (class 1) with segmented results.
  188.                                        Fig. 2/Q.775 /T1120770-88 = 13 cm
  189.  
  190.                 Linked operations
  191.                 Another extension to the basic operation scheme is the ability to  link  an
  192.           operation invocation to another operation invocation.
  193.                 Typically, this facility covers situations where  the  destination  of  the
  194.           original (linked-to)  operation  requires  additional  information  in  order  to
  195.           process this operation: this is the case where menu  facilities  are  used  (menu
  196.           facilities allow a user to make a sequence of choices, each  being  dependent  on
  197.           the previous ones).
  198.                 Example E2: The operation is the execution of a test with several  options;
  199.           before the test is executed, these options are offered for selection to the  test
  200.           originator (TC-user A). Two operations are  nested:  operation  1  is  the  test;
  201.           operation 2 is the option selection. TC-user A  first  responds  to  operation  2
  202.           before TC-user B can perform the test with the indicated option(s).
  203.                 A possible primitive sequence for example E2 is given in Table 2/Q.775.
  204.                                                  TABLE 2/Q.775
  205.  
  206.                  TC USER A                            TC USER B
  207.           TC-INVOKE req                                     Operation 1 begin
  208.           (Test, Class = 1)        TC-INVOKE ind            
  209.                                    (Test)                   
  210.                                    TC-INVOKE req            Operation 2 begin
  211.                                    (Option-selection,       
  212.                                    Class = 1)               
  213.           TC-INVOKE ind                                     
  214.           (Option-selection)                                
  215.           TC-RESULT-L req          TC-RESULT-L ind          Operation 2 end
  216.           (Options)                (Options)                
  217.                                    TC-RESULT-L req          
  218.                                    (Test-result)            
  219.           TC-RESULT-L ind                                   Operation 1 end
  220.           (Test-result)            
  221.                                             Time
  222.  
  223.  
  224.  
  225.           Fascicle VI.9 - Rec. Q.775    PAGE101
  226.  
  227.                There is no limit to the number  of  operation  invocations  which  may  be
  228.          linked to a given operation invocation.
  229.                Note that when an operation B is linked to another  operation  A,  they  do
  230.          not have to be nested. The only condition is that the invocation of B should take
  231.          place before the outcome of A is reported; however, operation B does not have  to
  232.          terminate before operation A.
  233.          2.3    Component-related facilities offered to TC-users
  234.          2.3.1  Invocation
  235.                So far, operations have been considered from  the  static  point  of  view.
  236.          Invocation introduces a dynamic aspect: a specific invocation of an operation has
  237.          to be differentiated from other possible concurrent invocations of the same or of
  238.          another operation.
  239.                Each particular activation of an operation is  identified  by  a  component
  240.          ID. This component ID must be non ambiguous. It is selected by the TC-user  which
  241.          originates the operation invocation, and passed to the destination TC-user, which
  242.          will reflect it in its reply(ies): therefore it  correlates  the  replies  to  an
  243.          invocation, and the invocation itself.
  244.                The TC-user is free to  assign  any  value  to  the  component  ID  (index,
  245.          address, . . .).
  246.                The component ID associated with an invocation becomes  reusable  when  the
  247.          last or only segment of a result is received, or when certain abnormal situations
  248.          are indicated by TCAP; however, the value should not be  reallocated  immediately
  249.          for another operation activation, as immediate  reallocation  would  prevent  the
  250.          correct handling of some situations (see below).
  251.                The period  during  which  a  component  ID  is  released,  but  cannot  be
  252.          reallocated, is called the freezing period.
  253.                As component IDs receive their value dynamically at the time the  operation
  254.          is invoked, their value cannot appear in the  specification  of  the  application
  255.          protocols; rather, a "logical" value, to which a real  value  is  substituted  at
  256.          execution time, should be indicated in order to identify an operation in a single
  257.          flow.
  258.                Taking component IDs into consideration, the  sequence  of  primitives  for
  259.          example E2 above becomes as shown in Table 3/Q.775.
  260.                                                 TABLE 3/Q.775
  261.  
  262.                  TC USER A                  TC USER B
  263.                                     
  264.          TC-INVOKE req              
  265.          (1, Test, Class = 1)       TC-INVOKE ind
  266.                                     (1, Test)
  267.                                     TC-INVOKE req
  268.                                     (2, 1, Option-selection, 
  269.                                     Class = 1)
  270.          TC-INVOKE ind              
  271.          (2, 1, Option-selection)   
  272.          TC-RESULT-L req            TC-RESULT-L ind
  273.          (2, Options)               (2, Options)
  274.                                     TC-RESULT-L req
  275.                                     (1, Test-result)
  276.                                     
  277.          TC-RESULT-L ind            
  278.          (1, Test-result)           
  279.                                 Time
  280.          where the first parameter of a  primitive  indicates  an  invoke  ID.  When  both
  281.          parameters have to be present, the second one is the linked ID. This  is  a  pure
  282.          notational convention.
  283.          2.3.2  Cancel (by the TC-user)
  284.                The TC-user requesting invocation of an operation  may  stop  the  activity
  285.          associated  with  the  corresponding  component  ID,  for  any  reason  it  finds
  286.          appropriate. However,  cancel  should  in  principle  be  reserved  for  abnormal
  287.          situations: the normal method for terminating an operation is to receive a result
  288.          or to terminate on timer expiry.
  289.                Cancelling has local effect only: it does not prevent  the  remote  TC-user
  290.          from sending replies to a cancelled operation. When received, these replies  will
  291.          be rejected by TCAP, as illustrated in the following, which represents a sequence
  292.  
  293.  
  294.  
  295.  
  296.          PAGE118 Fascicle VI.9 - Rec. Q.775
  297.  
  298.          of primitives for the example E1 defined above, where TC-user A cancels the  test
  299.          after receiving the first segment of the result.
  300.                In Table 4/Q.775, part P2 is not received by  TC-user  A:  TCAP  detects  a
  301.          reject situation before delivering it, and any attempt by TC-user B to send  more
  302.          replies is rejected at A's side.
  303.  
  304.  
  305.                                                 TABLE 4/Q.775
  306.  
  307.                  TC USER A                  TC USER B
  308.                                     
  309.                                     
  310.          TC-INVOKE req              
  311.          (1, Test, Class = 1)       TC-INVOKE ind
  312.                                     (1, Test)
  313.                                     TC-RESULT-NL req
  314.                                     (1, P1)
  315.                                     
  316.                                     
  317.                                     
  318.          LTC-RESULT-NL ind          
  319.          (1, P1)                    
  320.          Cancel decision:           
  321.          TC-CANCEL req              TC-RESULT-NL req
  322.          (1)                        (1, P2)
  323.          TC-L-REJECT ind            
  324.          (1, Problem Code)                        ....
  325.          ....                       
  326.                                     
  327.          Time
  328.                2.3.3  Reject (by the TC-user)
  329.                A TC-user may decide  to  reject  a  component  for  any  reason  it  finds
  330.          appropriate, e.g. application protocol error, parameter missing in  an  operation
  331.          or a reply, etc.
  332.                TCAP covers a number of cases, identified by the list of Problem  Codes  in
  333.          Recommendation Q.773. In any of these cases, which correspond to situations where
  334.          an operation or a reply is not correctly  formatted,  the  TC-user  may  use  the
  335.          reject facility. Alternately, he may decide to return a failure indication (error
  336.          component), which allows more detailed error and diagnostic information.
  337.          operati 
  338.          operation: no more replies will be accepted for  this  invocation.  Reject  of  a
  339.          linked operation does not affect the linked-to operation.
  340.                This is illustrated in Table 5/Q.775 where, in example E2,  TC-user  A  did
  341.          not expect the option selection process (it may  be  an  optional  feature),  and
  342.          rejects the operation  with  the  Problem  Code  "Unexpected  Linked  Operation".
  343.          TC-user B may then decide to execute the test assuming a default option.
  344.  
  345.  
  346.                                                 TABLE 5/Q.775
  347.  
  348.                  TC USER A                  TC USER B
  349.                                     
  350.          TC-INVOKE req              
  351.          (1, Test, Class = 1)       TC-INVOKE ind
  352.                                     (1, Test)
  353.                                     TC-INVOKE req
  354.                                     (2, 1, Option-selection, 
  355.                                     Class = 1)
  356.                                     
  357.                                     
  358.                                     
  359.          TC-INVOKE ind              
  360.          (2, 1, Option-selection)   
  361.          TC-U-REJECT req            
  362.          (2, Problem Code)          
  363.                                     
  364.                                     
  365.                                     
  366.                                     TC-U-REJECT ind
  367.                                     (2, Problem Code)
  368.                                     TC-RESULT-L req
  369.                                     (1, Test-result)
  370.                                     
  371.                                     
  372.                                     
  373.          TC-RESULT-L ind            
  374.          (1, Test-result)           
  375.                                     
  376.                                 Time
  377.  
  378.  
  379.  
  380.          Fascicle VI.9 - Rec. Q.775    PAGE101
  381.  
  382.          reinvok 
  383.          reinvoke it (e.g. the invoke component  was  corrupted);  this  would  be  a  new
  384.          invocation (new Invoke ID). It may also decide to  abort  the  dialogue.  A  very
  385.          simple dialogue  (a  question  and  a  response)  may  not  define  any  recovery
  386.          mechanisms, except when the operation is of critical importance (e.g. a  database
  387.          update).
  388.          2.4    ComponentVrelated abnormal situations
  389.          2.4.1  Component loss
  390.                TCAP assumes a very low probability of message  loss  in  the  network;  if
  391.          this  probability  is  too  high  for  an  application,   it   should   use   the
  392.          connectionVoriented network service approach. If some protocol information  needs
  393.          an upgraded quality of  service  (e.g.  charging  information),  the  application
  394.          should introduce its  own  mechanisms  to  obtain  higher  reliability  for  this
  395.          information.
  396.                Loss of an operation invocation
  397.                The Table 6/Q.775 sequence illustrates the case, in example  E1,  where  no
  398.          response to the test is received before the time limit expires.
  399.                                            TABLE 6/Q.775
  400.  
  401.                TC USER A              TC USER B
  402.          TC-INVOKE req              
  403.          (1, Test, Class = 1)       
  404.          Time limit:                
  405.          TC-L-CANCEL ind            
  406.          (1)                        
  407.                                 Time
  408.                When a class 1 operation is lost, the TC-user is informed  when  the  timer
  409.          asociated with the operation expires. When a class  1  operation  with  a  single
  410.          result is lost, TCAP cannot indicate whether either the operation invocation,  or
  411.          the reply, was lost. If the application needs to discriminate between  these  two
  412.          cases, it should do it in the application protocol (e.g. using the  time-stamping
  413.          or acknowledging the operation invocation before replying to it).
  414.                For a class 2 operation, loss will be considered as a success (whether  the
  415.          invocation, or the failure report, was lost). This, considering  the  probability
  416.          of loss,  may  be  acceptable  for  non  critical  operations  (e.g.  statistical
  417.          measurements).
  418.          failu 
  419.          failure, whether the invocation, or the success report, has been lost.
  420.                For a class 4 operation, loss will not be visible to TCAP.
  421.                Loss of a result
  422.                -   Loss of a non final result is never detected by TCAP.
  423.                -   Loss of a final result will eventually be indicated to the TC-user when 
  424.                   the  time  limit  is  reached,  but  cannot  always  be   unambiguously
  425.                   interpreted as the loss of a reply; of no non  final  result  has  been
  426.                   received, it may be that the invocation was lost.
  427.                Loss of a linked operation
  428.                The loss of a linked operation has  the  same  effect  as  the  loss  of  a
  429.          non-linked operation. It has no effect on the linked-to operation.
  430.                Loss of a reject component
  431.                This case should be extremely infrequent, and no application should try  to
  432.          recover from  such  a  situation.  If  the  lost  reject  concerns  an  operation
  433.          invocation, then when the operation timed  out  the  TC-user  which  invoked  the
  434.          operation will consider that the invocation (or the reply) was  lost,  and  react
  435.          accordingly; if it concerns a reply, the originator of the  reply  will  consider
  436.          that it was correct: it will be up to the originator of the operation  to  detect
  437.          the loss.
  438.          2.4.2  Component duplication
  439.                As message duplication is very infrequent in the Signalling  System  No.  7
  440.          network, scripts for No. 7 applications need not define  sophisticated  scenarios
  441.          in anticipation of such situations. However, any application in which duplication
  442.          would  be  unacceptable  should  either  define  its  own  duplication  detection
  443.          mechanism or use a connection-oriented service.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.          PAGE118 Fascicle VI.9 - Rec. Q.775
  452.  
  453.                Duplicate operation invocation
  454.                When an operation invocation is duplicated (by the service  provider),  the
  455.          destination TC-user (B) may, or may not, detect the duplication:
  456.                -   TC-user B detects the duplication: the best it can do in this case  is
  457.                   to ignore the duplicate; rejection could be interpreted by  the  remote
  458.                   TC-user as rejection of the original invocation;
  459.                -   TC-user B does not detect the duplication: this may happen when  there
  460.                   is a master-slave relationship between A and  B,  and  B  executes  the
  461.                   operation with no knowledge of the context.
  462.                Assuming the second case in exaple E1, a  possible  sequence  could  be  as
  463.          given in Table 7/Q.775.
  464.                                                 TABLE 7/Q.775
  465.  
  466.                     TC USER A                                TC USER B
  467.                                                                
  468.          TC-INVOKE req                                         
  469.          (1, Test, Class = 1)             TC-INVOKE ind        
  470.                                           (1, Test)            Undetected duplication of 
  471.                                           TC-INVOKE ind        invocation
  472.                                           (1, Test)            
  473.                                           TC-RESULT-NL req     
  474.                                           (1, P1)              
  475.                                           TC-RESULT-NL req     
  476.                                           (1, P1)              
  477.          TC-RESULT-NL ind                                      
  478.          (1, P1)                                               
  479.          TC-RESULT-NL ind                                      
  480.          (1, P1)                                               
  481.          A detects an abnormal                                 
  482.          situation and rejects:                                
  483.          TC-U-REJECT req                  TC-RESULT-NL req     
  484.          (1, Problem Code)                (1, P2)              
  485.          TC detects an abnormal           TC-U-REJECT ind      
  486.          situation and rejects P2:        (1, Problem Code)    
  487.          TC-L-REJECT ind                  
  488.          (1, Problem Code)                
  489.                                           
  490.                                                                
  491.                                                                
  492.                                           TC-R-REJECT ind      
  493.                                           (1, Problem Code)    
  494.                                                                
  495.                                            Time
  496.                In this sequence, TC-user B considers  two  independent  test  invocations,
  497.          and responds to each of them. The first result P1 is accepted; TC-user A  detects
  498.          that P1 is received a second time, and rejects it; this terminates the operation,
  499.          and causes result P2 to be rejected when received (reject  by  TCAP).  Therefore,
  500.          both activities at B's side will terminate on receipt of rejects.
  501.                Duplicate non-final result
  502.                If a non-final result is  duplicated,  TCAP  cannot  detect  it,  and  will
  503.          deliver it twice to the TC-user. Detection of  this  situation  is  left  to  the
  504.          application.
  505.                Duplicate final result
  506.                If a final result is duplicated, TCAP can detect the situation: the  second
  507.          final result is considered as abnormal (the operation has been terminated by  the
  508.          first "final" result), and TCAP rejects it.
  509.                Table 8/Q.775 shows a sequence for example E1 where the  third  segment  of
  510.          the result is duplicated (by the network).
  511.                                                 TABLE 8/Q.775
  512.  
  513.                    TC USER A                    TC USER B
  514.                                          
  515.          TC-INVOKE req                   
  516.          (1, Test, Class = 1)            TC-INVOKE ind
  517.                                          (1, Test)
  518.                                          TC-RESULT-NL req
  519.                                          (1, P1)
  520.          TC-RESULT-NL ind                TC-RESULT-NL req
  521.          (1, P1)                         (1, P2)
  522.          TC-RESULT-NL ind                TC-RESULT-L req
  523.          (1, P2)                         (1, P3)
  524.          TC-RESULT-L ind                 
  525.          (1, P3)                         
  526.          Duplication of P3:              
  527.          TC-L-REJECT ind                 
  528.          (1, Problem Code)               
  529.                                          
  530.                                          
  531.                                          TC-R-REJECT ind
  532.                                          (1, Problem Code)
  533.                                          
  534.          Time
  535.  
  536.  
  537.  
  538.          Fascicle VI.9 - Rec. Q.775    PAGE101
  539.  
  540.                Comment: Discarding of duplicates in  all  cases  by  TCAP  would  probably
  541.          appear as a nicer issue. However, it should be noted that:
  542.                1)   it  would  require  another  degree  of  complexity  in  TCAP,  which
  543.                   contradicts the basic characteristics of  TCAP  in  the  connectionless
  544.                   approach;
  545.                2)  it corresponds to a situation which is extremely infrequent, at  least
  546.                   in the No. 7 network.
  547.                To cover these situations when required by  an  application,  it  would  be
  548.          better to use a connection-oriented network service approach,  since  duplication
  549.          could then be detected and handled at the lower layers.
  550.          2.4.3  Component missequencing
  551.                For TCAP, the order of segmented results is not relevant: if the  order  is
  552.          important to the  TC-user,  appropriate  mechanisms  should  be  defined  in  the
  553.          application  protocol  (e.g.  by  introducing  a  numbering  scheme  to  identify
  554.          intermediate  replies  in  a  parameter  of  these  replies,  or   by   using   a
  555.          connection-oriented service).
  556.                Due to missequencing, a non final result may arive after  a  final  result:
  557.          when this occurs the non final result is rejected by TCAP.
  558.                The sequence in Table 9/Q.775 illustrates what happens in example  E1  when
  559.          the last part of the result is received before the second one: both TC-users  are
  560.          informed.
  561.                                                 TABLE 9/Q.775
  562.  
  563.                    TC USER A                      TC USER B
  564.          TC-INVOKE req                   
  565.          (1, Test, Class = 1)            TC-INVOKE ind
  566.                                          (1, Test)
  567.                                          TC-RESULT-NL req
  568.                                          (1, P1)
  569.          TC-RESULT-NL ind                
  570.          (1, P1)                         TC-RESULT-NL req
  571.                                          (1, P2)
  572.                                          TC-RESULT-L req
  573.          TC-RESULT-L ind                 (1, P3)
  574.          (1, P3)                         
  575.          Missequenced result:            
  576.          reject                          
  577.          TC-L-REJECT ind                 
  578.          (1, Problem Code)               
  579.                                          TC-R-REJECT ind
  580.                                          (1, Problem Code)
  581.          Time
  582.                If a linked operation invocation is received after the final result of  the
  583.          linked-to operation (as a result of a missequencing),  the  linked  operation  is
  584.          rejected.
  585.                TCAP assumes a very low probability of  missequencing;  if  the  supporting
  586.          network is not satisfactory in  this  respect,  the  connection-oriented  network
  587.          service approach should be considered.
  588.          2.4.4  Reject of a component by TCAP
  589.                A general principle when TCAP receives a  component  (operation  invocation
  590.          or reply) which is either not formatted correctly, or  received  out  of  context
  591.          (e.g. a reply without a prior operation invocation), is to reject it, which means
  592.          that:
  593.                1)  the destination of the faulty  component  is  first  informed  of  the
  594.                   situation; TCAP provides  whatever  information  is  available  on  the
  595.                   nature of the component being rejected
  596.                2)  in reaction to this, the TC-user may decide to abort, continue, or end
  597.                   the dialogue. In the last two cases, when the TC-user notifies TCAP  of
  598.                   its decision, the peer TC-user is informed of the reject.
  599.                Possible cases of reject by TCAP have  been  encountered  in  the  previous
  600.          sections. Whenever the component ID is recognised, rejection by TCAP  causes  the
  601.          termination of the operation: a possible recovery is  a  new  invocation  of  the
  602.          terminated operation. When the rejected component is not identifiable,  only  the
  603.          local TC-user is informed, and abort of  the  dialogue  may  be  the  appropriate
  604.          reaction.
  605.  
  606.  
  607.  
  608.  
  609.          PAGE118 Fascicle VI.9 - Rec. Q.775
  610.  
  611.          2.4.5  Operation timer expiry
  612.          t 
  613.          the most unlikely),  an  implementationVdependent  mechanism  avoiding  premature
  614.          reallocation of component IDs is required.
  615.                Timer expiry indication corresponds to an abnormal situation  only  in  the
  616.          case of a  class  1  operation.  The  TCVuser  is  then  aware  that  either  the
  617.          invocation, or the reply, was lost. If no undesirable side effects arise, another
  618.          invocation of the same operation can take  place  after  timer  expiry.  This  is
  619.          illustrated by the sequence in Table 10/Q.775 for example E1.
  620.                                            TABLE 10/Q.775
  621.  
  622.                   TC USER A                    TC USER B
  623.                                          
  624.          TC-INVOKE req                   
  625.          (1, Test, Class = 1)            TC-INVOKE ind
  626.                                          (1, Test)
  627.                                          
  628.                                          
  629.          Timer expiry:                   
  630.          TC-L-CANCEL ind                 
  631.          (1)                             
  632.          TC-INVOKE req                   
  633.          (2, Test, Class = 1)            
  634.                                          
  635.          Time
  636.                Timer expiry for  a  class  2  operation  indicates  that  no  failure  was
  637.          received nor will be accepted for this invocation: it is a definite indication of
  638.          success (for class 2). A parallel  situation  applied  to  class  3  in  case  of
  639.          failure. The indication of timer expiry for  a  class  4  operation  is  a  local
  640.          decision.
  641.          3      Dialogues
  642.          issu 
  643.          issued, a request is passed to TCAP, but nothing is sent to  the  remote  TCVuser
  644.          until a primitive requesting transmission is issued. These primitives, and  their
  645.          relation with operation handling primitives, are considered now.
  646.          3.1    Grouping of components in a message
  647.                The effect of TCVuser issuing a component handling primitive  (unless  this
  648.          primitive has local effect only), is to build a component to  be  included  in  a
  649.          message. The message is not transmitted until the TCVuser requests it.
  650.                Note that a component may also be generated as a result of a  TCAP  reject:
  651.          in this case this component is put in the next message for the dialogue unless it
  652.          is aborted.
  653.                Provided that the maximum size  of  a  message  is  not  exceeded,  several
  654.          components can be grouped and sent to the remote end as a single message, thereby
  655.          saving transmission overhead. This is done under control of  the  TCVuser,  which
  656.          explicitly specifies when it wants (a) component(s) to be sent.
  657.                Example E3, as given in Table 11/Q.775, shows the beginning of  a  dialogue
  658.          with a network service centre where a switch requests instructions (operation  1)
  659.          and receives a request to connect the call to a given destination address, and  a
  660.          request to send information (e.g. announcement or message to be displayed) to the
  661.          calling party. Both components are contained in a single message.
  662.                                            TABLE 11/Q.775
  663.  
  664.                    TC USER A                      TC USER B
  665.                                             
  666.          TC-INVOKE req                      
  667.          (1, Provide-Instructions, Class    
  668.          = 1)                               
  669.          TC-BEGIN req                       
  670.          (control parameters)               
  671.                                             
  672.                                             
  673.                                             TC-BEGIN ind
  674.                                             (control parameters)
  675.                                             TC-INVOKE ind
  676.                                             (1, Provide-instructions)
  677.                                             TC-INVOKE req
  678.                                             (2, 1, Connect-Call)
  679.                                             TC-RESULT-L req
  680.                                             (1, Send-Info)
  681.                                             TC-CONTINUE req
  682.                                             (control parameters)
  683.                                             
  684.                                             
  685.          TC-CONTINUE ind                    
  686.          (control parameters)               
  687.          TC-INVOKE ind                      
  688.          (2, 1, Connect-Call)               
  689.          TC-RESULT-L ind                    
  690.          (1, Send-Info)                     
  691.                                             
  692.          Time
  693.  
  694.  
  695.  
  696.          Fascicle VI.9 - Rec. Q.775    PAGE101
  697.  
  698.                TC-BEGIN and TC-CONTINUE are transmission primitives  described  in  S  3.2
  699.          below.
  700.                There may be  one  transmission  primitive  for  each  component,  but  the
  701.          separation of primitives allows the grouping of components within a  message.  In
  702.          addition, the  information  contained  in  the  parameters  of  the  transmission
  703.          primitives (e.g. addressing information) applies to all the  components  included
  704.          in the message.
  705.                At the originating side,  the  primitive  requesting  transmission  appears
  706.          after a component handling primitive; this indicates  that  transmission  of  the
  707.          preceeding components  has  to  take  place  immediately;  it  avoids  indicating
  708.          specific components to be transmitted with a given  transmission  primitive,  and
  709.          allows transmission primitives without any associated component.
  710.                At the destination side,  the  primitive  requesting  transmission  appears
  711.          first: it contains control information which is necessary  for  TCAP  to  deliver
  712.          each of the components (if any) in the message; the last component of the message
  713.          is indicated to the TC-user by the "Last Component" parameter. The components are
  714.          delivered to the destination TC-user in the same order as  they  were  passed  to
  715.          TCAP by the originating TC-user.
  716.          3.2    Dialogue handling facilities
  717.                When two TC-users co-operate in an application,  more  than  one  operation
  718.          invocation is generally required. The resulting flow  of  components  has  to  be
  719.          identified so that:
  720.                1)  components of the same flow can be related
  721.                i 
  722.                   identified and allowed to run in parallel.
  723.                Each such flow is  identified,  for  the  TC-user,  by  a  dialogue  and  a
  724.          corresponding Dialogue ID parameter. The dialogue handling facility provided  for
  725.          this purpose is the structured dialogue.
  726.                When  only  a  single  message  is  required  to  complete  a   distributed
  727.          application, the Unidirectional message of the unstructured dialogue may be used.
  728.          The originator does not expect a report of the outcome of the operation (i.e. may
  729.          only invoke class 4 operations), but may receive a report of a protocol error  if
  730.          one occurs.
  731.          3.2.1  Structured dialogue
  732.          3.2.1.1   General
  733.                The use of  dialogues  allows  several  flows  of  components  to  co-exist
  734.          between two TC-users. The  Dialogue  ID  parameter  is  used  in  both  operation
  735.          handling and transmission  (dialogue)  handling  primitives  to  determine  which
  736.          component(s) pertain(s) to which dialogue.
  737.                The Dialogue ID parameter is  represented  (by  convention)  by  the  first
  738.          parameter in these primitives, starting with letter D. Each TC-user has  its  own
  739.          reference for a given dialogue. Local references (those used  on  the  interface)
  740.          are represented here; mapping of these local references onto protocol  references
  741.          included in messages is done by TCAP.
  742.                Three primitives have been defined  for  handling  dialogues  under  normal
  743.          circumstances;   they   indicate   dialogue   begin   (TC-BEGIN),    continuation
  744.          (TC-CONTINUE) or end (TC-END). Each of these primitives may be  used  to  request
  745.          transmission of  0,  1  or  several  components;  these  components  may  contain
  746.          information relating to one or several operations.
  747.                Table 12/Q.775 illustrates a possible sequence for example  E2,  where  the
  748.          test request starts the dialogue, which ends when the test result has been sent.
  749.                                                TABLE 12/Q.775
  750.  
  751.                      TC USER A                          TC USER B
  752.          TC-INVOKE req                      
  753.          (D1, 1, Test, Class = 1)           
  754.          TC-BEGIN req                       
  755.          (D1, Address)                      
  756.                                             TC-BEGIN ind
  757.                                             (D2, Address)
  758.                                             TC-INVOKE ind
  759.                                             (D2, 1, Test)
  760.                                             TC-INVOKE req
  761.                                             (D2, 2, 1, Option-selection, 
  762.                                             Class = 1)
  763.                                             TC-CONTINUE req
  764.                                             (D2)
  765.          TC-CONTINUE ind                    
  766.          (D1)                               
  767.          TC-INVOKE ind                      
  768.          (D1, 2, 1, Option-selection)       
  769.          TC-RESULT-L req                    
  770.          (D1, 2, Options)                   
  771.          TC-CONTINUE-req                    
  772.          (D1)                               
  773.                                             TC-CONTINUE ind
  774.                                             (D2)
  775.                                             TC-RESULT-L ind
  776.                                             (D2, 2, Options)
  777.                                             TC-RESULT-L req
  778.                                             (D2, 1, Test-result)
  779.                                             TC-END req
  780.                                             (D2)
  781.          TC-END ind                         
  782.          (D1, normal)                       
  783.          TC-RESULT-L ind                    
  784.          (D1, 1, Test-result)               
  785.                                         Time
  786.  
  787.  
  788.  
  789.          PAGE118 Fascicle VI.9 - Rec. Q.775
  790.  
  791.                      Note - D1 and D2 are local references for the same  dialogue
  792.                      and map onto transaction IDs which appear in the messages.
  793.                 Any grouping of components is allowed in the messages of a  dialogue:  TCAP
  794.           does not check, for instance, that a message  terminating  a  dialogue  does  not
  795.           include operation invocations of class 1. Full-duplex exchange of  components  is
  796.           assumed: if a TC-user wants to introduce some restrictions,  e.g.  working  in  a
  797.           synchronous mode as defined in ROSE, it would have  to  introduce  the  necessary
  798.           procedures itself.
  799.           3.2.1.2   Exchange of messages
  800.                 Transmission of messages is accomplished with the  quality  of  service  of
  801.           the underlying layer services: no flow control or error recovery  mechanisms  are
  802.           provided by TCAP.
  803.                  -   The first dialogue handling primitive  of  a  dialogue  must  indicate
  804.                      dialogue begin (TC-BEGIN). Further messages must not be sent  from  the
  805.                      side originating the dialogue  until  a  message  is  received  in  the
  806.                      backward direction, indicating dialogue continuation.
  807.                  -   If a TC-user tries to send a large number of messages in a short amount 
  808.                      of time, no flow control mechanism in TCAP will prevent it.
  809.                  -   SCCP class 1 in-sequence delivery  can  be  requested  as  an  option,
  810.                      indicated by the Quality of Service parameter. Note  that  this  option
  811.                      may not be available end to end when interworking with a network  which
  812.                      does not provide it.
  813.           3.2.1.3   Dialogue end
  814.                 TCAP places no  restriction  on  the  ability  for  a  TC-user  to  request
  815.           dialogue end. It follows that messages may be lost if no precautions are taken in
  816.           the application on when the dialogue may end. In particular, if  the  application
  817.           protocol allows both TC-users to issue TC-END primitives at about the same  time,
  818.           and if these primitives trigger transmission of components,  it  is  likely  that
  819.           some (if not all) of these components will not be delivered to  their  respective
  820.           destination TC-users.
  821.                 It is up to  the  application  to  define,  if  necessary,  its  own  rules
  822.           concerning the right to end a dialogue: TCAP will not  check  them.  Any  message
  823.           received for a terminated dialogue is discarded if it requests dialogue end,  and
  824.           otherwise causes the dialogue to be aborted at the remote entity.
  825.                 The differences between  the  three  ways  of  ending  a  dialogue  are  as
  826.           follows.
  827.                 Prearranged end
  828.                 A typical application is the access to a distributed  database,  where  the
  829.           requesting user (TC-user A) does not know  where  the  information  it  seeks  is
  830.           located. TC-user A broadcasts a request to each location  which  might  have  the
  831.           information required, and will eventually receive a  response  from  the  TC-user
  832.           which holds this information. Prearranged end  avoids  messages  from  the  other
  833.           destinations saying: "I do  not  have  this  information".  Only  the  responding
  834.           destination may continue the dialogue (if so wished); all other destination will,
  835.           by convention, end the dialogue locally; the originator of the requests will also
  836.           end the dialogues with the non-responding destinations locally, when it  receives
  837.           the response to its request. Note that the convention  is  between  applications:
  838.           TCAP does not check that it is  respected,  nor  is  it  indicated  in  the  TCAP
  839.           protocol.
  840.                 Example  E4  in  Table  13/Q.775  illustrates  this  situation,  with   two
  841.           destinations B1 and B2; two dialogues (D1, D2)  and  (D3,  D4)  are  started;  B1
  842.           happens to own the requested information, and decides to continue the dialogue.
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.           Fascicle VI.9 - Rec. Q.775    PAGE101
  861.  
  862.                                                TABLE 13/Q.775
  863.  
  864.                  TC USER A                 TC USER B1                TC USER B2
  865.                                                                 
  866.                                                                 
  867.          TC-INVOKE req                                          
  868.          (D1, 1, Question)                                      
  869.          TC-BEGIN req                                           
  870.          (D1, Address)                                          
  871.          TC-INVOKE req               TC-BEGIN ind               
  872.          (D3, 1, Question)           (D2, Address)              
  873.          TC-BEGIN req                TC-INVOKE ind              
  874.          (D3, Address)               (D2, 1, Question)          
  875.                                                                 TC-BEGIN ind
  876.                                      TC-RESULT-L req            (D4, Address)
  877.                                      (D2, 1, Response)          TC-INVOKE ind
  878.                                      TC-CONTINUE req            (D4, 1, Question)
  879.                                      (D2)                       B2 does not have the 
  880.                                      ......                     information:
  881.                                                                 TC-END req
  882.                                                                 (D4, local)
  883.                                                                 
  884.                                                                 
  885.          TC-CONTINUE ind             
  886.          (D1)                        
  887.          TC-RESULT-L ind             
  888.          (D1, 1, Response)           
  889.          D1 goes on                  
  890.          D3 ends locally             
  891.          TC-END req                  
  892.          (D3, local)                 
  893.                                      
  894.                                               Time
  895.                Prearranged end may also be used when a TC-user wants to send  information,
  896.          and does not expect a reply of any kind afterwards.
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.          PAGE118 Fascicle VI.9 - Rec. Q.775
  932.  
  933.                Basic end
  934.                When a TC-user issues the TC-END request primitive, it causes  transmission
  935.          of any pending components to the  remote  end.  TCAP  does  not  check  that  all
  936.          operation invocations have received a response when dialogue end is requested: no
  937.          notification is given to the TC-user that any pending operation invocations  have
  938.          not received a final result.
  939.                At the receiving end, the dialogue is considered terminated  when  all  the
  940.          components received within the message indicating the end have been delivered  to
  941.          the TC-user.
  942.                Example: the dialogue ends when the test in  example  E1,  Table  14/Q.775,
  943.          receives a response.
  944.                                                TABLE 14/Q.775
  945.  
  946.                    TC USER A                      TC USER B
  947.                      .....                         ......
  948.                                          TC-RESULT-NL req
  949.                                          (D2, 1, P1)
  950.                                          TC-RESULT-NL req
  951.                                          (D2, 1, P2)
  952.                                          TC-RESULT-L req
  953.                                          (D2, 1, P3)
  954.                                          TC-END req
  955.          TC-END ind                      (D2, normal)
  956.          (D1)                            End of dialogue for B
  957.          TC-RESULT-NL ind                
  958.          (D1, 1, P1)                     
  959.          TC-RESULT-NL ind                
  960.          (D1, 1, P2)                     
  961.          TC-RESULT-L ind                 
  962.          (D1, 1, P3)                     
  963.          End of dialogue for A           
  964.          Time
  965.                Abort by the TC-user
  966.                The abort facility allows the TC-user to stop the dialogue at any  time.  A
  967.          typical case is when the user abandons the service. The main differences  between
  968.          this and normal ending are:
  969.                -   any components for which transmission is pending are not sent  to  the
  970.                   peer entity;
  971.                -   peer-to-peer information can be indicated at the  time  the  abort  is
  972.                   issued, and this is delivered to the remote TC-user.
  973.                The sequence given in Table 15/Q.775 shows a user  abandonment  in  example
  974.          E2.
  975.          3.2.1.4   Message-related abnormal situations
  976.                These are considered independently from the effects of such events  in  the
  977.          Component sub-layer.
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.          Fascicle VI.9 - Rec. Q.775    PAGE101
  1003.  
  1004.                Message loss
  1005.                TCAP  provides  no  protection  against  message  loss.  Three  cases   are
  1006.          identified:
  1007.                1)  the message begins a new dialogue: the  dialogue  will  exist  at  the
  1008.                   originating side only,  and  no  message  will  be  allowed  in  either
  1009.                   direction. Eventually, an implementation-dependent  mechanism  of  TCAP
  1010.                   ends the dialogue at the originating end;
  1011.                2)  the message continues an existing dialogue: loss is not detected. TCAP
  1012.                   will react (or not) to the loss of included components as indicated  in
  1013.                   S 2.4.1 above;
  1014.                3)  the message ends a dialogue: TCAP will eventually react if this message 
  1015.                   contained  a  response  to  a   class   1   operation:   otherwise   an
  1016.                   implementation-dependent  mechanism  may  end  the  dialogue   at   the
  1017.                   destination end.
  1018.                                                TABLE 15/Q.775
  1019.  
  1020.                      TC USER A                          TC USER B
  1021.                                             
  1022.                                             
  1023.          TC-INVOKE req                      
  1024.          (D1, 1, Test, Class = 1)           
  1025.          TC-BEGIN req                       
  1026.          (D1, Address)                      
  1027.                                             
  1028.                                             
  1029.                                             
  1030.                                             TC-BEGIN ind
  1031.                                             (D2, Address)
  1032.                                             TC-INVOKE ind
  1033.                                             (D2, 1, Test)
  1034.                                             TC-INVOKE req
  1035.                                             (D2, 2, 1, Option-selection, 
  1036.                                             Class = 1)
  1037.                                             TC-CONTINUE req
  1038.                                             (D2)
  1039.                                             
  1040.                                             
  1041.                                             
  1042.          TC-CONTINUE ind                    
  1043.          (D1)                               
  1044.          TC-INVOKE ind                      
  1045.          (D1, 2, 1, Option-selection)       
  1046.          User abandon:                      
  1047.          TC-U-ABORT req                     
  1048.          (D1, Cause)                        
  1049.                                             
  1050.                                             
  1051.                                             
  1052.                                             TC-U-ABORT ind
  1053.                                             (D2, Cause)
  1054.                                             
  1055.          Time
  1056.                Message duplication
  1057.                Duplication of a BEGIN message causes two transactions  to  be  opened,  as
  1058.          indicated below: each of these transactions has its own local ID,  and  the  same
  1059.          destination ID. The TC-user eventually detects that something is wrong, and  both
  1060.          dialogues are aborted.
  1061.                The sequence given in Table  16/Q.775  illustrates  a  duplication  of  the
  1062.          BEGIN message in Example E2.
  1063.                                                TABLE 16/Q.775
  1064.  
  1065.                                       
  1066.                   TC USER A                    TC USER B
  1067.                                       
  1068.          TC-INVOKE req                
  1069.          (D1, 1, Test, Class = 1)     
  1070.          TC-BEGIN req                 
  1071.          (D1, Address)                
  1072.                                       
  1073.                                       
  1074.                                       TC-BEGIN ind
  1075.                                       (D2, Address)
  1076.                                       TC-INVOKE ind
  1077.                                       (D2, 1, Test)
  1078.                                       Duplicated BEGIN:
  1079.                                       TC-BEGIN ind
  1080.                                       (D3, Address)
  1081.                                       TC-INVOKE ind
  1082.                                       (D3, 1, Test)
  1083.                                       Response to the first 
  1084.                                       Begin
  1085.                                       TC-INVOKE req
  1086.                                       (D2, 2, 1, Option-select, 
  1087.                                       Class = 1)
  1088.                                       TC-CONTINUE req
  1089.          TC-CONTINUE ind              (D2)
  1090.          (D1)                         Response to the second 
  1091.          TC-INVOKE ind                Begin
  1092.          (D1, 2, 1, Option-select)    TC-INVOKE ind
  1093.                                       (D3, 2, 1, Option-select, 
  1094.                                       Class = 1)
  1095.                                       TC-CONTINUE req
  1096.                                       (D3)
  1097.                                       
  1098.          TC-CONTINUE ind              
  1099.          (D1)                         
  1100.          TC-INVOKE ind                
  1101.          (D1, 2, 1, Option-select)    
  1102.          TC-user considers that       
  1103.          this invocation is           
  1104.          abnormal, and may reject     
  1105.          it, or abort one of the      
  1106.          dialogues:                   
  1107.          TC-U-ABORT req               
  1108.          (D1, Cause)                  
  1109.                                       
  1110.                                       TC-U-ABORT ind
  1111.                                       (D3, Cause)
  1112.  
  1113.          Time
  1114.  
  1115.  
  1116.  
  1117.          PAGE118 Fascicle VI.9 - Rec. Q.775
  1118.  
  1119.                At that moment, there is still one dialogue (with local ID D2)  at  TC-user
  1120.          B's side, but no dialogue at A's side. TC-user B will receive an indication  from
  1121.          TCAP when operation 2 of dialogue D2 timeouts with no  reply  (TC-L-CANCEL  ind),
  1122.          and may then decide to abort D2. Note that the situation would be more  difficult
  1123.          to detect, had TC-user B not invoked a class 1 operation.
  1124.                Duplication of a CONTINUE message is not detected by TCAP.
  1125.                When an END message is duplicated, the second message is received  with  an
  1126.          ID which does not correspond to an active dialogue: TCAP reacts by discarding the
  1127.          duplicate message.
  1128.                Missequencing of messages
  1129.                When the missequenced messages involve neither the beginning, nor  the  end
  1130.          of a dialogue, missequencing is not detected by TCAP, and may result in component
  1131.          missequencing, to which TCAP would react as indicated in S 2.5.3 above.
  1132.                When a message indicating dialogue continuation  arrives  after  a  message
  1133.          indicating the end of the same dialogue, it is not delivered, and causes TCAP  to
  1134.          abort the dialogue; the TC-user will probably detect the loss  when  receiving  a
  1135.          premature dialogue end indication. If the application needs to recover from  this
  1136.          case, a new dialogue should be started.
  1137.                Message corruption
  1138.                When  receiving  a  corrupted  message,  TCAP  reacts   as   indicated   in
  1139.          Recommendation Q.774.
  1140.                Table 17/Q.775 shows the sequence of primitives when TCAP decides to  abort
  1141.          the dialogue after receiving a corrupted message in example E2.
  1142.                                                TABLE 17/Q.775
  1143.  
  1144.                    TC USER A                      TC USER B
  1145.                                          
  1146.          TC-INVOKE req                   
  1147.          (D1, 1, Test, Class = 1)        
  1148.          TC-BEGIN req                    
  1149.          (D1, Address)                   
  1150.                                          
  1151.                                          
  1152.                                          TC-BEGIN ind
  1153.                                          (D2, Address)
  1154.                                          TC-INVOKE ind
  1155.                                          (D2, 1, Test)
  1156.                                          TC-INVOKE req
  1157.                                          (D2, 2, 1, Option-select, 
  1158.                                          Class = 1)
  1159.                                          TC-CONTINUE req
  1160.                                          (D2)
  1161.                                          
  1162.                                          
  1163.          Corrupted message:              
  1164.          TC-ABORT ind                    
  1165.          (D1, Cause)                     TC-ABORT ind
  1166.                                          (D2, Cause)
  1167.                                          
  1168.          Time
  1169.                3.2.1.5   Relations between dialogue handling and operation handling
  1170.                Depending on the moment when  the  dialogue  end  is  requested,  the  TCAP
  1171.          facilities associated with an operation will be available until the  end  of  the
  1172.          dialogue, or not. The following gives some guidelines on when dialogue end can be
  1173.          requested; if these are not respected, TCAP  will  not  refuse  the  request  for
  1174.          dialogue end.
  1175.                The problems that may result from  the  collision  of  messages  requesting
  1176.          dialogue end have been considered above.
  1177.                Normal end should not be requested when:
  1178.                -   there are operation invocations pending for the dialogue;
  1179.                -   the application protocol anticipates that  replies  being  transmitted
  1180.                   with the termination request could be rejected.
  1181.                In addition, a request for dialogue end must not  trigger  transmission  of
  1182.          operation invocations, since no reply could be received for these operations.
  1183.                Many applications might not define recovery  scenarios  in  response  to  a
  1184.  
  1185.  
  1186.  
  1187.  
  1188.          Fascicle VI.9 - Rec. Q.775    PAGE101
  1189.  
  1190.          rejected reply. This legitimises the  transmission  of  replies  or  of  class  4
  1191.          operations in a message indicating dialogue end. The  other  applications  should
  1192.          either use the connection-oriented network service approach, or end the  dialogue
  1193.          with a message containing no component, that would be sent  only  when  a  reject
  1194.          indication can no longer be received.
  1195.          3.2.2  Unstructured dialogue
  1196.                A Unidirectional  message  will  contain  either  only  class  4  operation
  1197.          invocations  or  reports  of  protocol  errors  in  such  invocations.   Multiple
  1198.          components can be transmitted in  a  Unidirectional  message  provided  that  the
  1199.          maximum size of a message is not exceeded.
  1200.          4      Application service elements and application entities
  1201.          4.1    Introduction
  1202.                This material supplements preceding material providing  guidelines  on  the
  1203.          usage of TC by describing what needs to be included in an Application Entity (AE)
  1204.          specification. This material is based on CCITT Recommendations  X.219  and  X.229
  1205.          and requires further study.
  1206.                CCITT Recommendation Q.700, S 3.2.3.6, describes  how  Application  Service
  1207.          Elements (ASEs) and Application Entities (AEs) are structured and how  an  AE  is
  1208.          addressed in Signalling System No. 7.
  1209.                This section illustrates  that  architecture,  considering  the  functional
  1210.          decomposition of an application, and describes  how  AEs,  ASEs,  operations  and
  1211.          errors should be defined.
  1212.          4.2    Decomposition of functionality
  1213.                Application process functions communicate through one or  more  Application
  1214.          Entities (AEs). The combination of two peer AEs plus their interaction is  called
  1215.          the Application Context. An  AE  consists  of  communications  for  one  or  more
  1216.          functions of an application. Each communications function forms an ASE  which  is
  1217.          an integrated set of actions and may be used in more than an AE. TCAP  is  itself
  1218.          an ASE which is used  by  other  ASEs  as  well  as  being  common  to  AEs  (see
  1219.          S 3.2.3.6/Q.700). An ASE identifies one or  more  operations  and  specifies  how
  1220.          those  operations  are  used;  that  is,  which  peer  entity  may  invoke  which
  1221.          operations, and in what order. Operations  may  be  selected  from  one  or  more
  1222.          libraries.
  1223.                An ASE provides a service to the user of the ASE. An ASE  is  used  by  two
  1224.          complementary AEs: the consumer of the service and the supplier of  the  service.
  1225.          The consumer of the service is the end that initiates the AE to AE communication.
  1226.          An ASE user is thus generally asymmetric.
  1227.                Within an  ASE,  the  mechanism  for  providing  the  ASE  service  is  the
  1228.          invocation of operations by the service requestor on the service  provider.  Each
  1229.          operation provides a part of the service in an inherently asymmetric manner since
  1230.          it is invoked by one AE and executed by the peer AE. An  ASE  generally  includes
  1231.          more than one operation. An ASE user  is,  in  general,  not  limited  to  either
  1232.          invoking or performing operations, but may both invoke or  perform  the  same  or
  1233.          different operations. Also, an ASE user may exist at a pair of  nodes  such  that
  1234.          either node may request the same service from the other node. That is, the AEs at
  1235.          the nodes may be symmetric, both invoking and executing the same operations.
  1236.                Note - Primitives which  provide  a  standard  service  interface  for  the
  1237.          access of ASEs within AEs are for further study.
  1238.                Figure 3/Q.775 illustrates the  decomposition  of  this  functionality  and
  1239.          provides examples.
  1240.                                        Fig. 3/Q.775 /T1120780-88 = 8cm
  1241.  
  1242.          4.3    How to specify an AE
  1243.                CCITT Recommendation Q.700, S 3.2.3.6, describes how two Signalling  System
  1244.          No. 7 Application Processes communicate via Application Entities,  and  also  the
  1245.          structure of an AE.
  1246.                The application designer should provide a definition for each type  of  AE.
  1247.          It should contain:
  1248.                -   A general description of the services supported by the combination  of
  1249.                   the two peer AEs and communicating by a  dialogue.  (In  Recommendation
  1250.                   X.229 terminology, this corresponds to the "Application Context").
  1251.                -   A definition of the complete application protcol between the peer  AEs
  1252.                   by:
  1253.                   -   identifying each ASE constituting the AE, and
  1254.                   -   indicating which of the peer AEs initiates the service.
  1255.  
  1256.  
  1257.  
  1258.  
  1259.          PAGE118 Fascicle VI.9 - Rec. Q.775
  1260.  
  1261.                -   Any special constraints to ensure that peer AEs with different versions 
  1262.                   are compatible.
  1263.                A formal specification of the application context using the  Recommendation
  1264.          X.229 APPLICATION-CONTEXT macro is for further study.
  1265.                Since each AE constitutes a single coding domain for  operation  and  error
  1266.          code values (addressed by SCCP  subsystem  number  in  a  connectionless  network
  1267.          service environment), each operation or error code value must  be  unique  within
  1268.          the AE (see S 4.5).
  1269.          4.4    How to specify an ASE
  1270.                The definition of an ASE is part of the stage 3 of the service  description
  1271.          methodology, as defined by Recommendation I.220.
  1272.                The ASE description should provide:
  1273.                -   A general description of the ASE and its procedures.
  1274.                -   The information flows between the entities which are communicating  to
  1275.                   support the service, based on stage 2, with additions and  enhancements
  1276.                   that are needed as part of the protocol design.
  1277.                -   A detailed description of the ASE protocol. This includes the sequence
  1278.                   in which operations may  be  invoked,  and  the  reaction  to  abnormal
  1279.                   situations.  The  definition  should  include  how   protocol   version
  1280.                   interwork. Dialogue begin, continuation and end  should  be  specified.
  1281.                   This section should describe the interaction between the  ASE  and  the
  1282.                   TCAP component sub-layer expressed in terms of the primitive interface.
  1283.                -   SDL diagrams.
  1284.                Recommendation X.229 (ROSE) defines  an  APPLICATION-SERVICE-ELEMENT  macro
  1285.          which may be used to specify an ASE formally. It identifies which operations  are
  1286.          contained in the AE and how they are invoked. The use of this macro in Signalling
  1287.          System No. 7 is for further study.
  1288.          4.5    How to specify operations and errors
  1289.          4.5.1  Information needed to specify operations and errors
  1290.                To specify an operation, the following items must be defined:
  1291.                -   The operation name.
  1292.                -   The operation code. This may be local or global. See S 4.5.2.
  1293.                -   The operation class. A value in the range 1 to 4 as defined in S 2.2.1.
  1294.                -    The  parameters  accompanying   the   operation   invocation   (input
  1295.                   parameters). Further essential information to supplement that  provided
  1296.                   in the parameters with the original invocation may be  requested  using
  1297.                   linked operations.
  1298.                -   The parameters that may be returned as  the  result  of  a  successful
  1299.                   outcome  (Return  Result),  whenever  the  operation  reports   success
  1300.                   (possitive output parameters). The way these  parameters  are  actually
  1301.                   passed (in a single component or several) is no part of  the  operation
  1302.                   description.
  1303.                -   The error codes and associated parameters that may be returned as  the
  1304.                   result of an unsuccessful  outcome  (Return  Error)  of  the  operation
  1305.                   execution, whenever this operation  reports  failure  (negative  output
  1306.                   parameters). An error code must be present when reporting failure,  and
  1307.                   all  the  possible  values  be  defined  as  part  of   the   operation
  1308.                   description.
  1309.                -   The allowed linked operations (see S 2.2.2).
  1310.                -   The timer value for completion of the operation.
  1311.                The operation description consists of a Table indicating  the  eight  items
  1312.          above, together with a short prose description of  what  the  operation  does.  A
  1313.          formal definition using Annex A/Q.773 OPERATION and ERROR macros should  also  be
  1314.          included to unambiguously indicate which  parameters  are  mandatory,  which  are
  1315.          optional with default  values  as  applicable,  and  which  individual,  sets  or
  1316.          sequences of parameters are legal as input, positive output, and negative output.
  1317.          The OPERATION and ERROR type (macro)  definitions  are  exported  from  the  TCAP
  1318.          definitions (Annex A/Q.773) and need to be imported into the ASE being defined in
  1319.          order to define operations and errors.
  1320.                The syntax of the OPERATION MACRO (reproduced from  Annex  A/Q.773)  is  as
  1321.          follows:
  1322.          OPERATION MACRO ::=
  1323.          BEGIN
  1324.          TYPE NOTATION ::=             Parameter Result Errors Linked Operations
  1325.          VALUE NOTATION ::=            value{VALUE CHOICE{
  1326.  
  1327.  
  1328.  
  1329.  
  1330.          Fascicle VI.9 - Rec. Q.775    PAGE101
  1331.  
  1332.                                                      localValue INTEGER,
  1333.                                                      globalValue OBJECT IDENTIFIER }}
  1334.          Parameter ::=                   "PARAMETER" Named Type | empty
  1335.          Result ::=                      "RESULT" ResultType | empty
  1336.          ResultType ::=                 NamedType | empty
  1337.          Errors ::=                      "ERRORS" "{"ErrorNames"}" | empty
  1338.          LinkedOperations ::=                "LINKED" "{"LinkedOperationNames"}" | empty
  1339.          ErrorNames ::=                 ErrorList | empty
  1340.          ErrorList ::=                   Error | ErrorList "," Error
  1341.          Error ::=                       value (ERROR) -- shall reference an error value
  1342.                                    | type -- shall reference an error type if no error value
  1343.                                        -- is specified
  1344.          LinkedOperationNames ::=      OperationList | empty
  1345.          OperationList ::=                   Operation | OperationList "," Operation
  1346.          Operation ::=                   value (OPERATION) -- shall reference an operation
  1347.          value
  1348.                                    | type -- shall reference an operation type if no error
  1349.          value
  1350.                                        -- is specified
  1351.          NamedType ::=             identifier type | type
  1352.          END
  1353.          ERROR MACRO ::=
  1354.          BEGIN
  1355.          TYPE NOTATION ::=             Parameter
  1356.          VALUE NOTATION ::=            value (VALUE CHOICE{
  1357.                                                      localValue INTEGER,
  1358.                                                      globalValue OBJECT IDENTIFIER })
  1359.          Parameter ::=                   "PARAMETER" NamedType | empty
  1360.          NamedType ::=             identifier type | type
  1361.          END
  1362.                The use of local and global values is explained in S 4.5.2.
  1363.                As an example, the CUGCheck2 operation, which is used to check  whether  an
  1364.          incoming call is compatible with the CUG characteristics of the called party,  is
  1365.          described here in both (abbreviated) formal notation, and in the form of a table.
  1366.          4.5.2  Example of operation description
  1367.                (Note - Arbitrary section numbers are used in this example.)
  1368.          3.4.3.1   Description of operations
  1369.          3.4.3.1.1 CUG check 1
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.          PAGE118 Fascicle VI.9 - Rec. Q.775
  1402.  
  1403.