Loading ttcn/AtsSccas/AtsSccas_Steps.ttcn +26 −0 Original line number Original line Diff line number Diff line Loading @@ -466,6 +466,32 @@ module AtsSccas_Steps { vc_via_REG := vc_via; vc_via_REG := vc_via; } // end function setHeaders_REGISTER_AS } // end function setHeaders_REGISTER_AS /** * @desc function sets header field for the next outgoing REFER message * @param p_cSeq_s CSeq parameter to be applied */ function f_setHeaders_REFER_AS( //TODO review and repair params due to isc interface inout CSeq p_cSeq_s, in SipUrl p_to_user, in SipUrl p_from_user ) runs on ImsComponent { var SemicolonParam_List v_params := {}; //f_setHeadersGeneral(p_cSeq_s, "REFER"); // cseq, contact, branch, via vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier vc_from := f_initFromHeader(p_from_user, f_getRndTag()); // init of vc_from using userProfile identifier vc_requestUri := p_to_user; // Request URI of Invite is identical with To header if (vc_boo_route) { vc_route := m_route_interface(vc_interfaceprofile); } if (vc_boo_recordRoute) { vc_recordRoute := m_recordRoute_currIpAddr(vc_userprofile); } LibSip_Steps.f_setHeadersREFER(p_cSeq_s); } // end function setHeaders_REFER_AS /** /** * @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function * @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function * @param p_cSeq_s The current cSeq * @param p_cSeq_s The current cSeq Loading ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +63 −1 Original line number Original line Diff line number Diff line Loading @@ -1064,6 +1064,68 @@ module AtsSccas_TCFunctions { } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UE { /** * @desc Verify that the SCCAS sends 403 response to the SIP REFER request from remote UE. * @param p_cSeq_s Random CSeq INVITE number */ function f_TC_ISC_SCCAS_GEN_REF_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; f_registrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_EstablishDialogAS(v_cSeq_s); f_IncCSeq(v_cSeq_s); f_setHeaders_REFER_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_SendREFER( m_sccas_refer( vc_requestUri, vc_callId, p_cSeq_s, vc_contact, vc_from, vc_to, vc_via_REG, m_referTo(vc_contact.contactBody.contactAddresses[0].addressField.nameAddr), -, -,-, -,-,-, m_MBody_SDP(vc_sdp_local) )); tc_ack.start; alt { [] SIPP.receive(mw_Response_1xx_Base(vc_callId, vc_cSeq)) { repeat } [] SIPP.receive(mw_Response_PCV_FeatureCaps( 403, ?, ?, ?, * )) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: response 403 was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } f_ReleaseDialogAS(v_cSeq_s); f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } //End of function f_TC_ISC_SCCAS_GEN_REF_01 }// End of group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UEs } // End of group Group_6A_4 } // End of group Group_6A_4 group Group_7_3 { group Group_7_3 { Loading Loading @@ -3022,7 +3084,7 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration // Registration f_IncCSeq(v_cSeq_s); LibSip_Steps.f_setHeadersOPTIONS(v_cSeq_s); f_IncCSeq(v_cSeq_s); /*LibSip_Steps.*/f_setHeadersOPTIONS(v_cSeq_s); AtsSccas_Steps.f_SendOPTIONS( AtsSccas_Steps.f_SendOPTIONS( m_OPTIONS_Request_Base( m_OPTIONS_Request_Base( vc_requestUri, vc_requestUri, Loading ttcn/AtsSccas/AtsSccas_Templates.ttcn +33 −0 Original line number Original line Diff line number Diff line Loading @@ -142,6 +142,13 @@ module AtsSccas_Templates infoPackageList := p_infoPackage_list infoPackageList := p_infoPackage_list } } template ReferTo m_referTo(template NameAddr p_nameaddr, template SemicolonParam_List p_refertoparams := omit) := { fieldName := REFER_TO_E, nameAddr := p_nameaddr , referToParams := p_refertoparams } } } group HeaderTemplatesYann { group HeaderTemplatesYann { Loading Loading @@ -473,6 +480,32 @@ module AtsSccas_Templates }, }, messageBody := p_mb messageBody := p_mb } } template (omit) REFER_Request m_sccas_refer( in template(value) SipUrl p_requestUri, in template(value) CallId p_callId, in template(value) CSeq p_cSeq, in template(value) LibSip_SIPTypesAndValues.Contact p_contact, in template(value) From p_from, in template(value) To p_to, in template(value) LibSip_SIPTypesAndValues.Via p_via, // in template(value) LibSip_SIPTypesAndValues.Contact p_contact, in template(value) ReferTo p_referTo , in template(omit) ReferredBy p_referredBy := omit, in template(omit) Require p_require := omit, in template(omit) Route p_route := omit, in template(omit) RecordRoute p_recordRoute := omit, in template(omit) Supported p_supported := omit, in template(omit) PChargingVector p_pChargingVector := omit, in template(value) MessageBody p_mb ) modifies m_REFER_Request_IMS/*m_REFER_Request_UE*/ := { msgHeader := { contentLength := m_contentLength(f_MessageBodyLength(p_mb)), contentType := m_contentType(c_sdpApplication) }, messageBody := p_mb } group response_sent{ group response_sent{ template(value) Response m_Response_18XonINVITE_AS_Featurecaps( template(value) Response m_Response_18XonINVITE_AS_Featurecaps( template(value) StatusLine_18x p_statusLine, template(value) StatusLine_18x p_statusLine, Loading ttcn/AtsSccas/AtsSccas_Testcases.ttcn +32 −0 Original line number Original line Diff line number Diff line Loading @@ -382,6 +382,38 @@ module AtsSccas_Testcases } // End of TC_ISC_SCCAS_GEN_RIN_02 } // End of TC_ISC_SCCAS_GEN_RIN_02 } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses { } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses { group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UE { /** * @desc Verify that the SCCAS sends 403 response to the SIP REFER request from remote UE. * @param p_cSeq_s Random CSeq INVITE number */ testcase TC_ISC_SCCAS_GEN_REF_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ueims; // Test control if (not PICS_SCCAS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_1IscUp(v_imsComponent_ueims); //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_GEN_REF_01(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_GEN_REF_01 } // End of group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UE } // End of group Group_6A_4 } // End of group Group_6A_4 Loading Loading
ttcn/AtsSccas/AtsSccas_Steps.ttcn +26 −0 Original line number Original line Diff line number Diff line Loading @@ -466,6 +466,32 @@ module AtsSccas_Steps { vc_via_REG := vc_via; vc_via_REG := vc_via; } // end function setHeaders_REGISTER_AS } // end function setHeaders_REGISTER_AS /** * @desc function sets header field for the next outgoing REFER message * @param p_cSeq_s CSeq parameter to be applied */ function f_setHeaders_REFER_AS( //TODO review and repair params due to isc interface inout CSeq p_cSeq_s, in SipUrl p_to_user, in SipUrl p_from_user ) runs on ImsComponent { var SemicolonParam_List v_params := {}; //f_setHeadersGeneral(p_cSeq_s, "REFER"); // cseq, contact, branch, via vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier vc_from := f_initFromHeader(p_from_user, f_getRndTag()); // init of vc_from using userProfile identifier vc_requestUri := p_to_user; // Request URI of Invite is identical with To header if (vc_boo_route) { vc_route := m_route_interface(vc_interfaceprofile); } if (vc_boo_recordRoute) { vc_recordRoute := m_recordRoute_currIpAddr(vc_userprofile); } LibSip_Steps.f_setHeadersREFER(p_cSeq_s); } // end function setHeaders_REFER_AS /** /** * @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function * @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function * @param p_cSeq_s The current cSeq * @param p_cSeq_s The current cSeq Loading
ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +63 −1 Original line number Original line Diff line number Diff line Loading @@ -1064,6 +1064,68 @@ module AtsSccas_TCFunctions { } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UE { /** * @desc Verify that the SCCAS sends 403 response to the SIP REFER request from remote UE. * @param p_cSeq_s Random CSeq INVITE number */ function f_TC_ISC_SCCAS_GEN_REF_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; f_registrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_EstablishDialogAS(v_cSeq_s); f_IncCSeq(v_cSeq_s); f_setHeaders_REFER_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_SendREFER( m_sccas_refer( vc_requestUri, vc_callId, p_cSeq_s, vc_contact, vc_from, vc_to, vc_via_REG, m_referTo(vc_contact.contactBody.contactAddresses[0].addressField.nameAddr), -, -,-, -,-,-, m_MBody_SDP(vc_sdp_local) )); tc_ack.start; alt { [] SIPP.receive(mw_Response_1xx_Base(vc_callId, vc_cSeq)) { repeat } [] SIPP.receive(mw_Response_PCV_FeatureCaps( 403, ?, ?, ?, * )) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: response 403 was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } f_ReleaseDialogAS(v_cSeq_s); f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } //End of function f_TC_ISC_SCCAS_GEN_REF_01 }// End of group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UEs } // End of group Group_6A_4 } // End of group Group_6A_4 group Group_7_3 { group Group_7_3 { Loading Loading @@ -3022,7 +3084,7 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration // Registration f_IncCSeq(v_cSeq_s); LibSip_Steps.f_setHeadersOPTIONS(v_cSeq_s); f_IncCSeq(v_cSeq_s); /*LibSip_Steps.*/f_setHeadersOPTIONS(v_cSeq_s); AtsSccas_Steps.f_SendOPTIONS( AtsSccas_Steps.f_SendOPTIONS( m_OPTIONS_Request_Base( m_OPTIONS_Request_Base( vc_requestUri, vc_requestUri, Loading
ttcn/AtsSccas/AtsSccas_Templates.ttcn +33 −0 Original line number Original line Diff line number Diff line Loading @@ -142,6 +142,13 @@ module AtsSccas_Templates infoPackageList := p_infoPackage_list infoPackageList := p_infoPackage_list } } template ReferTo m_referTo(template NameAddr p_nameaddr, template SemicolonParam_List p_refertoparams := omit) := { fieldName := REFER_TO_E, nameAddr := p_nameaddr , referToParams := p_refertoparams } } } group HeaderTemplatesYann { group HeaderTemplatesYann { Loading Loading @@ -473,6 +480,32 @@ module AtsSccas_Templates }, }, messageBody := p_mb messageBody := p_mb } } template (omit) REFER_Request m_sccas_refer( in template(value) SipUrl p_requestUri, in template(value) CallId p_callId, in template(value) CSeq p_cSeq, in template(value) LibSip_SIPTypesAndValues.Contact p_contact, in template(value) From p_from, in template(value) To p_to, in template(value) LibSip_SIPTypesAndValues.Via p_via, // in template(value) LibSip_SIPTypesAndValues.Contact p_contact, in template(value) ReferTo p_referTo , in template(omit) ReferredBy p_referredBy := omit, in template(omit) Require p_require := omit, in template(omit) Route p_route := omit, in template(omit) RecordRoute p_recordRoute := omit, in template(omit) Supported p_supported := omit, in template(omit) PChargingVector p_pChargingVector := omit, in template(value) MessageBody p_mb ) modifies m_REFER_Request_IMS/*m_REFER_Request_UE*/ := { msgHeader := { contentLength := m_contentLength(f_MessageBodyLength(p_mb)), contentType := m_contentType(c_sdpApplication) }, messageBody := p_mb } group response_sent{ group response_sent{ template(value) Response m_Response_18XonINVITE_AS_Featurecaps( template(value) Response m_Response_18XonINVITE_AS_Featurecaps( template(value) StatusLine_18x p_statusLine, template(value) StatusLine_18x p_statusLine, Loading
ttcn/AtsSccas/AtsSccas_Testcases.ttcn +32 −0 Original line number Original line Diff line number Diff line Loading @@ -382,6 +382,38 @@ module AtsSccas_Testcases } // End of TC_ISC_SCCAS_GEN_RIN_02 } // End of TC_ISC_SCCAS_GEN_RIN_02 } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses { } //End of group TP_6A_4_5_Target_refresh_request_for_a_dialog_and_associated_responses { group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UE { /** * @desc Verify that the SCCAS sends 403 response to the SIP REFER request from remote UE. * @param p_cSeq_s Random CSeq INVITE number */ testcase TC_ISC_SCCAS_GEN_REF_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ueims; // Test control if (not PICS_SCCAS_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_1IscUp(v_imsComponent_ueims); //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_GEN_REF_01(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_GEN_REF_01 } // End of group TP_6A_4_6_Rejecting_malicious_SIP_REFER_requests_from_remote_UE } // End of group Group_6A_4 } // End of group Group_6A_4 Loading