------------------------SDT2 SRFManager--------------------------------------------------------------------------------------------------------------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------1------------------------------------------------- SRFManager----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[8(! Process Type SRFManager)]}-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/()[(! l! 22!(V)[(! 6! F@)[(! 6)[(! 6! )]][ (! 6n)][A(!!)[(! 692! SCF)][`(! )][.(! )[8(! 6! CS2_INAP_Prim_To_SCF)]][(! 6!)][.(! )[8(! 6d! CS2_INAP_Prim_From_SCF)]][(! 6!Z)]][A(!!)[(! 62k! SSF)][`(! )][.(! )[8(! 6! srfTossf)]][(! 6!)][.(! )[8(! 6! ssfTosrf)]][(! 6!)]][A(!r!)[(! 6k! IP)][`(! )][.(! )[8(! 6! SigCon_Out)]][(! 6r!)][.(! )[8(! 6! SigCon_In)]][(! 6!)]][A(!l!)[O)[8(! ApplicationBegin /*From SRSM*/)][z(! !" )[6Y(! 6^ ! d)[8(!8 transactionId:= call DetermineIndex (transactionTable))][} (!!")[6\(! 6^! d)[8(!4 transactionTable (transactionId)!instance:= Sender)][(!L!"L )[6(! 6^L! d)[8(!. transactionTable (transactionId)!used:= True)][(!!")[_(! 6^! d!)[8(!/X()[(! ! 22!(d)[h(! )[k(! 6)[n(! 6d! )]][ q(! 6y)][2t(! 6,! d)[8(! )][z!%()PageOrder-------------------------------------13-----------------------------------------------10-----------------------------------------------10------------------------------------------------ W!%()HeadingText-----------------------------------11-----------------------------------------------3-------------------------------------------------6------------------------------------------------- ?! @5(!!")[6}(! 6! d)[8(! SRM := SELF)][(!&!"&)[ (! 6! d)[8(! 'Direct SCF to SRF Connection')][(! !" )[8(! 6! 'No')][6(! 6 ! d)[8(! AssistNeeded:= False)][(!L!"L)[(! 6L!Z)][3w(! 6L! d)[8(! Idle)]]]]][(!*Lee33L!"LL)[8(! 6~3! 'Yes')][(! 63!)][)w()]]]]]]]]]}(! 6&! d)[8(! Idle)][ (!, ,!" ,llTableInc,Sender) )][(!R!"R)[6(! 6! d)[8(!% ssf_SArg!callRef!callId:= callIdInc)][(!!")[6(! 6! d)[8(!* ssf_SArg!callRef!callFlag:= FromAddress,)][(!~!"~)[(! 6! d!)[8(!( Ssf_Setup.conf (ssf_SArg) via SSF_CCF)][(!"@YRYR:!"R:@)[(! 6R:!Z)][)()]]]]]]]]]]]][(!"RR  X!"XR)[(! 6xX! d!)[8(! Ssf_Release.ind (RArg))][(!!")[6(! 6x! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCallTableInc,Sender) )][(!R!"R)[6(! 6x! d)[8(!! RArg!callRef!callId:= callIdInc)][(!!")[6(! 6x! d)[8(!& RArg!callRef!callFlag:= FromAddress,)][(!~!"~)[6(!s]]]]][(!X!"X)[b(! 6X! d!)[8(! ApplicationEnd /* from SRSM*/)][(!!"}n is established from the IP (this is not the normal case))]]][-(!X!"X)[ B(! 6^! d)[8(! SRSM)][N(! R!"R )[6E(! 6^R! d)[8(!B srfCallTableOut (srf_SArg!callRef!callId)! instance := Offspring)][Q(!!")[6H(! 6^! d)[8(!9 srfCallTableOut (srf_SArg!callRef!callId)! used := True)][T(!L~!"~L)[K(! 6^~! d!)[8(!' Srf_Setup.req (srf_SArg) to Offspring)][(!"__!")[(! 6 _!)][3(! 6! d)[8(! Idle)]]]]]]]]]]]]][(!"  !" )[(! 6! d!)[8(! Srf_CallProgress.ind (CPArg))][(! X !"  X)[6(! 6! d)[8(!8 SRSM:=srfCallTableOut (CPArg!callRef!callId) !instance)][(!   ~!" ~  )[(! 6~! d!)[8(!'  Srf_CallProgress.ind (CPArg) to SRSM )][(!"  __!" )[(! 6_!)][)()]]]]]]]][ (!"~~!";()[(! ! 22!(d)[Y(! )[\(! 6)[_(! 6d! )]][ b(! 6y)][9e(! 6^d! )[8(!J Messages" received from SSF_CCF and sent to the appropriate SRSM instance)]][3h(! 6d! d)[8(! Idle)][n(!&X!"X&)[k(! 6dX! d!#)[8(! Ssf_Setup.req (ssf_SArg))][ (!",ww^^!"^,)[(! 6,!)[8(!2 First call message (Setup) received from SSF_CCF)]]][$t(!!")[ q(! 6d! d)[8(! SRSM)][ (!, ^ !"^ , )[(! 6^!)[%8(! Create SRSM instance)]]][z(!R!"R)[6w(! 6d! d)[8(!B srfCallTableInc (ssf_SArg!callRef!callId)! instance := Offspring)][ &(!",!",)[(! 6!)[8(!Y set instance pointer in call record corresponding to the received callId to created PId)]]][(!'!")[6}(! 6d! d)[8(!9 srfCallTableInc (ssf_SArg!callRef!callId)! used := True)][ (!",LwLw!",L()[(! 6!)[8(!> set call record corresponding to the received callId to used)]]][(!~!"~)[(! 6d! d!)[8)(!' Ssf_Setup.req (ssf_SArg) to Offspring)][(!"-R-RF!"RF)[(! 6R-!)][3(! 6F! d)[8(! Idle)]]]*]]]]]]]]]][(!"&?R?RX!"RX&)[(! 6X! d!)[8(! Ssf_Facility.req (FACArg))][ (!2kk+^^!"^)[(! 6,!)[8(!/ Subsequent call message received from SSF_CCF)]]][(!RR !"R R)[6(! 6, ! ,)[8(!F SRSM:= call GetPtrFromIndex (srfCallTableInc, FACArg!callRef!callId )][(!RR!"RR)[(! 6! d!)[8(!#- Ssf_Facility.req (FACArg) to SRSM)][(!RRF!"RFR)[(! 6RF!Z)][)()]]]]]]]][(!"&??X!"X.&)[(! 6X! d!)[8(! Ssf_Release.req (RArg))][ (!"!")[(! 6!)[8(!3 La/st call message (Release) received from SSF_CCF)]]][(!!")[6(! 6! d)[8(!H SRSM:= call GetPtrFromIndex (srfCallTableInc, ssf_RArg!callRef!callI0d )][(!R!"R)[6(! 6! d)[8(!9 srfCallTableInc (RArg!callRef!callId)! instance := null)][(!!"1)[6(! 6! d)[8(!6 srfCallTableInc (RArg!callRef!callId)! used := False)][(!~!"~)[(! 6! d!2)[8(! Ssf_Release.req (RArg) to SRSM)][(!"-R-RF!"RF)[(! 6R-!)][)()]]]]]]]]]]]]]]]})()]]]]]]]]]]]]]]]})][)()[(! ! 22!(d)[(! )[(! 6)[(! 6d! )]][ (! 6r)][9i(! 6X! )[8(!I Signals 6()[(! ! 22!(d)[(! )[(! 6)[(! 6d! )]][ (! 6r)][9(! 6d! )[8(!F Messageso4ceived from SRSM instance and sent to the SCF)]][5(! 6! d)[8(! Idle)][(!"  X!"X VY^X!received from the appropriate SRSM instance and sent to SSF_CCF)]][3(! 6! d)[8(! Idle)][(!"RR , ,X!",XR)[(! 6X! 7 d!)[8(! Ssf_Setup.req (ssf_SArg))][ `(!",,!",)[](! 6!)[8(!g This case is only valid when the connec8tion is established from the IP (this is not the normal case))]]][(!,,!",,)[6(! 6! d)[8(!3 callIdInc:= call DetermineIndex (srfCallTableInc))][9(!,R,!",,R)[6(! 6! d)[8(!% ssf_SArg!callRef!callId:= callIdInc)][(!,,!",,)[6t(! 6!!3)[!(! 7!!3)[!(! 8!!3)[! (! 9!!3)[! (! 10!!3)[! (! 11!!3)[!~)[(! 6! d!)[8(! Srf_Setup.conf (srf_SArg))][(!~X~!"~~X)[6(! 6! d)[8(! d!)[8(! Srf_Release.ind (RArg))][(!X!"X)[6(! 6x! d)[8(!3 SRSM:=srfCallTableOut (RArg!callRef!callId) !Sp()[(! ! 22!(<)[W(! )[Z(! 6)[](! 6d! )]][ `(! 6W)][9(! 6^! )[8(!E Signals A12(! ! 22!(13)[J(! )[M(! 614)[P(! 6d! 2]][ S(! 6)][9(! 6 received from SCF and sent to the appropriate SRSM instance)]][3c(! 6 &! d)[8(! Idle)][(!"!")[(! 6! Bd!)[8(!3 ApplicationBeginPrim (transactionId) /*From SCF*/)][ (! R!"R )[ (! 6R! d)[8(! SRSM)][#(!C!")[6(! 6! d)[8(!. transactionTable (transactionId)!used:= True)][(!L~!"~L)[6(! 6D~! d)[8(!7 transactionTable (transactionId)!instance:= Offspring)][(!!")[(! 6! d!)[8(! ApplicationBeEgin to Offspring)][(!"x!"x)[(! 6!)][3(! 6 ! d)[8(! Idle)]]]]]]]]]]]]][(!F!")[(! 6 ! d!)[8(!2 ApplicationEndPrim (transactionId) /* from SCF*/)][(! R!"R )[6G(! 6 R! d)[8(!? SRSM:= call GetPtrFromIndex (transactionTable, transactionId))][(!!")[6(! 6 ! d)[8(!/ tranHsactionTable (transactionId)!used:= False)][(!L~!"~L)[6/(! 6 ~! d)[8(!2 transactionTable (transactionId)!instance:= null)][2(!I!")[(! 6 ! d!)[8(! ApplicationEnd to SRSM)][(!x!"x)[(! 6!ZJ)][)()]]]]]]]]]]]][(!"!")[(! 6! d!)[8(!4 ApplicationAbortPrim (transactionId) /* from SCF*/)][DK(! R!"R )[65(! 6R! d)[8(!? SRSM:= call GetPtrFromIndex (transactionTable, transactionId))][>(!!"L)[68(! 6! d)[8(!/ transactionTable (transactionId)!used:= False)][A(!L~!"~L)[6;(! 6~! d)[8(!2 tMransactionTable (transactionId)!instance:= null)][G(!!")[(! 6! d!)[8(! ApplicationAbort to SRSM)][(!"xN!"x)[(! 6!)][)()]]]]]]]]]]]]]]]}]}F!"RFR)[6(! 6F! d)[8(!' transactionId:= call(! 6k! SRSM)][`(! )][.(! )[8(! 6S! srmTosrsm)]][(! 6l!Z)][.(! )[8(! 6! srsmTosrm)]][P(! 6!)]][9(! 6! )[8(!t DCL ssf_SArg Ssf_SetupType, RArg ReleaseType, CPArg CallProgressType, srf_SArg Srf_SetupType, FACArg FacilityType, FACRes FacilityResultType, FACErr FacilityErrQorType, DArg DataType, SAArg SubsequentAddressType, srfCallTableInc TableType, srfCallTableOut TableType, transactionTable TableType, callRecordInc RecordType, callRecordOut RecordType, transactionRecord RecordType, callRef CallRefType, callFlag CallFlaRgType, callId CallIdType, transactionId TransactionIdType, SRM PId, SRSM PId, ptr PId, tableIndexInc CallIdType, tableIndexOut CallIdType, cause CauseType, operationCode OperationcodeType, result ResultType;)]][9(! 6^! )[8S(!! DCL AssistNeeded BOOLEAN:=True;)]][$P(! 6&! d)[(! 6X! DetermineIndex)]][$S(! 6! d)[(! 6! GetPtrFromIndex)]][$V(! T6R! d)[(! 6! GetIndexFromPtr)]][9(! 6! )[8(! DCL EMArg EraseMessageType, PAArg PlayAnnouncementType, PAErr PlayAnnouncementErrorType, ARIArg AssistRequeUstInstructionsType, PACUIArg PromptAndCollectUserInformationType, PACUIRes PromptAndCollectUserInformationResultType, PACUIErr PromptAndCollectUserInformationErrorType, PARMArg PromptAndReceiveMessageType, PARMRes PromptAndReceiveMessageResultTypreceived from SRSM instance and sent to the SCF)]][3(! 6! d)[8(! Idle)][(!"  X!"X)[V(! 6^X! d! (!4 !5!7)[!(! 1!!3)[!(! 2!!3)[!(! 3!!3)[!(! 4!!3)[!(! 5!!3)[!: ApplicationBegin_ Prim(transactionId) via SCF)][(!"F!"F)[(! 6!)][3(! 6! d)[8(! Idle)]]]]]]]]()[(! ! 22!(d)[(! )[(! 6)[(! 6d! )]][ (! 6r)][9|(! 6d! )[8(!D Signals Zreceived from the appropriate SRSM instance and sent to IP)]][3(! 6! d)[8(! Idle)][((!&!"&)[(! 6&! d![)[8(! Srf_Setup.req (srf_SArg))][ y(!^XX!"X,X^X)[v(! 6&!)[8(!' First call message (Setup) sent to IP)]]][I(!\!")[6^(! 6! d)[8(!3 callIdOut:= call DetermineIndex (srfCallTableOut))][ g(!^!"^)[d(! 6!])[8(!- Determinefirst available unused call record)]]][a(! R!"R )[6=(! 6R! d)[8(!% srf_SArg!callRef!callId:= callIdOut)][ m^(!^!"^)[j(! 6R!)[8(! Set CallId in Setup.req)]]][@(!!")[6C(! 6_! d)[8(!' srf_SArg!callRef!callFlag:= ToAddress)][ s(!^!"^)[p(! 6!)[8(!) Set call flag to ToAddress in Setup.req)]]][L`(!L~!"~L)[6R(! 6~! d)[8(!% srfCallTable(callIdOut)!used:= True)][ (!^!"^)[(a! 6~!)[8(!7 Set Call record to used and fill in the instance PId)]]][U(!!")[6X(! 6! d)[8(!+ srfCallTable(calblIdOut)!instance:= Sender)][[(!x!"x)[(! 6! d!)[8(!" Srf_Setup.req (srf_SArg) via IP )][.(!r!"cr)[(! 6r!Z)][3(! 6r! d)[8(! Idle)]]]]]]]]]]]]]]]]][(!"  &!"&)[(!d 6&! d!)[8(! Srf_Facility.req (FACArg))][ (!"LXeXe,~,!"~,LX)[(! 6~!)[8(!6 Subsequent call messeage received from SRSM instance.)]]][(!!")[6(! 6! d)[8(!< callIdOut:= call GetIndexFromPtr (srfCallTableOut,Sender) )][(!f R!"R )[6(! 6R! d)[8(!# FACArg!callRef!callId:= callIdOut)][(!!")[6(! 6! g d)[8(!% FACArg!callRef!callFlag:= ToAddress)][(!L!"L)[(! 6! d!)[8(!" Srf_Facility.req (FACArg) via IP)][h(!"YYr!"r)[(! 6Y!)][)()]]]]]]]]]]]][1(!"  &!"&)[(! i6x&! d!)[8(! Srf_Release.req (RArg))][(!!")[6(! 6x! d)[8(!< callIdOut:= call GetIndexFromPtr (srfCjallTableOut,Sender) )][(! R!"R )[6(! 6xR! d)[8(!! RArg!callRef!callId:= callIdOut)][(!!"k)[6(! 6x! d)[8(!# RArg!callRef!callFlag:= ToAddress)]]]]]]]]]][6(! 6x~! d)[8(!& srfCallTable(callIdOut)!used:= False)][(!!"l)[6(! 6x! d)[8(!) srfCallTable(callIdOut)!instance:= null)][(!x!"x)["(! 6x! dm!)[8(! Srf_Release.req (RArg) via IP )][7(!"YYr!"r)[(! 6Y!)][)()]]]]]]]]]}]]]]]]]]}()]]]]]]]]]}]]]}----------d!)[8(! Srf_Setup.req (srf_SArg))][ (!"^&}&},,!",^&)[(! 6!)[8(!g This case is only valid when the connectio received from IP and sent to the appropriate SRSM instance)]][3(! 6,! d)[8(! Idle)][ (!"!")[$(! 6^! nRSM)][(! R!"R )[6](! 6xR! d)[8(!9 srfCallTableOut (RArg!callRef!callId)! instance := Null)][c(!!"q)[6`(! 6x! d)[8(!6 srfCallTableOut (RArg!callRef!callId)! used := False)][f(!L~!"~L)[(! 6x~! d!stance:= null)][(!!")[(! 6x! d!)[8(!& Ssf_Release.req (RArg) via SSF_CCF )][(!"@RR:!" 6x! d)[8(!) srfCallTableInc(callIdInc)!used:= False)][(!F!"F)[6(! 6xF! d)[8(!, srfCallTableInc(callIdInc)!inr(! 6! d)[8(!) ssf_SArg!callRef!callFlag:= FromAddress)][(!,~,!",,~)[6(! 6! d)[8(!% srfCallTable(callIdInc)!uused:= True)][(!,,F!",F,)[6(! 6F! d)[8(!+ srfCallTable(callIdInc)!instance:= Sender)][(!,,!",v,)[(! 6! d!)[8(!( Srf_Setup.req (srf_SArg) via SSF_CCF )][(!",@,RR:!"R:,@)[(! 6!)][w3(! 6:! d)[8(! Idle)]]]]]]]]]]]]]]]]][(!"RR  X!"XR)[(! 6&X! d!)[8(! Ssf_CallPxrogress.ind (CPArg))][(!!")[6l(! 6&! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCallTableInc,Sender) )][u(!R!"yR)[6o(! 6&! d)[8(!" CPArg!callRef!callId:= callIdInc)][x(!!")[6r(! 6&! d)[8z(!' CPArg!callRef!callFlag:= FromAddress,)][{(!~!"~)[(! 6&! d!)[8(!, Ssf_CallProgress.ind (CPArg) via SSF_CCF )][{(!"@RR:!"R:@)[(! 6R!)][)()]]]]]]]]]]]][(!"RR  X!"XR)[(! 6|X! d!)[8(! Ssf_Setup.conf (ssf_SArg))][(!!")[6~(! 6! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCa)[6e(! 6R! ,)[8(!A TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][(!!")[6(! 6! d)[8~(!2 transactionTable (transactionId)!instance:= null)][(!L!"L)[6h(! 6L! d)[8(!/ transactionTable (transactionId)!used:= False)][(!!")[k(! 6! d!)[8(!- ApplicationEnd_ Prim(transactionId) via SCF)][(!F!"F)[(! 6!Z)][)()]]]]]]]]]]]][(!"  X!"X)[n(! 6FX! d!)[8(!! ApplicationAbort /* from SRSM*/)][(!!")[6(! 6! ,)[8(!A TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][(!!")[6(! 6F! d)[8(!2 transactionTable (transactionId)!instance:= null)][(!L!"L)[6t(! 6FL! d)[8(!/ transactionTable (transactionId)!used:= False)][(!!")[w(! 6F! d!)[8(!/ ApplicationAbort_ Prim(transactionId) via SCF)][(!"F!"F)[(! 6!)][)()]]]]]]]]]]]]]]]}! d!)[8(!/ ApplicationAbort_ Prim(transactionId) vi()[(! ! 22!(<)[(! )[(! 6)[(! 6d! )]][ (! 6)][9C(! 6Ld! )[8(!{ Messagese, PARMErr PromptAndReceiveMessageErrorType, SCArg ScriptCloseType, SCErr ScriptCloseErrorType, SEArg ScriptEventType, SIArg ScriptInformationType, SIErr ScriptInformationErrorType, SRArg ScriptRunType, SRErr ScriptRunErrorType, SRRArg SpecialisedResourceReport, CArg CancelType, CErr CancelErrorType, ARIArg AssistRequestInstructionsType;)]]]]}-----------------------------------------------------------------------------------------------------------------------------------------------q()[(! ! 22!(d)[J(! )[M(! 6)[P(! 6d! )]][ S(! 6)][9(! 6! )[8(!9 Signals V received from SSF_CCF and sent to the appropriate SRSM instance. Subsequent call messages received from SSF_CCF.)]][3(! 6! d)[8(! Idle)][ (!"^ww!"^)[(! 6! d!)[8(!! Ssf_FacilityResult.req (FACRes))][(!&!"&)[6(! 6d! ,)[8(!F SRSM:= call GetPtrFromIndex (srfCallTableInc, FACRes!callRef!callId )][(! !" )[(! 6! d!)[8(!) Ssf_FacilityResult.req (FACRes) to SRSM)][(!~!"~)[(! 6~!Z)][3(! 6~! d)[8(! Idle)]]]]]]]]][((!"^ww!"^)[(! 6X! d!)[8(! Ssf_FacilityError.req (FACErr))]["(!&!"&)[6(! 6&! ,)[8(!F SRSM:= call GetPtrFromIndex (srfCallTableInc, FACErr!callRef!callId )][%(! !" )[(! 6X! d!)[8(!( Ssf_FacilityError.req (FACErr) to SRSM)][+(!"33~!"~)[(! 63!)][)()]]]]]]]][=(!"^wLwL!"L^)[.(! 6! d!)[8(! Ssf_Data.req (DArg))][7(!L&L!"LL&)[61(! 6! ,)[8(!D SRSM:= call GetPtrFromIndex (srfCallTableInc, DArg!callRef!callId )][:(!L L!"LL )[4(! 6! d!)[8(! Ssf_Data.req (DArg) to SRSM)][@(!"LL33~!"~L)[(! 63!)][)()]]]]]]]][ (!"^ww!"^)[ (! 6F! d ()[(! ! 22!(d)[F(! )[I(! 6)[L(! 6d! )]][ O(! 6)][9(! 6&d! )[8(!| Signals 7-------------------------------------------------8-------------------------------------------------9---------------------------------------------------------------------------------------------------- ----43--------received from the appropriate SRSM instance and sent to IP. Subsequent call messages received from SRSM instance.)]][3U(! 6d^! d)[8(! Idle)][j(!!")[X(! 6d! d!)[8(!! Srf_FacilityResult.req (FACRes))][p(!X!"X)[6[(! 6d! d)[8(!< callIdOut:= call GetIndexFromPtr (srfCallTableOut,Sender) )][s(! !" )[6^(! 6d ! d)[8(!# FACRes!callRef!callId:= callIdOut)][v(!!")[6a(! 6d! d)[8(!% FACRes!callRef!callFlag:= ToAddress)][y(!L!"L)[d(! 6dL! d!)[8(!( Srf_FacilityResult.req (FACRes) via IP)][|(!!")[(! 6!Z)][3g(! 6d! d)[8(! Idle)]]]]]]]]]]]]][(!"&&!"&)[(! 6! d!)[8(! Srf_FacilityErr.req (FACErr))][(!&X&!"&&X)[6(! 6! d)[8(!< callIdOut:= call GetIndexFromPtr (srfCallTableOut,Sender) )][(!&& !"& &)[6(! 6 ! d)[8(!# FACErr!callRef!callId:= callIdOut)][(!&&!"&&)[6(! 6! d)[8(!% FACErr!callRef!callFlag:= ToAddress)][(!&&L!"&L&)[(! 6L! d!)[8(!' Srf_FacilityError.req (FACErr) via IP)][(!"&&!"&)[(! 6!)][)g()]]]]]]]]]]]][(!"!")[(! 6 ! d!)[8(! Srf_Data.req (DArg))][(!X!"X)[6(! 6 ! d)[8(!< callIdOut:= call GetIndexFromPtr (srfCallTableOut,Sender) )][(! !" )[6(! 6  ! d)[8(!! DArg!callRef!callId:= callIdOut)][(!!")[6(! 6 ! d)[8(!# DArg!callRef!callFlag:= ToAddress)][(!L!"L)[(! 6 L! d!)[8(! Srf_Data.req (DArg) via IP)][ (!"!")[8(! Srf_Release.ind (RArg) to SRSM)][(!"__!")[(! 6~_!)][)()]]]]]]]]]]]]]]]}--------------------------------------()[(! ! 22!(d)[(! )[(! 6)[(! 6d! )]][ (! 6)][9Z(! 6&2! )[8(!V Subsequent call messages received from IP and sent to the appropriate SRSM instance)]][3(! 6! d)[8(! Idle)][(!"^^^ww!"^^)[(! 62! d!)[8(! Srf_Facility.ind (FACArg))][(!&!"&)[6(! 62&! d)[8(!9 SRSM:=srfCallTableOut (FACArg!callRef!callId) !instance)][(!!")[(! 62! d!)[8(!$ Srf_Facility.ind (FACArg) to SRSM )][(!" 99!" )[(! 69!)][3(! 6! d)[8(! Idle)]]]]]]]]][*(!"^^^ww!"^^)[(! 6! d!)[8(!! Srf_FacilityResult.ind (FACRes))][$(!&!"&)[6(! 6&! d)[8(!9 SRSM:=srfCallTableOut (FACRes!callRef!callId) !instance)]['(!!")[!(! 6! d!)[8(!* Srf_FacilityResult.ind (FACRes) to SRSM )][Q(! !" )[(! 6!Z)][)()]]]]]]]][K(!"^^^w w !" ^^)[-(! 6! d!)[8(! Srf_FacilityError.ind (FACArg))][6(!  &!" & )[60(! 6&! d)[8(!9 SRSM:=srfCallTableOut (FACErr!callRef!callId) !instance)][9(!  !"  )[3(! 6! d!)[8(!) Srf_FacilityError.ind (FACErr) to SRSM )][T(!"   99!"  )[(! 69!)][)()]]]]]]]][N(!"^^^wLwL!"L^^)[<(! 6! d!)[8(! Srf_Data.ind (DArg))][E(!LL&!"L&L)[6?(! 6&! d)[8(!7 SRSM:=srfCallTableOut (DArg!callRef!callId) !instance)][H(!LL!"LL)[B(! 6! d!)[8(! Srf_Data.ind (DArg) to SRSM )][W(!"L L99!"L )[(! 6 9!)][)()]]]]]]]]]]]}------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ R:@)[(! 6R!)][)()]]]]]]]]]]]]]]]]]]]}---------------------------------------------------------------------------------------------------------------------------------------------------m()[(! ! 22!(d)[c(! )[f(! 6)[i(! 6d! )]][ l(! 6)][9 (! 6d! )[8(!T Subsequent signals received from the appropriate SRSM instance and sent to SSF_CCF)]][3(! 6,! d)[8(! Idle)][(!"!")[(! 6d! d!)[8(! Ssf_Facility.ind (FACArg))][(!X!"X)[6(! 6d! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCallTableInc,Sender) )][(! !" )[6(! 6d ! d)[8(!# FACArg!callRef!callId:= callIdInc)][(!!")[6(! 6d! d)[8(!( FACArg!callRef!callFlag:= FromAddress,)][(!L!"L)[(! 6dL! d!)[8(!) Ssf_Facility.ind (FACArg) via SSF_CCF )][(!"!")[(! 6!)][3(! 6^! d)[8(! Idle)]]]]]]]]]]]]][ (!"!")[(! 6! d!)[8(!! Ssf_FacilityResult.ind (FACRes))][(!X!"X)[6(! 6! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCallTableInc,Sender) )][(! !" )[6(! 6 ! d)[8(!# FACRes!callRef!callId:= callIdInc)][(!!")[6(! 6! d)[8(!( FACRes!callRef!callFlag:= FromAddress,)][(!L!"L)[(! 6L! d!)[8(!/ Ssf_FacilityResult.ind (ResArg) via SSF_CCF )][ (!"!")[(! 6!Z)][)()]]]]]]]]]]]][ (!"RR!"R)[(! 6! d!)[8(! Ssf_FacilityError.ind (FACErr))][(!RXR!"RRX)[6(! 6! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCallTableInc,Sender) )][(!RR !"R R)[6(! 6 ! d)[8(!# FACErr!callRef!callId:= callIdInc)][(!RR!"RR)[6(! 6! d)[8(!( FACErr!callRef!callFlag:= FromAddress,)][(!RRL!"RLR)[(! 6L! d!)[8(!. Ssf_FacilityError.ind (FACErr) via SSF_CCF )][ (!"RR!"R)[(! 6!)][)()]]]]]]]]]]]][ (!"~~!"~)[(! 6! d!)[8(! Ssf_Data.ind (DArg))][ (!~X~!"~~X)[6(! 6! d)[8(!< callIdInc:= call GetIndexFromPtr (srfCallTableInc,Sender) )][ (!~~ !"~ ~)[6(! 6 ! d)[8(!! DArg!callRef!callId:= callIdInc)][ (!~~!"~~)[6(! 6! d)[8(!& DArg!callRef!callFlag:= FromAddress,)][ (!~~L!"~L~)[(! 6L! d!)[8(!# Ssf_Data.ind (DArg) via SSF_CCF )][ (!"~~!"~)[(! 6R!)][)()]]]]]]]]]]]]]]]}---------------------------------------------------------------------- (! 12!!3)[! (! 13!!3)[!(! 14!!3)[!(! 15!!3)]]]]]]]]]]]]]]]}------------------------------------------------------------------()[(! ! 22!(d)[# (! )[& (! 6)[) (! 6d! )]][ , (! 6)][9 (! 62! )[8(!M INAP operations received from SCF and sent to the appropriate SRSM instance)]][3V (! 6,d! d)[8(! Idle)][k (!!")[\ (! 6,! d!)[8(!( EraseMessagePrim (EMArg) /* from SCF*/)][n (!^!"^)[6_ (! 6,! d)[8(!E SRSM:= call GetPtrFromIndex (transactionTable, EMArg!transactionId))][q (!&!"&)[h (! 6,&! d!)[8(! EraseMessage (EMArg) to SRSM)][z (!!")[(! 6!Z)][3Y (! 6,! d)[8(! Idle)]]]]]]]]][ (!"!")[} (! 6&!  d!)[8(!, PlayAnnouncementPrim (PAArg) /* from SCF*/)][ (!^!"^)[6 (! 6&! d)[8(!E SRSM:= call GetPtrFromIndex (transactionTable, PAArg!transactionId))][ (!&!"&)[ (! 6&&! d!)[8(!" PlayAnnouncement (PaArg) to SRSM)][ (!"ͣ!")[(! 6!)][)Y ()]]]]]]]][ (!"!")[ (! 6 ! d!)[8(!A PromptAnd Collect_ UserInformationPrim (PACUIArg) /* from SCF*/)][ (!^!"^)[6 (! 6 ! d)[8(!H SRSM:= call GetPtrFromIndex (transactionTable, PACUIArg!transactionId))][ (!&!"&)[ (! 6 &! d!)[8(!7 PromptAnd Collect_ UserInformation (PACUIArg) to SRSM)][ (!"!")[(! 6!)][)Y ()]]]]]]]][ (!"~~!"~)[ (! 6! d!)[8(!8 PromptAnd Receive_ MessagePrim (PARMArg) /* from SCF*/)][ (!~^~!"~~^)[6 (! 6! d)[8(!E SRSM:= call GetPtrFromIndex (transactionTable, EMArg!transactionId))][ (!~~&!"~&~)[ (! 6&! d!)[8(! EraseMessage (EMArg) to SRSM)][ (!"~~!"~)[(! 6!)][)Y ()]]]]]]]][ (!"xx!"x)[ (! 6! d!)[8(!' ScriptClosePrim (SCArg) /* from SCF*/)][ (!x^x!"xx^)[6 (! 6! d)[8(!E SRSM:= call GetPtrFromIndex (transactionTable, SCArg!transactionId))][ (!xx&!"x&x)[ (! 6&! d!)[8(! ScriptClose (SCArg) to SRSM)][ (!"xx!"x)[(! 6~!)][)Y ()]]]]]]]]][3 (! 6,R! d)[8(! Idle)][ (!!")[ (! 6,! d!)[8(!! CancelPrim (CArg) /* from SCF*/)][ (!L~!"~L)[6 (! 6,~! d)[8(!D SRSM:= call GetPtrFromIndex (transactionTable, CArg!transactionId))][ (!!")[ (! 6,! d!)[8(! Cancel (CArg) to SRSM)][ (!x!"x)[(! 6!Z)][3 (! 6,! d)[8(! Idle)]]]]]]]]][: (!"!")[ (! 6X! d!)[8(!% ScriptRunPrim (SRArg) /* from SCF*/)][% (!L~!"~L)[6 (! 6X~! d)[8(!E SRSM:= call GetPtrFromIndex (transactionTable, SrArg!transactionId))][( (!!")[" (! 6X! d!)[8(! ScriptRun (SRArg) to SRSM)][@ (!"x!"x)[(! 6!)][) ()]]]]]]]][= (!"!")[+ (! 6! d!)[8(!- ScriptInformationPrim (SIArg) /* from SCF*/)][4 (!L~!"~L)[6. (! 6~! d)[8(!E SRSM:= call GetPtrFromIndex (transactionTable, SIArg!transactionId))][7 (!!")[1 (! 6! d!)[8(!# ScriptInformation (SIArg) to SRSM)][C (!"x!"x)[(! 6!)][) ()]]]]]]]]]]]}---------------------------------------------------------------------------------------------------------------------------------------------------------------a()[(! ! 22!(P)[F (! )[I (! 6)[L (! 6d! )]][ O (! 6)][3R (! 6d! d)[8(! Idle)][g (!^!"^)[X (! 6d! d!)[8(!. PlayAnnouncementError (PAErr) /* from SRSM*/)][j (!&!"&)[6[ (! 62&! ,)[8(!G PAErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][m (!!")[d (! 6d! d!)[8(!, PlayAnnouncementError_ Prim(PAErr) via SCF)][v (!R!"R)[(! 6!Z)][3U (! 6d! d)[8(! Idle)]]]]]]]]][ (!"^w&w&!"&^)[ (! 6! d!)[8(!C PromptAndCollectUser_ InformationResult (PACUIRes) /* from SRSM*/)][ (!&&&!"&&&)[6 (! 6&! ,)[8(!J PACUIErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!&&!"&&)[ (! 6! d!)[8(!= PromptAndCollectUser_ InformationResPrim (PACUIRes) via SCF)][ (!"&R&kk!"&R)[(! 6k!)][)U ()]]]]]]]][ (!"^ww!"^)[y (! 6 ! d!)[8(!B PromptAndCollectUser_ InformationError (PACUIErr) /* from SRSM*/)][ (!&!"&)[6| (! 6&! ,)[8(!J PACUIErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!!")[ (! 6 ! d!)[8(!? PromptAndCollectUser_ InformationErrorPrim (PACUIErr) via SCF)][ (!"Rkk!"R)[(! 6&k!)][)U ()]]]]]]]][ (!"^ww!"^)[ (! 6~! d!)[8(!: PromptAndReceive_ MessageResult (PARMRes) /* from SRSM*/)][ (!&!"&)[6 (! 6L&! ,)[8(!I PARMRes!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!!")[ (! 6~! d!)[8(!7 PromptAndReceive_ MessageResultPrim (PARMRes) via SCF)][ (!"Rkk!"R)[(! 6k!)][)U ()]]]]]]]][ (!"^w@w@!"@^)[ (! 6! d!)[8(!9 PromptAndReceive_ MessageError (PARMErr) /* from SRSM*/)][ (!@@&!"@&@)[6 (! 6&! ,)[8(!I PARMErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!@@!"@@)[ (! 6! d!)[8(!6 PromptAndReceive_ MessageErrorPrim (PARMErr) via SCF)][! (!"@R@kk!"@R)[(! 6k!)][)U ()]]]]]]]]][3 (! 6d! d)[8(! Idle)][ (!~!"~)[ (! 6d! d!)[8(!) ScriptCloseError (SCErr) /* from SRSM*/)][ (!F!"F)[6 (! 62F! ,)[8(!G SCErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!!")[ (! 6d! d!)[8(!' ScriptCloseError_ Prim(SCErr) via SCF)][ (!r!"r)[(! 6!Z)][3 (! 6d! d)[8(! Idle)]]]]]]]]][$ (!"~&&!"&~)[ (! 6! d!)[8(!$ ScriptEvent (SEArg) /* from SRSM*/)][ (!&&F!"&F&)[6 (! 6F! ,)[8(!G SEArg!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!&&!"&&)[ (! 6! d!)[8(!" ScriptEvent_ Prim(SEArg) via SCF)][? (!"&r&!"&r)[(! 6!)][) ()]]]]]]]][' (!"~!"~)[ (! 6 ! d!)[8(!/ ScriptInformationError (SIErr) /* from SRSM*/)][ (!F!"F)[6 (! 6F! ,)[8(!G SIErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!!")[ (! 6 ! d!)[8(!- ScriptInformationError_ Prim(SIErr) via SCF)][B (!"r!"r)[(! 6&!)][) ()]]]]]]]][* (!"~!"~)[ (! 6~! d!)[8(!' ScriptRunError (SRErr) /* from SRSM*/)][ (!F!"F)[6 (! 6LF! ,)[8(!G SRErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][ (!!")[ (! 6~! d!)[8(!% ScriptRunError_ Prim(SRErr) via SCF)][E (!"r!"r)[(! 6!)][) ()]]]]]]]][< (!"~@@!"@~)[- (! 6! d!)[8(!4 SpecialisedResource_ Report(SRRArg) /* from SRSM*/)][6 (!@@F!"@F@)[60 (! 6F! ,)[8(!H SRRArg!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][9 (!@@!"@@)[3 (! 6! d!)[8(!2 SpecialisedResource_ ReportPrim(SRRArg)) via SCF)][H (!"@r@!"@r)[(! 6!)][) ()]]]]]]]]]]]}-------------------------------------------------------------------------------------------------()[(! ! 22!(d)[K (! )[N (! 6)[Q (! 6d! )]][ T (! 6)][3W (! 6,! d)[8(! Idle)][15------------------------------------------------2------------------------------------------------------------------------------------------------------------------------------------------------------- -------- ----------------3-------------------------------------------------6------------------------------------------------------------------------------------------------------------------------------------------------------- --------!--------5--------14--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------o (!,,!",,)[] (! 6! d!)[8(!# CancelError (CErr) /* from SRSM*/)][r (!,&,X!",X,&)[6` (! 6X! ,)[8(!G SCErr!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][u (!,, !", ,)[c (! 6 ! d!)[8(!! CancelError_ Prim(CErr) via SCF)][x (!,,!",,)[(! 6,!Z)][3Z (! 6! d)[8(! Idle)]]]]]]]]][ (!",,!",)[f (! 6&! d!)[8(!4 AssistRequest_ Instructions(ARIArg) /* from SRSM*/)][{ (!&X!"X&)[6i (! 6X! ,)[8(!H ARIArg!TransactionId:= call GetIndexFromPtr (transactionTable, Sender))][~ (! !" )[l (! 6 & ! d!)[8(!1 AssistRequest_ InstructionsPrim(ARIArg) via SCF)][ (!",,!",)[(! 6,!)][)Z ()]]]]]]]]] ]]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------!)[8(!# Ssf_SubsequentAddress.req (SAArg))][ (!&!"&)[6 (! 6! ,)[8(!E SRSM:= call GetPtrFromIndex (srfCallTableInc, SAAr g!callRef!callId )][ (! !" )[ (! 6F! d!)[8(!+ Ssf_SubsequentAddress.req (SAArg) to SRSM)][ (!"33 ~!"~)[(! 6L3!)][)()]]]]]]]]]]]}--------------------------------------------------------------------------------------------------------------------------------------------------n)[(! 6&!)][)g()]]]]]]]]]]]]]]]}--------------------------------------------------------------------------------------------------------------------------------------------------------h()[w(!GSDL)]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------