Commit d083a17f authored by Iztok Juvancic's avatar Iztok Juvancic
Browse files

added tc function TC ISC_SCCAS_GEN_REF_01

parent 72ed8875
Loading
Loading
Loading
Loading
+26 −0
Original line number Original line Diff line number Diff line
@@ -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
+63 −1
Original line number Original line Diff line number Diff line
@@ -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 {
@@ -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,
+33 −0
Original line number Original line Diff line number Diff line
@@ -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 {
@@ -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,
+32 −0
Original line number Original line Diff line number Diff line
@@ -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