Loading AtsNIT_SipSip/ttcn/AtsNIT_SipSip_BC_TCFunctions.ttcn +374 −33 Original line number Diff line number Diff line Loading @@ -172,6 +172,7 @@ module AtsNIT_SipSip_BC_TCFunctions { * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___XX__02UE1(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_INVITE_CSeq; f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading @@ -182,7 +183,7 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_cSeq, c_userProfile_UE2atSUThome ); v_INVITE_CSeq := vc_cSeq; f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, vc_callId, Loading @@ -205,11 +206,17 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_callId, vc_cSeq, mw_require_100rel, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 200 OK response f_awaitingOkResponse(vc_cSeq); Loading Loading @@ -240,18 +247,22 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 180 response without // 100rel in require header field f_awaitingResponse(mw_Response_Require_ifpresent( f_awaitingResponse(mw_Response_Base( c_statusLine180, vc_callId, vc_cSeq, mw_Require_not_100rel vc_cSeq )); // send PRACK Loading @@ -269,7 +280,7 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingOkResponse(vc_cSeq); // await 200 OK INVITE response f_awaitingOkResponse(vc_cSeq); f_awaitingOkResponse(v_INVITE_CSeq); // send ACK f_SendACK(m_ACK_Request_Base( Loading Loading @@ -330,11 +341,17 @@ module AtsNIT_SipSip_BC_TCFunctions { // await UPDATE f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__02UE2: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__02UE2: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // send UPDATE f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, Loading Loading @@ -522,6 +539,7 @@ module AtsNIT_SipSip_BC_TCFunctions { * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___XX__04UE1(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_INVITE_CSeq; f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading @@ -532,7 +550,7 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_cSeq, c_userProfile_UE2atSUThome ); v_INVITE_CSeq := vc_cSeq; f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, vc_callId, Loading @@ -555,11 +573,17 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_callId, vc_cSeq, mw_require_100rel, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 200 OK response f_awaitingOkResponse(vc_cSeq); Loading Loading @@ -590,18 +614,22 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 180 response without // 100rel in require header field f_awaitingResponse(mw_Response_Require_ifpresent( f_awaitingResponse(mw_Response_Base( c_statusLine180, vc_callId, vc_cSeq, mw_Require_not_100rel vc_cSeq )); // send PRACK Loading @@ -619,7 +647,7 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingOkResponse(vc_cSeq); // await 200 OK INVITE response f_awaitingOkResponse(vc_cSeq); f_awaitingOkResponse(v_INVITE_CSeq); // send ACK f_SendACK(m_ACK_Request_Base( Loading Loading @@ -686,11 +714,17 @@ module AtsNIT_SipSip_BC_TCFunctions { // await UPDATE f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__04UE2: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__04UE2: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // send UPDATE f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, Loading Loading @@ -798,6 +832,7 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_via )); vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile)); LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s); f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, Loading Loading @@ -845,7 +880,7 @@ module AtsNIT_SipSip_BC_TCFunctions { } // end function f_AtsNIT_TC_SS___CN__01UE1 /* * @desc This is the test case function (terminating side) for AtsNIT_TC_SS___XX__01 * @desc This is the test case function (terminating side) for AtsNIT_TC_SS___CN__01 * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___CN__01UE2(in CSeq p_cSeq_s) runs on ImsComponent { Loading Loading @@ -912,7 +947,313 @@ module AtsNIT_SipSip_BC_TCFunctions { // postamble f_IMS_postamble_withDeRegistration(vc_cSeq); } // end function f_AtsNIT_TC_SS___XX__01UE2 } // end function f_AtsNIT_TC_SS___CN__01UE2 /* * @desc This is the test case function (originating side) for AtsNIT_TC_SS___CN__02 * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___CN__02UE1(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_INVITE_CSeq; // SDP body set to PCMA encoding and appand QoS parameter var SDP_Message v_sdp := valueof(m_SDP_bandwidth(valueof(m_media_dynPT("8", "PCMA")), vc_userprofile)); f_append_media_attribute(v_sdp, m_attribute_curr( c_qos, c_e2e, c_none )); f_append_media_attribute(v_sdp, m_attribute_des( c_qos, c_mandatory, c_e2e, c_sendrecv )); f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send INVITE UE2@SUT LibIms_Steps.f_setHeadersINVITE( vc_cSeq, c_userProfile_UE2atSUThome ); v_INVITE_CSeq := vc_cSeq; f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, m_Supported_100rel_prec, m_MBody_SDP(v_sdp) )); // await 183 response with // 100rel in require header field // and a=curr and a=des lines present in sdp f_awaitingResponse(mw_Response_messageBody( c_statusLine183, vc_callId, vc_cSeq, mw_require_100rel, mw_MBody_SDP(?) )); // await 200 OK response f_awaitingOkResponse(vc_cSeq); // send PRACK f_SendPRACK(m_PRACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_rAck )); // await 200 OK response f_awaitingOkResponse(vc_cSeq); // change curr attribute f_replace_curr_attribute( vc_sdp_local, valueof(m_attribute_curr(c_qos,c_e2e,c_send).curr) ); f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local) )); f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP(?) )); // await 180 response without f_awaitingResponse(mw_Response_Base( c_statusLine180, vc_callId, vc_cSeq )); // send PRACK f_SendPRACK(m_PRACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_rAck )); // await 200 OK PRACK response f_awaitingOkResponse(vc_cSeq); // await 200 OK INVITE response f_awaitingOkResponse(v_INVITE_CSeq); // send ACK f_SendACK(m_ACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via )); vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile)); LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s); 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 200 OK response f_awaitingResponse(mw_Response_Base( c_statusLine200, vc_callId, vc_cSeq )); // send ACK f_SendACK(m_ACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via )); // check media f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //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()); // postamble f_IMS_postamble_withDeRegistration(vc_cSeq); } // end function f_AtsNIT_TC_SS___CN__02UE1 /* * @desc This is the test case function (terminating side) for AtsNIT_TC_SS___CN__02 * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___CN__02UE2(in CSeq p_cSeq_s) runs on ImsComponent { f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody f_awaitingINVITE(mw_INVITE_Request_require( mw_require_100rel )); f_append_media_attribute( vc_sdp_local, m_attribute_conf( c_qos, c_e2e, c_recv ) ); // send 183 response f_sendResponse(m_Response_18XonINVITE_require_sdp_UE( c_statusLine183, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, mw_require_100rel, m_MBody_SDP(vc_sdp_local) )); // await PRACK f_awaitingPRACK_sendReply( mw_PRACK_Request_Base(vc_callId) ); // await UPDATE f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP(?) )); // change curr attribute f_replace_curr_attribute( vc_sdp_local, valueof(m_attribute_curr(c_qos,c_e2e,c_sendrecv).curr) ); // send UPDATE f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local) )); // await 200 OK UPDATE response f_awaitingOkResponse(vc_cSeq); // send 180 response f_sendResponse(m_Response_18XonINVITE_UE( c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact )); // await Prack f_awaitingPRACK_sendReply( mw_PRACK_Request_Base(vc_callId) ); // send 200 OK Invite f_send200OK(); // TODO must be checked // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); // await 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_route(), valueof(m_MBody_SDP(vc_sdp_local)) )); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); // check media f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // postamble f_IMS_postamble_withDeRegistration(vc_cSeq); } // end function f_AtsNIT_TC_SS___CN__02UE2 } // end group TP1_1_2_BC_CodecNegotiation Loading AtsNIT_SipSip/ttcn/AtsNIT_SipSip_Testcases.ttcn +24 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,30 @@ module AtsNIT_SipSip_Testcases { f_cf_2imsDown(v_imsComponent1, v_imsComponent2); } // end TC_SS___CN__01 /* * @desc TC_SS___CN__02 * @param p_CSeq_s Transaction Id */ testcase TC_SS___CN__02(inout CSeq p_CSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; f_cf_2imsUp(v_imsComponent1, v_imsComponent2); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___CN__02UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___CN__02UE2(p_CSeq_s)); // synchronize both PTCs on 4 sychronization points f_serverSync2ClientsAndStop({c_prDone, c_Ringing, c_uPlane, c_tbDone}); f_cf_2imsDown(v_imsComponent1, v_imsComponent2); } // end TC_SS___CN__02 } // end group TP1_1_2_BC_CodecNegotiation group TP1_1_3_BC_UPDATE { Loading Loading
AtsNIT_SipSip/ttcn/AtsNIT_SipSip_BC_TCFunctions.ttcn +374 −33 Original line number Diff line number Diff line Loading @@ -172,6 +172,7 @@ module AtsNIT_SipSip_BC_TCFunctions { * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___XX__02UE1(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_INVITE_CSeq; f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading @@ -182,7 +183,7 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_cSeq, c_userProfile_UE2atSUThome ); v_INVITE_CSeq := vc_cSeq; f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, vc_callId, Loading @@ -205,11 +206,17 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_callId, vc_cSeq, mw_require_100rel, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 200 OK response f_awaitingOkResponse(vc_cSeq); Loading Loading @@ -240,18 +247,22 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__02UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 180 response without // 100rel in require header field f_awaitingResponse(mw_Response_Require_ifpresent( f_awaitingResponse(mw_Response_Base( c_statusLine180, vc_callId, vc_cSeq, mw_Require_not_100rel vc_cSeq )); // send PRACK Loading @@ -269,7 +280,7 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingOkResponse(vc_cSeq); // await 200 OK INVITE response f_awaitingOkResponse(vc_cSeq); f_awaitingOkResponse(v_INVITE_CSeq); // send ACK f_SendACK(m_ACK_Request_Base( Loading Loading @@ -330,11 +341,17 @@ module AtsNIT_SipSip_BC_TCFunctions { // await UPDATE f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__02UE2: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__02UE2: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // send UPDATE f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, Loading Loading @@ -522,6 +539,7 @@ module AtsNIT_SipSip_BC_TCFunctions { * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___XX__04UE1(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_INVITE_CSeq; f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); Loading @@ -532,7 +550,7 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_cSeq, c_userProfile_UE2atSUThome ); v_INVITE_CSeq := vc_cSeq; f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, vc_callId, Loading @@ -555,11 +573,17 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_callId, vc_cSeq, mw_require_100rel, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 200 OK response f_awaitingOkResponse(vc_cSeq); Loading Loading @@ -590,18 +614,22 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__04UE1: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // await 180 response without // 100rel in require header field f_awaitingResponse(mw_Response_Require_ifpresent( f_awaitingResponse(mw_Response_Base( c_statusLine180, vc_callId, vc_cSeq, mw_Require_not_100rel vc_cSeq )); // send PRACK Loading @@ -619,7 +647,7 @@ module AtsNIT_SipSip_BC_TCFunctions { f_awaitingOkResponse(vc_cSeq); // await 200 OK INVITE response f_awaitingOkResponse(vc_cSeq); f_awaitingOkResponse(v_INVITE_CSeq); // send ACK f_SendACK(m_ACK_Request_Base( Loading Loading @@ -686,11 +714,17 @@ module AtsNIT_SipSip_BC_TCFunctions { // await UPDATE f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP( mw_SDP_attribute_list(mw_attribute_list_curr_des) ) mw_MBody_SDP(?) )); if(f_check_precondition(vc_sdp_remote)) { log("*** f_AtsNIT_TC_SS___XX__04UE2: INFO: precondition framework used in SDP ***"); setverdict(pass); } else { log("*** f_AtsNIT_TC_SS___XX__04UE2: INFO: precondition framework not used in SDP ***"); setverdict(fail); } // send UPDATE f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, Loading Loading @@ -798,6 +832,7 @@ module AtsNIT_SipSip_BC_TCFunctions { vc_via )); vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile)); LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s); f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, Loading Loading @@ -845,7 +880,7 @@ module AtsNIT_SipSip_BC_TCFunctions { } // end function f_AtsNIT_TC_SS___CN__01UE1 /* * @desc This is the test case function (terminating side) for AtsNIT_TC_SS___XX__01 * @desc This is the test case function (terminating side) for AtsNIT_TC_SS___CN__01 * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___CN__01UE2(in CSeq p_cSeq_s) runs on ImsComponent { Loading Loading @@ -912,7 +947,313 @@ module AtsNIT_SipSip_BC_TCFunctions { // postamble f_IMS_postamble_withDeRegistration(vc_cSeq); } // end function f_AtsNIT_TC_SS___XX__01UE2 } // end function f_AtsNIT_TC_SS___CN__01UE2 /* * @desc This is the test case function (originating side) for AtsNIT_TC_SS___CN__02 * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___CN__02UE1(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_INVITE_CSeq; // SDP body set to PCMA encoding and appand QoS parameter var SDP_Message v_sdp := valueof(m_SDP_bandwidth(valueof(m_media_dynPT("8", "PCMA")), vc_userprofile)); f_append_media_attribute(v_sdp, m_attribute_curr( c_qos, c_e2e, c_none )); f_append_media_attribute(v_sdp, m_attribute_des( c_qos, c_mandatory, c_e2e, c_sendrecv )); f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // prepare and send INVITE UE2@SUT LibIms_Steps.f_setHeadersINVITE( vc_cSeq, c_userProfile_UE2atSUThome ); v_INVITE_CSeq := vc_cSeq; f_SendINVITE(m_INVITE_Request_UE( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, m_Supported_100rel_prec, m_MBody_SDP(v_sdp) )); // await 183 response with // 100rel in require header field // and a=curr and a=des lines present in sdp f_awaitingResponse(mw_Response_messageBody( c_statusLine183, vc_callId, vc_cSeq, mw_require_100rel, mw_MBody_SDP(?) )); // await 200 OK response f_awaitingOkResponse(vc_cSeq); // send PRACK f_SendPRACK(m_PRACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_rAck )); // await 200 OK response f_awaitingOkResponse(vc_cSeq); // change curr attribute f_replace_curr_attribute( vc_sdp_local, valueof(m_attribute_curr(c_qos,c_e2e,c_send).curr) ); f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local) )); f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP(?) )); // await 180 response without f_awaitingResponse(mw_Response_Base( c_statusLine180, vc_callId, vc_cSeq )); // send PRACK f_SendPRACK(m_PRACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_rAck )); // await 200 OK PRACK response f_awaitingOkResponse(vc_cSeq); // await 200 OK INVITE response f_awaitingOkResponse(v_INVITE_CSeq); // send ACK f_SendACK(m_ACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via )); vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile)); LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s); 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 200 OK response f_awaitingResponse(mw_Response_Base( c_statusLine200, vc_callId, vc_cSeq )); // send ACK f_SendACK(m_ACK_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via )); // check media f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //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()); // postamble f_IMS_postamble_withDeRegistration(vc_cSeq); } // end function f_AtsNIT_TC_SS___CN__02UE1 /* * @desc This is the test case function (terminating side) for AtsNIT_TC_SS___CN__02 * @param p_CSeq_s Transaction Id */ function f_AtsNIT_TC_SS___CN__02UE2(in CSeq p_cSeq_s) runs on ImsComponent { f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody f_awaitingINVITE(mw_INVITE_Request_require( mw_require_100rel )); f_append_media_attribute( vc_sdp_local, m_attribute_conf( c_qos, c_e2e, c_recv ) ); // send 183 response f_sendResponse(m_Response_18XonINVITE_require_sdp_UE( c_statusLine183, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, mw_require_100rel, m_MBody_SDP(vc_sdp_local) )); // await PRACK f_awaitingPRACK_sendReply( mw_PRACK_Request_Base(vc_callId) ); // await UPDATE f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP( vc_callId, mw_MBody_SDP(?) )); // change curr attribute f_replace_curr_attribute( vc_sdp_local, valueof(m_attribute_curr(c_qos,c_e2e,c_sendrecv).curr) ); // send UPDATE f_SendUPDATE(m_UPDATE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local) )); // await 200 OK UPDATE response f_awaitingOkResponse(vc_cSeq); // send 180 response f_sendResponse(m_Response_18XonINVITE_UE( c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact )); // await Prack f_awaitingPRACK_sendReply( mw_PRACK_Request_Base(vc_callId) ); // send 200 OK Invite f_send200OK(); // TODO must be checked // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); // await 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_route(), valueof(m_MBody_SDP(vc_sdp_local)) )); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); // check media f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //await BYE and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // postamble f_IMS_postamble_withDeRegistration(vc_cSeq); } // end function f_AtsNIT_TC_SS___CN__02UE2 } // end group TP1_1_2_BC_CodecNegotiation Loading
AtsNIT_SipSip/ttcn/AtsNIT_SipSip_Testcases.ttcn +24 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,30 @@ module AtsNIT_SipSip_Testcases { f_cf_2imsDown(v_imsComponent1, v_imsComponent2); } // end TC_SS___CN__01 /* * @desc TC_SS___CN__02 * @param p_CSeq_s Transaction Id */ testcase TC_SS___CN__02(inout CSeq p_CSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; f_cf_2imsUp(v_imsComponent1, v_imsComponent2); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___CN__02UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___CN__02UE2(p_CSeq_s)); // synchronize both PTCs on 4 sychronization points f_serverSync2ClientsAndStop({c_prDone, c_Ringing, c_uPlane, c_tbDone}); f_cf_2imsDown(v_imsComponent1, v_imsComponent2); } // end TC_SS___CN__02 } // end group TP1_1_2_BC_CodecNegotiation group TP1_1_3_BC_UPDATE { Loading