Commit 16755171 authored by rennoch's avatar rennoch
Browse files

303024-025

parent 662efa84
Loading
Loading
Loading
Loading
+116 −18
Original line number Diff line number Diff line
@@ -2985,24 +2985,7 @@ module SipIsup_IMS_TCFunctions {
					v_cSeq_INVITE:=vc_cSeq;

					//Check for precondition in Require header of INVITE
					if (ispresent(vc_request.msgHeader.require.optionsTags))
					{
						var boolean v_precondition_found:=false;
						for (var integer v_i:=0; v_i<sizeof(vc_request.msgHeader.require.optionsTags); v_i:=v_i+1){			
							if (match(vc_request.msgHeader.require.optionsTags[v_i],c_tagPrecond)) {
								v_precondition_found:=true;
							}
						}
						if (not(v_precondition_found)){
							setverdict(fail);
							log("FAIL: precondition not found in Require options list!");
						}
					} 
					else
					{
						setverdict(fail);
						log("FAIL: Require options is not present!");
					}
					f_checkRequirePrecondition(vc_request);
					
					//Check  SDP atributes regarding specification
					if (not(f_check_attribute(vc_sdp_remote, m_attribute_curr(c_qos, c_local, c_none)) and
@@ -4800,6 +4783,121 @@ module SipIsup_IMS_TCFunctions {
				}// end function f_IMS_TC_303_023

				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_303_024
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_303_024(in CSeq p_cSeq_s) runs on ImsComponent {
					var CSeq v_cSeq_INVITE; //to store CSeq of INVITE message
					var SDP_attribute_list v_attribute_list_183 := valueof({ m_attribute_PCMU });
					var SDP_attribute_list v_attribute_list_200Update := valueof({ m_attribute_PCMU });
					var SDP_attribute_list v_attribute_list_200Invite := valueof({ m_attribute_PCMU	});
					// PREAMBLE
					// IMS component interface initialization
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS_mb(*,*,*,*));
					v_cSeq_INVITE:=vc_cSeq;
					
					//Check for precondition in Require header of INVITE
					f_checkRequirePrecondition(vc_request);
					
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, v_attribute_list_183));
					// Set Require header to 100rel
					f_sendResponse(m_Response_18XonINVITE_sdp_require(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,valueof(m_mBody_SDP(vc_sdp_local)),m_Require_100rel));
										
					f_awaitingPRACK_sendReply(mw_PRACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
					
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, v_attribute_list_200Update));
					f_sendResponse(m_Response_2xxonUPDATE(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route(),valueof(m_mBody_SDP(vc_sdp_local))));
					//Set Require header to 100rel
					f_sendResponse(m_Response_18XonINVITE_sdp_require(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,valueof(m_mBody_SDP(vc_sdp_local)),m_Require_100rel));
										
					f_awaitingPRACK_sendReply(mw_PRACK_Request_Base(vc_callId));
					f_check_Ringing();
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, v_attribute_list_200Invite));	
					f_sendResponse(m_Response_2xxonINVITE(c_statusLine200,vc_callId, v_cSeq_INVITE,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route(),valueof(m_mBody_SDP(vc_sdp_local))));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					f_check_Conversation();	
					//await BYE and send 200 OK
					f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ();
						
				}// end function f_IMS_TC_303_024				

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_303_025
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_303_025(in CSeq p_cSeq_s) runs on ImsComponent {
					var CSeq v_cSeq_INVITE; //to store CSeq of INVITE message
					var SDP_attribute_list v_attribute_list_183 := valueof({ m_attribute_PCMU });
					var SDP_attribute_list v_attribute_list_200Update := valueof({ m_attribute_PCMU });
					var SDP_attribute_list v_attribute_list_200Invite := valueof({ m_attribute_PCMU	});
					// PREAMBLE
					// IMS component interface initialization
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS_mb(*,*,*,*));
					v_cSeq_INVITE:=vc_cSeq;

					//Check for precondition in Require header of INVITE
					f_checkRequirePrecondition(vc_request);
															
					//Check  SDP atributes regarding specification
					if (not(f_check_attribute(vc_sdp_remote, m_attribute_CLEARMODE_DPT))) 
					{	
						setverdict(fail);
						log("FAIL: Attribute in INVITE does not match!");
					}
					
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, v_attribute_list_183));
					// Set Require header to 100rel
					f_sendResponse(m_Response_18XonINVITE_sdp_require(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,valueof(m_mBody_SDP(vc_sdp_local)),m_Require_100rel));
										
					f_awaitingPRACK_sendReply(mw_PRACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
					
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, v_attribute_list_200Update));
					f_sendResponse(m_Response_2xxonUPDATE(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route(),valueof(m_mBody_SDP(vc_sdp_local))));
					//Set Require header to 100rel
					f_sendResponse(m_Response_18XonINVITE_sdp_require(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,valueof(m_mBody_SDP(vc_sdp_local)),m_Require_100rel));
										
					f_awaitingPRACK_sendReply(mw_PRACK_Request_Base(vc_callId));
					f_check_Ringing();
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, v_attribute_list_200Invite));	
					f_sendResponse(m_Response_2xxonINVITE(c_statusLine200,vc_callId, v_cSeq_INVITE,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route(),valueof(m_mBody_SDP(vc_sdp_local))));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					f_check_Conversation();	
					//await BYE and send 200 OK
					f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
						
				}// end function f_IMS_TC_303_025				

			} // end group TP303_Sending_ACM
			
			group TP304_Sending_CPG {