Loading DiameterRx/ttcn/DiameterRx_ImsGm_TCFunctions.ttcn +287 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ module DiameterRx_ImsGm_TCFunctions { const c_statusLine200;} import from LibSip_Templates all; import from LibSip_Steps all; import from LibSip_SIPTypesAndValues all; // LibIms import from LibIms_Templates all; import from LibIms_Steps all; Loading Loading @@ -141,4 +142,290 @@ module DiameterRx_ImsGm_TCFunctions { } // end function f_Sip_TC_IMST2_GM_INI_04_UE2 } //end group TP_BasicCall // source from AtsIms_Gm_TCFunctions (STF346) group TP_Termination { /* * @desc This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_SUB_06_UE1 * @param p_cSeq_s */ function f_TC_IMST2_GM_SUB_06_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 INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); 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_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR // SendBYE and 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 // point // postamble // done f_SIP_postamble_UE1_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_SUB_06_UE1 /* * @desc This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_SUB_06_UE2 * @param loc_CSeq_s */ function f_TC_IMST2_GM_SUB_06_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 INVITE f_awaitingINVITE(mw_INVITE_Request_Base); 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 )))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR // 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); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync // point // postamble // done f_SIP_postamble_UE2_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_SUB_06_UE2 } // end TP_Termination // source from AtsIms_Gm_TCFunctions (STF346) group TP_TargetRefresh { /* * @desc This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_TAR_07_UE1 * @param p_cSeq_s */ function f_TC_IMST2_GM_TAR_07_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 INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); 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_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts // ReINVITE ... // prepare and send RE-INVITE UE2 // @SUT // TODO Check function to set headers for reinvite on // originating side LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true); 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))); // 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_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done // POSTAMBLE // SendBYE and 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 // point // postamble // done f_SIP_postamble_UE1_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_TAR_07_UE1 /* * @desc This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_TAR_07_UE2 * @param loc_CSeq_s */ function f_TC_IMST2_GM_TAR_07_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 INVITE f_awaitingINVITE(mw_INVITE_Request_Base); 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 )))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts // Awaiting RE-INVITE f_awaitingINVITE(mw_INVITE_Request_Base); 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 )))); 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)); // 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_TAR_07_UE2 } //end group TP_TargetRefresh } // end module AtsIms_Gm_TCFunctions No newline at end of file DiameterRx/ttcn/DiameterRx_Rx_TCFunctions.ttcn +100 −10 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ module DiameterRx_Rx_TCFunctions { // LibSip import from LibSip_Steps {function f_getVerdict;}; import from LibSip_SIPTypesAndValues all; import from LibSip_PIXITS all; // LibDiameter Loading Loading @@ -115,9 +116,11 @@ module DiameterRx_Rx_TCFunctions { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync of UEs f_IUT_session_esthablishment(); // IUT esthablishes the session f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts f_awaiting_AAR(mw_AAR_FIP_Media1(?,?,?,?,?, ?, // indicating UE Loading @@ -144,9 +147,11 @@ module DiameterRx_Rx_TCFunctions { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync of SIP UEs f_IUT_session_esthablishment(); // IUT esthablishes the session f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts f_awaiting_AAR(mw_AAR_basic(?,?,?,?,?)); // should be present Loading Loading @@ -196,7 +201,7 @@ module DiameterRx_Rx_TCFunctions { * @desc This is the test case function TC_AF_GPR * @param */ function f_TC_AF_GPR_01() function f_TC_AF_GRP_01() runs on DiameterComponent { f_preamble_PCRF(); Loading @@ -218,7 +223,7 @@ module DiameterRx_Rx_TCFunctions { f_postamble_PCRF(); } // end function f_TC_AF_PGR_01 } // end function f_TC_AF_GRP_01 /* * @desc This is the test case function TC_AF_ST Loading @@ -233,6 +238,8 @@ module DiameterRx_Rx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before SIP termination f_awaiting_STR(mw_STR_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -398,6 +405,89 @@ module DiameterRx_Rx_TCFunctions { } // end function f_TC_AF_SN_04 /* * @desc This is the test case function TC_AF_SN_05 * @param */ function f_TC_AF_SN_05() runs on DiameterComponent { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia (?, ?, ?, ?, ?, f_framedIpAddress4(), // indicating UE f_framedIpAddress6(), // indicationg UE (IPv6) *, mw_mediaComponentDescription_basic( mw_mediaComponentNr(0), {mw_mediaSubComponent_basic (mw_flowNumber(?), (?,*), mw_flowStatus(ENABLED_E), mw_flowUsage(AF_SIGNALLING_E), omit, omit, mw_afSignallingProtocolSIP, omit)}, omit,omit,omit,omit,omit,omit,omit,omit,omit ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_AF_SN_05 /* * @desc This is the test case function TC_AF_SN_06 * @param */ function f_TC_AF_SN_06() runs on DiameterComponent { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia (?, ?, ?, ?, ?, f_framedIpAddress4(), // indicating UE f_framedIpAddress6(), // indicationg UE (IPv6) mw_specificAction ((INDICATION_OF_RELEASE_OF_BEARER_E, INDICATION_OF_LOSS_OF_BEARER_E)), mw_mediaComponentDescription_mediaSubComponent1 (mw_mediaSubComponent_basic (?,*,*,mw_flowUsage(AF_SIGNALLING_E),*,*,*,*)))); f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_STR(mw_STR_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_AF_SN_06 /* * @desc This is the test case function TC_AF_TPE * @param Loading DiameterRx/ttcn/DiameterRx_Templates.ttcn +8 −2 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ module DiameterRx_Templates { } template Flow_Status_AVP mw_flowStatus := template Flow_Status_AVP mw_flowStatus(template (present) Flow_Status_Type p_avpData) := { aVP_Header := { Loading @@ -69,7 +69,7 @@ module DiameterRx_Templates { aVP_len := ?, aVP_vid := ? }, aVP_Data := ? aVP_Data := p_avpData } template Flow_Usage_AVP mw_flowUsage(template (present) Flow_Usage_Type p_avpData) := Loading Loading @@ -115,6 +115,12 @@ module DiameterRx_Templates { }; template AF_Signalling_Protocol_AVP mw_afSignallingProtocolSIP := { //Ref: ETSI TS 129 214 AF_Signalling_Protocol AVP aVP_Header := m_aVP_HeaderVid(c_vendIdAF_Signalling_Protocol_AVP, 4, omit), aVP_Data := SIP_E }; template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 12 // flow_Number Loading DiameterRx/ttcn/DiameterRx_TestCases.ttcn +217 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
DiameterRx/ttcn/DiameterRx_ImsGm_TCFunctions.ttcn +287 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ module DiameterRx_ImsGm_TCFunctions { const c_statusLine200;} import from LibSip_Templates all; import from LibSip_Steps all; import from LibSip_SIPTypesAndValues all; // LibIms import from LibIms_Templates all; import from LibIms_Steps all; Loading Loading @@ -141,4 +142,290 @@ module DiameterRx_ImsGm_TCFunctions { } // end function f_Sip_TC_IMST2_GM_INI_04_UE2 } //end group TP_BasicCall // source from AtsIms_Gm_TCFunctions (STF346) group TP_Termination { /* * @desc This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_SUB_06_UE1 * @param p_cSeq_s */ function f_TC_IMST2_GM_SUB_06_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 INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); 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_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR // SendBYE and 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 // point // postamble // done f_SIP_postamble_UE1_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_SUB_06_UE1 /* * @desc This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_SUB_06_UE2 * @param loc_CSeq_s */ function f_TC_IMST2_GM_SUB_06_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 INVITE f_awaitingINVITE(mw_INVITE_Request_Base); 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 )))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR // 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); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync // point // postamble // done f_SIP_postamble_UE2_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_SUB_06_UE2 } // end TP_Termination // source from AtsIms_Gm_TCFunctions (STF346) group TP_TargetRefresh { /* * @desc This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_TAR_07_UE1 * @param p_cSeq_s */ function f_TC_IMST2_GM_TAR_07_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 INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); 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_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts // ReINVITE ... // prepare and send RE-INVITE UE2 // @SUT // TODO Check function to set headers for reinvite on // originating side LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true); 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))); // 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_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done // POSTAMBLE // SendBYE and 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 // point // postamble // done f_SIP_postamble_UE1_withoutRegistration(); } // end function f_Sip_TC_IMST2_GM_TAR_07_UE1 /* * @desc This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_TAR_07_UE2 * @param loc_CSeq_s */ function f_TC_IMST2_GM_TAR_07_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 INVITE f_awaitingINVITE(mw_INVITE_Request_Base); 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 )))); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts // Awaiting RE-INVITE f_awaitingINVITE(mw_INVITE_Request_Base); 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 )))); 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)); // 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_TAR_07_UE2 } //end group TP_TargetRefresh } // end module AtsIms_Gm_TCFunctions No newline at end of file
DiameterRx/ttcn/DiameterRx_Rx_TCFunctions.ttcn +100 −10 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ module DiameterRx_Rx_TCFunctions { // LibSip import from LibSip_Steps {function f_getVerdict;}; import from LibSip_SIPTypesAndValues all; import from LibSip_PIXITS all; // LibDiameter Loading Loading @@ -115,9 +116,11 @@ module DiameterRx_Rx_TCFunctions { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync of UEs f_IUT_session_esthablishment(); // IUT esthablishes the session f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts f_awaiting_AAR(mw_AAR_FIP_Media1(?,?,?,?,?, ?, // indicating UE Loading @@ -144,9 +147,11 @@ module DiameterRx_Rx_TCFunctions { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync of SIP UEs f_IUT_session_esthablishment(); // IUT esthablishes the session f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts f_awaiting_AAR(mw_AAR_basic(?,?,?,?,?)); // should be present Loading Loading @@ -196,7 +201,7 @@ module DiameterRx_Rx_TCFunctions { * @desc This is the test case function TC_AF_GPR * @param */ function f_TC_AF_GPR_01() function f_TC_AF_GRP_01() runs on DiameterComponent { f_preamble_PCRF(); Loading @@ -218,7 +223,7 @@ module DiameterRx_Rx_TCFunctions { f_postamble_PCRF(); } // end function f_TC_AF_PGR_01 } // end function f_TC_AF_GRP_01 /* * @desc This is the test case function TC_AF_ST Loading @@ -233,6 +238,8 @@ module DiameterRx_Rx_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before SIP termination f_awaiting_STR(mw_STR_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading Loading @@ -398,6 +405,89 @@ module DiameterRx_Rx_TCFunctions { } // end function f_TC_AF_SN_04 /* * @desc This is the test case function TC_AF_SN_05 * @param */ function f_TC_AF_SN_05() runs on DiameterComponent { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia (?, ?, ?, ?, ?, f_framedIpAddress4(), // indicating UE f_framedIpAddress6(), // indicationg UE (IPv6) *, mw_mediaComponentDescription_basic( mw_mediaComponentNr(0), {mw_mediaSubComponent_basic (mw_flowNumber(?), (?,*), mw_flowStatus(ENABLED_E), mw_flowUsage(AF_SIGNALLING_E), omit, omit, mw_afSignallingProtocolSIP, omit)}, omit,omit,omit,omit,omit,omit,omit,omit,omit ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_AF_SN_05 /* * @desc This is the test case function TC_AF_SN_06 * @param */ function f_TC_AF_SN_06() runs on DiameterComponent { f_preamble_PCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia (?, ?, ?, ?, ?, f_framedIpAddress4(), // indicating UE f_framedIpAddress6(), // indicationg UE (IPv6) mw_specificAction ((INDICATION_OF_RELEASE_OF_BEARER_E, INDICATION_OF_LOSS_OF_BEARER_E)), mw_mediaComponentDescription_mediaSubComponent1 (mw_mediaSubComponent_basic (?,*,*,mw_flowUsage(AF_SIGNALLING_E),*,*,*,*)))); f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_awaiting_STR(mw_STR_dummy); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_AF_SN_06 /* * @desc This is the test case function TC_AF_TPE * @param Loading
DiameterRx/ttcn/DiameterRx_Templates.ttcn +8 −2 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ module DiameterRx_Templates { } template Flow_Status_AVP mw_flowStatus := template Flow_Status_AVP mw_flowStatus(template (present) Flow_Status_Type p_avpData) := { aVP_Header := { Loading @@ -69,7 +69,7 @@ module DiameterRx_Templates { aVP_len := ?, aVP_vid := ? }, aVP_Data := ? aVP_Data := p_avpData } template Flow_Usage_AVP mw_flowUsage(template (present) Flow_Usage_Type p_avpData) := Loading Loading @@ -115,6 +115,12 @@ module DiameterRx_Templates { }; template AF_Signalling_Protocol_AVP mw_afSignallingProtocolSIP := { //Ref: ETSI TS 129 214 AF_Signalling_Protocol AVP aVP_Header := m_aVP_HeaderVid(c_vendIdAF_Signalling_Protocol_AVP, 4, omit), aVP_Data := SIP_E }; template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := { aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP, 12 // flow_Number Loading
DiameterRx/ttcn/DiameterRx_TestCases.ttcn +217 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes