Compare Revisions

The credentials to download the source code are:
 Username: svnusers
 Password: svnusers

Ignore whitespace Rev 207 → Rev 209

/branches/v3/ttcn/LibIms_Steps.ttcn
File deleted
\ No newline at end of file
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3/ttcn/LibIms_Templates.ttcn
===================================================================
--- v3/ttcn/LibIms_Templates.ttcn (revision 207)
+++ v3/ttcn/LibIms_Templates.ttcn (nonexistent)
@@ -1,4610 +0,0 @@
-/**
- * @author STF471
- * @version $Id$
- * @desc This module provides the templates used by the test component for SIP-IMS tests.
- * This module is part of LibImsV3.
- */
-module LibIms_Templates {
- // LibCommon
- import from LibCommon_DataStrings all;
-
- // LibSip
- import from LibSip_SIPTypesAndValues 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;
-
- // LibXMLTypes
- import from XSD all;
-
- 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(present) charstring mw_international_number_format := pattern "\\+\d+";
-
- template(present) NameAddr mw_SipUrl_SUTinterface(
- template(present) charstring p_host := ?,
- template(present) integer p_port := ?
- ) := {
- displayName := *,
- addrSpec := {
- scheme := "sip:",
- components := {
- sip := {
- userInfo := *,
- hostPort := mw_hostPort(p_host, p_port)
- }
- },
- urlParameters := *,
- headers := *
- }
- }
-
- template(present) Addr_Union mw_UE1_Addr_display(
- template(present) charstring p_displayName
- ) := {
- nameAddr := {
- displayName := p_displayName,
- addrSpec := ?
- }
- }
-
- group subfields {
-
- template(value) SipUrl m_SipUrl_currIpaddr_CSCF(
- template(value) SipUserProfile p_userprofile
- ) := {
- 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(present) SemicolonParam_List mw_semicolonParams_realm(
- template GenValue p_realm
- ) :=
- superset(
- {
- "realm",
- p_realm
- },
- {
- "nonce",
- ?
- },
- {
- "algorithm",
- { tokenOrHost := "AKAv1-MD5" }
- },
- {
- "ik",
- ?
- },
- {
- "ck",
- ?
- }
- );
-
- template(value) SemicolonParam_List m_semicolonParams_language(
- template(omit) GenValue p_language := omit
- ) := {
- {
- "language",
- p_language
- }
- }
-
- template(present) SemicolonParam_List mw_semicolonParams_language(
- template GenValue p_language
- ) := {
- {
- "language",
- p_language
- }
- }
-
- template(value) SemicolonParam_List m_semicolonParams_isub(
- template(omit) GenValue p_address := omit
- ) := {
- {
- "isub",
- p_address
- }
- }
- }
-
- group headerFieldTemplates {
-
- template(value) MinSE m_minSE(
- template(value) DeltaSec p_ds
- ) := {
- fieldName := MIN_SE_E,
- deltaSec := p_ds,
- minSeParam := omit
- }
-
- template(present) PathValue mw_pathvalue(
- template(present) SipUrl p_sipUrl := ?
- ) := {
- nameAddr := {
- displayName := *, // optional charstring
- addrSpec := p_sipUrl // SipUrl
- },
- rrParam := *
- }
-
- template(value) Path m_path(
- template(value) charstring p_host,
- template(value) integer p_port,
- template(value) SipUrl p_sipUrl
- ) modifies m_path_TS := {
- pathValues := {
- {
- nameAddr := {
- displayName := omit, // optional charstring
- addrSpec := p_sipUrl // SipUrl
- },
- rrParam := omit
- }
- }
- }
-
- template(value) Path m_path_TS(
- template(value) charstring p_host,
- template(value) integer p_port
- ) := {
- fieldName := PATH_E,
- pathValues := {
- {
- nameAddr := {
- displayName := omit, // optional charstring
- addrSpec := {
- scheme := c_sipScheme,
- components := {
- sip := {
- userInfo := {
- userOrTelephoneSubscriber := "registrar",
- password := omit
- },
- hostPort := {p_host, p_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(present) Path mw_path(
- template(present) SipUrl p_sipUrl := ?
- ) := {
- fieldName := PATH_E,
- pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
- }
-
- template(value) PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a := {
- fieldName := P_ACCESS_NETWORK_INFO_E,
- accessType := "IEEE-802.11a",
- genericParams := {
- {
- id := "extension-access-info",
- paramValue := { tokenOrHost := "192.1.1.20" }
- }
- }
- }
-
- template(value) PAssertedService m_pAssertedService(
- template(value) PAssertedServiceValue p_pAssertedServiceValue
- ) := {
- fieldName := P_ASSERTED_SERVICE_E,
- pAssertedServiceValue := p_pAssertedServiceValue
- }
-
- template(value) PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue := {
- fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
- chargeAddrParams := {
- {
- id := "ccf",
- paramValue := { tokenOrHost := "192.1.1.1" }
- }, // value is fixed because it is deleted on proxy
- {
- id := "ecf",
- paramValue := { tokenOrHost := "192.1.1.2" }
- } // value is fixed because it is deleted on proxy
- }
- }
-
- template(value) PChargingVector m_pChargingVector(
- template(value) charstring p_icidValue,
- template(omit) SemicolonParam_List p_chargeParams := omit
- ) modifies m_pChargingVector_icid_TS := {
- icidValue := p_icidValue,
- chargeParams := p_chargeParams
- }
-
- // NOTE STF471 change: icidValue extracted from chargeParams, chargeParams removed
- template(value) PChargingVector m_pChargingVector_icid_TS := {
- fieldName := P_CHARGING_VECTOR_E,
- icidValue := c_icid_value,
- chargeParams := omit
- }
-
- template(value) PChargingVector m_pChargingVector_origIoi_fixedValue(
- template(value) GenValue p_homeDomain
- ) modifies m_pChargingVector_icid_TS := {
- chargeParams := {
- {
- id := c_icid_generated_at,
- paramValue := { tokenOrHost := "192.1.1.10" }
- },
- {
- id := c_orig_ioi,
- paramValue := p_homeDomain
- }
- }
- }
-
- template(value) PChargingVector m_pChargingVector_termIoi_fixedValue(
- template(value) GenValue p_homeDomain
- ) modifies m_pChargingVector_icid_TS := {
- chargeParams := {
- {
- id := c_icid_generated_at,
- paramValue := { tokenOrHost := "192.1.1.10" }
- },
- {
- id := c_term_ioi,
- paramValue := p_homeDomain
- }
- }
- }
-
- template(value) PChargingVector m_pChargingVector_accessNetwInfo(
- template(value) GenValue p_homeDomain
- ) modifies m_pChargingVector_icid_TS := {
- chargeParams := {
- {
- id := c_term_ioi,
- paramValue := p_homeDomain
- },
- {
- id := c_access_network_charging_info,
- paramValue := { tokenOrHost := "192.1.1.10" }
- }
- }
- }
-
- // NOTE STF471 change: icidValue added
- template(present) PChargingVector mw_pChargingVector(
- template(present) charstring p_id := ?,
- template GenValue p_paramValue
- ) := {
- fieldName := P_CHARGING_VECTOR_E,
- icidValue := ?,
- chargeParams :=
- superset(
- {
- id := p_id,
- paramValue := p_paramValue
- }
- )
- }
-
- template(value) PMediaAuthorization m_pMediaAuthorization_fixedValue := {
- fieldName := P_MEDIA_AUTHORIZATION_E,
- pMediaAuthorizations := {"A"} // example
- }
-
-
- template(value) PEarlyMedia m_pEarlyMedia_sup := {
- fieldName := P_EARLY_MEDIA_E,
- em_param := {"supported"}
- }
-
-
- template(value) ProxyRequire m_proxyRequire_secAgree := {
- fieldName := PROXY_REQUIRE_E,
- optionsTags := {"sec-agree"}
- }
-
- template(value) PVisitedNetworkID m_pVisitedNetworkID_TS := {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {
- {
- vNetworkSpecToken := "Visited ETSI 1",
- genericParams := omit
- }
- }
- }
-
- template(present) PVisitedNetworkID mw_pVisitedNetworkID(
- template(present) charstring p_vNetworkSpecToken
- ) modifies m_pVisitedNetworkID_TS := {
- vNetWorkSpec := {
- {
- vNetworkSpecToken := p_vNetworkSpecToken,
- genericParams := *
- }
- }
- }
-
- template(value) 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(value) Require m_require := {
- fieldName := REQUIRE_E,
- optionsTags := {}
- }
-
- template(value) Require m_require_secAgree
- modifies m_require := {
- optionsTags := {"sec-agree"}
- }
-
- template(present) Require mw_require_path
- modifies m_require := {
- optionsTags := superset("path")
- }
-
- template(value) Route m_route_interface(
- template(value) ImsInterfaceProfile p_interfaceprofile
- ) modifies m_route_notmatching := {
- 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(value) 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(value) SessionExpires m_se(
- template(value) DeltaSec p_ds
- ) modifies mw_se := {
- deltaSec := p_ds
- }
-
- template(present) SessionExpires mw_se := {
- fieldName := SESSION_EXPIRES_E,
- deltaSec := ?,
- seParam := omit
- }
-
- template(value) Supported m_supported := {
- fieldName := SUPPORTED_E,
- optionsTags := {}
- }
-
- template(value) Supported m_supported_timer
- modifies m_supported := {
- optionsTags := {"timer"}
- }
-
- template(value) Supported m_supported_histinfo
- modifies m_supported := {
- optionsTags := {"histinfo"}
- }
-
-
- template(value) Supported m_supported_fromChange
- modifies m_supported := {
- optionsTags := {"from-change"}
- }
-
- template(value) To m_To_targetRefreshRequest(
- template(value) 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 := { tokenOrHost := f_getRndTag() }
- }
- }
- }
-
- template(value) ViaBody m_ViaBody_virtualUEinPCSCF(
- template(value) charstring p_branch_val,
- template(value) SipUserProfile p_userprofile
- ) := {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy := {
- host := p_userprofile.contactIpaddr,
- portField := p_userprofile.contactPort
- },
- viaParams := {
- {
- id := c_branchId,
- paramValue := {
- tokenOrHost := p_branch_val
- }
- }
- }
- }
-
- template(value) ViaBody m_ViaBody_virtual_XCSCF(
- template(value) charstring p_branch_val,
- template(value) SipUserProfile p_userprofile
- ) modifies m_ViaBody_virtualUEinPCSCF := {
- sentBy := {
- host := p_userprofile.currIpaddr,
- portField := p_userprofile.currPort
- }
- }
-
- template(value) Via m_via_notmatching := {
- fieldName := VIA_E,
- viaBody := {
- {
- sentProtocol := m_SentProtocol("UDP"),
- sentBy := {
- host := "unknown.domain.name",
- portField := 10000
- },
- viaParams := {
- {
- id := c_branchId,
- paramValue := { tokenOrHost := "abcd0000" }
- }
- }
- }
- }
- }
-
- /**
- * @desc WWW-Authenticate header field
- * @param p_challenge value
- */
- template(value) WwwAuthenticate m_wwwAuthenticate(
- template(value) Challenge p_challenge
- ) := {
- fieldName := WWW_AUTHENTICATE_E,
- challenge := p_challenge
- }
-
- /**
- * @desc WWW-Authenticate header field
- * @param p_challenge value
- */
- template(present) WwwAuthenticate mw_wwwAuthenticate(
- template(present) SemicolonParam_List p_semicolonParam_List := ?
- ) := {
- fieldName := WWW_AUTHENTICATE_E,
- challenge := {
- digestCln := p_semicolonParam_List // set of GenericParam
- }
- }
-
- template(present) SemicolonParam_List mw_challenge := superset(mw_ck, mw_ik);
-
- template(present) GenericParam mw_ck := {
- "ck", *
- }
-
- template(present) GenericParam mw_ik := {
- "ik", *
- }
-
- /**
- * @desc AcceptContact header field
- * @param p_semicolonParam_List value
- */
- template(value) AcceptContact m_acceptContact(
- template(omit) SemicolonParam_List p_semicolonParam_List := omit
- ) := {
- fieldName := ACCEPT_CONTACT_E,
- acValues := {
- {
- wildcard := c_WILDCARD,
- acRcParams := p_semicolonParam_List // set of GenericParam
- }
- }
- }
-
- /**
- * @desc Authenticate header field
- * @param p_semicolonParam_List value
- */
- template(present) 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(present) SubscriptionState mw_subscriptionState(
- template(present) charstring p_state := ?
- ) := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- }
-
- // [3455/5.1 ]
- template(value) PAssociatedURI m_pAssociatedURI(
- template(value) NameAddr p_nameAddr
- ) := {
- fieldName := P_ASSOCIATED_URI_E,
- nameAddrList := {
- {
- nameAddr := p_nameAddr,
- genericParams := omit
- }
- }
- }
-
- template(present) SecurityServer mw_securityServer(
- template(present) SecurityMechanism_List p_securityMechanism_List := ?
- ) := {
- fieldName := SECURITY_SERVER_E,
- securityMech := p_securityMechanism_List
- }
-
- template(value) SecurityClient m_securityClient(
- template(value) SecurityMechanism_List p_securityMechanism_List
- ) := {
- fieldName := SECURITY_CLIENT_E,
- securityMech := p_securityMechanism_List
- }
-
- template(value) SecurityVerify m_securityVerify(
- template(value) SecurityMechanism_List p_securityMechanism_List
- ) := {
- fieldName := SECURITY_VERIFY_E,
- securityMech := p_securityMechanism_List
- }
-
- template(value) RSeq m_rseq9999 := {
- fieldName := RSEQ_E,
- responseNum := 9999 // Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
-
- template(value) Expires m_expires(
- template(value) integer p_deltaSec
- ) := {
- fieldName := EXPIRES_E,
- deltaSec := int2str(valueof(p_deltaSec))
- }
-
-
- } // end group headerFieldTemplates
-
- group messageBodyTemplates {
-
- group xmlTemplates {
-
- template(value) XmlBody m_XmlBody_ConfInfo(
- template(value) Conference_type p_confInfo
- ) := {
- conference := p_confInfo
- }
-
- template(value) XmlBody m_XmlBody_CW(
- template(value) Ims_cw p_cw
- ) := {
- cw := p_cw
- }
-
- template(value) XmlBody m_XmlBody_CUG(
- template(value) Cug p_cug
- ) := {
- cug := p_cug
- }
-
- template(value) XmlBody m_XmlBody_MCID(
- template(value) Mcid p_mcid
- ) := {
- mcid := p_mcid
- }
-
- template(value) XmlBody m_XmlBody_PSTNTransit(
- template(value) PSTN_transit p_pstn
- ) := {
- pstnTransit := p_pstn
- }
-
- template(value) XmlBody m_XmlBody_simservs(
- template(value) Simservs p_simservs
- ) := {
- simservs := p_simservs
- }
-
- template(value) XmlBody m_XmlBody_ACR_ICB(
- template(value) Incoming_communication_barring p_icb
- ) := {
- simservs := {
- attr := omit,
- absServiceGroup_list := {},
- extensions := {
- elem_list := valueof(p_icb.attr)
- }
- }
- }
-
- template(value) XmlBody m_XmlBody_ACR_OCB(
- template(value) Outgoing_communication_barring p_ocb
- ) := {
- simservs := {
- attr := omit,
- absServiceGroup_list := {},
- extensions := {
- elem_list := valueof(p_ocb.attr)
- }
- }
- }
-
- template(value) XmlBody m_XmlBody_CDIVN(
- template(value) Comm_div_info_type p_cdivn
- ) := {
- cdivn := p_cdivn
- }
-
- template(value) XmlBody m_XmlBody_Reginfo(
- template(value) Reginfo p_regInfo
- ) := {
- regInfo := p_regInfo
- }
-
- template(value) MessageBody m_messageBodyXML(
- template(value) XmlBody p_xmlBody
- ) := {
- xmlBody := p_xmlBody
- }
-
- template(value) Reginfo m_reginfo(
- template(value) XSD.AnyURI p_user
- ) := {
- full,
- 0,
- {m_registration(p_user)},
- {}
- }
-
- template(value) Registration m_registration(
- template(value) XSD.AnyURI p_user
- ) := {
- p_user, // XSD.anyURI aor
- "a7", // XSD.string id
- init, // enumerated {active,init,terminated} state,
- {}, // record of Contact contact_list optional,
- {} // record of anytype elem_list optional
- }
-
- template(present) XmlBody mw_XmlBody_ConfInfo(
- template(present) Conference_type p_confInfo := ?
- ) := {
- conference := p_confInfo
- }
-
- template(present) XmlBody mw_XmlBody_CUG(
- template(present) Cug p_cug := ?
- ) := {
- cug := p_cug
- }
-
- template(present) XmlBody mw_XmlBody_MCID(
- template(present) Mcid p_mcid := ?
- ) := {mcid := p_mcid}
-
- template(present) XmlBody mw_XmlBody_PSTNTransit(
- template(present) PSTN_transit p_pstn := ?
- ) := {
- pstnTransit := p_pstn
- }
-
- template(present) XmlBody mw_XmlBody_CDIVN(
- template(present) Comm_div_info_type p_cdivn := ?
- ) := {
- cdivn := p_cdivn
- }
-
- template(present) XmlBody mw_XmlBody_simservs(
- template(present) Simservs p_simservs := ?
- ) := {
- simservs := p_simservs
- }
-
- template(present) XmlBody mw_XmlBody_ResourceLists(
- template(present) Resource_lists p_resourceLists := ?
- ) := {
- resourceLists := p_resourceLists
- }
-
- template(present) XmlBody mw_XmlBody_Reginfo(
- template(present) Reginfo p_regInfo := ?
- ) := {
- regInfo := p_regInfo
- }
-
-
- } // end group xmlTemplates
-
- group acrCbTemplates {
-
- template(value) Incoming_communication_barring m_ICB(
- template(value) RuleType p_ruleType
- ) := {
- active := omit,
- attr := omit,
- ruleset := {
- {p_ruleType}
- }
- }
-
- template(value) Outgoing_communication_barring m_OCB(
- template(value) RuleType p_ruleType
- ) := {
- active := omit,
- attr := omit,
- ruleset := {
- {p_ruleType}
- }
- }
-
- template(value) RuleType m_ruleType_actionFalse(
- template(value) ConditionsType p_condition
- ) := {
- id := "rule66",
- conditions := p_condition,
- actions := {
- elem_list := {"<false/>"}
- },
- transformations := omit
- }
-
- template(value) ConditionsType m_conditionsType_identity(
- template(value) charstring p_id
- ) := {
- {
- {
- identity_list := {
- {
- {
- {
- one := {
- id := p_id,
- elem := omit
- }
- }
- }
- }
- }
- }
- }
- }
-
-
- } // end group acr_cbTemplates
-
- group cugTemplates {
-
- template(value) Cug m_CUG(
- template(omit) CugRequestType p_crt := omit,
- template(omit) NetworkIdentityType p_nit := omit,
- template(omit) SixteenbitType p_cibc := omit,
- template(omit) TwobitType p_cci := omit
- ) := {
- active := omit,
- attr := omit,
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator := p_cci
- }
-
- template(present) 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(value) CugRequestType m_cugReqType(
- template(value) boolean p_outAccessRequest,
- template(value) CugIndexType p_cugIndex
- ) := {
- outgoingAccessRequest := p_outAccessRequest,
- cugIndex := p_cugIndex
- }
-
- template(present) CugRequestType mw_cugReqType(
- template(present) boolean p_outAccessRequest := ?,
- template(present) CugIndexType p_cugIndex := ?
- ) := {
- outgoingAccessRequest := p_outAccessRequest,
- cugIndex := p_cugIndex
- }
-
- } // end group cugTemplates
-
- group cwTemplates {
-
- template(value) Ims_cw m_CW(
- template(value) TEmptyType p_cwi
- ) := {
- attr := omit,
- communication_waiting_indication := p_cwi,
- elem_list := {}
- }
-
- template(present) Ims_cw mw_ims_cw(
- template(present) TEmptyType p_cwi := ?
- ) := {
- attr := *,
- communication_waiting_indication := p_cwi,
- elem_list := ?
- }
-
- } // end group cwTemplates
-
- group mcidTemplates {
-
- template(value) Mcid m_mcid_request_mcidIndicatorTrue := {
- choice := {
- request := {
- mcidRequestIndicator := "1",
- holdingIndicator := "0"
- }
- }
- }
-
- template(value) Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue
- modifies m_mcid_request_mcidIndicatorTrue := {
- choice := {
- request := {
- holdingIndicator := "1"
- }
- }
- }
-
- template(present) Mcid mw_mcid_request_mcidIndicatorTrue
- modifies m_mcid_request_mcidIndicatorTrue := {
- choice := {
- request := {
- holdingIndicator := ?
- }
- }
- }
-
- template(value) Mcid m_mcid_response_mcidIndicatorTrue := {
- choice := {
- response := {
- mcidResponseIndicator := "1",
- holdingProvidedIndicator := "0"
- }
- }
- }
-
- template(present) Mcid mw_mcid_response_mcidIndicatorTrue
- modifies m_mcid_response_mcidIndicatorTrue := {
- choice := {
- response := {
- holdingProvidedIndicator := ?
- }
- }
- }
-
- template(present) Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse
- modifies mw_mcid_response_mcidIndicatorTrue := {
- choice := {
- response := {
- holdingProvidedIndicator := "0"
- }
- }
- }
-
- template(present) Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue
- modifies mw_mcid_response_mcidIndicatorTrue := {
- choice := {
- response := {
- holdingProvidedIndicator := "1"
- }
- }
- }
-
- } // end group mcidTemplates
-
- group pstnTemplates {
-
- template(value) PSTN_transit m_PSTN_transit_BC1(
- template(value) BearerCapabilityType p_bct
- ) := {
- bearerInfomationElement_list := {p_bct},
- highLayerCompatibility_list := {},
- lowLayerCompatibility := omit,
- progressIndicator_list := {},
- display_list := {}
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC2(
- template(value) BearerCapabilityType p_bct,
- template(value) BearerCapabilityType p_bct2
- ) modifies m_PSTN_transit_BC1 := {
- bearerInfomationElement_list := {p_bct, p_bct2}
- }
-
- template(present) PSTN_transit mw_PSTN_transit_bc(
- template(present) BearerCapabilityType p_bct := ?,
- template(present) BearerCapabilityType p_bct2 := ?
- ) := {
- bearerInfomationElement_list := {p_bct, p_bct2},
- highLayerCompatibility_list := {*, *},
- lowLayerCompatibility := *,
- progressIndicator_list := ?,
- display_list := ?
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_HLC1(
- template(value) BearerCapabilityType p_bct,
- template(value) HighLayerCompatibilityType p_hlc
- ) modifies m_PSTN_transit_BC1 := {
- highLayerCompatibility_list := {p_hlc}
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_HLC2(
- template(value) BearerCapabilityType p_bct,
- template(value) HighLayerCompatibilityType p_hlc,
- template(value) HighLayerCompatibilityType p_hlc2
- ) modifies m_PSTN_transit_BC1_HLC1 := {
- highLayerCompatibility_list := {p_hlc, p_hlc2}
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_LLC(
- template(value) BearerCapabilityType p_bct,
- template(value) LowLayerCompatibilityType p_llc
- ) modifies m_PSTN_transit_BC1 := {
- lowLayerCompatibility := p_llc
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_PI1(
- template(value) BearerCapabilityType p_bct,
- template(value) ProgressIndicatorType p_pi1
- ) modifies m_PSTN_transit_BC1 := {
- progressIndicator_list := {p_pi1}
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_PI2(
- template(value) BearerCapabilityType p_bct,
- template(value) ProgressIndicatorType p_pi1,
- template(value) ProgressIndicatorType p_pi2
- ) modifies m_PSTN_transit_BC1_PI1 := {
- progressIndicator_list := {p_pi1, p_pi2}
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_PI3(
- template(value) BearerCapabilityType p_bct,
- template(value) ProgressIndicatorType p_pi1,
- template(value) ProgressIndicatorType p_pi2,
- template(value) ProgressIndicatorType p_pi3
- ) modifies m_PSTN_transit_BC1_PI2 := {
- progressIndicator_list := {p_pi1, p_pi2, p_pi3}
- }
-
- template(value) PSTN_transit m_PSTN_transit_BC1_HLC1_PI1(
- template(value) BearerCapabilityType p_bct,
- template(value) HighLayerCompatibilityType p_hlc,
- template(value) ProgressIndicatorType p_pi1
- ) modifies m_PSTN_transit_BC1_HLC1 := {
- progressIndicator_list := {p_pi1}
- }
-
- template(value) BearerCapabilityType m_BearerCapabilityType(
- template(value) Bit5 p_InfoTrfCap
- ) := {
- bCoctet3 := {
- codingStandard := "00", // Coding standard = CCITT standardized coding
- informationTransferCabability := bit2str(valueof(p_InfoTrfCap)) // Information transfer capability
- },
- bCoctet4 := {
- transferMode := "00", // Coding standard = CCITT standardized coding
- informationTransferRate := "10000" // 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(present) BearerCapabilityType mw_BearerCapabilityType(
- template(present) BCOctet3Type p_BCOctet3Type := ?,
- template(present) BCOctet4Type p_BCOctet4Type := ?
- ) := {
- bCoctet3 := p_BCOctet3Type,
- bCoctet4 := p_BCOctet4Type,
- bCoctet4_1 := *,
- bCoctet5 := *,
- bCoctet5a := *,
- bCoctet5bV110 := *,
- bCoctet5bV120 := *,
- bCoctet5c := *,
- bCoctet5d := *,
- bCoctet6 := *,
- bCoctet7 := *,
- bCoctet7a := *,
- bCoctet7b := *
- }
-
- template(present) BearerCapabilityType mw_BearerCapabilityType_TrfCap(
- template(value) Bit5 p_InfoTrfCap
- ) modifies m_BearerCapabilityType := {
- bCoctet4_1 := *,
- bCoctet5 := *,
- bCoctet5a := *,
- bCoctet5bV110 := *,
- bCoctet5bV120 := *,
- bCoctet5c := *,
- bCoctet5d := *,
- bCoctet6 := *,
- bCoctet7 := *,
- bCoctet7a := *,
- bCoctet7b := *
- }
-
- template(value) ProgressIndicatorType m_ProgressIndicatorType(
- template(value) Bit7 p_progDesc
- ) := {
- progressOctet3 := {
- codingStandard := "00",
- location := "0000"
- },
- progressOctet4 := {
- progressDescription := bit2str(valueof(p_progDesc))
- }
- }
-
- template(present) ProgressIndicatorType mw_ProgressIndicatorType(
- template(present) ProgressOctet3Type p_ProgressOctet3Type := ?,
- template(present) ProgressOctet4Type p_ProgressOctet4Type := ?
- ) := {
- progressOctet3 := p_ProgressOctet3Type,
- progressOctet4 := p_ProgressOctet4Type
- }
-
- template(value) LowLayerCompatibilityType m_LowLayerCompatibilityType(
- template(value) Bit5 p_InfoTrfCap
- ) := {
- lLOctet3 := {
- codingStandard := "00", // Coding standard = CCITT standardized coding
- informationTransferCapability := bit2str(valueof(p_InfoTrfCap)) // Information transfer capability
- },
- lLOctet3a := omit,
- lLOctet4 := {
- transferMode := "00", // Coding standard = CCITT standardized coding
- informationTransferRate := "10000" // 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 := "11",
- userInfoLayer3Protocol := "00010"
- },
- lLOctet7aUserSpecific := omit,
- lLOctet7aX25 := omit,
- lLOctet7bX25 := omit,
- lLOctet7c := omit,
- lLOctet7aTR9577 := omit,
- lLOctet7bTR9577 := omit
- }
-
- template(present) LowLayerCompatibilityType mw_LowLayerCompatibilityType(
- template(present) LLOctet3Type p_LLOctet3 := ?,
- template(present) LLOctet4Type p_LLOctet4 := ?,
- template(present) 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(value) HighLayerCompatibilityType m_HighLayerCompatibilityType(
- template(value) Bit7 p_HLOctet4
- ) := {
- hLOctet3 := {
- codingStandard := "00",
- interpretation := "100",
- presentationMethod := "01"
- },
- hLOctet4 := {
- highLayerCharacteristics := bit2str(valueof(p_HLOctet4))
- },
- hLOctet4aMaintenance := omit,
- hLOctet4Audio := omit
- }
-
- template(present) HighLayerCompatibilityType mw_HighLayerCompatibilityType(
- template(present) HLOctet3Type p_HLOctet3 := ?,
- template(present) HLOctet4Type p_HLOctet4 := ?
- ) := {
- hLOctet3 := p_HLOctet3,
- hLOctet4 := p_HLOctet4,
- hLOctet4aMaintenance := *,
- hLOctet4Audio := *
- }
-
- } // end group pstnTemplates
-
- group cdivnTemplates {
-
- /* general CDIVN subscription */
- template(value) Comm_div_info_type m_CDIVN_sub := {
- entity := "comm-div-info",
- comm_div_subs_info := {
- attr := omit,
- comm_div_selection_criteria := {
- attr := omit,
- 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 group cdivnTemplates
-
- group resourceListsTemplates {
-
- template(value) Resource_lists m_ResourceList_2Users(
- template(value) EntryType p_user1,
- template(value) EntryType p_user2
- ) := {
- sequence_list := {
- {
- list := {
- name := omit,
- attr := omit,
- display_name := omit,
- sequence_list := {
- {
- choice := {
- entry := p_user1
- }
- },
- {
- choice := {
- entry := p_user2
- }
- }
- },
- elem_list := {}
- }
- }
- }
- }
-
- template(value) EntryType m_EntryUser(
- template(value) SipUrl p_user
- ) := {
- uri :=
- p_user.components.sip.userInfo.userOrTelephoneSubscriber
- & "@"
- & p_user.components.sip.hostPort.host,
- attr := omit,
- display_name := omit,
- elem_list := {}
- }
-
- } // end group resourceListsTemplates
-
- group ims3GppTemplates {
-
- template(present) TIMS3GPP mw_Ims_3gpp_CW := {
- version := 1.0,
- attr := *,
- choice := {
- alternative_service := {
- attr := *,
- type_ := ?,
- reason := ?,
- elem_list := ?
- }
- },
- elem_list := ?
- }
-
- } // end group ims3gppTemplates
-
- group confTemplates {
-
- template(value) XSD.Boolean m_boolXSD_true := true;
-
- template(value) XSD.Boolean m_boolXSD_false := false;
-
- template(value) urn_ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(
- template(value) Media_status_type p_status
- ) := {
- id := "1",
- attr := omit,
- display_text := omit,
- type_ := omit,
- label_ := omit,
- src_id := omit,
- status := p_status,
- elem_list := {}
- }
-
- template(value) Endpoint_type m_endpoint(
- template(omit) charstring p_Uri := omit,
- template(omit) Endpoint_status_type p_epStatus := omit,
- template(omit) Joining_type p_joinMethod := omit,
- template(omit) Disconnection_type p_discMethod := omit,
- template(value) urn_ietf_params_xml_ns_conference_info.Media_type p_mediastatus
- ) := {
- entity := p_Uri,
- state := full,
- attr := omit,
- display_text := omit,
- referred := omit,
- status := p_epStatus,
- joining_method := p_joinMethod,
- joining_info := omit,
- disconnection_method := p_discMethod,
- disconnection_info := omit,
- media_list := {p_mediastatus}, // optional,
- call_info := omit,
- elem_list := {}
- }
-
- template(value) User_type m_1user(
- template(omit) charstring p_Uri := omit,
- template(value) Endpoint_type p_endpoint
- ) := {
- entity := p_Uri,
- state := full,
- attr := omit,
- display_text := omit,
- associated_aors := omit,
- roles := omit,
- languages := omit,
- cascaded_focus := omit,
- endpoint_list := {p_endpoint}, // optional,
- elem_list := {}
- }
-
- template(value) Users_type m_users_1user_full(
- template(value) User_type p_user
- ) := {
- state := full,
- attr := omit,
- user_list := {p_user},
- elem_list := {}
- }
-
- template(value) Users_type m_users_2user_full(
- template(value) User_type p_user,
- template(value) User_type p_user2
- ) modifies m_users_1user_full := {
- user_list := {p_user, p_user2}
- }
-
- template(value) Conference_state_type m_conference_state(
- template(value) UnsignedInt p_nUsers,
- template(value) boolean p_active,
- template(value) boolean p_locked
- ) := {
- attr := omit,
- user_count := p_nUsers,
- active := p_active,
- locked := p_locked,
- elem_list := {}
- }
-
- template(value) Conference_type m_ci_cUri_cState_userEntity(
- template(value) charstring p_cUri,
- template(value) Conference_state_type p_cState,
- template(value) Users_type p_users
- ) := {
- entity := p_cUri,
- state := full,
- version := 1,
- attr := omit,
- conference_description := omit,
- host_info := omit,
- conference_state := p_cState,
- users := p_users,
- sidebars_by_ref := omit,
- sidebars_by_val := omit,
- elem_list := {}
- }
-
- template(present) 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 modifiedTemplates {
-
- group requestSend {
-
- template(value) ACK_Request m_ACK_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit
- ) modifies m_ACK_Request_Base := {
- msgHeader := {route := p_route}
- }
-
- template(value) ACK_Request m_ACK_Request_AS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit
- ) modifies m_ACK_Request_IMS := {
- msgHeader := {
- route := p_route,
- recordRoute := p_recordRoute
- }
- }
-
- template(value) ACK_Request m_ACK_Request_sdp_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) MessageBody p_mb,
- template(omit) Route p_route := omit
- ) modifies m_ACK_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- route := p_route
- },
- messageBody := p_mb
- }
-
- template(value) ACK_Request m_ACK_Request_Mime_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) MessageBody p_mb,
- template(omit) Route p_route := omit
- ) modifies m_ACK_Request_Base := {
- msgHeader := {
- contentLength := {
- fieldName := CONTENT_LENGTH_E,
- len := f_MessageBodyLength(valueof(p_mb))
- },
- contentType := {
- fieldName := CONTENT_TYPE_E,
- mediaType := c_mimeMultipart
- },
- route := p_route
- },
- messageBody := p_mb
- }
-
- template(value) BYE_Request m_BYE_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit
- ) modifies m_BYE_Request_Base := {
- msgHeader := {
- route := p_route,
- recordRoute := p_recordRoute // used in case of AS as TS - for ISC interface
- }
- } // end of temlate m_BYE_Request_IMS
-
- template(value) BYE_Request m_BYE_Request_Reason_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(value) GenValue p_cause
- ) modifies m_BYE_Request_Base := {
- msgHeader := {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template(value) BYE_Request m_BYE_Request_UserToUser_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(value) UserToUser.uuiData p_U2UData
- ) modifies m_BYE_Request_Base := {
- msgHeader := {
- route := p_route,
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template(value) BYE_Request m_BYE_Request_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit
- ) modifies m_BYE_Request_Base := {
- msgHeader := {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- route := p_route
- }
- }
-
- template(value) CANCEL_Request m_CANCEL_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit
- ) modifies m_CANCEL_Request_Base := {
- msgHeader := {route := p_route}
- }
-
- template(value) CANCEL_Request m_CANCEL_Request_Reason_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(value) integer p_cause
- ) modifies m_CANCEL_Request_IMS := {
- msgHeader := {reason := m_Reason(p_cause)}
- }
-
- template(value) CANCEL_Request m_CANCEL_Request_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit
- ) modifies m_CANCEL_Request_IMS := {
- }
-
- /**
- * @desc INFO message
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_mb
- */
- template(value) INFO_Request m_INFO_Request_IMS_Base(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) MessageBody p_mb
- ) modifies m_INFO_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb))
- },
- messageBody := p_mb
- }
-
- /**
- * @desc INFO message
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_mb
- */
- template(value) INFO_Request m_INFO_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) MessageBody p_mb
- ) modifies m_INFO_Request_IMS_Base := {
- msgHeader := {
- contentType := m_contentType(c_sdpApplication)
- }
- }
-
- /**
- * @desc INFO message
- * @desc
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_mb
- */
- template(value) INFO_Request m_INFO_Request_Mime_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) MessageBody p_mb
- ) modifies m_INFO_Request_IMS_Base := {
- msgHeader := {
- contentType := m_contentType(c_mimeMultipart)
- }
- }
-
- template(value) INFO_Request m_INFO_Request_Xml_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) MessageBody p_mb
- ) modifies m_INFO_Request_IMS_Base := {
- msgHeader := {
- contentType := m_contentType(c_xmlApplication)
- }
- }
-
- template(value) INVITE_Request m_INVITE_Request_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb
- ) modifies m_INVITE_Request_noBody_UE := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication)
- },
- messageBody := p_mb
- }
-
- template(value) INVITE_Request m_INVITE_Request_noBody_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit
- ) modifies m_INVITE_Request_Base := {
- msgHeader := {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- }
- }
-
- template(value) INVITE_Request m_INVITE_Request_Allow_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb,
- template(value) LibSip_SIPTypesAndValues.Allow p_allow
- ) modifies m_INVITE_Request_UE := {
- msgHeader := {allow := p_allow}
- }
-
- template(value) INVITE_Request m_INVITE_Request_noBody_Allow_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) LibSip_SIPTypesAndValues.Allow p_allow
- ) modifies m_INVITE_Request_noBody_UE := {
- msgHeader := {allow := p_allow}
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- */
- template(value) INVITE_Request m_INVITE_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb
- ) modifies m_INVITE_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- * @param p_historyInfo
- */
- template(value) INVITE_Request m_INVITE_Request_HistoryInfo_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb,
- template(value) HistoryInfo p_historyInfo
- ) modifies m_INVITE_Request_IMS := {
- msgHeader := {
- historyInfo := p_historyInfo
- }
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- */
- template(value) INVITE_Request m_INVITE_Request_Mime_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb
- ) modifies m_INVITE_Request_IMS := {
- msgHeader := {
- contentType := m_contentType(c_mimeMultipart)
- }
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- */
- template(value) INVITE_Request m_INVITE_Request_IMS_noBody(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit
- ) 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
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- * @param p_pAssertedID
- * @param p_privacy
- */
- template(value) INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb,
- template(value) PAssertedID p_pAssertedID,
- template(value) Privacy p_privacy
- ) modifies m_INVITE_Request_Mime_IMS := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_acceptContact
- * @param p_pAssertedID
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- */
- template(value) INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) AcceptContact p_acceptContact,
- template(value) PAssertedID p_pAssertedID,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb
- ) modifies m_INVITE_Request_Base := {
- msgHeader := {
- acceptContact := p_acceptContact,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- 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
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_pAssertedID
- * @param p_privacy
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- */
- template(value) INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) PAssertedID p_pAssertedID,
- template(value) Privacy p_privacy,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb
- ) modifies m_INVITE_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- 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
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- * @param p_pAssertedService
- */
- template(value) INVITE_Request m_INVITE_Request_PAssertedService_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb,
- template(value) PAssertedService p_pAssertedService
- ) modifies m_INVITE_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- pAssertedService := p_pAssertedService
- },
- messageBody := p_mb
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- */
- template(value) INVITE_Request m_INVITE_Request_PEarlyMedia_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb
- ) modifies m_INVITE_Request_IMS := {
- msgHeader := {
- pEarlyMedia := m_pEarlyMedia_sup
- }
- }
-
- template(value) INVITE_Request m_INVITE_Request_PPreferred_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb,
- template(value) PPreferredID p_pPreferredID
- ) modifies m_INVITE_Request_UE := {
- msgHeader := {
- pPreferredID := p_pPreferredID
- }
- }
-
- template(value) INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb,
- template(value) PPreferredID p_pPreferredID,
- template(value) Privacy p_privacy
- ) modifies m_INVITE_Request_UE := {
- msgHeader := {
- pPreferredID := p_pPreferredID,
- privacy := p_privacy
- }
- }
-
- template(value) INVITE_Request m_INVITE_Request_SessionExpires_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb,
- template(value) SessionExpires p_se
- ) modifies m_INVITE_Request_UE := {
- msgHeader := {
- sessionExpires := p_se
- }
- }
-
- template(value) INVITE_Request m_INVITE_Request_minSE_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb,
- template(value) MinSE p_minSE
- ) modifies m_INVITE_Request_UE := {
- msgHeader := {
- minSE := p_minSE
- }
- }
-
- /**
- * @desc INVITE message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_contact
- * @param p_require
- * @param p_route
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- * @param p_minSE
- */
- template(value) INVITE_Request m_INVITE_Request_minSE_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb,
- template(value) MinSE p_minSE
- ) modifies m_INVITE_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- template(value) INVITE_Request m_INVITE_Request_User2UserData_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Contact p_contact,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb,
- template(value) UserToUser.uuiData p_U2UData
- ) modifies m_INVITE_Request_IMS := {
- msgHeader := {
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_MBody_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) MessageBody p_mb
- ) modifies m_MESSAGE_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(m_MBody_longPlainText)),
- contentType := m_contentType(c_plainText),
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_NoBody_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit
- ) modifies m_MESSAGE_Request_Base := {
- msgHeader := {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_PCharging_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) GenValue p_homeDomain
- ) modifies m_MESSAGE_Request_NoBody_UE := {
- msgHeader := {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingVector_origIoi_fixedValue(p_homeDomain)
- }
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_PCharging_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit
- ) modifies m_MESSAGE_Request_NoBody_UE := {
- msgHeader := {
- pAccessNetworkInfo := omit,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := p_pChargingVector
- }
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_PMediaAuth_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit
- ) modifies m_MESSAGE_Request_NoBody_UE := {
- msgHeader := {
- pMediaAuthorization := m_pMediaAuthorization_fixedValue
- }
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_PPreferred_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit,
- template(value) PPreferredID p_pPreferredID
- ) modifies m_MESSAGE_Request_NoBody_UE := {
- msgHeader := {
- pPreferredID := p_pPreferredID
- }
- }
-
- template(value) MESSAGE_Request m_MESSAGE_Request_1300Bytes_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) Supported p_supported := omit
- ) modifies m_MESSAGE_Request_NoBody_UE := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(m_MBody_longPlainText)),
- contentType := m_contentType(c_plainText)
- },
- messageBody := m_MBody_longPlainText
- }
-
- template(value) NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) MessageBody p_mb
- ) modifies m_NOTIFY_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_xmlApplication),
- event := {
- fieldName := EVENT_E,
- eventType := "conference",
- eventParams := omit
- },
- subscriptionState := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := "active",
- substateParams := omit
- },
- expires := m_expires(3600)
- },
- messageBody := p_mb
- }
-
- template(value) NOTIFY_Request m_NOTIFY_Request_Xml_IMS_RegInfo(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) MessageBody p_mb
- ) modifies m_NOTIFY_Request_Base := {
- msgHeader := {
- contact := p_contact,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_xmlreginfoApplication),
- event := m_Event_reg,
- subscriptionState := m_SubscriptionState_active,
- expires := m_expires(3600)
- },
- messageBody := p_mb
- }
-
- template(value) PRACK_Request m_PRACK_Request_sdp(
- template(value) SipUrl p_requestUri,
- template(omit) CallId p_callId := omit,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) RAck p_RAck,
- template(value) MessageBody p_mb
- ) modifies m_PRACK_Request_Base := {
- requestLine := {requestUri := p_requestUri},
- msgHeader := {
- callId := p_callId,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- cSeq := m_cSeq(p_cSeq.seqNumber, "PRACK"),
- fromField := p_from,
- rAck := p_RAck,
- toField := p_to,
- via := p_via
- },
- messageBody := p_mb
- }
-
- template(value) PUBLISH_Request m_PUBLISH_Request_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Event p_event := omit,
- template(omit) RAck p_RAck := omit,
- template(value) MessageBody p_mb,
- template(omit) Route p_route := omit
- ) modifies m_PUBLISH_Request_Base := {
- requestLine := {requestUri := p_requestUri},
- msgHeader := {
- callId := p_callId,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_plainText /*c_sdpApplication*/),
- cSeq := m_cSeq(p_cSeq.seqNumber, "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(value) PUBLISH_Request m_PUBLISH_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Event p_event := omit,
- template(omit) RAck p_RAck := omit,
- template(value) MessageBody p_mb,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) PChargingVector p_pChargingVector := omit
- ) modifies m_PUBLISH_Request_UE := {
- msgHeader := {
- recordRoute := p_recordRoute,
- pChargingVector := p_pChargingVector
- }
- }
-
- /**
- * @desc REFER message exchanged at Mw
- * @param p_requestUri
- * @param p_callId
- * @param p_cSeq
- * @param p_contact
- * @param p_from
- * @param p_to
- * @param p_via
- * @param p_referTo
- * @param p_referredBy
- * @param p_require
- * @param p_route
- * @param p_recordRoute
- * @param p_supported
- * @param p_pChargingVector
- * @param p_mb
- */
- template(value) REFER_Request m_REFER_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(omit) Contact p_contact := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) ReferTo p_referTo,
- template(omit) ReferredBy p_referredBy := omit,
- template(omit) Require p_require := omit,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(omit) Supported p_supported := omit,
- template(omit) PChargingVector p_pChargingVector := omit,
- template(value) MessageBody p_mb
- ) modifies m_REFER_Request_Base := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- 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(value) REGISTER_Request m_REGISTER_Request_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) Authorization p_authorization := omit,
- template(omit) ProxyRequire p_proxyRequire := omit,
- template(omit) Require p_require := omit,
- template(omit) SecurityClient p_securityClient := omit,
- template(omit) SecurityVerify p_securityVerify := omit,
- template(omit) Supported p_supported := omit
- ) 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(value) REGISTER_Request m_REGISTER_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(omit) CallId p_callId := omit,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) Authorization p_authorization := omit,
- template(value) charstring p_host,
- template(value) integer p_port
- ) 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(p_host, p_port),
- pChargingVector := m_pChargingVector_icid_TS,
- pVisitedNetworkID := m_pVisitedNetworkID_TS,
- require := {
- fieldName := REQUIRE_E,
- optionsTags := {"path"}
- },
- toField := p_to,
- via := p_via
- }
- }
-
- template(value) REGISTER_Request m_REGISTER_Request_IMS_3party(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) Authorization p_authorization := omit,
- template(value) charstring p_host,
- template(value) integer p_port,
- template(omit) Path p_path := omit
- ) modifies m_REGISTER_Request_IMS := {
- msgHeader := {path := p_path}
- }
-
- template(value) REGISTER_Request m_REGISTER_Request_expires_IMS(
- template(value) SipUrl p_requestUri,
- template(omit) CallId p_callId := omit,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) Authorization p_authorization := omit,
- template(value) charstring p_host,
- template(value) integer p_port,
- template(value) DeltaSec p_deltaSec
- ) modifies m_REGISTER_Request_IMS := {
- msgHeader := {
- expires := m_expires(str2int(valueof(p_deltaSec)))
- }
- }
-
- template(value) SUBSCRIBE_Request m_SUBSCRIBE_Request_UE(
- template(value) SipUrl p_requestUri,
- template(omit) CallId p_callId := omit,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) Route p_route := omit
- ) modifies m_SUBSCRIBE_Request_Base := {
- requestLine := {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader := {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := m_cSeq(p_cSeq.seqNumber, "SUBSCRIBE"),
- event := m_Event_reg,
- expires := m_Expires_600000,
- route := p_route
- }
- }
-
- template(value) SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) 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 := m_contentLength(f_MessageBodyLength(p_mb)),
- cSeq := m_cSeq(p_cSeq.seqNumber, "SUBSCRIBE"),
- event := m_Event_reg,
- expires := m_Expires_600000
- },
- messageBody := p_mb
- }
-
- template(value) SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_event_UE(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) MessageBody p_mb,
- template(value) Event p_event,
- template(value) charstring p_contentType
- ) modifies m_SUBSCRIBE_Request_mb_UE := {
- msgHeader := {
- contentType := m_contentType(p_contentType),
- event := p_event
- }
- }
-
- template(value) SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_SUBSCRIBE_Request_Base := {
- requestLine := {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader := {
- contact := p_contact,
- cSeq := m_cSeq(p_cSeq.seqNumber, "SUBSCRIBE"),
- event := m_Event_reg,
- expires := m_Expires_600000
- }
- }
-
- template(value) SUBSCRIBE_Request m_SUBSCRIBE_Request_Event(
- template(value) SipUrl p_requestUri,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) Event p_event
- ) modifies m_SUBSCRIBE_Request_IMS := {
- msgHeader := {
- event := p_event
- }
- }
-
- } // end group requestSend
-
- group requestReceive {
-
- template(present) ACK_Request mw_ACK_Request_noPaccessNetworkInfo(
- template CallId p_callId
- ) modifies mw_ACK_Request_Base := {
- msgHeader := {
- pAccessNetworkInfo := omit
- }
- }
-
- template(present) ACK_Request mw_ACK_Request_PchargingVector(
- template CallId p_callId,
- template(present) PChargingVector p_pChargingVector := ?
- ) modifies mw_ACK_Request_Base := {
- msgHeader := {
- pChargingVector := p_pChargingVector
- }
- }
-
- template(present) BYE_Request mw_BYE_Request_noPChargingFunction_UE(
- template CallId p_callId
- ) modifies mw_BYE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template(present) BYE_Request mw_BYE_Request_via_PChargingVector_UE(
- template CallId p_callId,
- template(present) PChargingVector p_pChargingVector := ?,
- template(present) Via p_via := ?
- ) modifies mw_BYE_Request_Base := {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- via := p_via
- }
- }
-
- template(present) BYE_Request mw_BYE_Request_via_UE(
- template CallId p_callId,
- template(present) Via p_via := ?
- ) modifies mw_BYE_Request_Base := {
- msgHeader := {
- via := p_via
- }
- }
-
- template(present) BYE_Request mw_BYE_Request_route(
- template CallId p_callId,
- template(present) Route p_route := ?
- ) modifies mw_BYE_Request_Base := {
- msgHeader := {
- route := p_route
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_noPChargingFunction
- modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_PChargingFunction
- modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := ?
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_NoPCharging
- modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_NoPChargingPreferred
- modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit,
- pPreferredID := omit
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred(
- template(present) PAssertedID p_pAssertedID := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact(
- template(present) PAssertedID p_pAssertedID := ?,
- template(present) AcceptContact p_acceptContact := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- acceptContact := p_acceptContact
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_RecordRoute_Via(
- template(present) RecordRoute p_recordRoute := ?,
- template(present) Via p_via := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- recordRoute := p_recordRoute,
- via := p_via
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_route(
- template(present) Route p_route := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- route := p_route
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_require(
- template(present) Require p_require := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- require := p_require
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_supported(
- template(present) Supported p_supported := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- supported := p_supported
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_SessionExpires(
- template(present) SessionExpires p_sessionExpires := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- sessionExpires := p_sessionExpires
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_User2UserData(
- template(present) UserToUser.uuiData p_U2UData := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- userToUser := mw_UserToUserData(p_U2UData)
- }
- }
-
- template(present) 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(present) INVITE_Request mw_INVITE_Request_IMS_requestLine(
- template PChargingVector p_pChargingVector,
- template RecordRoute p_recordRoute,
- template Route p_route,
- template Via p_via,
- template(present) SipUrl p_requestUri := ?
- ) modifies mw_INVITE_Request_IMS := {
- requestLine := {
- requestUri := p_requestUri
- },
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- }
- }
-
- template(present) 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(present) PAssertedID p_pAssertedID := ?
- ) modifies mw_INVITE_Request_IMS := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template(present) 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_IMS := {
- messageBody := ?
- }
-
- template(present) INVITE_Request mw_INVITE_Request_IMS_cug(
- template PChargingVector p_pChargingVector,
- template RecordRoute p_recordRoute,
- template Route p_route,
- template Via p_via,
- template(present) Cug p_cug := ?
- ) modifies mw_INVITE_Request_IMS := {
- messageBody := (
- mw_MBody_XML(mw_XmlBody_CUG(p_cug)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug))
- )
- }
-
- template(present) 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_IMS := {
- messageBody := (
- mw_MBody_XML(complement(mw_XmlBody_CUG(?))),
- mw_MBody_MIMESdpXml(?, complement(mw_XmlBody_CUG(?)))
- )
- }
-
- template(present) INVITE_Request mw_INVITE_Request_IMS_pstn(
- template PChargingVector p_pChargingVector,
- template RecordRoute p_recordRoute,
- template Route p_route,
- template Via p_via,
- template(present) PSTN_transit p_pstn := ?
- ) modifies mw_INVITE_Request_IMS := {
- messageBody := (
- mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn))
- )
- }
-
- /**
- * @desc Await INVITE using topology hiding
- */
- template(present) INVITE_Request mw_INVITE_Request_TH
- modifies mw_INVITE_Request_TH_R10 := {
- msgHeader := {
- pChargingVector := omit
- }
- }
-
- template(present) INVITE_Request mw_INVITE_Request_TH_R10
- modifies mw_INVITE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit
- }
- }
-
- /**
- * @desc Await INVITE without PAsserted and Privacy
- * @param p_from
- */
- template(present) 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
- * @param p_from
- * @param p_pAssertedID
- * @param p_privacy
- */
- template(present) INVITE_Request mw_INVITE_Request_PassertedPrivacy(
- template From p_from,
- template(present) PAssertedID p_pAssertedID := ?,
- template(present) Privacy p_privacy := ?
- ) modifies mw_INVITE_Request_noPasserted_noPrivacy := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- /**
- * @desc Await INVITE with PAsserted and Privacy
- * @param p_from
- * @param p_pAssertedID
- * @param p_privacy
- */
- template(present) INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy(
- template From p_from,
- template PAssertedID p_pAssertedID,
- template(present) Privacy p_privacy := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy ifpresent
- }
- }
-
- /**
- * @desc Await INVITE with history info
- * @param p_historyInfo
- */
- template(present) INVITE_Request mw_INVITE_Request_HistoryInfo(
- template(present) HistoryInfo p_historyInfo := ?
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- historyInfo := p_historyInfo
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
- modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_noPchargingFunctionPrefId_UE
- modifies mw_MESSAGE_Request_noPchargingFunction_UE := {
- msgHeader := {
- pPreferredID := omit
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS :=
- mw_MESSAGE_Request_noPchargingFunction_UE;
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred(
- template CallId p_callId,
- template(present) PAssertedID p_pAssertedID := ?
- ) modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- callId := p_callId,
- pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_route(
- template CallId p_callId,
- template(present) Route p_route := ?
- ) modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- callId := p_callId,
- route := p_route
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_via(
- template CallId p_callId,
- template(present) Via p_via := ?
- ) modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- callId := p_callId,
- via := p_via
- }
- }
-
- template(present) NOTIFY_Request mw_NOTIFY_Request(
- template CallId p_callId,
- template(present) charstring p_state := ?,
- template(present) charstring p_contentType := ?,
- template Event p_event,
- template MessageBody p_mb
- ) modifies mw_NOTIFY_Request_Base := {
- msgHeader := {
- subscriptionState := mw_subscriptionState(p_state),
- contentType := mw_contentType(p_contentType),
- event := p_event
- },
- messageBody := p_mb
- }
-
- template(present) 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(present) MESSAGE_Request mw_MESSAGE_Request_PchargingVector(
- template(present) charstring p_id := ?,
- template GenValue p_paramValue
- ) modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- pChargingVector := mw_pChargingVector(p_id, p_paramValue)
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo
- modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- pAccessNetworkInfo := omit
- }
- }
-
- template(present) MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization
- modifies mw_MESSAGE_Request_Base := {
- msgHeader := {
- pMediaAuthorization := omit
- }
- }
-
- template(present) PUBLISH_Request mw_PUBLISH_Request_PchargingVector(
- template CallId p_callId,
- template(present) PChargingVector p_pChargingVector := ?
- ) modifies mw_PUBLISH_Request_Base := {
- msgHeader := {
- pChargingVector := p_pChargingVector
- }
- }
-
- template(present) 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,
- pVisitedNetworkID := p_pVisitedNetworkID,
- require := mw_require_path,
- securityClient := omit,
- securityVerify := omit
- }
- }
-
- template(present) REGISTER_Request mw_REGISTER_authorizedRequest_IMS(
- template(present) Authorization p_authorization := ?
- ) modifies mw_REGISTER_Request_Base := {
- msgHeader := {
- authorization := p_authorization
- }
- }
-
- template(present) REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS(
- template(present) Authorization p_authorization := ?
- ) modifies mw_REGISTER_authorizedRequest_IMS := {
- msgHeader := {
- securityClient := omit
- }
- }
-
- template(present) REGISTER_Request mw_REGISTER_auth_via_nosecclient_IMS(
- template(present) Authorization p_authorization := ?,
- template(present) Via p_via
- ) modifies mw_REGISTER_authorizedRequest_wo_securityclient_IMS := {
- msgHeader := {
- via := p_via
- }
- }
-
- template(present) REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
- modifies mw_REGISTER_Request_Base := {
- msgHeader := {
- securityVerify := omit,
- securityClient := omit
- }
- }
-
- template(present) REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
- modifies mw_REGISTER_Request_Base := {
- msgHeader := {
- authorization := *
- }
- }
-
- template(present) SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS(
- template(present) From p_from := ?,
- template(present) 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 := *,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector
- }
- }
-
- template(present) UPDATE_Request mw_UPDATE_Request_fromChange(
- template CallId p_callId,
- template(present) From p_from := ?
- ) modifies mw_UPDATE_Request_Base := {
- msgHeader := {
- callId := p_callId,
- fromField := p_from
- }
- }
-
- } // end group requestReceive
-
- group responseSend {
-
- group responseSend1xx {
-
- template(value) Response m_Response_18x_Base(
- template(value) StatusLine_18x p_statusLine,
- template(omit) CallId p_callId := omit,
- template(omit) CSeq p_cSeq := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_Dummy := {
- statusLine := p_statusLine,
- msgHeader := {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- maxForwards := omit,
- toField := p_to,
- via := p_via
- },
- messageBody := omit,
- payload := omit
- }
-
- template(value) Response m_Response_18XonINVITE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- contact := p_contact // mandatory field due to 24 229 rel 7.9
- }
- }
-
- template(value) Response m_Response_18XonINVITE_AlertInfo(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) AlertInfo p_alertInfo
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- alertInfo := p_alertInfo
- }
- }
-
- template(value) Response m_Response_18XonINVITE_sdp_require(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) MessageBody p_mb,
- template(omit) Require p_require := omit
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- contact := p_contact,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- require := p_require,
- rSeq := m_rseq9999
- },
- messageBody := p_mb
- }
-
- template(value) Response m_Response_18XonINVITE_AS(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- contact := p_contact,
- recordRoute := p_recordRoute
- }
- }
-
- template(value) Response m_Response_18XonINVITE_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- contact := p_contact,
- rSeq := m_rseq9999
- }
- }
-
- template(value) Response m_Response_18XonINVITE_HistoryInfo_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) HistoryInfo p_historyInfo
- ) modifies m_Response_18XonINVITE_UE := {
- msgHeader := {
- historyInfo := p_historyInfo
- }
- }
-
- template(value) Response m_Response_18XonINVITE_PchargingVector(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) PChargingVector p_pChargingVector
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- contact := p_contact,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := p_pChargingVector
- }
- }
-
- template(value) Response m_Response_18XonINVITE_pEearlyMedia(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) PEarlyMedia p_pEarlyMedia
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- pEarlyMedia := p_pEarlyMedia
- }
- }
-
- template(value) Response m_Response_18XonINVITE_pPreferred_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) PPreferredID p_pPreferredID
- ) modifies m_Response_18XonINVITE_UE := {
- msgHeader := {
- pPreferredID := p_pPreferredID
- }
- }
-
- template(value) Response m_Response_18XonINVITE_pAsserted_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) PAssertedID p_pAssertedID
- ) modifies m_Response_18XonINVITE_UE := {
- msgHeader := {
- pAssertedID := p_pAssertedID
- }
- }
-
- template(value) Response m_Response_18XonINVITE_pAsserted_privacy_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) PAssertedID p_pAssertedID,
- template(value) Privacy p_privacy
- ) modifies m_Response_18XonINVITE_pAsserted_UE := {
- msgHeader := {
- privacy := p_privacy
- }
- }
-
- template(value) Response m_Response_18XonINVITE_privacy_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) Privacy p_privacy
- ) modifies m_Response_18XonINVITE_UE := {
- msgHeader := {
- privacy := p_privacy
- }
- }
-
- // NOTE STF471: changed order of parameter p_supported and p_privacy to be able to modify from m_Response_18XonINVITE_privacy_UE
- template(value) Response m_Response_18XonINVITE_supported_privacy_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) Privacy p_privacy,
- template(value) Supported p_supported
- ) modifies m_Response_18XonINVITE_privacy_UE := {
- msgHeader := {
- supported := p_supported
- }
- }
-
- template(value) Response m_Response_18XonINVITE_recordRoute_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) RecordRoute p_recordRoute
- ) modifies m_Response_18XonINVITE_UE := {
- msgHeader := {
- recordRoute := p_recordRoute // for INVITE response
- }
- }
-
- template(value) Response m_Response_18XonINVITE_Require(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) Require p_require
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- require := p_require
- }
- }
-
- // NOTE STF471: removed m_Response_18XonINVITE_Require_ifpresent as it is same as m_Response_18XonINVITE_Require
- template(value) Response m_Response_18XonINVITE_UserToUser(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) UserToUser.uuiData p_U2UData
- ) modifies m_Response_18x_Base := {
- msgHeader := {
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template(value) Response m_Response_18XonINVITE_Xml(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_18XonINVITE_UE := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_xmlApplication)
- },
- messageBody := p_mb
- }
-
- template(value) Response m_Response_18XonINVITE_sdp_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_18XonINVITE_Xml := {
- msgHeader := {
- contentType := m_contentType(c_sdpApplication)
- }
- }
-
- // NOTE STF471: changed order of parameter p_require and p_mb to be able to modify from m_Response_18XonINVITE_sdp_UE
- template(value) Response m_Response_18XonINVITE_require_sdp_UE(
- template(value) StatusLine_18x p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) MessageBody p_mb,
- template(omit) Require p_require := omit,
- template(omit) LibSip_SIPTypesAndValues.Allow p_allow := omit
- ) modifies m_Response_18XonINVITE_sdp_UE := {
- msgHeader := {
- require := p_require,
- allow := p_allow
- }
- }
-
- } // end group responseSend1xx
-
- group responseSend2xx {
-
- template(value) Response m_Response_2xx_Base(
- template(value) StatusLine_2xx p_statusLine,
- template(omit) CallId p_callId := omit,
- template(omit) CSeq p_cSeq := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_Dummy := {
- statusLine := p_statusLine,
- msgHeader := {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- maxForwards := omit,
- toField := p_to,
- via := p_via
- },
- messageBody := omit,
- payload := omit
- }
-
- template(value) Response m_Response_2xx_ext(
- template(value) StatusLine_2xx p_statusLine,
- template(omit) CallId p_callId := omit,
- template(omit) CSeq p_cSeq := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordroute := omit
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- route := p_route, // f_route(),
- recordRoute :=
- p_recordroute // f_recordroute()
- }
- }
-
- template(value) Response m_Response_2xx_mbody(
- template(value) StatusLine_2xx p_statusLine,
- template(omit) CallId p_callId := omit,
- template(omit) CSeq p_cSeq := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordroute := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_2xx_ext := {
- msgHeader := {
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication)
- },
- messageBody := p_mb
- }
-
- template(value) Response m_Response_2xxonBYE_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template(value) Response m_Response_2xxonINVITE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- contact := p_contact,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- recordRoute := p_recordRoute // for INVITE response
- },
- messageBody := p_mb
- }
-
- // NOTE STF471: changed order of parameter p_historyInfo and p_mb to be able to modify from m_Response_2xxonINVITE
- template(value) Response m_Response_2xxonINVITE_HistoryInfo(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) HistoryInfo p_historyInfo
- ) modifies m_Response_2xxonINVITE := {
- msgHeader := {
- historyInfo := p_historyInfo
- }
- }
-
- template(value) Response m_Response_2xxonINVITE_Mime(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_2xxonINVITE := {
- msgHeader := {
- contentType := m_contentType(c_mimeMultipart)
- }
- }
-
- template(value) Response m_Response_2xxonINVITE_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_2xxonINVITE := {
- }
-
- template(value) Response m_Response_2xxonINVITE_PchargingVector(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Route p_route := omit,
- template(omit) RecordRoute p_recordroute := omit,
- template(value) MessageBody p_mb,
- template(omit) Contact p_contact := omit,
- template(value) PChargingVector p_pChargingVector
- ) modifies m_Response_2xx_mbody := {
- msgHeader := {
- contact := p_contact,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := p_pChargingVector
- }
- }
-
- // NOTE STF471: changed order of parameter p_pPreferredID and p_mb to be able to modify from m_Response_2xxonINVITE
- template(value) Response m_Response_2XXonINVITE_pPreferred_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) PPreferredID p_pPreferredID
- ) modifies m_Response_2xxonINVITE := {
- msgHeader := {
- pPreferredID := p_pPreferredID
- }
- }
-
- // NOTE STF471: changed order of parameter p_pPreferredID and p_mb to be able to modify from m_Response_2xxonINVITE
- template(value) Response m_Response_2XXonINVITE_pAsserted_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) PAssertedID p_pAssertedID
- ) modifies m_Response_2xxonINVITE := {
- msgHeader := {
- pAssertedID := p_pAssertedID
- }
- }
-
- // NOTE STF471: changed order of parameter p_pAssertedID/p_privacy and p_mb to be able to modify from m_Response_2XXonINVITE_pAsserted_UE
- template(value) Response m_Response_2XXonINVITE_pAsserted_privacy_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) PAssertedID p_pAssertedID,
- template(value) Privacy p_privacy
- ) modifies m_Response_2XXonINVITE_pAsserted_UE := {
- msgHeader := {
- privacy := p_privacy
- }
- }
-
- // NOTE STF471: changed order of parameter p_privacy and p_mb to be able to modify from m_Response_2xxonINVITE
- template(value) Response m_Response_2XXonINVITE_privacy_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) Privacy p_privacy
- ) modifies m_Response_2xxonINVITE := {
- msgHeader := {
- privacy := p_privacy
- }
- }
-
- // NOTE STF471: changed order of parameter p_supported/p_privacy and p_mb to be able to modify from m_Response_2XXonINVITE_privacy_UE
- template(value) Response m_Response_2XXonINVITE_supported_privacy_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) Privacy p_privacy,
- template(value) Supported p_supported
- ) modifies m_Response_2XXonINVITE_privacy_UE := {
- msgHeader := {
- supported := p_supported
- }
- }
-
- template(value) Response m_Response_2xxonINVITE_UserToUser(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb,
- template(value) UserToUser.uuiData p_U2UData
- ) modifies m_Response_2xxonINVITE := {
- msgHeader := {
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template(value) Response m_Response_2xxonREGISTER_IMS(
- template(value) StatusLine_2xx p_statusLine,
- template(omit) CallId p_callId := omit,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) SipUrl p_serviceroute_sip_url,
- template(value) SipUrl p_passociated_uri
- ) modifies m_Response_2xx_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(value) Response m_Response_2xxonSUBSCRIBE_IMS(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template(value) Response m_Response_2xxonSUBSCRIBE_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_2xxonSUBSCRIBE_IMS := {
- }
-
- template(value) Response m_Response_2xxonMESSAGE_PAccessNetwInfo_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a
- }
- }
-
- template(value) Response m_Response_2xxonMESSAGE_PCharging_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) PChargingVector p_pChargingVector
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := p_pChargingVector
- }
- }
-
- template(value) Response m_Response_2xxonMESSAGE_PCharging_IMS(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) PChargingVector p_pChargingVector
- ) modifies m_Response_2xxonMESSAGE_PCharging_UE := {
- }
-
- template(value) Response m_Response_2xxonMESSAGE_PMediaAuth_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- pMediaAuthorization := m_pMediaAuthorization_fixedValue
- }
- }
-
- template(value) Response m_Response_2xxonMESSAGE_pPreferredID_UE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) PPreferredID p_pPreferredID
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- pPreferredID := p_pPreferredID
- }
- }
-
- template(value) Response m_Response_2xxonUPDATE(
- template(value) StatusLine_2xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(omit) RecordRoute p_recordRoute := omit,
- template(value) MessageBody p_mb
- ) modifies m_Response_2xx_Base := {
- msgHeader := {
- contact := p_contact,
- contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
- contentType := m_contentType(c_sdpApplication),
- recordRoute := p_recordRoute
- },
- messageBody := p_mb
- }
-
- } // end group responseSend2xx
-
- group responseSend3xx {
-
- template(value) Response m_Response_3xx_Base(
- template(value) StatusLine_3xx p_statusLine,
- template(omit) CallId p_callId := omit,
- template(omit) CSeq p_cSeq := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_Dummy := {
- statusLine := p_statusLine,
- msgHeader := {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- maxForwards := omit,
- toField := p_to,
- via := p_via
- },
- messageBody := omit,
- payload := omit
- }
-
- template(value) Response m_Response_3XXonINVITE(
- template(value) StatusLine_3xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_3xx_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- } // end group responseSend3xx
-
- group responseSend4xx {
-
- template(value) Response m_Response_4xx_Base(
- template(value) StatusLine_4xx p_statusLine,
- template(omit) CallId p_callId := omit,
- template(omit) CSeq p_cSeq := omit,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_Dummy := {
- statusLine := p_statusLine,
- msgHeader := {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- maxForwards := omit,
- toField := p_to,
- via := p_via
- },
- messageBody := omit,
- payload := omit
- }
-
- template(value) Response m_Response_4XXonINVITE(
- template(value) StatusLine_4xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_4xx_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template(value) Response m_Response_4XXonINVITE_UE(
- template(value) StatusLine_4xx p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_4xx_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- } // end group responseSend4xx
-
- template(value) Response m_Response_onCANCEL(
- template(value) StatusLine p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via
- ) modifies m_Response_Base := {
- }
-
- template(value) Response m_Response_onMESSAGE_IMS(
- template(value) StatusLine p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template(value) Response m_Response_onINVITE(
- template(value) StatusLine p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit
- ) modifies m_Response_Base := {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template(value) Response m_Response_onINVITE_Reason(
- template(value) StatusLine p_statusLine,
- template(value) CallId p_callId,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(omit) Contact p_contact := omit,
- template(value) GenValue p_cause
- ) modifies m_Response_onINVITE := {
- msgHeader := {
- reason := mw_Reason(p_cause)
- }
- }
-
- template(value) Response m_Response_WWWauthenticate_IMS(
- template(value) StatusLine p_statusLine,
- template(omit) CallId p_callId := omit,
- template(value) CSeq p_cSeq,
- template(value) From p_from,
- template(value) To p_to,
- template(value) Via p_via,
- template(value) WwwAuthenticate p_wwwAuthenticate
- ) modifies m_Response_Base := {
- msgHeader := {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- } // end group responseSend
-
- group responseReceive {
-
- group responseReceive2xx {
-
- // NOTE STF471: removed statusline parameter as it is fixed 200 status code
- template(present) Response mw_Response_200onINVITE_noPChargingVector_UE(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_2xx_Base := {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := 200,
- reasonPhrase := ?
- },
- msgHeader := {
- pChargingVector := omit
- }
- }
-
- // NOTE STF471: removed statusline parameter as it is fixed 200 status code
- template(present) Response mw_Response_200onINVITE_SDP_UE(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_2xx_Base := {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := 200,
- reasonPhrase := ?
- },
- messageBody := {
- sdpMessageBody := ?
- }
- }
-
- // NOTE STF471: removed statusline parameter as it is a 200.299 status code
- template(present) Response mw_Response_2xxonMESSAGE_noPCharging_UE(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_2xx_Base := {
- msgHeader := {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- // NOTE STF471: removed statusline parameter as it is a 200..299 status code
- template(present) Response mw_Response_2xxonMESSAGE_noPCharging_IMS(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_2xxonMESSAGE_noPCharging_UE := {
- }
-
- // NOTE STF471: removed statusline parameter as it is a 200..299 status code
- template(present) Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_2xx_Base := {
- msgHeader := {
- pAccessNetworkInfo := omit
- }
- }
-
- // NOTE STF471: removed statusline parameter as it is a 200..299 status code
- template(present) Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_2xx_Base := {
- msgHeader := {
- pMediaAuthorization := omit
- }
- }
-
- // NOTE STF471: removed statusline parameter as it is a fixed 200 status code
- template(present) Response mw_Response_200onREGISTER_IMS(
- 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_2xx_Base := {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := 200,
- 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
- }
- }
-
- } // end group responseReceive2xx
-
- group responseReceive4xx {
-
- // NOTE STF471: removed statusline parameter as it is a fixed 401 status code
- template(present) Response mw_Response_401onREGISTER_securityServer_UE(
- template CallId p_callId,
- template CSeq p_cSeq
- ) modifies mw_Response_4xx_Base := {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := 401,
- reasonPhrase := ?
- },
- msgHeader := {
- securityServer := ?,
- wwwAuthenticate := ?
- }
- }
-
- // NOTE STF471: removed statusline parameter as it is a fixed 400 status code
- template(present) Response mw_Response_401onREGISTER_WWWauthenticate_IMS(
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) WwwAuthenticate p_wwwAuthenticate := ?
- ) modifies mw_Response_4xx_Base := {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := 401,
- reasonPhrase := ?
- },
- msgHeader := {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- } // end group responseReceive4xx
-
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_SecServer_WWWAuth_UE(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) SecurityServer p_securityServer := ?,
- template WwwAuthenticate p_wwwAuthenticate
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- securityServer := p_securityServer,
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_PpreferredID_PassertedID(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) PPreferredID p_pPreferredID := ?,
- template(present) PAssertedID p_pAssertedID := ?
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- pPreferredID := p_pPreferredID
- }
- }
-
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_PAsserted_Privacy_History(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) PAssertedID p_pAssertedID := ?,
- template(present) Privacy p_privacy := ?,
- template(present) HistoryInfo p_historyInfo := ?
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- historyInfo := p_historyInfo
- }
- }
-
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_PAsserted_ContentType(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) PAssertedID p_pAssertedID := ?,
- template(present) ContentType p_contentType := ?
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- pAssertedID := p_pAssertedID,
- contentType := p_contentType
- }
- }
-
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_PchargingVector(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) PChargingVector p_chargingVector := ?
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- pChargingVector := p_chargingVector
- }
- }
-
- // NOTE STF471: changed name from mw_Response_PchargingVecFctadrId
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_PchargingVector_PchargingFunctionAddr_PpreferredID(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) PChargingVector p_chargingVector := ?,
- template(present) PChargingFunctionAddresses p_chargingFunctionAddresses := ?,
- template(present) PPreferredID p_preferredID := ?
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- pChargingVector := p_chargingVector,
- pChargingFunctionAddresses := p_chargingFunctionAddresses,
- pPreferredID := p_preferredID
- }
- }
-
- // NOTE STF471: changed statusline parameter to statusCode parameter
- template(present) Response mw_Response_PchargingFunctionAddr(
- template(present) StatusLine.statusCode p_statusCode := ?,
- template CallId p_callId,
- template CSeq p_cSeq,
- template(present) PChargingFunctionAddresses p_chargingFunctionAddresses := ?
- ) modifies mw_Response_StatusCode_Base := {
- msgHeader := {
- pChargingFunctionAddresses := p_chargingFunctionAddresses
- }
- }
-
- } // end group responseReceive
-
- } // end group modifiedTemplates
-
- } // end group messageTemplates
-
-} // end module LibIms_Templates
\ No newline at end of file
/v3/ttcn/LibIms_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3/ttcn/LibIms_Interface.ttcn
===================================================================
--- v3/ttcn/LibIms_Interface.ttcn (revision 207)
+++ v3/ttcn/LibIms_Interface.ttcn (nonexistent)
@@ -1,22 +0,0 @@
-/**
- * @author STF471
- * @version $Id$
- * @desc This module provides the component type for SIP-IMS tests.
- * This module is part of LibImsV3.
- */
-module LibIms_Interface {
- // LibSip
- import from LibSip_Interface all;
- // LibIms
- import from LibIms_SIPTypesAndValues all;
-
- group adressTypes {
-
- type component ImsComponent extends SipComponent {
- // general variables
- var ImsInterfaceProfile vc_interfaceprofile;
- } // end ImsComponent
-
-
- } // end group AdressTypes
-} // end module LibIms_TestSystem
/v3/ttcn/LibIms_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- v3/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 207)
+++ v3/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,65 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369, STF450, STF471
- * @version $Id$
- * @desc This module provides the types and constants used by the test component for SIP tests. This module is part of LibImsV3.
- */
-module LibIms_SIPTypesAndValues {
-
- group otherTypes {
-
- /**
- * @desc StatusLine with status code restricted to 18x
- * @remark Used TTCN-3 internally
- */
- type record StatusLine_18x {
- charstring sipVersion,
- integer statusCode (180 .. 189) ,
- charstring reasonPhrase
- }
-
- /**
- * @desc StatusLine with status code restricted to 2xx
- * @remark Used TTCN-3 internally
- */
- type record StatusLine_2xx {
- charstring sipVersion,
- integer statusCode (200 .. 299) ,
- charstring reasonPhrase
- }
-
- /**
- * @desc StatusLine with status code restricted to 3xx
- * @remark Used TTCN-3 internally
- */
- type record StatusLine_3xx {
- charstring sipVersion,
- integer statusCode (300 .. 399) ,
- charstring reasonPhrase
- }
-
- /**
- * @desc StatusLine with status code restricted to 4xx
- * @remark Used TTCN-3 internally
- */
- type record StatusLine_4xx {
- charstring sipVersion,
- integer statusCode (400 .. 499) ,
- charstring reasonPhrase
- }
-
- type record ImsInterfaceProfile {
- /**
- * @desc integer for Port number to exchange SIP messages
- */
- integer SUTPort,
- /**
- * @desc charstring for IP address to exchange SIP messages
- */
- charstring SUTIpaddr,
- /**
- * @desc charstring for home domain to exchange SIP messages
- */
- charstring SUTHomeDomain
- }
- }
-} // end module LibIms_SIPTypesAndValues
/v3/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3/ttcn/LibIms_Library.ttcn
===================================================================
--- v3/ttcn/LibIms_Library.ttcn (revision 207)
+++ v3/ttcn/LibIms_Library.ttcn (nonexistent)
@@ -1,16 +0,0 @@
-/**
- * @author STF471
- * @version $Id: LibSip_Steps.ttcn 614 2014-07-07 10:01:14Z tepelmann $
- * @desc This module provides all modules of the LibIms as public imports.
- * Importing this module will automatically import all here listed modules,
- * no other LibIms_xxx module import needed in this case.
- * This module is part of LibImsV3.
- */
-module LibIms_Library {
-
- import from LibIms_Interface all;
- import from LibIms_SIPTypesAndValues all;
- import from LibIms_Steps all;
- import from LibIms_Templates all;
-
-}
\ No newline at end of file
Index: v2/ttcn/LibIms_Templates.ttcn
===================================================================
--- v2/ttcn/LibIms_Templates.ttcn (nonexistent)
+++ v2/ttcn/LibIms_Templates.ttcn (revision 209)
@@ -0,0 +1,3619 @@
+/*
+ * @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:={"<false/>"}},
+ 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('11'B),
+ userInfoLayer3Protocol := bit2str('00010'B)},
+ 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 {
+
+ template TIMS3GPP mw_Ims_3gpp_CW := {
+ version := 1.0,
+ attr := ?,
+ choice := {
+ alternative_service := {
+ attr := ?,
+ type_ := ?,
+ reason := ?,
+ elem_list := ?
+ }
+ },
+ elem_list := ?
+ }
+} // 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 ACK_Request m_ACK_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, 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_mimeMultipart},
+ 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, template RecordRoute p_recordRoute := omit)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route,
+ recordRoute := p_recordRoute //used in case of AS as TS - for ISC interface
+ }
+ }
+
+ 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
\ No newline at end of file
/v2/ttcn/LibIms_Templates.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: v2/ttcn/LibIms_Steps.ttcn
===================================================================
--- v2/ttcn/LibIms_Steps.ttcn (nonexistent)
+++ v2/ttcn/LibIms_Steps.ttcn (revision 209)
@@ -0,0 +1,1885 @@
+/*
+ * @author STF 346, STF366, STF368, STF369, STF450
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests.
+ * This module is part of LibImsV2.
+ */
+
+module LibIms_Steps
+{
+ //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_Interface all;
+ import from LibSip_XMLTypes all;
+ import from LibSip_MessageBodyTypes all;
+ //LibIms
+ import from LibIms_Templates all;
+ import from LibIms_Interface all;
+ import from LibIms_PIXITS all;
+ import from LibIms_SIPTypesAndValues all;
+
+ group externalfunctions {
+ }//end group externalfunctions
+ group parameterOperations {
+
+ /**
+ *
+ * @desc functions add new via parameter
+ * @param p_message (request) SIP message to be used to prepair via header
+ * @param p_userprofile user profile
+ */
+ function f_addNewViaParameter(in Request p_message, in integer p_userprofile) runs on ImsComponent
+ {
+ var integer v_intVia;
+ var integer i := 0;
+ if (ispresent(p_message.msgHeader.via)) {
+
+ v_intVia := sizeof(p_message.msgHeader.via.viaBody);
+ while (i < v_intVia) {
+ p_message.msgHeader.via.viaBody[v_intVia] := p_message.msgHeader.via.viaBody[v_intVia-1];
+ v_intVia := v_intVia - 1;
+ }
+ vc_branch := c_branchCookie & f_getRndTag();
+ p_message.msgHeader.via.viaBody[0] := valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile));
+ vc_via := p_message.msgHeader.via;
+ }
+ }
+
+ /**
+ ** @desc functions remove own via parameter
+ * @param p_message (request) SIP message to be used to prepair via header
+ * @param p_userprofile user profile
+ */
+ function f_removeOwnViaParameter(in Response p_message) runs on ImsComponent
+ {
+ var integer v_intVia;
+ var Via v_via := c_empty_Via;
+
+ if (ispresent(p_message.msgHeader.via)) {
+
+ v_intVia := sizeof(p_message.msgHeader.via.viaBody)-1;
+
+ for (var integer i := 0; i < v_intVia; i := i + 1)
+ {
+ v_via.viaBody[i] := p_message.msgHeader.via.viaBody[i+1];
+ }
+ vc_via := v_via;
+ }
+ }
+
+ /**
+ *
+ * @desc functions add new via parameter
+ * @param p_message (request) SIP message to be used to prepair via header
+ * @param p_userprofile user profile
+ */
+ function f_addNewRecordRouteAndRemoveRoutParameter(in Request p_message) runs on ImsComponent
+ {
+ var integer v_intRoute,v_intRecordRoute;
+ var integer i := 1;
+ var integer j := 0;
+ var RouteBody v_route1;
+ var Route v_newRoute;
+ v_newRoute.fieldName := ROUTE_E;
+ if (ispresent(p_message.msgHeader.route)) {
+
+ v_intRoute := sizeof(p_message.msgHeader.route.routeBody);
+ v_route1 := p_message.msgHeader.route.routeBody[0];
+ while (i < v_intRoute) {
+ v_newRoute.routeBody[i-1] := p_message.msgHeader.route.routeBody[i];
+ i := i + 1;
+ }
+ vc_route := v_newRoute;
+ }
+
+ if (ispresent(p_message.msgHeader.recordRoute)) {
+
+ v_intRecordRoute := sizeof(p_message.msgHeader.recordRoute.routeBody);
+ while (j < v_intRecordRoute) {
+ p_message.msgHeader.recordRoute.routeBody[v_intRecordRoute] := p_message.msgHeader.recordRoute.routeBody[v_intRecordRoute-1];
+ v_intRecordRoute := v_intRecordRoute - 1;
+ }
+ p_message.msgHeader.recordRoute.routeBody[0] := v_route1;
+ vc_recordRoute := p_message.msgHeader.recordRoute;
+ }
+ }
+
+ /**
+ *
+ * @desc functions add new recordRoute parameter
+ * @param p_message (request) SIP message to be used to prepair via header
+ * @param p_userprofile user profile
+ */
+ function f_addNewRecordRouteIMS(in RecordRoute p_rr) runs on ImsComponent return template RecordRoute
+ {
+ template RecordRoute v_recordRoute := omit;
+ var integer v_intRecordRoute;
+ var integer i := 1;
+ var integer j := 0;
+
+ v_intRecordRoute := sizeof(p_rr.routeBody);
+ if (v_intRecordRoute>0){
+ while (j < v_intRecordRoute) {
+ p_rr.routeBody[v_intRecordRoute] := p_rr.routeBody[v_intRecordRoute-1];
+ v_intRecordRoute := v_intRecordRoute - 1;
+ }
+ p_rr.routeBody[0] := valueof(m_routeBody_currIpAddr(vc_userprofile));
+ vc_recordRoute := p_rr;
+ return vc_recordRoute;
+ }
+ else {return(v_recordRoute)}
+ }
+
+ }//end group parameterOperations
+
+ group fieldOperations {
+
+ /*
+ *
+ * @desc sets BYE header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to send Bye
+ * @verdict
+ */
+ function f_setHeadersBYE(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+// vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+//
+// vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_route := f_route(); // update the route header field depending on vc_boo_route
+ vc_recordRoute := f_recordroute(); // update the route header field depending on vc_boo_route
+
+ LibSip_Steps.f_setHeadersBYE(p_cSeq_s);
+
+ }// end f_setHeadersBYE
+
+ /*
+ *
+ * @desc sets CANCEL header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to send Cancel
+ * @verdict
+ */
+ function f_setHeadersCANCEL(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ vc_route := f_route(); // update the route header field depending on vc_boo_route
+ vc_recordRoute := f_recordroute(); // update the route header field depending on vc_boo_route
+
+ LibSip_Steps.f_setHeadersCANCEL(p_cSeq_s);
+
+ }// end f_setHeadersCANCEL
+
+ /**
+ *
+ * @desc sets headers for forward request from AS in case if AS acts as Proxy
+ * @param p_proxyMode true = proxyMode, false = B2BMode
+ */
+ function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s, boolean p_proxyMode) runs on ImsComponent
+ {
+ var Request v_request;
+ v_request := vc_request;
+
+ if (p_proxyMode)
+ {
+ vc_requestUri2 := v_request.requestLine.requestUri;
+ vc_to := v_request.msgHeader.toField;
+ vc_contact := v_request.msgHeader.contact;
+ f_addNewViaParameter(v_request, c_userProfile_AS1);
+ f_addNewRecordRouteAndRemoveRoutParameter(v_request);
+ }
+ else
+ { //B2Bmode
+ vc_contact := valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile)));
+ vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
+ }
+ }// end function f_setHeadersForwardRequest
+
+ /**
+ *
+ * @desc sets header fields for forward request from AS in case if AS acts as Proxy
+ */
+ function f_setHeadersForwardResponseFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var Response v_response;
+ v_response := vc_response;
+
+ vc_caller_To := v_response.msgHeader.toField;
+ vc_to := v_response.msgHeader.toField;
+ vc_contact := v_response.msgHeader.contact;
+
+ if (ispresent(v_response.msgHeader.recordRoute)) {
+ vc_recordRoute:= v_response.msgHeader.recordRoute;
+ }
+ f_removeOwnViaParameter(v_response);
+ }// end function f_setHeadersForwardResponse
+
+ /*
+ *
+ * @desc sets Invite header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersINVITE(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+
+ if (vc_boo_route)
+ { vc_route := valueof(m_route_interface(vc_interfaceprofile))};
+ if (vc_boo_recordRoute)
+ { vc_recordRoute := valueof(m_recordRoute_currIpAddr(vc_userprofile))};
+
+ LibSip_Steps.f_setHeadersINVITE(p_cSeq_s);
+
+ }// end f_setHeadersINVITE
+
+ /*
+ *
+ * @desc sets Invite header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersUPDATE(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+
+ if (vc_boo_route)
+ { vc_route := valueof(m_route_interface(vc_interfaceprofile))};
+ if (vc_boo_recordRoute)
+ { vc_recordRoute := valueof(m_recordRoute_currIpAddr(vc_userprofile))};
+
+ LibSip_Steps.f_setHeadersUPDATE(p_cSeq_s);
+
+ }// end f_setHeadersUPDATE
+
+ /*
+ *
+ * @desc sets Message header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersMESSAGE(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+
+ LibSip_Steps.f_setHeadersMESSAGE(p_cSeq_s);
+
+ }// end f_setHeadersMESSAGE
+
+ /*
+ *
+ * @desc sets Notify header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersNOTIFY(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ LibSip_Steps.f_setHeadersNOTIFY(p_cSeq_s);
+
+ vc_branch := c_branchCookie & f_getRndTag();
+ vc_via:={
+ fieldName := VIA_E,
+ viaBody := {valueof(m_ViaBody_virtual_XCSCF(vc_branch, vc_userprofile))}
+ };
+
+ vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+
+ //contact header initialization for sending of NOTIFY from CSCF component
+ vc_contact := valueof(m_Contact(m_SipUrl_currIpaddr_CSCF(vc_userprofile)));
+
+ }// end f_setHeadersNOTIFY
+
+ /*
+ *
+ * @desc sets Publish header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersPUBLISH(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ LibSip_Steps.f_setHeadersPUBLISH(p_cSeq_s);
+
+ vc_branch := c_branchCookie & f_getRndTag();
+ vc_via:={
+ fieldName := VIA_E,
+ viaBody := {valueof(m_ViaBody_virtual_XCSCF(vc_branch, vc_userprofile))}
+ };
+
+ vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+
+ if (vc_boo_route)
+ { vc_route := valueof(m_route_interface(vc_interfaceprofile))};
+ if (vc_boo_recordRoute)
+ { vc_recordRoute := valueof(m_recordRoute_currIpAddr(vc_userprofile))};
+
+ //contact header initialization for sending of PUBLISH from CSCF component
+ vc_contact := valueof(m_Contact(m_SipUrl_currIpaddr_CSCF(vc_userprofile)));
+
+ }// end f_setHeadersPUBLISH
+
+ /**
+ **
+ * @desc sets Subscribe header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersSUBSCRIBE(inout CSeq p_cSeq_s, in SipUrl p_to_user) runs on ImsComponent
+ {
+ vc_to := { fieldName := TO_E,
+ addressField :=
+ {
+ nameAddr := {
+ displayName := omit, // optional charstring
+ addrSpec := p_to_user // SipUrl
+ }
+ },//end addressField
+ toParams := omit
+ };
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri :=p_to_user; // Request URI of Invite is identical with To header
+
+ LibSip_Steps.f_setHeadersSUBSCRIBE(p_cSeq_s);
+
+ }// end f_setHeadersSUBSCRIBE
+
+ /**
+ * @desc sets headers for ReINVITE method
+ * @param p_cSeq_s current cSeq
+ * @param p_orginatingSide true in case of Re-INVITE is send from the orgination endpoint otherwise false.
+ */
+ function f_setHeadersReINVITE (inout CSeq p_cSeq_s, in boolean p_orginatingSide, in integer p_to_user) runs on ImsComponent
+ {
+ var integer v_tmp, v_i, v_j, v_nbroute;
+ var Request v_request;
+ v_request := vc_request;
+
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.components.sip.hostPort;
+
+ vc_requestUri := f_initSipUrl(p_to_user);
+
+ if(p_orginatingSide) {
+ vc_to := vc_caller_To;
+ vc_from := vc_caller_From;
+ }
+ else {
+ vc_to := vc_callee_To;
+ vc_from := vc_callee_From;
+
+ //get route from previous ACK request
+ // Route Management
+ if (ispresent(v_request.msgHeader.recordRoute))
+ {
+ vc_recordRoute := v_request.msgHeader.recordRoute;
+ v_nbroute := sizeof(vc_recordRoute.routeBody);
+ // copy and reverse the order of the routes in route header
+ for (v_i:=0; v_i<=(v_nbroute - 1); v_i:=v_i+1)
+ {
+ v_j:= v_nbroute - 1 - v_i;
+ vc_route.routeBody[v_j]:=vc_recordRoute.routeBody[v_i];
+ }
+ vc_route.fieldName := ROUTE_E;
+ vc_boo_recordRoute := true;
+ vc_boo_route := true;
+ }
+ else
+ {
+ vc_boo_recordRoute := false;
+ vc_boo_route := false;
+ }
+
+ }
+
+ v_tmp := str2int(vc_sdp_local.origin.session_id);
+ vc_sdp_local.origin.session_id := int2str(v_tmp + 1);
+ v_tmp := str2int(vc_sdp_local.origin.session_version);
+ vc_sdp_local.origin.session_version := int2str(v_tmp + 1);
+
+ }// end function f_setHeadersReINVITE
+
+ /**
+ *
+ * @desc sets component variables related to message header fields
+ * when sending requests from the home I-CSCF (TS) to the visited P-CSCF (SUT)
+ * (message type independent: CSeq, contact, via), function uses information from
+ * userprofile and interfaceprofile
+ *
+ * @param p_cSeq_s CSeq parameter
+ * @param p_method method name for cSeq header field
+ */
+ function f_setHeadersGeneral_ICSCF(inout CSeq p_cSeq_s, in charstring p_method) runs on SipComponent
+ {
+ var SemicolonParam_List v_params;
+
+ p_cSeq_s.fieldName := CSEQ_E;
+ p_cSeq_s.seqNumber := p_cSeq_s.seqNumber + 1;
+ p_cSeq_s.method := p_method ;
+ vc_cSeq := p_cSeq_s;
+
+ vc_contact := valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile)));
+
+ vc_branch := c_branchCookie & f_getRndTag();
+ vc_branch_ICSCF := c_branchCookie & f_getRndTag();
+
+ vc_via:={
+ fieldName := VIA_E,
+ viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile)),
+ valueof(m_ViaBody_virtualUEinPCSCF(vc_branch_ICSCF, vc_userprofile))
+ }
+ };
+ }// end function f_setHeadersGeneral_ICSCF
+
+ /**
+ *
+ * @desc sets header field for the next outgoing REGISTER message
+ * from the visited P-CSCF to the home I-CSCF
+ * @param p_cSeq_s CSeq parameter to be applied
+ */
+ function f_setHeaders_REGISTER_PCSCF(inout CSeq p_cSeq_s) runs on SipComponent
+ {
+ var SemicolonParam_List v_params;
+
+ f_setHeadersGeneral(p_cSeq_s, "REGISTER"); // cseq, contact, branch, via
+
+ vc_requestUri:=
+ {
+ scheme := c_sipScheme,
+ components := { sip:= {
+ userInfo := omit,
+ hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit}}},
+ urlParameters := omit,
+ headers := omit
+ };
+
+ vc_reqHostPort := vc_requestUri.components.sip.hostPort;
+
+ vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
+ vc_callIdReg := vc_callId;
+
+ vc_to := valueof(m_To(m_SipUrl_currDomain(vc_userprofile)));
+ v_params := {{id:=c_tagId, paramValue:=f_getRndTag()}}
+ vc_from := {fieldName := FROM_E,
+ addressField :=vc_to.addressField,
+ fromParams := v_params
+ };
+
+ if(not vc_firstREGISTER_sent)
+ {
+ v_params := {{id:=c_expiresId, paramValue:=c_shortRegistration}};
+ vc_contact.contactBody.contactAddresses[0].contactParams := v_params;
+ }
+
+ vc_firstREGISTER_sent := true;//f_setHeaders_Register is called in deREGISTER function
+
+ vc_authorization :=
+ {
+ fieldName := AUTHORIZATION_E,
+ body := {f_calculatecCredentials_empty(vc_userprofile)}
+ }
+
+ }// end function setHeaders_REGISTER_PCSCF
+
+
+
+ /*
+ *
+ * @desc sets REFER header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_to_user user_profile id of the user to be invited
+ * @verdict
+ */
+ function f_setHeadersREFER(inout CSeq p_cSeq_s, in integer p_to_user) runs on ImsComponent
+ {
+ //vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
+
+ //vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+
+ if (vc_boo_route)
+ { vc_route := valueof(m_route_interface(vc_interfaceprofile))};
+ if (vc_boo_recordRoute)
+ { vc_recordRoute := valueof(m_recordRoute_currIpAddr(vc_userprofile))};
+
+ LibSip_Steps.f_setHeadersREFER(p_cSeq_s);
+
+ }// end f_setHeadersREFER
+
+ /*
+ * @desc sets REFER header fields (IMS addresses)
+ * extension of general settings from LibSip basic function
+ * @param p_cSeq_s current cSeq
+ * @param p_uri SipUrl for request URI and To header
+ */
+ function f_setHeadersREFER_conf(inout CSeq p_cSeq_s, in SipUrl p_uri) runs on ImsComponent
+ {
+ vc_to := {
+ fieldName := TO_E,
+ addressField := {
+ nameAddr := {
+ displayName := omit, // optional charstring
+ addrSpec := p_uri // SipUrl
+ }
+ },//end addressField
+ toParams := omit
+ };
+
+ vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+
+ vc_requestUri := p_uri; // Request URI of Invite is identical with To header
+
+ if (vc_boo_route) {
+ vc_route := valueof(m_route_interface(vc_interfaceprofile))
+ };
+ if (vc_boo_recordRoute) {
+ vc_recordRoute := valueof(m_recordRoute_currIpAddr(vc_userprofile))
+ };
+
+ LibSip_Steps.f_setHeadersREFER(p_cSeq_s);
+ }// end f_setHeadersREFER_conf
+
+ } // end group fieldOperations
+
+ group awaitingMessage {
+ }
+ group sendMessage {
+ /**
+ *
+ * @desc send PRACK message
+ * @param p_request template of the message to be sent
+ */
+ function f_SendPRACK_sdp(template MessageBody p_mb) runs on SipComponent
+ {
+ f_setHeadersGeneral(vc_cSeq, "PRACK"); // cseq, contact, branch, via
+ vc_rAck := valueof(m_RAck(vc_response.msgHeader.rSeq.responseNum, vc_cSeq.seqNumber, vc_cSeq.method));
+
+ SIPP.send(m_PRACK_Request_sdp(
+ vc_requestUri,
+ vc_callId,
+ vc_cSeq,
+ vc_from,
+ vc_to,
+ vc_via,
+ vc_rAck,
+ p_mb
+ )) to vc_sent_label;
+ }
+
+ }
+ group globalSteps {
+
+ /*
+ *
+ * @desc sets user parameters with PIXIT values
+ * @param p_user identifies the selected user configuration and location
+ * @verdict
+ */
+ function f_init_userprofile(in integer p_user) runs on ImsComponent
+ {
+ LibSip_Steps.f_init_userprofile(p_user);
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) { //variant c_userProfile_UE1atSUThome
+ vc_userprofile.currPort := PX_IMS_TS_UE1_PORT;
+ vc_userprofile.currIpaddr := PX_IMS_TS_UE1_IPADDR;
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT;
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR;
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN;
+ vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER;
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP;
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME;
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD;
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR;
+ }
+
+ case (c_userProfile_UE2atSUThome) { //variant c_userProfile_UE2atSUThome
+ vc_userprofile.currPort := PX_IMS_TS_UE2_PORT;
+ vc_userprofile.currIpaddr := PX_IMS_TS_UE2_IPADDR;
+ vc_userprofile.contactPort := PX_IMS_TS_UE2_PORT;
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE2_IPADDR;
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE2_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN;
+ vc_userprofile.publUsername := PX_IMS_SUT_UE2_PUBLIC_USER;
+ vc_userprofile.qop := PX_IMS_SUT_UE2_QOP;
+ vc_userprofile.privUsername := PX_IMS_SUT_UE2_PRIVAT_USERNAME;
+ vc_userprofile.passwd := PX_IMS_SUT_UE2_PRIVAT_PASSWD;
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE2_REGISTRAR;
+ }
+
+ case (c_userProfile_UE3atSUThome) { //variant c_userProfile_UE3atSUThome
+ vc_userprofile.currPort := PX_IMS_TS_UE3_PORT;
+ vc_userprofile.currIpaddr := PX_IMS_TS_UE3_IPADDR;
+ vc_userprofile.contactPort := PX_IMS_TS_UE3_PORT;
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE3_IPADDR;
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE3_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE3_HOME_DOMAIN;
+ vc_userprofile.publUsername := PX_IMS_SUT_UE3_PUBLIC_USER;
+ vc_userprofile.qop := PX_IMS_SUT_UE3_QOP;
+ vc_userprofile.privUsername := PX_IMS_SUT_UE3_PRIVAT_USERNAME;
+ vc_userprofile.passwd := PX_IMS_SUT_UE3_PRIVAT_PASSWD;
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE3_REGISTRAR;
+ }
+
+ case (c_userProfile_UE4atSUThome) { //variant c_userProfile_UE4atSUThome
+ vc_userprofile.currPort := PX_IMS_TS_UE4_PORT;
+ vc_userprofile.currIpaddr := PX_IMS_TS_UE4_IPADDR;
+ vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT;
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR;
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN;
+ vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER;
+ vc_userprofile.qop := PX_IMS_SUT_UE4_QOP;
+ vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME;
+ vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD;
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR;
+ }
+
+ case (c_userProfile_UE1atSUTvisiting) { //variant c_userProfile_UE1atSUTvisiting - UE3 parameters
+ vc_userprofile.currPort := PX_IMS_TS_UE1_PORT;
+ vc_userprofile.currIpaddr := PX_IMS_TS_UE1_IPADDR;
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT;
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR;
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE3_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE3_HOME_DOMAIN;
+ vc_userprofile.publUsername := PX_IMS_SUT_UE3_PUBLIC_USER;
+ vc_userprofile.qop := PX_IMS_SUT_UE3_QOP;
+ vc_userprofile.privUsername := PX_IMS_SUT_UE3_PRIVAT_USERNAME;
+ vc_userprofile.passwd := PX_IMS_SUT_UE3_PRIVAT_PASSWD;
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE3_REGISTRAR;
+ }
+
+// //temporary not used and it can be deleted during validation
+// case (c_userProfile_UE1atSUTvisiting) { //variant c_userProfile_UE1atSUTvisiting
+// vc_userprofile.currPort := PX_IMS_TS_UE2_PORT;
+// vc_userprofile.currIpaddr := PX_IMS_TS_UE2_IPADDR;
+// vc_userprofile.contactPort := PX_IMS_TS_UE2_PORT;
+// vc_userprofile.contactIpaddr := PX_IMS_TS_UE2_IPADDR;
+// vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE2_BEARER_IPADDR;
+// vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN;
+// vc_userprofile.publUsername := PX_IMS_SUT_UE2_PUBLIC_USER;
+// vc_userprofile.qop := PX_IMS_SUT_UE2_QOP;
+// vc_userprofile.privUsername := PX_IMS_SUT_UE2_PRIVAT_USERNAME;
+// vc_userprofile.passwd := PX_IMS_SUT_UE2_PRIVAT_PASSWD;
+// vc_userprofile.registrarDomain := PX_IMS_TS_UE2_REGISTRAR;
+// }
+
+ case (c_userProfile_IBCFwithHomeUE) { //variant c_userProfile_IBCFwithHomeUE
+ vc_userprofile.currPort := PX_IMS_TS_IBCF_PORT; // via (Ic interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_IBCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_IBCF_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_IBCF_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_IBCFwithVisitingUE) { //variant c_userProfile_IBCFwithVisitingUE
+ vc_userprofile.currPort := PX_IMS_TS_IBCF_PORT; // via (Ic interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_IBCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_IBCF_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_IBCF_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_ICSCFwithHomeUE) { //variant c_userProfile_ICSCFwithHomeUE - UE4 parameters
+ vc_userprofile.currPort := PX_IMS_TS_ICSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_ICSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE4_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_IBCFwithUnknownUE) { //variant
+ vc_userprofile.currPort := PX_IMS_TS_ICSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_ICSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_unknownUE_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_PCSCFwithHomeUE) { //variant c_userProfile_PCSCFwithHomeUE
+ vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_PCSCFwithVisitingUE) { //variant c_userProfile_PCSCFwithVisitingUE
+ vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_REGISTRAR; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ // another visting user in IMS (cp. TP_IMST2_MW_REG_15: different public id, same private id)
+ case (c_userProfile_PCSCFwithVisitingUE2) { //variant
+ vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE2_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE2_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE2_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ // unknown visting user in IMS (cp. TP_IMST2_MW_REG_16)
+ case (c_userProfile_PCSCFwithUnknownVisitingUE) { //variant
+ vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_unknownUE_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_SCSCFwithHomeUE) { //variant c_userProfile_SCSCFwithHomeUE - UE4 parameters
+ vc_userprofile.currPort := PX_IMS_TS_SCSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_SCSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE4_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_SCSCFwithHomeUE_domain) { //variant c_userProfile_SCSCFwithHomeUE - UE4 parameters
+ vc_userprofile.currPort := PX_IMS_TS_SCSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_SCSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE4_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR; // Authorization
+ }
+
+ case (c_userProfile_AS1) { //variant c_userProfile_AS1
+ vc_userprofile.currPort := PX_IMS_TS_AS1_PORT; // via, route(Isc interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_AS1_IPADDR; // via, route
+ vc_userprofile.contactPort := PX_IMS_TS_AS1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_AS1_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, routevc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER; // From, To (register)
+ vc_userprofile.publUsername := "as1";
+ vc_userprofile.qop := ""; // Authorization
+ vc_userprofile.privUsername := ""; // Authorization
+ vc_userprofile.passwd := ""; // Authorization
+ vc_userprofile.registrarDomain := ""; // Authorization
+
+ }
+
+ case (c_userProfile_AS2) { //variant c_userProfile_AS2
+ vc_userprofile.currPort := PX_IMS_TS_AS2_PORT; // via, route(Isc interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_AS2_IPADDR; // via, route
+ vc_userprofile.homeDomain := PX_IMS_TS_AS2_HOME_DOMAIN; // via, route
+ }
+
+ case (c_userProfile_ECSCFwithHomeUE) { //variant c_userProfile_PCSCFwithHomeUE
+ vc_userprofile.currPort := PX_IMS_TS_ECSCF_PORT; // via (Mw interface of TS)
+ vc_userprofile.currIpaddr := PX_IMS_TS_ECSCF_IPADDR; // via
+ vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
+ vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
+ vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
+ vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
+ vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
+ vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
+ vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
+ }
+
+ }
+ }
+
+ function f_initToHeader(in integer p_user) runs on ImsComponent return To
+ {
+ var To p_to := c_empty_To;
+ p_to := { fieldName := TO_E,
+ addressField :=
+ {nameAddr := {
+ displayName := omit, // optional charstring
+ addrSpec := f_initSipUrl(p_user) // SipUrl
+ }},//end addressField
+ toParams := omit
+ };
+ return(p_to);
+ }
+
+
+ function f_initFromHeader(in integer p_user, charstring p_tag_str) runs on ImsComponent return From
+ {
+ var From p_from := c_empty_From;
+ p_from := { fieldName := FROM_E,
+ addressField :=
+ {nameAddr := {
+ displayName := omit, // optional charstring
+ addrSpec := f_initSipUrl(p_user) // SipUrl
+ }},//end addressField
+ fromParams := {{id := c_tagId, paramValue := p_tag_str}}
+ };
+ return(p_from)
+ }
+
+ function f_initSipUrl(in integer p_user) runs on ImsComponent return SipUrl
+ {
+ var SipUrl v_sipUrl := {
+ scheme := c_sipScheme, // contains "sip"
+ components := { sip:= {
+ userInfo := omit,
+ hostPort := {omit,omit}}},
+ urlParameters := omit,
+ headers := omit};
+
+ var SipUrl v_urnUrl := {
+ scheme := c_urnScheme, // contains "urn"
+ components := { urn:= {
+ namespaceId := "service",
+ namespaceSpecificString := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString}},
+ urlParameters := omit,
+ headers := omit};
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE2atSUThome) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE3atSUThome) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE4atSUThome) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_IBCFwithHomeUE) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ICSCFwithHomeUE) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithHomeUE) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithVisitingUE) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_SCSCFwithHomeUE) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
+ }
+ case (c_userProfile_SCSCFwithHomeUE_domain) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_AS1) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_AS1_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ECSCFwithHomeUE) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ISUP) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY) {
+ v_urnUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceId;
+ v_urnUrl.components.urn.namespaceSpecificString := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString;
+ }
+ case (c_serviceProfile_EMERGENCY_INVALID) {
+ v_urnUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceId;
+ v_urnUrl.components.urn.namespaceSpecificString := PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceSpecificString;
+ }
+
+ // following setting is used for the assignment of the Path header field
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+
+ // following setting is used in relation to the route headers list elements
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_domain) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_TS_SCSCF_PORT}
+ }
+ case (c_interfaceProfile_IMS_SUT_SCSCF) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_conferenceProfile_factoryURI) {
+ v_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
+ v_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := omit}
+ }
+ };
+ if(p_user == c_serviceProfile_EMERGENCY or p_user == c_serviceProfile_EMERGENCY_INVALID)
+ {return(v_urnUrl)}
+ else
+ {return(v_sipUrl)}
+ }
+
+
+ /*
+ *
+ * @desc sets user parameters with PIXIT values
+ * @param p_user identifies the selected user configuration and location
+ * @verdict
+ */
+ function f_init_interfaceprofile(in integer p_interface) runs on ImsComponent
+ {
+ select(p_interface){
+ case (c_interfaceProfile_IMS_SUT_IBCF1) { //variant c_interfaceProfile_IMS_SUT_IBCF1
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_IBCF1_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IBCF1_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IBCF1_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_IBCF2) { //variant c_interfaceProfile_IMS_SUT_IBCF2
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_IBCF2_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IBCF2_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IBCF2_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) { //variant c_interfaceProfile_IMS_SUT_PCSCF1
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF1_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF1_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF1_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_PCSCF2) { //variant c_interfaceProfile_IMS_SUT_PCSCF2
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF2_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF2_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF2_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_PCSCF) { //variant c_interfaceProfile_IMS_SUT_PCSCF
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_SCSCF) { //variant c_interfaceProfile_IMS_SUT_SCSCF
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_SCSCF_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_SCSCF_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_SCSCF_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_ICSCF) { //variant c_interfaceProfile_IMS_SUT_ICSCF
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_ICSCF_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_ICSCF_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_ICSCF_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_MGCF) { //variant c_interfaceProfile_IMS_SUT_MGCF
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_IMGCF_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IMGCF_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IMGCF_HOME_DOMAIN;
+ }
+ case (c_interfaceProfile_IMS_SUT_AS) { //variant c_interfaceProfile_IMS_SUT_AS
+ vc_interfaceprofile.SUTPort := PX_IMS_SUT_AS_PORT;
+ vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_AS_IPADDR;
+ vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_AS_HOME_DOMAIN;
+ }
+ }
+ }
+
+ /*
+ *
+ * @desc retrieves user DomainPort value of the interface profile
+ * @param p_interface identifies the selected interface
+ * @return DomainPort template
+ */
+ function f_get_userDomainPort (in SipUserProfile p_userProfile) runs on ImsComponent return /*template*/ HostPort
+ {
+ return {p_userProfile.homeDomain, p_userProfile.currPort}
+ }
+
+ /*
+ *
+ * @desc retrieves HostPort value of the interface profile
+ * @param p_interface identifies the selected interface
+ * @return HostPort template
+ */
+ function f_get_interfaceHostPort (in ImsInterfaceProfile p_interface) runs on ImsComponent return /*template*/ HostPort // STS commented out template but check why in there in first place
+ {
+ return {p_interface.SUTIpaddr,p_interface.SUTPort}
+ }
+
+ /*
+ *
+ * @desc retrieves DomainPort value of the interface profile
+ * @param p_interface identifies the selected interface
+ * @return DomainPort template
+ */
+ function f_get_interfaceDomainPort (in ImsInterfaceProfile p_interface) runs on ImsComponent return /*template*/ HostPort
+ {
+ return {p_interface.SUTHomeDomain,p_interface.SUTPort}
+ }
+
+ /*
+ * @desc retrieves SipUrl of the interface profile
+ * @param p_interface identifies the selected interface
+ * @return SipUrl template
+ */
+ function f_get_interfaceNameAddr(in ImsInterfaceProfile p_interface) runs on ImsComponent return template NameAddr
+ {
+ return mw_SipUrl_SUTinterface(p_interface.SUTIpaddr,p_interface.SUTPort)
+ }
+
+
+ }
+ group registration {
+
+ /**
+ *
+ * @desc registration and authentication with MD5
+ * @param p_cSeq_s cseq parameter
+ * @param p_auth flag indicating if authentication is needed
+ */
+ function f_Registration_IMS(inout CSeq p_cSeq_s, in boolean p_auth) runs on SipComponent
+ {
+ f_setHeaders_REGISTER(p_cSeq_s);
+ f_SendREGISTER(m_REGISTER_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest(vc_authorization,{c_Integrity_protected_no}))); //LibSip
+
+ //awaiting of 401 and sending 2nd REGISTER and awaiting 200 OK REGISTER
+ if (p_auth)
+ {
+ // receiving 401 Unauthorized response.
+ // and Re-send REGISTER request with Authorization header
+ tc_ack.start(PX_SIP_TACK);
+ alt
+ {
+ [] SIPP.receive (mw_Response_Base(c_statusLine401, vc_callId, p_cSeq_s)) -> value vc_response
+ {
+ tc_ack.stop;
+ // set headers via, cseq and authorization
+ f_setHeaders_2ndREGISTER(p_cSeq_s);
+ f_SendREGISTER(m_REGISTER_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest(vc_authorization,{c_Integrity_protected_yes}))); //LibSip
+
+ // awaiting 200 OK REGISTER
+ f_awaitingOkResponse(p_cSeq_s);
+ f_getServiceRouteMapIntoRouteInRegistration(p_cSeq_s, vc_response);
+ }
+ [] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callId, p_cSeq_s))
+ {
+ tc_ack.stop;
+ log ("Authorization was not requested as expected");
+ setverdict(inconc)
+ }
+ }
+ }
+ else
+ {
+ f_awaitingOkResponse(p_cSeq_s);
+ f_getServiceRouteMapIntoRouteInRegistration(p_cSeq_s, vc_response);
+ };
+ }//end function f_Registration_IMS
+
+ /**
+ *
+ * @desc awaiting UE1 registration (with authentication)
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_awaitingRegistration_IMS(inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var SipUrl v_passociated_url;
+ var Authorization p_authorization;
+ //Awaiting 1st REGISTER
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
+
+ // 401 response
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
+ vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
+ m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
+ (PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
+ );
+
+ //Awaiting 2nd REGISTER with authorization header
+ f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse((c_Integrity_protected_yes,c_Integrity_protected_ip_assoc_pending)))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}};
+ v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE),v_passociated_url));
+
+ }//end function f_awaitingRegistration_IMS
+
+ /**
+ *
+ * @desc awaiting UE1 registration (with authentication)
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_awaitingRegistration_IMS_gm(inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var SipUrl v_passociated_url;
+ var Authorization p_authorization;
+ vc_ignore_subscribe := true;//handle SUBSCRIBE during the call
+ //Awaiting 1st REGISTER
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
+
+ // 401 response
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
+ vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
+ m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
+ (PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
+ );
+
+ //Awaiting 2nd REGISTER with authorization header
+ f_awaitingREGISTER(mw_REGISTER_authorizedRequest_wo_securityheaders_IMS);
+ //f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse((c_Integrity_protected_yes,c_Integrity_protected_ip_assoc_pending)))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}};
+ v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE),v_passociated_url));
+ vc_DeregDone := false;
+ }//end function f_awaitingRegistration_IMS_gm
+
+
+ /**
+ *
+ * @desc remove registration
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_RemoveRegistration_IMS(inout CSeq p_cSeq) runs on SipComponent
+ {
+ var CommaParam_List v_challenge;
+ var Credentials v_credentials;
+ var template REGISTER_Request v_request;
+
+ if (PX_SIP_REGISTRATION)
+ {
+ f_setHeaders_deREGISTER(p_cSeq);
+ v_request := m_REGISTER_Request_expires_IMS(vc_requestUri, vc_callIdReg,
+ p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0");
+ v_request.msgHeader.route := f_route();
+
+ f_SendREGISTER(v_request);
+ if (PX_SIP_REGISTER_AUTHENTICATION_ENABLED)
+ {
+ // receiving 401 Unauthorized response.
+ // and Re-send REGISTER request with Authorization header
+ tc_ack.start(PX_SIP_TACK);
+ alt
+ {
+ [] SIPP.receive (mw_Response_Base(c_statusLine401, vc_callIdReg, p_cSeq)) -> value vc_response
+ {
+ tc_ack.stop;
+ // set headers via, cseq and authorization
+ f_setHeaders_2ndREGISTER(p_cSeq);
+ v_request := m_REGISTER_Request_expires_IMS(vc_requestUri, vc_callIdReg,
+ p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0");
+ v_request.msgHeader.route := f_route();
+ // Re-send protected REGISTER
+ f_SendREGISTER(v_request);//LibSip
+
+ // awaiting 200 OK REGISTER
+ f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
+ }
+ [] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq))-> value vc_response
+ {
+ tc_ack.stop;
+ f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
+ log ("Authorization was not requested as expected");
+ }
+ }
+ }
+ else
+ {
+ f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
+ }
+ }
+ } // end f_RemoveRegistration_IMS
+
+
+ } // end group registration
+
+ group preambles {
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile where proxy role is present
+ * @param p_userprofile user profile of call
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_IMS_preamble_MGCF(in integer p_userprofile, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ vc_boo_recordRoute := true;
+ vc_boo_route := true;
+ f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_MGCF);
+
+ f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ }
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile
+ * @param p_userprofile user profile of call
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_IMS_preamble_woRegistration(in integer p_userprofile, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ // avoid deregistration in default behavior
+ vc_DeregDone := true;
+ vc_boo_route := true;
+ vc_boo_recordRoute := true;
+
+ //Variables & defaults initialization
+ LibSip_Steps.f_init_component(p_cSeq_s);
+
+ //Preamble
+ f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
+ vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile));
+
+ vc_contact := valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile)));
+
+ }
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
+ * @param p_userprofile user profile of call
+ * @param p_cSeq_s cseq parameter
+ * @param p_register register template
+ */
+ function f_IMS_preamble_withRegistration (in integer p_userprofile, in integer p_interface, inout CSeq p_cSeq_s, template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ f_init_interfaceprofile(p_interface);
+ //Variables & defaults initialization
+ f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+
+ //Preamble
+ f_Registration(p_cSeq_s, p_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
+
+ // deregistration in case of successful registration
+ vc_DeregDone := false;
+
+ f_setHeaders_SUBSCRIBE(p_cSeq_s);
+ f_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, vc_route_REG));
+
+ }
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
+ * @param p_userprofile user profile of call
+ * @param p_cSeq_s cseq parameter
+ * @param p_register register template
+ */
+ function f_IMS_preamble_withEmergencyRegistration (in integer p_userprofile, in integer p_interface, inout CSeq p_cSeq_s, template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ f_init_interfaceprofile(p_interface);
+ //Variables & defaults initialization
+ f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ //Preamble
+ f_Registration(p_cSeq_s, p_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED, true);
+
+ // deregistration in case of successful registration
+ vc_DeregDone := false;
+
+ }
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
+ * (basic registration template)
+ * @param p_userprofile user profile of call
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_IMS_preamble_withRegistrationBasic (in integer p_userprofile,in integer p_interface, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ f_init_interfaceprofile(p_interface);
+ //Variables & defaults initialization
+ f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+
+ //Preamble
+ f_Registration_IMS(p_cSeq_s, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
+ f_setHeaders_SUBSCRIBE(p_cSeq_s);
+ f_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, vc_route_REG));
+ }
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
+ * (basic registration template)
+ * @param p_userprofile user profile of call
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_IMS_preamble_AS (in integer p_userprofile, in integer p_interface, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ // avoid deregistration in default behavior
+ vc_DeregDone := true;
+ vc_boo_route := true;
+ vc_boo_recordRoute := true;
+ vc_cSeq := p_cSeq_s;
+
+ //Defaults
+ vc_def_catchSyncStop := activate(a_Sip_catchSyncStop());
+ vc_default := activate (a_altstep_AS());
+
+ //Preamble
+ f_init_interfaceprofile(p_interface);
+ f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
+ vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile));
+ vc_contact := valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile)));
+ }
+
+ } // end group preambles
+
+ group postambles {
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile and handle deregistration
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_IMS_postamble_withDeRegistration (CSeq p_CSeq) runs on ImsComponent {
+ f_RemoveRegistration(p_CSeq); // TODO check if applicable for IMS
+
+ f_terminate_component();
+ }
+
+ /*
+ *
+ * @desc Sets variables and default initialization for user profile and handle deregistration on AS as TS
+ * @param p_cSeq_s cseq parameter
+ */
+ function f_IMS_postamble_AS_withDeRegistration (boolean p_deRegistration) runs on ImsComponent {
+
+ if(p_deRegistration == true)
+ {f_awaitingREGISTER_sendReply(mw_REGISTER_Request_Base,true);}
+ f_terminate_component();
+ }
+
+ function f_SIP_postamble_IMS1_withoutRegistration () runs on ImsComponent
+ {f_terminate_component()};
+
+ function f_IMS_postamble_withoutDeRegistration () runs on ImsComponent
+ {f_terminate_component()};
+
+ function f_SIP_postamble_IMS1_awaitDeRegistration () runs on ImsComponent
+ {
+ var SipUrl v_passociated_url;
+ //Awaiting 1st REGISTER
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
+
+ // 401 response
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
+ vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
+ m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
+ (PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
+ );
+
+ //Awaiting 2nd REGISTER with authorization header
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);//mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes))));
+// f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes))));
+
+ // 200OK to complete the request
+// vc_contact := vc_request.msgHeader.contact;
+// vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE),v_passociated_url));
+
+ f_terminate_component()
+ };
+
+ function f_IMS_postamble_awaitDeRegistration () runs on ImsComponent
+ {
+ var SipUrl v_passociated_url;
+ //Awaiting 1st REGISTER
+
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
+
+ // 401 response
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
+ vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
+ m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
+ (PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
+ );
+
+ //Awaiting 2nd REGISTER with authorization header
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);//mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes))));
+
+ // 200OK to complete the request
+// vc_contact := vc_request.msgHeader.contact;
+// vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE),v_passociated_url));
+
+ f_terminate_component()
+ };
+
+
+ function f_IMS_awaitDeRegistration () runs on ImsComponent
+ {
+ var SipUrl v_passociated_url;
+ //Awaiting 1st REGISTER
+
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
+
+ // 401 response
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
+ vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
+ m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
+ (PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
+ );
+
+ //Awaiting 2nd REGISTER with authorization header
+ f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);//mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes))));
+
+ // 200OK to complete the request
+// vc_contact := vc_request.msgHeader.contact;
+// vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE),v_passociated_url));
+ };
+
+ function f_SIP_postamble_UE1_withoutRegistration () runs on ImsComponent
+ {f_terminate_component()};
+
+ function f_SIP_postamble_UE2_withoutRegistration () runs on ImsComponent
+ {f_terminate_component()};
+
+ /**
+ *
+ * @desc sends BYE and awaits response
+ * @param p_CallId parameter for outgoing BYE
+ * @param p_cSeq parameter for outgoing BYE
+ * @param p_from parameter for outgoing BYE
+ * @param p_to parameter for outgoing BYE
+ * @param p_reqHostPort parameter for outgoing BYE
+ */
+ function f_terminateCall_IMS(SipUrl p_requestUri, CallId p_CallId, inout CSeq p_cSeq, From p_from,
+ template To p_to) runs on ImsComponent
+ {
+ LibSip_Steps.f_setHeadersBYE(p_cSeq);
+ // Sending of a BYE request to release the call and expect a final response
+ f_SendBYE(m_BYE_Request_IMS(p_requestUri, p_CallId, p_cSeq, p_from, valueof(p_to), vc_via, vc_route));
+
+ tc_resp.start(PX_SIP_TRESP);
+ alt
+ {
+ [] SIPP.receive (mw_Response_Base(mw_statusLine1xx, p_CallId, p_cSeq))
+ {
+ repeat;
+ }
+ [] SIPP.receive (mw_Response_Base(mw_statusLineFinal, p_CallId, p_cSeq))
+ {
+ tc_resp.stop;
+ }
+ // timeout should be handled in default_alt_step
+ }
+ } // end function f_terminateCall
+
+
+ /**
+ *
+ * @desc sends BYE and awaits response
+ * @param p_CallId parameter for outgoing BYE
+ * @param p_cSeq parameter for outgoing BYE
+ * @param p_from parameter for outgoing BYE
+ * @param p_to parameter for outgoing BYE
+ * @param p_reqHostPort parameter for outgoing BYE
+ */
+ function f_terminateCall_UE(SipUrl p_requestUri, CallId p_CallId, inout CSeq p_cSeq, From p_from,
+ template To p_to, template RecordRoute p_recordRoute := omit) runs on ImsComponent
+ {
+ LibSip_Steps.f_setHeadersBYE(p_cSeq);
+ // Sending of a BYE request to release the call and expect a final response
+ if(ispresent(p_recordRoute)) {
+ var Route v_route := { ROUTE_E, valueof(p_recordRoute.routeBody)};
+ f_SendBYE(m_BYE_Request_UE(p_requestUri, p_CallId, p_cSeq, p_from, valueof(p_to), vc_via, v_route));
+ } else {
+ f_SendBYE(m_BYE_Request_UE(p_requestUri, p_CallId, p_cSeq, p_from, valueof(p_to), vc_via, vc_route));
+ }
+
+ tc_resp.start(PX_SIP_TRESP);
+ alt
+ {
+ [] SIPP.receive (mw_Response_Base(mw_statusLine1xx, p_CallId, p_cSeq))
+ {
+ repeat;
+ }
+ [] SIPP.receive (mw_Response_Base(mw_statusLineFinal, p_CallId, p_cSeq))
+ {
+ tc_resp.stop;
+ }
+ // timeout should be handled in default_alt_step
+ }
+ } // end function f_terminateCall_UE
+
+
+ /**
+ *
+ * @desc sends BYE and awaits response and De-registration
+ * @param p_CallId parameter for outgoing BYE
+ * @param p_cSeq parameter for outgoing BYE
+ * @param p_from parameter for outgoing BYE
+ * @param p_to parameter for outgoing BYE
+ * @param p_reqHostPort parameter for outgoing BYE
+ */
+ function f_terminateCall_UE_withDeReg(SipUrl p_requestUri, CallId p_CallId, inout CSeq p_cSeq, From p_from,
+ template To p_to) runs on ImsComponent
+ {
+ LibSip_Steps.f_setHeadersBYE(p_cSeq);
+ // Sending of a BYE request to release the call and expect a final response
+ f_SendBYE(m_BYE_Request_UE(p_requestUri, p_CallId, p_cSeq, p_from, valueof(p_to), vc_via, vc_route));
+
+ tc_resp.start(PX_SIP_TRESP);
+ alt
+ {
+ [] SIPP.receive (mw_Response_Base(mw_statusLine1xx, p_CallId, p_cSeq))
+ {
+ repeat;
+ }
+ [] SIPP.receive (mw_Response_Base(mw_statusLineFinal, p_CallId, p_cSeq))
+ {
+ tc_resp.stop;
+ }
+ // timeout should be handled in default_alt_step
+ };
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ //f_terminate_component();
+ } // end function f_terminateCall_UE_withDeReg
+
+ }
+ group defaults {
+
+ altstep a_clearRegistration_IMSuser() runs on ImsComponent
+ {
+ var Response v_response;
+ var Request v_request;
+
+ [] any timer.timeout
+ {
+ setverdict(fail);
+ all timer.stop;
+ //TODO check how to solve release of call
+ //f_SendCANCEL(m_CANCEL_Request(vc_callId, vc_cSeq, vc_from, vc_cancel_To, vc_reqHostPort, vc_via )); // difference between registration state or transaction state
+ vc_callId := vc_callIdReg;
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ f_componentStop();
+ }
+ // allow repeated INVITEs
+ [vc_ignore_invite] SIPP.receive(mw_INVITE_Request_Base)
+ {
+ repeat
+ }
+
+ // allow repeated BYEs after ack of the first BYE
+ [vc_ignore_bye] SIPP.receive (mw_BYE_Request_Base(?))
+ {
+ repeat
+ }
+ [] SIPP.receive (mw_ACK_Request_Base(?))
+ {
+ repeat
+ }
+ // allow 100 replies
+ [] SIPP.receive(mw_Response_Base(c_statusLine100,?, ?))
+ {
+ repeat
+ }
+
+ // ignore 181 if flag is set (following TS 183004 §4.5.2.1)
+ [vc_ignore181] SIPP.receive(mw_Response_Base(c_statusLine181,vc_callId, vc_cSeq))-> value v_response sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
+ repeat;
+ }
+
+ // according to SIP chap.8.1.3.2
+ [] SIPP.receive(mw_Response_Base(c_statusLine183,vc_callId, vc_cSeq))
+ {
+ repeat;
+ }
+
+ // ignore 484 if flag is set
+ [vc_ignore484] SIPP.receive(mw_Response_Base(c_statusLine484,vc_callId, vc_cSeq))
+ {
+ repeat
+ }
+
+ [vc_ignore4xx] SIPP.receive(mw_Response_Base(mw_statusLine4xx,vc_callId, ?))-> value v_response sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
+ f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
+ repeat
+ }
+
+ [vc_ignore200OKinv] SIPP.receive(mw_Response_Base(c_statusLine200, vc_callId, ?))
+ {
+ repeat
+ }
+
+ [] SIPP.receive(mw_INFO_Request_Base(vc_callId))->value v_request sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfRequest(v_request);
+ f_send200OK();
+ repeat
+ }
+
+ // awaiting of Notify
+ [] SIPP.receive(mw_NOTIFY_Request_Base(vc_callId))->value v_request sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfRequest(v_request);
+ f_send200OK();
+ repeat
+ }
+ // awaiting of subscribe from UE
+ [vc_ignore_subscribe] SIPP.receive(mw_SUBSCRIBE_Request_Base)-> value v_request sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfSUBSCRIBE(v_request);
+ f_send200OK();
+ repeat;
+ }
+
+ //awaiting of subscribe on proxy
+ [] SIPP.receive(mw_SUBSCRIBE_Request_Base)->value v_request sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfRequest(v_request);
+ f_sendResponse(m_Response_Contact(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact));
+ //f_setHeadersGeneral(vc_cSeq, "NOTIFY"); // cseq, contact, branch, via
+ //f_SendNOTIFY(m_NOTIFY_Request_contact(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact));
+ log(v_request.msgHeader.contact.contactBody.contactAddresses[0].addressField.nameAddr.addrSpec);
+ f_SendNOTIFY(m_NOTIFY_Request_contact(v_request.msgHeader.contact.contactBody.contactAddresses[0].addressField.nameAddr.addrSpec, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact));
+ f_awaitingOkResponse(vc_cSeq);
+ repeat
+ }
+ // unexpected BYE is acknowledged to avoid retransmissions
+ [] SIPP.receive(mw_BYE_Request_Base(?))-> value v_request sender vc_sent_label
+ {
+ setverdict(fail);
+ f_setHeadersOnReceiptOfRequest(v_request);
+ f_send200OK();
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ f_componentStop();
+ }
+
+ // unexpected CANCEL is acknowledged to avoid retransmissions
+ [] SIPP.receive(mw_CANCEL_Request_Base(?))-> value v_request sender vc_sent_label
+ {
+ setverdict(fail);
+ f_setHeadersOnReceiptOfRequest(v_request);
+ //Answer to the CANCEL
+ f_send200OK();
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ f_componentStop();
+ }
+ // catch 4xx response
+ [] SIPP.receive(mw_Response_Base(mw_statusLine4xx, vc_callId, ?))-> value v_response sender vc_sent_label
+ {
+ setverdict(fail);
+ f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
+ LibSip_Steps.f_setHeadersACK();
+ f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ f_componentStop();
+ }
+ // catch 5xx response
+ [] SIPP.receive(mw_Response_Base(mw_statusLine5xx, vc_callId, ?))-> value v_response sender vc_sent_label
+ {
+ setverdict(fail);
+ f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
+ LibSip_Steps.f_setHeadersACK();
+ f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ f_componentStop();
+ }
+ // catch invalid REGISTER
+ [] SIPP.receive(mw_REGISTER_Request_Base)-> value v_request sender vc_sent_label
+ {
+ setverdict(fail);
+ f_componentStop();
+ }
+ // any
+ [] SIPP.receive
+ {
+ setverdict(fail);
+ all timer.stop;
+// f_setHeadersCANCEL(vc_cSeq);
+// f_SendCANCEL(m_CANCEL_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_cancel_To, vc_via )); // difference between registration state or transaction state
+ action("Please de-register");
+ f_IMS_awaitDeRegistration();
+ f_componentStop();
+ }
+ }
+
+ /**
+ *
+ * @desc main default altstep to handle unexpected messages and timeout
+ * @verdict fail for all unexpected branches
+ */
+ altstep a_altstep_AS() runs on SipComponent
+ {
+ var Response v_response;
+ var Request v_request;
+
+ [] any timer.timeout
+ {
+ setverdict(fail);
+ all timer.stop;
+ }
+
+ // allow repeated INVITEs
+ [vc_ignore_invite] SIPP.receive(mw_INVITE_Request_Base)
+ {
+ repeat
+ }
+ //handle REGISTER requests
+ [] SIPP.receive(mw_REGISTER_Request_Base)-> value v_request sender vc_sent_label
+ {
+ f_setHeadersOnReceiptOfREGISTER(v_request);
+ //vc_contact := vc_request.msgHeader.contact;
+ f_sendResponse(m_Response_Contact(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via, vc_contact));
+ repeat;
+ }
+
+ // according to SIP chap.8.1.3.2
+ [] SIPP.receive(mw_Response_Base(c_statusLine183,vc_callId, vc_cSeq))
+ {
+ repeat;
+ }
+
+ // unexpected CANCEL is acknowledged to avoid retransmissions
+ [] SIPP.receive(mw_CANCEL_Request_Base(?))-> value v_request sender vc_sent_label
+ {
+ setverdict(fail);
+ f_setHeadersOnReceiptOfRequest(v_request);
+ f_send200OK();
+ }
+
+ // unexpected BYE is acknowledged to avoid retransmissions
+ [] SIPP.receive(mw_BYE_Request_Base(?))-> value v_request sender vc_sent_label
+ {
+ setverdict(fail);
+ f_setHeadersOnReceiptOfRequest(v_request);
+ f_send200OK();
+ }
+
+ [] SIPP.receive(mw_Response_Base(? ,vc_callId, vc_cSeq))-> value vc_response
+ {
+ log("Response matched in DEFAULT!!!");
+ setverdict(fail);
+ repeat;
+ }
+ // any
+ [] SIPP.receive
+ {
+ setverdict(fail);
+ all timer.stop;
+ }
+ }
+ }
+} // module LibIms_Steps
\ No newline at end of file
/v2/ttcn/LibIms_Steps.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: v2/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- v2/ttcn/LibIms_PIXITS.ttcn (nonexistent)
+++ v2/ttcn/LibIms_PIXITS.ttcn (revision 209)
@@ -0,0 +1,563 @@
+/*
+ * @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_PIXITS
+{
+ //LibCommon
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_TextStrings all;
+ import from LibCommon_DataStrings all;
+
+group SUT {
+
+group SUT_UE {
+ /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
+ */
+ modulepar charstring PX_IMS_SUT_UE_IPADDR := "172.31.10.99";
+
+ /** @desc integer for SUT - UE port number to exchange SIP messages - connection point for PCSCF
+ */
+ modulepar integer PX_IMS_SUT_UE_PORT := 5060;
+}//end group SUT_UE1
+group SUT_UE1 {
+ /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF1_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT - PCSCF1 port number to exchange SIP messages - connection point for UE1
+ */
+ modulepar integer PX_IMS_SUT_PCSCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF1_HOME_DOMAIN := "pcscf1.sut.net";
+
+ /** @desc charstring for IP address used by the TS to exchange media streams for UE1
+ */
+ modulepar charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE1 local domain
+ */
+ modulepar charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE1 local user
+ */
+ modulepar charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2 username of UE1:
+ * The name of user in the specified realm
+ */
+ modulepar charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
+ */
+ modulepar charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 clause 3-2-1 qop options of UE1:
+ * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server; the
+ * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
+ */
+ modulepar charstring PX_IMS_SUT_UE1_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE1
+ */
+ modulepar charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE1 display name
+ */
+ modulepar charstring PX_IMS_SUT_UE1_DISPLAY := "[email protected]";
+} // end group SUT_UE1
+
+group SUT_UE2 {
+ /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF2_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT - PCSCF2 port number to exchange SIP messages - connection point for UE2
+ */
+ modulepar integer PX_IMS_SUT_PCSCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF2_HOME_DOMAIN := "pcscf2.home.net";
+
+ /** @desc charstring for IP address used by the TS to exchange media streams for UE2
+ */
+ modulepar charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ modulepar charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE2 local user
+ */
+ modulepar charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2 username of UE2:
+ * The name of user in the specified realm
+ */
+ modulepar charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ modulepar charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE2:
+ * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the
+ * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
+ */
+ modulepar charstring PX_IMS_SUT_UE2_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE2
+ */
+ modulepar charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE2 display name
+ */
+ modulepar charstring PX_IMS_SUT_UE2_DISPLAY := "[email protected]";
+} // end group SUT_UE2
+
+group SUT_UE3 {
+ /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF3_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT - PCSCF3 port number to exchange SIP messages - connection point for UE3
+ */
+ modulepar integer PX_IMS_SUT_PCSCF3_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF3_HOME_DOMAIN := "pcscf3.home.net";
+
+ /** @desc charstring for IP address used by the TS to exchange media streams for UE3
+ */
+ modulepar charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ modulepar charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE3 local user
+ */
+ modulepar charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2 username of UE3:
+ * The name of user in the specified realm
+ */
+ modulepar charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE3
+ */
+ modulepar charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE3:
+ * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the
+ * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
+ */
+ modulepar charstring PX_IMS_SUT_UE3_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE3
+ */
+ modulepar charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
+} // end group SUT_UE3
+
+group SUT_UE4 {//UE4 can be used as UE1Visited
+ /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF4_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT - PCSCF4 port number to exchange SIP messages - connection point for UE4
+ */
+ modulepar integer PX_IMS_SUT_PCSCF4_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF4_HOME_DOMAIN := "pcscf4.home.net";
+
+ /** @desc charstring for IP address used by the TS to exchange media streams for UE4
+ */
+ modulepar charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ modulepar charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE4 local user
+ */
+ modulepar charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2 username of UE4:
+ * The name of user in the specified realm
+ */
+ modulepar charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ modulepar charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE4:
+ * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the
+ * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
+ */
+ modulepar charstring PX_IMS_SUT_UE4_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE4
+ */
+ modulepar charstring PX_IMS_SUT_UE4_REGISTRAR := "registrar.sut.net";
+} // end group SUT_UE4
+
+group SUT_unknown{
+ /** @desc charstring for identity of unknown UE public user
+ */
+ modulepar charstring PX_IMS_SUT_unknownUE_PUBLIC_USER := "0007";
+} // end group SUT_unknown
+
+group EMERGENCY{
+ /** @desc charstring for identity of emergency service local domain
+ */
+ modulepar charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
+
+ /** @desc charstring for identity of the emergency service
+ */
+ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
+ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_namespaceId := "service";
+ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString := "sos";
+
+ /** @desc charstring for identity of the invalid emergency service
+ */
+ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
+ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceId := "service";
+ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceSpecificString := "sos.invalid";
+}// end group EMERGENCY service
+
+group SUT_IBCF {
+ /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
+
+ /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_IBCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF1 domain
+ */
+ modulepar charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
+
+ /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
+
+ /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_IBCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF2 domain
+ */
+ modulepar charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
+} // end group SUT_IBCF
+group SUT_PCSCF {
+ /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_PCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/P-CSCFdomain
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
+
+ /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF_VisitedNetworkID := "sut token";
+
+ /** @desc charstring for SUT/P-CSCF Min-SE header lower bound for the session refresh interval (see RFC4028)
+ */
+ modulepar charstring PX_IMS_SUT_PCSCF_MinSE := "100";
+} // end group SUT_PCSCF
+group SUT_SCSCF {
+ /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
+
+ /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_SCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/S-CSCFdomain
+ */
+ modulepar charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
+
+ /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
+ */
+ modulepar charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
+} // end group SUT_SCSCF
+
+group SUT_ICSCF {
+ /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
+
+ /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_ICSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-CSCFdomain
+ */
+ modulepar charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
+
+ /** @desc charstring for SUT/I-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ modulepar charstring PX_IMS_SUT_ICSCF_VisitedNetworkID := "Visited ETSI 1";
+} // end group SUT_ICSCF
+
+group SUT_AS {
+ /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
+ */
+ modulepar charstring PX_IMS_SUT_AS_IPADDR := "172.31.10.7";
+
+ /** @desc integer for SUT - AS port number to exchange SIP messages - connection point for SCSCF
+ */
+ modulepar integer PX_IMS_SUT_AS_PORT := 5060;
+
+ /** @desc charstring for SUT/AS domain
+ */
+ modulepar charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
+
+}//end group SUT_UE1
+
+group SUT_IMGCF {
+ /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
+
+ /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_IMGCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-MGCFdomain
+ */
+ modulepar charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
+} // end group SUT_IMGCF
+
+group SUT_CONF {
+ /**
+ * @desc
+ * charstring for SUT/conference IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
+ /**
+ * @desc integer for SUT/conference port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_SUT_CONF_PORT := 5060;
+ /**
+ * @desc charstring for SUT/conference domain
+ */
+ modulepar charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
+ /**
+ * @desc charstring for conference factory URI name
+ */
+ modulepar charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
+
+} // end group SUT_CONF
+
+} // end group SUT
+group TS {
+group TS_UE1 {
+ /** @desc charstring for IP address used by the UE1 to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
+
+ /** @desc integer for port number used by the UE1 to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_UE1_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ modulepar charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
+} // end group TS_UE1
+
+group TS_UE2 {
+ /** @desc charstring for IP address used by the UE2 to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
+
+ /** @desc integer for port number used by the UE2 to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_UE2_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ modulepar charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
+} // end group TS_UE2
+
+group TS_UE3 {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_UE3_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ modulepar charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
+} // end group TS_UE3
+
+group TS_UE4 {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_UE4_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ modulepar charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
+} // end group TS_UE4
+
+group TS_IBCF {
+ /** @desc charstring for TS/IBCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
+
+ /** @desc integer for TS/IBCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_IBCF_PORT := 5060;
+
+ /** @desc charstring for TS/IBCF domain
+ */
+ modulepar charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
+} // end group TS_IBCF
+
+group TS_ICSCF {
+ /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
+
+ /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_ICSCF_PORT := 5060;
+
+ /** @desc charstring for TS/I-CSCF domain
+ */
+ modulepar charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
+} // end group TS_ICSCF
+
+group TS_PCSCF {
+ /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
+
+ /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_PCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/P-CSCFdomain
+ */
+ modulepar charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
+} // end group TS_PCSCF
+
+group TS_SCSCF {
+ /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/S-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_SCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/S-CSCFdomain
+ */
+ modulepar charstring PX_IMS_TS_SCSCF_HOME_DOMAIN := "scscf.ts.net";
+
+ /** @desc charstring public user identity for Request-URI to be rejected by IUT S-CSCF as it is barred for incoming calls
+ */
+ modulepar charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
+
+ /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
+ */
+ modulepar charstring PX_IMS_SUT_INVALID_GRUU;
+
+ /** @desc charstring Service value in P-Asserted-Service header to be rejected by IUT S-CSCF, as service is not subscribed-to
+ */
+ modulepar charstring PX_IMS_SUT_UNSUBSCRIBED_SERVICE;
+
+ /** @desc charstring Service value in SDP message body to be rejected by IUT S-CSCF, as service is not subscribed-to;
+ ** intentionally kept as charstring to allow maximum flexibility to construct unsubscribed service **
+ */
+ modulepar charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
+} // end group TS_SCSCF
+
+group TS_ECSCF {
+ /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/E-CSCF port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_ECSCF_PORT := 5060;
+
+ /** @desc charstring for TS/E-CSCFdomain
+ */
+ modulepar charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
+} // end group TS_ECSCF
+
+group TS_IMS1user {
+ /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
+ */
+ modulepar charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
+
+ /** @desc charstring for TS/domain
+ */
+ modulepar charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
+} // end group TS_IMS1user
+
+group TS_ISUPuser {
+ /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
+ */
+ modulepar charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
+
+ /** @desc charstring for ISUP TS/domain or IPAddres
+ */
+ modulepar charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
+} // end group TS_ISUPuser
+
+
+group TS_AS {
+ /** @desc charstring for TS/AS1 IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
+
+ /** @desc integer for TS/AS1 port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_AS1_PORT := 5060;
+
+ /** @desc charstring for TS/AS1 domain
+ */
+ modulepar charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
+
+ /** @desc charstring for TS/AS2 IP address to exchange SIP messages
+ */
+ modulepar charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
+
+ /** @desc integer for TS/AS2 port number to exchange SIP messages
+ */
+ modulepar integer PX_IMS_TS_AS2_PORT := 5060;
+
+ /** @desc charstring for TS/AS2 domain
+ */
+ modulepar charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
+} // end group TS_AS
+} // end group TS
+} // end module LibIms_PIXITS
/v2/ttcn/LibIms_PIXITS.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: v2/ttcn/LibIms_Interface.ttcn
===================================================================
--- v2/ttcn/LibIms_Interface.ttcn (nonexistent)
+++ v2/ttcn/LibIms_Interface.ttcn (revision 209)
@@ -0,0 +1,39 @@
+/*
+ * @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_Interface
+{
+ //LibCommon
+ import from LibCommon_Sync all;
+ import from LibCommon_AbstractData all;
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_DataStrings all;
+ //LibSip
+ import from LibSip_SIPTypesAndValues all;
+ import from LibSip_SDPTypes all;
+ import from LibSip_Templates all;
+ import from LibSip_PIXITS all;
+ import from LibSip_Interface all;
+ //LibIms
+ import from LibIms_SIPTypesAndValues all;
+
+ group AdressTypes
+ {
+
+ type component ImsComponent extends SipComponent
+ {
+ // general variables
+ var ImsInterfaceProfile vc_interfaceprofile
+ } // end ImsComponent
+
+ }// end group AdressTypes
+
+
+
+
+} // end module LibIms_TestSystem
/v2/ttcn/LibIms_Interface.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: v2/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- v2/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
+++ v2/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 209)
@@ -0,0 +1,96 @@
+/*
+ * @author STF 346, STF366, STF368, STF369, STF450
+ * @version $Id$
+ * @desc This module provides the types and constants used by the test component
+ * for SIP tests.
+ * This module is part of LibImsV2.
+ */
+
+module LibIms_SIPTypesAndValues
+{
+ // SipAts
+ import from LibSip_SDPTypes all;
+ import from LibSip_XMLTypes all;
+
+group Constants
+{
+
+const integer c_ISUP_HOP_COUNT:=31; //TODO replace this value with appropriate PIXIT parameter
+
+// URN scheme (RFC 5031)
+// TODO NOTE: this definition is for temporary use
+// const charstring c_urnScheme := "urn"; // defined in LibSIPTyypesAndValues
+
+group UserProfileConstants
+ {
+ // number of user profile (RESERVED: from 1-10 for SIP profile)
+ const integer c_userProfile_UE1atSUThome := 11; // location is SUT domain
+ const integer c_userProfile_UE2atSUThome := 12; // location is SUT domain
+ const integer c_userProfile_UE3atSUThome := 13; // location is SUT domain
+ const integer c_userProfile_UE4atSUThome := 14; // location is SUT domain
+ const integer c_userProfile_UE1atSUTvisiting := 21; // location is SUT domain
+ //const integer c_userProfile_UE2atSUTvisiting := 22; // location is SUT domain
+ const integer c_userProfile_IBCFwithUnknownUE := 28; // location is IMS1 domain
+ const integer c_userProfile_IBCFwithHomeUE := 29; // location is IMS1 domain
+ const integer c_userProfile_IBCFwithVisitingUE := 31; // location is IMS1 domain
+ const integer c_userProfile_PCSCFwithHomeUE := 41; // location is IMS1 domain
+ const integer c_userProfile_PCSCFwithVisitingUE := 42; // location is IMS1 domain
+ const integer c_userProfile_PCSCFwithVisitingUE2 := 43; // location is IMS1 domain
+ const integer c_userProfile_PCSCFwithUnknownVisitingUE := 44; // location is IMS1 domain
+ const integer c_userProfile_ICSCFwithHomeUE := 45; // location is IMS1 domain
+ const integer c_userProfile_SCSCFwithHomeUE := 46; // location is IMS1 domain
+ const integer c_userProfile_SCSCFwithHomeUE_domain :=55;
+ const integer c_userProfile_ECSCFwithHomeUE := 47; // location is IMS1 domain
+ const integer c_userProfile_ISUP := 49; //
+ const integer c_userProfile_AS1 := 51; // Isc userProfile at AS1
+ const integer c_userProfile_AS2 := 52; // Isc userProfile at AS2
+
+
+
+ // number of interface profile
+ const integer c_interfaceProfile_IMS_SUT_IBCF1 := 100; // Ic interface at IBCF1 located in SUT
+ const integer c_interfaceProfile_IMS_SUT_IBCF2 := 101; // Ic interface at IBCF2 located in SUT
+ const integer c_interfaceProfile_IMS_SUT_PCSCF1 := 110; // Gm interface towards UE1 located in SUT
+ const integer c_interfaceProfile_IMS_SUT_PCSCF2 := 111; // Gm interface towards UE2 located in SUT
+ const integer c_interfaceProfile_IMS_SUT_PCSCF := 112; // Mw interface at P-CSCF located in SUT
+ const integer c_interfaceProfile_IMS_SUT_SCSCF := 113; // Mw interface at S-CSCF located in SUT
+ const integer c_interfaceProfile_IMS_SUT_ICSCF := 114; // Mw interface at I-CSCF located in SUT
+ const integer c_interfaceProfile_IMS_SUT_MGCF := 115; // Mw interface at MGCF located in SUT
+ const integer c_interfaceProfile_IMS_SUT_AS := 116; // Isc interface at AS located in SUT
+ const integer c_interfaceProfile_IMS_SUT_ECSCF := 117; // Mw interface at E-CSCF located in SUT
+
+
+ // number of conference profile
+ const integer c_conferenceProfile_factoryURI := 800; // confernece factory URI
+
+ // number of service profile
+ const integer c_serviceProfile_EMERGENCY := 911;
+ const integer c_serviceProfile_EMERGENCY_INVALID := 912;
+
+ // number of SIPURL identifiers
+ const integer c_interfaceSIPURL_IMS_SUT_PCSCF1_domain := 1101; // c_interfaceProfile_IMS_SUT_PCSCF1
+ const integer c_interfaceSIPURL_IMS_SUT_PCSCF1_ip := 1102; // c_interfaceProfile_IMS_SUT_PCSCF1
+
+} //end group UserProfileConstants
+
+
+} //end group Constants
+
+
+ group otherTypes{
+ type record ImsInterfaceProfile
+ { /** @desc integer for Port number to exchange SIP messages
+ */
+ integer SUTPort,
+
+ /** @desc charstring for IP address to exchange SIP messages
+ */
+ charstring SUTIpaddr,
+
+ /** @desc charstring for home domain to exchange SIP messages
+ */
+ charstring SUTHomeDomain
+ }
+ }
+
+} // end module LibIms_SIPTypesAndValues
/v2/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property