LibIms_Templates.ttcn 108 KB
Newer Older
    						informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
    		bCoctet4 	:= {transferMode := bit2str('00'B),							//Coding standard = CCITT standardized coding
    						informationTransferRate := bit2str('10000'B)},			//Information transfer rate = 64 kbit/s
			bCoctet4_1 	:= * ,
			bCoctet5  	:= * ,
			bCoctet5a  	:= * ,
			bCoctet5bV110  := * ,
			bCoctet5bV120  := * ,
			bCoctet5c 	:= * ,
			bCoctet5d 	:= * ,
			bCoctet6  	:= * ,
			bCoctet7  	:= * ,
			bCoctet7a  	:= * ,
			bCoctet7b  	:= * 
	}	

	template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
			progressOctet3 := p_ProgressOctet3Type,
			progressOctet4 := p_ProgressOctet4Type
	}
	
	template LowLayerCompatibilityType mw_LowLayerCompatibilityType 
		(template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
			lLOctet3 := p_LLOctet3,
			lLOctet3a := * ,
			lLOctet4 := p_LLOctet4,
			lLOctet4_1 := * ,
			lLOctet5 := * ,
			lLOctet5a := * ,
			lLOctet5bV110 := * ,
			lLOctet5bV120 := * ,
			lLOctet5c := * ,
			lLOctet5d := * ,
			lLOctet6 := * ,
			lLOctet6aHDLC := * ,
			lLOctet6aUserSpecific := * ,
			lLOctet6b := * ,
			lLOctet7 := p_LLOctet7,
			lLOctet7aUserSpecific := * ,
			lLOctet7aX25 := * ,
			lLOctet7bX25 := * ,
			lLOctet7c := * ,
			lLOctet7aTR9577 := * ,
			lLOctet7bTR9577 := * 
	}
	
	template HighLayerCompatibilityType mw_HighLayerCompatibilityType 
		(template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
			hLOctet3 := p_HLOctet3,
			hLOctet4 := p_HLOctet4,
			hLOctet4aMaintenance := *,
			hLOctet4Audio := *
rennoch's avatar
rennoch committed
} //end group PSTNTemplates		

group CDIVNTemplates {
	
	/* general CDIVN subscription */
	template Comm_div_info_type m_CDIVN_sub := {
		entity := "comm-div-info",
rennoch's avatar
rennoch committed
		comm_div_subs_info := {
			anyAttributes := omit,
			comm_div_selection_criteria := {
juvancic's avatar
juvancic committed
				anyAttributes := omit,
rennoch's avatar
rennoch committed
				originating_user_selection_criteria := omit,
				diverting_user_selection_criteria := omit,
				diverted_to_user_selection_criteria := omit,
				diversion_time_selection_criteria := omit,
				diversion_reason_selection_criteria := omit,
schmitting's avatar
schmitting committed
				elem_list := omit
rennoch's avatar
rennoch committed
			},
			comm_div_ntfy_trigger_criteria := omit,
			comm_div_info_selection_criteria := omit,
schmitting's avatar
schmitting committed
			elem_list := omit
rennoch's avatar
rennoch committed
		},
		comm_div_ntfy_info := omit,
schmitting's avatar
schmitting committed
		elem_list := omit
rennoch's avatar
rennoch committed

} // end grouup CDIVNTemplates
poglitsch's avatar
poglitsch committed

group ResourceListsTemplates {
	

    template Resource_lists m_ResourceList_2Users(
        EntryType p_user1, 
        EntryType p_user2
    ) :=
    {
schmitting's avatar
schmitting committed
        sequence_list := {
            {
                list := {
                    name := omit,
                    anyAttributes := omit,
                    display_name := omit,
                    sequence_list := {
                        {
                            choice := {
                                entry := p_user1
                            }
                        },
                        {
                            choice := {
                                entry := p_user2
                            }
                        }
                    },
schmitting's avatar
schmitting committed
                    elem_list := omit
poglitsch's avatar
poglitsch committed
	template EntryType m_EntryUser(SipUrl p_user) := {
poglitsch's avatar
poglitsch committed
		uri :=
			p_user.userInfo.userOrTelephoneSubscriber & "@" &
			p_user.hostPort.host,
		anyAttributes := omit,
        display_name := omit,
schmitting's avatar
schmitting committed
        elem_list := omit
poglitsch's avatar
poglitsch committed
}// end grouup ResourceListsTemplates
poglitsch's avatar
poglitsch committed
group Ims3gppTemplates {
    
    //TODO:check commented and below templates when test will be validated
    template TIMS3GPP mw_Ims_3gpp_CW := {
        version := 1.0,
        anyAttributes := ?,
        choice := {
            alternative_service := {
                anyAttributes := *, 
                type_ := ?, 
                reason := ?, 
schmitting's avatar
schmitting committed
                elem_list := *
schmitting's avatar
schmitting committed
        elem_list := *
    }
//	template TIMS3GPP mw_Ims_3gpp_CW := {
//		version := 1.0,
//		anyAttributes := ?,
//		choice_1 := {
//			alternative_service := {
//				anyAttributes := ?,
//				type_ := ?,
//				reason := ?,
//				action_ := {
//					anyAttributes := ?,
//					emergency_registration := *,
//					call_waiting_indication := {},
//					any_1 := *
//				},
//				any_1 := *
//			}
//		},
//		any_1 := *
//	}
poglitsch's avatar
poglitsch committed
} // end group Ims3gpp

poglitsch's avatar
poglitsch committed
group CONFTemplates {
	template booleanXSD boolXSD_true:={bool:=true}
	template booleanXSD boolXSD_false:={bool:=false}
rennoch's avatar
rennoch committed
	
	template anyAttributes m_emptyAnyAttributes:={}
	
schmitting's avatar
schmitting committed
	template urn_ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(template Media_status_type p_status):= {
juvancic's avatar
juvancic committed
		anyAttributes:=omit,//m_emptyAnyAttributes,
		display_text :=omit,
		type_ :=omit,
		label_ :=omit,
		src_id:=omit,
		status:= p_status,
schmitting's avatar
schmitting committed
		elem_list:=omit
schmitting's avatar
schmitting committed
	template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template urn_ietf_params_xml_ns_conference_info.Media_type p_mediastatus):= {
		entity:=p_Uri,
		state:=full,
juvancic's avatar
juvancic committed
		anyAttributes:=omit,//m_emptyAnyAttributes,
		display_text:=omit,
		referred:=omit,
		status:=p_epStatus,
juvancic's avatar
juvancic committed
		joining_method:=p_joinMethod,
		joining_info:=omit,
		disconnection_method:=omit,
		disconnection_info:=omit,
schmitting's avatar
schmitting committed
		media_list:={p_mediastatus},// optional, 
		call_info:=omit,
schmitting's avatar
schmitting committed
		elem_list:=omit
	}
	
	template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
		entity:=p_Uri,
		state:=full,
juvancic's avatar
juvancic committed
		anyAttributes:=omit,//m_emptyAnyAttributes,
		display_text:=omit,
		associated_aors:=omit,
		roles:=omit,
		languages :=omit,
		cascaded_focus :=omit,
schmitting's avatar
schmitting committed
		endpoint_list:={p_endpoint},// optional,
		elem_list:=omit
rennoch's avatar
rennoch committed
	template Users_type m_users_1user_full(template User_type p_user):={
			state:=full,
juvancic's avatar
juvancic committed
		    anyAttributes := omit,//m_emptyAnyAttributes,
schmitting's avatar
schmitting committed
		    user_list:={p_user},
		    elem_list:=omit
juvancic's avatar
juvancic committed
	template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
			state:=full,
juvancic's avatar
juvancic committed
			anyAttributes := omit,//m_emptyAnyAttributes,
schmitting's avatar
schmitting committed
			user_list:={p_user1,p_user2},
			elem_list:=omit
	template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template XSDAUX.booleanXSD p_active, template XSDAUX.booleanXSD p_locked) := {
juvancic's avatar
juvancic committed
    	anyAttributes:=omit,//m_emptyAnyAttributes,
    	user_count:=p_nUsers,
    	active:=p_active,
    	locked:=p_locked,
schmitting's avatar
schmitting committed
    	elem_list:= omit
rennoch's avatar
rennoch committed
	}

    template Conference_type m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
        entity := p_cUri,
        state := full,
        version := 1,
        anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
        conference_description := omit,
        host_info := omit,
        conference_state := p_cState,
        users := p_users,
        sidebars_by_ref := omit,
        sidebars_by_val := omit,
schmitting's avatar
schmitting committed
        elem_list := omit
rennoch's avatar
rennoch committed
	
 template Conference_type mw_conferenceInfo_active := {
poglitsch's avatar
poglitsch committed
	 entity := ?,
	 state := *,
	 version := *,
	 anyAttributes := ?,
	 conference_description := *,
	 host_info := *,
	 conference_state := ?,
	 users := {
		 state := ?,
		 anyAttributes := ?,
schmitting's avatar
schmitting committed
		 user_list := {
poglitsch's avatar
poglitsch committed
			 {
				 entity := *,
				 state := *,
				 anyAttributes := *,
				 display_text := *,
				 associated_aors := *,
				 roles := *,
				 languages := *,
				 cascaded_focus := *,
schmitting's avatar
schmitting committed
				 endpoint_list := {
poglitsch's avatar
poglitsch committed
					 {
						 entity := *,
						 state := *,
						 anyAttributes := ?,
						 display_text := *,
						 referred := *,
						 status := connected,
						 joining_method := dialed_in,
						 joining_info := *,
						 disconnection_method := *,
						 disconnection_info := *,
schmitting's avatar
schmitting committed
						 media_list := *,
poglitsch's avatar
poglitsch committed
						 call_info := *,
schmitting's avatar
schmitting committed
						 elem_list := *
schmitting's avatar
schmitting committed
				 elem_list := *
schmitting's avatar
schmitting committed
		 elem_list := omit
poglitsch's avatar
poglitsch committed
	 },
	 sidebars_by_ref := *,
	 sidebars_by_val := *,
schmitting's avatar
schmitting committed
	 elem_list := *
rennoch's avatar
rennoch committed
	
} // end group MessageBodyTemplates
		
group MessageTemplates {

group modified_templates {

group request_send {
		
		
	template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
		From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
	{
		msgHeader :=
		{
			route := p_route
		}
	}
	
	template BYE_Request m_BYE_Request_IMS
		( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
		Via p_via, template Route p_route)
		modifies m_BYE_Request_Base
		:=
		{
		  msgHeader :=
		  {
			route := p_route 
		  }
		}
	
	template BYE_Request m_BYE_Request_Reason_IMS
		( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
schmitting's avatar
schmitting committed
		Via p_via, template Route p_route, charstring p_cause)
		modifies m_BYE_Request_Base
		:=
		{
			msgHeader :=
			{
				reason := mw_Reason(p_cause),
				route := p_route
			}
		}
	
	template BYE_Request m_BYE_Request_UserToUser_IMS
		( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
		Via p_via, template Route p_route, template charstring p_U2UData)
		modifies m_BYE_Request_Base
		:=
		{
			msgHeader :=
			{
				route := p_route,
				userToUser := m_UserToUserData(p_U2UData)
			}
		}
	
	template BYE_Request m_BYE_Request_UE
		( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
		Via p_via, template Route p_route)
		modifies m_BYE_Request_Base
		:=
		{
		  msgHeader :=
		  {
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
			//securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
			route := p_route 
		  }
		}
	
	template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, 
		Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
	{
		msgHeader :=
		{
			route := p_route
		}
	}
	
	template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, 
		Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
	{
		msgHeader :=
		{
			reason := m_Reason(p_cause),
			route := p_route
		}
	}
	
	template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, 
		Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
	{
		msgHeader :=
		{
			route := p_route
		}
	}
	
	/*
		* 
		* @desc INFO message
	template INFO_Request m_INFO_Request_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, template MessageBody p_mb )
	modifies m_INFO_Request_Base
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication}
		},
		messageBody := p_mb
	}			
pintar's avatar
pintar committed
	
	/*
	* 
	* @desc INFO message
	*
	*/	
pintar's avatar
pintar committed
	template INFO_Request m_INFO_Request_Mime_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, template MessageBody p_mb )
	modifies m_INFO_Request_Base
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_mimeMultipart}
		},
		messageBody := p_mb
pintar's avatar
pintar committed
	}			
	
	template INFO_Request m_INFO_Request_Xml_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, template MessageBody p_mb )
	modifies m_INFO_Request_Base
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_xmlAplication}
		},
		messageBody := p_mb
pintar's avatar
pintar committed
	}	
	
	template INVITE_Request m_INVITE_Request_UE
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
	  Via p_via, Contact p_contact, template Require p_require,
	template Route p_route,  template Supported p_supported, template MessageBody p_mb )
	modifies m_INVITE_Request_Base
	:=
	{
	  msgHeader :=
	  {
		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
		pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
		require := p_require,
		route := p_route,
		//securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation 
		supported := p_supported
	  },
	  messageBody := p_mb
poglitsch's avatar
poglitsch committed
    template INVITE_Request m_INVITE_Request_noBody_UE
        (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
          Via p_via, Contact p_contact, template Require p_require,
        template Route p_route,  template Supported p_supported )
        modifies m_INVITE_Request_Base
        :=
        {
          msgHeader :=
          {
            pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
            require := p_require,
            route := p_route,
            //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation 
            supported := p_supported
          }
        }
	
poglitsch's avatar
poglitsch committed
		template INVITE_Request m_INVITE_Request_Allow_UE
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
	  Via p_via, Contact p_contact, template Require p_require,
juvancic's avatar
juvancic committed
	template Route p_route,  template Supported p_supported, template MessageBody p_mb, template LibSip_SIPTypesAndValues.Allow p_allow)
poglitsch's avatar
poglitsch committed
	modifies m_INVITE_Request_UE
	:=
	{
	  msgHeader :=
	  {
	  	allow := p_allow
	  }
	}
poglitsch's avatar
poglitsch committed
	
    template INVITE_Request m_INVITE_Request_noBody_Allow_UE
        (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
          Via p_via, Contact p_contact, template Require p_require,
        template Route p_route,  template Supported p_supported, template LibSip_SIPTypesAndValues.Allow p_allow)
        modifies m_INVITE_Request_noBody_UE
        :=
        {
          msgHeader :=
          {
            allow := p_allow
          }
        }
poglitsch's avatar
poglitsch committed
		
	 * 
	 * @desc INVITE message exchanged at Mw
	template INVITE_Request m_INVITE_Request_IMS (
		SipUrl p_requestUri, 
		CallId p_callId, 
		CSeq p_cSeq, 
		From p_from, 
		To p_to,
	  	Via p_via, 
	  	Contact p_contact, 
	  	template Require p_require,
		template Route p_route, 
		template RecordRoute p_recordRoute,  
		template Supported p_supported, 
		template PChargingVector p_pChargingVector, 
		template MessageBody p_mb 
	) modifies m_INVITE_Request_Base := {
	  msgHeader := {
		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
		require := p_require,
		pChargingVector := p_pChargingVector,
		recordRoute := p_recordRoute,
		route := p_route,
		supported := p_supported
	  },
	  messageBody := p_mb
	}	
	
	/*
	* 
	* @desc INVITE message exchanged at Mw
	*
	*/	
	template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, Contact p_contact, template Require p_require,
			template Route p_route, template RecordRoute p_recordRoute,  template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
			template HistoryInfo p_historyInfo)
	modifies m_INVITE_Request_IMS
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			historyInfo := p_historyInfo
		}
	}
	
	/*
	* 
	* @desc INVITE message exchanged at Mw
	*
	*/	
	template INVITE_Request m_INVITE_Request_Mime_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, Contact p_contact, template Require p_require,
	template Route p_route, template RecordRoute p_recordRoute,  template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
	modifies m_INVITE_Request_IMS
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_mimeMultipart}
		}
pintar's avatar
pintar committed
	}
		
    /*
     * 
     * @desc INVITE message exchanged at Mw
     *
     */	
    template INVITE_Request m_INVITE_Request_IMS_noBody
    (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
      Via p_via, Contact p_contact, template Require p_require,
    template Route p_route, template RecordRoute p_recordRoute,  template Supported p_supported, template PChargingVector p_pChargingVector)
    modifies m_INVITE_Request_Base
    :=
    {
      msgHeader :=
      {
        require := p_require,
        pChargingVector := p_pChargingVector,
        recordRoute := p_recordRoute,
        route := p_route,
        supported := p_supported
      }
    }			
pintar's avatar
pintar committed
	
	/*
	* 
	* @desc INVITE message exchanged at Mw
	*
	*/	
	template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, Contact p_contact, template Require p_require,
			template Route p_route, template RecordRoute p_recordRoute,  template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
			template PAssertedID p_pAssertedID, template Privacy p_privacy )
	modifies m_INVITE_Request_IMS
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_mimeMultipart},
			pAssertedID := p_pAssertedID,
			privacy := p_privacy
		}
	}
	
	/*
	* 
	* @desc INVITE message exchanged at Mw
	*
	*/	
	template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, Contact p_contact, template Require p_require,
	template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
	modifies m_INVITE_Request_Base
	:=
	{
		msgHeader :=
		{
    		acceptContact := p_acceptContact,
    		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
    		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
    		require := p_require,
    		pAssertedID := p_pAssertedID,
    		pChargingVector := p_pChargingVector,
    		recordRoute := p_recordRoute,
    		route := p_route,
    		supported := p_supported
		},
		messageBody := p_mb
	}	
	
	/*
	* 
	* @desc INVITE message exchanged at Mw
	*
	*/	
	template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, Contact p_contact, template Require p_require,
	template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
	modifies m_INVITE_Request_Base
	:=
	{
		msgHeader :=
		{
    		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
    		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
    		require := p_require,
    		pAssertedID := p_pAssertedID,
    		pChargingVector := p_pChargingVector,
    		privacy := p_privacy,
    		recordRoute := p_recordRoute,
    		route := p_route,
    		supported := p_supported
		},
		messageBody := p_mb
	}	

	/*
	 * 
	 * @desc INVITE message exchanged at Mw
	 *
	 */	
	template INVITE_Request m_INVITE_Request_PAssertedService_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
	  Via p_via, Contact p_contact, template Require p_require,
	template Route p_route,  template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
	modifies m_INVITE_Request_Base
	:=
	{
	  msgHeader :=
	  {
		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
		require := p_require,
		pChargingVector := p_pChargingVector,
		route := p_route,
		supported := p_supported,
		pAssertedService := p_pAssertedService
	  },
	  messageBody := p_mb
	}		
	
	/*
	 * 
	 * @desc INVITE message exchanged at Mw
	 *
	 */	
	template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
	  Via p_via, Contact p_contact, template Require p_require,
	template Route p_route, template RecordRoute p_recordRoute,  template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
	modifies m_INVITE_Request_Base
	:=
	{
	  msgHeader :=
	  {
		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
		require := p_require,
		pChargingVector := p_pChargingVector,
		pEarlyMedia := m_pEarlyMedia_sup, 
		recordRoute := p_recordRoute,
		route := p_route,
		supported := p_supported
	  },
	  messageBody := p_mb
	}	

	template INVITE_Request m_INVITE_Request_PPreferred_UE
		(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
		  Via p_via, Contact p_contact, template Require p_require,
		template Route p_route,  template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
		modifies m_INVITE_Request_UE
		:=
		{
		  msgHeader :=
		  {
			pPreferredID := p_pPreferredID
		  }
		}	

	template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
		(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
				Via p_via, Contact p_contact, template Require p_require,
		template Route p_route,  template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
		modifies m_INVITE_Request_UE
		:=
		{
				msgHeader :=
				{
			pPreferredID := p_pPreferredID,
			privacy := p_privacy
				}
		}

	template INVITE_Request m_INVITE_Request_SessionExpires_UE
		(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
		  Via p_via, Contact p_contact, template Require p_require,
		template Route p_route,  template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
		modifies m_INVITE_Request_Base
		:=
		{
		  msgHeader :=
		  {
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
			require := p_require,
			route := p_route,
			//securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation 
			supported := p_supported,
			sessionExpires := p_se
		  },
		  messageBody := p_mb
		}
	
	template INVITE_Request m_INVITE_Request_minSE_UE
		(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
		  Via p_via, Contact p_contact, template Require p_require,
		template Route p_route,  template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
		modifies m_INVITE_Request_Base
		:=
		{
		  msgHeader :=
		  {
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
			require := p_require,
			route := p_route,
			//securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation 
			supported := p_supported,
			minSE := p_minSE
		  },
		  messageBody := p_mb
		}
	
	/*
	 * 
	 * @desc INVITE message exchanged at Mw
	 *
	 */	
	template INVITE_Request m_INVITE_Request_minSE_IMS
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
	  Via p_via, Contact p_contact, template Require p_require,
	template Route p_route,  template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
	modifies m_INVITE_Request_Base
	:=
	{
	  msgHeader :=
	  {
		contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
		contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
		require := p_require,
		pChargingVector := p_pChargingVector,
		route := p_route,
		supported := p_supported,
			minSE := p_minSE
	  },
	  messageBody := p_mb
rennoch's avatar
rennoch committed
	}
		
	template INVITE_Request m_INVITE_Request_User2UserData_IMS
    (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
    		Via p_via, Contact p_contact, template Require p_require,
    template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
rennoch's avatar
rennoch committed
    modifies m_INVITE_Request_IMS
    :=
    {
    	msgHeader :=
    	{
    		userToUser := m_UserToUserData(valueof(p_U2UData))
    	}
    }
	
    template MESSAGE_Request m_MESSAGE_Request_MBody_UE
           (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
             Via p_via, template Require p_require,
           template Route p_route,  template Supported p_supported, template MessageBody p_messageBody)
           modifies m_MESSAGE_Request_Base
           :=
           {
             msgHeader :=
             {
                contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
                contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_plainText},
                pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
                require := p_require,
                route := p_route,
                //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation 
                supported := p_supported
             },
             messageBody := p_messageBody
    }
	template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
			(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			  Via p_via, template Require p_require,
			template Route p_route,  template Supported p_supported)
			modifies m_MESSAGE_Request_Base
			:=
			{
			  msgHeader :=
			  {
				pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
				require := p_require,
				route := p_route,
				supported := p_supported
			  },
			  messageBody := omit
			}
	
	template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
			(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			  Via p_via, template Require p_require,
			template Route p_route,  template Supported p_supported)
			modifies m_MESSAGE_Request_Base
			:=
			{
			  msgHeader :=
			  {
				pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
				pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
				pChargingVector := m_pChargingVector_origIoi_fixedValue(PX_IMS_SUT_UE1_HOME_DOMAIN),
				require := p_require,
				route := p_route,
				supported := p_supported
			  },
			  messageBody := omit
			}
	
	template MESSAGE_Request m_MESSAGE_Request_PCharging_IMS
			(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			  Via p_via, template Require p_require,
			template Route p_route,  template Supported p_supported, 
			template PChargingVector p_pChargingVector)
			modifies m_MESSAGE_Request_Base
			:=
			{
			  msgHeader :=
			  {
				pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
				pChargingVector := p_pChargingVector,
				require := p_require,
				route := p_route,
				supported := p_supported
			  },
			  messageBody := omit
			}

	template MESSAGE_Request m_MESSAGE_Request_PMediaAuth_UE
			(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			  Via p_via, template Require p_require,
			template Route p_route,  template Supported p_supported)
			modifies m_MESSAGE_Request_Base
			:=
			{
			  msgHeader :=
			  {
				pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
				pMediaAuthorization := m_pMediaAuthorization_fixedValue,
				require := p_require,
				route := p_route,
				supported := p_supported
			  },
			  messageBody := omit
			}

	template MESSAGE_Request m_MESSAGE_Request_PPreferred_UE
			(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			  Via p_via, template Require p_require,
			template Route p_route,  template Supported p_supported, template PPreferredID p_pPreferredID)
			modifies m_MESSAGE_Request_Base
			:=
			{
			  msgHeader :=
			  {
				pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
				pPreferredID := p_pPreferredID,
				require := p_require,
				route := p_route,
				supported := p_supported
			  },
			  messageBody := omit
			}
	
	template MESSAGE_Request m_MESSAGE_Request_1300Bytes_UE
			(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			  Via p_via, template Require p_require,
			template Route p_route,  template Supported p_supported)
			modifies m_MESSAGE_Request_Base
			:=
			{
			  msgHeader :=
			  {
				contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
				contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_plainText},
				pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
				require := p_require,
				route := p_route,
				//securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation 
				supported := p_supported
			  },
			  messageBody := m_MBody_longPlainText
	}
rennoch's avatar
rennoch committed
	
	template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference
rennoch's avatar
rennoch committed
	(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
			Via p_via, template MessageBody p_mb )
	modifies m_NOTIFY_Request_Base
	:=
	{
		msgHeader :=
		{
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_xmlAplication},
			event := {fieldName:=EVENT_E, eventType:="conference",eventParams:=omit},
			subscriptionState:={fieldName:=SUBSCRIPTION_STATE_E, subState:="active",substateParams:=omit},
			expires:={fieldName:=EXPIRES_E, deltaSec:="3600"}
rennoch's avatar
rennoch committed
		},
		messageBody := p_mb
	}
    template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_RegInfo
    (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
            Via p_via, Contact p_contact, template MessageBody p_mb )
    modifies m_NOTIFY_Request_Base
    :=
    {
        msgHeader :=
        {	
            contact := p_contact,
            contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
            contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_xmlreginfoAplication},
            event := m_Event_reg,
            subscriptionState:=m_SubscriptionState_active,
            expires:={fieldName:=EXPIRES_E, deltaSec:="3600"}