Loading BC/ttcn/AtsIms_Gm_TCFunctions.ttcn +105 −0 Original line number Diff line number Diff line Loading @@ -2210,7 +2210,112 @@ module AtsIms_Gm_TCFunctions { // postamble // done f_SIP_postamble_UE2_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_STA_04_UE2 /* * @desc This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_STA_05_UE1 * @param p_cSeq_s */ function f_TC_IMST2_GM_STA_05_UE1(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // preamble with send REGISTER, await 401, send REGISTER, await // 200 OK and user profile setting f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome, p_cSeq_s, v_register); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // point // preamble // done // TESTBODY // prepare and send MESSAGE UE2 // @SUT LibIms_Steps .f_setHeadersMESSAGE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendMESSAGE(m_MESSAGE_Request_NoBody_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, vc_route_REG, omit)); // await response - 400 ... f_awaitingResponsePassOnTimeout(mw_Response_Via(c_statusLine400, vc_callId, vc_cSeq, vc_via)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done // POSTAMBLE // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync // point // postamble // done f_SIP_postamble_UE1_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_STA_05_UE1 /* * @desc This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_STA_05_UE2 * @param loc_CSeq_s */ function f_TC_IMST2_GM_STA_05_UE2(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // IMS1 component interface initialization f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2); // preamble with send REGISTER, await 401, send REGISTER, await // 200 OK and user profile setting f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome, p_cSeq_s, v_register); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // point // preamble // done // TESTBODY // Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_Base); // different via header f_sendResponse(m_Response_onMESSAGE_IMS(c_statusLine400, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via_REG, valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile))))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done // POSTAMBLE // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync // point // postamble // done f_SIP_postamble_UE2_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_STA_05_UE2 } // group StandaloneRequest group SubsequentRequest { Loading BC/ttcn/AtsIms_Gm_Testcases.ttcn +22 −0 Original line number Diff line number Diff line Loading @@ -604,6 +604,28 @@ module AtsIms_Gm_Testcases } // end TC_IMST2_GM_STA_04 /* * @desc TC_IMST2_GM_STA_05 * @param p_cSeq_s Transaction Id */ testcase TC_IMST2_GM_STA_05(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ue1, v_imsComponent_ue2; f_cf_2GmUp(v_imsComponent_ue1, v_imsComponent_ue2); //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ue1.start(f_TC_IMST2_GM_STA_05_UE1(p_cSeq_s)); f_IncCSeq(p_cSeq_s); v_imsComponent_ue2.start(f_TC_IMST2_GM_STA_05_UE2(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); f_cf_2GmDown(v_imsComponent_ue1, v_imsComponent_ue2); } // end TC_IMST2_GM_STA_05 }//group TP_StandaloneRequestProcedures group TP_SubsequentRequestProcedures{ Loading Loading
BC/ttcn/AtsIms_Gm_TCFunctions.ttcn +105 −0 Original line number Diff line number Diff line Loading @@ -2210,7 +2210,112 @@ module AtsIms_Gm_TCFunctions { // postamble // done f_SIP_postamble_UE2_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_STA_04_UE2 /* * @desc This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_STA_05_UE1 * @param p_cSeq_s */ function f_TC_IMST2_GM_STA_05_UE1(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // preamble with send REGISTER, await 401, send REGISTER, await // 200 OK and user profile setting f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome, p_cSeq_s, v_register); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // point // preamble // done // TESTBODY // prepare and send MESSAGE UE2 // @SUT LibIms_Steps .f_setHeadersMESSAGE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendMESSAGE(m_MESSAGE_Request_NoBody_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, vc_route_REG, omit)); // await response - 400 ... f_awaitingResponsePassOnTimeout(mw_Response_Via(c_statusLine400, vc_callId, vc_cSeq, vc_via)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done // POSTAMBLE // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync // point // postamble // done f_SIP_postamble_UE1_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_STA_05_UE1 /* * @desc This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_STA_05_UE2 * @param loc_CSeq_s */ function f_TC_IMST2_GM_STA_05_UE2(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // IMS1 component interface initialization f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2); // preamble with send REGISTER, await 401, send REGISTER, await // 200 OK and user profile setting f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome, p_cSeq_s, v_register); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // point // preamble // done // TESTBODY // Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_Base); // different via header f_sendResponse(m_Response_onMESSAGE_IMS(c_statusLine400, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via_REG, valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile))))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done // POSTAMBLE // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync // point // postamble // done f_SIP_postamble_UE2_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_STA_05_UE2 } // group StandaloneRequest group SubsequentRequest { Loading
BC/ttcn/AtsIms_Gm_Testcases.ttcn +22 −0 Original line number Diff line number Diff line Loading @@ -604,6 +604,28 @@ module AtsIms_Gm_Testcases } // end TC_IMST2_GM_STA_04 /* * @desc TC_IMST2_GM_STA_05 * @param p_cSeq_s Transaction Id */ testcase TC_IMST2_GM_STA_05(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ue1, v_imsComponent_ue2; f_cf_2GmUp(v_imsComponent_ue1, v_imsComponent_ue2); //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ue1.start(f_TC_IMST2_GM_STA_05_UE1(p_cSeq_s)); f_IncCSeq(p_cSeq_s); v_imsComponent_ue2.start(f_TC_IMST2_GM_STA_05_UE2(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); f_cf_2GmDown(v_imsComponent_ue1, v_imsComponent_ue2); } // end TC_IMST2_GM_STA_05 }//group TP_StandaloneRequestProcedures group TP_SubsequentRequestProcedures{ Loading