------------------------SDT2 Ht|CallSegmentAssociation--------------------------------------------------------------------------------------------------------------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------!%()HeadingText----------------------------------- 4CallSegmentAssociation-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TENSIONS/REDEFINITIONS OF IN CS-1 OPERATIONS ****/)]][3(! 6 ! d)[8(! OneSegment, MultiSegment)][(!&!"&)[(! 6 &! d()[8(!\ Redefined Process Type <> CallSegmentAssociation)]}----------------------------------------------------------------------------------------------------------------------------------------------r(!~!"~)[8(! 6! true)][6$(! 6d! d)[8(! csID := srArg! callSegmentID)][$(!F!"!%()PageOrdert-----------------------------------16PageOrder-------------------------------------16-----------------------------------------------1----------------------------------------------- !%()HeadingText-----------------------------------10PageOrder-------------------------------------10-----------------------------------------------%17----------------------------------------------- e(!4%!5!7)[!(! 1!!3)[!(! 2!!3)[!(! 3!!3)[!(! 4!!3)[!(! 5!!3)[!5 call GetCSPtr (csID))]]][(!"^^!"^)[(! 6^!)][)()]]]]]]]]]]]}l)[7(! 6:!)[8(! ton$(!"!")[2$(! 6!)[8(!R Pass queued RRBEs for the new leg on to the call segment for further processing.)]]][q$(!" (! ImportCSReq (csID, expCS))][ (!X!"X)[(! 6XX!)[8(!C From IH when processing the IN CS-2 MoveCall_ Segments operation.)]]][(!l()[(! l! 22!(d)[I(! l)[L(! 6)[O(! 6d! )]][ R(! 6)][9(! 6! )[8(!$ /* Note:Knt, MultiSegment)][(!,^,!",,^)[(! 6! ,!)[8(! redefined SelectRoute (SRArg))][ (!" !"j()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6,! d)[8(! OneSegmeW redefined Application_ Begin)][g(!,,!",,)[ +(! 6! d)[8(! call IsCS (sender))][j(!, ,!",,)[ (! 6&! ,!)[8(! ReportUTSI (,rutsiArg))][ !(!~~!"~~)[ (! 6! ,!)[8(! Report d)[8(! -)]]]]]]]]]["(!"^^ R R&!"R&^)[!(! 6&! d!)[8(!A DisconnectForward_ ConnectionWithArgument (invokeIFFR)[8(! 6_k! False)][%(! 6! d)[8(! ImportCS (expCS, csID))][ M(!!")[(! 6:x! ,)[8(!0 csID := call GetLegLocation (controllingLegID))][#(! R!"R )[ (! 6xR! ,!)[8(!( DataInd (udArg) t(another call segment.)]]]][$(! 6~! )[(! 6L! Export_ Controlling_ Leg)][ (!"--F!"F)[(! 6F~!L(!,,!",,)[(! 6! ,!)[8(!( NetworkSuspend_ ReqInd (nsrArg,,legID))][(!,X,!",,XvL9e9e ~ !"~ L9)[(! 6~!)[8(! How many segments are left?)]]][(!"&&!"&L&)[8Q(! 6d~! d!)[8(!! DisconnectLeg (invokeID,,dlArg))][1(!,!",)[7(! 6~!)[8(!b to call GetCSPtr (csID) ment.)]]][7(!!")[ (! 6 ! d!)[8(!* InitiateCall_ Attempt (invokeID,,icaArg))][1:(!@~@!"~@@)[7(! 6~!)[8(!t to call GetCSPtr (ICAArg!newCallSegment) /* Pass InitiateCallAttempt on to the segment for further processing. */)]]][=(!r!"P(!"!")[$(! 6!)[8(!R Pass queued RRBEs for the new leg on to the call segment for further processing.)]]][$(!"3~!"~X)[8(! 63! Yes)][)$()]]]]]]]}rtCSType;)]]]]}ype, ExpCS ExportCSType;)]]]]} ExpCS ExportCSType;)]]]]})[8(!b to call GetCSPtr (CSId) /* Pass DisconnectLeg on tmF)[$(! 6d! d)[8(! SR)]]]]][$(!^33!"^3)[8(! 6! false)][6$(! 6^! d)[8(!"^)[$(! 6!)[8(!b The semantics of the SR operation is changed in IN CS-2. This transition is therefore redefined.)]]][$(!&X!"XX)[6(! 6! ,)[8(!0 csID := call GetLegLocation (controllingLegID))][(! R!"R )[(! 6R! ,ment.)]]][#(!xxx!"xxx)[r#(! 6! d!)[8(!# SplitLeg_ Result(invokeID) via IH)][#(!xx@!"x@! d)[(! 63! Import_ Leg)][ (!F!"F)[(! 6F!)[8(!$ Imports a leg into a call segment.)]]]][$(! 62()[(! l! 22!(6)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6! )[8(!= /**** PR)][i#(! 6! d)[8(! Failed2)]]][#(!xx!"xx)[8(! 6! Successful)][%l#(! 6! d)[8(!J^)[%x(! 6! d)[8(! ReleaseCall (rcArg))][~(!^R^!"^^R)[(! 6^!Z)][3c(! 6! d)[8f()[(! l! 22!(J)[K(! l)[N(! 6)[Q(! 6d! )]][ T(! 6)][3W(! 6! d)[8(! OneSegme!")[%(! 6d! d)[8(!3 RemoveLeg (dlArg!legToBe_ Released!sendingSideID))][(!L~!"~L)[!)[8(!4 NetworkSuspendInd (nsrArg) to call GetCSPtr (csID))][(!!")[(! 6!Z)][3(! 6! d)[8'(! -)]]]]]]]]][(!"!")[(! 6! ,!)[8(! Network_ ResumeInd (nsrArg))][(!X!"(! csID := initial_ CallSegmentID)][%(!"F__!"F)[)$()]]]]]]]][$(!^R!"R^)[8(!Vment)][!(!&X!"X&)[!(! 6X! d!)[8(!: redefined RequestReport_ BCSMEvent (invokeID,,rrbcsmArg))][ !(!~!"ed (on Connect etc.).)]]][!(!!")[%!(! 6! d)[8(! ProcessRRBE (rrbcsmArg))][ !(!~  !" ~g,,F!",F,)[(! 6,F!Z)][37(! 6F! d)[8(! -)]]]]]]][v(!*,,!",\CLARATION OF OPERATIONS ****/)]][9(! 6d! )[8(!$ /* Operations on call segments. */)]][9(! 6! )[8(! /* Operations on legs. */)]][$(! 6d&! -d)[(! 6}?! NoOf_ Segments)][ (!,XX!"X,X)[(! 6&!)[8(!& Returns the number of call segments.)]]]][$(! 6&.! d)[(! 63?! Export_ Leg)][ (!XFX!"FXX)[(! 6F&!)[8(!$ Exports a leg from a call segment.)]]]][$(! 6/d! d)[(! 6}! Export_ CS)][ (!,!",)[(! 6!)[8(! Exports a call segment.)]]]][$(! 6 L!"@Le)[f#(! 6@!)[8(! Create the new call segment with: - the CallSegmentID set to the CallSegmentID in SplitLeg - the ID of the controlling leg set to ControllingLL!",L,)[(! 6L! ,!)[8(!' NetworkSuspend_ ReqInd(nsrArg,,legID))][1(!"~~!"~)[7ldR! d)[(! 6}k! Import_ CS)][ (!,!",)[(! 6R!)[8(! Imports a call segment.)]]]][$(! 6RF(! 6d! d)[(! 6}! Remove_ CS)][ (!,!",)[(! 6!)[8(! Removes a call segment.)]]]][$A(! 9!")[ (! 6! ,)[8(!6 call ExistLeg (icaArg! legToBeCreated!sendingSideID))][ (!"ee~!"~)[(! 6!!3)[!(! 7!!3)[!(! 8!!3)[! (! 9!!3)[! (! 10!!3)[! (! 11!!3)[!)[%#(! 6d! d)[8(!N ImportLeg (mlArg!legID_ ToMove!sendingSideID,leg, mlArg!target_ CallSegment))][ #(!,LL!"L,L)[#(! 6 !)[8(! to call GetCSPtr (csID))]]][b(!"  !" )[(! 6!)][)8()]]]]]]]][A(!"^w{$(! 6~!)[8(! to call GetCSPtr (csID))]]][$(!F!"F)[3$(! 6F! d)[8(! -)]]]]]]]]][$(!X6! d)[(! 63! Move_ Legs)][ G(!F!"F)[D(! 6F!)[8(!I Moves all passive legs from one call segment into !)[8(!= Import the call segment and assign it the id CallSegmentID.)]]][P(!FF!"FF)[ (! 6! d!)[8(! Impor)]][9(! 6X! )[8(!# /**** VARIABLE DECLARATIONS ****/)]][9(! 6! )[8(!U DCL /* IN CS-2 operation arguments. */ ctwaArg ContinueWithArgumentArg, dfcwaAr0)][(! 6,!)][)4()]]]][y(!*  -,-,F!",F)[8(! 6! No)][i(! R!"R )[8(! 69! false)][6~(! 6dR! d)[8(!E csID := call GetLegLocation (dlArg!legToBe_ Released!sendingSideID))][(!% /* The queued RRBEs. */ leg ExportLegType, legs ExportLegsType, expCS ExportCSType;)]]]]}alogues. */ rrbeQueue RRBEQueueType, /* The queued RRBEs. */ leg ExportLegType, legs ExportLegsType, expCS ExportCSType;)]]]]}ers. */ hF)[$(! 6d! d)[8(! AI)]]]]][S$(!^33!"^3)[8(! 6! false)][6$(! 6^! dH 6d:! )[(! 6S! Process_ Queued_ RRBE)]][$(! 6:! )[(! 6E`! Release_ Call)]]]]})[)s()]]]]]]]]]]]}(!xx!"R )[8(! 6k9! true)][6""(! 6R! d)[8(!O csID := call GetLegLocation (dfcwaArg!partyToDisconnect! legID!sendingSideID))][%"(!RR!"RR14OF INAP OPERATIONS FROM SSF TO SCF. */)]][315(! 6! d)[8(! 2* (Null))][ (!,,&!"3,&,)[ (! e )[ (! 6!)[8(!\ Is Connect applied on an existing leg or does Connect implicitly create a new passive leg?)]]][ (!"Xqq!"^FF!"F^F)[(! 6!)[8(! Signals from O-BCSM to SigCon)]]][O(!x!"x)[%(! 6d! 86RX! d)[8(! )]]9]]]]} (! l)[ (! 6)[ (! 6d! )]][  (! 6)][ (! 6 ! K)[8Failed2)(! -)]]]]]]]][3(! 6X! d)[8(! MultiSegment)][(!&X!"X&)[(! 6XX! d!)[8(! Releas(!xx!"xx)[ c#(! 6! ,)[8(!S call AddCS (slArg!newCallSegment, controllingLegID, waitingForInstruction, false))][ #(!"e'e'L@0(!FF!"FF)[ =(! 6! d)[8(! call IsCS (sender))][(!R!"R)[8(! (! 6,-!)][)7()]]]]]][|(!",, F F&!"F&,)[:(! 6&! d!)[8(!* redefined Application_ End(termination,))][h ^)[(! 6 !)[8(!k The semantics of the SelectRoute operation is changed in IN CS-2. This transition is therefore redefined.)]]][(!,&,X!",X(!C MoveLegs (mcsArg!source_ CallSegment, mcsArg!target_ CallSegment))][ "(!x!"x)["(! 6!)[8(!4 Move all legs from the source CS to the target E(! 6L!)[8(! to call GetCSPtr (csID))]]][(!,,!",,)[(! 6,!Z)][3(! 6! d)[8(! -))[ P(! 6! d)[8(! call IsCS(Sender))][ t(!^!"^)[S(! 6!)[8(!% Is the signal incoming or outgoing?)]]RxR~~!"~Rx)[8(! 6! >1)][(! 6~!Z)][3(! 6! d)[8(! Multi_ Segment)]]]]]]]]]]][(!p Signals from SigCon to BCSM.)]]][(!!")[(! 6d! ,!)[8(! Network_ SuspendInd (nsrArg))][(!X!"fR R!"RR )[8(! 6k9! false)][)v"()]]]]]]][9(! 6~! )[8(! /* Note: When the CS with the controlling leg joined is exported, the statusG(!^X^!"^^X)[q!(! 6! d!)[8(!' NetworkResume_ ReqInd (nsrArg,,legID))][!(!^^ !"^ ^r)[ t!(! 6 ! d)[8(! call IsCS(Sender))][ !(!R&R!"&RR)[w!(! 6& !)[8(!% Is the signal incoming or outgoing?)]]][s!(!^^!"^^)[8(! 6w! No /* Incoming */)][6!(! 6! ,)[8(!% csID := call GetLegLocation (legID))][!(!^^t!"^^)[!(! 6! ,!)[8(!' NetworkResume_ ReqInd (nsrArg,,legID))][1!(!"- - &!"&-)[7!u(! 6&!)[8(! to call GetCSPtr (csID))]]][!(!^x^!"^^x)[(! 6^!Z)][3!(! 6! d)[8(! -)]z)[ (! 6! d)[8(! call IsCS(Sender))][ (!!")[(! 6!)[8(!% Is the signal incoming or outgoing?)]]][[OCESSING OF IN CS-2 CS-OPERATIONS. ****/)]][3x(! 6d! d)[8(! OneSegment, MultiSegment)][(!&!"&)[{(! 6d&! d!X]]]]]]]][#(!,R!"R,)[8(! 6! true)][%#(! 6XR! d)[8(! DisconnectControlling_ Leg)][#(!"-s Is SelectRoute applied on an existing leg or does SelectRoute implicitly create a new passive leg?)]]][(!",,&&!"&,)[8(! 6? ! No)][%(! 6]]]]]][!(!"^^!"^)[8(! 6! Yes /* Outgoing */)][!(! 6L! ,!)[8(!' NetworkResume_ ReqInd (nsrArg,,lw!"^)[(! 6! ,!)[8(! ScriptClose (SCArg))][J(!&X!"X&)[6#(! 6X! }13(! l! 22!(17)[ (! l)[# (! 628)[& (! 6d! )]][ ) (! 6 )][9 (! 6 e:mmpen  ,)[8(! csID := SCArg!csID)][S(! !" )[2(! 6 ! ,!)[8(! ScriptClose (SCArg))][1\(!"@kYk()[(! l! 22!(P)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6,! d)[8(! *)][X)[8(! 6-! No)][%)$(! 6~! ,)[8(! SetLegLocation (legID,csID))][ h$(!"!")[,$(! 6!WNDLING OF CALL RELEASE ****/)]][3(! 6R,! d)[8(! MultiSegment)][(!!")[(! 6R! d!)[8(! Ch(! 6X&! ,!)[8(! Entity_ Released (,erArg))][(!!")[(! 6X! ,!)[8(! EntityReleas()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6! )[8(!$ /* Note:5()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9 (! 6! )[8(!& /**** HA)[8(! 6!% receiverRef /* Direction T -> O. */)][6\(! 6L! d)[8(!% csID := call GetLegLocation (legID))][(!!"c()[(! l! 22!(6)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3#(! 6d! d)[8(! MultiSegC()[(! l! 22!(E)[!(! l)[!(! 6)[ !(! 6d! )]][ #!(! 6)][3n!(! 6! d)[8(! *)][!q6! Yes)][ @(! 6LR! d)[8(! numOfAppls)][(!L!"L)[8(! 6! 1)][C(! 6! d!)[8(!' Application_ End(termination,) via IH)][(!~!"~)[6F(! 6! d)[8(! numOfAppls:= numOfAppls-1)][(!"-,-,F!",F)[(! 6 -!)][)7()]]]]]][(!"!")[8(! 6! >1)][(! 6!)][)F()]][(!*L  -,-,F!",FL)[8(! 6RR! 0)][(! 6 !)][)7()]]]][(!R!"R)[8(! 6! No)][I(! 6FR! ,!)[8(!H ApplicationEnd (termination,) to call GetCSPtr(initial_ CallSegmentID))][(!"-,-,F!",F)[(! 6-!)][)7()]]]]]]]]]]]})[8(!H ApplicationEnd (termination,) to call GetCSPtr(initial_ CallSegment][ (!X!"X)[4 (! 6RX! d)[8(! )]]]]]]}()]]]]]]]]]]]})[8(!H ApplicationEnd (termination,) to call GetCSPtr(initial_ CallSegment2 (!X!"3X)[4 (! 6RX! d)[8(! )]]]]]]}()]]]]]]]]]]]})[8(!H ApplicationEnd tion,) tetCSPtr(lSegment! ,)[8(!* SetLegLocation (SRArg!legID, SRArg!csID))][ (!" !" )[(! 6 !)[8(!4 The passive leg LegId is r!)[8(!3 NetworkResumeInd (nsrArg) to call GetCSPtr (csID))][ (!"!")[(! 6!)][)()]]]]]]]][(!"Z /* Pass DisconnectLeg on to the call segment for further processing. */)]]][(!F!"F)[(! 6F!Z)][3(! 6dF! d)[8(! -)]x][w(! !" )[8(! 6R! No /* Incoming */)][ !(! 6! d)[8(! callFlag)][!(!L!"LNG OF INAP OPERATIONS FROM SSF TO SCF. */)]][3(! 6! d)[8(! * (Null))][ (!,,&!",&,)[ (! 6&! ,!)[8R! d)[8(!. legID := aiArg! legToBeCreated!sendingSideID)][J$(!!")[ $(! 62! ,)[8(! callSegmentIDPresent (aiArg))][!X~!"~X)[8(! 63! Yes)][)5$()]]]]]]]}()]]]]]]]}may attempt to arm events for legs that does not yet exist. Such RRBEs must therefore be queued until the correspondin{(! 6! d)[8(! call IsCS (sender))][(! !" )[8(! 6! Yes)][ (! 6R ! d)[8(! L~)[!(! 6X!! )[8(! For IN CS-2 the SCF may attempt to arm events for legs that does not yet exist. Such RRBEs must therefore be queued until the corresponding leg is creat*(! 62X! ,)[8(! csID := EMArg!csID)][M(! !" )[&(! 62 ! ,!)[8(! EraseMessage (EMArg))][1V(!()[(! l! 22!(`)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6! )[8(!3 /* ROUTI)[%(! 6RX! d)[8(! RemoveCS (csID))][(!!")[ (! 6 ! ,)[8(! call noOfSegments)][ (!"UTING OF IN CS-2 OPERATIONS FROM THE SCF TO A CALL SEGMENT. ****/)]][3!(! 6! d)[8(! * (Null))]["(!^^&!"^&^)[!(! 6&! degID. - the SSF-FSM in state WFI - the call is not SCF initiated (False parameter))]]][#(!ee!"e)[8(! 63~! Failed)][(! 6e!",legID))][1(!"F__~x~!"x~F)[7(! 6xL!)[8(! via IH)]]][(!",,!",VUTSI (,rutsiArg) via IH)][!(!"~~,,!",~)[(! 6!)][)()]]]]]]]]]}6-! >1)][(! 6!Z)][3(!x)[(! 6x@!Z)][3u#(! 6@! d)[8(! Multi_ Segment)]]]]]]]]]]][#(!!")[8(! 63 ! F3~!"~)[$(! 6~! ,!)[8(! SelectRoute (invokeID,,srArg))][1$(!"!")[78F!"F)[8(! 6 ! Yes)][(! 6F!Z)][)()]]]]]]]]]}!7 ProcessQueued_ RRBE(CoArg!legID, CoArg!CallSegmentID))][ (!"d)[8(! SR)][$(!!")[ $(! 6! ,)[8(! call ExistLeg (legID))][ $(!"  !" )[$(! 6!)[8(!R Is SR applied on an existing leg or does SR implicitly create a new passive leg?)]]][$(!"Xqq!"X)Y(! 6! d)[8(! call NoOfSegments)][ (!FF!"FF)[(! 6!)[8(!" How many call segments are left?)]]][()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6! d)[8(! OneSegme TSuspended (TSArg))][(!X!"X)[(! 6! ,!)[8(! TSuspended (TSArg))][1(!"@YYr!"r (! 12!!3)[! (! 13!!3)[!(! 14!!3)[!(! 15!!3)[!(! 16!!3)]]]]]]]]]]]]]]]]} 17!!3ed (,erArg) via IH)][ (!",,!",)[(! 6,!)][)()]]]]]][!(!",, ~ ~&!"~&, ImportLeg (slArg!legToBe_ Split!sendingSideID,leg,slArg! newCallSegment))][ #(!F@F!"@FF)[o#(! 6@!)[8(!5 Import the leg into the newly created call seg[(!R!"R)[8(! 6 ! true)][%(! 6R! d)[8(! Export_ Controlling_ Leg)][(!"RRxx)[ W#(! 6! ,)[8(!3 call ExistLeg (slArg! legToBeSplit!sendingSideID))][ ~#(!"''@!"@)[Z#(! 6@!)[8(!! Does the leg to be split exist?)]]][#(!xRx!"xxR)[8(! 6k! Yes)][6]#(! 6! d)[8(!; leg := call ExS) via IH)][ "(!!")["(! 6~!)[8(! Return the call segment to IH.)]]]["(!RR!"RR)[ (!"RxR&&!"&Rx)[8(! 6?! 1)][(! 6&!Z)][3(! 6! d)[8(! One_ Segment)]]][(!"n)[(! 6^!)][)!()]]]]]]]]]]]}]}x~F)[7(! 6xL!)[8(! via IH)]]][(!",,!",B~8leg is created (on Connect etc.).)]]][T(9^^ !"^ ^)[%Q(! 6 ! ,)[8(! ProcessRRBE (rrbcsmeArg))][ (!"$J?kR!"@)[7(! 6r!)[8(! via IH)]]][(!" 99R!"R )[(! 6R9!)][)s()]]]]]]]]]}sociation :$()[(! l! 22!(7)[}$(! l)[$(! 6)[$(! 6d! )]][ $(! 6 )][3$(! 6d! d)[8(! OneSegme ()[(! l! 22!(d)[v(! l)[y(! 6)[|(! 6d! )]][ (! 6)][9(! 6X! )[8(!' /**** DE,]]]]]]][(!",,L!"L,)[8(! 6 ! Yes /* Outgoing */)][(! 6L! ,!)[8(!( NetworkSuspend_ ReqInd (nsrArg,()[(! l! 22!(d)[#(! l)[#(! 6)[#(! 6d! )]][ #(! 6 )][3$(! 6d! d)[8(! OneSegme6!)[8(!. Import the leg into the target call segment.)]]][#(!~!"~)[#(! 6d! d!)[8(!! MoveLegResult (invo) Does the leg exist?)]]][#(!R!"R)[8(! 6k! Yes)][6#(! 6d! d)[8(!9 Leg := call ExportLeg (mlArg!legIDToMove!sendingSide> 6! d)[8(! Multi_ Segment)]]]]]]]]]]]]}(!"!")[8(! 6-! >1)][(! 6!Z)][3(!M()[(! l! 22!(d)[ (! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6X! )[8(!4 /**** RE 6! d)[8(! -)]]]]]]]]][(!^^F!"^F^)[8(! 6 ! Yes)][)()]]]]]]]]]} Connnect (CoArg))][1(!xx!" &)[ $(! 62X! ,)[8(! legToBeCreatedPresent (srArg))][$(!R!"R)[8(! 6! true)][6$(! 6dR! ()[(! l! 22!(d)[9 (! l)[< (! 6)[? (! 6d! )]][ B (! 6)][3E (! 6d! d)[8(! OneSegmeD"^kwkwRR!"R^k)[7)(! 6 !)[8(! to call GetCSPtr (csID))]]][_(!!")[(! 6!Z)][38(! 6d! d)[8(! -)]]]]]]]]][>(!"^w w !" ^)[(! 6! ,!)[8(!% d)[8(!. legID := srArg! legToBeCreated!sendingSideID)][$(!!")[ $(! 62! ,)[8(! callSegmentIDPresent (srArg))][$X)[8(! 6-! No)][%Z (! 6~! ,)[8(! SetLegLocation (legID,csID))][ (!"!")[] (! 6!)[8(!4 The leg to be created will reside in segment csID.)]]][ (!R!"R)[%f (! 6~! ,)[8(!! ProcessQueued_ RRBE(legID,csID))][ (!"!")[i (! 6!)[8(!R Pass queued RRBEs for the new leg on to the call segment for further processing.)]]][ (!"33~!"~)[(! 63!)][o (! 6~! ,!)[8(! Connnect (invokeID,,coArg))][1 (!"!")[7r (! 6~!)[8(! to call GetCSPtr (csID))]]][ (!F!"F)[(! 6F!Z)][3{ (! 6F! d)[8(! -)]]]]]]]]][ (!X~!"~X)[8(! 63! Yes)][)o ()]]]]]]]}! ,!)[8(! SendSTUI)[y"(! 6!)[8(! Export the call segment.)]]]["(!RLR~!"R~RL)[|"(! 6~! d!)[8(! Export_ CSResp(expC)][)()]]]]]]]]]]]}S)[7(! 6!)[8(! to call GetCSPtr (csID))]]][(!"  !" )[(! 6!$ numOfAppls)][(!RRR!"RR)[8(! 6k! 1)][(! 6! d!)[8(! Application_ Abort via IH)][(![ #(! 62! ,)[8(!2 call ExistLeg (mlArg! legIDToMove!sendingSideID))][ #(!"^!"^)[#(! 6!)[8(!()[(! l! 22!(d)[}(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6,! d)[8(! Multi_ SOCESSING OF ATOMIC OPERATIONS USED BY THE IH. ****/)]][3(! 6,! d)[8(! Null)][(!&X!"X&)[(! 6,X! d!)[8 !)[8(!+ ContinueWithArgument (invokeID,, ctwaArg))][ "(!^^!"^^)[6"(! 6! d)[8(!; csID := call GetLegLocation (ctwaArg!legID!sendingSideID))]["(!^ ^R!"^R^ )[!(! 6R! d!)[8(!+ ContinueWithArgument (invokeID,, ctwaArg))][1"(!!"egID - the SSF-FSM in state Idle - the call is SCF initiated (True parameter))]]][.(!F!"F)[8(! 6! Failed)][(! 6!)][ to call GetCSPtr (csID))]]][(!!")[(! 6!Z)][3(! 6d! d)[8(! -)]]]]]]]]][(!"F_ J 6L!Z)][)()]]]]]]]]]]]}F!",F)[(! 6-!)][)7()]]]]]]]]]]]})[8(!H ApplicationEnd (termination,) to call GetCSPtr(initial_ CallSegment4(!" DisconnectLeg_ Result (invokeID))][ (!,,!",,)[ (! 6! ,!)[8(!) DisconnectLeg_ Result (invokeID) via IH)][ (!,11ent)][(!RR!"12RR)[(! 62! d!)[8(!3ExportCSReq (csID,legs))][ (! !YRrR!"rR@k)[75(! 6r !)[8(! to call GetCSPtr (csID))]]][e(!"!")[(! 6 d)[8(! CO)][ (!!")[ Q (! 6! ,)[8(! call ExistLeg (legID))][ (!"  !"c()[(! l! 22!(4)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6! )[8(!< /**** EXX!"X)[(! 6X!)[8(!= Import the call segment and assign it the id CallSegmentID.)]]][(!!")[G][9(! 6! )[8(!d DCL /* Signalling control primitive parameters. */ nsrArg NetworkSRType, udArg UserDataType;)]][9(! 6L! )[8(! DCL rrbeQueue RRBEQueueType,^ PromptAnd_ ReceiveMessage (PARMArg))][G(! & X!" X &)[6 (! 6X! ,)[8(!- csID := call GetLegLocation (PARMArg!legID))][P(!   !"   )[,(! 6 ! ,!)[8(!% PromptAnd_ ReceiveMessage (PARMArg))][1Y(!"kkRR!"Rk)[7/(! 7xR!"xRFR)[7(! 6x !)[8(!) to call GetCSPtr (initialCallSegmentID))]]][(!"LL!"L)[(!D,, dfcwaArg))][ "(!RR!"RR)[ ("(! 6! d)[8(!+ legIDPresent (dfcwaArg!partyToDisconnect))][+"(!R RR!"RRa)[8(! csID := ScRArg!csID)][(!  !"  )[(! 6! ,!)[8(! ScriptRun (ScRArg))][1(!"SS:MportLeg (slArg! legToBeSplit!sendingSideID))][ #(!@!"@)[`#(! 6@!)[8(!A Export the leg from the segment where it is currently residing.)]]][#g8(! csID := initial_ CallSegmentID)][ (!"F__!"F)[)~ ()]]]]]]]][ (!^R!"R^)[8S()[(! l! 22!(I)[t(! l)[w(! 6)[z(! 6d! )]][ }(! 6)][9(! 6! )[8(!K /**** RO)[7!(! 6R!)[8(! to call GetCSPtr (csID))]]]["(!^^~!"^~^)[(! 6^~!Z)][3"(! 6~!  ,!)[8(! Network_ SuspendReq (nsrArg))][(!@r!"r@)[.(! 6dr! ,!)[8(!% Network_ SuspendReq (nsrArg) via IH#6RX! d)[8(! )]]]]]]]]}6! d!)[8(! NetworkResumeReq (NRArg))][1m(!x!"x)[7@(! 6!)[8:!)][)8()]]]]]]]]][3h(! 6d! d)[8(! * (Null))][(!Fx!"xF)[k(! 62x! ,!)[8(!F~)[(! 6F!Z)][3(! 6! d)[8(! Multi_ Segment)]]]]]]]]]]]]]]} Respons back to IH that the import is done.)]]][V(!F~F!"Ft_ CSResp via IH)][ S(!LL!"LL)[(! 6!)[8(!- Respons back to IH that the import is done.)]]][V(!F~F!"F!)[8(!* InitiateCall_ Attempt (invokeID,,icaArg))][ (!X~X!"~XXX)[(! 6~&!)[8(! From SCF.)]]][(!4()[(! l! 22!(d)[(! 6! ll)[(! 6)[(! 6,! )]][ (! 6)][A(!2!!)[(! 69d! IH)][`(! )][.(! )[8(! 62! (CSA2_Out))]][(! 62!)][.(! )[8(! 6! (CSA2_In))]][(! 6!Z)]][A(!4!!)[(! 6kf! CS)][`(! )][.(! )[8(! 6! (CS2_In))]][(! 6!Z)][.(! )[8(! 6M! (CS2_Out))]][(! 64!)]][9o(! 6&! )[8(!# /**** DATA TYPE DEFINITIONS ****/)]][9r(! 6! I()[(! l! 22!(d)[u(! l)[x(! 6)[{(! 6d! )]][ ~(! 6)][A(! !)[(! 6G ! ExpCS)][`(! )][.(! )[8(! 63y ! (CS2_In))]][(! 6 !Z)][.(! )[8(! 63 ! (CS2_Out))]][(! 6!;(! 6~!)[8(! Does the leg already exist?)]]]["(!R!"R)[8(! 6k! No)][ (! 6! ,)[8(!' call ExistCS (icaArg! newCallSegment))][ %(!"ee~!"~)[(! 6~!)[8(!& Does the call segment already exist?)]]][((!L!"L)[8(! 63! False)][ (! 6L! )[8(!A call AddCS (icaArg!newCallSegment, controllingLegID, idle,true))][ O(!L~!"tLegLocation (icaArg!legToBe_ Created!sendingSideID,icaArg! newCallSegment))][ 4(!~!"~)[ (! 6~x!)[8(!5 The new passive leg is residing in the new seg~L)[L(! 6~~!)[8(! Create the new call segment with: - the CallSegmentID set to the CallSegmentID in InitiateCallAttempt - the id of the controlling leg set to ControllingL,&)[ (! 6X! ,)[8(! call ExistLeg (SRArg!legID))][ (!" !" )[(! 6 X!)[8(!dy)[8(! Failed2)]]][(!R!"R)[8(! 6k! False)][%(! 6,! d)[8(! ImportCS (expCS, csID))][ (!L!"L)[6(! 6L! d)[8(! numOfAppls:= numOfAppls-1)][(!"LL!"L)[(! 6L& )[&$(! 6!)[8(!R Is AI applied on an existing leg or does AI implicitly create a new passive leg?)]]][e$(!"Xqq!"nt, MultiSegment)][>$(!^!"^)[$(! 62! ,!)[8(!0 redefined AnalyseInformation (invokeID,,aiArg))][ A$(!"^ww!"^)[$(! 6!)[8(!b The semantics of the AI operation is changed in IN CS-2. This transition is therefore redefined.)]]][D$(!&X!"X&)[ $(! 62X! ,)[8(! legToBeCreatedPresent (aiArg))][G$(!R!"R)[8(! 6! true)][6$(! 6d,!",,)[(! 6,!Z)][3(! 6! d)[8(! -)]]]]]]][(!",,  &!"&,)[Yr!"rL@)[(! 6Y!)][)e()]]]]]]]]]]]}xL!)[8(! via IH)]]][(!",,!",v)[}(! 62! ,!)[8(! Script_ Information (SIArg))][1(!"^SwSw::!":^S)[7(! 6!)[8(!(! 6F! ,)[8(! Failed2)]]][1(!x!"x)[8(! 6-! Successful)][%(! 6 x! d)[8(!O Se!"R)[(! 6R!)][6v"(! 6! d)[8(!$ expCS := call ExportCS (csID,legs))][ "(!!"()[(! l! 22!(E)[>(! l)[A(! 6)[D(! 6d! )]][ G(! 6)][3J(! 6^! d)[8(! *)][nOM$(!~!"~)[8(! 6! true)][6$(! 6d! d)[8(! csID := aiArg! callSegmentID)][P$(!F!"_ Script_ Information (SIArg))][(!@!"@)[6t(! 62@! ,)[8(! csID := SIArg!csID)][(!!"d)[8(! Multi_ Segment)]]]]]]]]]]][@(!F!"F)[8(! 6! True)][(! 6!)][)()]]]][C(!egID))][1!(!"x--!"x-)[7!(! 6!)[8(! via IH)]]][!(!"x^^!"^x()[(! l! 22!(d)[ (! l)[ (! 6)[ (! 6d! )]][  (! 6)][ (! 6 ^! ,)[8(! Failed2)nt)][f(!^&^X!"^X^&)[Z(! 6X! d!)[8(!) redefined ReleaseCall (invokeID,,rcArg))][{(!^^!"^#Rk^k^!"^R)[(! 6^k!)][)c()]]]]]]]]]}}sing if the leg exist. - queues the RRBE if the leg does not exist.)]]][!(!"Rk^k^(!LL!"LL)[(! 6! d!)[8(! redefined Application_ Abort)][(!LXL!"LLX)[ [(! 6!)[8(! From IH.)]]][(!R&RX!"RXR&)[ (! 6X! )[8(!1 (call GetLegLocation (controllingLegID)) = csID)]egment)][(!RR!"RR)[(! 6! d!)[8(! ExportCSReq (csID,legs))][ (!!"))[8(! DataReq (udArg) via IH)][;(!"!!:!":)[(! 6X!!)][)1()]]]]]]]]]}onEnd (termination,) to call GetCSPtr(initial_ CallSegment~R)[8(! 6! false)][6."(! 6R! d)[8(!5 csID := dfcwaArg!party_ ToDisconnect! callSegmentID)][4"(!"~~RR!"R33~!"~)[5$(! 6~! ,!)[8(!& AnalyseInformation (invokeID,,aiArg))][1t$(!"!" OneSegment, MultiSegment)][x#(!xx&!"x&x)[T#(! 6&! d!)[8(! SplitLeg (invokeID,,slArg))][{#(!xx!"nt, MultiSegment)][$(!^!"^)[$(! 62! ,!)[8(!) redefined SelectRoute (invokeID,,srArg))][ $(!"^wweCall (invokeID,,rcArg))][(!"^^!"^)[(! 6^!)][)x()]]]]][3!(! 6! d)[8(! OneSegment, MultiSeg)!"^)[8(! 6 ! No)][(! 6!Z)][#(! 6! d)[8(! Failed2)]]]]]]]][3Q#(! 6! d)[8(! 8(!) DataReqInd (udArg,csaID,legID,callFlag))][1(!"!")[7k(! 6!)[8(! via IH)]]][(!"L@LY)[78$(! 6~!)[8(! to call GetCSPtr (csID))]]][w$(!F!"F)[3;$(! 6F! d)[8(! -)]]]]]]]]][z$(esiding in segment CSId.)]]][(!&&L!"&L&)[%(! 6L! ,)[8(!. ProcessQueued_ RRBE(SRArg!legID, SRArg!csID))][ (!"~ ~!" ~)[(! 6 L!)[8(!R Pass queued RRBEs for the new leg on to the call segment for further processing.)]]][(!"&&,,F!",F&)[(! 6,!)][(! 6F! d!)[8(! SelectRoute (SRArg))][1(!xx!"xx)[7(! 6F!)[8(! to call GetCSPtr (SRArg!csID))]]][(!,,!",,)[(! 6,!Z)][3(! 6! d)[8(! -)]]]]]]]]][(!,,F!",F,)[8(! 6 ! Yes)][)()]]]]]]]]]}!Z)][3(! 6! d)[8(! -)]]]]]]]]][(!,(!$ Network_ ResumeReq (nsrArg) via IH)][p(!"XX!!:!":X)[(! 6!!)][)1()]]]]]][2(!"x!"a(! 6 ! false)][6$(! 6R! d)[8(! legID := leg2)][\$(!"!")[)$()]]]]]]]]][ $(! 6,! r)[8(! Does the call segment exist?)]]][(!,  !", )[8(! 69! True)][(! 6!Z)][ (! 62! d()[(! l! 22!(d)[J(! l)[M(! 6)[P(! 6d! )]][ S(! 6)][3V(! 6! d)[8(! OneSegme* is done.)]]][(!~!"~)[(! 6!Z)][3(! 6,! d)[8(! One_ Segment)]]]]]]]]]]]][3(! 6! d )[8(! 6E9! Yes)][ .(! 6! d)[8(! numOfAppls)][m(!,,!",,)[8(! 6E! 0)][1(! 6n~)[(! 6R!)][)!()]]]]]]]]][3(! 6x! d)[8(! * (Null))][(!^^!"^^)[(! 6?DEFINITION OF THE DIALOGUE HANDLING. ****/)]][3%(! 6! d)[8(! *)][d(!,,&!",&,)[((! 6&! d!)[8(!)[8(! OneSegment, MultiSegment)][;(!F&FX!"FXF&)[(! 6X! d!)[8(! Import_ CSReq (csID, expCS))][ >(! !"x)[(! 6X!)[8(!C From IH when processing the IN CS-2 MoveCall_ Segments operation.)]]][A(!FF!"FF)[ !(! 6! d)[8(! call ExistCS (csID))][ D(!  !"  )[(! 6!)[8(! Does the call segment exist?)]]][G(!" L L!"L )[8(! 6e9! True)][(! 6L!Z)][(! 6! d)[8(! Failed2)]]][J(!FRF!")][[(!:!":)[(! 6:!Z)][31(! 6:! d)[8(! -)]]]]]]][a(!"xXX!"XN(!^^!"^^)[(! 6^!Z)][3*(! 6! d)[8(! -)]]]]]]]]]]} - queues the RRBE if the leg does not exist.)]]][W(!][)()]]]][(! !" )[8(! 6! No)][(! 6~ ! d!)[8(! Application_ Abort)][1(!FR!)][3(! 6! d)[8(! -)]]]]]]][(!"33L!"L)[8(! 6! >1)][(! 63!)%(! 6R! d)[8(! One_ Segment)]]][(!"!")[8(! 6-! >1)][(! 6!Z)][3(!o call GetCSPtr(csID))][&(!"!")[(! 6!)][)()]]]]]]]]][3"(! 6! d)[8(! *)][ (!dkeID) via IH)][#(!F!"F)[(! 6F!Z)][3#(! 6dF! d)[8(! Multi_ Segment)]]]]]]]]][#(!^nt, MultiSegment)][z(!,^,!",,^)[Y(! 6! ,!)[8(!( redefined Analyse_ Information (AIArg))][ }(!" +!" ^)[\(! 6 !)[8(!r The semantics of the AnalyseInformation operation is changed in IN CS-2. This transition is therefore redefined.)]]][(!,&,X!",,X,&)[ _(! 6X! ,)[8(! call ExistLeg (AIArg!legID))][ (!" !" )[b(! 6 X!)[-8(!r Is AnalyseInformation applied on an existing leg or does AnalyseInformation implicitly create a new passive leg?)]]][(!",,&&!"&,)[8(! 6? !. No)][%e(! 6! ,)[8(!* SetLegLocation (AIArg!legID, AIArg!csID))][ (!" !" )[h(! 6 !)[8(!4/ The passive leg LegId is residing in segment CSId.)]]][(!&&L!"&L&)[%k(! 6L! ,)[8(!. ProcessQueued_ RRBE(AIArg!legID, AIArg!csID))][ (!"0~ ~!" ~)[n(! 6 L!)[8(!R Pass queued RRBEs for the new leg on to the call segment for further processing.)]]][(!"&&,1,F!",F&)[(! 6,!)][q(! 6F! d!)[8(! Analyse_ Information (AIArg))][1(!xx!"x2x)[7t(! 6F!)[8(! to call GetCSPtr (AIArg!csID))]]][(!,,!",,)[(! 6,!Z)][3w(! 6! 3d)[8(! -)]]]]]]]]][(!,,F!",F,)[8(! 6 ! Yes)][)q()]]]]]]]]]}---------------------------------------------------------------------------------()[w(!GSDL)]}]][3(! 6! d)[8(! Multi_ Segment)][(!^^^!"^^^)[(! 6! ,!)[8(! C Same as previous page. */)]][3(! 6^! d)[8(! MultiSegment)][(!,,!",,)[(! 6! ,!)[8(! Ana6lyse_ Information (AIArg))][ (!"??& &!" &^??)[(! 6 !)[8(!r The semantics of the AnalyseInformation operation is changed in IN CS-2. This tr7ansition is therefore redefined.)]]][(!,,!",,)[ (! 6! ,)[8(! call ExistLeg (AIArg!legID))][ (!" !"8 )[(! 6 !)[8(!r Is AnalyseInformation applied on an existing leg or does AnalyseInformation implicitly create a new passive leg?)]]][(!",R,k&k&9!"&,R)[8(! 6?! No)][%(! 6! ,)[8(!* SetLegLocation (AIArg!legID, AIArg!csID))][ (!"33 !" :3)[(! 6 !)[8(!4 The passive leg LegId is residing in segment CSId.)]]][(!&~&!"&&~)[%(! 6! ,)[8;(!. ProcessQueued_ RRBE(AIArg!legID, AIArg!csID))][ (!" !" )[(! 6 !)[8(!R Pass queued RRBEs for the new leg on to the c)[(! 6,@!Z)][3(! 6@! d)[8(! -)]]]]]]]]][(!,R,!",,R)[8(! 6! Yes)][)()]]]]]]]]]}----! d!)[8(!+ RequestReport_ UTSI (invokeID,,rrutsiArg))][(!^r^!"^^r)[6(! 6! d)[8(!= csID := call GetLegLocatio@n (rrutsiArg!legID!sendingSideID))][(!^^:!"^:^)[(! 6:! d!)[8(!+ RequestReport_ UTSI (invokeID,,rrutsiArg))][1(!lAl!"ll)[7(! 6:!)[8(! to call GetCSPtr (csID))]]][(!^^!"^^)[(! 6^!Z)][3B(! 6! d)[8(! -)]]]]]]]]][(!"^^!"^)[(! 6 ! d!)[8(! SendSTUI (invokeID,,sstuiArg))C][(!r!"r)[6(! 6 ! d)[8(!< csID := call GetLegLocation (sstuiArg!legID!sendingSideID))][(!:!":D)[(! 6 :! d!)[8(! SendSTUI (invokeID,,sstuiArg))][1(!ll!"ll)[7(! 6:!)[8(! to CS.)]]]["(! R!"R )["(! 6R! d!)[8(!, MergeCallSegments_ Result(invokeID) via IH)]["(!!"oNo)][(! 6!Z)][)i#()]]]]]]]]]}6@! d)[8(! Multi_ Segment)]]]]]]]]]]][#(!!")[8(! 63 ! C of the controlling leg in all other CSs must be set to surrogate. This is done by the ExportControllingLeg procedure. */)]]]]},! d)[8(! CI)][6 (!LL!"LL)[ )[8(! csID := initial_ CallSegmentID)][V$(!"F__!"F)[)$()]]]]]]]][Y$(!^R!"R^)[8)[8(! /* For IN CS-2 the CSA must maintain a queue of RRBEs for arming of events of legs that does not yet exist. */ NEWTYPE RRBEQueueSeq STRUCT Q Boolean; RRBE BCSMEvent; ENDNEWTYPE; NEWTYPE RRBEQueueType ARRAY(LegType,RRBEQ@()[(! l! 22!(6)[l(! l)[o(! 6)[r(! 6d! )]][ u(! 6)][9(! 6d! )[8(!2 /**** PRw Same as previous page. */)]][3U(! 6^! d)[8(! MultiSegment)][y(!,,!",,)[X(! 6! ,!)[8(! ColLlect_ Information (CIArg))][ |(!"??& &!" &^??)[[(! 6 !)[8(!r The semantics of the CollectInformation operation is changed in IN CS-2. This trMansition is therefore redefined.)]]][(!,,!",,)[ ^(! 6! ,)[8(! call ExistLeg (CIArg!legID))][ (!" !"N )[a(! 6 !)[8(!r Is CollectInformation applied on an existing leg or does CollectInformation implicitly create a new passive leg?)]]][(!",R,k&k&O!"&,R)[8(! 6?! No)][%d(! 6! ,)[8(!* SetLegLocation (CIArg!legID, CIArg!csID))][ (!"33 !" P3)[g(! 6 !)[8(!4 The passive leg LegId is residing in segment CSId.)]]][(!&~&!"&&~)[%j(! 6! ,)[8Q(!. ProcessQueued_ RRBE(CIArg!legID, CIArg!csID))][ (!" !" )[m(! 6 !)[8(!R Pass queued RRBEs for the new leg on to the cRall segment for further processing.)]]][(!"&F&_,_,!",&F)[(! 6,_!)][p(! 6! d!)[8(! Collect_ InfoSrmation (CIArg))][1(!!")[7s(! 6!)[8(! to call GetCSPtr (CIArg!csID))]]][(!,,@!",@,T)[(! 6,@!Z)][3v(! 6@! d)[8(! -)]]]]]]]]][(!,R,!",,R)[8(! 6! Yes)][)p()]]]]]]]]]}----eUTING OF SIGNALLING CONTROL PRIMITIVES TO/FROM SIGCON. ****/)]][3(! 6,! d)[8(! *)][ (!^^^!"^^^)[(! 6,!)[8(!o)[(! 6,!)][)()]]]]]]]]]]]}x~F)[7(! 6xL!)[8(! via IH)]]][(!",,!",D?nt, MultiSegment)][(!,,!",,)[(! 6! ,!)[8(!" redefined SelectFacility (SFArg))][ (!"   !"X ^  )[(! 6 !)[8(!n The semantics of the SelectFacility operation is changed in IN CS-2. This transition is therefore redefined.)]]][(!,X,!",Y,X)[ (! 6! ,)[8(! call ExistLeg (SFArg!legID))][ (!" !" )[(! 6 !)[8Z(!j Is SelectFacility applied on an existing leg or does SelectFacility implicitly create a new passive leg?)]]][(!", ,9&9&!"&, )[8(! 6?R! No)][%[(! 6! ,)[8(!* SetLegLocation (SFArg!legID, SFArg!csID))][ (!" !" )[(! 6 !)[8(!4 The passive le\g LegId is residing in segment CSId.)]]][(!&L&~!"&~&L)[%(! 6~! ,)[8(!. ProcessQueued_ RRBE(SFArg!legID, SFArg!csID))][ (!"] !" )[(! 6 ~!)[8(!R Pass queued RRBEs for the new leg on to the call segment for further processing.)]]][(!"&&-,-,x!"^,x&)[(! 6,-!)][(! 6x! d!)[8(! SelectFacility (SFArg))][1(!!")[7_(! 6x!)[8(! to call GetCSPtr (SFArg!csID))]]][(!,,!",,)[(! 6,!Z)][3(! 6! d)[8(!` -)]]]]]]]]][(!, ,x!",x, )[8(! 6R! Yes)][)()]]]]]]]]]}---------------------------------------------------------------------------------------------------------x)[/(! 6R! ,!)[8(! DataReq (udArg))][8(!@r!"r@)[5(! 6Rr! ,! )[8(! to call GetCSPtr (csID))]]]["(!"RLRe^e^~!"^~RL)[(! 6^e!)][)"()]]]]]][1"(!~~R!" )[_(! 6d! ,!)[8(!) DataReqInd (udArg,csaID,legID,callFlag))][1(!"!")[7b(! 6!)[8i)[8(!4 The leg to be created will reside in segment csID.)]]][$(!R!"R)[%$(! 6~! ,)[8(!! ProcessQueued_ RRBE(legID,csID))][ $()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6^! d)[8(! *)][X)[6(! 6d! ,)[8(!0 csID := call GetLegLocation (controllingLegID))][ (! R!"R )[(! 6dR! ,& )[!(! 6!! )[8(! ProcessRRBE: - passes RRBE on to the corresponding call segment for further processing if the leg exist. - queues the RRBE if the leg does not exist.)]]][!(!"SStop (csID))][ (!L!"L)[ (! 6L!)[8(!# Indication that a CS is released.)]]][(!&X!"X&(! to call GetCSPtr (csID))]]][(!@r!"r@)[(! 6r!Z)][3e(! 6r! d)[8(! -)]]]]]]][!(!^jL!"L^)[8(! 6!# senderRef /* Direction O -> T. */)][6!(! 6&L! d)[8(!4 newLegID := call GetLeg_ IdfromremoteLegId (legID))][!(!k!")[6!(! 6&! d)[8(!( csID := call GetLegLocation (newLegId))][!(!"F__!"F)[=!")[ (! 6,! d)[8(! call ExistCS (csID))][ (! X !"X  )[(! 6X!16! 6! d)[8(!4call IsCS (sender))][(!7 !" 7)[8(! 6! Yes)][  bp! d!)[8(! Application_ Begin via IH)][p(!,~,!",,~)[64(! 6! d)[8(! numOfAppls:= numOfAppls+1)][s(!+)[(! 6!Z)][3"(! 6! d)[8(! Multi_ Segment)]]]]]]]]]][9"(! 6! )[8(! /* Note: The removal of the source CS will be wheK5)][f(!^&^X!"6^X^&)[Z(! 68! d!)[8(!) r9efined ReleaseCall (invokeID,,rcArg))][{ $J)["(! 6&! d!)[8(!( MergeCall_ Segments (invokeID,,mcsArg))]["(!!")[%"(! 6! d)[8k d)[8(! AI)][_$(!!")[ #$(! 6! ,)[8(! call ExistLeg (legID))][ b$(!"  !"-F!"F)[(! 6-!)][)()]]]]]]]]][3"(! 6! d)[8(! Multi_ Segment)]["(!&!"&q/* Processing of IN CS-2 operations. */)]][$l(! 6dr! )[(! 6! Process_ RRBE)]][$#(! 6r! )[(! 6E! Disconnect_ Controlling_ Leg)]][$c(!`