Commit d894d72e authored by pintar's avatar pintar
Browse files

Corrections due to Iskratel validation STF387 week51

parent df880f48
Loading
Loading
Loading
Loading
+42 −24
Original line number Diff line number Diff line
@@ -1870,7 +1870,7 @@ group TP306_Sending_CON {
		/*function with default mwIAM message*/	
		f_mwIAM();
		
		f_mCON();
		f_mCON_v(m_CON_BCI(c_BCI_cldPstatInd_noInd));
	
		/*function with default mwREL and mRLC messages*/	
		f_mwREL_mRLC();
@@ -1891,8 +1891,8 @@ group TP307_Receiving_REL {
		/*function with default mwIAM message*/	
		f_mwIAM();
		
		/*function with default sent ANM messages*/	
		f_mANM();
		/*function with default sent CON messages*/	
		f_mCON();
		
		/*function with default mwREL and mRLC messages*/	
		f_mwREL_mRLC();
@@ -1936,6 +1936,9 @@ group TP307_Receiving_REL {
		/*function with default mwIAM message*/	
		f_mwIAM();
		
		/*function with default mACM message*/	
		f_mACM();
		
		/*function with default mwREL and mRLC messages*/	
		f_mwREL_mRLC();
	
@@ -2099,6 +2102,9 @@ group TP308_Sending_REL {
		/*function with default mwIAM messages*/	
		f_mwIAM();
		
		/*function with default sent ACM messages*/	
		f_mACM();
		
		f_mREL_v(m_REL_CAU2(m_CAU_Causev(v_CauseVal[v_VA])));
		
		/*function with default received RLC messages*/	
@@ -2182,10 +2188,10 @@ group TP309_Receiving_RSC_GRS_CGB {
		/*function with default mwIAM messages*/	
		f_mwIAM();
		
		f_mREL_v(m_REL_CAU2(m_CAU_Causev(31)));
		f_mwREL_v(mw_REL_CAU1(m_CAU_Causev(31)));
			
		/*function with default received RLC messages*/	
		f_mwRLC();
		/*function with default send RLC messages*/	
		f_mRLC();
	
	}
	
@@ -2194,10 +2200,12 @@ group TP309_Receiving_RSC_GRS_CGB {
		/*function with default mwIAM messages*/	
		f_mwIAM();
		
		f_mREL_v(m_REL_CAU2(m_CAU_Causev(31)));
 		f_mCON_v(m_CON_BCI(c_BCI_cldPstatInd_noInd));
		
		/*function with default received RLC messages*/	
		f_mwRLC();
		f_mwREL_v(mw_REL_CAU1(m_CAU_Causev(31)));
			
		/*function with default sendRLC messages*/	
		f_mRLC();
	
	}
	
@@ -2209,10 +2217,13 @@ group TP309_Receiving_RSC_GRS_CGB {
		/*function with default sent ACM messages*/	
		f_mACM();
		
		f_mREL_v(m_REL_CAU2(m_CAU_Causev(31)));
		/*function with default sent ANM messages*/	
		f_mANM();
		
		/*function with default received RLC messages*/	
		f_mwRLC();
		f_mwREL_v(mw_REL_CAU1(m_CAU_Causev(31)));
			
		/*function with default send RLC messages*/	
		f_mRLC();
	
	}
	
@@ -2221,10 +2232,13 @@ group TP309_Receiving_RSC_GRS_CGB {
		/*function with default mwIAM messages*/	
		f_mwIAM();
		
		f_mREL_v(m_REL_CAU2(m_CAU_Causev(31)));
        /*function with default sent ACM messages*/	
        f_mACM();
		
		f_mwREL_v(mw_REL_CAU1(m_CAU_Causev(31)));
			
		/*function with default received RLC messages*/	
		f_mwRLC();
		f_mRLC();
	
	}
	
@@ -2239,6 +2253,11 @@ group TP309_Receiving_RSC_GRS_CGB {
		/*function with default mwIAM messages*/	
		f_mwIAM();
		
		f_mwREL_v(mw_REL_CAU1(m_CAU_Causev(31)));
			
		/*function with default send RLC messages*/	
		f_mRLC();
	
	}
	
	function f_EncapsIsup_TC_309_009() runs on SipComponent {
@@ -2408,8 +2427,7 @@ group TP314_Receiving_SGM {

	function f_EncapsIsup_TC_314_001() runs on SipComponent {
		
		f_mwIAM_v(mw_IAM_OFCI(*));
		
		f_mwIAM_v(mw_IAM_AT(mw_AT_CLSU));
		
		/*function with default mACM, mANM, mwREL and mRLC messages*/	
		f_mACM_mANM_mwREL_mRLC();
@@ -2436,7 +2454,7 @@ group TP401_CLIP {

	function f_EncapsIsup_TC_401_002() runs on SipComponent {
	
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_ATP_connSub, *));
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_AT_CLSU, *));

		//default messages are defined in the function - REL,RLC,ACM,ANM		
		f_mACM_mANM_mwREL_mRLC();
@@ -2454,7 +2472,7 @@ group TP401_CLIP {

	function f_EncapsIsup_TC_401_004() runs on SipComponent {
	
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_scrUsrProv_allow(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_ATP_connSub, *));
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_scrUsrProv_allow(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_AT_CLSU, *));

		//default messages are defined in the function - REL,RLC,ACM,ANM		
		f_mACM_mANM_mwREL_mRLC();
@@ -2472,7 +2490,7 @@ group TP401_CLIP {

	function f_EncapsIsup_TC_401_006() runs on SipComponent {
	
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_ATP_connSub, mw_GenNum_allowed_uNotVerif(c_GEN_natAddrInd_natSig, PX_ISUP_TX_GEN_addrSignals_txNat)));
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_AT_CLSU, mw_GenNum_allowed_uNotVerif(c_GEN_natAddrInd_natSig, PX_ISUP_TX_GEN_addrSignals_txNat)));

		//default messages are defined in the function - REL,RLC,ACM,ANM		
		f_mACM_mANM_mwREL_mRLC();
@@ -2607,7 +2625,7 @@ group TP401_CLIP {

	function f_EncapsIsup_TC_401_021() runs on SipComponent {
	
		f_EncapsIsup_TC_401_021();
		f_EncapsIsup_TC_401_020();

	}

@@ -2634,7 +2652,7 @@ group TP401_CLIP {

	function f_EncapsIsup_TC_401_025() runs on SipComponent {
	
		f_EncapsIsup_TC_401_025();
		f_EncapsIsup_TC_401_024();

	}

@@ -2665,7 +2683,7 @@ group TP402_CLIR {

	function f_EncapsIsup_TC_402_002() runs on SipComponent {
	
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_restrP(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_ATP_connSub, *));
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_restrP(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_AT_CLSU, *));

		//default messages are defined in the function - REL,RLC,ACM,ANM		
		f_mACM_mANM_mwREL_mRLC();
@@ -2683,7 +2701,7 @@ group TP402_CLIR {

	function f_EncapsIsup_TC_402_004() runs on SipComponent {
	
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_scrUsrProv_rest(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_ATP_connSub , omit));
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_scrUsrProv_rest(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_AT_CLSU , omit));

		//default messages are defined in the function - REL,RLC,ACM,ANM		
		f_mACM_mANM_mwREL_mRLC();
@@ -2701,7 +2719,7 @@ group TP402_CLIR {

	function f_EncapsIsup_TC_402_006() runs on SipComponent {
	
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_restrP(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_ATP_connSub, mw_GenNum_restr_uNotVerif(c_GEN_natAddrInd_natSig, PX_ISUP_TX_GEN_addrSignals_txNat)));
		f_mwIAM_v(mw_IAM_CLI_AT_GEN(mw_CallingNum_restrP(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), mw_AT_CLSU, mw_GenNum_restr_uNotVerif(c_GEN_natAddrInd_natSig, PX_ISUP_TX_GEN_addrSignals_txNat)));

		//default messages are defined in the function - REL,RLC,ACM,ANM		
		f_mACM_mANM_mwREL_mRLC();
+137 −121
Original line number Diff line number Diff line
@@ -547,11 +547,19 @@ import from LibCommon_VerdictControl all;
	//	added 30.11.06 by Butinskaya Inga, IUT
	 function f_setHeadersForINFO(inout CSeq loc_CSeq_s) runs on SipComponent
	 {
	   v_CallId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(loc_CSeq_s) & AT & PX_SIP_IUT_IPADDR };
			
	   // New Cseq
	   loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1;
	   loc_CSeq_s.method := "INFO";	 
	   v_CSeq := loc_CSeq_s; // set expectation for response
	   
		v_To := valueof(m_To_IUT);
		v_Cancel_To := v_To;
		caller_To := v_To;

		v_From := valueof(m_From_ETS(getRndTag()));
		caller_From := v_From;
      
	   //Computation of the Request URI
	   buildRequestURI(v_reqHostPort, v_To);
@@ -1419,9 +1427,7 @@ import from LibCommon_VerdictControl all;
					//Answer to the CANCEL
					f_send200OK();
					
					SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call as a postamble
					callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
					f_awaitingAckRequest(loc_CSeq_s);
					f_send487_awaitACK();
					setverdict(pass);
				}
				[]SIPP.receive	(mw_BYE_Request_1(v_CallId)) -> value v_BYE_Request sender sent_label
@@ -1445,9 +1451,7 @@ import from LibCommon_VerdictControl all;
			
				[] TWait.timeout
				{			
					SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call as a postamble
					callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
					f_awaitingAckRequest(loc_CSeq_s);
					f_send487_awaitACK();
					setverdict(fail);
				}

@@ -1465,6 +1469,17 @@ import from LibCommon_VerdictControl all;
		{
			var Request v_CANCEL_Request, v_BYE_Request;
			
			if (PX_ISUP_TX_without_Cancel_Encaps == true)
			{
				f_awaitingBYEorCANCEL(
						currentCallId,
						loc_CSeq_s,
						loc_From,
						loc_To,
						loc_reqHostPort); // See PX_ISUP_TX_without_Cancel_Encaps description
			}
			else
			{
    			// awaiting CANCEL and respond with 200 OK
    			TWait.start(PX_SIP_TWAIT);
    			alt 
@@ -1475,11 +1490,10 @@ import from LibCommon_VerdictControl all;
    					TWait.stop;
    					f_setHeadersOnReceiptOfCancel(v_CANCEL_Request);
    					//Answer to the CANCEL
					f_send200OK();
    					//f_send200OK();
    					f_send200OKBYE_MIME();//200OK on CANCEL
    							
					SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call as a postamble
					callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
					f_awaitingAckRequest(loc_CSeq_s);
    					f_send487_awaitACK();
    					setverdict(pass);
    				}
    				[]SIPP.receive	(mw_BYE_Request_Encaps(v_CallId, loc_ISUP_BICC)) -> value v_BYE_Request sender sent_label
@@ -1487,16 +1501,7 @@ import from LibCommon_VerdictControl all;
    					TWait.stop;
    					v_ignore_bye:= true;
    					f_setHeadersOnReceiptOfBye(v_BYE_Request);
					if (v_BOO_RecordRoute)
					{
					  SIPP.send(m_Response_200_withRoute_1(v_CallId, v_CSeq,
						v_From, v_To, v_Via, v_RecordRoute )) to sent_label;
					}
					else
					{
					  SIPP.send(m_Response_200_1(v_CallId, v_CSeq,
						v_From, v_To, v_Via)) to sent_label;
					};
    					f_send200OKBYE_MIME();
    					setverdict(pass);
    				
    				  }
@@ -1529,7 +1534,7 @@ import from LibCommon_VerdictControl all;
    				}
    
    			}

			}
		}
		
		function f_awaiting_cancel_sendOK(
@@ -1548,24 +1553,17 @@ import from LibCommon_VerdictControl all;
				[]SIPP.receive(mw_CANCEL_Request_1(v_CallId)) 
				-> value v_CANCEL_Request sender sent_label
				{
					TWait.stop;
					f_setHeadersOnReceiptOfCancel(v_CANCEL_Request);
					//Answer to the CANCEL
					f_send200OK();
									
					//f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

//					SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call as a postamble
//					callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
//					f_awaitingAckRequest(loc_CSeq_s);
					f_send487_awaitACK();
					setverdict(pass);
				}
				[] TWait.timeout
				{									
					//f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call as a postamble
					callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
					f_awaitingAckRequest(loc_CSeq_s);
					f_send487_awaitACK();
					setverdict(fail);
				}
				// Ignore other messages
@@ -1587,6 +1585,17 @@ import from LibCommon_VerdictControl all;
		{
			var Request v_CANCEL_Request;
				
			if (PX_ISUP_TX_without_Cancel_Encaps == true)
			{
        		f_awaiting_cancel_sendOK(
        				currentCallId,
						loc_CSeq_s,
						loc_From,
						loc_To,
						loc_reqHostPort); // See PX_ISUP_TX_without_Cancel_Encaps description
			}
			else
			{
    			// awaiting CANCEL and respond with 200 OK
    			TWait.start(PX_SIP_TWAIT);
    			alt 
@@ -1594,28 +1603,38 @@ import from LibCommon_VerdictControl all;
    				[]SIPP.receive(mw_CANCEL_Request_Encaps(v_CallId,loc_ISUP_BICC)) 
    				-> value v_CANCEL_Request sender sent_label
    				{
    					TWait.stop;
    					f_setHeadersOnReceiptOfCancel(v_CANCEL_Request);
    					//Answer to the CANCEL
					if (loc_ok) {f_send200OK();}
    					if (loc_ok) {
    						f_send200OK();
    						
    						f_send487_awaitACK();
    					}
    					setverdict(pass);
    				}
    				[]SIPP.receive(mw_CANCEL_Request_MIME(v_CallId,loc_ISUP_BICC)) 
    				-> value v_CANCEL_Request sender sent_label
    				{
    					TWait.stop;
    					f_setHeadersOnReceiptOfCancel(v_CANCEL_Request);
    					//Answer to the CANCEL
					if (loc_ok) {f_send200OK();}
    					if (loc_ok) {
    						f_send200OK();
    														
    						f_send487_awaitACK();
    					}
    					setverdict(pass);
    				}
    				[] TWait.timeout
    				{
					SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call as a postamble
					callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
					f_awaitingAckRequest(loc_CSeq_s);
    								
    					f_send487_awaitACK();
    					setverdict(fail);
    				}
    			}
    		}
    	}
		
    function f_awaitingAckRequest(inout CSeq loc_CSeq_s) runs on SipComponent
    {
@@ -1878,8 +1897,10 @@ group SendMessage {
				(v_CallId, v_CSeq, caller_From, caller_To, v_Via )) to sent_label;};
	}
    
    //Send 487 and await ACK in case of CANCEL is received
	function f_send487_awaitACK()  runs on SipComponent
	{
				v_CSeq.method:="INVITE";
				SIPP.send(m_Response_487_1(v_CallId, v_CSeq,  //to reject the call
				callee_From, callee_To, v_Via)) to sent_label;  // sends Request terminated
				f_awaitingAckRequest(v_CSeq);
@@ -2666,15 +2687,14 @@ group SendMessage {
		var FncRetCode v_ret;
						
		f_setHeadersForINFO(v_CSeq);
		SIPP
			.send (m_INFO_Request_encaps(
		SIPP.send (m_INFO_Request_encaps(
				v_reqHostPort,
				v_CallId,
				v_CSeq,
				v_From,
				v_To,
				v_Via,
				valueof(m_MBody_ISUP(loc_msg)) //[IAM encapsulated]
				valueof(m_MBody_ISUP(loc_msg)) //[CGB encapsulated]
		)) to sent_label;
		
	} // end of f_SendUPDATE
@@ -2879,11 +2899,11 @@ group GlobalSteps {
			[] SIPP.receive
			  {
				all timer.stop;
				stop
				f_SIP_postamble_00()
			  }
			[] TResp.timeout
			  {
				stop
				f_SIP_postamble_00()
			  }
		  }
		} // end function f_terminateCall
@@ -3586,7 +3606,6 @@ group Postambles {
		To loc_To,
		HostPort loc_reqHostPort)  runs on SipComponent
	{
//		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// send BYE and wait for 200 OK
		f_terminateCall(
@@ -3597,7 +3616,6 @@ group Postambles {
			v_reqHostPort,
			valueof(m_MBody_ISUP(v_rel_msg)));

		f_SIP_postamble_00()
	}

	function f_SIP_postamble_release_passive(
@@ -3607,7 +3625,6 @@ group Postambles {
	To loc_To,
	HostPort loc_reqHostPort)  runs on SipComponent
	{
		// f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

		// awaiting BYE and respond with 200 OK
		f_awaitingBYE_sendReply(mw_BYE_Request_1(v_CallId),v_CSeq);
@@ -3617,7 +3634,6 @@ group Postambles {

	function f_SIP_postamble_00()  runs on SipComponent
    {
//		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // moved to f_SIP_postamble_release_passive/active

		//Postamble
		f_RemoveRegistration(v_CSeq);
+97 −55

File changed.

Preview size limit exceeded, changes collapsed.

+44 −91
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ group SubFields
	  scheme := SIP_SCHEME,  		// contains "sip"
	  userInfo := 			// optional
	  {
		userOrTelephoneSubscriber := "Anonymous",// charstring
		userOrTelephoneSubscriber := pattern "[A|a]nonymous",// charstring /*YGA*/
		password := omit		// optional charstring
	  },
	  hostPort :=
@@ -282,7 +282,7 @@ group SubFields
	  scheme := SIP_SCHEME,  		// contains "sip"
	  userInfo := 			// optional
	  {
		userOrTelephoneSubscriber := "Anonymous",// charstring
		userOrTelephoneSubscriber := pattern "[A|a]nonymous",// charstring /*YGA*/
		password := omit		// optional charstring
	  },
	  hostPort :=
@@ -295,24 +295,7 @@ group SubFields
	};
	
	//	SIP-URL with CLIP
	template SipUrl mw_SipUrl_CLIP(template charstring loc_number) :=  	
	{
	  scheme := SIP_SCHEME,  		// contains "sip"
	  userInfo := 			// optional
	  {
		userOrTelephoneSubscriber := "Anonymous",// charstring
		password := omit		// optional charstring
	  },
	  hostPort :=
	  {
		host := *,	// hostname, IPv4 or IPv6 as a charstring
		portField := *	//optional integer
	  },
	  urlParameters := *,
	  headers := *
	};
	//	SIP-URL with CLIP
	 template SipUrl mw_SipUrl_CLIP_1(template charstring loc_number) :=  	
	 template SipUrl mw_SipUrl_CLIP_userInfo(template charstring loc_number) :=  	
	 {
	   scheme := SIP_SCHEME,  		// contains "sip"
	   userInfo := 			// optional
@@ -328,25 +311,10 @@ group SubFields
	   urlParameters := *,
	   headers := *
	 };
	template SipUrl mw_TelUrl_CLIP(template charstring loc_number) :=  	
	{
	  scheme := SIP_SCHEME,  		// contains "sip"
	  userInfo := 			// optional
	  {
		userOrTelephoneSubscriber := "Anonymous",// charstring
		password := omit		// optional charstring
	  },
	  hostPort :=
	  {
		host := *,	// hostname, IPv4 or IPv6 as a charstring
		portField := *	//optional integer
	  },
	  urlParameters := *,
	  headers := *
	};
	template SipUrl mw_TelUrl_CLIP_1(template charstring loc_number) :=  	
	 
	template SipUrl mw_TelUrl_CLIP_userInfo(template charstring loc_number) :=  	
	{
	  scheme := SIP_SCHEME,  		// contains "sip"
	  scheme := TEL_SCHEME,  		// contains "tel"
	  userInfo := 			// optional
	  {
		userOrTelephoneSubscriber := loc_number,// charstring
@@ -374,37 +342,18 @@ group SubFields
	}

	template Addr_Union mw_Addr_Union_CLIP(template charstring loc_number) :=
	(mw_Addr_Union_CLIP_1(loc_number),mw_Addr_Union_CLIP_2(loc_number));
	(mw_Addr_Union_CLIP_NameAddr(loc_number),mw_Addr_Union_CLIP_AddrSpec(loc_number));
			
	template Addr_Union mw_Addr_Union_CLIP_num(template charstring loc_number) :=
	(mw_Addr_Union_CLIP_1_num(loc_number),mw_Addr_Union_CLIP_2_num(loc_number));
	template Addr_Union mw_Addr_Union_CLIP_NameAddr(template charstring loc_number) :=

	template Addr_Union mw_Addr_Union_CLIP_1(template charstring loc_number) :=
//	(
		{ nameAddr := {
			displayName := *,
			addrSpec := (mw_SipUrl_CLIP(loc_number), mw_TelUrl_CLIP(loc_number))
		} 
		}
//		{ addrSpecUnion := (mw_SipUrl_CLIP(loc_number), mw_TelUrl_CLIP(loc_number))}
//	)
	template Addr_Union mw_Addr_Union_CLIP_1_num(template charstring loc_number) :=
//		(
		{ nameAddr := {
			displayName := *,
		addrSpec := (mw_SipUrl_CLIP_1(loc_number), mw_TelUrl_CLIP_1(loc_number))
			addrSpec := (mw_SipUrl_CLIP_userInfo(loc_number), mw_TelUrl_CLIP_userInfo(loc_number))
		} 
		}
//			{ addrSpecUnion := (mw_SipUrl_CLIP(loc_number), mw_TelUrl_CLIP(loc_number))}
//		)	
	template Addr_Union mw_Addr_Union_CLIP_2(template charstring loc_number) :=
		{ addrSpecUnion := (mw_SipUrl_CLIP(loc_number), mw_TelUrl_CLIP(loc_number))}
		
//	template Addr_Union mw_Addr_Union_CLIP(template charstring loc_number) := 
//	 (mw_Addr_Union_CLIP_1(loc_number), mw_Addr_Union_CLIP_2(loc_number))
	template Addr_Union mw_Addr_Union_CLIP_2_num(template charstring loc_number) :=
			{ addrSpecUnion := (mw_SipUrl_CLIP_1(loc_number), mw_TelUrl_CLIP_1(loc_number))}
	
	template Addr_Union mw_Addr_Union_CLIP_AddrSpec(template charstring loc_number) :=
		{ addrSpecUnion := (mw_SipUrl_CLIP_userInfo(loc_number), mw_TelUrl_CLIP_userInfo(loc_number))}

	template Addr_Union m_Addr_Union_Tel(charstring loc_tel) :=
	{
@@ -534,13 +483,7 @@ group Headers

	template From mw_fromField_withNumber (template charstring loc_number) := {
	  fieldName := FROM_E,
	  addressField := (mw_Addr_Union_CLIP_1(loc_number), mw_Addr_Union_CLIP_2(loc_number)),
	  fromParams:= *
	}
	/*added on 12.12.06 by Butinskaya Inga, IUT*/
	template From mw_fromField_withNumber_1 (template charstring loc_number) := {
	  fieldName := FROM_E,
	  addressField := (mw_Addr_Union_CLIP_1_num(loc_number), mw_Addr_Union_CLIP_2(loc_number)),
	  addressField := (mw_Addr_Union_CLIP_NameAddr(loc_number), mw_Addr_Union_CLIP_AddrSpec(loc_number)),
	  fromParams:= *
	}
	template From mw_fromField_anonimous := {
@@ -663,7 +606,7 @@ group Headers
	template Privacy mw_Privacy_id := 
	{
		fieldName := PRIVACY_E,
		privValueList := {*,"id",*} // permutation("id",*) currently not supported by TAU
		privValueList := {"id"} // permutation("id",*) currently not supported by TAU
	};

	template PAssertedID m_PAssertedID(template Addr_Union loc_pAssertedIDValue) := 
@@ -703,12 +646,7 @@ group Headers
	template PAssertedID mw_PAssertedID_withNumber (template charstring loc_number) :=
	{
		fieldName := P_ASSERTED_ID_E,
		pAssertedIDValueList := {*,mw_Addr_Union_CLIP(loc_number),*} // permutation(mw_Addr_Union_CLIP(loc_number)) // currently not supported by TAU
	};
	template PAssertedID mw_PAssertedID_withNumber_1 (template charstring loc_number) :=
	{
		fieldName := P_ASSERTED_ID_E,
		pAssertedIDValueList := {*,mw_Addr_Union_CLIP_num(loc_number),*} // permutation(mw_Addr_Union_CLIP(loc_number)) // currently not supported by TAU
		pAssertedIDValueList := {mw_Addr_Union_CLIP(loc_number)} //{*,mw_Addr_Union_CLIP(loc_number),*} // permutation(mw_Addr_Union_CLIP(loc_number)) // currently not supported by TAU
	};
	template PPreferredID m_PPreferredID(template Addr_Union loc_pPreferredIDValue) := 
	{
@@ -1368,7 +1306,7 @@ group Requests
		messageBody := m_MBody_SDP_ISUP(valueof(loc_SDP), loc_INV)
	}
	/* added on 12.12.06 by Butinskaya Inga, IUT */
	template Request mw_INVITE_Request_Encaps_CLIP (template ISUP_BICC_MSG loc_INV)
	template Request mw_INVITE_Request_Encaps_CLIP_anonymous (template ISUP_BICC_MSG loc_INV)
	modifies mw_INVITE_Request_MIME
	:=
	{
@@ -1380,37 +1318,48 @@ group Requests
		}
	}
	/* added on 12.12.06 by Butinskaya Inga, IUT */
	template Request mw_INVITE_Request_Encaps_CLIP_1 (template ISUP_BICC_MSG loc_INV)
	template Request mw_INVITE_Request_Encaps_CLIP_From (template ISUP_BICC_MSG loc_INV)
	modifies mw_INVITE_Request_MIME
	:=
	{
		msgHeader :=
		{
			fromField := mw_fromField_withNumber_1(PX_SIP_ETS_LOCAL_USER_FULL),
			fromField := mw_fromField_withNumber(PX_SIP_FROM_USERINFO),
			pAssertedID := omit,
			privacy := omit
		}
	}
	/* added on 12.12.06 by Butinskaya Inga, IUT */
	template Request mw_INVITE_Request_Encaps_CLIP_2 (template ISUP_BICC_MSG loc_INV)
	template Request mw_INVITE_Request_Encaps_CLIP_From_PAssertedID (template ISUP_BICC_MSG loc_INV)
	modifies mw_INVITE_Request_MIME
	:=
	{
		msgHeader :=
		{
			fromField := mw_fromField_withNumber_1(PX_SIP_ETS_LOCAL_USER_FULL),
			pAssertedID := mw_PAssertedID_withNumber_1(PX_SIP_ETS_LOCAL_USER_FULL),
			fromField := mw_fromField_withNumber(PX_SIP_FROM_USERINFO),
			pAssertedID := mw_PAssertedID_withNumber(PX_SIP_PASSERTEDID_USERINFO),
			privacy := omit
		}
	}
	template Request mw_INVITE_Request_Encaps_CLIR_FromAnonymous (template ISUP_BICC_MSG loc_INV)
	modifies mw_INVITE_Request_MIME
	:=
	{
		msgHeader :=
		{
			fromField := mw_fromField_anonimous,
			pAssertedID := mw_PAssertedID_withNumber(PX_SIP_PASSERTEDID_USERINFO),
			privacy := mw_Privacy_id
		}
	}
	template Request mw_INVITE_Request_Encaps_CLIR (template ISUP_BICC_MSG loc_INV)
	modifies mw_INVITE_Request_MIME
	:=
	{
		msgHeader :=
		{
			fromField := mw_fromField_withNumber_1(PX_SIP_ETS_LOCAL_USER_FULL),
			pAssertedID := mw_PAssertedID_withNumber_1(PX_SIP_ETS_LOCAL_USER_FULL),
			fromField := mw_fromField_withNumber(PX_SIP_FROM_USERINFO),
			pAssertedID := mw_PAssertedID_withNumber(PX_SIP_PASSERTEDID_USERINFO),
			privacy := mw_Privacy_id
		}
	}
@@ -2443,7 +2392,7 @@ group Requests
	payload := *
  }
  
  template Request m_INFO_Request_1 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq,
  template Request m_INFO_Request_ISUP (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq,
	  From loc_From, To loc_To, Via loc_Via, MessageBody loc_MB) :=
	{
	  requestLine	:=
@@ -2462,7 +2411,7 @@ group Requests
	  msgHeader :=
	  {
		callId		:= loc_CallId,
		cSeq		:= {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "ACK"},
		cSeq		:= {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "INFO"},
		fromField	:= loc_From,
		toField		:= loc_To,
		via		:= loc_Via,
@@ -2616,6 +2565,11 @@ group Responses
	  :=
	  {
		statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_code, reasonPhrase := loc_phrase},
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:=  f_MessageBodyLength(valueof(m_MBody_ISUP(loc_ISUP)))},
			contentType := m_IsupContentType
		},
		messageBody := m_MBody_ISUP(loc_ISUP)
	  }

@@ -4101,7 +4055,7 @@ group SDP_Fields {
			template Request m_INFO_Request_encaps //Only one example of template with MIME
			(HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To,
			  Via loc_Via, MessageBody loc_MB)
			modifies m_INFO_Request_1
			modifies m_INFO_Request_ISUP
			:=
			{
			  msgHeader :=
@@ -4109,7 +4063,6 @@ group SDP_Fields {
				contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(loc_MB)},
				contentType := m_IsupContentType,
				contentDisposition:=m_ContentDisposition
//				mimeVersion := m_MimeVersion				  
			  },
			  messageBody := loc_MB		  
			}
+8 −0
Original line number Diff line number Diff line
@@ -1256,6 +1256,9 @@ function f_singleISUPlength(ISUP_BICC_MSG loc_MB) return integer {
	if (ischosen(loc_MB.cFN_MSG)) {
		return f_cFNLength(loc_MB.cFN_MSG)
	}
    if (ischosen(loc_MB.cGB_MSG)) {
    	return f_cGBLength(loc_MB.cGB_MSG)
    }
	if (ischosen(loc_MB.cON_MSG)) {
		return f_cONLength(loc_MB.cON_MSG)
	}
@@ -1501,6 +1504,11 @@ function f_cFNLength(CFN_MSG loc_msg)return integer {
	}
	return result;
}
function f_cGBLength(CGB_MSG loc_msg)return integer {
	var integer result := 0;
	result := result + 3 + bit2int(loc_msg.rangeAndStatus.paramLen) + 1; //mandatory parameters
	return result;
}
function f_cONLength(CON_MSG loc_msg)return integer {
	var integer result:=0;
	result := result + 4; //mandatory parameters