Commit cca62325 authored by rennoch's avatar rennoch
Browse files

CW_U01_007-008

parent 422536f9
Loading
Loading
Loading
Loading
+173 −1
Original line number Diff line number Diff line
@@ -297,7 +297,7 @@ module CW_TC_Functions {

                    f_wait(PX_Timeout_CW_AS_CW* 0.9); // await timeout of TAS-CW

     				// AWAIT 200OK for CALL2
     				// AWAIT 480 for CALL2
     				// switch to CAll2
                    vc_callId := vc_callId_UE3;
                    vc_cSeq := vc_cSeq_UE3;
@@ -331,6 +331,178 @@ module CW_TC_Functions {
    								
    			} // end f_Sip_CW_U01_006_PCSCF                

                /**
    			* 
    			* @desc test case function f_Sip_CW_U01_007_PCSCF PCSCF component
    			* @param p_cSeq_s actual cseq number
    			* @verdict 
    			*/
    			function f_Sip_CW_U01_007_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent {
    				var CallId vc_callId_UE2, vc_callId_UE3;
                    var CSeq vc_cSeq_UE2, vc_cSeq_UE3;
                    var SipUrl vc_requestUri_UE2;
                    var From vc_from_UE2;
                    var To vc_to_UE2;
                    var Via vc_via_UE2;
    								
    				// Request-Uri refers to home network (SUT)
    				f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip
    
    				f_awaitingRegistration_IMS_gm(p_cSeq_s);

					// Call1 esthablishment
                    // INVITE to UE2@SUThome
                    vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication
                    LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);

                    f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local)));        				    				
                    f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));
       				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));
                    vc_callId_UE2 := vc_callId;
                    vc_cSeq_UE2 := vc_cSeq;
                    vc_requestUri_UE2 := vc_requestUri;
                    vc_from_UE2 := vc_from;
                    vc_to_UE2 := vc_to;
                    vc_via_UE2 := vc_via;
                    
    				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    				// Testbody
     				
    				// INVITE to UE3@SUThome
                    vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication
     				LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE3atSUThome);
                    vc_callId_UE3 := vc_callId;
                    vc_cSeq_UE3 := vc_cSeq;
                    
        			f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local)));
        				    				
    				f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));

                    f_wait(PX_Timeout_CW_AS_CW* 0.9); // await timeout of TAS-CW

     				// cancel CALL2
     				// switch to CAll2
                    vc_callId := vc_callId_UE3;
                    vc_cSeq := vc_cSeq_UE3;
     				
                    LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE3atSUThome);
                    f_SendCANCEL(m_CANCEL_Request_IMS(
                        vc_requestUri, 
                        vc_callId, 
                        vc_cSeq, 
                        vc_caller_From, 
                        vc_caller_To, 
                        vc_via, 
                        vc_route
                    ));
                    
                    // receive 200 OK
                    f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
     				     				
       				f_awaitingResponse(mw_Response_Base(c_statusLine487, vc_callId, vc_cSeq));
    
    				f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));
                       
                    // Terminate CALL1
                    // switch to CAll1
                    vc_callId := vc_callId_UE2;
                    vc_cSeq := vc_cSeq_UE2;
                    vc_requestUri := vc_requestUri_UE2;
                    vc_from := vc_from_UE2;
                    vc_to := vc_to_UE2;
                    vc_via := vc_via_UE2;
                    f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
                    f_SendBYE(m_BYE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));            
                    f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
                    
    
    				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    
                    // deregistration of UE
                    f_IMS_postamble_awaitDeRegistration();
    								
    			} // end f_Sip_CW_U01_007_PCSCF                

                /**
    			* 
    			* @desc test case function f_Sip_CW_U01_008_PCSCF PCSCF component
    			* @param p_cSeq_s actual cseq number
    			* @verdict 
    			*/
    			function f_Sip_CW_U01_008_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent {
    				var CallId vc_callId_UE2, vc_callId_UE3;
                    var CSeq vc_cSeq_UE2, vc_cSeq_UE3;
                    var SipUrl vc_requestUri_UE2;
                    var From vc_from_UE2;
                    var To vc_to_UE2;
                    var Via vc_via_UE2;
    								
    				// Request-Uri refers to home network (SUT)
    				f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip
    
    				f_awaitingRegistration_IMS_gm(p_cSeq_s);

					// Call1 esthablishment
                    // INVITE to UE2@SUThome
                    vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication
                    LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome);

                    f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local)));        				    				
                    f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));
       				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));
                    vc_callId_UE2 := vc_callId;
                    vc_cSeq_UE2 := vc_cSeq;
                    vc_requestUri_UE2 := vc_requestUri;
                    vc_from_UE2 := vc_from;
                    vc_to_UE2 := vc_to;
                    vc_via_UE2 := vc_via;
                    
    				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    				// Testbody
     				
    				// INVITE to UE3@SUThome
                    vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication
     				LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE3atSUThome);
                    vc_callId_UE3 := vc_callId;
                    vc_cSeq_UE3 := vc_cSeq;
                    
        			f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local)));
        				    				
    				f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));

                    f_wait(PX_Timeout_CW_AS_CW* 0.9); // await timeout of TAS-CW

     				// Terminate  CALL2
     				// switch to CAll2
                    vc_callId := vc_callId_UE3;
                    vc_cSeq := vc_cSeq_UE3;
     				
                    f_SendBYE(m_BYE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));
            
                    f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
                       
                    // Terminate CALL1
                    // switch to CAll1
                    vc_callId := vc_callId_UE2;
                    vc_cSeq := vc_cSeq_UE2;
                    vc_requestUri := vc_requestUri_UE2;
                    vc_from := vc_from_UE2;
                    vc_to := vc_to_UE2;
                    vc_via := vc_via_UE2;
                    f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
                    f_SendBYE(m_BYE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));            
                    f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
                    
    
    				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    
                    // deregistration of UE
                    f_IMS_postamble_awaitDeRegistration();
    								
    			} // end f_Sip_CW_U01_008_PCSCF                
        			        			
    		}// end group destination_UE
    		
    	}// end group SS_CW_SIPSIP