Commit 300042f0 authored by poglitsch's avatar poglitsch
Browse files

CALL_0021,22 and 23 added

parent 8c2953a0
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -3270,6 +3270,8 @@ group checksTC_IMS_SS_0007 {
	    	ImsInterfaceMonitor p_monitorCompRef,
	    	integer p_skipCount
	    ) runs on ImsTestCoordinator {
	    	// TODO TP must be checked, currently only 2XX is checked
	    	
	    	var template SkipType v_skip := {0, omit};
	    	
	    	if(p_skipCount > 0) {
@@ -3317,6 +3319,29 @@ group checksTC_IMS_SS_0007 {
           );
           p_monitorCompRef.done;
	    }
	    
	    
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5074_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5074_01_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
	        var template SipUrl v_UE_A_Uri := f_getUeIpAddress(PX_EUT_A);
	    		
	       p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5074_01_mw(*,v_UE_A_Uri))},
                {mw_SipRequest(mw_BYE_Request_Base(*))},
                {0, omit},
                "TP_IMS_5074_01",
                false,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	}
	
} // end group
+58 −1
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@
 */
module AtsImsIot_Functions {
 
 	import from LibSip_SIPTypesAndValues {type SipUrl;}

 	import from AtsImsIot_TestSystem {type ImsTestCoordinator;}

 	import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT, PX_PRODUCTS;}
@@ -14,7 +16,9 @@ module AtsImsIot_Functions {

 	import from LibIms_UpperTester all;

	import from LibIot_TestInterface {type InterfaceMonitor, TestCoordinator, EquipmentUser;}
	import from LibIot_TestInterface {
        type InterfaceMonitor, TestCoordinator, EquipmentUser;
    }
 	
 	import from LibIot_Functions {function f_getE2EVerdict;}
 	
@@ -129,6 +133,35 @@ module AtsImsIot_Functions {
 			return v_status;
 		}
 		
 		/**
		  * @desc Trigger UE given by p_ueRef to remove a media stream 
		  * @param p_userCompRef Reference to IMS UE user component
		  * @return
		  *     true in case of successfull execution of the trigger command
		  *     otherwise false
		  */
 		function f_mtc_userRemoveMediaStream(EquipmentUser p_ueRef) 
            runs on TestCoordinator return boolean {
     		var boolean v_status := true; 
     		// TODO
 			return v_status;
 		}
 		
 		
 		/**
		  * @desc Trigger UE given by p_ueRef to check the remove of a media stream 
		  * @param p_userCompRef Reference to IMS UE user component
		  * @return
		  *     true in case of successfull execution of the trigger command
		  *     otherwise false
		  */
 		function f_mtc_userCheckRemoveMediaStream(EquipmentUser p_ueRef) 
            runs on TestCoordinator return boolean {
     		var boolean v_status := true; 
     		// TODO
 			return v_status;
 		}
 		
 		/**
		  * @desc Trigger UE given by p_ueRef to add a new media stream 
		  * @param p_userCompRef Reference to IMS UE user component
@@ -157,6 +190,21 @@ module AtsImsIot_Functions {
 			return v_status;
 		}
 		
 		
 		/**
		  * @desc Trigger UE given by p_ueRef to loose conectifity 
		  * @param p_userCompRef Reference to IMS UE user component
		  * @return
		  *     true in case of successfull execution of the trigger command
		  *     otherwise false
		  */
 		function f_mtc_userLooseConnection(EquipmentUser p_ueRef) 
            runs on TestCoordinator return boolean {
     		var boolean v_status := true; 
     		// TODO
 			return v_status;
 		}

 		/**
		  * @desc Trigger UE given by p_ueRef to enter HOLD state 
		  * @param p_userCompRef Reference to IMS UE user component
@@ -708,6 +756,15 @@ module AtsImsIot_Functions {
			return v_uePublicId.publicId;
		}
		
		
    	/**
    	 * @desc Get the UE URI containing the IP address of referenced EUT
    	 */
     	function f_getUeIpAddress(integer p_ProductIdx) return SipUrl {
     	  // TODO
     	  return "TODO";
     	}

    	/**
    	 * @desc Get the Public Id of referenced EUT 
    	 */
+26 −1
Original line number Diff line number Diff line
@@ -1142,9 +1142,34 @@ module AtsImsIot_Templates {
	  }
	}
	
	/**
	  * @desc VYE Request checking TP_IMS_5074_01
	  */
	template BYE_Request mdw_TP_IMS_5074_01_mw(
		template CallId p_callId,
		template SipUrl p_UE_URI // must be the IP address
	) modifies mw_BYE_Request_Base := {
	  requestLine := {
	  	requestUri := p_UE_URI
	  },
	  msgHeader := {
	  	toField := ?,
	  	fromField := ?,
	  	cSeq := ?,
		route := ?,
        reason := {
        	fieldName := REASON_E,
        	reasonValues := {
        		token := "503 Service Unavailable",
        		reasonParams := *
        	}
        }
	  }
	}
	
		
	/**
	  * @desc INVITE Request checking TP_IMS_5106_01
	  * @desc UPDATE Request checking TP_IMS_5106_02
	  */
	template UPDATE_Request mdw_TP_IMS_5106_02_mw(
		template CallId p_callId,
+331 −0
Original line number Diff line number Diff line
@@ -986,4 +986,335 @@ group Limit {
		f_cf_int_call_down(v_config);
	}
	
	
	/**
	 * @desc Hold/resume media streams (reINVITE)
	 * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.8
	 */
	testcase TC_IMS_CALL_0021() runs on ImsTestCoordinator system IotSystemInterface {
		// create components
		var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
		var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A);
		var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
		var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
		
		// variables
		var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
		var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
		var CF_INT_CALL v_config := {v_gmA, v_mw, v_gmB};
				
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_user_up(v_ueB);
		
		// configuration
		f_cf_int_call_up(v_config);
		
		// preamble
		f_PR_user_home_registration(v_ueA,v_userInfoA);
		f_PR_user_home_registration(v_ueB,v_userInfoB);
		
		// test body
		
		// Test Sequence 1 --------------------->
		f_mtc_userTriggerInitiateCall (v_ueA, v_userInfoB);
		// Test Sequence 2 --------------------->
		f_mtc_userCheckRinging(v_ueB);
		// Test Sequence 3 --------------------->
		f_mtc_userCheckPeerIsRinging(v_ueA);
		// Test Sequence 4 --------------------->
		f_mtc_userTriggerAnswerCall(v_ueB);
		// Test Sequence 5 --------------------->
		f_mtc_userCheckCallEstablished(v_ueA);
		// Test Sequence 6 --------------------->
		f_mtc_userCheckCallEstablished(v_ueB);
		// Test Sequence 7 --------------------->
		f_mtc_userAddNewMediaStream(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1);
		f_mtc_check_TP_IMS_5106_01_mw(v_mw,1);
		
		// Test Sequence 8 --------------------->
		// optional	
		// Test Sequence 9 --------------------->
		// optional
		
		// Test Sequence 10 -------------------->
		f_mtc_userCheckNewMediaStream(v_ueB);
		
		// Test Sequence 11 -------------------->
		f_mtc_userCheckNewMediaStream(v_ueA);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,1);
		
		// Test Sequence 12 -------------------->
		f_mtc_userTriggerHold(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
		f_mtc_check_TP_IMS_5106_01_mw(v_mw,0);
		
		// Test Sequence 13 -------------------->
		f_mtc_userCheckUserOnHold(v_ueA);
		
		// Test Sequence 14 -------------------->
		f_mtc_userCheckUserOnHold(v_ueB);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,0);
		
		// Test Sequence 15 -------------------->
		f_mtc_userTriggerResume(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
		f_mtc_check_TP_IMS_5106_01_mw(v_mw,0);
		
		// Test Sequence 16 -------------------->
		f_mtc_userCheckCallResumed(v_ueB);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,0);
		
		// Test Sequence 17 -------------------->
		f_mtc_userCheckCallResumed(v_ueA);
		
		// Test Sequence 18 -------------------->
		f_mtc_userRemoveMediaStream(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
		f_mtc_check_TP_IMS_5106_01_mw(v_mw,0);
		
		// Test Sequence 19 -------------------->
		f_mtc_userCheckRemoveMediaStream(v_ueB);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,0);
		
		// Test Sequence 20 -------------------->
		// optional
		
		// Test Sequence 21 -------------------->
		f_mtc_triggerEndCall(v_ueB);
		
		// Test Sequence 22 -------------------->
		f_mtc_userCheckCallEnded(v_ueA );
		
		// Test Sequence 23 -------------------->
		f_mtc_userCheckCallEnded(v_ueB );
		
		// postamble
		f_PO_user_home_deregistration(v_ueA);
		f_PO_user_home_deregistration(v_ueB);
		
		//unmap/disconnet component ports
		f_cf_user_down(v_ueA);
		f_cf_user_down(v_ueB);
		f_cf_int_call_down(v_config);
	}
	
	
	/**
	 * @desc Hold/resume media streams (UPDATE)
	 * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.9
	 */
	testcase TC_IMS_CALL_0022() runs on ImsTestCoordinator system IotSystemInterface {
		// create components
		var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
		var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A);
		var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
		var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
		
		// variables
		var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
		var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
		var CF_INT_CALL v_config := {v_gmA, v_mw, v_gmB};
				
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_user_up(v_ueB);
		
		// configuration
		f_cf_int_call_up(v_config);
		
		// preamble
		f_PR_user_home_registration(v_ueA,v_userInfoA);
		f_PR_user_home_registration(v_ueB,v_userInfoB);
		
		// test body
		
		// Test Sequence 1 --------------------->
		f_mtc_userTriggerInitiateCall (v_ueA, v_userInfoB);
		// Test Sequence 2 --------------------->
		f_mtc_userCheckRinging(v_ueB);
		// Test Sequence 3 --------------------->
		f_mtc_userCheckPeerIsRinging(v_ueA);
		// Test Sequence 4 --------------------->
		f_mtc_userTriggerAnswerCall(v_ueB);
		// Test Sequence 5 --------------------->
		f_mtc_userCheckCallEstablished(v_ueA);
		// Test Sequence 6 --------------------->
		f_mtc_userCheckCallEstablished(v_ueB);
		// Test Sequence 7 --------------------->
		f_mtc_userAddNewMediaStream(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
		f_mtc_check_TP_IMS_5106_02_mw(v_mw);
		
		// Test Sequence 8 --------------------->
		// optional	
		// Test Sequence 9 --------------------->
		// optional
		
		// Test Sequence 10 -------------------->
		f_mtc_userCheckNewMediaStream(v_ueB);
		
		// Test Sequence 11 -------------------->
		f_mtc_userCheckNewMediaStream(v_ueA);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,1);
		
		// Test Sequence 12 -------------------->
		f_mtc_userTriggerHold(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
		f_mtc_check_TP_IMS_5106_02_mw(v_mw);
		
		// Test Sequence 13 -------------------->
		f_mtc_userCheckUserOnHold(v_ueA);
		
		// Test Sequence 14 -------------------->
		f_mtc_userCheckUserOnHold(v_ueB);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,0);
		
		// Test Sequence 15 -------------------->
		f_mtc_userTriggerResume(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
		f_mtc_check_TP_IMS_5106_02_mw(v_mw);
		
		// Test Sequence 16 -------------------->
		f_mtc_userCheckCallResumed(v_ueB);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,0);
		
		// Test Sequence 17 -------------------->
		f_mtc_userCheckCallResumed(v_ueA);
		
		// Test Sequence 18 -------------------->
		f_mtc_userRemoveMediaStream(v_ueA);
		
		// check 1
		f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
		f_mtc_check_TP_IMS_5106_02_mw(v_mw);
		
		// Test Sequence 19 -------------------->
		f_mtc_userCheckRemoveMediaStream(v_ueB);
		
		// check 2
		f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
		f_mtc_check_TP_IMS_5121_02_mw(v_mw,0);
		
		// Test Sequence 20 -------------------->
		// optional
		
		// Test Sequence 21 -------------------->
		f_mtc_triggerEndCall(v_ueB);
		
		// Test Sequence 22 -------------------->
		f_mtc_userCheckCallEnded(v_ueA );
		
		// Test Sequence 23 -------------------->
		f_mtc_userCheckCallEnded(v_ueB );
		
		// postamble
		f_PO_user_home_deregistration(v_ueA);
		f_PO_user_home_deregistration(v_ueB);
		
		//unmap/disconnet component ports
		f_cf_user_down(v_ueA);
		f_cf_user_down(v_ueB);
		f_cf_int_call_down(v_config);
	}
	
	
	/**
	 * @desc Subsequent target refresh request (INVITE)
	 * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.4
	 */
	testcase TC_IMS_CALL_0023() runs on ImsTestCoordinator system IotSystemInterface {
		// create components
		var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
		var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
		var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
		
		// variables
		var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
		var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
		var CF_INT_CALL v_config := {v_gmA, v_mw};
				
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_user_up(v_ueB);
		
		// configuration
		f_cf_int_call_up(v_config);
		
		// preamble
		f_PR_user_home_registration(v_ueA,v_userInfoA);
		f_PR_user_home_registration(v_ueB,v_userInfoB);
		
		// test body
		
		// Test Sequence 1 --------------------->
		f_mtc_userTriggerInitiateCall (v_ueA, v_userInfoB);
		// Test Sequence 2 --------------------->
		f_mtc_userCheckRinging(v_ueB);
		// Test Sequence 3 --------------------->
		f_mtc_userCheckPeerIsRinging(v_ueA);
		// Test Sequence 4 --------------------->
		f_mtc_userTriggerAnswerCall(v_ueB);
		// Test Sequence 5 --------------------->
		f_mtc_userCheckCallEstablished(v_ueA);
		// Test Sequence 6 --------------------->
		f_mtc_userCheckCallEstablished(v_ueB);
		// Test Sequence 7 --------------------->
		f_mtc_userLooseConnection(v_ueB);
		
		// check 1
		f_mtc_check_TP_IMS_5074_01_mw(v_mw);
		
		// Test Sequence 8 --------------------->
		f_mtc_userCheckCallEnded(v_ueA);
		
		// postamble
		f_PO_user_home_deregistration(v_ueA);
		f_PO_user_home_deregistration(v_ueB);
		
		//unmap/disconnet component ports
		f_cf_user_down(v_ueA);
		f_cf_user_down(v_ueB);
		f_cf_int_call_down(v_config);
	}
	
}
 No newline at end of file