LibIms_Templates.ttcn 103 KB
Newer Older
rennoch's avatar
rennoch committed
				diversion_reason_selection_criteria := omit,
rennoch's avatar
rennoch committed
			},
			comm_div_ntfy_trigger_criteria := omit,
			comm_div_info_selection_criteria := omit,
rennoch's avatar
rennoch committed
		},
		comm_div_ntfy_info := 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
    ) :=
    {
        sequence := {
            {
                list := {
                    name := omit,
                    anyAttributes := omit,
                    display_name := omit,
                    sequence_list := {
                        {
                            choice := {
                                entry := p_user1
                            }
                        },
                        {
                            choice := {
                                entry := p_user2
                            }
                        }
                    },
                    elem := 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,
        elem := 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 := ?, 
                elem := *
            }
        },
        elem := *
    }
//	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:={}
	
	template 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,
	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 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,
		media:={p_mediastatus},// optional, 
		call_info:=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,
		endpoint:={p_endpoint},// optional,
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,
rennoch's avatar
rennoch committed
		    user:={p_user},
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,
juvancic's avatar
juvancic committed
			user:={p_user1,p_user2},
	template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
juvancic's avatar
juvancic committed
    	anyAttributes:=omit,//m_emptyAnyAttributes,
    	user_count:=p_nUsers,
    	active:=p_active,
    	locked:=p_locked,
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,
        elem := 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 := ?,
		 user := {
			 {
				 entity := *,
				 state := *,
				 anyAttributes := *,
				 display_text := *,
				 associated_aors := *,
				 roles := *,
				 languages := *,
				 cascaded_focus := *,
				 endpoint := {
					 {
						 entity := *,
						 state := *,
						 anyAttributes := ?,
						 display_text := *,
						 referred := *,
						 status := connected,
						 joining_method := dialed_in,
						 joining_info := *,
						 disconnection_method := *,
						 disconnection_info := *,
						 media := *,
						 call_info := *,
poglitsch's avatar
poglitsch committed
	 },
	 sidebars_by_ref := *,
	 sidebars_by_val := *,
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,
		Via p_via, template Route p_route, integer 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_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 PRACK_Request m_PRACK_Request_sdp (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
		  From p_from, To p_to, Via p_via, RAck p_RAck, template MessageBody p_mb) 
		  modifies m_PRACK_Request_Base :=
		{
			requestLine	:=
			{
				requestUri := p_requestUri
			},
			msgHeader :=
			{
				callId := p_callId,
				contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
				contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_sdpAplication},
				cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PRACK"},
				fromField := p_from,
				rAck := p_RAck,
				toField := p_to,
				via := p_via
			},
			messageBody := p_mb
		}
		
	template PUBLISH_Request m_PUBLISH_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, template Event p_event, template RAck p_RAck, template MessageBody p_mb,template Route p_route) 
			modifies m_PUBLISH_Request_Base :=
	{
		requestLine	:=
		{
			requestUri := p_requestUri
		},
		msgHeader :=
		{
			callId := p_callId,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_plainText/*c_sdpAplication*/},
			cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PUBLISH"},
			event := p_event, 
			fromField := p_from,
			route := p_route,
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
			toField := p_to,
			via := p_via
		},
		messageBody := p_mb
	}
	
	template PUBLISH_Request m_PUBLISH_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
			From p_from, To p_to, Via p_via, template Event p_event, template RAck p_RAck, template MessageBody p_mb,
			template Route p_route,template RecordRoute p_recordRoute,template PChargingVector p_pChargingVector) 
			modifies m_PUBLISH_Request_Base :=
	{
		requestLine	:=
		{
			requestUri := p_requestUri
		},
		msgHeader :=
		{
			callId := p_callId,
			contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_plainText/*c_sdpAplication*/},
			cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PUBLISH"},
			event := p_event, 
			fromField := p_from,
			route := p_route,
			recordRoute:= p_recordRoute,
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
			pChargingVector := p_pChargingVector,
			toField := p_to,
			via := p_via
		},
		messageBody := p_mb
	}
	
juvancic's avatar
juvancic committed
	/*
		* 
		* @desc REFER message exchanged at Mw
		*
		*/	
	template REFER_Request m_REFER_Request_IMS(
		SipUrl p_requestUri, 
		CallId p_callId, 
		CSeq p_cSeq, 
		Contact p_contact, 
		From p_from, 
		template To p_to,
		Via p_via,  
		template ReferTo p_referTo, 
		template ReferredBy p_referredBy, 
		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_REFER_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
juvancic's avatar
juvancic committed
	}