/* * @author STF 346, STF366, STF368, STF369 * @version $Id$ * @desc This module provides the types used by the test component * for SIP-IMS tests. Module become from STF306 and STF334-336 */ module LibIms_Templates { //LibCommon import from LibCommon_DataStrings all; //LibSip import from LibSip_SIPTypesAndValues all; import from LibSip_SDPTypes all; import from LibSip_Templates all; import from LibSip_Steps all; import from LibSip_PIXITS all; import from LibSip_XMLTypes all; import from XSDAUX all; //LibIms import from LibIms_SIPTypesAndValues all; import from LibIms_PIXITS all; template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+"; template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) := { displayName := *, addrSpec := { scheme := "sip:", userInfo := *, hostPort := {p_host, p_port}, urlParameters := *, headers := * } } template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}}; group Subfields{ template SemicolonParam_List mw_semicolonParams_realm (template charstring p_realm) := ?; //superset({"realm",p_realm},{"rand",?},{"autn",?},{"algorithm","AKAv1-MD5"},{"ik",?},{"ck",?}) // ERROR HERE! Superset operation must contain value list - no templates! template SemicolonParam_List m_semicolonParams_language (template charstring p_language):= {{"language",p_language}} template SemicolonParam_List mw_semicolonParams_language (template charstring p_language):= {{"language",p_language}} template SemicolonParam_List m_semicolonParams_isub (template charstring p_address):= {{"isub",p_address}} } group HeaderFieldTemplates{ template MinSE m_minSE(DeltaSec p_ds):= { fieldName := MIN_SE_E, deltaSec:=p_ds, minSeParam:=omit } template PathValue mw_pathvalue (template SipUrl p_sipUrl):= { nameAddr := {displayName := *, // optional charstring addrSpec := p_sipUrl // SipUrl }, rrParam := * } template Path m_path (SipUrl p_sipUrl):= { fieldName := PATH_E, pathValues := { {nameAddr := { displayName := omit, // optional charstring addrSpec := p_sipUrl // SipUrl }, rrParam := omit} } } template Path m_path_TS := { fieldName := PATH_E, pathValues := { {nameAddr := { displayName := omit, // optional charstring addrSpec := { scheme := "sip", userInfo := {userOrTelephoneSubscriber:="registrar"}, hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT}, urlParameters := omit, headers := omit}}, rrParam := omit} } } /* * @desc Path header field expectation with at least one path value * @param p_sipUrl value of the last element in the list of path values */ template Path mw_path (template SipUrl p_sipUrl):= { fieldName := PATH_E, pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl } template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a := { fieldName := P_ACCESS_NETWORK_INFO_E, accessType := "IEEE-802.11a", genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}} }; template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):= { fieldName := P_ASSERTED_SERVICE_E, pAssertedServiceValue := p_pAssertedServiceValue }; template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue := { fieldName := P_CHARGING_FUNCTION_ADDRESSES_E, chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy }; template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := p_chargeParams }; template PChargingVector m_pChargingVector_icid_TS := { fieldName := P_CHARGING_VECTOR_E, chargeParams := {{id:="icid-value", paramValue :="012345"}} }; template PChargingVector m_pChargingVector_fixedValue(charstring p_homeDomain) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := {{id:="icid-value", paramValue :="123abc;"}, {id:="icid-generated-at", paramValue :="192.1.1.10;"}, {id:="orig-ioi", paramValue := p_homeDomain}} }; template PChargingVector m_pChargingVector_fixedValue1(charstring p_homeDomain) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id:="icid-generated-at", paramValue :="192.1.1.10;"}, {id:="orig-ioi", paramValue := p_homeDomain}} }; template PChargingVector mw_pChargingVector(template charstring p_id, template charstring p_paramValue) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue}) }; template PMediaAuthorization m_pMediaAuthorization_fixedValue := { fieldName := P_MEDIA_AUTHORIZATION_E, pMediaAuthorizations := {"A"} // example }; template PEarlyMedia m_pEarlyMedia_sup := {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}}; template ProxyRequire m_proxyRequire_secAgree := { fieldName := PROXY_REQUIRE_E, optionsTags := {"sec-agree"} }; template PVisitedNetworkID m_pVisitedNetworkID_TS := { fieldName := P_VISITED_NETWORK_E, vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1", genericParams := omit}} } template PVisitedNetworkID mw_pVisitedNetworkID := { fieldName := P_VISITED_NETWORK_E, vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID, genericParams := *}} } template RecordRoute m_recordRoute_notmatching:= { fieldName := RECORD_ROUTE_E, routeBody := {{ nameAddr := { displayName := omit, addrSpec := { scheme := c_sipScheme, // contains "sip" userInfo := {userOrTelephoneSubscriber := "unknown", password := omit}, hostPort := { host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring portField := omit }, urlParameters := omit, headers := omit } }, rrParam := omit } } }; template Require m_require_secAgree := { fieldName := REQUIRE_E, optionsTags := {"sec-agree"} }; template Require mw_require_path := { fieldName := REQUIRE_E, optionsTags := superset("path") }; template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):= { fieldName := ROUTE_E, routeBody := {{nameAddr := {displayName := omit, addrSpec := {scheme := c_sipScheme, // contains "sip" userInfo := omit, hostPort := {host:=p_interfaceprofile.SUTIpaddr, portField:= p_interfaceprofile.SUTPort}, urlParameters := omit, headers := omit} }, rrParam := omit} }}; template Route m_route_notmatching:= { fieldName := ROUTE_E, routeBody := {{ nameAddr := { displayName := omit, addrSpec := { scheme := c_sipScheme, // contains "sip" userInfo := {userOrTelephoneSubscriber := "unknown", password := omit}, hostPort := { host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring portField := omit }, urlParameters := omit, headers := omit } }, rrParam := omit } } }; template SessionExpires m_se(DeltaSec p_ds):= { fieldName := SESSION_EXPIRES_E, deltaSec:=p_ds, seParam:=omit } template SessionExpires mw_se:= { fieldName := SESSION_EXPIRES_E, deltaSec:=?, seParam:=omit } template Supported m_supported_timer:= { fieldName := SUPPORTED_E, optionsTags := {"timer"} } template Supported m_supported_fromChange:= { fieldName := SUPPORTED_E, optionsTags := {"from-change"} } template To m_To_targetRefreshRequest(template To p_To) := { fieldName := TO_E, addressField := {nameAddr := { displayName := p_To.addressField.nameAddr.displayName, addrSpec := p_To.addressField.nameAddr.addrSpec }},//end addressField toParams := {{id := c_tagId, paramValue := f_getRndTag()}} }; template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) := { sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT), sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort}, viaParams:={{id :=c_branchId,paramValue :=branch_val}} } template Via m_via_notmatching:= { fieldName := VIA_E, viaBody := {{ sentProtocol := valueof(m_SentProtocol("UDP")), sentBy:={host:="unknown.domain.name", portField:= 10000}, viaParams:={{id :=c_branchId,paramValue :="abcd0000"}} } } }; /* * @desc WWW-Authenticate header field * @param p_challenge value */ template WwwAuthenticate m_wwwAuthenticate (Challenge p_challenge):= { fieldName := WWW_AUTHENTICATE_E, challenge := p_challenge } /* * @desc WWW-Authenticate header field * @param p_challenge value */ template WwwAuthenticate mw_wwwAuthenticate (template SemicolonParam_List p_semicolonParam_List):= { fieldName := WWW_AUTHENTICATE_E, challenge := {digestCln := p_semicolonParam_List // set of GenericParam } } /* * @desc AcceptContact header field * @param p_acValues value */ template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):= { fieldName := ACCEPT_CONTACT_E, acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam } } /* * @desc Authenticate header field * @param p_challenge value */ template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):= { fieldName := ACCEPT_CONTACT_E, acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam } } template SubscriptionState mw_subscriptionState(template charstring p_state) := { fieldName := SUBSCRIPTION_STATE_E, subState := p_state, substateParams := omit } //[3455/5.1] template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := { fieldName := P_ASSOCIATED_URI_E, nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}} } } // end group HeaderFieldTemplates group MessageBodyTemplates { group XMLTemplates { template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) := { icb := p_icb }; template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) := { ocb := p_ocb }; template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) := { conferenceInfo := p_confInfo }; template XmlBody m_XmlBody_CUG(template Cug p_cug) := { cug := p_cug }; template XmlBody m_XmlBody_MCID(template Mcid p_mcid) := { mcid := p_mcid }; template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) := { pstnTransit := p_pstn }; template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) := { cdivn := p_cdivn }; template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) := { conferenceInfo := p_confInfo }; template XmlBody mw_XmlBody_CUG(template Cug p_cug) := { cug := p_cug }; template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) := { mcid := p_mcid }; template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) := { pstnTransit := p_pstn }; template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) := { cdivn := p_cdivn }; template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) := { resourceLists := p_resourceLists }; }// end group XMLTemplates group ACR_CBTemplates { template Incoming_communication_barring m_ICB(RuleType p_ruleType) := { ruleset_icb := { rule:= {p_ruleType} } } template Outgoing_communication_barring m_OCB(RuleType p_ruleType) := { ruleset_ocb := { rule:= {p_ruleType} } } template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) := { id := "rule66", conditions := p_condition, actions := {bool := false}, transformations := omit } template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := { choice := {{ identity := {{ choice := {{ one := { id := p_id, scheme := p_scheme, any_1 := omit } }} }} }} } } //end group ACR_CBTemplates group CUGTemplates { template Cug m_CUG (template CugRequestType p_crt, template NetworkIdentityType p_nit, template SixteenbitType p_cibc, template TwoBitType p_cci):= { cugCallOperation := p_crt, networkIndicator := p_nit, cugInterlockBinaryCode := p_cibc, cugCommunicationIndicator :=p_cci } template Cug mw_CUG (template CugRequestType p_crt, template NetworkIdentityType p_nit, template SixteenbitType p_cibc, template TwoBitType p_cci):= { cugCallOperation := p_crt, networkIndicator := p_nit, cugInterlockBinaryCode := p_cibc, cugCommunicationIndicator := p_cci } template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) := { // outgoingAccessRequest := p_outAccessRequest, // cugIndex := p_cugIndex //TODO: workaround for ttwb118 outgoingAccessRequest := {bool:=p_outAccessRequest}, cugIndex := valueof(p_cugIndex) } template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) := { outgoingAccessRequest := {bool:=p_outAccessRequest}, cugIndex := p_cugIndex } }//end group CUGTemplates group MCIDTemplates { template Mcid m_mcid_request_mcidIndicatorTrue := { choice := { request := {McidRequestIndicator := bit2str('1'B), HoldingIndicator := bit2str('0'B)} } } template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue := { choice := { request := {McidRequestIndicator := bit2str('1'B), HoldingIndicator := bit2str('1'B)} } } template Mcid m_mcid_response_mcidIndicatorTrue := { choice := { response := {McidResponseIndicator := bit2str('1'B), HoldingProvidedIndicator := bit2str('0'B)} } } template Mcid mw_mcid_request_mcidIndicatorTrue := { choice := { request := {McidRequestIndicator := bit2str('1'B), HoldingIndicator := ?} } } template Mcid mw_mcid_response_mcidIndicatorTrue := { choice := { response := {McidResponseIndicator := bit2str('1'B), HoldingProvidedIndicator := ?} } } template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse := { choice := { response := {McidResponseIndicator := bit2str('1'B), HoldingProvidedIndicator := bit2str('0'B)} } } template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue := { choice := { response := {McidResponseIndicator := bit2str('1'B), HoldingProvidedIndicator := bit2str('1'B)} } } } //end group MCIDTemplates group PSTNTemplates { template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct, template BearerCapabilityType p_bct2, template HighLayerCompatibilityType p_hlc, template HighLayerCompatibilityType p_hlc2, template LowLayerCompatibilityType p_llc, template ProgressIndicatorType p_pi, template DisplayType p_d) := { BearerInfomationElement := {p_bct, p_bct2}, HighLayerCompatibility := {p_hlc, p_hlc2}, LowLayerCompatibility := p_llc, ProgressIndicator := {p_pi}, Display := {p_d} } template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct, template BearerCapabilityType p_bct2, template HighLayerCompatibilityType p_hlc, template HighLayerCompatibilityType p_hlc2, template LowLayerCompatibilityType p_llc, template ProgressIndicatorType p_pi, template ProgressIndicatorType p_pi2, template DisplayType p_d) := { BearerInfomationElement := {p_bct, p_bct2}, HighLayerCompatibility := {p_hlc, p_hlc2}, LowLayerCompatibility := p_llc, ProgressIndicator := {p_pi, p_pi2}, Display := {p_d} } template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct, template BearerCapabilityType p_bct2, template HighLayerCompatibilityType p_hlc, template HighLayerCompatibilityType p_hlc2, template LowLayerCompatibilityType p_llc, template ProgressIndicatorType p_pi, template ProgressIndicatorType p_pi2, template ProgressIndicatorType p_pi3, template DisplayType p_d) := { BearerInfomationElement := {p_bct, p_bct2}, HighLayerCompatibility := {p_hlc, p_hlc2}, LowLayerCompatibility := p_llc, ProgressIndicator := {p_pi, p_pi2, p_pi3}, Display := {p_d} } template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct, template BearerCapabilityType p_bct2) := { BearerInfomationElement := {p_bct, p_bct2}, HighLayerCompatibility := {*, *}, LowLayerCompatibility := *, ProgressIndicator := {*}, Display := {*} } template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= { BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding InformationTransferCapability := 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 := omit, BCoctet5 := omit, BCoctet5a := omit, BCoctet5bV110 := omit, BCoctet5bV120 := omit, BCoctet5c := omit, BCoctet5d := omit, BCoctet6 := omit, BCoctet7 := omit, BCoctet7a := omit, BCoctet7b := omit } template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := { ProgressOctet3 := {CodingStandard := bit2str('00'B), Location := bit2str('0000'B) }, ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)} } template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := { LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability LLOctet3a := omit, LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s LLOctet4_1 := omit, LLOctet5 := omit, LLOctet5a := omit, LLOctet5bV110 := omit, LLOctet5bV120 := omit, LLOctet5c := omit, LLOctet5d := omit, LLOctet6 := omit, LLOctet6aHDLC := omit, LLOctet6aUserSpecific := omit, LLOctet6b := omit, LLOctet7 := omit, LLOctet7aUserSpecific := omit, LLOctet7aX25 := omit, LLOctet7bX25 := omit, LLOctet7c := omit, LLOctet7aTR9577 := omit, LLOctet7bTR9577 := omit } template HighLayerCompatibilityType m_HighLayerCompatibilityType (Bit7 p_HLOctet4):= { HLOctet3 := { CodingStandard :=bit2str('00'B), Interpretation :=bit2str('100'B), PresentationMethod := bit2str('01'B) }, HLOctet4 := { HighLayerCharacteristics := bit2str(p_HLOctet4) }, HLOctet4aMaintenance := omit, HLOctet4Audio := omit } template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= { BCoctet3 := p_BCOctet3Type, BCoctet4 := p_BCOctet4Type, BCoctet4_1 := * , BCoctet5 := * , BCoctet5a := * , BCoctet5bV110 := * , BCoctet5bV120 := * , BCoctet5c := * , BCoctet5d := * , BCoctet6 := * , BCoctet7 := * , BCoctet7a := * , BCoctet7b := * } template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= { BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding InformationTransferCapability := 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 := * } } //end group PSTNTemplates group CDIVNTemplates { /* general CDIVN subscription */ template Comm_div_info m_CDIVN_sub := { entity := ?, comm_div_subs_info := { anyAttributes := omit, comm_div_selection_criteria := { anyAttributes := ?, 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, any_1 := omit }, comm_div_ntfy_trigger_criteria := omit, comm_div_info_selection_criteria := omit, any_1 := omit }, comm_div_ntfy_info := omit, any_1 := omit } } // end grouup CDIVNTemplates group ResourceListsTemplates { template Resource_lists m_ResourceList_2Users( EntryType p_user1, EntryType p_user2 ) := { list := { { name := omit, anyAttributes := omit, display_name := omit, seq_1 := { { list := omit, external_ := omit, entry := p_user1, entry_Ref := omit }, { list := omit, external_ := omit, entry := p_user2, entry_Ref := omit } }, any_1 := omit } } } template EntryType m_EntryUser(SipUrl p_user) := { display_name := omit, uri := p_user.userInfo.userOrTelephoneSubscriber & "@" & p_user.hostPort.host, any_1 := omit, anyAttributes := omit } }// end grouup ResourceListsTemplates group Ims3gppTemplates { template Ims_3gpp 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 := * } } // end group Ims3gpp group CONFTemplates { template booleanXSD boolXSD_true:={bool:=true} template booleanXSD boolXSD_false:={bool:=false} template anyAttributes m_emptyAnyAttributes:={} template Media_type m_mediatype_status(template Media_status_type p_status):= { id:="1", anyAttributes:=omit,//m_emptyAnyAttributes, display_text :=omit, type_ :=omit, label_ :=omit, src_id:=omit, status:= p_status, any_1:=omit } 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 Media_type p_mediastatus):= { entity:=p_Uri, state:=full, anyAttributes:=omit,//m_emptyAnyAttributes, display_text:=omit, referred:=omit, status:=p_epStatus, joining_method:=p_joinMethod, joining_info:=omit, disconnection_method:=omit, disconnection_info:=omit, media:={p_mediastatus},// optional, call_info:=omit, any_1:=omit } template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := { entity:=p_Uri, state:=full, anyAttributes:=omit,//m_emptyAnyAttributes, display_text:=omit, associated_aors:=omit, roles:=omit, languages :=omit, cascaded_focus :=omit, endpoint:={p_endpoint},// optional, any_1:=omit } template Users_type m_users_1user_full(template User_type p_user):={ state:=full, anyAttributes := omit,//m_emptyAnyAttributes, user:={p_user}, any_1:=omit } template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={ state:=full, anyAttributes := omit,//m_emptyAnyAttributes, user:={p_user1,p_user2}, any_1:=omit } template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := { anyAttributes:=omit,//m_emptyAnyAttributes, user_count:=p_nUsers, active:=p_active, locked:=p_locked, any_1 := omit } template Conference_info 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, any_1 := omit } template Conference_info mw_conferenceInfo_active := { 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 := *, any_1 := * } }, any_1 := * } }, any_1 := omit }, sidebars_by_ref := *, sidebars_by_val := *, any_1 := * } } } // end group MessageBodyTemplates group MessageTemplates { group modified_templates { group request_send { 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 := mw_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 } /* * * @desc INFO message * */ 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 } 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 } 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 } 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, template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow) modifies m_INVITE_Request_UE := { msgHeader := { allow := p_allow } } /* * * @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} } } /* * * @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 } 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) 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_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 } template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference (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"} }, messageBody := p_mb } /* * * @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 } template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template ProxyRequire p_proxyRequire, template Require p_require, template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported) modifies m_REGISTER_Request_Base := { requestLine := { method := REGISTER_E, requestUri := p_requestUri }, msgHeader := { authorization := p_authorization, callId := p_callId, contact := p_contact, cSeq := p_cSeq, fromField := p_from, proxyRequire := p_proxyRequire, require := p_require, securityClient := p_securityClient, securityVerify := p_securityVerify, supported := p_supported, toField := p_to, via := p_via } } template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization) modifies m_REGISTER_Request_Base := { requestLine := { method := REGISTER_E, requestUri := p_requestUri }, msgHeader := { authorization := p_authorization, callId := p_callId, contact := p_contact, cSeq := p_cSeq, fromField := p_from, path := m_path_TS, pChargingVector := m_pChargingVector_icid_TS, pVisitedNetworkID := m_pVisitedNetworkID_TS, require := {fieldName := REQUIRE_E,optionsTags := {"path"}}, toField := p_to, via := p_via } } template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec) modifies m_REGISTER_Request_IMS := { msgHeader := { expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec} } } template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base := { requestLine := { method := SUBSCRIBE_E, requestUri := p_requestUri }, msgHeader := { pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a, contact := p_contact, cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"}, event := m_Event_reg, expires := m_Expires_600000, route := p_route } } template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (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_SUBSCRIBE_Request_Base := { requestLine := { method := SUBSCRIBE_E, requestUri := p_requestUri }, msgHeader := { pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a, contact := p_contact, cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"}, event := m_Event_reg, expires := m_Expires_600000 }, messageBody := p_mb } 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 := { 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 } } 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_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} } /* * * @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} } template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE modifies mw_MESSAGE_Request_Base := { msgHeader := { pChargingFunctionAddresses := omit, pChargingVector := omit} } 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 } } 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)} } template MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo modifies mw_MESSAGE_Request_Base := { msgHeader := { pAccessNetworkInfo := omit} } 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, 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 := m_pAccessNetworkInfo_IEEE_11a, pChargingVector := p_pChargingVector } } template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base := { msgHeader := { fromField := p_from } } template NOTIFY_Request mw_NOTIFY_Request( template CallId p_callId, template charstring p_state, template charstring p_contentType, template Event p_event, 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, //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_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 ) modifies m_Response_Base:= { msgHeader := { pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue, pChargingVector := m_pChargingFunctionAddresses_fixedValue } } 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 } } 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 } } 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 } } 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 } 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 ) modifies m_Response_mbody := { msgHeader := { pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue, pChargingVector := m_pChargingFunctionAddresses_fixedValue } } 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 } 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 := m_pChargingFunctionAddresses_fixedValue } } 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, 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:= { msgHeader := { contact := p_contact, maxForwards := omit } } template Response m_Response_onINVITE_Reason (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, integer p_cause) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit, reason := mw_Reason(p_cause) } } template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:= { msgHeader := { wwwAuthenticate := p_wwwAuthenticate } } }//end group response_send group response_receive { template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pChargingVector := omit } } template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, messageBody := { sdpMessageBody := ? } } template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pChargingFunctionAddresses := omit, pChargingVector := omit } } template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pChargingFunctionAddresses := omit, pChargingVector := omit } } template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pAccessNetworkInfo := omit } } template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pMediaAuthorization := omit } } template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { securityServer := ?, wwwAuthenticate := ? } } template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { wwwAuthenticate := p_wwwAuthenticate } } template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}}, path := ?, serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}}, pChargingFunctionAddresses := ?, pChargingVector := ?, contact := p_contact } } template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pAssertedID := p_pAssertedID, pPreferredID := p_pPreferredID } } template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pAssertedID := p_pAssertedID, privacy := p_privacy, historyInfo := p_historyInfo } } template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue) } } } // end response_receive }//end modified_templates }//end Message_templates } // end module LibIms_Templates