/* * @author STF 346, STF366, STF368, STF369, STF450 * @version $Id$ * @desc This module provides the types used by the test component * for SIP-IMS tests. Module become from STF306 and STF334-336 * This module is part of LibImsV2. */ module LibIms_Templates { import from XSDAUX all; //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 LibSip_MessageBodyTypes all; //LibIms import from LibIms_SIPTypesAndValues all; import from LibIms_PIXITS all; //LibXMLTypes import from urn_ietf_params_xml_ns_resource_lists language "XSD" all with { extension "File:../xsd/ResourceList.xsd" } import from urn_ietf_params_xml_ns_reginfo language "XSD" all except{type Contact} with { extension "File:../xsd/regInfo.xsd" } import from http_uri_etsi_org_ngn_params_xml_simservs_xcap language "XSD" all with { extension "File:../xsd/SupplementaryServices.xsd" } import from http_uri_etsi_org_ngn_params_xml_simservs_mcid language "XSD" all with { extension "File:../xsd/MCID.xsd" } import from NoTargetNamespace language "XSD" all with { extension "File:../xsd/Ims3gpp.xsd" } import from urn_ietf_params_xml_ns_conference_info language "XSD" all with { extension "File:../xsd/CONF.xsd" } import from http_uri_etsi_org_ngn_params_xml_simservs_pstn language "XSD" all with { extension "File:../xsd/PSTN.xsd" } import from urn_ietf_params_xml_ns_common_policy language "XSD" all with { extension "File:../xsd/common-policy.xsd" } import from http_uri_etsi_org_ngn_params_xml_comm_div_info language "XSD" all with { extension "File:../xsd/CDIVN.xsd" } import from urn_3gpp_ns_cw_1_0 language "XSD" all with { extension "File:../xsd/cw.xsd" } template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+"; template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) := { displayName := *, addrSpec := { scheme := c_sipScheme, components := { sip:= { userInfo := *, hostPort := {p_host, p_port}}}, urlParameters := *, headers := * } } template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}}; template Addr_Union mw_AddrUnion_userInfo(template (present) charstring p_userInfo) := { nameAddr:={displayName := *, addrSpec := { scheme := c_sipScheme, components := { sip:= { userInfo := {userOrTelephoneSubscriber :=p_userInfo, password :=*}, hostPort := ?}}, urlParameters := *, headers := * } } } group Subfields{ template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side { scheme := c_sipScheme, //* contains "sip" components := { sip:= { userInfo := omit, //* optional hostPort := { host := p_userprofile.currIpaddr, //* hostname, IPv4 or IPv6 as a charstring portField := p_userprofile.currPort //* optional integer }}}, urlParameters := omit, headers := omit } template SemicolonParam_List mw_semicolonParams_realm (template charstring p_realm) := /*?;*/ superset({"realm",p_realm},{"nonce",?},{"algorithm","AKAv1-MD5"},{"ik",?},{"ck",?}) ;//Working with TTWorkbench// 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 (template 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 := c_sipScheme, components := { sip:= { userInfo := omit, hostPort := { PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT }}}, urlParameters := { { id := "lr", paramValue := 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:=c_icid, paramValue :=c_icid_value}} }; template PChargingVector m_pChargingVector_origIoi_fixedValue(charstring p_homeDomain) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := {{id:=c_icid, paramValue :=c_icid_value}, {id:=c_icid_generated_at, paramValue :="192.1.1.10"}, {id:=c_orig_ioi, paramValue := p_homeDomain}} }; template PChargingVector m_pChargingVector_termIoi_fixedValue(charstring p_homeDomain) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := {{id:=c_icid, paramValue :=c_icid_value}, {id:=c_icid_generated_at, paramValue :="192.1.1.10"}, {id:=c_term_ioi, paramValue := p_homeDomain}} }; template PChargingVector m_pChargingVector_origIoi_fixedValue1(charstring p_homeDomain) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id:=c_icid_generated_at, paramValue :="192.1.1.10"}, {id:=c_orig_ioi, paramValue := p_homeDomain}} }; template PChargingVector m_pChargingVector_accessNetwInfo(charstring p_homeDomain) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := {{id:=c_icid, paramValue :=c_icid_value}, {id:=c_term_ioi, paramValue := p_homeDomain}, {id:=c_access_network_charging_info, paramValue := "192.1.1.10"}} }; template PChargingVector mw_pChargingVector(template charstring p_id, template charstring p_paramValue) := { fieldName := P_CHARGING_VECTOR_E, chargeParams := superset({id := 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 := PX_IMS_SUT_ICSCF_VisitedNetworkID, 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" components := { 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" components := { sip:= { userInfo := omit, hostPort := {host:=p_interfaceprofile.SUTHomeDomain, portField:= omit}}}, urlParameters := omit, headers := omit} }, rrParam := omit} }}; template Route m_route_notmatching:= { fieldName := ROUTE_E, routeBody := {{ nameAddr := { displayName := omit, addrSpec := { scheme := c_sipScheme, // contains "sip" components := { 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_histinfo:= { fieldName := SUPPORTED_E, optionsTags := {"histinfo"} } 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 ViaBody m_ViaBody_virtual_XCSCF(charstring branch_val,in SipUserProfile p_userprofile) := { sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT), sentBy:={host:=p_userprofile.currIpaddr, portField:= p_userprofile.currPort}, 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 } } template SemicolonParam_List mw_challenge := superset(mw_ck,mw_ik); // template SemicolonParam_List mw_challenge := {mw_ck,mw_ik}; template GenericParam mw_ck := {"ck", *}; template GenericParam mw_ik := {"ik", *} /* * @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}} } template SecurityServer mw_securityServer (template SecurityMechanism_List p_securityMechanism_List):= { fieldName := SECURITY_SERVER_E, securityMech := p_securityMechanism_List } template SecurityClient m_securityClient (template SecurityMechanism_List p_securityMechanism_List):= { fieldName := SECURITY_CLIENT_E, securityMech := p_securityMechanism_List } template SecurityVerify m_securityVerify (template SecurityMechanism_List p_securityMechanism_List):= { fieldName := SECURITY_VERIFY_E, securityMech := p_securityMechanism_List } } // end group HeaderFieldTemplates group MessageBodyTemplates { group XMLTemplates { template XmlBody m_XmlBody_ConfInfo(template Conference_type p_confInfo) := { conference := p_confInfo }; template XmlBody m_XmlBody_CW(template Ims_cw p_cw) := { cw := p_cw }; 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_simservs(template Simservs p_simservs) := { simservs := p_simservs }; template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) := { simservs := { attr := {}, absServiceGroup_list := {}, extensions := { elem_list := valueof(p_icb.attr) } } }; template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) := { simservs := { attr := {}, absServiceGroup_list := {}, extensions := { elem_list := valueof(p_ocb.attr) } } }; template XmlBody m_XmlBody_CDIVN(template Comm_div_info_type p_cdivn) := { cdivn := p_cdivn }; template XmlBody m_XmlBody_Reginfo(template Reginfo p_regInfo) := { regInfo := p_regInfo }; template MessageBody m_messageBodyXML(template XmlBody p_xmlBody) := { xmlBody := p_xmlBody }; template Reginfo m_reginfo (template XSDAUX.anyURI p_user):= { full, 0, {m_registration(p_user)}, {} }; template Registration m_registration (template XSDAUX.anyURI p_user):= { p_user, // XSDAUX.anyURI aor "a7", // XSDAUX.string id init, //enumerated {active,init,terminated} state, {}, // record of Contact contact_list optional, {} // record of anytype elem_list optional }; template XmlBody mw_XmlBody_ConfInfo(template Conference_type p_confInfo) := { conference := 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_type p_cdivn) := { cdivn := p_cdivn }; template XmlBody mw_XmlBody_simservs(template Simservs p_simservs) := { simservs := p_simservs }; template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) := { resourceLists := p_resourceLists }; template XmlBody mw_XmlBody_Reginfo(template Reginfo p_regInfo) := { regInfo := p_regInfo }; }// end group XMLTemplates group ACR_CBTemplates { template Incoming_communication_barring m_ICB(template RuleType p_ruleType) := { active := omit, attr := {}, ruleset := { {p_ruleType} } } template Outgoing_communication_barring m_OCB(template(present) RuleType p_ruleType) := { active := omit, attr := {}, ruleset := { {p_ruleType} } } template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) := { id := "rule66", conditions := p_condition, actions := {elem_list:={""}}, transformations := omit } template ConditionsType m_conditionsType_identity(template(present) charstring p_id, template charstring p_scheme) := { { {identity_list := {{{{one := {id := p_id, elem := 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 ):= { active := omit, attr := {}, 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 ):= { active := omit, attr := ?, cugCallOperation := p_crt, networkIndicator := p_nit, cugInterlockBinaryCode := p_cibc, cugCommunicationIndicator := p_cci } template CugRequestType m_cugReqType(boolean p_outAccessRequest, integer p_cugIndex) := { outgoingAccessRequest := p_outAccessRequest, cugIndex := p_cugIndex } template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) := { outgoingAccessRequest := p_outAccessRequest, cugIndex := p_cugIndex } }//end group CUGTemplates group CWTemplates { template Ims_cw m_CW(template TEmptyType p_cwi) := { attr := {}, communication_waiting_indication := p_cwi, elem_list := {} } template Ims_cw mw_ims_cw(template TEmptyType p_cwi) := { attr := ?, communication_waiting_indication := p_cwi, elem_list := ? } template Cug m_CW2 ( template CugRequestType p_crt, template NetworkIdentityType p_nit, template SixteenbitType p_cibc, template TwoBitType p_cci ):= { active := omit, attr := {}, cugCallOperation := p_crt, networkIndicator := p_nit, cugInterlockBinaryCode := p_cibc, cugCommunicationIndicator :=p_cci } template Cug mw_CW ( template CugRequestType p_crt, template NetworkIdentityType p_nit, template SixteenbitType p_cibc, template TwoBitType p_cci ):= { active := omit, attr := ?, cugCallOperation := p_crt, networkIndicator := p_nit, cugInterlockBinaryCode := p_cibc, cugCommunicationIndicator := p_cci } }//end group CWTemplates 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_BC1(template BearerCapabilityType p_bct) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {}, lowLayerCompatibility := omit, progressIndicator_list := {}, display_list := {} } template PSTN_transit m_PSTN_transit_BC2(template BearerCapabilityType p_bct, template BearerCapabilityType p_bct2) := { bearerInfomationElement_list := {p_bct, p_bct2}, highLayerCompatibility_list := {}, lowLayerCompatibility := omit, progressIndicator_list := {}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_HLC1(template BearerCapabilityType p_bct, template HighLayerCompatibilityType p_hlc) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {p_hlc}, lowLayerCompatibility := omit, progressIndicator_list := {}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_LLC(template BearerCapabilityType p_bct, template LowLayerCompatibilityType p_llc) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {}, lowLayerCompatibility := p_llc, progressIndicator_list := {}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_PI1(template BearerCapabilityType p_bct, template ProgressIndicatorType p_pi1) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {}, lowLayerCompatibility := omit, progressIndicator_list := {p_pi1}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_PI2(template BearerCapabilityType p_bct, template ProgressIndicatorType p_pi1, template ProgressIndicatorType p_pi2) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {}, lowLayerCompatibility := omit, progressIndicator_list := {p_pi1, p_pi2}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_PI3(template BearerCapabilityType p_bct, template ProgressIndicatorType p_pi1, template ProgressIndicatorType p_pi2, template ProgressIndicatorType p_pi3) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {}, lowLayerCompatibility := omit, progressIndicator_list := {p_pi1, p_pi2, p_pi3}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_HLC2(template BearerCapabilityType p_bct, template HighLayerCompatibilityType p_hlc1, template HighLayerCompatibilityType p_hlc2) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {p_hlc1, p_hlc2}, lowLayerCompatibility := omit, progressIndicator_list := {}, display_list := {} } template PSTN_transit m_PSTN_transit_BC1_HLC1_PI1(template BearerCapabilityType p_bct, template HighLayerCompatibilityType p_hlc1, template ProgressIndicatorType p_pi1) := { bearerInfomationElement_list := {p_bct}, highLayerCompatibility_list := {p_hlc1}, lowLayerCompatibility := omit, progressIndicator_list := {p_pi1}, display_list := {} } template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct, template BearerCapabilityType p_bct2) := { bearerInfomationElement_list := {p_bct, p_bct2}, highLayerCompatibility_list := {*, *}, lowLayerCompatibility := *, progressIndicator_list := {*}, display_list := {*} } template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= { bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s bCoctet4_1 := 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 := {layer3Identification := bit2str('10'B), //TODO check valueand if parameter is mandatory userInfoLayer3Protocol := bit2str('10000'B)}, //TODO check value and if parameter is mandatory 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 informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s bCoctet4_1 := * , bCoctet5 := * , bCoctet5a := * , bCoctet5bV110 := * , bCoctet5bV120 := * , bCoctet5c := * , bCoctet5d := * , bCoctet6 := * , bCoctet7 := * , bCoctet7a := * , bCoctet7b := * } template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := { progressOctet3 := p_ProgressOctet3Type, progressOctet4 := p_ProgressOctet4Type } template LowLayerCompatibilityType mw_LowLayerCompatibilityType (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := { lLOctet3 := p_LLOctet3, lLOctet3a := * , lLOctet4 := p_LLOctet4, lLOctet4_1 := * , lLOctet5 := * , lLOctet5a := * , lLOctet5bV110 := * , lLOctet5bV120 := * , lLOctet5c := * , lLOctet5d := * , lLOctet6 := * , lLOctet6aHDLC := * , lLOctet6aUserSpecific := * , lLOctet6b := * , lLOctet7 := p_LLOctet7, lLOctet7aUserSpecific := * , lLOctet7aX25 := * , lLOctet7bX25 := * , lLOctet7c := * , lLOctet7aTR9577 := * , lLOctet7bTR9577 := * } template HighLayerCompatibilityType mw_HighLayerCompatibilityType (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= { hLOctet3 := p_HLOctet3, hLOctet4 := p_HLOctet4, hLOctet4aMaintenance := *, hLOctet4Audio := * } } //end group PSTNTemplates group CDIVNTemplates { /* general CDIVN subscription */ template Comm_div_info_type m_CDIVN_sub := { entity := "comm-div-info", comm_div_subs_info := { attr := {}, comm_div_selection_criteria := { attr := {}, 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, elem_list := {} }, comm_div_ntfy_trigger_criteria := omit, comm_div_info_selection_criteria := omit, elem_list := {} }, comm_div_ntfy_info := omit, elem_list := {} } } // end grouup CDIVNTemplates group ResourceListsTemplates { template Resource_lists m_ResourceList_2Users( template EntryType p_user1, template EntryType p_user2 ) := { sequence_list := { { list := { name := omit, attr := {}, display_name := omit, sequence_list := { { choice := { entry := p_user1 } }, { choice := { entry := p_user2 } } }, elem_list := {} } } } } template EntryType m_EntryUser(SipUrl p_user) := { uri := p_user.components.sip.userInfo.userOrTelephoneSubscriber & "@" & p_user.components.sip.hostPort.host, attr := {}, display_name := omit, elem_list := {} } }// end grouup ResourceListsTemplates group Ims3gppTemplates { //TODO:check commented and below templates when test will be validated template TIMS3GPP mw_Ims_3gpp_CW := { version := 1.0, attr := ?, choice := { alternative_service := { attr := ?, type_ := ?, reason := ?, elem_list := ? } }, elem_list := ? } // template TIMS3GPP mw_Ims_3gpp_CW := { // version := 1.0, // anyAttributes := ?, // choice_1 := { // alternative_service := { // anyAttributes := ?, // type_ := ?, // reason := ?, // action_ := { // anyAttributes := ?, // emergency_registration := *, // call_waiting_indication := {}, // any_1 := * // }, // any_1 := * // } // }, // any_1 := * // } } // end group Ims3gpp group CONFTemplates { template booleanXSD boolXSD_true:={bool:=true} template booleanXSD boolXSD_false:={bool:=false} template anyAttributes m_emptyAnyAttributes:={} template urn_ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(template Media_status_type p_status):= { id:="1", attr := {}, display_text :=omit, type_ :=omit, label_ :=omit, src_id:=omit, status:= p_status, elem_list:={} } template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template urn_ietf_params_xml_ns_conference_info.Media_type p_mediastatus):= { entity:=p_Uri, state:=full, attr := {}, display_text:=omit, referred:=omit, status:=p_epStatus, joining_method:=p_joinMethod, joining_info:=omit, disconnection_method:=omit, disconnection_info:=omit, media_list:={p_mediastatus},// optional, call_info:=omit, elem_list:={} } template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := { entity:=p_Uri, state:=full, attr := {}, display_text:=omit, associated_aors:=omit, roles:=omit, languages :=omit, cascaded_focus :=omit, endpoint_list:={p_endpoint},// optional, elem_list:={} } template Users_type m_users_1user_full(template User_type p_user):={ state:=full, attr := {}, user_list:={p_user}, elem_list:={} } template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={ state:=full, attr := {}, user_list:={p_user1,p_user2}, elem_list:={} } template Conference_state_type m_conference_state(template unsignedInt p_nUsers, boolean p_active, boolean p_locked) := { attr := {}, user_count:=p_nUsers, active:=p_active, locked:=p_locked, elem_list:= {} } 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, attr := {}, conference_description := omit, host_info := omit, conference_state := p_cState, users := p_users, sidebars_by_ref := omit, sidebars_by_val := omit, elem_list := {} } template Conference_type mw_conferenceInfo_active := { entity := ?, state := *, version := *, attr := ?, conference_description := *, host_info := *, conference_state := ?, users := { state := ?, attr := ?, user_list := { { entity := *, state := *, attr := ?, display_text := *, associated_aors := *, roles := *, languages := *, cascaded_focus := *, endpoint_list := { { entity := *, state := *, attr := ?, display_text := *, referred := *, status := connected, joining_method := dialed_in, joining_info := *, disconnection_method := *, disconnection_info := *, media_list := *, call_info := *, elem_list := ? } }, elem_list := ? } }, elem_list := {} }, sidebars_by_ref := *, sidebars_by_val := *, elem_list := ? } } } // end group MessageBodyTemplates group MessageTemplates { group modified_templates { group request_send { template ACK_Request m_ACK_Request_AS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordRoute ) modifies m_ACK_Request_Base := { msgHeader := { route := p_route, recordRoute := p_recordRoute } } 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 ACK_Request m_ACK_Request_sdp_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via,template MessageBody p_mb, template Route p_route) modifies m_ACK_Request_Base := { msgHeader := { contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, route := p_route }, messageBody := p_mb } 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, charstring p_cause) modifies m_BYE_Request_Base := { msgHeader := { reason := mw_Reason(p_cause), route := p_route } } template BYE_Request m_BYE_Request_UserToUser_IMS ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Route p_route, template charstring p_U2UData) modifies m_BYE_Request_Base := { msgHeader := { route := p_route, userToUser := m_UserToUserData(p_U2UData) } } template BYE_Request m_BYE_Request_UE ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Route p_route) modifies m_BYE_Request_Base := { msgHeader := { pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a, //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation route := p_route } } template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Route p_route) modifies m_CANCEL_Request_Base := { msgHeader := { route := p_route } } template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base := { msgHeader := { reason := m_Reason(p_cause), route := p_route } } template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Route p_route) modifies m_CANCEL_Request_Base := { msgHeader := { route := p_route } } /* * * @desc INFO message * */ template INFO_Request m_INFO_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template MessageBody p_mb ) modifies m_INFO_Request_Base := { msgHeader := { contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication} }, messageBody := p_mb } /* * * @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_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 } } 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 LibSip_SIPTypesAndValues.Allow p_allow) modifies m_INVITE_Request_UE := { msgHeader := { allow := p_allow } } 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 } } /* * * @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_IMS_noBody (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Require p_require, template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector) modifies m_INVITE_Request_Base := { msgHeader := { require := p_require, pChargingVector := p_pChargingVector, recordRoute := p_recordRoute, route := p_route, supported := p_supported } } /* * * @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_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 } 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 } template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_RegInfo (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb ) modifies m_NOTIFY_Request_Base := { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlreginfoAplication}, event := m_Event_reg, subscriptionState:=m_SubscriptionState_active, expires:={fieldName:=EXPIRES_E, deltaSec:="3600"} }, 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 } /* * * @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 }, referredBy := p_referredBy, referTo := p_referTo, 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_IMS_3party ( 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 Path p_path ) modifies m_REGISTER_Request_IMS := { msgHeader := { path := p_path } } 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, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, 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_mb_event_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, Event p_event, charstring p_contentType) modifies m_SUBSCRIBE_Request_mb_UE := { requestLine := { method := SUBSCRIBE_E, requestUri := p_requestUri }, msgHeader := { contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType}, pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a, contact := p_contact, cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"}, event := p_event, 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 BYE_Request mw_BYE_Request_via_UE(template CallId p_callId, template Via p_via) modifies mw_BYE_Request_Base := { msgHeader := { via := p_via } } template BYE_Request mw_BYE_Request_route(template CallId p_callId, template Route p_route) modifies mw_BYE_Request_Base := { msgHeader := {route := p_route} } 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_NoPCharging modifies mw_INVITE_Request_Base := { msgHeader := {pChargingFunctionAddresses := omit, pChargingVector := omit} } template INVITE_Request mw_INVITE_Request_NoPChargingPreferred modifies mw_INVITE_Request_Base := { msgHeader := {pChargingFunctionAddresses := omit, pChargingVector := omit, pPreferredID := omit} } 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_requestLine(template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template SipUrl p_requestUri) modifies mw_INVITE_Request_Base := { requestLine := { requestUri := p_requestUri }, msgHeader := { pChargingVector := p_pChargingVector, recordRoute := p_recordRoute, route := p_route, via := p_via } } template INVITE_Request mw_INVITE_Request_IMS_PAsserted_noPPreferred(template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template SipUrl p_requestUri, template PAssertedID p_pAssertedID) modifies mw_INVITE_Request_Base := { msgHeader := {pAssertedID := p_pAssertedID, pPreferredID := omit} } template INVITE_Request mw_INVITE_Request_IMS_mb (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base := { msgHeader := { pChargingVector := p_pChargingVector, recordRoute := p_recordRoute, route := p_route, via := p_via }, messageBody := ? } template INVITE_Request mw_INVITE_Request_IMS_cug (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template Cug p_cug ) modifies mw_INVITE_Request_Base := { msgHeader := { pChargingVector := p_pChargingVector, recordRoute := p_recordRoute, route := p_route, via := p_via }, messageBody := (mw_MBody_XML(mw_XmlBody_CUG(p_cug)), mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug))) } template INVITE_Request mw_INVITE_Request_IMS_noCug (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 := (mw_MBody_XML(complement(mw_XmlBody_CUG(?))), mw_MBody_MIMESdpXml(?, complement(mw_XmlBody_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 } } template INVITE_Request mw_INVITE_Request_TH_R10 modifies mw_INVITE_Request_Base := { msgHeader := { pChargingFunctionAddresses := 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_noPchargingFunctionPrefId_UE modifies mw_MESSAGE_Request_Base := { msgHeader := { pChargingFunctionAddresses := omit, pChargingVector := omit, pPreferredID := 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_route (template CallId p_callId, template Route p_route )modifies mw_MESSAGE_Request_Base := { msgHeader := {route := p_route } } template MESSAGE_Request mw_MESSAGE_Request_via (template CallId p_callId, template Via p_via )modifies mw_MESSAGE_Request_Base := { msgHeader := {via := p_via } } 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 } template PRACK_Request mw_PRACK_Request_sdp(template CallId p_callId, template MessageBody p_mb) modifies mw_PRACK_Request_Base := { msgHeader := { callId := p_callId }, messageBody := p_mb } 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_auth_via_nosecclient_IMS (template Authorization p_authorization, Via p_via ) modifies mw_REGISTER_Request_Base := { msgHeader := { authorization := p_authorization, via := p_via, securityClient := omit } } template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS modifies mw_REGISTER_Request_Base := { msgHeader := { securityVerify := omit, securityClient := omit } } template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS modifies mw_REGISTER_Request_Base := { msgHeader := { authorization := * } } template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS ( template From p_from, template To p_to, template PAssertedID p_pAssertedID, template PChargingVector p_pChargingVector ) modifies mw_SUBSCRIBE_Request_Base := { requestLine := { method := SUBSCRIBE_E }, msgHeader := { fromField := p_from, toField := p_to, event := m_Event_reg, pAccessNetworkInfo := *, pChargingVector := p_pChargingVector } } template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base := { msgHeader := { fromField := p_from } } }//end group request_receive group response_send { template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit } } template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:= { msgHeader := { //contact := p_contact, maxForwards := omit//, //recordRoute := p_recordRoute } } template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:= { msgHeader := { contact := p_contact //mandatory field due to 24 229 rel 7.9 //maxForwards := omit, //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7 } } 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_AS (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, recordRoute := p_recordRoute } } 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, Contact p_contact, template PChargingVector p_pChargingVector ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue, pChargingVector := p_pChargingVector } } template Response m_Response_18XonINVITE_pEearlyMedia (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template PEarlyMedia p_pEarlyMedia ) modifies m_Response_Base:= { msgHeader := { pEarlyMedia := p_pEarlyMedia } } template Response m_Response_18XonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit, pPreferredID := p_pPreferredID, rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7 } } template Response m_Response_18XonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit, pAssertedID := p_pAssertedID, rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7 } } 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, template LibSip_SIPTypesAndValues.Allow p_allow ) 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 allow := p_allow }, 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, template MessageBody p_mb, template Contact p_contact, template PChargingVector p_pChargingVector ) modifies m_Response_mbody := { msgHeader := { contact := p_contact, pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue, pChargingVector := p_pChargingVector } } template Response m_Response_2XXonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, pPreferredID := p_pPreferredID, recordRoute := p_recordRoute//for INVITE response }, messageBody := p_mb } template Response m_Response_2XXonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, pAssertedID := p_pAssertedID, recordRoute := p_recordRoute//for INVITE response }, messageBody := p_mb } template Response m_Response_2XXonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, pAssertedID := p_pAssertedID, privacy := p_privacy, recordRoute := p_recordRoute//for INVITE response }, messageBody := p_mb } template Response m_Response_2XXonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, supported := p_supported, privacy := p_privacy, recordRoute := p_recordRoute//for INVITE response }, messageBody := p_mb } template Response m_Response_2XXonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, privacy := p_privacy, recordRoute := p_recordRoute//for INVITE response }, messageBody := p_mb } template Response m_Response_2xxonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb, template charstring p_U2UData) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, recordRoute := p_recordRoute,//for INVITE response userToUser := m_UserToUserData(valueof(p_U2UData)) }, messageBody := p_mb } template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url, SipUrl p_passociated_uri) modifies m_Response_Base:= { msgHeader := { contact := p_contact, serviceRoute := {fieldName:=SERVICE_ROUTE_E, routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}, pAssociatedURI := m_pAssociatedURI({displayName:=omit,addrSpec:=p_passociated_uri}) // PAssociatedURI RFC3455 } } template Response m_Response_2xxonSUBSCRIBE_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_Response_Base:= { msgHeader := { contact := p_contact } } template Response m_Response_2xxonSUBSCRIBE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_Response_Base:= { msgHeader := { contact := p_contact } } template Response m_Response_onMESSAGE_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_Response_Base:= { msgHeader := { contact := p_contact } } template Response m_Response_2xxonMESSAGE_PAccessNetwInfo_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via) modifies m_Response_Base:= { msgHeader := { pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a } } template Response m_Response_2xxonMESSAGE_PCharging_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:= { msgHeader := { pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue, pChargingVector := p_pChargingVector } } template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:= { msgHeader := { pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue, pChargingVector := p_pChargingVector } } template Response m_Response_2xxonMESSAGE_PMediaAuth_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via) modifies m_Response_Base:= { msgHeader := { pMediaAuthorization := m_pMediaAuthorization_fixedValue } } template Response m_Response_2xxonMESSAGE_pPreferredID_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template PPreferredID p_pPreferredID) modifies m_Response_Base:= { msgHeader := { pPreferredID := p_pPreferredID } } template Response m_Response_2xxonUPDATE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:= { msgHeader := { contact := p_contact, contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))}, contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}, maxForwards := omit, recordRoute := p_recordRoute }, messageBody := p_mb } template Response m_Response_3XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit } } template Response m_Response_4XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit } } template Response m_Response_4XXonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, template Contact p_contact ) modifies m_Response_Base:= { msgHeader := { contact := p_contact, maxForwards := omit } } template Response m_Response_onINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:= { 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, charstring 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_SecServer_WWWAuth_UE (template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template SecurityServer p_securityServer, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { securityServer := p_securityServer, wwwAuthenticate := p_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_PAsserted_ContentType (template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template PAssertedID p_pAssertedID, template ContentType p_contentType) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pAssertedID := p_pAssertedID, contentType := p_contentType } } 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) } } template Response mw_Response_PchargingVecFctadrId(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template PChargingVector p_chargingVector, template PChargingFunctionAddresses p_chargingFunctionAddresses, template PPreferredID p_preferredID) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pChargingVector := p_chargingVector, // mw_pChargingVector(p_id,p_paramValue) pChargingFunctionAddresses := p_chargingFunctionAddresses, pPreferredID := p_preferredID } } template Response mw_Response_PchargingFunctionAddr(template StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq, template PChargingFunctionAddresses p_chargingFunctionAddresses) modifies mw_Response_Base:= { statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := { pChargingFunctionAddresses := p_chargingFunctionAddresses } } } // end response_receive }//end modified_templates }//end Message_templates } // end module LibIms_Templates