------------------------SDT2 TCAP_InterfaceHandler--------------------------------------------------------------------------------------------------------------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------!%()HeadingText----------------------------------- TCAP_InterfaceHandler------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[8(!, Virtual Process Type TCAP_InterfaceHandler)]}----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------B()[w(!GSDL)]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------()[(! l! !(d)[h(! 6^! l)[k(! 6w)[n(! 6! )]][ q(! 6w)][A(!K^K!)[ !%()HeadingText-----------------------------------!%()PageOrder-------------------------------------12-----------------------------------------------10----------------------------------------------- o!%&()LinkEndpoints--------------------------------11)PageOrder-------------------------------------43-----------------------------------------------7------------------------------------------------ e %^&I(!4 !5!7)[!(! 1!!3)[!(! 2!!3)[!(! 3!!3)[!(! 4!!3)[!(! 5!!3)[!Q!")[8(! 6E!! else)][\ (! 6,! d!)[8(!N ActivityTestResult (invokeID,dialogID) TO allDialogs(dialogID)!dialogHandler)][n 1P(!!")[/(! 6 ! d!)[8(!? TC_InvokeReq(invokeID,dialogID,opClass,opCode,timeoutVal,arg))][S(!^!"H()[(! l! !(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3,(! 6 d! d)[8(! Idle)][ (! 6d! Dia)][`(! )][.(! )[8(! 6d}!" (CS1_INAP_To_SCF), (TCAPfromSCF))]][(! 6K!)][.(! )[8(! 6d,! (TC_D ia_To_IH))]][(! 6K^!Z)]][Aw(!?^?!)[(! 6X! FromSCF)][`(! )][.x(! )[8(! 6X! (TCAP_IH_Errors))]][(! 6?!)][.y(! )[8(! 6X,! (TCAPfromSCF))]][(! 6?^!Z)]][Az(!^!)[(! 63! SSF_A)][`(! )][.{(! )[8(! 63! (TC_IH_To_SSF))]][(! 6!)][.|(! )[8(! 63,! (CS1_INAP_To_SCF))]][(! 6^!Z)]][A(!()[(! l! !(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9 (! 62! )[8(! NEWTYPE DialogType STRUCT status DialogStatusType; csa CSAID; dialogHandler PId; OPERATORS newDialog: DialogStatusType, CSAID, PId -> DialogType; OPERATOR newDialog; FPAR diaStatus DialogStatusType, csaNew CSAID, diaHandler PId; RETURNS nDialog DialogType; REFERENCED; ENDNEWTYPE; /* Remark: Type CSAID (= Integer) is defined in ASN.1 file 'CS2Internals.asn' */ NEWTYPE AllDialogsType ARRAY (DialogIDtype, DialogType); /* DialogID is used as index in the array */ OPERATORS initDi^!)[(! 6! SSF_B)][`(! )][.(! )[8(! 6! (TC_IH_To_SSF))]][(! 6!)][.(! )[8(! 6,! (CS1_INAP_To_SCF))]][(! 6^!Z)]][2(! 6&&! d)[8(! )][(!!")[6(! 6&! d)[8(!! allDialogs := initDialogs(true))][(! R!"R )[(! 6&R! d!)[8(!" RegisterSSFreq(A_Side) VIA SSF_A)][1(!&!"&)[7(! 6R!)[8(! /* Ask A-Side for PId */)]]][(!!")[(! 6&! d!)[8(!" RegisterSSFreq(B_Side) VIA SSF_B)][1(!&!"&)[7(! 6!)[8(! /* Ask B-Side for PId */)]]][(!L~!"~L)[(! 6~!Z)][3(! 6&~! d)[8(! WaitForRegistrationOne)][(!!")[(! 6&! d!)[8(! RegisterSSFresp(roleIH))][1(!&FF!"F&F)[7(! 6!)[8(!# /* First side provides its PId */)]]][(!x!"x)[6(! 6&! d)[8(! allKnownIH(roleIH) := SENDER)][(!@!"@)[(! 6@!Z)][3(! 6&@! d)[8(! WaitForRegistrationTwo)][&(!!")[(! 6&! d!)[8Axx!"x)[8(! 6-! else)][5(! 6! d!)[8(!e TC_InvokeReq(invokeID,dialogID,opClass,opCode,timeoutVal,arg) TO allDialogs(dial(! 6,! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!&X!"X&)[ (! 6,X! d)[8(! dialogID)][sogID)!dialogHandler)][Y(!xLx~!"x~xL)[(! 6x~!Z)][38(! 6~! d)[8(! Idle)]]]]][\(!~!"$alogs: Boolean -> allDialogsType; getDialogID: CSAID, AllDialogsType -> DialogIDtype; nextFreeDialogID: AllDialogsType -> DialogIDtype; OPERATOR initDialogs; FPAR dummy Boolean; RETURNS newDialogs AllDialogsType; REFERENCED; OPERATOR getDialogID; FPAR knownCSA CSAID, allDialogs AllDialogsType; RETURNS dialogID DialogIDtype; REFERENCED; OPERATOR nextFreeDialogID; FPAR allDialogs AllDialogsType; RETURNS dialogID DialogIDtype; REFERENCED; ENDNEWTYPE;)]][C!(! 6! )[(! 6! newDialog)]][C(! 6! )[(! 6! initDialogs)]][C(! 6! )[(! 63! getDialo"gID)]][C(! 6! )[(! 6R_! nextFreeDialogID)]][9(! 62@! )[8(! NEWTYPE IHresourceType ARRAY (IHroleType,PId); /* IHroleType (= A_Side or B_Side) is defin[()[(! l! 22!(H)[.(! l)[1(! 6)[4(! 6d! )]][ 7(! 6)][3:(! 6,! d)[8(! Idle)][)~)[8(! 6! (free))][ ;(! 6 ~! d)[8(! dialogID)][_(!"!")[8(! 6<()[(! l! !(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)][(! 62! d)[8(! AbortReqf5(!^!"6^)[=(! 6,! 7 d!)[8(!! TC_Cont8ueReq(dialogID,origAd))][s(! K#%{(!"!!:!":)[8(! 6X! (0))][(! 6:!Z)][Y (! 6&:! d)[8(! IncorCSAid)]]][k (! 6,! d!)[8(!( ActivityTestResult (invokeID,dialogID))][e (!r!"r)[ V (! 6,! d)[8(! dialogID)][h 'p(!,^!"^,)[=(! 6,^! d!)[8(!! TC_ContinueReq(dialogID,origAd))][s(!!")[ *@(! 6,! d)[8(! allDialogs(dialogID)!status)][v(!"Xqq!"X)[8(! 6X?! (free, used))][(! 6!+Z)][C(! 6&! d)[8(! AbortRequired)]]][y(!X !" X)[8(! 6Eq! else)][F(! 6, ! d!,)[8(!G TC_ContinueReq(dialogID,origAd) TO allDialogs(dialogID)!dialogHandler)][|(!!")[(! 6!Z)][3I(! 6,! d)[8-(! Idle)]]]]]]]]]][3^(! 6! d)[8(! Idle)][(!~,~^!"~^~,)[a(! 6^! d!)[8(! TC_AbortRe.q(dialogID))][(!~~!"~~)[ d(! 6! d)[8(! allDialogs(dialogID)!status)][(!"~X~qxqx!"xL6(!^!"^)[3(! 6 ! d!)[8(! ApplicationBegin(cSAid))][l(!&!"&)[69|(!FF!"FF)[t (! 6! d!)[8(! *)][ (!FrF!"FFr)[w (! 6! p(!4f!"f4)[(! 6f!Z)][3_ (! 6,f! d)[8(! Idle)]]]]]]]]]][3q (! 6x! d)[8(! Idle)][} 0Ad TCoriginType; DCL cSAid CSAID;)]][3(! 6! d)[8(! Idle)][(!~~&!"~&~)[(! 6&! d!)[8(! CSaI3Dresp(dialogID,cSAid))][(!~~!"~~)[ (! 6! d)[8(! allDialogs(dialogID)!status)][(!"~ ~9x9x!"x4~ )[8(! 6R! else)][(! 6x!Z)][(! 6! d)[8(! IncorDialogID)]]][(!~ ~~!"~~~ 6(!&!"&)[7B(! 6&~!)[8(!Z /* The dialog is released and the corresponding dialog process has terminates itself. */)]]][K(!!")[8(! 69! (csaPending))][6(! 6~! d)[8(!% allDialogs(dialogID)!status := busy)][(!~~!"~~)[6 (! 6! 7 d)[8(!# allDialogs(dialogID)!csa := cSAid)]["(!~x~!"~~x)[ (! 6! d!)[8(!A CSaIDresp(dialogID,cSAid) TO allDialogs(dia8logID)!dialogHandler)][%(!~~@!"~@~)[(! 6~@!Z)][3(! 6@! d)[8(! Idle)]]]]]]]]]]]]]][3(! 6,! 9d)[8(! Idle)][(!&X!"X&)[(! 6,X! d!)[8(! TC_BeginReq(dialogID,origAd))][(!!":)[ (! 6,! d)[8(! allDialogs(DialogID)!status)][ (!"Rkk!"R)[8(! 6k! (used))][;(! 6!Z)][(! 62! d)[8(! AbortRequired)]]][(!R!"R)[8(! 6Ek! else)][ (! 6,R! else)][(! 6!Z)][(! 6,! d)[8(! IncorDialogID)]]][b(!!")[8(! 6! (1:maxDialog=IDtoSSF))][ A(! 6 ! d)[8(!2 TCAP_D(allKnownIH(A_Side),dialogID,0,csaPending))][1e(!!")[7D(! 6!)[8(!e />* DialogID is free and in the right range, i.e., a new Dialog Handler for the A_Side is created */)]]][h(!@!"@)[((! 6 @! d!)[8(!* CSaIDr?eq(dialogID) TO allKnownIH(A_Side))][+(!!")[6G(! 6 ! d)[8(!< allDialogs(dialogID) := newDialog(csaPending,0,OFFSPRING))][k(!@:l!"l:)[J(! 6 l! d!)[8(!e TC_InvokeReq(invokeID,dialogID,opClass,opCode,timeoutVal,arg) TO allDialogs(dialogID)!dialogHandler)][n(!(! RegisterSSFresp(roleIH))][1(!&!"&)[7(! 6!)[8(!$ /* Second side provides its PId */)]]][ (!:l!"Bl:)[6(! 6&l! d)[8(! allKnownIH(roleIH) := SENDER)][#(!!")[(! 6!Z)][3(! 6& 99R!"R )[8(! 6! else)][?(! 6,R! d!)[8(! TCAPFailureInd(cSAnotAvail))][Z(!!"a(! 6R! d)[8(! IncorCSAid)]]][(!^ ^!"^^ )[8(! 69! else)][(! 6! d!)[8(!M Ac[8(! 6q! else)][j(! 6 ! d!)[8(!= TC_AbortReq(dialogID) TO allDialogs(dialogID)!dialogHandler)][(!~~!"~~)[F(! 6~!Z)][3m(! 6! d)[8(! Idle)]]]]]]]]]][3 (! 6,! d)[8(! Idle)][ (!x!"x)[!")[8(! 6! (used))][(! 6!Z)][(! 6,! d)[8(! AbortRequired)]]][V(!"^)[ (! 6 ! d)[8(! invokeID)][(!"  &!"&)[8(! 6! else)][(! 6,&8(!&!"9)[D(! 6,&! d!)[8(! ApplicationEnd(preEnd,cSAid))][_(! "{`)[6G!")[(! 6!Z)][3Y(! 6,! d)[8(! Idle)]]]]]]]]]]]][9Q(! 6X! )[8(! DCL preEnd Boolean;y()[(! l! 22!(H)[(! l)[(! 6)[(! 6d! )]][ (! 6)][9(! 6d! )[8(!+ DCL orig2~X)[8(! 6F?! (free, used))][(! 6x!Z)][g(! 6! d)[8(! AbortRequired)]]][(!~X~ !"~ ~X)E)]]]]]]]]]][3(! 6! d)[8(! Idle)][(!^x^!"^^x)[(! 6! d!)[8(! *)][(!^N^@!"^@^)[(! 6@! d!)[8(! TCAPFailureInd(unexpSignal))][(!^^!"^^)[(! 6^!!Z)][3(! 6&! d)[8(! Idle)]]]]]][36(! 62R! d)[8(! Idle)][<(!!")[9(! 62P! d!)[8(! ReleaseDialog(dialogID))][N(!L~!"~L)[6?(! 62~! d)[8(!% allDialogs(dialogID)!status := used)][1H5(! 6!!3)[!(! 7!!3)[!(! 8!!3)[! (! 9!!3)[! (! 10!!3)[! (! 11!!3)[!! d)[8(! dialogID)][(!"~F!"F~)[8(! 6! else)][(! 6!)][(! 6&F! dS)[8(! IncorDialogID)]]][(!~!"~)[8(! 6,! (1:50))][(! 6,! d!)[8(!D TC_BeginReq(dialogID,origAdT) TO allDialogs(dialogID)!dialogHandler)][(!@r!"r@)[(! 6r!Z)][3(! 6,r! d)[8(! Idle)]]]]]]][(!"R6! else)][ o(! 6 ! d)[8(!$ TCAP_D(SENDER,dialogID,cSAid,busy))][r(!@!"@)[6Q(! 6 @! d)[8(!9V allDialogs(dialogID) := newDialog(busy,cSAid,OFFSPRING))][x(!!")[(! 6!Z)][3u(! 6 ! d)[8(! Idle)]]]]]]]]]]]]W]]]]]]]]}!"x)[(! 6!Z)][3N(! 6,! d)[8(! Idle)]]]]][i(!!")[8(! )[7(! 6&!)[8(! /* This is some sort of error handling performed by the TCAP simulator. Please note: The reception of TC_AbortInd primitives are for some TPs a PASS criteria */)]]][(!Y&!"&)[(! 6&!Z)][3(! 62&! d)[8(! Idle)]]]]]][(! 6! d)[8(! IncorCSAid)][(!Z~^~!"~~^)[(! 6! d!)[8(! TCAPFailureInd(wrongCSaID))][(!~~&!"~&~)[(! 6~&Oed on system level */ ENDNEWTYPE; )]]]]}tIHrole: IHresourceType, PId -> IHroleType; OPERATOR getIHrole; FPAR resourcesIH IHresourceType, unknownRole PId; RETURNS role IHroleType; REFERENCED; ENDNEWTYPE; )]][C!(! 6@! (Aid) TO allDialogs(dialogID)!dialogHandler)][M (!FF!"FF)[(! 6F!Z)][3; (! 6! d)[8(! Idle)]]]]]]]]]]]]]]}9~!"~)[8(! 6E! else)][P(! 6,~! d!)[8(!D ApplicationEnd(preEnd,cSAid) TO allDialogs(dialogID)!dialogHandler)][k(!J12(!!"2)[R(! 6,! 3 d!)[8(!- EventNo3ficationCharging(cSAid,arg!eNCArg))][(! ~)[ (! 6! d)[8(! dialogID)][(!"^ ^9X9XR!"XR^ )[8(! 6&! (0))][(! 6XR!Z)][D()[(! l! 22!(H)[5(! l)[8(! 6)[;(! 6d! )]][ >(! 6)][3A(! 6,! d)[8(! Idle)][q)[(! 6!Z)][3B(! 6,! d)[8(! Idle)]]]]][](! !" )[8(! 69!b (0))][6E(! 6 ! d)[8(!* dialogID := nextFreeDialogID(allDialogs))][`(!L~!"~L)[ H(! 6 ~! d)[8(! dialogIcD)][c(!"!")[8(! 6! (0))][K(! 6,! d!)[8(! TCAPFailureInd(noDiaIDavail))][f(!dx!"x)[(! 6!Z)][3N(! 6,! d)[8(! Idle)]]]]][i(!!")[8(! U()[(! l! 22!(H)[@(! l)[C(! 6)[F(! 6d! )]][ I(! 6)][3O(! 6,d! d)[8(! Idle)][uired)][(!^!"^)[(! 62! d!)[8(!# TC_AbortInd(dialogID) VIA FromSCF)][1(!&!"&X(!& DCL termination TCAPterminationType;)]]]]}(! 6?9! else)][(! 6&! d!)[8(!? ApplicationAbort(cSAid) TO allDialogs(dialogID)!dialogHandler)][,(!L:D)!dialogHandler)][& (!!")[(! 6!Z)][3 (! 6,! d)[8(! Idle)]]]]]]]]]][9 (! 6&! )[8g!FF!"FF)[6/ (! 6! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][D (!F FR!"FRF )[ 2 (!(!"!")[8(! 6X! (0))][(! 6!Z)][M(! 6&! d)[8(! IncorCSAid)]]][h(!]]]]]}(! 6 ! )[8(! DCL preEnd Boolean;)]]]]}lse)][(! 6&! d!)[8(!? ApplicationAbort(cSAid) TO allDialogs(dialogID)!dialogHandler)][,(!L!")[8(! 6X! (0))][(! 6!Z)][(! 6&! d)[8(! IncorCSAid)]]][(!!"m)[8(! 6E! else)][(! 6,! d!)[8(!R ServiceFilteringResponse(cSAid,arg!sFRArg) TO allDialogs(dialogID)!dialogHandler)][(!n4!"4)[(! 64!Z)][3(! 6,4! d)[8(! Idle)]]]]]]]]]]]]]]}(!!")[(! ()[(! l! !(d)[t(! l)[w(! 6)[z(! 6d! )]][ }(! 6)][3(! 6,d! d)[8(! Idle)][d!)[8(! TCAPFailureInd (unexpSignal))][ (!FF:!"F:F)[(! 6F:!Z)][3z (! 6:! d)[8(! Idle)]]]]]]k\(!&!"&)[D(! 6,&! d!)[8(! ApplicationEnd(preEnd,cSAid))][_(!!")[6Gr(! 6,! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][b(! R!"R )[ J(! 6,R! d)[8(! dialogID)][ej(!!")[8(! 6! else)][(! 6,! d!)[8(!E Errror(invokeID,cSAid,errArg) TO allDialogs(dialogID)!dialogHandler)][t(!!")[(! 6!Z)][3(! 6,! d)[8(! Idle)]]]]][(!"!"!"x~)[8(! 6F! (0))][(! 6x!Z)][(! 6! d)[8(! IncorCSAid)]]][=(!~~l!"~lv~)[8(! 63! else)][+(! 6l! d!)[8(!C InitialDP(cSAid,arg!iDPArg) TO allDialogs(dialogID)!dialogHandler)][7(!~~!"~w~)[(! 6~!Z)][31(! 6! d)[8(! Idle)]]]]]]]]]]]]]]}(! 6@! d)[8(! dialogID)][(!"~~xxalogID)][(!"!")[8(! 6Xq! (0))][(! 6!Z)][(! 6&! d)[8(! IncorCSAid)]]][)]][3) (! 6! d)[8(! Idle)][> (!FF&!"F&F)[, (! 6&! d!)[8(! ApplicationAbort(cSAid))][A (i(!,!",)[(! 6,,! d!)[8(!! Errror (invokeID,cSAid, errArg))][(!!")[6()[(! l! !(d)[$(! l)['(! 6)[*(! 6d! )]][ -(! 6)][30(! 6 ! d)[8(! Idle)][/(! 6 &! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][T(!!")[ <(! 6 ! d)[8(! dialogID)][W(!"C^)[6(! 6,! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!&!"&)[ (! 6,&! d)[8(! dix()[(! l! 22!(H)[(! l)[(! 6)[(! 6d! )]][ (! 6)][3(! 6,! d)[8(! IDLE)][z(!R!"R)[8(! 6E! else)][(! 6,R! d!)[8(!U ApplyChargingReport(cSAid,arg!aCRArg,compEnd) TO allDialogs(dialogID)!dialogHandler)][(!!")[(! 6!Z)][3(! 6,! d)[8(! Idle)]]]]]]]]]]][(!"~~!"~)[(! 6! d!)[8(!- AssistRequestInstructions(cSAid,arg!aRIArg))][(!~^~!"~~^)[6(! 6! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!~~&!"~&~)[ (! 6&! d)[8(! dialogID)][(!"~~xx!"x~)[8(! 6Fq! (0))][(! 6x!Z)][(! 6! d)[8(! IncorCSAid)]]][(!~~R!"~R~)[8(! 63! else)][(! 6R! d!)[8(!S AssistRequestInstructions(cSAid,arg!aRIArg) TO allDialogs(dialogID)!dialogHandler)][(!~~!"~~)[(! 6~!Z)][3(! 6! d)[8(! Idle)]]]]]]]]]]]][3(! 6,~! d)[8(! Idle)][(!!")[(! 6,! d!)[8(!2 CallInformationReport (cSAid,arg!cIRArg,compEnd))]["(!x!"x)[6(! 6,! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!@!"@)[ (! 6,@! d)[8(! dialogID)][(!"!")[8(! 6! (0))][(! 6!Z)][ (! 6&! d)[8(! IncorCSAid)]]][:(!l!"l)[8(! 6E! else)][((! 6,l! d!)[8(!W CallInformationReport(cSAid,arg!cIRArg,compEnd) TO allDialogs(dialogID)!dialogHandler)][4(!!")[(! 6!Z)][3.(! 6,! d)[8(! Idle)]]]]]]]]]]][(!"~~!"~)[(! 6! d!)[8(! InitialDP(cSAid,arg!iDPArg))][%(!~x~!"~~x)[6 (! 6! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!~~@!"~@~)[ (! 6@! d)[8(! dialogID)][(!"~~xxu()[(! l! 22!(d)[(! l)[(! 6)[(! 6d! )]][ (! 6)]]]}(! 6! d)[8(! Idle)][(!!")[(! 6,! d!)[8(!/ ApplyChargingReport(cSAid,arg!aCRArg,compEnd))][(!^!"}Idle)]]]]][(!R!"R)[8(! 6 ! (1:maxInvokeIDtoSSF))][ 2(! 6 R! d)[8(! allDialogs(dialogID)!status)][(!"G! d!)[8(! TCAPFailureInd(wrongInvokeID))][(!!")[(! 6!Z)][3(! 6,! d)[8(! X(!!")[R(! 6,! d!)[8(!- EventNotificationCharging(cSAid,arg!eNCArg))][(!^!"^)[6^(! 6,! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][|(!&!"&)[ a(! 6,&! d)[8(! dialogID)][(!"!")[8(! 6Xq! (0))][(! 6!Z)][d(! 6&! d)[8(! IncorCSAid)]]][(!R!"R)[8(! 6E! else)][p(! 6,R! d!)[8(!S EventNotificationCharging(cSAid,arg!eNCArg) TO allDialogs(dialogID)!dialogHandler)][(!!")[(! 6!Z)][3v(! 6,! d)[8(! Idle)]]]]]]]]]]][[(!"~~!"~)[U(! 6! d!)[8(!# EventReportBCSM(cSAid,arg!eRBArg))][(!~^~!"~~^)[6g(! 6! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!~~&!"~&~)[ j(! 6&! d)[8(! dialogID)][(!"~~xx!"x~)[8(! 6Fq! (0))][(! 6x!Z)][m(! 6! d)[8(! IncorCSAid)]]][(!~~R!"~R~)[8(! 63! else)][s(! 6R! d!)[8(!I EventReportBCSM(cSAid,arg!eRBArg) TO allDialogs(dialogID)!dialogHandler)][(!~~!"~~)[(! 6~!Z)][3y(! 6! d)[8(! Idle)]]]]]]]]]]]][3(! 6,! d)[8(! Idle)][(!F!"F)[(! 6,F! d!)[8(!, ServiceFilteringResponse(cSAid,arg!sFRArg))][(!!")[6(! 6,! d)[8(!+ dialogID := getDialogID(cSAid,allDialogs))][(!@r!"r@)[ (! 6,r! d)[8(! dialogID)][(!"l)[8(! 6! (0))][(! 6!Z)][(! 6! d)[8(! IncorCSAid)]]]]]]]]]][3`(! 6! d)[8(! Idle)][f(!,!",)[c(! 6,! d!)[8(! ApplicationContinue (cSAid))][l(!!")[(! 6!Z)][3i(! 6! d)[8(! Idle)]]]]]][3P (! 6,x! d)[8(! Idle)][b (!!")[S (!( (! 12!!3)]]]]]]]]]]]]} 13!!3)]]]]]]]]]]]]]} 14!!3)[!(! 15!!3)]]]]]]]]]]]]]]]}------------------------------------------------------------------7()[(! l! !(d)[!(! l)[$(! 6)['(! 6d! )]][ *(! 6)][9-(! 62! )[8(!W DCL allK(!^^^!"^^^)[(! 6! d!)[8(!' ActivityTestResult(invokeID,dialogID))][(!^^!"^^_! d)[8(! IncorCSAid)]]][J (!FF~!"F~F)[8(! 6! else)][8 (! 6~! d!)[8(!? ApplicationAbort(cS\! d)[8(! Idle)]]]]]]][)(!"~~!"~)[+(! 6! d)[8(! *)]]]]]]]]][(!"~~!"~)[+(! 6! d)[8(! *)]]]]]]]]]]]]]]}(! 6&! )[8(!W DCL allKnownIH IHresourceType; DCL roleIH IHroleType; DCL allDiativityTestResult(invokeID,dialogID) TO allDialogs(dialogID)!dialogHandler)][(!^L^~!"^~^L)[(! 6^~!Z)][3(! 6~! d)[8(! IdleM 6R! d)[8(! dialogID)][G (!"FF@@!"@F)[8(! 6! (0))][(! 6@!Z)][5 (! 6nownIH IHresourceType; DCL roleIH IHroleType; DCL allDialogs AllDialogsType;)]][90(! 62&! )[8(! DCL invokeID InvokeIDtype; DCL dialogID DialogIDtype; DCL opClass OpClassType; DCL opCode OpCodeType; DCL timeoutVal TimeoutValType;)]][93(! 62R! )[8(!p DCL arg ArgType; /* refers to ASN.1 Definition in INCS2BundleArg */ DCL errArg errorArg; DCL compEnd Boolean;)]]]]}---------------------------------------------------------Z)][3(! 6! d)[8(! Idle)]]]]]]]]]]}^L^~!"^~^L)[(! 6^~!Z)][3(! 6~! d)[8(! IdleX (! 6,! d!)[8(!! TC_EndReq(dialogID,termination))][ (!@!"@)[ (! 6,@! d)[8(! allDialogs(dialogID)!status)][ (!"!")[8(! 6X! (free, used))][(! 6!Z)][ (! 6&! d)[8(! AbortRequired)]]][# (!l!"l)[8(! 6E! else)][ (! 6,l! d!)[8(!G TC_EndReq(dialogID,termination) TO allDialogs(dialogIh)[(! 6!Z)][3E(! 62! d)[8(! Idle)]]]]]]]][(! 6&! d)[8(! IncorDialogID)][(!@!"@)[(! 6&@! d!)[8(! TCAPFailureInd(wrongDiaID))][(!!")[(! 6!Z)][3(! 6&! d)[8(! Idle)]]]]]]]]}-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------S!")[(! 6!Z)][3M(! 6 ! d)[8(! Idle)]]]]]]]]]]]]]]]]]]]]]]}---------------------------------------------------------------------------------kkF!"FR)[8(! 6k! (free))][(! 6F!Z)][)()]]]]]]]]]}--------------------------------------------------------------------------------------