------------------------SDT2 SSF_FSM--------------------------------------------------------------------------------------------------------------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------!%()PageOrdert----------------------------------- :"SSF_FSM--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------F!"F,)[8(! 6! true)][)l)()]]]]]]]][#'(!"&??X!"X&)['(! 6RX! dB()[8(!S Redefined Process Type <> SSF_FSM)]} SSF_FSM)]}SF_FSM)]}-----------------------------------------------------------------------------------------------------------------------------------i()[(! l! 22!(R)[ (! r)[ (! 6)[ (! 6d! )]][ (! 6)][A(!rRR!!)[(Events are armed for a given leg. */)]][$_(! 6d! d)[(! 6}! IsUTSI_ Armed)]][$#*(! 6R! ,)[(! 6F! Process_ ReportFacility)]][$&*(! 6!%()HeadingText-----------------------------------11PageOrder-------------------------------------4-----------------------------------------------7------------------------------------------------ f }|! 6 ! CS)][`(! )][.(! )[8(! 6! (SSF2_OUT))]][(! 6R!)][.(! )[8(! 6k! (SSF2_IN))]][(! 6r R!)]][9(! 6&! )[8(!' /**** DECLARATION OF OPERATIONS ****/)]][9 (! 6d! )[8(!4 /* Operations for exporting and importing legs. */)]][9(! 6 R! )[8(! /* IN CS-2 operations */)]][$(! 6d! )[(! 6! Export_ Event_ Record)]][$)(! 6R! ,)[(! 6z! Process!"&R )[(! 6R! d!)[8(!* ImportLegReq (LegId,Import_ EventRecord))][X(!&&!"&&)[%(! 6 ! d)[8(!1 ImportEvent_ Record (LegId,Import_ EventRecord))][(!&L&~!"&~&L)[ (! 6~! d!)[8(! ImportLegResp to CS)][&()[(! l! 22!(I)['(! l)['(! 6)['(! 6d! )]][ '(! 6 )][9'(! 6! )[8(! /* Note:(8 d)[8(!1 ImportEvent_ Recor9(LegId,Import_ EventRecord))][(!!")[ (! 6 ! d! 8 ImportS)][!")[6p((! 6,! d)[8(!" SET (NOW + Tssf_Duration, Tssf))][((!Fx!"xF)[6s((! 6,x! dZd)[8(!5 ExportEventRecord (currentLegID, exportEventRecord))][ '(!!")[(! 6!)]['(! 6!)[8(!S Renumber the leg by first exporting it and then importing it with the new legID. )]]]['(!FLF~!"F~FL)[%'(! 6~! d)[8(!1 ImportEventRecord (newLegID, exportEvenFor_Instruction, Monitoring)][$(!,!",)[k$(! 6,,! d!)[8(! redefined DPDisconnect (DP))][$(!!"P()[(! l! 22!(1)[&(! l)[&(! 6)[&(! 6d! )]][ &(! 6 )][9'(! 6&! )[8(!W /***** E (! 12!!3)]]]]]]]]]]]]} 13!!3)[!(! 14!!3)]]]]]]]]]]]]]]} 15!!3)[!(! 16!!3)]]]]]]]]]]]]]]]]} 17!!37(! 6R! ,)[8(!" Terminate_ Control_ Relationship)][(!!")[ q(! 6R! ,)[8(! Application_ Active)][k,)[&(! 6&! ,!)[8(!0 Request_ Notification_ ChargingEvent (RNCEArg))][/(!!")[%)(! 6&! SMArg) to cs)][&(!XxX!"XXx)[&(! 6! d!)[8(! Application_ Continue to CS)][&(!XX@!"X@+4rf!"rfr4)[(! 6rf!Z)][3#(! 6f! d)[8(! Idle)]]]]]]]]]]]]]]]]]]]]]][9#(! 6,! )[8(! /* The handgf!Z)][3#(! 6f! d)[8(! Idle)]]]]]]][$(!f!"f)[8(! 6! true)][(! 6f!Z)][3WContinue_ WithArgument)]][$(! 6! ,)[(! 6! Process_ Request_ ReportUTSI)]][$(! 6dR! )[(! 6k! Import_ Event_ Record)]][$(! 6R^)[6(! 6,! d)[8(! CS := Parent)][(!&!"&)[%(! 6,&! d)[8(! Initialise_ DPTa/R! ,)[(! 6k! Process_ Disconnect_ Leg)]][$(! 6R! ,)[(! 6! Process_ SendSTUI)]][$V(! 6R! ,)[(! 63! l! false)][ i)(! 6,! d)[8(! Application_ Active)][)(!FFx!"xF)[8(! 6_! true)][6o)(! 6&x!!)[%k'(! 6x! d)[8(!* Process_ RequestReport_ UTSI (rrutsiArg))]['(!"R!"R)[(! 6!)][) '%! false)][&(! 6! d!)[8(! PICResume (DP!LegId) to CS)][ &(!~!"~)[&(! 6!)[8(! Resumocess_ ReportFacility (dpFacilityArg))][)(!"  !" )[(! 6!)][)'()]]]][)(!*  !" d)[8(! termination :=true)][)(!!")[u)(! 6&! d!)[8(!& Application_ End(termination,) to CS)][)(!#(!4)*!5!7)[!(! 1!!3)[!(! 2!!3)[!(! 3!!3)[!(! 4!!3)[!(! 5!!3)[!r!"r)[(! 6!Z)][3~)(! 6&! d)[8(! Idle)]]]]]]][)(!x!"x)[8$(! 6! false)][(! 6!Z)][3{)(! 6,! d)[8(! Idle)]]]]][)(!~~F!"F~)[8(! 6!*()]]]]]]['(!"&??X!"X&)[q'(! 6rX! d!)[8(! SendSTUI (invokeID,, sstuiArg))]['(!!"H(!"&&!"&)[(! 6!)][)()]]]]]]]]][3'(! 6! d)[8(! *)]['(!F FR!"()[(! l! 22!(d)[\$(! l)[_$(! 6)[b$(! 6d! )]][ e$(! 6)][3h$(! 6,! d)[8(!% Waiting_ For IN CS-2 a new DP UTSI used to report UTSI events, and a new DP Facilty used to report Facility events, are introduced. UTSI and Facility events can be reported in the Monitorting and WFI states. */)]][3'(! 6! d)[8!"F)[(! 6!)][)(()]]]]]]]]]]]]]]]]]}(! 6d! )]][ =(! 6)]]]}(! 6dF! ,)[8(! Monitori{ true)][(! 6~!)][6l)(! 62F! d)[8(! Reset(Tssf))][)(!!")[6r)(! 62! d)[8X)[(! 6X@!Z)][3&(! 6@! d)[8(! Waiting_For_ _Instruction)]]]]]]]]]]][&(!99!"9)[8(! 63R()[(! l! 22!(d)[ (! l)[ (! 6)[ (! 6d! )]][ (! 6)][3 (! 6^! ,)[8(!' Monitori()[(! l! 22!(I)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6R! )[8(! /* The .SSF is invoked in Waiting For Instruction state for SCF Initiated Call Attempts. For this scenario there are no static DPs armed. */)]][2(! 6,! d)[8(! redefined)][(!^!"ble)][_!(!!")[ (! 6,! d)[8(! Start_ State)][(! R!"R )[8(! 690! Idle)][ b!(! 6,R! d)[8(! scfInitiated)][n!(!!")[8(! 6! false)][%h!(! 6,! d)[81(! ArmTDPs (eventTable))][ q!(!L&L!"&LL)[k!(! 6&!)[8(!, Retrieve the status of the TDPs from SSME.)]]][t!(!~!"2~)[(! 6!Z)][3(! 6,! d)[8(! Idle )]]]]][w!(!*,!",)[83(! 6}! true)][(! 6!)][)()]]]][(!LLR!"LR)[8(! 6e! WaitingForInstruction)][6(! 6R! 4 d)[8(! ApplicationActive:= TRUE)][(!LL!"LL)[6(! 6! d)[8(!" Tssf_Duration := Tssf_Duration1)][(!LL5L~!"L~LL)[6(! 6~! d)[8(! SET(NOW+ Tssf_Duration, Tssf))][(!LL!"LL)[6(! 6! d6)[8(!6 InitialTssfActive := TRUE, InitialTssfReset := FALSE)][(!LxL!"LLx)[)(! 6! d!)[8(! Application_ Begin to CS)][)&??X!"X&)[h'(! 6xX! d!)[8(!, RequestReport_ UTSI (invokeID,, rrutsiArg))][z'(!!"8(!( CallInformation_ ReportPending (false))][#$(!!")[6#(! 6 ! d)[8(!! SET (NOW + Tssf_Duration, Tssf))][&$(!9L!"L)[%#(! 6 L! d)[8(!F ProcessEventReportBCSM (DP!LegId,DP!bcsmEvent,ServiceKey, ERBCSMArg))][)$(!!")[<()[w(!GSDL)]}(! Reconnect (RArg))][(!X!"X)[%(! 6F! d)[8(! Process_ Reconnect (RArg))][.(! 8(! 6! false)][ f)(! 6! )[8(!< CallInformationReportPending OR ApplyChargingReportPending)][)(!!")[8(! 6#(! 6 ! d!)[8(!$ EventReportBCSM (,ERBCSMArg) to CS)][,$(!Fx!"xF)[#(! 6 x! d!)[8(! A` ,)[8(!, call IsFacilityArmed (dpFacilityArg!legID))][)(!R!"R)[8(! 6k! true)][%)(! 6L! d)[8(!) Pr   )[ '(! 6! ,)[8(!$ call IsUTSIArmed (dpUTSIArg!legID))]['(! R !"  R)[8(! 69k! true)][%'pd)[8(! termination := false)][G$(!rr!"rr)[#(! 6! d!)[8(!$ ApplicationEnd (termination) to CS)][J$(!rF~)[$(! 6! d!)[8(! PICResume (DP!LegId) to CS)][%(!FFF!"FFF)[ $(! 6F! d)[8(!m6L! d)[8(!8 CallInformation_ ReportPending (not (call AnyDPArmed)))][$(!^^!"^^)[%#(! 6! d)[8(!6 ApplyCharging_ x!)[8(!C Disconnect_ Forward_ ConnectionWith_ Argument(invokeID,,dfcwaArg))][&'(!!")[ '(! 6R! d)[8(! UserInteraction_ Actd!)[8(!+ ExportLegResp (ExportEvent_ Record) to CS)][(!!")[6(! 6! d)[8(! InitialTssfActive := FALSE)][ng)][<)(!,,!",,)[-)(! 6! d!)[8(!+ RequestReport_ UTSI (invokeID,,rrutsiArg))][B)(!,X,!",&!"& )[)(! 6L&! d!)[8(! DPFacility (dpFacilityArg))][)(!!")[ )(! 6! =rocessing of disconnect for multiple leg scenarios. */ )]]]]})[%!(! 6~! ,)[8(! ApplyCharging_ ReportPending)][!(!x!"x)[6!(! 6~=(! 6,!)][)9)()]]]]]][*(!",,  !" ,)[*(! 6! d!)[8(!2 RequestReport_ FacilityEvent (invo)[%t'(! 6r! d)[8(! Process_ SendSTUI (sstuiArg))]['(!"R!"R)[(! 6!)][) '[(! -)]]]]]['(!*  !" )[8(! 6 ! false)][(! 6 !)][)'()]]]]]][)(!"    E]]]]]]]}ing_ Information)][G(!"R3,3,L!",LR)[(! 63!)][)()]]]]]]]]]} true)][)()]]]]]]]]]]]} IsUTSIArmed (dpUTSIArg!legID))][Jt(! 6! ,)[8(! ProcessApply_ Charging)][(!,R,!",,R)[6(! 6! ,)[8(!& ApplyCharging_ ReportPending := TRUE)][F4F)[(! 6F4!Z)][3}(! 64! d)[8(! Idle)]]]]][(!l4!"4l)[8(! 6! FALSE)]~)[6'(! 6R! d)[8(!" UserInteraction_ Active := false)][;'(!@!"@)[(! 6!Z)][3 '(! 6R! d)[8(!F ProcessEventReportBCSM (DP!LegId,DP!bcsmEvent,ServiceKey, ERBCSMArg))][$(!R!"R)[w$(! 6,! d!)[8(!$ EventReportB /* When the MoveCallSegments operation is processed by the IH and CSA, the SSF-FSM may be requested to renumber the legs. In such a case, the CS sends the signal SetLegID to the SSF-FSM. */)]][3(! 6d! ,)[8(!-ݐ)[ n$(! 6,! d)[8(!( call IsDPArmed (DP!LegId,DP!bcsmEvent))][$(!&X!"X&)[8(! 6&! true)][ q$(! d_ Charging_ Information)][G(!"R3,3,L!",LR)[(! 63!)][)()]]]]]]]]]})[%>(! 6! ,)[8(!$ ProcessSen[;(! 6! ,!)[8(!$ SendCharging_ Information (SCIArg))][A(!!")[%>(! 6! ,)[8(!$ ProcessSenQ)[%$(! 6@r! d)[8(!% ApplyCharging_ ReportPending (true))][%(!!")[6$(! 6@! d)[8(! termination := fal()[(! l! 22!(])[*(! l)[-(! 6)[0(! 6d! )]][ 3(! 6)][3*)(! 6^! d)[8(! MonitoriDODIFICATIONS TO THE IN CS-1 EDP PROCESSING AS REQUIRED FOR IN CS-2 *****/)]][3#(! 6! d)[8(!% Monitoring, Waiting_for_Instruction)][#(!^,^^!"^^^,)[#! Process_ SendFacility)]][9(! 6dr! )[8(!q /* For IN CS-2 the procedures for handling of the DP table and the procedure for checking ACG are redefined. */)]][$'(! 6d:! #(! 6&f! d)[8(! Monitoring)]]]]]]]]]]]]]]]]][ $(! !" )[8(! 6! false)][%#(! 6  ! d)[8= FALSE)][!)(!!")[(! 6!Z)][3)(! 6 ! d)[8(! Waiting_For_ _Instruction)][ $)(!!"])[6((! 6F! d)[8(! InitialTssf_ Active := FALSE)][((!L!"L)[6((! 6FL! d)[8)[8(!" UserInteraction_ Active := false)][((!"!")[(! 6!)][)(()]]]]]]]]]]]]]]]][((!"()]]]]]]]]]}!)][) ()]]]]]]]]]})[8(!* Process_ RequestReport_ UTSI (rrutsiArg))][ (!l!"l)[(! 6!Z)][3 (! 6G'(! 6~! d)[8(! InitialTssfActive := FALSE)][b'(!"!")[(! 6!)][) '()]]]]]]]]['(!"7)[)(! 6!)[8(!< For DisconnectLeg the SSF-FSM shall always transit to WFI.)]]]]]]]]]]][(((!"!")['rgumentArg, dfcwaArg DisconnectForwardConnectionWithArgumentArg, dlArg DisconnectLegArg, rutsiArg ReportUTSIArg, rrutsiArg RequestReportUTSIArg, rrfArg RequestReportFacilityEventArg, sstuiArg SendSTUIArg, sendfArg SendFacilityInformationArg;)(!&&L!"L&)[8(! 6-?! false)][%#(! 6L! d)[8(!$ DisarmDPs (DP!LegId, callAccepted))][5$(!!"spplication_ Continue to CS)][/$(!!")[(! 6!Z)][3#(! 6 ! d)[8(! Waiting_for_ _Instruction)]]]]]]]]]]]]]]][2$_rd EventRecordType, importEventRecord EventRecordType, dpUTSIArg DPUTSIArg, dpFacilityArg DPFacilityArg, legID LegType;)]][9(! 6Rx! )[8(!A DCL /* IN CS-2 operation arguments. */ ctwaArg ContinueWithA^()[(! l! 22!(e)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9#(! 6! )[8(! /* Note:c The SSF-FSM for IN CS-2 only shows the extentions required to the IN CS-1 SSF-FSM. Therefore, to understand the complete SSF-FSM behaviour it is necessary to read the two SSF-FSM descriptions together. */)]][9Y(! 6&! )[8d(!$ /**** DATA TYPE DEFINITIONS *****/)]][9\(! 6X! )[8(! /* The SSF-FSM must maintain the arming and disarming of UTSI events for each leg. */ NEWTYPE UTSIArmedType ARRAY(LegType,Boolean) ENDNEWeTYPE; )]][9(! 6! )[8(!( /**** DECLARATIONS OF VARIABLES. ****/)]][9(! 6dx! )[8(! DCL currentLegID, newLegID LegType, utsiArmed UTSIArmedType, exportEventRecoa()[(! l! 22!(<)['(! l)['(! 6)['(! 6d! )]][ '(! 6)][9'(! 6&! )[8(!J /***** Ejling of DP Abandon in Monitoring and WFI is redefined for IN CS-2, to support the processing of abandon for multiple leg scenarios. */ )]]]]}(! Idle)]]]]]]]]]]]]]]]]]]]]]]]]}X )[(! 6!)][)O()]]]]]]] !" )[6U((! 62 ! d)[8(!! UserInteraction_ Active := true)][X((!!")[6((! 62! oueWithArgument (ctwaArg))][)(!R!"R)[ c)(! 6,! d)[8(! call AnyDPArmed)][)(!!")[;XTENSIONS TO THE MONITORING STATE AS REQUIRED BY IN CS-2. *****/)]][3'(! 62^! d)[8(! Monitoring)][%((!!")['(! 62! du(!~!F!F!"F~!)[8(! 6_:! TRUE)][t(! 6! d!)[8(! Application_ End to CS)][(!FF4!"LProcess_ Report_ UTSI)]][$)(! 6! ,!)[(! 6@! redefined ProcessDP_ Specific)]][9b(! 6dL! )[8(!X /* Procedures for determining if UTSI or Facility  call AnyDPArmed)][%(!FF!"FF)[8(! 6_! true)][3$(! 6! d)[8(! Monitoring)]]][ %(!xxn!"x)[8(! 6! false)][%$(! 6@! d)[8(!' CallInformation_ ReportPending (true))][ %(!@r!"r@S d)[8(! InitialTssf_ Active := FALSE)][7((!L!"L)[6 ((! 62L! d)[8(!! Tssf_Duration := Tssf_Duration4)][=((!(! 6! d)[8(!! Process_ ReportUTSI (dpUTSIArg))]['(!  !"  )[(! 6 !Z)][3'(! 6! d)[8I()[(! l! 22!(s)[%(! l)[%(! 6)[%(! 6d! )]][ %(! 6)][9&(! 6! )[8(!V /* Note:r For IN CS-2 (CPH), MidCall EDPs must be reported while in the WFI state. */)]][3&(! 6,! d)[8(! Waiting_For_ _Instruction)][&(!XX!"XX)[%(!)[#(! 6! d!)[8(! PICResume (DP!LegId) to CS)][8$(!Fx!"xF)[ #(! 6x! d)[8()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6,! ,)[8(! Monitori!)[8(!( ConnectTo_ Resource (invokeID,,ctrArg))][+((!X!"X)[%((! 62! d)[8(! ProcessConnect_ ToResource)][1((!h,, !", )[(! 6 !)][)9)()]]]]]]]]]}!")[8(! 6! true)][ (! 6! [8(x^^!"^^)[#(! 6! d!)[8(!$ EventReportBCSM (,ERBCSMArg) to CS)][$(!^^L!"^L^)[%#(! AReportPending (not (call AnyDPArmed)))][ $(!^F^x!"^x^F)[%#(! 6x! d)[8(!$ DisarmDPs (DP!LegId, callAccepted))][$(!^^!"y^^)[#(! 6! d!)[8(! PICResume (DP!LegId) to CS)][$(!^r^!"^^r)[ #(! 6! d)[8z(! call AnyDPArmed)][$(!^^:!"^:^)[8(! 6w!! false)][6#(! 6:! d)[8(! termination := false)][$(!^{^!"^^)[#(! 6! d!)[8(!$ ApplicationEnd (termination) to CS)][$(!^4^f!"^f^4)[(! 6^5e CS due to a MergeCallSegments, MoveLeg or Split6g from the SCF. */)]][3(! 6^!8 d)[8(!' Monitoring, Waiti9_For_ _Instruction)][1(!& 'q!%()PageOrder! l! 22!(12)[ (! l)[(! 610)[(! 6d! 11[ (! 6)][3w(! 6 "b[(! 64!Z)][3z(! 64! d)[8(! Idle)]]]]]]]]][(!R99!"R9)[8(! 6R! true)][)h()]]]]JCSM (,ERBCSMArg) to CS)][$(!!")[%z$(! 6,! d)[8(!8 CallInformation_ ReportPending (not (call AnyDPArmed)))][$(!~!"~)[%}$(! 6,! d)[8(!6 ApplyCharging_ ReportPending (not (call AnyDPArmed)))][$(!F!"F)[%$(! 6,F!  d)[8(!$ DisarmDPs (DP!LegId, callAccepted))][$(!!")[$(! 6,! d!)[8(! PICResume (DP!LegId) to CS)][$(!@r!"r@)[ $(! 6,r! d)[8(! call AnyDPArmed)][$(!!")[8(! 6! false)][6$(! 6,! d)[8(! termination := false)][$(!l!"l)[$(! 6,! d!)[8(!$ ApplicationEnd (termination) to CS)][$(!4!"4)[3$(! 6,4! d)[8(! Idle)]]]]]]][$(!!")[8(! 6! true)][3$(! 6X! d)[8(! Monitoring)]]]]]]]]]]]]]]]]][$(!!")[8(! 6! false)][%$(! 6R! d)[8(!( CallInformation_ ReportPending (false))][$(!R!"R)[6$(! 6R! d)[8(!! SET (NOW + Tssf_Duration, Tssf))][$(!!")[%$(! 6R! d)[8(!F ProcessEventReportBCSM (DP!LegId,DP!bcsmEvent,ServiceKey, ERBCSMArg))][$(!~!"~)[$(! 6R! d!)[8(!$ EventReportBCSM (,ERBCSMArg) to CS)][$(!F!"F)[$(! 6RF! d!)[8(! Application_ Continue to CS)][$(!!")[3$(! 6R! d)[8(! Waiting_for_ _Instruction)]]]]]]]]]]]]]]][$(!ROCESSING OF CPH RELATED PRIMITIVE OPERATIONS *****/)]][9e(! 6d! )[8(!Q /* From the CS due to a MergeCallSegments, MoveLeg or SplitLeg from the SCF. */)]][9'(! 6L&! )[8(!O()[(! l! 22!(s)[ (! l)[(! 6)[(! 6d! )]][ (! 6)][9&(! 6X! )[8(!> /***** P(!LL@!"L@L)[(! 6L@!Z)][3(! 6@! d)[8(! Waiting_for_ _Instruction)]]]]]]]]]]]]]]]]]]]][9e!(! 6R! Z)][3((! 62! d)[8(! Monitoring)]]]]]]]]]]]]]]][((!"!")[a((! 6,! d!)[8(!-]]]]}(! l! 22!(D)[F(! l)[I(! 6)[L(! 6d! )]][ O(! 6)][3U(! 6! ,)[8(! Monitoriing := TRUE)][8(!"3,3,L!",L)[(! 6,3!)][)()]]]]]]]][D(!",,!",)R(! 6!!3)[!(! 7!!3)[!(! 8!!3)[! (! 9!!3)[! (! 10!!3)[! (! 11!!3)[!(!,,L!",L,)[(! 6,L!Z)][3(! 6L! ,)[8(! Monitoring)]]]]]]]]][5(!",,!"(! 6^! d!)[8(! redefined DPAbandon (DP))][#(!^^!"^^)[ #(! 6! d)[8(!( call IsDPArmed (DP!LegId,DFF!"F)[8(! 6_ ! false)][%$(! 6! d)[8(!$ DisarmDPs (DP!LegId, callAccepted))][%(!F~F!"F@! d)[8(! -)]]]]]]]]]]]]}F&)[`#(! 6X! ,!)[8(!# SetLegID (currentLegID, newLegID))][i#(!FF !"F F)[%x#4(! call AnyDPArmed)][;$(!!")[8(! 6-! true)][(! 6!Z)][3#(! 6! d)[8(! Monitoring)]]][>$(!xrr!"rx)[8(! 6! false)][%#(! 6! d)[8(!' CallInformation_ ReportPending (true))][A$(!rrr!"rrr)[%#(! 6! d)[8(!% ApplyCharging_ ReportPending (true))][D$(!rr:!"r:r)[6#(! 6:! ?()[(! l! 22!(_)[)(! l)[)(! 6)[)(! 6d! )]][ )(! 6)][3)(! 6 ^! d)[8(! Waiting_for_ _Instruction)][)(!!")[)(! 6 ! d!)[8(!1 RequestReport_ FacilityEvent (invokeID,,rrfArg))][)(!X!"X)[%)(! 6 ! d)[8(!0 Process_ RequestReport_ FacilityEvent (rrfArg))][)(! !" )[(! 6 !Z,X)[%3)(! 6! d)[8(!* Process_ RequestReport_ UTSI (rrutsiArg))][H)(!,, !", ,)[(! 6, !Z)][39)(! 6 ! d)[8(! Monitoring)]]]]]]][?)(!",,&&!"&,)[0)(! 6! d!)[8(! SendSTUI (invokeID,, sstuiArg))][E)(!&X&!"&&X)[%6)(! 6! d)[8(! Process_ SendSTUI (sstuiArg))][K)(!"&&,, !", &)[G )[8(! 69! false)][(! 6 !)][)'()]]]]]]]]]}(! -)]]]]]]]]]]]]]]]]]]})[8(!% TemporaryConnection_ Active := true)][!(!6,X! d)[8(!9 call DPArmed (DP!LegId,DP!bcsmEvent, notifyAndContinue))][$(!!")[8(! 6! true)][%t$(! 6,! NtRecord))][ '(!"!")[)'()]]['(!FF!"FF)[(! 6F!Z)][3'(! 6 ,)[8(!7 ProcessRequest_ Notification_ ChargingEvent (RNCEArg))][2(!R!"R)[6,(! 6&! ,)[8(!, EventNotification_ ChargingPend(!! Tssf_Duration := Tssf_Duration4)][((!!")[6((! 6F! d)[8(!# SET (NOW + Tssf_ _Duration, Tssf))][((!"F)ive)][)'(!R!"R)[%'(! 6R! d)[8(!* Process_ Disconnect_ Forward_ Connection)][/'(!!")[%'(! 6R! d)[8(!& ApplyCharging_ ReportPending (false))][2'(!~!"~)[6'(! 6R! d)[8(!! Tssf_Duration := Process_ Establish_ Temporary_ Connection)][4((! !" )[6O((! 6F ! d)[8(!% TemporaryConnection_ Active := true)][((!!"Yd)[8(! Waiting_For_ _Instruction)]]]]]]]]]]]]]]]]][_'(!"&??X!"X&)[A'(! 6~X! d!)[8(!# Disconnect_ Leg (invokeID(!^^ !"^ ^)[8(! 6w! true)][%#(! 6 ! d)[8(!F ProcessEventReportBCSM (DP!LegId,DP!bcsmEvent,ServiceKey, ERBCSMArg))][$(!w)[8(!` /* The static DPs (SMF Service Feature Provisioning) are not armed for SCF initiated calls. */)]][9#(! 6! )[8(!c /* Note: For IN CS-2, additional SSF-FSMs may be invoked in the WFI state! 6,X! d!)[8(!+ ContinueWith_ Argument(invokeID,,ctwaArg))][])(!!")[%Z)(! 6,! d)[8(!) Process_ Contini:)[(! 64!Z)][3w(! 6,4! d)[8(! Monitoring)]]]]]]][(!x!"x)[8(! 6! FALSE)][%k!")[((! 6&! d!)[8(!B DisconnectForward_ ConnectionWith_ Argument(invokeID,, dfcwaArg))][Q)(!X!" (CPH functionality). */)]]]]}ward_ Connection)][ !(!"~eeeeLLL!"LL~e)[!(! 6L!)[8(!. Involves releasing the connection to the SRF)]]][!! ,)[(! 6-!' ProcessRequest_ ReportFacility_ Event)]][$ *(! 6dx! d)[(! 6}! IsFacility_ Armed)]][$)*(! 6R! ,)[(! 6Vng)][(!,,!",,)[(! 6! ,!)[8(! ApplyCharging (ACArg))][ (!,,!",,)[%K,,dlArg))][S'(!!")[%D'(! 6~! d)[8(! Process_ DisconnectLeg (dlArg))][V'(!R!"R)[6\!)[(! 6S! redefined Initialise_ DPTable)]]]]} (! 6 X! ,!)[8(!7 Disconnect_ Forward_ ConnectionWith_ Argument(DFCArg (!MQng)][(!,^!"^,)[Y(! 6R^! ,!)[8(!' RequestReport_ BCSMEvent (RRBCSMEArg))][_(!&!"&)[%\(! 6R&! ,)[8(!. ProcessRequest_ ReportBCSMEvent (RRBCSMEArg))][(!!")[ b(! 6R! ,)[8(! call AnyDPArmed)][(!!")[8(! 6! false)][ e(! 6X! )[8(!` CallInformationReportPending OR EventNotificationChargingPending OR ApplyChargingReportPending)][(!"x!"x)[8(! 6! TRUE)][(! 6!)][6h(! 6,! d)[8(! Reset(Tssf))][(!r!"r)[6n(! 6,! d)[8(! InitialTssf_ Active := FALSE)][(!:4!"4 6! d!)[8(! DPMidCall (DP))][ &(!X&XX!"XXX&)[6%(! 6X! d)[8(! LegIdTable (DP!LegId) := True)][&(!XX!"XX)[ &(! 6! ,)[8(!3 call DPArmed (DP!LegId,DP!bcsmEvent, interrupted))][&(!XX!"XX)[8(! 6q! true)][%&(! 6! d)[8(!F ProcessEventReportBCSM (DP!LegId,DP!bcsmEvent, ServiceKey,ERBCSMArg))][&(!XLX~!"X~XL)[6&(! 6~! d)[8(!# SET (NOW + Tssf_ _Duration, Tssf))][&(!XX!"XX)[&(! 6! d!)[8(!& EventReport_ BCSM (,ERBC!")[6((! 62! d)[8(!# SET (NOW + Tssf_ _Duration, Tssf))][[((!F!"F)[(! 6!ng)][v(!X&XX!"XXX&)[X(! 6X! ,!)[8(! Play_ Announcement (PAArg))][|(!XX !"X X)[ ^(! 6 ! )[8(! UserInteraction_ Active)][(!XX!"XX)[%d(! 6! ,)[8(! ProcessPlay_ Announcement)][(!XX!"XX)[6j(! 6! ,)[8(! 'Relay Message To SRF')][(!XxX!"XXx)[6p(! 6! ,)[8(!# SET (NOW + Tssf_ _Duration, Tssf))][(!X@Xr!"XrX@)[(! 6Xr!Z)][3s(! 6r! ,)[8(! Monitoring)]]]]]]]]]]]]][y(!"X&X?L?LX!"LXX&)[[(! 6X! ,!)[8(!0 PromptAnd_ CollectUser_ Information (PACUIArg))][(!LL !"L L)[ a(! 6 ! )[8(! UserInteraction_ Active)][(!LL!"LL)[%g(! 6! ,)[8(!, ProcessPrompt_ AndCollectUser_ Information)][(!LL!"LL)[6m(! 6! ,)[8(! 'Relay Message To SRF')][(!"LxLXX!"XLx)[(! 6X!)][)p()]]]]]]]]]]]]]} ,)[8(! 'Relay Message To SRF')][(!"RFR_^_^x!"^xz()[(! l! 22!(s)[#(! l)[#(! 6)[#(! 6d! )]][ #(! 6)][9M$(! 6Xd! )[8(!S /***** MUP!bcsmEvent))][#(!^X^!"^^X)[8(! 6wX! true)][ #(! 6! d)[8(!9 call DPArmed (DP!LegId,DP!bcsmEvent, notifyAndContinue))][#e the MidCall.)]]][&(!"L'X'X@!"X@L)[(! 6X'!)][)&()]]]]]]]]]]]]]} (!"@@!"@ Disconnect_ Forward_ Connection (invokeID,))][|((!X!"X)[ d((! 6,! d)[8(! UserInteraction_ Active)][((! !" )[%g((! 6, ! d)[8(!* Process_ Disconnect_ Forward_ Connection)][((!!")[%j((! 6,! d)[8(!& ApplyCharging_ ReportPending (false))][((!L!"L)[6m((! 6,L! d)[8(!! Tssf_Duration := Tssf_Duration2)][((!)][3)(! 6  ! d)[8(! Waiting_for_ _Instruction)]]]]]]][)(!"~~!"~)[)(! 6! d!)[8(!/ SendFacilityInformation (invokeID,, sendfArg))][)(!~X~!"~~X)[%)(! 6! d)[8(!" Process_ SendFacility (sendfArg))][)(!"~~ !" ~)[(! 6!)][))()]]]]]]]]]}LR)[ (! 6! )[8(! UserInteraction_ Active)][(!LL{keID,, rrfArg))][*(! X !"  X)[%*(! 6! d)[8(!0 Process_ RequestReport_ FacilityEvent (rrfArg))][*(!"  ,, !",  )[(! 6&!)][)9)()]]]]]][*(!",,!",)[*(! 6! d!)[8(!0 SendFacility_ Information (invokeID,,sendfArg))][*(!X!"X)[% *(! 6! d)[8(!" Process_ SendFacility (sendfArg))][*(!"v)[!(! 18!!3)[!(! 19!!3)]]]]]]]]]]]]]]]]]]]}----------------------------------------------------------------------------------------------------------------------------------------------rX)[ N)(! 6&! d)[8(! UserInteraction_ Active)][T)(!" !" )[(! 6!)][)g(()]]]]]][')( Tssf_Duration2)][5'(!F!"F)[6'(! 6RF! d)[8(!" SET (NOW + Tssf_Duration, Tssf))][8'(!!"M(!x!"x)[(! 6!Z)][3(! 6! d)[8(! Waiting_For_ _Instruction)]]]]]]]]]]][R(!" 9&9&R X)[%)(! 6 ! d)[8(! Process_ DisconnectLeg (dlArg))][)(! !" )[6)(! 6  ! d)[8(! InitialTssfActive :X!"!")[ )(! 6 ! d!)[8(!# Disconnect_ Leg (invokeID,,dlArg))][)(!X!")[%(! 6! d)[8(!1 ExportEvent_ Record (LegId,Export_ EventRecord))][(!L~!"~L)[(! 6~! C(! InitialTssf_ Active := FALSE)][)(!@!"@)[(! 6!Z)][3x)(! 62! d)[8(! Monitoring)]]]]]]]]][)(!,(!' Monitoring, Waiting_for_ _Instruction)]['(!  &!" & )['(! 6&! d!)[8(! DPUTSI (dpUTSIArg))]['(!  !">8-------------------------------------------------9------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------,ng, Waiting_for_ _Instruction)][ (!,,&!",&,)[ (! 6&! ,!)[8(!! PromptAndReceive_ MessageResult)][ !(!"qqXX!"X^qq)[!(! 6&!)[8(! From SRF.)]]][ (!,,!",,)[ (! 6! ,)[8(! UserInteraction_ Active)][ (!,,!",,)[6 (! 6! ,)[8(! 'Relay Message To SCF')][!(!,L,~!",~,L)[(! 6,~!Z)][3!(! 6~! d)[8(! -)]]]]]]]]]]]]}---------------------------------------------------------------------------------------------------------------------------------------y Idle, Monitoring, Waiting_For_ _Instruction)][1(! R!"R )[(! 6R! d!)[8(! ExportLegReq (LegId))][4(!!"XTENSIONS TO THE WAITING FOR INSTRUCTION STATE AS REQUIRED BY IN CS-2. *****/)]][3'(! 6,! d)[8(! Waiting_for_ _Instruction)][`)(!&X!"X&)[W)((! 6F! d!)[8(!5 Establish_ Temporary_ Connection (invokeID,,etcArg))][.((!X!"X)[%((! 6F! d)[8(!+FRF )['(! 6R! d!)[8(!# SetLegID (currentLegID, newLegID))]['(!FF!"FF)[%'(! 6! 12][(!&!"2&)[z(! 6 3! d!)[8(!# Disconnect_ Leg (invokeID,,dlArg))][(! T-(!:!":)[8(! 6'! false)][(! 6:!Z)][)5!()]]]]]]]]]]]})[8(! 6K! false)][(! 6ptAndReceiveMessageArg, RArg ReconnectArg, RUTSIArg ReportUTSIArg, RRFEArg RequestReportFacilityEventArg, RRUTSIArg RequestReportUTSIArg, SCArg ScriptCloseArg, ScRArg ScriptRunArg, SIArg ScriptInformationArg, SFIArg SendFacilityInformationArg, SSTUIArg SendSTUIArg, TeAArg TerminationAttemptArg, TSArg TSuspendedArg;)]]]]}------------------------------------------------------------------------------------------------------------------------------------------------------------------------Xse)][%(!l!"l)[$(! 6@! d!)[8(!$ ApplicationEnd (termination) to CS)][%(!4!"4)[3$(! 6@4! d)[8(! Idle)]]]]]]]]]]]]]]]]]]]]]][9%(! 6! )[8(! /* The handling of DP Disconnect in Monitoring and WFI is redefined for IN CS-2, to support the pF