------------------------SDT2 DCallSegment--------------------------------------------------------------------------------------------------------------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------1------------------------------------------------- CallSegmentewciation----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[8(!T Redefined Process Type <> CallSegment)]} CallSegment)]}}-------------------------------------------------------------------------------------------------------------------------------------j[(!"!")[(! 6X!)][)c()]]]]]][I7(!"  &!"&)[@7(! f)[8*(! 6x! d!)[8(! DataReq (udArg))][1D*(!@LrL!"rL@L)[7A*(! 6r!)[8(! to CSA)]](!4QG!5!7)[!(! 1!!3)[!(! 2!!3)[!(! 3!!3)[!(! 4!!3)[!(! 5!!3)[!D!%()PageOrder-------------------------------------16-----------------------------------------------10-----------------------------------------------10----------------------------------------------- gee!%()HeadingText-----------------------------------11-----------------------------------------------11-----------------------------------------------11----------------------------------------------- gs, the CS with the controlling leg joined is exported using the MoveCallSegments operation. */)]]]]}]]]]]]]]['(!r__!"r_)[8(! 6x! >0)][(! 6eStable_1_ _Party)]]][:(!F__!"F_)[8(! 6'x! >1)][(! 6!Z)][39(! 6! d)[8(! Transfer)]]]4)[4>(! 6! d)[8(! )]]]]]]]]]['(!r__!"r_)[8(! 6x! >0)][(! 6 Disconnect_ Leg (invokeID,,dlArg))]['8(!!")[ 8(! 6! ,)[8(!: dlArg! legToBeReleased! sendingSideID = ControllingLegID)][*8(!(!+ ContinueWithArgument (invokeID,, ctwaArg))][zB(!&X!"X&)[eB(! 6dX! d!)[8(!+ ContinueWithArgument (invokeID,, ctwaArg))][1B)]]]]]][A(!",,  !" ,)[A(! 6! d!)[8(! redefined DPMidCall (DP))][A(! X  !"  3()[(! l! 22!(o)[k<(! l)[n<(! 6)[q<(! 6d! )]][ t<(! 6)][9w<(! 6X! )[8(! /* In al>15ing-Setup -> Terminate call segment Originat16-Setup -> 1-Party Stable-2-Party -> Term2ate call segment Stable-2-Party -> 1-Party3Note: Processing of atomic operations used by the R (! 63! true)][ F(! 6! )[8(!3 call AddLeg (sfArg!legToBeCreated! sendingSideID))][ F(!"xx!"x)[F(! 6! 6!! )[8(!3 Set the status of the new passive leg to pending.)]]][mF(!F FR!"FRF )[4F(! 6R! d!)[8(!#L~L)[78(! 6!)[8(!2 to SSF /* Instruct the SSF-FSM to terminate. */)]]][>(!~!"~)[ >(! 6! ,)b(!L!"L)[(! 6L! d!)[8(! CSImport_ LegResp)][1'(!x~~!"~x~)[7'(! 69)[8(! 63! localParty)][6<(! 6! d)[8(! pic!party := remoteParty)][<(!Fx!"xF)[6<(! d()[(! l! 22!(d)[*(! l)[*(! 6)[*(! 6d! )]][ *(! 6)][3*(! 6d! d)[8(! *)][*(! 6L! d)[8(! 'Error situation')][]>(!!")[(! 6!Z)][3Z>(! 6! d)[8(! -)])[6E(! 6! ,)[8(!f obcsmPars!startState := analyseInformation, obcsmPars!legID := aiArg!legToBeCreated! sendingSideID)][E(!!"XRX!"XXR)[8(! 6qk! true)][%(! 6! d)[8(!) SetLegStatus (controllingLegID, joined))][(!XXL!"XL%()[(! l! 22!(x)[P!(! l)[S!(! 6)[V!(! 6d! )]][ Y!(! 6)][9'(! 6! )[8(!m /* Trans[F(!!")[ F(! 6^! d)[8(! O_BCSM (obcsmPars))][ F(!"&qq!"&)[Fre passive joined legs. It has to be determined if it was the pending leg or one of the joined legs that released. */)]]]]}(! /* Note: The Forward state is composed of one passive pending leg and one or mo]]]]]]]]]]]]]}rty)]]][:(!F__!"F_)[8(! 6'x! >1)][(! 6!Z)][39(! 6! d)[8(! Transfer)]]]ty -> Stable-2-Party 1-Party -> Null */)]][3D(! 6! d)[8(! 1_Party)][?D(!,&,X!",X,&)[D(! 6X! d!)[8))][ =(!F!"F)[=(! 6FX!)[8(!( From O-BCSM in the backward direction.)]]][=(!!")[  redefined DPAbandon (DP))][\(!,X,!",,X)[61(! 6! d)[8(! DP!Party := localParty)][1(!,, !", x! d!)[8(! CSExport_ LegResp (expLeg))][12'(!,^!"^,)[7/'(! 6^x!)[8(! to CSA)]]][(!@'call segment should filter these DataReqs and pass on only one DataReq to the signalling control. */)]][9SB(! 6L! )[8(! /* Note: DisconnectLeg does not change the connection state. It is the BCSMStop event (()[(! l! 22!(_)[J'(! l)[M'(! 6)[P'(! 6d! )]][ S'(! 6)][9'(! 6&! )[8(! /* On-Ho~x)[ f>(! 6dx! ,)[8(! Dialogue_ Active)][u>(!r!"r)[8(! 6'! true)][6aC(! 6r! dR)[8(! 6! 1)][(! 6!Z)][3((! 6! d)[8(! Stable_2_ _Party)]]][((!~~!"~)[834NG OF SIGNALLING CONTROL PRIMITIVES TO/FROM SIGC35 ****/)]][9=(! 6 ,! 36)[8(! /* Note: For IN CS-2, the si6lling control primitives from SigCon -> m4ANSITIONS BETWEEN THE CONNECTION STATES OF THE CALL SEGMENT. ****/ /* Note: The states of the call segment are defined in Q.1224. */)]][9#(! 6! )[8(!1 /**** REDEFINITIONS OF IN CS-1 OPERATIONS ****/)]][9&((! 6X! )[8(!$ /* Terminating-Setup -> Forward */)]][3$(! 6! ,)[8(! Terminating_ _Setup)][V$(!X XR!"XRX )[ $)(! 6R! d!)[8(!& redefined Connnect (invokeID,,coArg))][\$(!XX!"XX)[ &$(! 6! )[8(!3 call AddLeg (coP! d)[8(! Stable_Multi_ _Party)]]]]]]]]]]]]]]]]} -)]]]]]]]]]]]]}R@)[>(! 6!)[8(!4 Indicate to the CSA that this segment is released.)]]][>(!rP()[(! l! 22!(d)['(! l)[((! 6)[((! 6d! )]][ ((! 6)][9((! 6d! )[8(! /* Forwa-nating Setup -> Stable-2-Party Note: Processing of atomic operations used by the CSA. */)]][3B;(! 6! d)[8(! Terminating_ _Setup)][Z;(!  &!" & )[E;rd -> 1-Party-Setup Forward -> Forward Forward -> Stable-1-Party Forward -> Transfer Note: Processing of atomic operations used by the CSA. */)]][3 ((! 6 ! d)[8(! Forward)][.((!X! Terminating)][ 6(! 6L! d)[8(!( T_BCSM (waitMidCall, controllingLegID))][ 6(!FFF!"FFF)[6(! 6F!)[8( (! 6xX! d!)[8(! DataReq (udArg))][;*(!!")[ C(! 6x! d)[8(!& call GetLegStatus (controllingLegID))][d)[8(! -)]]]]]]][=(!" X X&!"X&)[=(! 6&! ,!)[8(! redefined FailureInd (fArg))][=(!X)[8(! CSExport_ LegResp (expLeg))][1'(!Fx!"xF)[7'(! 6x!)[8(! to CSA)]]][;(!F!"FUld -> Stable-2-Party On-Hold -> Stable-Multi-Party On-Hold -> On-Hold Note: Processing of atomic operations used by the CSA. */)]][3(! 6! d)[8(! On_Hold)][(!X&XX!"k!")[)(! 6! d!)[8(! Network_ Suspend_ Req(nsrArg))][1/*(!^LL!"L^L)[7,*(! 6!()[(! l! 22!(d)[k(! l)[n(! 6)[q(! 6d! )]][ t(! 6)][w(! 6,! d)[8(! Failed2)H Signalling control primitives from BCSMs -> SigCon are routed via the CSA. */)]][3)(! 6! d)[8(! * (Forward, Transfer))][)(!&X!"X&)[)()[(! l! 22!(P)[g=(! l)[j=(! 6)[m=(! 6d! )]][ p=(! 6)][9>(! 6! )[8(! /* Note:W TRANSITIONS FOR IN CS-2. ****/)]][9:%(! 6,! )[8(!m /* Stable-Multi-Party -> Transfer On-Hold -> Transfer Transfer -> Transfer */)]][9$(! 6X! )[88(! /* For the DisconnectLeg(p) operation, it is the BCSMStop event that removes the passive leg from the call segment. The Disconnect Leg operation is passed on to the SSF to allow the SSF to terminate the leg (BCSM) in a controlled way. The tra9nsitions occuring on the BCSM stop event (and specified at other pages) are: Stable-2-Party -> 1-Party Stable-Multi-Party -> Stable-2-Party Transfer -> Stable-1-Party Originating-Setup -> 1-Party */)]][3$(! 6  ! d)[8;ng or outgoing?)]]][+(! !" )[8(! 6R! No /* Incoming */)][ 1+(! 6d! ,)[8(! callFlag)][4+(!L!"@(!' Stable_Multi_Party, On_Hold, Transfer)][%(!!")[$(! 6 ! d!)[8(!# Disconnect_ Leg (invokeID,,dlArg))][ ?8(!<!")[<8(! 6!)[8(!4 DisconnectLeg is continued on the following pages.)]]][%(!L!"L)[ $(!w! ,)[8(!f obcsmPars!startState := analyseInformation, obcsmPars!legID := coArg!legToBeCreated! sendingSideID)][?(!XrX!"XXr)[ /$(! 6! A)[8(! 6_x! false)][>(! 6! d!)[8(! CSStop (callSegmentID) to CSA)][ >(!@@!"@@)[>(! 6!(! 6^! d!)[8(!" SelectFacility (invokeID,,sfArg))][F(!R!"R)[ *G(! 6,! ,)[8(!2 destinationNumberRoL)[8(! 6e! senderRef)][6*(! 6d! ,)[8(!4 newLegID := call GetLegIdFrom_ RemoteLegId (legID))]["+(!F!"d)[8(! O_BCSM (obcsmPars))][ h$(!"r r!" r)[2$(! 6 @!! )[8(! Create an instance of an O-BCSM: - starting6X! d)[8(! )]]]]]]]]}R)[z(! 6! d!)[8(! Errror to CSA)][(!R&RX!"RRXR&)[4(! 74!Z)][37(! 64! d)[8(! -)]]]]]]]]]]]]} should be sent on the controlling leg. */)]]]]})][)A()]]]]]]]]][9C(! 6R! )[8(! /* Note: Continueb(! 6!!3)[!(! 7!!3)[!(! 8!!3)[! (! 9!!3)[! (! 10!!3)[! (! 11!!3)[!qRR!"RR)[)(! 6! d!)[8(! Network_ ResumeReq (nsrArg))][1*(!LL!"LL)[7)(! 6H()[(! l! 22!(d)[<(! l)[<(! 6)[<(! 6d! )]][ <(! 6)][9<(! 6! )[8(! /* In th.LegID, surrogate))][8(!l!"l)[8(! 6! d!)[8(!" Disconnect_ Leg(invokeID,,dlArg))][18(!X!"!)[8(! to CSA)]]][*(!"R~R!"R~)[(! 6!)][))()]]]]]][C(!*  I!" )[8(! 6! shared, surrogate)][(! 6!)][))()]]]]]][5*(!"&??X!"X&)[2*/nating-Setup -> Terminate call segment Originating-Setup -> 1-Party Stable-2-Party -> Terminate call segment Stable-2-Party -> 1-Party Note: Processing of atomic operations used by the CSA. */)]][3^((! 6 ! ,-()[(! l! 22!(E)[&?(! l)[)?(! 6)[,?(! 6d! )]][ /?(! 6)][92?(! 6! )[8(!w /* Stabl433s in the connection point.)]][3T4 6! d)[8(! 7(1_Party))][Z(!&!"7&)[W(! uVa&II d)[8(! ImportLeg (expLeg,legId))][xD(!L!"L)[rD(! 6FL! d!)[8(! CSImport_ LegResp)][1{D(!~@!")[7<(! 6!)[8(! to call GetLegPtr(leg1))]]][<(!"&&3,3,L!",L&)[(! 6,3!(! 6R!)[8(! to CSA)]]][c;(!  !"  )[(! 6 !Z)][3`;(! 6! d)[8(! Stable_2_ _Party)Arg!legToBeCreated! sendingSideID))][ _$(! LRL!"RL L)[)$(! 6R!! )[8(! Add a new passive leg.)]]][b$(!LL!" From CSA process due to a MoveLeg, MergeCallSegments, SplitLeg(p) or Move- CallSegments operation from the SCF.)]]][t'(!X!"X)[6?(! 6! ,)[8(!" x)[8(! 6! true)][6yC(! 6^! d)[8(! bcsmStopped := true)][|C(!r!"r)[(! 6!Z)][3>(! |()[(! l! 22!(d)[((! l)[((! 6)[((! 6d! )]][ ((! 6)][9((! 6&! )[8(! /* Stabl()[(! l! 22!(<)[B(! l)[B(! 6)[B(! 6d! )]][ B(! 6)][9C(! 6! )[8(! /* Stabl)[ :(! 6LF! ,)[8(! call noOfLegs)][:(!L!"L)[8(! 6! 1)][(! 6!Z)][3:&()[(! l! 22!(`)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9#(! 6^d! )[8(! /**** TR'(!; From CSA process due to a MoveLeg operation from the SCF.)]]][(!XX!"XX)[ (! 6! d)[8(! legId = controllingLegID)][(! with the controlling leg joined is imported using the MoveCallSegments operation, then the MoveLeg operation is used to move the controlling leg in to this CS. */)]]]]}(! Stable_Multi_ _Party)]]]]]]]]]]]]}x!)[8(! to CSA)UTING OF IN CS-2 OPERATIONS TO/FROM THE SSF-FSM ****/)]][3VB(! 6d,! d)[8(! *)][tB(!!")[YB(! 6d! d!)[8 )[!(! 18!!3)[!(! 19!!3)[!(! 20!!3)[!(! 21!!3)[!(! 22!!3)[!(! 23!(! 6!!)][)0>()]]]]]]]]]}d)[8(! Originating_ _Setup)]]]]]]]]]]}!)[8(! redefined Select_ Route(SRArg))][M3(!RR!"RR)< Transfer)]]]]]]]]]]]]}(! call noOfLegs)][6(!XX!"X)[8(! 6q! 1)][(! 6X!Z)][30(! 6! d)[8Arg))][18(!!")[78(! 6!)[8(! to SSF)]]][8(!XX@!"X@X)[ qE(! 6@! artState := waitMidCall, obcsmPars!legID := controllingLegID, obcsmPars!routingInfo!cdPN := bitstr(''))][-A(!^^!"^^)[ 6(! 6! d)[8(! O_BCSM (obcsm(!^!"^)[V*(! 62! ,!)[8(!- Network_ SuspendReqInd (nsrArg,csaID,legID))][w*(!&X!"XntrollingLegID))][C(!R!"R)[8(! 6k! else)][6?A(! 6! d)[8(! nsrArg!callRef := cp!sigconID)][BA(!331sition to the 1-Party state involves creating a 32M and associate it with the controlling leg. */)336(! 6&! ,)[834(! TransitTo_ 1_Party)][6(! Fux[8(! dialogue_ Active)][>(!!")[8(! 63! true)][6gC(! 6! d)[8(! bcsmStopped := true)][jC(!b38(!^!"39^)[V*(! 62! 39!)[8(!- Network_ SuspendReqInd (nsrArg,csaID,legID))][w*(! X6Rx! )[8(! pic!pic := SendSTUI, pic!infoDirection := utsi, pic!uSIServiceIndicator := dpUTSIArg! uSIServiceIndicator, pic!uSIInformation := dpUTSIArg! uSIInformation)][ A(!"!" (rArg))][=(!!")[=(! 6 ! ,!)[8(!8 ReleaseInd (rArg) to call GetLegPtr (controllingLegID))][=(!"6~&! ,!)[8(! DataInd (udArg))][F7(!!")[%C7(! 6~! ,)[8(! BroadcastToLegs (DataInd))][L7(!"()[(! l! 22!(P)[(! 6! r)[(! 6)[(! 6! )]][ (! 6)][A(!!!h)[(! 62! CSA)][`(! )][.(! )[8(! 6! (CS2_Out))]][(! 6!)][.(! )[8(! 6d! (CS2_In))]][(!% Returns the number of passive legs.)]]]][9(! 6! )[8(!2 /* Procedures for filtering detection points. */)]][$(! 6r! ,)[(! 6! DP_ Filteri)[8(! to call GetLegPtr (newLegID))]]][.+(!@!"@)[(! 6!Z)][3 +(! 6! d)[8(! -)]]]]]]][:+(!XXX&)[(! 6X! d!)[8(!! CSImport_ LegReq (legId,expLeg))][ (!!")[(! 6X!)[8W]]][(!!")[(! 6!Z)][3E(! 6! d)[8(! Stable_Multi_ _Party)]]]]]]]]]]]]}(!x!"()[(! l! 22!(j)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6&! )[8(!7 /* Routiolling leg in any multi party state will result in that all BCSMs will generate a ReleaseReq towards the signalling control. The signalling control should filter these ReleaseReqs and pass on only one Release message to the signalling. */)]]]]}(! RemoveLeg (legId))][((!R!"R)[ ((! 6R! d)[8(! call noOfLegs)][((!R!"% 6 &! ,!)[8(! redefined ReleaseInd (rArg))][~(!!")[%{(! 6 ! ,)[8(! BroadcastToLegs (ReleaseInd))] (! 12!!3)[! (! 13!!3)[!(! 14!!3)[!(! 15!!3)[!(! 16!!3)[!(! 17!!3Z!",,)[(! 6,!Z)][3(! 6! d)[8(! On_Hold)]]]]]]]]][(!  !" )[8)[(! 6!Z)][6(! 6X! ,)[8(! TransitTo_ 1_Party)]]]]]]]]]]][<(!"Xqq!"X)[9(! 6)][)(!R!"R)[ ((! 6! ,)[8(! call noOfLegs)][)(!L!"L)[8(! 6()[(! l! 22!(d)[A(! l)[A(! 6)[A(! 6d! )]][ A(! 6)][9A(! 6! )[8(! /* When (! party)][((!R!"R)[8(! 6!8 localParty, remoteParty /* User initiated release. */)][p((! 6! d!)[87 6L! ,)[8(!: dlArg! legToBeReleased! sendingSideID = controllingLegID)][%(!XX!"X)[8(! 6q! true)][%$(! 6()[(! l! 22!(J)[@+(! l)[C+(! 6)[F+(! 6d! )]][ I+(! 6)][9L+(! 6! )[8(!? /**** ROYF!"F)[(! 6!)][)=()]]]]]]][3>(! 6! d)[8(! 1_Party)][>(!x!"6X!)[8(!( From O-BCSM in the backward direction.)]]][<(!,,!",,)[ <(! 6! B)[8(! CP! PassiveLegs(leg1)! BCSM)][<!"~)[8(! 6! false)][C(! 6R! d!)[8(! SSFStop)][1:C(!L!"L)[7"CUTING OF SIGNALLING CONTROL PRIMITIVES TO/FROM SIGCON. ****/)]][9=(! 6 ,! )[8(! /* Note: For IN CS-2, the signalling control primitives from SigCon -> BCSMs must be broadcasted to all passive e-2-Party -> Stable-1-Party */)]][3 8(! 6 ! d)[8(! Stable_2_Party)][$8(!&X!"X&)[8(! 6 X! d!)[8(!# !"r)[4>(! 6! d)[8(! )]]]]]]]]][)(!FFL!"FL)[8(! 6_! > 0)][(! 6&)[ *(! 62X! ,)[8(! call IsBCSM(Sender))][ *(!"^!"^)[*(! 6X!)[8(!% Is the signal incox)[|(! 6x! d!)[8(! CSImport_ LegResp)][1>'(!x!"x)[7;'(! 6x!)[8(! to CSA)lse)][+C(! 6~@! d!)[8(! CSStop (callSegmentID) to CSA)][ FC(!Frxr!"xrFr)[.C(! 6x@!)[8(!4 Indicate to thepImport_ LegResp)][1G'(!!")[7D'(! 6!)[8(! to CSA)]]][(!XFXx!"XxXF)[ (! 6x! d)[8(! call noOfLegs)][(!XX@!"X@X)[8(! 6q! 1)][(! 6X@!Z)][3(! 6@! d)[8=(! 6! B)[8(! CP! PassiveLegs(leg1)! BCSM)][=(!_99!"_9)[8(! 6k! Terminating)][=(! 6F! 25(! 6RX! d!)[828(!! CSImport_ LegReq (legId,expLeg))][ 30(!~!"~4)[h!(! 6~X! S:+VNa()[(! l! 22!(x)[B8(! l)[E8(! 6)[H8(! 6d! )]][ K8(! 6)][98(! 6! )[8(! /* Termi1! d!)[8(!! CSImport_ LegReq (legId,expLeg))][ N(!x!"Fx)[K(! 6!)[8(!R From CSA process due to a MergeCall_ Segme(!9&9&!"&9)[8(! 6?k! Terminating)][<(! 6! d!)[8(! Network_ SuspendInd (nsrArg))][1<(!NLegID, surrogate))][8(!!")[8(! 6! d!)[8(!" Disconnect_ Leg(invokeID,,dlArg))][18(!X!"(! 6~x! d)[8(! Transfer)]]]]]]]]]]]][9D(! 6 ! )[8(! /* Note: Import of the controlling leg in Stable-1-Party occurs when, in the CSA to which this CS belongs, first a CSX)[%OF(! 6l! ,)[8(!I SetLegPtr (srArg!legToBeCreated! sendingSideID, offspring, originating))][ F(!" 99R!"R )[RF(! 6R!!Z)][3h'(! 6r! d)[8(! On_Hold)]]]]]]]]]]]]]][9>(! 6! )[8(! /* Note: Export of the controlling leg in On-Hold occurs when, in the CSA to which this CS belon ransition to the 1-Party state involves creating a BCSM and associate it with the controlling leg. */)]][6(! 6&! ,)[8(! TransitTo_ 1_Party)][6(!^^!"^^()[w(!GSDL)]}:! d)[8(! -)]]]]]]][)(!"RR!"R)[)(! 6! d!)[8(! Network_ Resume&X!"X&)[5E(! 6LX! d!)[8(! CSExport_ LegReq (legId))][ VE(!F!"F)[8E(! 6FX()[(! l! 22!(E)[?(! l)[?(! 6)[@(! 6d! )]][ @(! 6)][9@(! 6! )[8(!$ /* 1-ParY!)[8(! From BCSM)]]][4((!!")[ ((! 6! ,)[8(! call GetLegStatus(legId))][7((!!"(!!")[*(! 6d! ,!)[8(!* DataReqInd (udArg,csaID,legID, callFlag))][+(!X!"X][>*(!"~!"~)[(! 6!)][))()]]]]]][C(!*x  !"x )[8) to CSA)]]][*(!"33L!"L)[(! 63!)][)*()]]]]]]]]]]]}]]}xx)[8(! 6! >1)][(! 6rID, pending))][ t$(!"kkRR!"Rk)[>$(! 6 !! )[8(!3 Set the status of the new passive leg to pending.)]]][w$(! -)]]]]]]][!>(!"x!"x)[>(! 6! ,!)[8(! Network_ Resume_ Ind(nsrArg))][->(!@r!"^,)[(! 6^X!! )[8(!* Imports a leg into the connection point.)]]]][$(! 6X! ,)[(! 6~! Broadcast_ ToLegs)][ ()[(! l! 22!(E)[*(! l)[*(! 6)[*(! 6d! )]][ *(! 6)][3*(! 6,! d)[8(! *)][+!"R)['(! 6! d!)[8(! CSImportLeg_ Resp)][1'(!R!"R)[7'(! 6!)[8(! to CSA)]]]['(!!")[(! 6!Z)][3'(! 6! d)[8(! Stable_Multi_ _Party)]]]]]]]]]]]]}!)[8e-2-Party -> On-Hold Stable-2-Party -> 1-Party Stable-2-Party -> Stable-Multi-Party Note: Processing of atomic operations used by the CSA. */)]][3t(! 6d! d)[8(! Stable_2_ _Party)][z(!:14(! l! 22!(22)[(! l)[(! 630)[(! 6d! 4[ (! 6)][9H (! 6 ?Q+3LL)[ `>(! 6! ,)[8(! legID = controllingLegID)][>(!33!"3)[8(! 6L! true)][%>(! )[ E(! 6&! d)[8(! O_BCSM (obcsmPars))][ E(!"99R!"R)[E(! 6R!! )[8CFrom CSA process due to a MoveLeg or SplitLeg operation from the SCF.)]]][9(!,,!",,)[ 9(! 6! d)[8(! legId = controllingLegID)][9(!,(! 6!Z)]][A(!2!!)[(! 6dk! SSF)][`(! )][.(! )[8(! 6! (SSF2_ _In))]][(! 62gs(newLegID) := cp!passiveLegs(currentLegID), cp!passiveLegs(currentLegID)! used:= false)][A(!!")[(! 6!Z)][3A(! 6R! d)[8()[(! l! 22!(H)[^7(! l)[a7(! 6)[d7(! 6d! )]][ g7(! 6)][97(! 6! )[8(!h /* OrigiBCSM via the CSA/IH. */)]]][8(!!")[(! 6!Z)][3N8(! 6d! d)[8(! Stable_1_ _Party)]]]]]]]]][8(!"(!F!"F)[8(! 6! Successful)][6E(! 6F! ,)[8(!' obcsmPars := call MapAIToBCSM (aiArg))][E(!!"legs in the connection point.)]][3T(! 6! d)[8(! * (1_Party))][Z(!&!"&)[W(! 6d&! ,!)[8 ()[(! l! 22!(j)[&(! l)[&(! 6)[&(! 6d! )]][ &(! 6)][9&(! 6&! )[8(!b /* Null )[ *(! 6d! ,)[8(! call IsBCSM(Sender))][ +(!"!")[*(! 6!)[8(!% Is the signal incomi:]]]]]]} 6R! d!)[8(!* DisconnectLeg_ Result (invokeID,) to csa)][PB(!"@YYr!"r@)[(! 6Y!)][)/()]]]e-Multi-Party -> Stable-2-Party Stable-Multi-Party -> Stable-Multi-Party Note: Processing of atomic operations used by the CSA. */)]][3((! 6R! d)[8(! Stable_Multi_ _Party)][((!&X()[(! l! 22!(P)[E(! l)[H(! 6)[K(! 6d! )]][ N(! 6)][9Q(! 6^d! )[8(!F /**** RO| Stable_Multi_ _Party)]]]]]]]]]]][(!  !" )[8(! 6-9! false)][%(! 6! d)[8(! ImportLeg (expLeg,legId))][indicating that the BCSM has stopped) that changes the connection state. */)]][3.(! 6d! d)[8(! *)][/(!F!"F)[.(! 6dF! )[A(! 6R! d!)[8(!* SetLegID (currentLegID, newLegID) to SSF)][A(! R!"R )[A(! 6 R! !")[%A$(! 6~! ,)[8(!, SetLegStatus (controllingLegID, surrogate))][ z$(!"33!"3)[D$0Arg))][1?G(!LL!"LL)[7(! 6X! )[8(!a /* Note:5!3)[!(! 24!!3)[!(! 25!!3)[!(! 26!!3)[!(! 27!!3)[!(! 28!!3)[!(! 29!)[8(! )]]]]]]]]][((!!")[8(! 6!$ else /* SCF initiated release. */)][%m((! 6F! d)[8(! RemoveLeg;(! 69! false)][6(! 6L! ,)[8(!" expLeg := call ExportLeg (legId))][(!~!"~)['(! 6~! d!1uting_ AddressPresent (sfArg))][BG(!XRR!"RX)[8(! 6k! false)][9G(! 6! d!)[8(!" SelectFacility (invokeID,,sf!3)[!(! 30!!3)[!(! 31!!3)[! (! 32!!3)[!!(! 33!!3)[!"(! 34!!3)[!#(!--F!"F)[ B(! 6XF! d!)[8(! ReportUTSI (,rutsiArg))][5B(!!")[#B(! 6X!")[%n?(! 6 ! d)[8(!) SetLegStatus (controllingLegID, shared))][q?(!Fx!"xF)[(!  !" )[8(! 6 ! d!)[8(! BCSMStop (legId,party))][ 8(!~RR!"RLR~R)[8(! 6;WithArgument (indicated by cwaFlag) should cause all passive legs in the CS where ctwaArg!legID is residing to resume call processing. This is not clearly described in Q.1228, section 17 but is necessary for the CPH functionality. */)]]]]}(! to caDE(! 6L! d!)[8(! CSExport_ LegResp (expLeg))][eE(!~!"~)[GE(! 6L! d!)[8(! SSFStop)][B(! CSImport_ LegResp)][1'(!!")[7'(! 6!)[8(! to CSA)]]]['(!RR!"RR)[ &T! (T_BCSM2_Out))]][(! 64!)]][9#(! 6! )[8(!# /**** DATA TYPE DEFINITIONS ****/)]][9(! 6! )[8(! /* For IN CS-2 (in case of multi party configurations) the call segment must broadcast: - signalling control primitives that can occur in the active state of the BCSMs, and - PICs to all BCSMs of the call segment. */ NEWTYPE BroadcastSignalNames LITERALS ServiceFeatureInd, FailureInd, ReleaseInd, DataInd, NetworkSuspendInd, NetworkResumeInd, PICSignal, PICResume; ENDNEWTYPE; )]]]]}r IN CS-2 (in case of multi party configurations) the call segment must filter and report only one DP to the SSF-Fcall MapSFToBCSM (sfArg))][F(!!")[6F(! 6,! ,)[8(!] obcsmPars!startState := nullState, obcsmPars!legID := sfArg!legToBeCreated! sendingSideID)]!)][.(! )[8(! 62! (SSF2_ _Out))]][(! 6!)]][A(!^4^!!)[(! 6f! O)][`(! )][.(! )[8(! 6w! (O_BCSM2_In))]][(! 6^!Z)][.(! )[8(! 6wM! (O_BCSM2_Out))]][(! 6^4!)]][A(!4!!)[(! 6xf! T)][`(! )][.(! )[8(! 6! (T_BCSM2_In))]][(! 6!Z)][.(! )[8(! 6M ,)[8(! call noOfLegs)][6(!XX!"X)[8(! 6q! 1)][(! 6X!Z)][30(! 6! d)[8][(!,,&!",&,)[(! 6&! d!)[8(! CSExport_ LegReq (legId))][ (!XX!"X^XX)[O6d! ,)[8(!, SetLegStatus (controllingLegID, surrogate))][>(!Fx!"xF)[ >(! 6dx! ,)[8(! call noOfLegs)][>(!leg to pending.)]]][:@(!F FR!"FRF )[@(! 6R! d!)[8(! Connnect (invokeID,,coArg))][1F@(!!"(! BCSMStop)][1\E(! F !"F  )[7>E(! 6F!)[8(!e to call GetLegPtr (controllingLegID) /* Terminate the BCSM associated with the controlling leg.9(!F!"F)[79(! 6F~!)[8(! to CSA)]]][:(!!")[ 9(! 6! ,942tates except Null, DPUTSI is only reported to7he SSF-FSM if there is a dialogue active, otherwise the DPUTSI will be transformed into a SendSTUI PIC and the information will be send (by the B the remo*rty. */)I(! 6cRIABLE DECLARATIONS ****/)]][9#(! 6! )[8(!  DCL /* IN CS-2 operation arguments. */ ctwaArg ContinueWithArgumentArg, dfcwaArg DisconnectForwardConnectionWithArgumentArg, dlArg DisconnectLegArg, erArg EntityReleasedArg, rutsiArg ReportUTSIArg, rrutsiArg RequestReportUTSIArg, sstuiArg SendSTUIArg;)]][9;(! 6~! )[8(!k DCL /* Parameters at the signalling control interface. */ udArg UserDataType, nsrArg NetworkSRType;)]][9#(! 6R! )[8(! DCL /* Other variables. */ currentLegID LegType, expLeg ExportLegType, dpUTSIArg DPUTSIArg, noOfMidCallDPs Natural := 0, noOfDisconnectDPs Natural := 0, noOfAbandX)[8(! 6q! Successful)][6?(! 6! ,)[8(!, obcsmPars := call MapConnectToBCSM (coArg))][?(!XX!"XX)[6?(! 6=K!" )[8(! 6K! shared, surrogate)][(! 6!)][))()]]]]]][)(!"&?R?RX!"RX CSStop (callSegmentID) to CSA)][ >(!R@@!"@R@)[>(! 6!)[8(!4 Indicate to the CSA that this segment is released.)]]][>(!r~ ,)[8(!I SetLegPtr (coArg!legToBeCreated! sendingSideID, offspring, originating))][ $(!" !" )[$(! 6 l!! )[8+26 -> Transfer Transfer -> On Hold Note: Pro27sing of atomic operations used by the CSA. */)]]28\!(! 6R! d)[83(! Transfer)][!(!& : (! 6X! )[8(!$ /* Terminating-Setup -> Forward */)]][3F(! 6^X! d)[8(! Terminating_ _Setup)][F(!!")[F?()[(! l! 22!(7)[ F(! l)[ F(! 6)[F(! 6d! )]][ F(! 6)][9F(! 6! )[8(!$ /* 1-Par)[(! 6,! d!)[8(!& redefined PICResume (legID, cwaFlag))][(!r!"r)[ (! 6! ,)[8(!' (legID J()[(! l! 22!(d)[G*(! l)[J*(! 6)[M*(! 6d! )]][ P*(! 6)][3S*(! 6d! d)[8(! *)][t*_(!^!"^)[*(! 62! ,!)[8(!, NetworkResume_ ReqInd (nsrArg,csaID,legID))][*(!&X!"XF)[+(! 6d! ,!)[8(!* DataReqInd (udArg,csaID,legID, callFlag))][1(+(!"!")[7 +(! 6!j(! 6L! ,!)[8(!- Network_ SuspendReqInd (nsrArg,csaID,legID))][1*(!"x!"x)[7q*(! 6!)[8(!r@)[*>(! 6r! ,!)[8(!A NetworkResume_ Ind(nsrArg) to call GetLegPtr (controllingLegID))][9>(!"!!:!":)[[L)[8(! 6e! Failed)][(! 6!Z)][,$(! 62! ,)[8(! Failed2)]]][e$(!XX!"X(! 6k! false)][6(! 6X! ,)[8(!" expLeg := call ExportLeg (legId))][$(!~x!"x~)[!(! 6x! d!)[ to CSA)]]][*(!"Lee~!"~L)[(! 6e!)][)k*()]]]]]]]]]]]}  !"x )[8 legId = controllingLegID)][0(!!")[8(! 6! true)][6(! 62! ,)[8(!" expLeg := call ExportLeg (legId))][(!G In the 1-Party state, the signalling control primitives from SigCon -> BCSMs must be passed to the BCSM associated with the controlling leg. */)]][3s=(! 6! d)[8(! 1_Party)][=(!&!"{(! 6! >1)][(! 6~!Z)][3((! 6! d)[8(! -)]]]]]]]]]]]]}able_2_ _Party)]]][((!~~!"~)[8 62@! d)[8(! Failed2)]]][F(!@!"@)[8(! 6! Successful)][6F(! 6,@! ,)[8(!' obcsmPars := )][(!"XX!"X)[(! 6!)][)c()]]]]]][^(!"  &!"&)[u(!p! 0)][)(! 6^L! d!)[8(! SSFStop)][1*)(!&~X~!"X~&~)[7')(! 6XL!)[8(!2 to SSF /* Instruct the?(!!")[%<(! 6 ! d)[8(! RemoveLeg (legId))][B(! R!"R )[ -(! 6R!x!! )[8(! Add a new passive leg.)]]][F(!xx@!"@x)[8(! 6! Failed)][(! 6@!Z)][F(!x)[>(! 6d! ,!)[8(! Network_ Suspend_ Ind(nsrArg))]['>(!@r!"r@)[$>(! 6dr! ,!)[8[(! 6 &! d!)[8(!" redefined BCSMStop (legId,party))][ (!XX!"XXX)[(! 6&!)[8(! From BCSM)]]][ANSITIONS BETWEEN THE CONNECTION STATES OF THE CALL SEGMENT. ****/ /* Note: The states of the call segment are defined in Q.1224. */)]][9F(! 6! )[8(!1 /**** REDEFINITIONS OF IN CS-1 OPERATIONS ****/)]][9FxrF)[(! 6_!)][)<()]]]]]]]]]]][9<>(! 6! )[8(!\ /* The UTSI is coming from the controlling leg, and should be sent to the remote party. */)]][9?>()[8(! to CSA)]]][ *(!~!"~)[(! 6!Z)][3)(! 6! d)[8(! -)]]]]]]][C(!* K ~!"@~~)[7uD(! 6@L!)[8(! to CSA)]]][D(!x!"x)[(! 6x!Z)][3~D(! 6Fx! Fnts or MoveLeg operation from the SCF.)]]][B(! !" )[%?(! 6 ! d)[8(! ImportLeg (expLeg,legId))][H(!x!"!"~)[(! 6!Z)][3(! 6,! d)[8(! -)]]]]]]][A(!R!"R)[8(! 6k! 6!Z)][3(((! 6! d)[8(! Stable_1_ _Party)]]][L((!xxrxr!"rxx)[8(! 6! >1)][(! 6r(! 6,L!Z)][39(! 6L! d)[8(! Transfer)]]]]][9(!  !" )[8(! 69! false)][69(! 6L)[V'(! 6 ! d!)[8(! CSExport_ LegReq (legId))][ q'(!&&!"&&&)[Y'(! 6!)[8(!qQ SSF-FSM to terminate. */)]]][>(!!")[ >(! 6,! ,)[8(! dialogue_ Active)][>(!!"Rming or outgoing?)]]][*(!!")[8(! 6 ! No /* Incoming */)][*(! 62! ,!)[8(! NetworkResume_ ReqInd (nsrArg))][1ty -> Originating-Setup */)]][3E(! 6&^! d)[8(! 1_Party)][E(!!")[E(! 6&! d!)[8(!& AnalyseI off from the SelectRoute PIC. - with the legID as passed in the ConnectArg. - with routing information as passed in the ConnectArg.)]]][k$(!XX:!"X:X)[%5$(! 6:! F)[(! 6_!)][)+()]]]]]][+(!" 9L9L!"L )[8(! 6eR! Yes /* Outgoing */)][+(! 6!")[(! 6!Z)][3c(! 6! d)[8(! -)]]]]]]][l(!" X X&!"X&)[id!)[8(!, RequestReport_ UTSI (invokeID,, rrutsiArg))][/(!!")[.(! 6d! d!)[8(!1 RequestReportUTSI (invokeID,,8)[6C(! 6! d)[8(!( cp!controllingLeg! legStatus := joined)][C(!^R^!"^^R)[ 6(! 6! d)[8(! cp!controlliWX! d)[8(! * (Null))][<(!!")[}<(! 6! d!)[8(! DPUTSI (dpUTSIArg))][<(!R@L)[8(! 6-! surrogate)][(! 6@!Z)][3C(! 6R@! d)[8(! Stable_1_Party)]]]]]]]]]]]]]]]]}(!L@!"(! 6!)[8(! to call GetLegPtr (PIC!legID))]]][(!"L~L!"L~)[(! 6!)][)()]]]]]][A(!L(! 6! Originating)][E(! 6&R! d!)[8(! BCSMStop)][1E(! !" )[7E(! 6 R!! )cFL!Z)][3)(! 6L! d)[8(! -)]]]]]]]]]]]]}! )]]]]]]]]][)(!FFL!"FL)[8(! 6_! > 0)][(! 6b(! 6&! ,!)[8(! redefined FailureInd (fArg))][r(!XX!"XX)[%o(! 6! ,)[8(! BroadcastToLegs (FailureInd)CLARATION OF OPERATIONS ****/)]][9(! 6! )[8(! /* Operations on Legs. */ )]][$(! 6dX! d)[(! 6}q! Import_ Leg)][ (!,^!"(!( redefined Service_ FeatureInd (sftArg))][`(!!")[%](! 6d! ,)[8(!' BroadcastToLegs (Service_ FeatureInd))][f(!Leg)][A(! x x!"x )[8(! 69! true)][6A(! 6! d)[8(! pic!party := remoteParty)][A(!"xxL()[(! l! 22!(P)[ (! l)[ (! 6)[ (! 6d! )]][ (! 6)][9#(! 6X! )[8(!' /**** DE ++(!"L@LYY!"L@)[(! 6Y!)][) +()]]]]]]]]]]]}()]]]]]]]]]]]}x  !"x )[8--F!"F)[,B(! 6RF! d!)[8(!# DisconnectLeg_ Result (invokeID,))][AB(!!")[/B3L!"L)[(! 63!)][3 =(! 6LL! d)[8(! -)]]]]][=(!L!"L)[8(!FFX)[%(F(! 6! ,)[8(!= SetLegStatus (srArg!legToBeCreated! sendingSideID, pending))][ aF(!"!")[+F(()[(! l! 22!(d)[#(! l)[#(! 6)[#(! 6d! )]][ #(! 6)][9#(! 6! )[8(!# /**** VA6x! d!)[8(! CSExport_ LegResp (expLeg))][1'(!!")[7'(! 6x!)[8(! to CSA)]]][(!,,r Stable_1_ _Party)]]][}E(!rr!"r)[8(! 6! else)][(! 6!Z)][3wE(! 6 ! d)[8(! TransferBeReleased! sendingSideID = controllingLegID)][7(! !" )[8(! 6 ! true)][%7(! 6! d)[8(!, SetLegStatus (controllingG8(! CSExport_ LegResp (expLeg))][18'(!R!"R)[75'(! 6x!)[8(! to CSA)]]][6(!!"s)[8(!4 Indicate to the CSA that this segment is released.)]]][>(!FrF!"FFFr)[4>(! 6! d)[8(! )]]]]]]]]]]]]]]}(! 6!(!"!")[(! 6X!! )[8(!g Procedure to broadcast a signal from SigCon or a PIC to all the passive legs in the connection poin<)['(! 6X! d!)[8(!! CSImport_ LegReq (legId,expLeg))][ '(!R!" R)['(! 6X!)[8(!P From CSA processy!")[(! 6!)][)c()]]]]]]][3=(! 6! d)[8(! * (1_Party))][=(!x!"f()[(! l! 22!(m)[C(! l)[C(! 6)[C(! 6d! )]][ C(! 6)][9lD(! 6! )[8(!5 /* 1-Par(! 6R! d!)[8(!* DisconnectLeg_ Result (invokeID,) to csa)][PB(!"@YYr!"r@)[(! 6Y!)][)/()]]]]]][iD(!,,!",,)[%!D(! 6! d)[8(! ImportLeg (expLeg,legId))][QD(!,R,!",,R)['D(! )[8(! bcsmStopped := true)][dC(!!")[(! 6!Z)][3i>(! 6! d)[8(! WaitFor_ SSF)]]]]][x>(!qGetLegStatus (controllingLegID))][C(!RRR!"RRR)[8(! 6kk! else)][6EA(! 6! d)[8(! nsrArg!callRef := cp!sigconID)][HA(!E]]]]]]]]]][9];(! 6L! )[8(!U /* Note: ImportLeg is only allowed for the controlling leg in Terminating Setup. */)]]]]}!Z)][3`;(! 6! d)[8(! Stable_2_ _Party)4!"4)[(! 64!Z)][3A(! 6,4! d)[8(! -)]]]]][(!&!"&)[820 -> Stable-2-Party On-Hold -> Stable-Multi-P21y On-Hold -> On-Hold Note: Processing of at22c operations used by the CSA. */)]][3(!36! d)[8(! On 5#Q  expLeg!controlling_ LegStatus)][C(!xx!"x)[8(! 6-! else)][6C(! 6! d)[8(!( cp!controllingLeg! legStatus := sharX SelectRoute (invokeID,,srArg))][1sF(!!")[77F(! 6R!! )[8(!F TO SSF /* Pass SR on to the SSF-FSM associated with this segment. */)]]",,)[(! 6,!Z)][33D(! 6! d)[8(! Stable_2_Party)]]]]]]]]]][32E(! 6L! d)[8(! 1_Party)][SE(!X)[%(! 6L! d)[8(! ImportLeg (expLeg,legId))][(!XX!"XX)[(! 6! d!)[8(! CS()[(! l! 22!(_)[F(! l)[F(! 6)[F(! 6d! )]][ F(! 6)][9F(! 6^d! )[8(! /**** TR!"@)[(! 6@!Z)][33(! 6d@! d)[8(! On_Hold)]]]]]]]]][(!,RR!",R)[8(! R!"R )[7nB(! 6RX!)[8(! to ssf)]]][B(!"!")[(! 6!(! 6! shared, surrogate)][(! 6R!)][))()]]]]]]]]]}g))][1D*(!@LrL!"rL@L)[7A*(! 6r!)[8(! to CSA)]]n6l! MapAI_ ToBCSM)]][$QG(! 64! )[(! 6Z! MapSR_ ToBCSM)]]]]}6d! )]][ ,(! 6)][9/(! 6&! )[8(!5 /* Routi(!0 Associate the new passive leg with the O-BCSM.)]]][?(!XX!"XX)[(! 6X!Z)][?(! 6! d)[8(! CO1)]]]]]]]]]]]!"RR~)[(! 6R!Z)][3EG(! 6! d)[8(! Terminating_ _Setup)]]]]][-G(!!")[8(! 6d! d)[8(! -)]]]]]]][wB(!"!")[\B(! 6X! d!)[8(!A DisconnectForward_ Connectioe Transfer and Forward states, the NetworkSuspendReq, NetworkResumeReq and DataReq to/from the BCSMs must be relayed since the controlling leg is surrogate. */)]][3<(! 6! d)[8(! Forward, Transfer)][<(!  legId = controllingLegID)][(!,,!",,)[8(! 6E! true)][6(! 6! ,)[8(!" expLeg := call ExportLeg (legId))][(!LL! d)[8(! DPFiltering_ UTSI (dpUTSIArg))][<(!!")[(! 6!Z)][3<(! 6! d)[8(! -)]]]]2)[8(!Z From CSA process due to a SplitLeg, MergeCallSegments or MoveLeg operation from the SCF.)]]][(! !" )[ (! 6d ! d)[8(!][<(!^FFL!"FL^)[8(! 6_! False)][ <(! 6L! ,)[8(! dpUTSIArg! party)][<(!!" X)[%A(! 6 ! d)[8(! DPFiltering (DP))][A(!"  ,,!", )[(! 6&!)][)q()]]]]]]]]]}~fer -> Transfer Transfer -> Stable-1-Party Transfer -> Transfer Note: Processing of atomic operations used by the CSA. */)]][3:(! 6! d)[8(! Transfer)][:(!,&,X!"S()[(! l! 22!(K)[ (! l)[ (! 6)[ (! 6d! )]][ (! 6)][9A'(! 6X! )[8(! /* On-Ho2^@^)[(! 6^@!Z)][36(! 6@! d)[8(! 1_Party)]]]]]]]]][6(!!")[8(! 6.(! SSFStop)][1((!^!"^)[7((! 6!)[8(!2 to SSF /* Instruct the SSF-FSM to terminate. */)]]][>(!x!"$ rrutsiArg) to ssf)][*/(!@r!"r@)[(! 6r!Z)][3/(! 6dr! d)[8(! -)]]]]]]][B(!"--F`L!)[8(! to CSA)]]][(!!")[(! 6!Z)][3(! 6! d)[8(! On_Hold)]]]]]]]]]]]]]]} to CSA)()[(! l! 22!(P)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9O((! 6&! )[8(!t /* TransK (legId))][6(!F!"F)[(! 6F!Z)][6(! 6F! )[8(! TransitTo_ 1_Party)]]]]]]]]]]]]}cp!controllingLeg! legStatus := shart.)]]]][$ (! 6d! d)[(! 6}! Export_ Leg)][ (!,^!"^,)[(! 6^!! )[8(!* Exports a l=eg from the connection point.)]]]][$(! 6! d)[(! 6! NoOf_ Legs)][ (!L!"L)[(! 6!! )[8il states except Null, DPUTSI is only reported to the SSF-FSM if there is a dialogue active, otherwise the DPUTSI will be transformed into a SendSTUI PIC and the information will be send (by the BCSM) to the remote party. */)]][3z<(! 6()[(! l! 22!(x)[R((! l)[U((! 6)[X((! 6d! )]][ [((! 6)][9((! 6&d! )[8(! /* OrigiJ(! 6!Z)][) A()]]]]]]][@(! 6! d)[8(! CO3)][4@(!FXF!"FFX)[% @(! 6! ,)[8(!= SetL!"L)[d((! 6L!)[8(! From BCSM)]]][((!R!"R)[ g((! 6RR! d)[8v1hE(!F!"F)[7JE(! 6F!)[8(!2 to SSF /* Instruct the SSF-FSM to terminate. */)]]][kE(!F!"Fn(! Create an instance of an O-BCSM: - starting off from the AnalyseInformation PIC. - with the legID as passed in the AIArg. - with routing information as passed in the AIArg.)]]][E(!:l!"z(! 6r! ,)[8(!$ BroadcastToLegs (NetworkResumeInd))][>(!"!!:!":)[(! 6!!)][)=()]]]]]]]]]}(! x )[&(! 6!)[8(!+ Import the leg into the connection point.)]]]['(!RRR!"RRR)[&(! 6! d!)[8 d)[8(! Transfer)]]]]]]]]]]]][9t?(! 6! )[8(! /* Note: Import of the controlling leg in Stable-1-Party occurs when, in the CSA to which this CS belongs, first a CS with the controlling l~!"~)[%-(! 62! ,)[8(!) SetLegStatus (controllingLegID, shared))][6(!Fx!"xF)[(! 6d!][}(!RR!"RR)[z(! 6! d!)[8(! Errror to CSA)][(!R&RX!"RRXR&)[4(! B8[(! l! 22!(9)[*(! l)[*(! 6)[*(! 6d! )]][ *(! 6)][3*(! 6 ! .)[8*)][+= controllingLegID) or cwaFlag)][(!:!":)[8(! 6S! true)][%(! 6,! d)[8(! BroadcastToLegs (PICResume))][A(! fer -> Stable-1-Party Transfer -> Transfer Note: Processing of atomic operations used by the CSA. */)]][3(! 6 ! d)[8(! Transfer)][(!&!"&),~,!",,~)[%(! 6! ,)[8(!) SetLegStatus (controllingLegID, shared))][(!,F,x!",x,F)[(! (! 6^! d)[8(! TransitTo_ 1_Party)]]][ '(!ee!"e)[8(! 6~! false)][ C(! 6L! d)[8(!"23ulti-Party -> On-Hold Stable-Multi-Party ->24able-2-Party Stable-Multi-Party -> Stable-Mu25-Party Note: Processing of atomic operations us3 by the CSA. */)]][3(! 6! UVS (! 6&!)[8(!G From CSA process due to a MoveLeg or SplitLeg operation from the SCF.)]]][(!,,!",,)[ (! 6d! )[8(!/e-Multi-Party -> On-Hold Stable-Multi-Party -> Stable-2-Party Stable-Multi-Party -> Stable-Multi-Party Note: Processing of atomic operations used by the CSA. */)]][3(! 6! d)[8(! Stable_Multi_ _Party)()[(! l! 22!(d)[((! l)[((! 6)[((! 6d! )]][ ((! 6)][9)(! 6! )[8(!y /* On-Ho()[(! l! 22!(d)[6;(! l)[9;(! 6)[<;(! 6d! )]][ ?;(! 6)][9f;(! 6! )[8(!c /* Termi,,X,&)[9(! 6X! d!)[8(! CSExport_ LegReq (legId))][ 9(!!"^)[9(! 6X!)[8(!G (! 6! ,)[8(! legID = controllingLegID)]['(!ee!"e)[8(! 6~! true)][(! 6!Z)][6M()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9'(! 6! )[8(! /* StablP()[(! l! 22!(x)['(! l)['(! 6)['(! 6d! )]][ '(! 6)][9'(! 6^! )[8(!i /* Stablng_ Leg!bcsm)][ 6(!"XX!"X)[6(! 6&!)[8(! Create a BCSM and associate it with the controlling leg. The type of BCSM (O or T) created ised)][C(!xx@!"x@x)[(! 6x@!Z)][3&(! 6@! d)[8(! On_Hold)]]]]][C(!L@!"ty -> Originating-Setup */)]][3@(! 6^! d)[8(! 1_Party)][A(!XX!"XX)[@(! 6! d!)[8(!& redefineZd Connnect (invokeID,,coArg))][A(!XXX!"XXX)[ @(! 6! d)[8(! CP!Controlling_ Leg!BCSM)][ A(!!"[)[A(! 6!! )[8(!` Connect is only allowed if the controlling leg is supported by an O-BCSM in the 1-Party state.)]]][A(!XXR!"XRX\)[8(! 6q! Originating)][A(! 6R! d!)[8(! BCSMStop)][1A(!!")[7A(! 6R!! ])[8(!e to call GetLegPtr (controllingLegID) /* Terminate the BCSM associated with the controlling leg. */)]]][!A(!XX!"XX)[ A(! 6! )[8^(!2 call AddLeg(CoArg!legToBeCreated! sendingSideID))][$A(!~~!"~)[8(! 6! Failed)][(! 6~!)][ A(! 62! _,)[8(! Failed2)]]]['A(!XXF!"XFX)[8(! 6q! Successful)][6@(! 6F! ,)[8(!, obcsmPars := call MapConnectToBCSh!"F)[A(! 6^F! d!)[8(! SendSTUI (invokeID,, sstuiArg))][B(!!")[B(! 6^! ad!)[8(!' SendSTUI (invokeID,, sstuiArg) to ssf)][B(!"@YYr!"r@)[(! 6Y!)][)/()]]]]]][GB(!"r!"r)[(! 6!Z)][3>(! 6! d)[8(! WaitFor_ SSF)]]]]][>(!_F_F!"F_>[8(!e to call GetLegPtr (controllingLegID) /* Terminate the BCSM associated with the controlling leg. */)]]][E(!!")[ E(! 6! )[8(!2g6F!Z)][3"@(! 6! d)[8(! Originating_ _Setup)]]]]]]]]]]} TO SSF /* Pass Connect on to the SSF-FSM associated with this segment. */)]]][I@(!F~F!"Ft()[(! l! 22!(7)[E(! l)[E(! 6)[E(! 6d! )]][ E(! 6)][9E(! 6! )[8(!$ /* 1-Parx)[=(! 6d! ,!)[8(! Network_ Suspend_ Ind(nsrArg))][=(!@r!"r@)[%>(! 6dr! ,)[8 call AddLeg(aiArg!legToBeCreated! sendingSideID))][E(!~~!"~)[8(! 6! Failed)][E(! 6d! ,)[8(! Failed2)]]][EM (coArg))][C@(!XX!"XX)[6@(! 6! ,)[8(!f obcsmPars!startState := analyseInformation, obcsmPars!legID := coArg!legToBeCreated! sendingSideID)][L@i(!XX!"XX)[ (@(! 6! d)[8(! O_BCSM (obcsmPars))][ O@(!" !" )[%@(! j6 !! )[8(! Create an instance of an O-BCSM: - starting off from the AnalyseInformation PIC. - with the legID as passed in the ConnectArg. - with routing information as passed in the ConnectAkrg.)]]][R@(!X:Xl!"XlX:)[%+@(! 6l! ,)[8(!I SetLegPtr (coArg!legToBeCreated! sendingSideID, offspring, originating))][ U@(!"l !" )[.@(! 6 !! )[8(!0 Associate the new passive leg with the O-BCSM.)]]][X@(!XX4!"X4X)[m(! 6X4!Z)][1@(! 64! d)[8(! CO3)]]]]]]]]]]]]]]][A(!!")[8(! 6! Terminating)][@)[6ME(! 6LF! d)[8(! bcsmStopped := false)][nE(!!")[(! 6!Z)][3PE(! 6L! d)[8o(! WaitFor_ SSF)]]]]]]]]]]]]]]]]]]}d)[8(! bcsmStopped := false)][nE(!!")[(! 6!Z)][3PE(! 6L! d)[8( CSA that this segment is released.)]]][IC(!!")[41C(! 6~! d)[8(! )]]]]]]]]]]]]]]]]]]]]}F!"F&&r!"&r)[8(! 6?! false)][l>(! 6r! d!)[8(! CSStop (callSegmentID) to CSA)][ {>(!!"(! 6R!! )[8(!0 Associate the new passive leg with the O-BCSM.)]]][E(!4!"4)[E(! 6&4! d)[8(! AI3)s]]]]]]]]]]]]]]][E(!&!"&)[8(! 6! Terminating)][)E()]]]]]]][E(! 6! d)[8(! AI3)][E(!FXtF!"FFX)[%E(! 6! ,)[8(!= SetLegStatus (aiArg!legToBeCreated! sendingSideID, pending))][ E(!"!"u)[E(! 6!! )[8(!3 Set the status of the new passive leg to pending.)]]][F(!F FR!"FRF )[E(! 6R! d!(! Terminating_ _1_Party_Setup)]]]]]]][7(!L!"L)[8(! 6-! false)][7(! 6! d!)[8(!" Disconnect_ Leg()[(! l! 22!(p)[:(! l)[:(! 6)[":(! 6d! )]][ %:(! 6)][9-;(! 6! )[8(! /* ForwaexpLeg := call ExportLeg (legId))][ ?(! R!"R )[?(! 6 R! d!)[8(! CSExport_ LegResp (expLeg))][?(!!" due to a MoveLeg or MergeCallSegments operation from the SCF.)]]]['(!!")[%'(! 6! d)[8(! ImportLeg (expLeg,legId))]['(!Rl:)[%E(! 6l! ,)[8(!I SetLegPtr (aiArg!legToBeCreated! sendingSideID, offspring, originating))][ E(!" 99R!"R )[Er&)[y=(! 6d&! ,!)[8(!( redefined Service_ FeatureInd (sftArg))][=(!!")[|=(! 6d! 6^! d)[8(! WaitFor_ SSF)]]]]][>(!X__!"X_)[8(! 6x! false)][>(! 6! d!)[8(!(!!")[(! 6,! d!)[8(! redefined PIC(pic))][]A(!&X!"X&)[ (! ld -> Terminate call segment On-Hold -> On-Hold On-Hold -> Transfer Note: Processing of atomic operations used by the CSA. */)]][3'(! 6 ^! d)[8(! On_Hold)]['(!!"(! Stable_2_ _Party)]]][(!@!"@)[8(! 6! else)][(! 6@!Z)][3(! 6@! d)[8(!RL!"LLR)[8(! 6ek! false)][)()]]]]]]]]][3xA(! 6,x! d)[8(! *)][{A(!!" dependent on the BCSM attribute of the controlling leg.)]]][6(!^^L!"^L^)[8(! 6w! Originating)][6*A(! 6L! ,)[8(!v obcsmPars!st^@C(!@!"@)[8(! 6! true)][6mC(! 6R@! d)[8(! bcsmStopped := true)][pC(!!"40ing-Setup -> Originating-1-Party-Setup Termin41ng-Setup -> Terminating-1-Party-Setup */)]][3j742(! 6^! d)[8(!6 Originating_ _Setup)][v7(!R m*! ,!)[8(!* DataReqInd (udArg,csaID,legID, callFlag))][1%+(!"!")[7+(! 6!)[8(! to CSA)]]][ ! 6! )[8(!\ /* The UTSI is coming from the remote party, and should be sent on the controlling leg. */)]]]]}]]]]][C(!*x  !"x )[8(! Connnect (invokeID,,coArg))][1$(!x!"x)[7J$(! 6!! )[8(!K TO SSF /* Pass Connect on to the SSF-FSM associated with this segment. */)]]][$(!F!"F)[(! 6F!Z)][3M$(! 6F! d)[8(! Forward)]]]]]]]]]]]]}RR!"ld -> Terminate call segment On-Hold -> On-Hold Note: Processing of atomic operations used by the CSA. */)]][3((! 6 ! d)[8(! On_hold)][ )(!&X!"X&CSStop (callSegmentID) to CSA)][ >(!x!"x)[>(! 6l!)[8(!4 Indicate to the CSA that this segment is released.)]]][>(!!" F!"F)[ ((! 6F! d)[8(! call noOfLegs)][I((!!")[8(! 6-! 1)][(!e an instance of an O-BCSM: - starting off from the SelectRoute PIC. - with the legID as passed in the SRArg. - with routing information as passed in the SRArg.)]]][F(!:l!"l:(! 6L!)[8(!2 to SSF /* Instruct the SSF-FSM to terminate. */)]]][=C(!Fx!"xF)[ %C(! 6Rx! d)[8(! dialogue_ Active)][!"X)[ ((! 6 ! d!)[8(!" redefined BCSMStop (legId,party))][ 1((!L!"L)[((! 6Lthe MoveCallSegments operation is processed by the IH and CSA, the CS may be requested to renumber the legs. In such a case, the CSA sends the signal SetLegID to the CS prior to exporting it into another CSA. */)]][3A(! 6R! d!! )[8(!0 Associate the new passive leg with the O-BCSM.)]]][F(!4!"4)[UF(! 6&4! d)[8(! SR3)]]]]]]]]]]]]]]][jF!")[(! 6X!)][)=()]]]]]][=(!" F F&!"F&)[=(! 6&! ,!)[8(! DataInd (udArg))][=(!FF!"FF)[=(! 6! ,!)[8(!6 DataInd (udArg) to call GetLegPtr (controllingLegID))][=(!"FyonDPs Natural := 0, noOfUTSIDPs Natural := 0, party PartyType, cwaFlag Boolean := false;)]]]]}ted with the controlling leg. */)]]][~2(!X~X!"XX~)[ K2(! 6! )[8dlegId))][T;(!   R!" R  )[K;(! 6R! d!)[8(! CSImport_ LegResp)][1W;(!!")[7N;O(! 6&! d!)[8(!! CSImportLeg_ Req (legId,expLeg))][Q;(!  !"  )[%H;(! 6! d)[8(! ImportLeg (expLeg, X! d!)[8(!! CSImportLeg_ Req (legId,expLeg))][ &(!!")[&(! 6X!)[8(!I From CSA process due to a SplitLeg on te-1-Party -> Stable-1-Party Stable-1-Party -> Null (via WaitForSSF) Note: Processing of atomic operations used by the CSA. */)]][3B(! 6! d)[8(! Stable_1_ _Party)][B(!&X&!"&&X)[B(! 6! d!)[8(! CSExport_ LegReq (legId))][ B(!!"X)[B(! 6!)[8(!Z From CSA process due to a SplitLeg, MergeCallSegments or MoveLeg operation from the SCF.)]]][B(!&& !"& &)[6OC(! 6 ! d)[8(!" expLeg := call ExportLeg (legId))][XC(!&&!"&&)[RC(! 6! d!)[8(! CSExport_ LegResp (expLeg))][1[C(!!")[7UC(! 6!)[8(! to CSA)]]][^C(!&&L!"&L&)[ B(! 6L! d)[8(! legId = controllingLegID)][B(!d)[8(! Forward)]]]]]]]]]]]]]]}]]]]]]]]]}2!!3)[!+(! 43!!3)[!,(! 44!!3)]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]}(!= SetLegStatus (ciArg!legToBeCre0&&!"&&)[8(! 6?! true)][(! 6&!Z)][3B(! 6! d)[8(! Stable_1_ _Party)]]][B(!~~{6! d!)[8(! CSImport_ LegResp)][1TD(!!")[7*D(! 6!)[8(! to CSA)]]][ZD(!,,!$ 35!!3)[!$(! 36!!3)]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]}3)[!&(! 38!!3)[!'(! 39!!3)[!((! 40!!3)[!)onformation (invokeID,,aiArg))][E(!X!"X)[ E(! 6&! d)[8(! CP!Controlling_ Leg!BCSM)][ E(! !" 12-> Originating-Setup */)]][3F(! 6&13! d)[8(! 1_Party)][2F(!!"3)[F(! 6&!  ty -> Originating-Setup */)]][3F(! 6&^! d)[8(! 1_Party)][XF(!!")[F(! 6&! d!)[8(! SelectRoute (invokeID,,srArg))][[F(!X!"X)[ "F(! 6&! d)[8(! CP!Controlling_ Leg!BCSM)][ dF(! !" )[%F(! 6 !! )[8(![ SR is only allowed if the controlling leg is supported by an O-BCSM in the 1-Party state.)]]][gF(!R!"R)[8(! 6! Originating)][.F(! 6&R! d!)[8(! BCSMStop)][1pF(! !" )[71F(! 6 R!! )[8(!e to call GetLegPtr (controllingLegID) /* Terminate the BCSM associated with the controlling leg. */)]]][vF(!!")[ =F(! 6! )[8(!2 call AddLeg(srArg!legToBeCreated! sendingSideID))][|F(!~~!"~)[8(! 6! Failed)][@F(! 6d! ,)[8(! Failed2)]]][F(!F!"F)[8(! 6! Successful)][6CF(! 6F! ,)[8(!' obcsmPars := call MapSRToBCSM (srArg))][F(!!")[6FF(! 6! ,)[8(!_ obcsmPars!startState := selectRoute, obcsmPars!legID := srArg!legToBeCreated! sendingSideID)][F(!!")[ LF(! 6&! d)[8(! O_BCSM (obcsmPars))][ F(!"99R!"R)[IF(! 6R!! )[8(! CreatF!"F)[7=%(! 6F!)[8(! to SSF)]]][I%(!!")[(! 6!Z)][3F%(!Z)][3?(! 6&x! d)[8(! On_Hold)]]]]][?(!Leex!"xLe)[8(! 6~! false)][(! 6x!Z)][3!)[8(! 6 ! joined)][%((! 6! d)[8(! RemoveLeg (legId))][=((!F!"F)[ ((! 6%fer -> Transfer Transfer -> On Hold Note: Processing of atomic operations used by the CSA. */)]][3\!(! 6R! d)[8(! Transfer)][!(!&X!"X&)[e!)LegStatus (coArg!legToBeCreated! sendingSideID, pending))][ 7@(!"!")[ @(! 6!! )[8(!3 Set the status of the new passive ()[(! l! 22!(_)[h(! l)[k(! 6)[n(! 6d! )]][ q(! 6)][9,'(! 6&! )[8(! /* Stabl)[8(! Originating_ _1_Party_ _Setup)]]][F((!!")[8(! 6 ! >1)][(! 6!Z)][3%((! 6! d)[8+oming or outgoing?)]]][}*(!!")[8(! 69! No /* Incoming */)][e*(! 62! ,!)[8(!! Network_ SuspendReqInd (nsrArg))](! 6! false)][(! 6! d!)[8(! PICResume)][1(!R!"R)[7(! 6!)[8(! to ca ,!)[8(!A ServiceFeatureInd (sftArg) to call GetLegPtr (controllingLegID))][=(!!")[(! 6!Z)][3=(! 6! 0)[A(! 6x!)[8(!C Instruct the BCSM to forward the information to the remote party.)]]][<(!@r!"r@)[<(! ng)]][$KG(! 6r! )[(! 6! MapSF_ ToBCSM)]][$<(! 6:! ,)[(! 6l! DPFiltering_ UTSI)]][$NG(! 6:! )[(! 6*5[(! l! 22!(6)[k<(! l)[n<(! 6)[q<(! 6d! )]][ t<(! 6)][9w<(! 6 ! &)[8/* In alnating-Setup -> Originating-1-Party-Setup Terminating-Setup -> Terminating-1-Party-Setup */)]][3j7(! 6^! d)[8(! Originating_ _Setup)][v7(!RR!"RR)[m7(! 6! d!)[8(!# Disconnect_ Leg (invokeID,,dlArg))][s7(!RXR!"RRX)[ p7(! 6! ,)[8(!: dlArg! legToBeReleased! sendingSideID = controllingLegID)][7(! !" )[8(! 6 ! true)][%7(! 6 ! d)[8(!, SetLegStatus (controllingX)[78(! 6!)[8(! to SSF)]]][8(!L!"L)[(! 6L!Z)][37(! 6L! d)[8(! Originating_ _1_Party_Setup)]]]]]]][7(!!")[8(! 6! false)][7(! 6L! d!)[8(!" Disconnect_ Leg(invokeID,,dlArg))][17(!F!"F)[77(! 6F!)[8(! to SSF)]]][7(!L!"L)[(! 6d!)[8(! Network_ ResumeInd (nsrArg))][1=(!@!"@)[7 =(! 6@!)[8(! to call GetLegPtr(leg1))]]]["=(!"3Pars))][ 6(!F&F!"&FF)[6(! 6&!)[8(! Create an O-BCSM: - which starts from the WaitMidCall state of the Active state - with leg ID set to[1*(!"^ww!"^)[7h*(! 6!)[8(! to call GetLegPtr (legId))]]][*(!L~!"~L)[ ControllingLegID)]]][6(!^x^!"^^x)[%6(! 6! d)[8(!6 SetLegPtr (controllingLegID, offspring, originating))][6(!^^@!"6x!"x)[=(! 6! ,!)[8(! Network_ Resume_ Ind(nsrArg))][=(!@r!"r@)[% >D(! -)]]]]]]]]]]]]]]}(!D SetLegID (currentLegID,newLegID) to call GetLegPtr (currentLegID))][A(!!")[6A(! 6 ! ,)[8(!f cp!passiveLe(! 6! ,!)[8(!, NetworkResume_ ReqInd (nsrArg,csaID,legID))][1*(!"!")[7*(! 6!)[8(!][yF(!FF!"FF)[3:F(! 6! d)[8(! Originating_ _Setup)]]]]]]]]]]}associated with this segment. */)]]][F(!FF!"Fted with this segment. */)]]][F(!FF!"FF)[3E(! 6! d)[8(! Originating_ _Setup)]]]]]]]]]]})[8(!& AnalyseInformation (invokeID,,aiArg))](! Stable_1_ _Party)]]][9(!!")[8(! 6! >1)][(! 6!Z)][33(! 6L! d)[8(! \6r! d!)[8(! PIC(pic) to Sender)][<(!"!")[(! 6!)][)<()]]]]]]]][<(!L!"Lx)[(! 6L!)][(! 6! d!)[8(! PIC (PIC))][1(!LL!"LL)[7L!Z)][37(! 6LL! d)[8(! -)]]]]]]]]]][37(! 6R! d)[8(! Terminating_ _Setup)][7(!x!"x)[7(! 6R! d!)[8(!# Disconnect_ Leg (invokeID,,dlArg))][7(!@!"@)[ 7(! 6 @! ,)[8(!: DLArg! legTo)]]]]]]]]][%%(!!")[8(! 6! false)][%(! 6L! d!)[8(!" Disconnect_ Leg(invokeID,,dlArg))][1@%(!9X9X!"X9)[8(! 6qR! true)][%8(! 6! ,)[8(!, SetLegStatus (controllingLegID, surrogate))][9(!XLX~!"X~XL)[8(! 6~! d!)[8(!" Disconnect_ Leg(invokeID,,dlArg))][18(!!")[78(! 6~!)[8(! to SSF)]]][9(!XX!"XX)[(! 6X!Z)][38(! 6! d)[8(! Stable_1_Party)]]]]]]][-8(!99!"9)[8(! 6R! false)][8(! 6L! d!)[8(!" Disconnect_ Leg(invokeID,,dlArg))][108(!F!"F)[78(! 6F!)[8(! to SSF)]]][38(!!")[(! 6!Z)][3!8(! 6L! d)[8(! -)]]]]]]]]]][9[=(! 6&! )[8(! /* Notes: - DisconnectLeg is not defined for the following states: Originating-1-Party-Setup, Terminating-1-Party-Setup, Stable-1-Party. - DisconnectLeg of the contrn! d)[8(!, SetLegStatus (controllingLegID, surrogate))][8(!XxX!"XXx)[8(! 6! d!)[8(!" Disconnect_ Leg(invokeID,,dl](!&!"&)[8(! 6! Terminating)][)@F()]]]]]]][F(! 6! d)[8(! SR3)][^F(!FXF!")[E(! 6 !! )[8(![ AI is only allowed if the controlling leg is supported by an O-BCSM in the 1-Party state.)]]][E(!R!"R)[8he controlling leg from the SCF.)]]][&(!RR!"RR)[%&(! 6! d)[8(! ImportLeg (expLeg, legId))][ &(!  !" E(!! CSImport_ LegReq (legId,expLeg))][ BD(!!"^)[D(! 6X!)[8(!R From CSA process due to a MoveLeg or Merge- CallSegments operation from the SCF.) !" )[Z8(! 6d ! d!)[8(!# redefined SetupResp_ Conf(scrArg))][ u8(!,RR!"RR,R)[]8(! 6 !)[8(! From T_BCSM)]]][x8(!!")[%`8(! 62! ,)[8(!) SetLegStatus (controllingLegID, joined))][ {8(!"^3w3w!"^3)[c8(! 6!)[8(!2 Set the status of the controlling leg to joined.)]]][~8(!~!"~)[f8(! 6d! d!)[8(! SetupResp_ Conf (scrArg))][18(!,!",)[7i8(! 6!)[8(!. to CSA /* To remote (! to CSA)]]][!(!!")[ ?(! 6 ! ,)[8(! legId = controllingLegID)][?(! ee!"*(!"^ww!"^)[7*(! 6!)[8(! to call GetLegPtr (legID))]]][*(!L!"L)[!"R)[w!(! 6R! d!)[8(! CSImport_ LegResp)][1'(!L!"L)[7'(! 6L!)[8eg joined is imported using the MoveCallSegments operation, then the MoveLeg operation is used to move the controlling leg in to this CS. */)]]]]}E(! 6R! d!)[8(!& AnalyseInformation (invokeID,,aiArg))]-> 1-Party Null -> On-Hold Note: Processing of atomic operations used by the CSA. */)]][3&(! 6! d)[8(! Null)][&(!R&RX!"RXR&)[&(! 6)[((! 6 X! d!)[8(! BCSMStop (legId, party))][ )(!!")[%((! 6 ! d)[8(! RemoveLeg (legId)t!"X&)[((! 6RX! d!)[8(! BCSMStop (legId))][((!!")[%((! 6R! d)[8o,)[%Y(! 6 ! d)[8(! DPFiltering (DP))][w(!,,!",,)[(! 6,!Z)][3q(! 6! d)[8X)[(! 6!)][)=()]]]]]][=(!"  &!"&)[=(! 6 &! ,!)[8(! redefined ReleaseInde()[(! l! 22!(x)[\9(! l)[_9(! 6)[b9(! 6d! )]][ e9(! 6)][9:(! 6! )[8(! /* Trans429 -> Forward Forward -> Originating-1-Party-S3up Forward -> Stable-1-Party Forward -> T30sfer Note: Processing of atomic operations used31 the CSA. */)]][3(:(! 6,! w +Frd -> Forward Forward -> Originating-1-Party-Setup Forward -> Stable-1-Party Forward -> Transfer Note: Processing of atomic operations used by the CSA. */)]][3(:(! 6,! d)[8(! Forward)][L:(!,,!",,)[+:(! 6! d!)[8(! CSExport_ LegReq (legId))][ O:(!!"^)[.:(! 6!)[8(!G From CSA process due to a MoveLeg or SplitLeg operation from the SCF.)]]][R:(!,&,X!",X,&)[ 1:(! 6X! d)[8(! legId = controllingLegID)][X:(!LL!"L)[8(! 6e! false)][ :(! 6! ,)[8(! call GetLegStatus (legId))][ ;(!"99!"9)[:(! 6!)[8(! Which leg is exported?)]]][;(!9 9 !" 9)[8(! 69!) joined /* A joined leg was exported. */)][6B>(! 6! d)[8(!" expLeg := call ExportLeg (legId))][E>(! ~ !"  ~)[N>(! 6! d!)[8(! CSExport_ LegResp (expLeg))][1T>(!!")[7@:(! 6!)[8(! to CSA)]]][Q>(!  F!" F )[ :(! 6F! d)[8(! call noOfLegs)][ ;(!xXxXr!"Xrx)[8(! 6q! 1)][(! 6Xr!Z)][3;(! 6r! d)[8(! Originating_ _1_Party__ Setup)]]][ ;(!xxr!"rx)[8(! 6! >1)][(! 6r!/(invokeID,,dlArg))][17(!x!"x)[77(! 6!)[8(! to SSF)]]][7(!4!"4)[(! 6C(!B NetworkSuspend_ Ind(nsrArg) to call GetLegPtr (controllingLegID))][3>(!:!":)[(! 6:!Z)][30>(! 6:! d)[8(!&)[ Y*(! 62X! ,)[8(! call IsBCSM(Sender))][ z*(!"^!"^)[\*(! 6X!)[8(!% Is the signal inc!)[8(![ From CSA process due to a MoveLeg, MergeCallSegments, SplitLeg(c) operation from the SCF.)]]][YE(!!")[;E(! 6L! d!)[8 e)[8(! 6~! true)][%?(! 6&! d)[8(!) SetLegStatus (controllingLegID, shared))][ ?(!Fx!"xF)[(! 6x!r!"r)[8(! 6'! 1)][(! 6r!Z)][3>(! 6r! d)[8(! Stable_1_ _Party)]]][>(!&&#! d)[8(!" expLeg := call ExportLeg (legId))][9(!L~!"~L)[9(! 6L~! d!)[8(! CSExport_ LegResp (expLeg))][1)[A?(! 6 L! d!)[8(! CSImport_ LegResp)][1S?(!~~!"~~)[7D?(! 6L!)[8(! to CSA)]]][V?(!]]]]]][U:(!,, !", ,)[8(! 6E! true)][64:(! 6 ! d)[8(! 'Error situation')][[:(!,,!",ng of detection points (DPs) to the SSF. */)]][32(! 6^! d)[8(! *)][V(!,,!",,)[S(! 6! d!)[8(! X)[78(! 6!)[8(! to SSF)]]][8(!4!"4)[(! 64!Z)][37(! 64! d)[8v false)][)()]]]][A(!LL!"L)[8(! 6e! false)][ A(! 6! d)[8(!/ pic!pic = sendSTUI or pic!pic = disconnect ll GetLegPtr (legID))]]][A(!"4!"4)[(! 6!)][)A()]]]]]]]]][9C(! 6R! )[8(! /* Note: Continue(! 6!! )[8(! Create an instance of an O-BCSM: - starting off from the O-Null PIC. - with the legID as passed in the SFArg. - with routing information as passed in the SFArg.)]]][F=6x!Z)][3G?(! 6 x! d)[8(! On_Hold)]]]]]]]]][e?(!!")[8(! 6 ! false)][%oD(! 6F! M&)[)(! 6X! d!)[8(! Network_ Resume_ Req(nsrArg))][*(!RR!"RR)[ C(! 6! d)[8(!& call ng of points in call (PICs) from the SSF. */)]][3(! 6,,! d)[8(! *)][ (!^&^!"&^^)[(! 6&,!)[8(! PICs)]]][})[(! 6!Z)][3(C(! 6R! d)[8(! WaitFor_ SSF)]]]]][CC(!@!"@)[8(! 6! fal6,X! d)[8(! PIC!LegId = controllingLegID)][A(!!")[8(! 6! true)][ A(! 6,! d)[8(!/ pi"()[(! l! 22!(~)[6(! l)[6(! 6)[6(! 6d! )]][ 6(! 6)][96(! 6! )[8(!o /* The t)[o>(! 6r!)[8(!4 Indicate to the CSA that this segment is released.)]]][~>(!&&!"&:&&)[4r>(! 6! d 6! Originating)][(! 6L!Z)][) =()]]]]]]][3%=(! 6x! d)[8(! Forward, Transfer)][@=(!  !"  )[(=(! 6! d!)[8(! DataReq (udArg, callFlag))][ C=(!@@!"@G@@)[+=(! 6!)[8(!U From O-BCSM in the backward direction, or from the T-BCSM in the forward direction.)]]][F=(! r !"  r)[ .=(! 6! ,)[8(! callFlag)][I=(!!")[8(! 6! senderRef /* From O-BCSM */)][1=(! 6! d!)[8(! DataInd (udArg))][1O=(!X!"X)[74=(! 6!)[8(!& to call GetLegPtr (MkString(I2O(3))))]]][U=(!"  4!" 4)[(! 6 !)][3==(! 6 4! d)[8(! -)]]]]][L=(!%%!"%)[8(! 6L! receiverRef /* From T-BCSM */)][7=(! 6! d!)[8 (! DataInd (udArg))][1R=(!~!"~)[7:=(! 6!)[8(! to call GetLegPtr(leg1))]]][X=(!"  4!"  4)[(! 6 4!Z)][)==()]]]]]]]]]]]}~)[7:=(! 6!)[8(! to call GetLegPtr(leg1))]]][X=(!"  4!" Xd)[8(!6 SetLegPtr (controllingLegID, offspring, terminating))][6(!"'^'^@!"^@)[(! 6^'!)][)6()]]]]]]]]]]]]]})[8! Create an T-BCSM: - which starts from the WaitMidCall state of the Active state - with leg ID set to ControllingLegID)]]][6(!x!"x)[%6(! 6L!  (!% BroadcastToLegs (NetworkSuspendInd))][>(!:!":)[(! 6:!Z)][3=(! 6:! d)[8(! -)]]]]]]][=(!"(! 6L!Z)][3*(! 6dL! d)[8(! -)]]]]][*(!"!")[8(! 63 ! Yes /* Outgoing */)][* 6L! d)[8(! -)]]]]]]]]]]]]}gs in the CS where ctwaArg!legID is residing to resume call processing. This is not clearly described in Q.1228, section 17 but is necessary for the CPH functionality. */)]]]]}})[8@,!)[8(!D SetLegID (currentLegID,newLegID) to call GetLegPtr (currentLegID))][A(!!")[6A(! 6 ! ,)[8(!f cp!passiveLeX!"XX)[=(! 6! ,!)[8(!8 FailureInd (fArg) to call GetLegPtr (controllingLegID))][=(!"XX!"& &X)[%_(! 6 ! d)[8(! DPFiltering (DP))][z(!"&&,,!",&)[(! 6,!)][)q(C(!R!"R)[8(! 6k! else)][6KA(! 6x! d)[8(! udArg!callRef := cp!sigconID)][NA(!!",)[(! 6,!Z)][3::(! 6! d)[8(! Forward)]]]]]]]]]]]]}! >1)][(! 6!Z)][33(! 6L! d)[8(! d)[8(! call noOfLegs)][zE(!XX!"XX)[8(! 6q! 1)][(! 6X!Z)][3tE(! 6! d)[8(!(! 6~!Z)][3k*(! 6d~! d)[8(! -)]]]]][*(!"!")[8(! 6 ! Yes /* Outgoing */)][n*! d!)[8(! ReportUTSI (,rutsiArg) to csa)][MB(!"@YYr!"r@)[(! 6Y!)][)/()]]]]]][JB(!")[7@(! 6R!! )[8(!K TO SSF /* Pass Connect on to the SSF-FSM associated with this segment. */)]]][I@(!FF!"FF)[(! de-Multi-Party -> Stable-Multi-Party Note: Processing of atomic operations used by the CSA. */)]][3'(! 6! d)[8(! Stable_Multi_ _Party)]['(!&X!"X&!")[8(! 6e! receiverRef)][67+(! 6! ,)[8(! newLegID := legID)][=+(!"F__!")][3<(! 6L! d)[8(! -)]]]]][<(!,,L!",L,)[8(! 6}! Originating)][(! 6,L!Z)][)<()]]]]]])][)qB()]]]]]]][9B(! 6^! )[8(!  /* Note: SendSTUI on the controlling leg in any multi party state will result in that all BCSMs will generate a DataReq towards the signalling control. The "nWithArgument (invokeID,, dfcwaArg))][}B(!&X!"X&)[kB(! 6XX! d!)[8(!A DisconnectForward_ ConnectionWithArgument (invokeID,, dfcwaArg))][1B((!,^!"^,)[7hB(! 6^X!)[8(! to ssf)]]][B(!!")[(! 6!Z)][3qB-,&,X!",X,&)[<(! 6X! d!)[8(! Network_ SuspendReq (nsrArg))][ <(!!"S)[<(! z)[8(! * (Null))][A(!&!"&)[A(! 6R&! d!)[8(!# SetLegID (currentLegID, newLegID))][A(!!"c!pic = sendSTUI or pic!pic = disconnectLeg)][A(!  !" )[8(! 69! true)][6A(! 6X! d)[8(! pic!party := localParty)][r!"&r)[8(! 6?! >1)][(! 6&r!Z)][3>(! 6r! d)[8(! Transfer)]]]]]]][c>(!33!"$3)[8(! 6L! false)][ b'(! 6F! ,)[8(! call noOfLegs)][}'(!F__!"F_)[8(! 6x'F! d)[8(! call noOfLegs)][C((!xx!"x)[8(! 6! 1)][(! 6!Z)][3"((! 6d! d(! 6 ! d)[8(! Stable_2_ _Party)]]][:(!x@@!"@x)[8(! 6Y! >1)][(! 6@!Z)][3:(! 6*! 0)][k'(! 6! d!)[8(! SSFStop)][1'(!L~!"~L)[7'(! 6~!)[8(!2 to SSF /* Instruct the SSF-F(SM to terminate. */)]]][>(!@r!"r@)[ >(! 6Rr! ,)[8(! dialogue_ Active)][>(!l!"l)[88(! 6RX! d!)[8(!! CSImport_ LegReq (legId,expLeg))][ !(!~!"~)[h!(! 6~X!)[8(!P From CSA process due to *a MergeCallSegments or MoveLeg operation from the SCF.)]]][!(!!")[%n!(! 6R! d)[8(! ImportLeg (expLeg,legId))][!(!R(! Forward)]]]]]]][:((!!")[8(! 6-! pending)][%((! 6! d)[8(! RemoveLeg (legId))][@((!,R,!",,R)[8(! 6Ek! true)][6 :(! 6! d)[8(! 'Error situation')][ :(!,,L!",L,)[)[8(!% Originating_ _Setup, Stable_2_Party)][y((!X!"X)[a((! 6R! d!)[8(!" redefined BCSMStop (legId,party))][ |((!A()[(! l! 22!(M)[7(! l)[7(! 6)[7(! 6d! )]][ 7(! 6)][998(! 6&! )[8(!( /* Stabl}Z)][3:(! 6r! d)[8(! Forward)]]]]]]]]][;(!99L!"L9)[8(! 6'!- pending /* The pending leg was exported. */)][6W>(! 6!! )[8(!5 Set the status of the controlling leg to surrogate.)]]][}$(!~!"~)[G$(! 6! d!)[8nating-1-Party-Setup -> Stable-1-Party Terminating-1-Party-Setup -> Stable-1-Party Note: Processing of atomic operations used by the CSA. */)]][3T8(! 6d! d)[8(! Terminating_ _1_Party_ _Setup)][r8(!18-Party -> On-Hold Stable-1-Party -> Transfer 19te: Processing of atomic operations used by the 2A. */)]][35?(! 6 ! d3[8(! Stable_1_ _Party)][Y?( T 17)[8?(! 6 &! d2!)[8(!! CSImport_ LegReq (22Id,expLeg))][ J?(!XX!4XXX)[;?( KQV2!Ne-1-Party -> On-Hold Stable-1-Party -> Transfer Note: Processing of atomic operations used by the CSA. */)]][35?(! 6 ! d)[8(! Stable_1_ _Party)][Y?(!&!"&5)[8?(! 6 &! d!)[8(!! CSImport_ LegReq (legId,expLeg))][ J?(!XX!"XXX)[;?(! 6&!)[8(!R From C6SA process due to a MergeCall- Segments or MoveLeg operation from the SCF.)]]][M?(!!")[ \?(! 6! ,)[8(! legId = controllingLegID)][_?(!7R!"R)[8(! 6k! true)][%>?(! 6 ! d)[8(! ImportLeg (expLeg,legId))][P?(!L!"L(! 6!! true)][6sC(! 6l! d)[8(! bcsmStopped := true)][vC(!!")[(! 6!Z)][3>(! 6<)[8(! call noOfLegs)][:(!_R_R!"R_)[8(! 6kx! 1)][(! 6R!Z)][39(! 6! d)[8(!  X!"X)[w(! 6d! d!)[8(! CSExport_ LegReq (legId))][ (!,^!"^,)[(! 6^!1 !)[8(! From BCSM)]]][8(!!")[8(! 6! d!)[8(! SSFStop)][18(!~LL!"! d)[8(! WaitFor_ SSF)]]]]][>(!~l!"l~)[8(! 6-! false)][>(! 6l! d!)[8(! (!4f!"f4)[(! 6f!Z)][F(! 6^f! d)[8(! CO2)]]]]]]]]]]]]]]]][F(! 6! d)[8(! CO2)][>G(!FFFx!"FxFF)[%!G(! 6x! ,)[8(!I SetLegPtr (sfArg!legToBeCreated! sendingSideID, offspring, originating))][ 'G(!"?!")[F(! 6x!! )[8(!0 Associate the new passive leg with the O-BCSM.)]]][$G(!FF@!"F@F)[%F(! @6@! ,)[8(!= SetLegStatus (sfArg!legToBeCreated! sendingSideID, pending))][ G(!"rr!"r)[F(! 6@!! )[8A(!3 Set the status of the new passive leg to pending.)]]][ G(!FF!"FF)[%F(! 6! ,)[8(!, SetLegStatus (controllingLegID, surrogate))][ GB(!"SS::!":S)[F(! 6!! )[8(!5 Set the status of the controlling leg to surrogate.)]]][G(!FF!"CFF)[F(! 6! d!)[8(!" SelectFacility (invokeID,,sfArg))][1G(!!")[7F(! 6!! D )[8(!F TO SSF /* Pass SF on to the SSF-FSM associated with this segment. */)]]][G(!F4Ff!"FfF4)[(! 6Ff!Z)][3F(! 6f!