Commit 80b55049 authored by rennoch's avatar rennoch
Browse files

f_IMS_TC_601_001-005 and related updates

parent 6f63b7e2
Loading
Loading
Loading
Loading
+140 −176
Original line number Diff line number Diff line
@@ -8197,182 +8197,6 @@ module SipIsup_IMS_TCFunctions {
 
				}// end function f_IMS_TC_308_003
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_308_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_308_004(in CSeq p_cSeq_s) runs on ImsComponent {

					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP308004 - Table 14
					var StatusLine v_statusLine[37]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine400;
					v_statusLine[2] := c_statusLine401;
					v_statusLine[3] := c_statusLine402;
					v_statusLine[4] := c_statusLine403;
					v_statusLine[5] := c_statusLine405;
					v_statusLine[6] := c_statusLine406;
					v_statusLine[7] := c_statusLine407;
					v_statusLine[8] := c_statusLine408;
					v_statusLine[9] := c_statusLine410;
					v_statusLine[10] := c_statusLine413;
					v_statusLine[11] := c_statusLine414;
					v_statusLine[12] := c_statusLine415;
					v_statusLine[13] := c_statusLine416;
					v_statusLine[14] := c_statusLine420;
					v_statusLine[15] := c_statusLine421;
					v_statusLine[16] := c_statusLine423;
					v_statusLine[17] := c_statusLine480;
					v_statusLine[18] := c_statusLine481;
					v_statusLine[19] := c_statusLine482;
					v_statusLine[20] := c_statusLine483;
					v_statusLine[21] := c_statusLine485;
					v_statusLine[22] := c_statusLine486;
					v_statusLine[23] := c_statusLine488;
					v_statusLine[24] := c_statusLine493;
					v_statusLine[25] := c_statusLine500;
					v_statusLine[26] := c_statusLine501;
					v_statusLine[27] := c_statusLine502;
					v_statusLine[28] := c_statusLine503;
					v_statusLine[29] := c_statusLine504;
					v_statusLine[30] := c_statusLine505;
					v_statusLine[31] := c_statusLine513;
					v_statusLine[32] := c_statusLine580;
					v_statusLine[33] := c_statusLine600;
					v_statusLine[34] := c_statusLine603;
					v_statusLine[35] := c_statusLine604;
					v_statusLine[36] := c_statusLine606;

					// PREAMBLE
					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(*,*,*,*));
					f_sendResponse(m_Response_4XXonINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,PX_CauseValue));
					f_awaitingACK(mw_ACK_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_308_004
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_308_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_308_005(in CSeq p_cSeq_s) runs on ImsComponent {

					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP308005 - Table 14
					var StatusLine v_statusLine[37]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine400;
					v_statusLine[2] := c_statusLine401;
					v_statusLine[3] := c_statusLine402;
					v_statusLine[4] := c_statusLine403;
					v_statusLine[5] := c_statusLine405;
					v_statusLine[6] := c_statusLine406;
					v_statusLine[7] := c_statusLine407;
					v_statusLine[8] := c_statusLine408;
					v_statusLine[9] := c_statusLine410;
					v_statusLine[10] := c_statusLine413;
					v_statusLine[11] := c_statusLine414;
					v_statusLine[12] := c_statusLine415;
					v_statusLine[13] := c_statusLine416;
					v_statusLine[14] := c_statusLine420;
					v_statusLine[15] := c_statusLine421;
					v_statusLine[16] := c_statusLine423;
					v_statusLine[17] := c_statusLine480;
					v_statusLine[18] := c_statusLine481;
					v_statusLine[19] := c_statusLine482;
					v_statusLine[20] := c_statusLine483;
					v_statusLine[21] := c_statusLine485;
					v_statusLine[22] := c_statusLine486;
					v_statusLine[23] := c_statusLine488;
					v_statusLine[24] := c_statusLine493;
					v_statusLine[25] := c_statusLine500;
					v_statusLine[26] := c_statusLine501;
					v_statusLine[27] := c_statusLine502;
					v_statusLine[28] := c_statusLine503;
					v_statusLine[29] := c_statusLine504;
					v_statusLine[30] := c_statusLine505;
					v_statusLine[31] := c_statusLine513;
					v_statusLine[32] := c_statusLine580;
					v_statusLine[33] := c_statusLine600;
					v_statusLine[34] := c_statusLine603;
					v_statusLine[35] := c_statusLine604;
					v_statusLine[36] := c_statusLine606;

					// PREAMBLE
					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(*,*,*,*));
					
					select(PX_SIP_MESSAGE_VA) {           
						case(1){f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(2){f_sendResponse(m_Response_18XonINVITE(c_statusLine181,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(3){f_sendResponse(m_Response_18XonINVITE(c_statusLine182,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(4){f_sendResponse(m_Response_18XonINVITE(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case else {log("Invalid PX_SIP_MESSAGE_VA variant (",PX_SIP_MESSAGE_VA,"), available variant 1-4");}
					}
					
					f_sendResponse(m_Response_4XXonINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,PX_CauseValue));
					f_awaitingACK(mw_ACK_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_308_005
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_308_006
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_308_006(in CSeq p_cSeq_s) runs on ImsComponent {

					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP308006 - Table 16
					var StatusLine v_statusLine[6]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine300;
					v_statusLine[2] := c_statusLine301;
					v_statusLine[3] := c_statusLine302;
					v_statusLine[4] := c_statusLine305;
					v_statusLine[5] := c_statusLine380;
										
					// PREAMBLE
					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(*,*,*,*));
					f_sendResponse(m_Response_4XXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_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_308_006
				
			} // end group TP308_Sending_REL
	
			group TP309_AutonomousRelease {
@@ -9542,6 +9366,146 @@ module SipIsup_IMS_TCFunctions {
		group TP6_InterworkingFromISUPtoSIP {
	
			group TP601_CLI {
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_601_001
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_601_001(in CSeq p_cSeq_s) runs on ImsComponent {
				
					// 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_noPasserted_noPrivacy(mw_From(c_unavailableUri)));
					f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_check_Ringing();
					f_sendResponse(m_Response_2xxonINVITE(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))));
					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_601_001
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_601_002
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_601_002(in CSeq p_cSeq_s) runs on ImsComponent {
				
					// 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_noPasserted_noPrivacy(mw_From(mw_TelSipUrl_Number(PX_ISUP_IAM_GEN_digits_txNat))));
					f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_check_Ringing();
					f_sendResponse(m_Response_2xxonINVITE(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))));
					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_601_002
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_601_003
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_601_003(in CSeq p_cSeq_s) runs on ImsComponent {
				
				// TODO: no CC in From header field
				f_IMS_TC_601_001(p_cSeq_s);
					
				}// end function f_IMS_TC_601_003

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_601_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_601_004(in CSeq p_cSeq_s) runs on ImsComponent {
				
					// 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_Passerted_ifPrivacy(
										mw_From(mw_TelSipUrl_Number(PX_ISUP_IAM_CLI_digits_txInat)),
										mw_PAssertedID(mw_PAssertedIDValue(mw_TelSipUrl_Number(PX_ISUP_IAM_CLI_digits_txInat))),
										mw_Privacy_id)
									);
					f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_check_Ringing();
					f_sendResponse(m_Response_2xxonINVITE(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))));
					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_601_004


				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_601_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_601_005(in CSeq p_cSeq_s) runs on ImsComponent {
				
					// 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_PassertedPrivacy(
										mw_From(mw_TelSip_unavailableUri),
										mw_PAssertedID(mw_PAssertedIDValue(mw_TelSipUrl_Number(PX_ISUP_IAM_CLI_digits_txInat))),
										mw_Privacy_id)
									);
					f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_check_Ringing();
					f_sendResponse(m_Response_2xxonINVITE(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))));
					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_601_005

			} // end group TP601_CLI
			
			group TP602_HOLD {