/** * @author STF 490 * @version $Id$ * @desc This module provides SIP/IMS test functions used by the test cases * for IMS-DIAMETER tests. Test functions comes from TS 102 790 standard * and are modified due to new LibIms/LibSip library V3.X.X. All tests are * adopted with new sinchronization points due to Rf/Ro TSS/TP test specifications. */ module DiameterRfRo_SIP_TCFunctions { //LibCommon import from LibCommon_Sync all ; //LibSip import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibSip_Steps all; import from LibSip_Interface all; import from LibSip_PIXITS all; import from LibSip_Common all; //LibIms import from LibIms_Templates all; import from LibIms_Steps all; import from LibIms_Interface all; // DiameterRfRo import from DiameterRfRo_SIP_Templates all; group TP_RF_Role { // 5.2.2.2. CTF Role group TP_RF_CTF_Role { // 5.2.2.2.2 Message Syntax group TP_RF_CTF_MS { //Add SIP functions if needed } // End of group TP_RF_CTF_MS_Role // 5.2.2.2.3 Type of Charging group TP_RF_CTF_TC { /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_01_VA1 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_03_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_01_VA1(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(p_cSeq_s, v_register);//TODO - delete when test is validated //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY // prepare and send MESSAGE IMS1UE@TS LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);//TODO - delete when test is validated - //used to be profile c_userProfile_ICSCFwithHomeUE f_SendMESSAGE(m_MESSAGE_Request_MBody_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, vc_route_REG, omit, m_mBody_plainText("Hello!")));//vc_route is set after 200OkRegister from ServiceRoute: if not then vc_route need to be preparee in set_header function:( f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); 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 f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_01_VA1 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_01_VA1 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_03_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_01_VA1(in CSeq p_cSeq_s) runs on ImsComponent { f_IMS_preamble_woRegistration(p_cSeq_s);//TODO - delete when test is validated - //used to be profile c_userProfile_ICSCFwithHomeUE, //TODO - delete when test is validated - //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_PchargingVector("icid-value",?)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_send200OK(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_01_VA1 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_01_VA2 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_03_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_01_VA2(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 //TODO - delete when test is validated //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, // Variables & defaults initialization f_IMS_preamble_woRegistration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 // Preamble f_Registration(p_cSeq_s, v_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED); // deregistration in case of successful registration vc_DeregDone := false; f_setHeaders_SUBSCRIBE(p_cSeq_s); f_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, vc_route_REG)); // TESTBODY // prepare and send MESSAGE IMS1UE@TS LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);//TODO - delete when test is validated - //used to be profile c_userProfile_ICSCFwithHomeUE f_SendMESSAGE(m_MESSAGE_Request_MBody_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, vc_route_REG, omit, m_mBody_plainText("Hello!")));//vc_route is set after 200OkRegister from ServiceRoute: if not then vc_route need to be preparee in set_header function:( // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); 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 f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_01_VA2 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_01_VA2 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_03_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_01_VA2(in CSeq p_cSeq_s) runs on ImsComponent { f_IMS_preamble_woRegistration(p_cSeq_s);//TODO - delete when test is validated - //used to be profile c_userProfile_ICSCFwithHomeUE, //TODO - delete when test is validated - //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_PchargingVector("icid-value",?)); f_send200OK(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_01_VA2 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_01_VA3 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_03_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_01_VA3(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 //TODO - delete when test is validated //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, // Variables & defaults initialization f_IMS_preamble_woRegistration(p_cSeq_s); // Preamble f_Registration(p_cSeq_s, v_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // deregistration in case of successful registration vc_DeregDone := false; f_setHeaders_SUBSCRIBE(p_cSeq_s); // send SUBSCRIBE f_SendSUBSCRIBE(m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, vc_route_REG)); // awaiting 200 OK SUBSCRIBE f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 // await NOTIFY and send reply 200 OK f_awaitingOkResponseAndNOTIFY_sendReply(p_cSeq_s, mw_NOTIFY_Request_Base(vc_callId)); // TESTBODY // prepare and send MESSAGE IMS1UE@TS LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);//TODO - delete when test is validated - //used to be profile c_userProfile_ICSCFwithHomeUE f_SendMESSAGE(m_MESSAGE_Request_MBody_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, vc_route_REG, omit, m_mBody_plainText("Hello!")));//vc_route is set after 200OkRegister from ServiceRoute: if not then vc_route need to be preparee in set_header function:( // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); 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 f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_01_VA3 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_01_VA3 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_03_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_01_VA3(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_01_VA2(p_cSeq_s); } // end function f_TC_CTF_TC_CSCF_01_VA3 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_01_VA4 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_SUB_03_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_01_VA4(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( p_cSeq_s, v_register);//c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY // await SUBSCRIBE //UE2 has established a SUBSCRIBE dialog with UE1 //f_awaitingSUBSCRIBE(mw_SUBSCRIBE_Request_Base); //f_sendResponse(m_Response_2xxonSUBSCRIBE_UE(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact)); //send PUBLISH LibIms_Steps.f_setHeadersPUBLISH(p_cSeq_s, vc_requestUri);//, c_userProfile_ICSCFwithHomeUE); f_SendPUBLISH(m_PUBLISH_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, m_Event_presence, omit, m_mBody_plainText("I'M PRESENT!"),vc_route_REG)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); 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 f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_01_VA4 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_01_VA4 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_SUB_03_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_01_VA4(in CSeq p_cSeq_s) runs on ImsComponent { f_IMS_preamble_woRegistration( p_cSeq_s);//c_userProfile_ICSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 // await PUBLISH f_awaitingPUBLISH_sendReply(mw_PUBLISH_Request_PchargingVector(?,mw_pChargingVector(c_icid,?))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // POSTAMBLE f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_01_VA4 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_02 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_02(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY // prepare and send INVITE IMS1UE@TS LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri); //, c_userProfile_ICSCFwithHomeUE f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route_REG, omit, valueof(m_MBody_SDP(vc_sdp_local)))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 //await response - 200 ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done // POSTAMBLE //send BYE await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_02 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_02 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_02(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; f_IMS_preamble_woRegistration(p_cSeq_s); //c_userProfile_ICSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // await INVITE UE1@SUT f_awaitingINVITE(mw_INVITE_Request_noPChargingFunction); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 //send response - 200 f_sendResponse(m_Response_2xxonINVITE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_addNewRecordRouteIMS(valueof(vc_recordRoute)), valueof(m_MBody_SDP(vc_sdp_local)))); // TESTBODY // await ACK f_awaitingACK(mdw_ACK_Request_noPchargingVector(vc_callId)); // P-Charging-Function-Addresses does not pass network border f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done // POSTAMBLE //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_02 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_03 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_03(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY // prepare and send INVITE IMS1UE@TS LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri); //, c_userProfile_ICSCFwithHomeUE f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route_REG, omit, valueof(m_MBody_SDP(vc_sdp_local)))); //await response - 200 ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done // POSTAMBLE //send BYE await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_03 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_03 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_03(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; f_IMS_preamble_woRegistration(p_cSeq_s); //c_userProfile_ICSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // await INVITE UE1@SUT f_awaitingINVITE(mw_INVITE_Request_noPChargingFunction); //send response - 200 f_sendResponse(m_Response_2xxonINVITE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_addNewRecordRouteIMS(valueof(vc_recordRoute)), valueof(m_MBody_SDP(vc_sdp_local)))); // TESTBODY // await ACK f_awaitingACK(mdw_ACK_Request_noPchargingVector(vc_callId)); // P-Charging-Function-Addresses does not pass network border f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done // POSTAMBLE //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_03 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_04 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_TAR_03_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_04(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY // prepare and send INVITE UE@TS LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri);//TODO:vc_requestUri need to be set for TO field---c_userProfile_ICSCFwithHomeUE f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route_REG, omit, m_MBody_SDP(vc_sdp_local))); // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); // Send reINVITE LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, vc_requestUri);//TODO:vc_requestUri need to be set for TO field---//, c_userProfile_ICSCFwithHomeUE f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, m_MBody_SDP(vc_sdp_local))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 // await response - 200 f_awaitingResponse(mw_Response_Base((c_statusLine200),vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done // POSTAMBLE // send original BYE await response to clean the session f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_04 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_04 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_TAR_03_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_04(in CSeq p_cSeq_s) runs on ImsComponent { f_IMS_preamble_woRegistration(p_cSeq_s);//c_userProfile_ICSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // await INVITE UE1@SUT f_awaitingINVITE(mw_INVITE_Request_Base); // no specific constraints in TP //send response - 200 f_sendResponse(m_Response_2xxonINVITE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_addNewRecordRouteIMS(valueof(vc_recordRoute)), valueof(m_MBody_SDP(vc_sdp_local)))); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); //await REINVITE UE1@SUT f_awaitingINVITE(mw_INVITE_Request_Base); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_sendResponse(m_Response_2xxonINVITE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_addNewRecordRouteIMS(valueof(vc_recordRoute)), valueof(m_MBody_SDP(vc_sdp_local)))); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_04 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_TC_UE_05 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_TC_UE_05(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY // prepare and send INVITE IMS1UE@TS LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri); //, c_userProfile_ICSCFwithHomeUE f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route_REG, omit, valueof(m_MBody_SDP(vc_sdp_local)))); //await response - 200 ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 //send BYE await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); 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 f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_UE_05 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_TC_CSCF_05 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_TC_CSCF_05(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; f_IMS_preamble_woRegistration(p_cSeq_s); //c_userProfile_ICSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // await INVITE UE1@SUT f_awaitingINVITE(mw_INVITE_Request_noPChargingFunction); //send response - 200 f_sendResponse(m_Response_2xxonINVITE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_addNewRecordRouteIMS(valueof(vc_recordRoute)), valueof(m_MBody_SDP(vc_sdp_local)))); // TESTBODY // await ACK f_awaitingACK(mdw_ACK_Request_noPchargingVector(vc_callId)); // P-Charging-Function-Addresses does not pass network border f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_CTF_TC_CSCF_05 } // End of group TP_RF_CTF_TC_Role // 5.2.2.2.4 Error cases group TP_RF_CTF_EC { /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_EC_UE_01 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_EC_UE_01(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_UE_02(p_cSeq_s); } // end function f_TC_CTF_EC_UE_01 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_EC_CSCF_01 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_EC_CSCF_01(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_02(p_cSeq_s); } // end function f_TC_CTF_EC_CSCF_1 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_EC_UE_02 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_EC_UE_02(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_UE_03(p_cSeq_s); } // end function f_TC_CTF_EC_UE_02 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_EC_CSCF_02 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_EC_CSCF_02(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_03(p_cSeq_s); } // end function f_TC_CTF_EC_CSCF_02 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_EC_UE_03 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_EC_UE_03(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_UE_03(p_cSeq_s); } // end function f_TC_CTF_EC_UE_03 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_EC_CSCF_03 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_EC_CSCF_03(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_03(p_cSeq_s); } // end function f_TC_CTF_EC_CSCF_03 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_EC_UE_04 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_EC_UE_04(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_UE_03(p_cSeq_s); } // end function f_TC_CTF_EC_UE_04 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_EC_CSCF_04 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_EC_CSCF_04(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_03(p_cSeq_s); } // end function f_TC_CTF_EC_CSCF_04 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_EC_UE_05 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_EC_UE_05(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_UE_03(p_cSeq_s); } // end function f_TC_CTF_EC_UE_05 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_EC_CSCF_05 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_EC_CSCF_05(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_03(p_cSeq_s); } // end function f_TC_CTF_EC_CSCF_05 /** * @desc This is the test case function (SIP originating side - UE1) for TC_CTF_EC_UE_06 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_UE1 * @param p_cSeq_s */ function f_TC_CTF_EC_UE_06(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_UE_03(p_cSeq_s); } // end function f_TC_CTF_EC_UE_06 /** * @desc This is the test case function (Mw interface - IUT P-CSCF) for TC_CTF_EC_CSCF_06 * Test function is adopted and comes from TS 102 790 - TC_IMST2_MW_GEN_08_IMS * @param p_cSeq_s */ function f_TC_CTF_EC_CSCF_06(in CSeq p_cSeq_s) runs on ImsComponent { f_TC_CTF_TC_CSCF_03(p_cSeq_s); } // end function f_TC_CTF_EC_CSCF_06 } // End of group TP_RF_CTF_EC_Role { } // End of group TP_RF_CTF_Role } // End of group TP_RF_Role group TP_RO_Role { //5.2.3.2. CTF Role group TP_RO_CTF_Role { // 5.2.3.2.2 Message Syntax group TP_RO_CTF_MS { } // End of group TP_RO_CTF_MS // 5.2.3.2.3 Type of Charging group TP_RO_CTF_TC { /** * @desc This is the test case function (SIP terminating side - UE1) for f_TC_RO_CTF_TC_UE_01 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_UE1 * @param p_cSeq_s */ function f_TC_RO_CTF_TC_UE_01(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_noPchargingFunction_UE); f_send200OK(); 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_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_RO_CTF_TC_UE_01 /** * @desc This is the test case function (SIP originating side - CSCF) for f_TC_RO_CTF_TC_CSCF_01 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_IMS * @param p_cSeq_s */ function f_TC_RO_CTF_TC_CSCF_01(in CSeq p_cSeq_s) runs on ImsComponent { var GenValue v_genValue := {tokenOrHost := "host"}; f_IMS_preamble_woRegistration( p_cSeq_s); //c_userProfile_SCSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send MESSAGE UE1_SUThome LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);// c_userProfile_UE1atSUThome f_SendMESSAGE(m_MESSAGE_Request_PCharging_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(v_genValue))); // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_RO_CTF_TC_CSCF_01 /** * @desc This is the test case function (SIP terminating side - UE1) for f_TC_RO_CTF_TC_UE_06 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_UE1 * @param p_cSeq_s */ function f_TC_RO_CTF_TC_UE_06(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_noPchargingFunction_UE); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_send200OK(); 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_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_RO_CTF_TC_UE_06 /** * @desc This is the test case function (SIP originating side - CSCF) for f_TC_RO_CTF_TC_CSCF_06 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_IMS * @param p_cSeq_s */ function f_TC_RO_CTF_TC_CSCF_06(in CSeq p_cSeq_s) runs on ImsComponent { var GenValue v_genValue := {tokenOrHost := "host"}; f_IMS_preamble_woRegistration( p_cSeq_s); //c_userProfile_SCSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send MESSAGE UE1_SUThome LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);// c_userProfile_UE1atSUThome f_SendMESSAGE(m_MESSAGE_Request_PCharging_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(v_genValue))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_RO_CTF_TC_CSCF_06 /** * @desc This is the test case function (SIP terminating side - UE1) for f_TC_RO_CTF_TC_UE_08 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_07_UE1 * @param p_cSeq_s */ function f_TC_RO_CTF_TC_UE_08(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(p_cSeq_s, v_register);//c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY //Awaiting INVITE f_awaitingINVITE(mw_INVITE_Request_noPChargingFunction); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_recordroute(),valueof(m_MBody_SDP(vc_sdp_local)))); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2 //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); 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_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_RO_CTF_TC_UE_08 /** * @desc This is the test case function (SIP originating side - CSCF) for f_TC_RO_CTF_TC_CSCF_08 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_07_IMS * @param p_cSeq_s */ function f_TC_RO_CTF_TC_CSCF_08(in CSeq p_cSeq_s) runs on ImsComponent { var REGISTER_Request v_register; var GenValue v_genValue := {tokenOrHost := "host"}; f_IMS_preamble_woRegistration( p_cSeq_s);//c_userProfile_SCSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // INVITE UE1 (registered at SUT) LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri);//c_userProfile_UE1atSUThome f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, omit/* vc_route*/, omit, omit, m_pChargingVector_origIoi_fixedValue(v_genValue), valueof(m_MBody_SDP(vc_sdp_local)))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 //await response - 200 f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2 //send BYE and await 200OK f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done // POSTAMBLE f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_RO_CTF_TC_CSCF_08 } // End of group TP_RO_CTF_TC // 5.2.3.2.4 Error Casses group TP_RO_CTF_EC { } // End of group TP_RO_CTF_EC // 5.2.3.2.5 Tariff Changes group TP_RO_CTF_CH { } // End of group TP_RO_CTF_CH // 5.2.3.2.6 Re-Authorization group TP_RO_CTF_RE { } // End of group TP_RO_CTF_RE // 5.2.3.2.7 Failure Handling group TP_RO_CTF_FH { /** * @desc This is the test case function (SIP terminating side - UE1) for f_TC_RO_CTF_FH_UE_01 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_UE1 * @param p_cSeq_s */ function f_TC_RO_CTF_FH_UE_01(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_noPchargingFunction_UE); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2 f_send200OK(); 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_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_RO_CTF_FH_UE_01 /** * @desc This is the test case function (SIP originating side - CSCF) for f_TC_RO_CTF_FH_CSCF_01 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_IMS * @param p_cSeq_s */ function f_TC_RO_CTF_FH_CSCF_01(in CSeq p_cSeq_s) runs on ImsComponent { var GenValue v_genValue := {tokenOrHost := "host"}; f_IMS_preamble_woRegistration( p_cSeq_s); //c_userProfile_SCSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send MESSAGE UE1_SUThome LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);// c_userProfile_UE1atSUThome f_SendMESSAGE(m_MESSAGE_Request_PCharging_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(v_genValue))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point sync1 f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point sync2 // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_RO_CTF_FH_CSCF_01 /** * @desc This is the test case function (SIP terminating side - UE1) for f_TC_RO_CTF_FH_UE_02 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_UE1 * @param p_cSeq_s */ function f_TC_RO_CTF_FH_UE_02(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_noPchargingFunction_UE); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_send200OK(); 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_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_RO_CTF_FH_UE_02 /** * @desc This is the test case function (SIP originating side - CSCF) for f_TC_RO_CTF_FH_CSCF_02 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_IMS * @param p_cSeq_s */ function f_TC_RO_CTF_FH_CSCF_02(in CSeq p_cSeq_s) runs on ImsComponent { var GenValue v_genValue := {tokenOrHost := "host"}; f_IMS_preamble_woRegistration( p_cSeq_s); //c_userProfile_SCSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send MESSAGE UE1_SUThome LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);// c_userProfile_UE1atSUThome f_SendMESSAGE(m_MESSAGE_Request_PCharging_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(v_genValue))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_RO_CTF_FH_CSCF_02 } // End of group TP_RO_CTF_FH // 5.2.3.2.8 Failover group TP_RO_CTF_FA { /** * @desc This is the test case function (SIP terminating side - UE1) for f_TC_RO_CTF_FA_UE_02 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_UE1 * @param p_cSeq_s */ function f_TC_RO_CTF_FA_UE_02(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(p_cSeq_s, v_register); //c_userProfile_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done // TESTBODY //Awaiting MESSAGE f_awaitingMESSAGE(mw_MESSAGE_Request_noPchargingFunction_UE); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); // sync f_send200OK(); 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_SIP_postamble_UE_withoutRegistration(); } // end function f_TC_RO_CTF_FA_UE_02 /** * @desc This is the test case function (SIP originating side - CSCF) for f_TC_RO_CTF_FA_CSCF_02 * Test function is adopted and comes from TS 102 790 - f_TC_IMST2_MW_GEN_09_IMS * @param p_cSeq_s */ function f_TC_RO_CTF_FA_CSCF_02(in CSeq p_cSeq_s) runs on ImsComponent { var GenValue v_genValue := {tokenOrHost := "host"}; f_IMS_preamble_woRegistration( p_cSeq_s); //c_userProfile_SCSCFwithHomeUE, //f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send MESSAGE UE1_SUThome LibIms_Steps.f_setHeadersMESSAGE(p_cSeq_s, vc_requestUri);// c_userProfile_UE1atSUThome f_SendMESSAGE(m_MESSAGE_Request_PCharging_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(v_genValue))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); // sync // await response - 200 OK ... f_awaitingResponse(mw_Response_Base (c_statusLine200,vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Postamble f_SIP_postamble_IMS1_withoutRegistration(); } // end function f_TC_RO_CTF_FA_CSCF_02 } // End of group TP_RO_CTF_FA // 5.2.3.2.9 Credit Pooling group TP_RO_CTF_CP { } // End of group TP_RO_CTF_CP // 5.2.3.2.10 Other Procedures group TP_RO_CTF_OP { } // End of group TP_RO_CTF_OP }//End of group TP_RO_CTF_Role } // End of group TP_RO_Role } // End of module DiameterRfRo_SIP_TCFunctions