Commit 38ecf303 authored by rennoch's avatar rennoch
Browse files

correction of test cases with individual media streams

parent 0411399f
Loading
Loading
Loading
Loading
+441 −3
Original line number Original line Diff line number Diff line
@@ -37,10 +37,136 @@ module CH_TC_Functions {
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        
        // ----  test body  ----->
        // ----  test body  ----->
        f_getUpdate(mw_UPDATE_Request_Base(
        action("Please set communication on HOLD using UPDATE request");
            vc_callId
        f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
        
        f_SIP_checksetSDPreqDirection(
        	p_direction_in, p_direction_out
        ); 
        
        f_sendResponse(m_Response_2xxonUPDATE(
            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());
        
        // ----  postamble   ---->      
        f_terminateCall_UE(
            vc_requestUri, 
            vc_callId,
            vc_cSeq, 
            vc_caller_From,
            vc_caller_To
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }

    function f_TC_CH_U01_002(
    	CSeq p_CSeq, 
    	template SDP_attribute p_direction_preamble, 
    	template SDP_attribute p_direction_in, 
    	SDP_attribute p_direction_out
    ) runs on ImsComponent {
        f_init_gm_pcscf(p_CSeq);
        
        // ----  preamble   ----->
        f_gm_pcscf_preamble(p_CSeq);
        f_acceptCall(p_direction_preamble);
        vc_sdp_remote := vc_sdp_local;        
        
		// tester sets communication on HOLD "sendonly"
		log("tester sets communication on HOLD (sendonly) using UPDATE method");
        log(vc_sdp_local);
        f_SIP_modMediaDirection(0,m_attribute_sendonly);
        log(vc_sdp_local);
//        LibIms_Steps.f_setHeadersUPDATE(p_CSeq,c_userProfile_PCSCFwithHomeUE);
        log(vc_sdp_local);        
//        f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, omit, omit, valueof(m_MBody_SDP(vc_sdp_local))));

        f_SendUPDATE(m_UPDATE_Request_Base(
            vc_requestUri, 
            vc_callId, 
            p_CSeq, 
            vc_from, 
            vc_to, 
            vc_via, 
            vc_contact, 
            m_MBody_SDP(vc_sdp_local))
        );

    	f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
        
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_recvonly, omit);
        
               
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        // ----  test body  ----->
        action("Please set communication on HOLD using UPDATE request");
        f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
        
        f_SIP_checksetSDPreqDirection(
        	p_direction_in, p_direction_out
        ); 
        
        f_sendResponse(m_Response_2xxonUPDATE(
            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());
        
        // ----  postamble   ---->      
        f_terminateCall_IMS(  //f_terminateCall_UE(
            vc_requestUri, 
            vc_callId,
            vc_cSeq, 
            vc_caller_From,
            vc_caller_To
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    
    
    function f_TC_CH_U01_003(
    	CSeq p_CSeq, 
    	template SDP_attribute p_direction_preamble, 
    	template SDP_attribute p_direction_in, 
    	SDP_attribute p_direction_out
    ) runs on ImsComponent {
        f_init_gm_pcscf(p_CSeq);
        
        // ----  preamble   ----->
        f_gm_pcscf_preamble(p_CSeq);
        f_acceptCall(p_direction_preamble);

        action("Please set communication on HOLD using UPDATE request");
        f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
        
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_sendrecv, m_attribute_sendrecv
        ); 
        
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        // ----  test body  ----->
        action("Please resume communication using UPDATE request");
        f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
        
        f_SIP_checksetSDPreqDirection(
        f_SIP_checksetSDPreqDirection(
        	p_direction_in, p_direction_out
        	p_direction_in, p_direction_out
        ); 
        ); 
@@ -69,6 +195,97 @@ module CH_TC_Functions {
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    }


    function f_TC_CH_U01_004(
    	CSeq p_CSeq, 
    	template SDP_attribute p_direction_preamble, 
    	template SDP_attribute p_direction_in, 
    	SDP_attribute p_direction_out
    ) runs on ImsComponent {
        f_init_gm_pcscf(p_CSeq);
        
        // ----  preamble   ----->
        f_gm_pcscf_preamble(p_CSeq);
        f_acceptCall(p_direction_preamble);
        vc_sdp_remote := vc_sdp_local;        
        
		// tester sets communication on HOLD "sendonly"
		log("tester sets communication on HOLD (sendonly) using UPDATE method");
        log(vc_sdp_local);
        f_SIP_modMediaDirection(0,m_attribute_sendonly);
        log(vc_sdp_local);
//        LibIms_Steps.f_setHeadersUPDATE(p_CSeq,c_userProfile_PCSCFwithHomeUE);
        log(vc_sdp_local);        
//        f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, omit, omit, valueof(m_MBody_SDP(vc_sdp_local))));

        f_SendUPDATE(m_UPDATE_Request_Base(
            vc_requestUri, 
            vc_callId, 
            p_CSeq, 
            vc_from, 
            vc_to, 
            vc_via, 
            vc_contact, 
            m_MBody_SDP(vc_sdp_local))
        );

    	f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
        
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_recvonly, omit);
        
        action("Please set communication on HOLD using UPDATE request");
        f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
        
        f_SIP_checksetSDPreqDirection(
        mw_attribute_inactive, m_attribute_inactive
        ); 
        
        f_sendResponse(m_Response_2xxonUPDATE(
            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_prDone, f_getVerdict());
        
        // ----  test body  ----->
        action("Please resume communication using UPDATE request");
        f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
        
        f_SIP_checksetSDPreqDirection(
        	p_direction_in, p_direction_out
        ); 
        
        f_sendResponse(m_Response_2xxonUPDATE(
            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());
        
        // ----  postamble   ---->      
        f_terminateCall_IMS(  //f_terminateCall_UE(
            vc_requestUri, 
            vc_callId,
            vc_cSeq, 
            vc_caller_From,
            vc_caller_To
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }

    
    function f_TC_CH_U02(
    function f_TC_CH_U02(
        CSeq p_CSeq, 
        CSeq p_CSeq, 
        template SDP_attribute p_direction_preamble, 
        template SDP_attribute p_direction_preamble, 
@@ -84,7 +301,8 @@ module CH_TC_Functions {
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        
        // ----  test body  ----->
        // ----  test body  ----->
        f_getInvite(mw_INVITE_Request_Base);
        action("Please set communication on HOLD");            
        f_awaitingINVITE(mw_INVITE_Request_MB(?, ?));
        
        
        f_SIP_checksetSDPreqDirection(
        f_SIP_checksetSDPreqDirection(
            p_direction_in, p_direction_out
            p_direction_in, p_direction_out
@@ -101,6 +319,142 @@ module CH_TC_Functions {
            valueof(m_MBody_SDP(vc_sdp_local))
            valueof(m_MBody_SDP(vc_sdp_local))
        ));
        ));
        
        
        // wait for ACK
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));  
        
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
        // ----  postamble   ---->      
        f_terminateCall_IMS( // f_terminateCall_UE(
            vc_requestUri, 
            vc_callId,
            vc_cSeq, 
            vc_caller_From,
            vc_caller_To
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    
    function f_TC_CH_U02_002(
        CSeq p_CSeq, 
        template SDP_attribute p_direction_preamble, 
        template SDP_attribute p_direction_in, 
        SDP_attribute p_direction_out
    ) runs on ImsComponent {
        f_init_gm_pcscf(p_CSeq);
        
        // ----  preamble   ----->
        f_gm_pcscf_preamble(p_CSeq);
        f_acceptCall(p_direction_preamble);
        vc_sdp_remote := vc_sdp_local;
		// tester sets communication on HOLD "sendonly"
		log("tester sets communication on HOLD sendonly");
        log(vc_sdp_local);
        f_SIP_modMediaDirection(0,m_attribute_sendonly);
        log(vc_sdp_local);
        f_setHeadersReINVITE(p_CSeq,false);
        log(vc_sdp_local);        
        f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, omit, omit, valueof(m_MBody_SDP(vc_sdp_local))));
    	f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
    	f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));        		
        
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_recvonly, omit
        ); 

        
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        // ----  test body  ----->
        action("Please resume communication");            
        f_awaitingINVITE(mw_INVITE_Request_MB(?, ?));
        
        f_SIP_checksetSDPreqDirection(
            p_direction_in, p_direction_out
        ); 
        
        f_sendResponse(m_Response_2xxonINVITE(
            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))
        ));

        // wait for ACK
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));      
                
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
        // ----  postamble   ---->      
        f_terminateCall_IMS( //f_terminateCall_UE(
            vc_requestUri, 
            vc_callId,
            vc_cSeq, 
            vc_caller_From,
            vc_caller_To
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    
        function f_TC_CH_U02_003(
        CSeq p_CSeq, 
        template SDP_attribute p_direction_preamble, 
        template SDP_attribute p_direction_in, 
        SDP_attribute p_direction_out
    ) runs on ImsComponent {
        f_init_gm_pcscf(p_CSeq);
        
        // ----  preamble   ----->
        f_gm_pcscf_preamble(p_CSeq);
        f_acceptCall(p_direction_preamble);

        action("Please set communication on HOLD");            
        f_awaitingINVITE(mw_INVITE_Request_MB(?, ?));
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_sendonly, m_attribute_recvonly
        );
        f_sendResponse(m_Response_2xxonINVITE(
            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))
        ));
        
        // wait for ACK
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));         
                
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        // ----  test body  ----->
        action("Please resume communication");            
        f_awaitingINVITE(mw_INVITE_Request_MB(?, ?));
        
        f_SIP_checksetSDPreqDirection(
            p_direction_in, p_direction_out
        ); 
        
        f_sendResponse(m_Response_2xxonINVITE(
            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))
        ));
        
        // wait for ACK
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
        
        // ----  postamble   ---->      
        // ----  postamble   ---->      
@@ -113,4 +467,88 @@ module CH_TC_Functions {
        );
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    }

    function f_TC_CH_U02_004(
        CSeq p_CSeq, 
        template SDP_attribute p_direction_preamble, 
        template SDP_attribute p_direction_in, 
        SDP_attribute p_direction_out
    ) runs on ImsComponent {
        f_init_gm_pcscf(p_CSeq);
        
        // ----  preamble   ----->
        f_gm_pcscf_preamble(p_CSeq);
        f_acceptCall(p_direction_preamble);
        vc_sdp_remote := vc_sdp_local;
		// tester sets communication on HOLD "sendonly"
		log("tester sets communication on HOLD sendonly");
        log(vc_sdp_local);
        f_SIP_modMediaDirection(0,m_attribute_sendonly);
        log(vc_sdp_local);
        f_setHeadersReINVITE(p_CSeq,false);
        log(vc_sdp_local);        
        f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, omit, omit, valueof(m_MBody_SDP(vc_sdp_local))));
    	f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
    	f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));        		
        
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_recvonly, omit
        ); 


        action("Please set communication on HOLD");            
        f_awaitingINVITE(mw_INVITE_Request_MB(?, ?));        
        f_SIP_checksetSDPreqDirection(
        	mw_attribute_inactive, m_attribute_inactive
        );        
        f_sendResponse(m_Response_2xxonINVITE(
            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))
        ));
        // wait for ACK
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        // ----  test body  ----->
        action("Please resume communication");            
        f_awaitingINVITE(mw_INVITE_Request_MB(?, ?));
        
        f_SIP_checksetSDPreqDirection(
            p_direction_in, p_direction_out
        ); 
        
        f_sendResponse(m_Response_2xxonINVITE(
            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))
        ));
        // wait for ACK
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
        // ----  postamble   ---->      
        f_terminateCall_UE(
            vc_requestUri, 
            vc_callId,
            vc_cSeq, 
            vc_caller_From,
            vc_caller_To
        );
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    
    
}
}
 No newline at end of file
+16 −16
Original line number Original line Diff line number Diff line
@@ -46,8 +46,8 @@ module CH_TestCases {
                v_pcscf.start(f_TC_CH_U01(
                v_pcscf.start(f_TC_CH_U01(
                	p_CSeq, 
                	p_CSeq, 
                	mw_attribute_sendrecv, 
                	mw_attribute_sendrecv, 
                	mw_attribute_recvonly, 
                	mw_attribute_sendonly, 
                	m_attribute_sendonly
                	m_attribute_recvonly
                ));
                ));
				
				
                // synchronize component
                // synchronize component
@@ -75,9 +75,9 @@ module CH_TestCases {
                f_cf_ue_up(v_pcscf);
                f_cf_ue_up(v_pcscf);
	    	    
	    	    
                // start component
                // start component
                v_pcscf.start(f_TC_CH_U01(
                v_pcscf.start(f_TC_CH_U01_002(
                    p_CSeq, 
                    p_CSeq, 
               		mw_attribute_recvonly, 
                	mw_attribute_sendrecv, 
                	mw_attribute_inactive, 
                	mw_attribute_inactive, 
                	m_attribute_inactive
                	m_attribute_inactive
                ));
                ));
@@ -107,10 +107,10 @@ module CH_TestCases {
                f_cf_ue_up(v_pcscf);
                f_cf_ue_up(v_pcscf);
	    	    
	    	    
                // start component
                // start component
                v_pcscf.start(f_TC_CH_U01(
                v_pcscf.start(f_TC_CH_U01_003(
                    p_CSeq, 
                    p_CSeq, 
                    mw_attribute_sendonly, 
                    mw_attribute_sendonly, 
                    mw_attribute_sendrecv,  // TODO is can be also omitted
                    mw_attribute_sendrecv,  // can be also omitted
                    m_attribute_sendrecv
                    m_attribute_sendrecv
                ));
                ));
				
				
@@ -139,7 +139,7 @@ module CH_TestCases {
                f_cf_ue_up(v_pcscf);
                f_cf_ue_up(v_pcscf);
	    	    
	    	    
                // start component
                // start component
                v_pcscf.start(f_TC_CH_U01(
                v_pcscf.start(f_TC_CH_U01_004(
                    p_CSeq, 
                    p_CSeq, 
                    mw_attribute_inactive, 
                    mw_attribute_inactive, 
                    mw_attribute_recvonly,  
                    mw_attribute_recvonly,  
@@ -307,7 +307,7 @@ module CH_TestCases {
                v_pcscf.start(f_TC_CH_U02(
                v_pcscf.start(f_TC_CH_U02(
                    p_CSeq, 
                    p_CSeq, 
                    mw_attribute_sendrecv, 
                    mw_attribute_sendrecv, 
                    mw_attribute_recvonly, 
                	mw_attribute_sendonly, 
                    m_attribute_sendonly
                    m_attribute_sendonly
                ));
                ));
				
				
@@ -336,9 +336,9 @@ module CH_TestCases {
                f_cf_ue_up(v_pcscf);
                f_cf_ue_up(v_pcscf);
	    	    
	    	    
                // start component
                // start component
                v_pcscf.start(f_TC_CH_U02(
                v_pcscf.start(f_TC_CH_U02_002(
                    p_CSeq, 
                    p_CSeq, 
                    mw_attribute_recvonly, 
                    mw_attribute_sendrecv, //mw_attribute_recvonly, 
                    mw_attribute_inactive, 
                    mw_attribute_inactive, 
                    m_attribute_inactive
                    m_attribute_inactive
                ));
                ));
@@ -368,10 +368,10 @@ module CH_TestCases {
                f_cf_ue_up(v_pcscf);
                f_cf_ue_up(v_pcscf);
	    	    
	    	    
                // start component
                // start component
                v_pcscf.start(f_TC_CH_U02(
                v_pcscf.start(f_TC_CH_U02_003(
                    p_CSeq, 
                    p_CSeq, 
                    mw_attribute_sendonly, 
                    mw_attribute_sendrecv, 
                    mw_attribute_sendrecv,  // TODO is can be also omitted
                    mw_attribute_sendrecv,  // can be also omitted
                    m_attribute_sendrecv
                    m_attribute_sendrecv
                ));
                ));
				
				
@@ -400,11 +400,11 @@ module CH_TestCases {
                f_cf_ue_up(v_pcscf);
                f_cf_ue_up(v_pcscf);
	    	    
	    	    
                // start component
                // start component
                v_pcscf.start(f_TC_CH_U02(
                v_pcscf.start(f_TC_CH_U02_004(
                    p_CSeq, 
                    p_CSeq, 
                    mw_attribute_inactive, 
                    mw_attribute_inactive, 
                    mw_attribute_recvonly,  
                    mw_attribute_sendonly,  
                    m_attribute_sendonly
                    m_attribute_recvonly
                ));
                ));
				
				
                // synchronize component
                // synchronize component