LibIms_Templates.ttcn 99.1 KB
Newer Older
                expires	:= m_Expires_600000
            },
            messageBody := p_mb
        }	
rennoch's avatar
rennoch committed
	
	template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId, 
		CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact)  modifies m_SUBSCRIBE_Request_Base :=
	{
		requestLine	:=
		{
			method := SUBSCRIBE_E,
			requestUri := p_requestUri
		},
		msgHeader :=
		{	
			contact	:= p_contact,
			cSeq	:= {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
			event	:= m_Event_reg,
			expires	:= m_Expires_600000
		}
	}
	
	template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId, 
		CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event)  modifies m_SUBSCRIBE_Request_Base :=
	{
		requestLine	:=
		{
			method := SUBSCRIBE_E,
			requestUri := p_requestUri
		},
		msgHeader :=
		{	
			contact	:= p_contact,
			cSeq	:= {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
			event	:= p_event,
			expires	:= m_Expires_600000
		}
	}
	template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
rennoch's avatar
rennoch committed
	{
		msgHeader :=
		{	
			fromField := p_from
		}
	}
}//end group request_send
 
group request_receive {
	
	template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
		modifies mw_ACK_Request_Base
		:=
		{
		  msgHeader := {  pAccessNetworkInfo := omit}
		}

	template ACK_Request mw_ACK_Request_PchargingVector	(template CallId p_callId, template PChargingVector p_pChargingVector)
		modifies mw_ACK_Request_Base
		:=
		{
		  msgHeader := {  pChargingVector := p_pChargingVector}
		}
		
	template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies  mw_BYE_Request_Base
	  :=
	  {
		msgHeader := {pChargingFunctionAddresses := omit,
			          pChargingVector := omit}
	  }
		
	template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies  mw_BYE_Request_Base
	  :=
	  {
		msgHeader := {pChargingVector := p_pChargingVector,
					  via := p_via}
	  }
		  
	template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {pChargingFunctionAddresses := omit}
	  }
	template INVITE_Request mw_INVITE_Request_PChargingFunction modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {pChargingFunctionAddresses := ?}
	  }	 
	   
	template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {pAssertedID := p_pAssertedID,
					  pPreferredID := omit
					 }
	  }
	  
     template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
       :=
       {
      msgHeader := {pAssertedID := p_pAssertedID,
					acceptContact := p_acceptContact
          }
       }
   
	template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {recordRoute := p_recordRoute,
					  via := p_via}
	  }

	template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {route := p_route}
	  }
	  
	template INVITE_Request mw_INVITE_Request_require (
		template Require p_require
	) modifies  mw_INVITE_Request_Base := {
		msgHeader := { require := p_require }
	}
	  
poglitsch's avatar
poglitsch committed
	template INVITE_Request mw_INVITE_Request_supported (
		template Supported p_supported
	) modifies  mw_INVITE_Request_Base := {
		msgHeader := { supported := p_supported }
	}
	  
	template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {sessionExpires := p_sessionExpires}
	  }
	  
	template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies  mw_INVITE_Request_Base
	:=
	{
		msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
	}
	  
	template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {
			pChargingVector := p_pChargingVector,
			recordRoute := p_recordRoute,
			route := p_route,
			via := p_via
		}
	  }
	template INVITE_Request mw_INVITE_Request_IMS_requestLine(template PChargingVector p_pChargingVector,
						  template RecordRoute p_recordRoute,
						  template Route p_route, template Via p_via, template SipUrl p_requestUri)
	modifies mw_INVITE_Request_Base := {
		requestLine	:=
		{
			requestUri := p_requestUri
		},
		msgHeader := {
			pChargingVector := p_pChargingVector,
			recordRoute := p_recordRoute,
			route := p_route,
			via := p_via
		}
	}
	
	template INVITE_Request mw_INVITE_Request_IMS_PAsserted_noPPreferred(template PChargingVector p_pChargingVector,
								template RecordRoute p_recordRoute,
								template Route p_route, template Via p_via, template SipUrl p_requestUri, template PAssertedID p_pAssertedID)
	modifies mw_INVITE_Request_Base := {
		msgHeader := {pAssertedID := p_pAssertedID, pPreferredID := omit}
	}
	 
	template INVITE_Request mw_INVITE_Request_IMS_mb (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies  mw_INVITE_Request_Base
	:=
	{
		msgHeader := {
			pChargingVector := p_pChargingVector,
			recordRoute := p_recordRoute,
			route := p_route,
			via := p_via
		},
		messageBody := ?
	}
	  
	template INVITE_Request mw_INVITE_Request_IMS_cug (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template Cug p_cug ) modifies  mw_INVITE_Request_Base
	:=
	{
		msgHeader := {
			pChargingVector := p_pChargingVector,
			recordRoute := p_recordRoute,
			route := p_route,
			via := p_via
		},
		messageBody := (mw_MBody_XML(mw_XmlBody_CUG(p_cug)),
						mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug)))
	}
	  
	template INVITE_Request mw_INVITE_Request_IMS_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies  mw_INVITE_Request_Base
	:=
	{
		msgHeader := {
			pChargingVector := p_pChargingVector,
			recordRoute := p_recordRoute,
			route := p_route,
			via := p_via
		},
		messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
						mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
	}

	/*
	 * @desc Await INVITE using topology hiding
	 */
	template INVITE_Request mw_INVITE_Request_TH modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {	pChargingFunctionAddresses := omit,
						pChargingVector := omit}
	  }

	/*
	 * 
	 * @desc Await INVITE without PAsserted and Privacy
	 */
	template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
	  modifies  mw_INVITE_Request_Base
	  :=
	  {
		msgHeader := {  fromField := p_from,
						pAssertedID := omit,
						pPreferredID := omit}
	  }


	/*
	 * 
	 * @desc Await INVITE with PAsserted and Privacy
	 */
	template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
			modifies  mw_INVITE_Request_Base
			:=
			{
		msgHeader := {
			fromField := p_from,
			pAssertedID := p_pAssertedID,
			privacy := p_privacy}
		}
			
     /*
      * 
      * @desc Await INVITE with PAsserted and Privacy
      */
     template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
       modifies  mw_INVITE_Request_Base
       :=
       {
      msgHeader := {
      	  fromField := p_from,
          pAssertedID := p_pAssertedID,
          privacy := p_privacy ifpresent}
       }
rennoch's avatar
rennoch committed

     /*
      * 
      * @desc Await INVITE with PAsserted and Privacy
      */
     template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
       modifies  mw_INVITE_Request_Base
       :=
       {
      msgHeader := {
          historyInfo := p_historyInfo}
       }
poglitsch's avatar
poglitsch committed
	template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE	
		modifies mw_MESSAGE_Request_Base
		:=
		{
		  msgHeader := {  pChargingFunctionAddresses := omit,
				          pChargingVector := omit}
		}
	  
poglitsch's avatar
poglitsch committed
	template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS	
		modifies mw_MESSAGE_Request_Base
		:=
		{
		  msgHeader := {  pChargingFunctionAddresses := omit,
						  pChargingVector := omit}
		}	
		  
	template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
		:=
	  	{
		  msgHeader := {pAssertedID := p_pAssertedID,
			 		    pPreferredID := omit
					   }
	    }

poglitsch's avatar
poglitsch committed
	template MESSAGE_Request mw_MESSAGE_Request_PchargingVector	(template charstring p_id, template charstring p_paramValue)
		modifies mw_MESSAGE_Request_Base
		:=
		{
		  msgHeader := {  pChargingVector := mw_pChargingVector(p_id,p_paramValue)}
		}
	  
poglitsch's avatar
poglitsch committed
	template MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo	
		modifies mw_MESSAGE_Request_Base
		:=
		{
		  msgHeader := {  pAccessNetworkInfo := omit}
		}

poglitsch's avatar
poglitsch committed
	template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization	
		modifies mw_MESSAGE_Request_Base
		:=
		{
		  msgHeader := {  pMediaAuthorization := omit}
		}
		
	template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
	{
		msgHeader := {  pChargingVector := p_pChargingVector}
	}

	template REGISTER_Request mw_REGISTER_Request_IMS	(template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
		modifies mw_REGISTER_Request_Base
		:=
		{
		  msgHeader := {  authorization := ?,
		  				  path := p_Path,
						  pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
						  pVisitedNetworkID := p_pVisitedNetworkID,
						  require := mw_require_path,
					      securityClient := omit,
						  securityVerify := omit
						  }
		}
	  


	template REGISTER_Request mw_REGISTER_authorizedRequest_IMS	(template Authorization p_authorization)
		modifies mw_REGISTER_Request_Base
		:=
		{
		  msgHeader := {  authorization := p_authorization
						  }
		}
		
	template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS	(template Authorization p_authorization)
		modifies mw_REGISTER_Request_Base
		:=
		{
		  msgHeader := {  authorization := p_authorization,
						  securityClient := omit
						  }
		}
	template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
		modifies mw_REGISTER_Request_Base
		:=
		{
		  msgHeader := {  securityVerify := omit,
						  securityClient := omit
						  }
		}
		
	template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS	
		modifies mw_REGISTER_Request_Base
		:=
		{
		  msgHeader := {  authorization := ?
	template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
		template From p_from, 
		template To p_to, 
		template PAssertedID p_pAssertedID, 
		template PChargingVector p_pChargingVector
	)  modifies mw_SUBSCRIBE_Request_Base := {
		requestLine	:=
		{
			method := SUBSCRIBE_E
		},
		msgHeader :=
		{	fromField := p_from,
			toField := p_to,
			event	:= m_Event_reg,
			pAccessNetworkInfo := *,
			pChargingVector := p_pChargingVector
		}
	}
rennoch's avatar
rennoch committed
	template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
	
	template NOTIFY_Request mw_NOTIFY_Request(
		template charstring p_state,
		template charstring p_contentType,
		template MessageBody p_mb
	) modifies mw_NOTIFY_Request_Base := {
		msgHeader :=
		{
			subscriptionState := mw_subscriptionState(p_state),
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  p_contentType},
			event := p_event
		},
		messageBody := p_mb
	}

}//end group request_receive
group response_send
{
	template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			  From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
		{
			msgHeader :=
			{
				contact		:= p_contact,
				maxForwards := omit
			}
		}

	template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) 
		modifies m_Response_Base:=
	{
		msgHeader :=
		{
			//contact		:= p_contact,
			maxForwards := omit//,
			//recordRoute := p_recordRoute
		}
	}	
	
	template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact //mandatory field due to 24 229 rel 7.9
			//maxForwards := omit,
			//rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}
	
poglitsch's avatar
poglitsch committed
	template Response m_Response_18XonINVITE_AlertInfo (
		StatusLine p_statusLine, 
		CallId p_callId, 
		CSeq p_cSeq,
		From p_from, 
		To p_to, 
		Via p_via, 
		AlertInfo p_alertInfo
	) modifies m_Response_Base:= {
		msgHeader :=
		{
			alertInfo	:= p_alertInfo
		}
	}
	
	template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			require		:= p_require,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		},
		messageBody := p_mb
	}
	
	template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}

	
     template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
        From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
     {
      msgHeader :=
      {
       contact		:= p_contact,
	   historyInfo	:= p_historyInfo,
       rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
      }
     }
 
	template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
			pChargingVector := p_pChargingVector

		}
	}

     template Response m_Response_18XonINVITE_pEearlyMedia (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
        From p_from, To p_to, Via p_via, template PEarlyMedia p_pEarlyMedia ) modifies m_Response_Base:=
     {
      msgHeader :=
      {
		pEarlyMedia := p_pEarlyMedia
      }
     }


	template Response m_Response_18XonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			pPreferredID := p_pPreferredID,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}	


	template Response m_Response_18XonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			pAssertedID := p_pAssertedID,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}
rennoch's avatar
rennoch committed
	template Response m_Response_18XonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			pAssertedID := p_pAssertedID,
			privacy := p_privacy,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}
	
	template Response m_Response_18XonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			privacy := p_privacy,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}
rennoch's avatar
rennoch committed

	
	template Response m_Response_18XonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			supported := p_supported,
			privacy := p_privacy,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}
	}
			
	template Response m_Response_18XonINVITE_recordRoute_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999},//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
			recordRoute := p_recordRoute//for INVITE response
		}
	}
	
poglitsch's avatar
poglitsch committed
	template Response m_Response_18XonINVITE_Require (
		StatusLine p_statusLine, 
		CallId p_callId, 
		CSeq p_cSeq,
		From p_from, 
		To p_to, 
		Via p_via, 
		Contact p_contact,
		Require p_require
	) modifies m_Response_Base:= {
		msgHeader :=
		{
			require := p_require
		}
	}
	
	template Response m_Response_18XonINVITE_Require_ifpresent (
		StatusLine p_statusLine, 
		CallId p_callId, 
		CSeq p_cSeq,
		From p_from, 
		To p_to, 
		Via p_via, 
		Contact p_contact,
		Require p_require
	) modifies m_Response_Base:= {
		msgHeader :=
		{
			require := p_require
		}
	}	
	
	template Response m_Response_18XonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, template charstring p_U2UData) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			userToUser := m_UserToUserData(valueof(p_U2UData))
		}
	template Response m_Response_18XonINVITE_Xml (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_xmlAplication},
			maxForwards := omit,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		},
		messageBody := p_mb
	}	
	
	template Response m_Response_18XonINVITE_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		},
		messageBody := p_mb
poglitsch's avatar
poglitsch committed
	}
	
	template Response m_Response_18XonINVITE_require_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, Require p_require, template MessageBody p_mb ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			require 	:= p_require,
			rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		},
		messageBody := p_mb
	}		
	
	template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb) 
		modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}
	
	template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb) 
				modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			historyInfo := p_historyInfo,
			maxForwards := omit,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}
	
	template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb) 
				modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_mimeMultipart},
			maxForwards := omit,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}
	
	template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb) 
		  modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}

	template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb, template Contact p_contact, template PChargingVector p_pChargingVector ) modifies m_Response_mbody :=
			contact := p_contact,
			pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
			pChargingVector := p_pChargingVector

		}
	}
	
	template Response m_Response_2XXonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			pPreferredID := p_pPreferredID,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}	

	
	template Response m_Response_2XXonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			pAssertedID := p_pAssertedID,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}	

rennoch's avatar
rennoch committed
	template Response m_Response_2XXonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			pAssertedID := p_pAssertedID,
			privacy := p_privacy,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}	

	template Response m_Response_2XXonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			supported := p_supported,
			privacy := p_privacy,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}	
		
	template Response m_Response_2XXonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			privacy := p_privacy,
			recordRoute := p_recordRoute//for INVITE response
		},
		messageBody := p_mb
	}			
	
	template Response m_Response_2xxonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb, template charstring p_U2UData) 
		modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			recordRoute := p_recordRoute,//for INVITE response
			userToUser := m_UserToUserData(valueof(p_U2UData))
		},
		messageBody := p_mb
	}
	template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url, SipUrl p_passociated_uri) 
		  modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			serviceRoute := {fieldName:=SERVICE_ROUTE_E,
			routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}},
			pAssociatedURI := m_pAssociatedURI({displayName:=omit,addrSpec:=p_passociated_uri})		// PAssociatedURI RFC3455
			
		}
	}
	

	template Response m_Response_2xxonSUBSCRIBE_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact) 
		  modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact
		}
	}
	

	template Response m_Response_2xxonSUBSCRIBE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, Contact p_contact) 
		  modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact
		}
	}

	template Response m_Response_onMESSAGE_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via, Contact p_contact) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact
	  	}
	}

	template Response m_Response_2xxonMESSAGE_PAccessNetwInfo_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a
	  	}
	}

	template Response m_Response_2xxonMESSAGE_PCharging_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
			pChargingVector := p_pChargingVector
	  	}
	}


	template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
			pChargingVector := p_pChargingVector
	  	}
	}
	
	template Response m_Response_2xxonMESSAGE_PMediaAuth_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			pMediaAuthorization := m_pMediaAuthorization_fixedValue
	  	}
	}
	
	template Response m_Response_2xxonMESSAGE_pPreferredID_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via, template PPreferredID p_pPreferredID) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			pPreferredID := p_pPreferredID
		}
	}
	
	template Response m_Response_2xxonUPDATE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
	From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb) 
	modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			maxForwards := omit,
			recordRoute := p_recordRoute
		},
		messageBody := p_mb
	}

	
	template Response m_Response_3XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit
		}
	}
		
	
	template Response m_Response_4XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit
		}
	}
		
	template Response m_Response_4XXonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
			  From p_from, To p_to, Via p_via, template Contact p_contact ) modifies m_Response_Base:=
	{
		msgHeader :=
		{
			contact		:= p_contact,
			maxForwards := omit
		}
	}
	
	template Response m_Response_onINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
				From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
	{