Commit 1ffb2e2a authored by rennoch's avatar rennoch
Browse files

CW_U01_001-003

parent 657887a9
Loading
Loading
Loading
Loading
+142 −15
Original line number Diff line number Diff line
@@ -39,41 +39,168 @@ module CW_TC_Functions {
    
    				f_awaitingRegistration_IMS_gm(p_cSeq_s);
                    
                    //  Awaiting SUBSCRIBE with event=reg
                    f_awaitingSubscription(p_cSeq_s, mw_SUBSCRIBE_Request_IMS(*,*,*,*));
    				
    				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    				// Testbody
    
    				// 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);
    				//TODO include XML with call-waiting-indication
        			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_SDP(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, vc_recordRoute, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local)));
        				    				
    				f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq));
    				
                    // POSTAMBLE: await 200, termination
       				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));
    
    				//awaiting ReInvite
    				f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
                    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_sendResponse(m_Response_mbody(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, f_route(), f_recordroute(), valueof(m_MBody_SDP(vc_sdp_local))));
    				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    
    				// POSTAMBLE: await ACK, await termination
    				f_awaitingACK(mw_ACK_Request_Base(vc_callId));
                    // deregistration of UE
                    f_IMS_postamble_awaitDeRegistration();
    								
    				f_awaitingBYE(mw_BYE_Request_Base(vc_callId));
    			} // end f_Sip_CW_U01_001_PCSCF
    			
    				f_sendResponse(m_Response_Base(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
                /**
                * 
                * @desc test case function f_Sip_CW_U01_002_PCSCF PCSCF component
                * @param p_cSeq_s actual cseq number
                * @verdict 
                */
                function f_Sip_CW_U01_002_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent {
    				
                    var template PAssertedID v_PAsserted;
    
                    // set PAssertedID
                    v_PAsserted := m_PAssertedID(m_AddrUnion_NameAddr(PX_SIP_NameAddr_PAsserted));
    								
                    // 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);
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    // Testbody
    
                    // 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_AlertInfo(c_statusLine180, vc_callId, vc_cSeq, mw_AlertInfo("<urn:alert:service:call-waiting>")));
    				
                    // POSTAMBLE: await 200, termination
                    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_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_001_PCSCF
                } // end f_Sip_CW_U01_002_PCSCF
        			
                /**
                * 
                * @desc test case function f_Sip_CW_U01_003_PCSCF PCSCF component
                * @param p_cSeq_s actual cseq number
                * @verdict 
                */
                function f_Sip_CW_U01_003_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent {
    				
                    var template PAssertedID v_PAsserted;
    
                    // set PAssertedID
                    v_PAsserted := m_PAssertedID(m_AddrUnion_NameAddr(PX_SIP_NameAddr_PAsserted));
    								
                    // 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);
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    // Testbody
    
                    // 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_statusLine415, vc_callId, vc_cSeq));
    				
                    // POSTAMBLE: cancel, await ok
                    f_cancelCall_await487(m_CANCEL_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_route));

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    
                    // deregistration of UE
                    f_IMS_postamble_awaitDeRegistration();
    								
                } // end f_Sip_CW_U01_003_PCSCF
                
                    			/**
    			* 
    			* @desc test case function f_Sip_CW_U01_004_PCSCF PCSCF component
    			* @param p_cSeq_s actual cseq number
    			* @verdict 
    			*/
    			function f_Sip_CW_U01_004_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent {
    				
    				var template PAssertedID v_PAsserted;
    
    				// set PAssertedID
    				v_PAsserted := m_PAssertedID(m_AddrUnion_NameAddr(PX_SIP_NameAddr_PAsserted));
    								
    				// 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);
                    
    				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    				// Testbody
    
    				// 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));
    				

//TODO  await invite (sendonly)




                    // POSTAMBLE: await 200 (initial invite), termination
       				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_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_004_PCSCF
                
        			
    		}// end group destination_UE