Compare Revisions

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

Ignore whitespace Rev 97 → Rev 98

/tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Steps.ttcn
File deleted
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Templates.ttcn (revision 97)
+++ tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Templates.ttcn (nonexistent)
@@ -1,2868 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_Templates
-{
- //LibCommon
- import from LibCommon_DataStrings all;
-
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_Templates all;
- import from LibSip_Steps all;
- import from LibSip_PIXITS all;
- import from LibSip_XMLTypes all;
- import from XSDAUX all;
-
- //LibIms
- import from LibIms_SIPTypesAndValues all;
-
- import from LibIms_PIXITS all;
-
- template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+";
-
- template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) :=
- {
- displayName := *,
- addrSpec := {
- scheme := "sip:",
- userInfo := *,
- hostPort := {p_host, p_port},
- urlParameters := *,
- headers := *
- }
- }
-
- template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
-
-group Subfields{
-
- template SemicolonParam_List mw_semicolonParams_realm (template charstring p_realm) :=
- ?; //superset({"realm",p_realm},{"rand",?},{"autn",?},{"algorithm","AKAv1-MD5"},{"ik",?},{"ck",?}) // ERROR HERE! Superset operation must contain value list - no templates!
-
- template SemicolonParam_List m_semicolonParams_language (template charstring p_language):=
- {{"language",p_language}}
-
- template SemicolonParam_List mw_semicolonParams_language (template charstring p_language):=
- {{"language",p_language}}
-
- template SemicolonParam_List m_semicolonParams_isub (template charstring p_address):=
- {{"isub",p_address}}
-}
-
-group HeaderFieldTemplates{
-
- template MinSE m_minSE(DeltaSec p_ds):=
- {
- fieldName := MIN_SE_E,
- deltaSec:=p_ds,
- minSeParam:=omit
- }
-
- template PathValue m_pathvalue (SipUrl p_sipUrl):=
- {
- nameAddr := {displayName := omit, // optional charstring
- addrSpec := p_sipUrl // SipUrl
- },
- rrParam := omit
- }
-
- template Path m_path (SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {
- {nameAddr := {
- displayName := omit, // optional charstring
- addrSpec := p_sipUrl // SipUrl
- },
- 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 (SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {*,m_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_fixedValue(charstring p_homeDomain) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {{id:="icid-value", paramValue :="123abc"},
- {id:="icid-generated-at", paramValue :="192.1.1.10"},
- {id:="orig-ioi", paramValue := p_homeDomain}}
- };
- template PChargingVector m_pChargingVector_fixedValue1(charstring p_homeDomain) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {
- {id:="icid-generated-at", paramValue :="192.1.1.10"},
- {id:="orig-ioi", paramValue := p_homeDomain}}
- };
-
- template PChargingVector mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
- };
-
- template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
- {
- fieldName := P_MEDIA_AUTHORIZATION_E,
- pMediaAuthorizations := {"A"} // example
- };
-
-
- template PEarlyMedia m_pEarlyMedia_sup :=
- {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
-
-
- template ProxyRequire m_proxyRequire_secAgree :=
- {
- fieldName := PROXY_REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template PVisitedNetworkID mw_pVisitedNetworkID :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
- genericParams := *}}
- }
-
- template RecordRoute m_recordRoute_notmatching:=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template Require m_require_secAgree :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template Require mw_require_path :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset("path")
- };
-
- template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
- {
- fieldName := ROUTE_E,
- routeBody := {{nameAddr := {displayName := omit,
- addrSpec := {scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := {host:=p_interfaceprofile.SUTIpaddr, portField:= p_interfaceprofile.SUTPort},
- urlParameters := omit,
- headers := omit}
- },
- rrParam := omit}
- }};
-
- template Route m_route_notmatching:=
- {
- fieldName := ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template SessionExpires m_se(DeltaSec p_ds):=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=p_ds,
- seParam:=omit
- }
-
- template SessionExpires mw_se:=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=?,
- seParam:=omit
- }
-
- template Supported m_supported_timer:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"timer"}
- }
-
-
- template Supported m_supported_fromChange:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"from-change"}
- }
-
- template To m_To_targetRefreshRequest(template To p_To) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := p_To.addressField.nameAddr.displayName,
- addrSpec := p_To.addressField.nameAddr.addrSpec
- }},//end addressField
- toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
- };
-
- template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
- viaParams:={{id :=c_branchId,paramValue :=branch_val}}
- }
-
- template Via m_via_notmatching:=
- {
- fieldName := VIA_E,
- viaBody :=
- {{
- sentProtocol := valueof(m_SentProtocol("UDP")),
- sentBy:={host:="unknown.domain.name", portField:= 10000},
- viaParams:={{id :=c_branchId,paramValue :="abcd0000"}}
- } }
- };
-
- /*
- * @desc WWW-Authenticate header field
- * @param p_challenge value
- */
- template WwwAuthenticate m_wwwAuthenticate (Challenge p_challenge):=
- {
- fieldName := WWW_AUTHENTICATE_E,
- challenge := p_challenge
- }
-
- /*
- * @desc WWW-Authenticate header field
- * @param p_challenge value
- */
- template WwwAuthenticate mw_wwwAuthenticate (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := WWW_AUTHENTICATE_E,
- challenge :=
- {digestCln := p_semicolonParam_List // set of GenericParam
- }
- }
-
-
-
- /*
- * @desc AcceptContact header field
- * @param p_acValues value
- */
- template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- /*
- * @desc Authenticate header field
- * @param p_challenge value
- */
- template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues :=
- {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- template SubscriptionState mw_subscriptionState(template charstring p_state) := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- }
-
-} // end group HeaderFieldTemplates
-
-group MessageBodyTemplates {
-
-group XMLTemplates {
-
- template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
- {
- icb := p_icb
- };
-
- template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
- {
- ocb := p_ocb
- };
-
- template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
- template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
- template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) :=
- {
- resourceLists := p_resourceLists
- };
-
-}// end group XMLTemplates
-
-group ACR_CBTemplates {
-
- template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
- {
- ruleset_icb := {
- rule:= {p_ruleType}
- }
- }
-
- template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
- {
- ruleset_ocb := {
- rule:= {p_ruleType}
- }
- }
-
- template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
- {
- id := "rule66",
- conditions := p_condition,
- actions := {bool := false},
- transformations := omit
- }
-
- template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
- choice := {{
- identity := {{
- choice := {{
- one := {
- id := p_id,
- scheme := p_scheme,
- any_1 := omit
- }
- }}
- }}
- }}
- }
-
-
-
-
-} //end group ACR_CBTemplates
-
-group CUGTemplates {
-
- template Cug m_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator :=p_cci
- }
-
- template Cug mw_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator := p_cci
- }
-
- template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
-// outgoingAccessRequest := p_outAccessRequest,
-// cugIndex := p_cugIndex
-//TODO: workaround for ttwb118
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := valueof(p_cugIndex)
- }
-
- template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-}//end group CUGTemplates
-
-group MCIDTemplates {
-
- template Mcid m_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := bit2str('1'B)}
- }
- }
-
- template Mcid m_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('1'B)}
- }
- }
-
-} //end group MCIDTemplates
-
-group PSTNTemplates {
-
- template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi},
- Display := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi, p_pi2},
- Display := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template ProgressIndicatorType p_pi3,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi, p_pi2, p_pi3},
- Display := {p_d}
- }
-
- template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {*, *},
- LowLayerCompatibility := *,
- ProgressIndicator := {*},
- Display := {*}
- }
-
-
- template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
- BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- BCoctet4_1 := omit,
- BCoctet5 := omit,
- BCoctet5a := omit,
- BCoctet5bV110 := omit,
- BCoctet5bV120 := omit,
- BCoctet5c := omit,
- BCoctet5d := omit,
- BCoctet6 := omit,
- BCoctet7 := omit,
- BCoctet7a := omit,
- BCoctet7b := omit
- }
-
- template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
- ProgressOctet3 := {CodingStandard := bit2str('00'B),
- Location := bit2str('0000'B)
- },
- ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)}
- }
-
- template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
- LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- LLOctet3a := omit,
- LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- LLOctet4_1 := omit,
- LLOctet5 := omit,
- LLOctet5a := omit,
- LLOctet5bV110 := omit,
- LLOctet5bV120 := omit,
- LLOctet5c := omit,
- LLOctet5d := omit,
- LLOctet6 := omit,
- LLOctet6aHDLC := omit,
- LLOctet6aUserSpecific := omit,
- LLOctet6b := omit,
- LLOctet7 := omit,
- LLOctet7aUserSpecific := omit,
- LLOctet7aX25 := omit,
- LLOctet7bX25 := omit,
- LLOctet7c := omit,
- LLOctet7aTR9577 := omit,
- LLOctet7bTR9577 := omit
- }
-
- template HighLayerCompatibilityType m_HighLayerCompatibilityType
- (Bit7 p_HLOctet4):= {
- HLOctet3 := {
- CodingStandard :=bit2str('00'B),
- Interpretation :=bit2str('100'B),
- PresentationMethod := bit2str('01'B)
- },
- HLOctet4 := {
- HighLayerCharacteristics := bit2str(p_HLOctet4)
- },
- HLOctet4aMaintenance := omit,
- HLOctet4Audio := omit
- }
-
- template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
- BCoctet3 := p_BCOctet3Type,
- BCoctet4 := p_BCOctet4Type,
- BCoctet4_1 := * ,
- BCoctet5 := * ,
- BCoctet5a := * ,
- BCoctet5bV110 := * ,
- BCoctet5bV120 := * ,
- BCoctet5c := * ,
- BCoctet5d := * ,
- BCoctet6 := * ,
- BCoctet7 := * ,
- BCoctet7a := * ,
- BCoctet7b := *
- }
-
- template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
- BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- BCoctet4_1 := * ,
- BCoctet5 := * ,
- BCoctet5a := * ,
- BCoctet5bV110 := * ,
- BCoctet5bV120 := * ,
- BCoctet5c := * ,
- BCoctet5d := * ,
- BCoctet6 := * ,
- BCoctet7 := * ,
- BCoctet7a := * ,
- BCoctet7b := *
- }
-
- template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
- ProgressOctet3 := p_ProgressOctet3Type,
- ProgressOctet4 := p_ProgressOctet4Type
- }
-
- template LowLayerCompatibilityType mw_LowLayerCompatibilityType
- (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
- LLOctet3 := p_LLOctet3,
- LLOctet3a := * ,
- LLOctet4 := p_LLOctet4,
- LLOctet4_1 := * ,
- LLOctet5 := * ,
- LLOctet5a := * ,
- LLOctet5bV110 := * ,
- LLOctet5bV120 := * ,
- LLOctet5c := * ,
- LLOctet5d := * ,
- LLOctet6 := * ,
- LLOctet6aHDLC := * ,
- LLOctet6aUserSpecific := * ,
- LLOctet6b := * ,
- LLOctet7 := p_LLOctet7,
- LLOctet7aUserSpecific := * ,
- LLOctet7aX25 := * ,
- LLOctet7bX25 := * ,
- LLOctet7c := * ,
- LLOctet7aTR9577 := * ,
- LLOctet7bTR9577 := *
- }
-
- template HighLayerCompatibilityType mw_HighLayerCompatibilityType
- (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
- HLOctet3 := p_HLOctet3,
- HLOctet4 := p_HLOctet4,
- HLOctet4aMaintenance := *,
- HLOctet4Audio := *
- }
-
-} //end group PSTNTemplates
-
-group CDIVNTemplates {
-
- /* general CDIVN subscription */
- template Comm_div_info m_CDIVN_sub := {
- entity := ?,
- comm_div_subs_info := {
- anyAttributes := omit,
- comm_div_selection_criteria := {
- anyAttributes := ?,
- originating_user_selection_criteria := omit,
- diverting_user_selection_criteria := omit,
- diverted_to_user_selection_criteria := omit,
- diversion_time_selection_criteria := omit,
- diversion_reason_selection_criteria := omit,
- any_1 := omit
- },
- comm_div_ntfy_trigger_criteria := omit,
- comm_div_info_selection_criteria := omit,
- any_1 := omit
- },
- comm_div_ntfy_info := omit,
- any_1 := omit
- }
-
-
-} // end grouup CDIVNTemplates
-
-group ResourceListsTemplates {
- template Resource_lists m_ResourceList_2Users(
- EntryType p_user1,
- EntryType p_user2
- ) := {
- list := {
- {
- name := omit,
- anyAttributes := omit,
- display_name := omit,
- seq_1 := {
- {
- list := omit,
- external_ := omit,
- entry := p_user1,
- entry_Ref := omit
- },
- {
- list := omit,
- external_ := omit,
- entry := p_user2,
- entry_Ref := omit
- }
- },
- any_1 := omit
- }
- }
- }
-
- template EntryType m_EntryUser(SipUrl p_user) := {
- display_name := omit,
- uri :=
- p_user.userInfo.userOrTelephoneSubscriber & "@" &
- p_user.hostPort.host,
- any_1 := omit,
- anyAttributes := omit
- }
-}// end grouup ResourceListsTemplates
-
-group Ims3gppTemplates {
- template Ims_3gpp mw_Ims_3gpp_CW := {
- version := 1.0,
- anyAttributes := ?,
- choice_1 := {
- alternative_service := {
- anyAttributes := ?,
- type_ := ?,
- reason := ?,
- action_ := {
- anyAttributes := ?,
- emergency_registration := *,
- call_waiting_indication := {},
- any_1 := *
- },
- any_1 := *
- }
- },
- any_1 := *
- }
-} // end group Ims3gpp
-
-group CONFTemplates {
- template booleanXSD boolXSD_true:={bool:=true}
- template booleanXSD boolXSD_false:={bool:=false}
-
- template anyAttributes m_emptyAnyAttributes:={}
-
- template Media_type m_mediatype_status(template Media_status_type p_status):= {
- id:="1",
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text :=omit,
- type_ :=omit,
- label_ :=omit,
- src_id:=omit,
- status:= p_status,
- any_1:=omit
- }
-
- template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template Media_type p_mediastatus):= {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- referred:=omit,
- status:=p_epStatus,
- joining_method:=p_joinMethod,
- joining_info:=omit,
- disconnection_method:=omit,
- disconnection_info:=omit,
- media:={p_mediastatus},// optional,
- call_info:=omit,
- any_1:=omit
- }
-
- template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- associated_aors:=omit,
- roles:=omit,
- languages :=omit,
- cascaded_focus :=omit,
- endpoint:={p_endpoint},// optional,
- any_1:=omit
- }
-
- template Users_type m_users_1user_full(template User_type p_user):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user},
- any_1:=omit
- }
-
- template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user1,p_user2},
- any_1:=omit
- }
-
- template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
- anyAttributes:=omit,//m_emptyAnyAttributes,
- user_count:=p_nUsers,
- active:=p_active,
- locked:=p_locked,
- any_1 := omit
- }
-
- template Conference_info m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
- entity := p_cUri,
- state := full,
- version := 1,
- anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
- conference_description := omit,
- host_info := omit,
- conference_state := p_cState,
- users := p_users,
- sidebars_by_ref := omit,
- sidebars_by_val := omit,
- any_1 := omit
- }
-
- template Conference_info mw_conferenceInfo_active := {
- entity := ?,
- state := *,
- version := *,
- anyAttributes := ?,
- conference_description := *,
- host_info := *,
- conference_state := ?,
- users := {
- state := ?,
- anyAttributes := ?,
- user := {
- {
- entity := *,
- state := *,
- anyAttributes := *,
- display_text := *,
- associated_aors := *,
- roles := *,
- languages := *,
- cascaded_focus := *,
- endpoint := {
- {
- entity := *,
- state := *,
- anyAttributes := ?,
- display_text := *,
- referred := *,
- status := connected,
- joining_method := dialed_in,
- joining_info := *,
- disconnection_method := *,
- disconnection_info := *,
- media := *,
- call_info := *,
- any_1 := *
- }
- },
- any_1 := *
- }
- },
- any_1 := omit
- },
- sidebars_by_ref := *,
- sidebars_by_val := *,
- any_1 := *
- }
-}
-
-} // end group MessageBodyTemplates
-
-group MessageTemplates {
-
-group modified_templates {
-
-group request_send {
-
- template BYE_Request m_BYE_Request_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_Reason_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_UserToUser_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, template charstring p_U2UData)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route,
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template BYE_Request m_BYE_Request_UE
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- },
- messageBody := p_mb
- }
-
- template INFO_Request m_INFO_Request_Xml_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_Allow_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- allow := p_allow
- }
- }
-
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template HistoryInfo p_historyInfo)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template PAssertedID p_pAssertedID, template Privacy p_privacy )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- acceptContact := p_acceptContact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- privacy := p_privacy,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAssertedService_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- pAssertedService := p_pAssertedService
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- pEarlyMedia := m_pEarlyMedia_sup,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID
- }
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID,
- privacy := p_privacy
- }
- }
-
- template INVITE_Request m_INVITE_Request_SessionExpires_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- sessionExpires := p_se
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_minSE_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_minSE_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_User2UserData_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- userToUser := m_UserToUserData(valueof(p_U2UData))
- }
- }
-
- template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingVector_fixedValue(PX_IMS_SUT_UE1_HOME_DOMAIN),
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PCharging_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported,
- template PChargingVector p_pChargingVector)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := p_pChargingVector,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PMediaAuth_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pMediaAuthorization := m_pMediaAuthorization_fixedValue,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PPreferred_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported, template PPreferredID p_pPreferredID)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pPreferredID := p_pPreferredID,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_1300Bytes_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_TextPlainLength(valueof(m_MBody_longPlainText))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := m_MBody_longPlainText
- }
-
- template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_NOTIFY_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
- event := {fieldName:=EVENT_E, eventType:="conference",eventParams:=omit},
- subscriptionState:={fieldName:=SUBSCRIPTION_STATE_E, subState:="active",substateParams:=omit},
- expires:={fieldName:=EXPIRES_E, deltaSec:="3600"}
-
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc REFER message exchanged at Mw
- *
- */
- template REFER_Request m_REFER_Request_IMS(
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- Contact p_contact,
- From p_from,
- template To p_to,
- Via p_via,
- template ReferTo p_referTo,
- template ReferredBy p_referredBy,
- template Require p_require,
- template Route p_route,
- template RecordRoute p_recordRoute,
- template Supported p_supported,
- template PChargingVector p_pChargingVector,
- template MessageBody p_mb
- ) modifies m_REFER_Request_Base := {
- msgHeader := {
- contentLength := {
- fieldName := CONTENT_LENGTH_E,
- len:= f_MessageBodyLength(valueof(p_mb))
- },
- contentType := {
- fieldName := CONTENT_TYPE_E,
- mediaType := c_sdpAplication
- },
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
- template ProxyRequire p_proxyRequire, template Require p_require,
- template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- proxyRequire := p_proxyRequire,
- require := p_require,
- securityClient := p_securityClient,
- securityVerify := p_securityVerify,
- supported := p_supported,
- toField := p_to,
- via := p_via
-
- }
- }
-
-
- template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
-
- }
- }
- template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
- modifies m_REGISTER_Request_IMS :=
- {
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) 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
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000
- },
- messageBody := p_mb
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := p_event,
- expires := m_Expires_600000
- }
- }
- template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
- {
- msgHeader :=
- {
- fromField := p_from
- }
- }
-
-}//end group request_send
-
-group request_receive {
-
- template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
- modifies mw_ACK_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template ACK_Request mw_ACK_Request_PchargingVector (template CallId p_callId, template PChargingVector p_pChargingVector)
- modifies mw_ACK_Request_Base
- :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies mw_BYE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies mw_BYE_Request_Base
- :=
- {
- msgHeader := {pChargingVector := p_pChargingVector,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit}
- }
- template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- acceptContact := p_acceptContact
- }
- }
-
- template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {recordRoute := p_recordRoute,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {route := p_route}
- }
-
- template INVITE_Request mw_INVITE_Request_require (
- template Require p_require
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { require := p_require }
- }
-
- template INVITE_Request mw_INVITE_Request_supported (
- template Supported p_supported
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { supported := p_supported }
- }
-
- template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {sessionExpires := p_sessionExpires}
- }
-
- template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
- }
-
- template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- }
- }
-
- template INVITE_Request mw_INVITE_Request_IMS_mb (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := ?
- }
-
- template INVITE_Request mw_INVITE_Request_IMS_cug (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template Cug p_cug ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_CUG(p_cug)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug)))
- }
-
- template INVITE_Request mw_INVITE_Request_IMS_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
- }
-
- /*
- *
- * @desc Await INVITE using topology hiding
- */
- template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- /*
- *
- * @desc Await INVITE without PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { fromField := p_from,
- pAssertedID := omit,
- pPreferredID := omit}
- }
-
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy ifpresent}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- historyInfo := p_historyInfo}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template CallId p_callId,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 (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pMediaAuthorization := omit}
- }
-
- template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := ?,
- path := p_Path,
- pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
- pVisitedNetworkID := p_pVisitedNetworkID,
- require := mw_require_path,
- securityClient := omit,
- securityVerify := omit
- }
- }
-
-
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization
- }
- }
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization,
- securityClient := omit
- }
- }
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { securityVerify := omit,
- securityClient := omit
- }
- }
-
- template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := omit
- }
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
- template From p_from,
- To p_to,
- template PAssertedID p_pAssertedID,
- template PChargingVector p_pChargingVector
- ) modifies mw_SUBSCRIBE_Request_Base := {
- requestLine :=
- {
- method := SUBSCRIBE_E
- },
- msgHeader :=
- { fromField := p_from,
- toField := p_to,
- event := m_Event_reg,
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pChargingVector := p_pChargingVector
- }
- }
-
- template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
- {
- msgHeader :=
- {
- fromField := p_from
- }
- }
-
- template NOTIFY_Request mw_NOTIFY_Request(
- template CallId p_callId,
- template charstring p_state,
- template charstring p_contentType,
- template Event p_event,
- template MessageBody p_mb
- ) modifies mw_NOTIFY_Request_Base := {
- msgHeader :=
- {
- subscriptionState := mw_subscriptionState(p_state),
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
- event := p_event
- },
- messageBody := p_mb
- }
-
-}//end group request_receive
-group response_send
-{
- template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- maxForwards := omit//,
- //recordRoute := p_recordRoute
- }
- }
-
- template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- //maxForwards := omit,
- //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_AlertInfo (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- AlertInfo p_alertInfo
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- alertInfo := p_alertInfo
- }
- }
-
- template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- historyInfo := p_historyInfo,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingFunctionAddresses_fixedValue
-
- }
- }
-
- template Response m_Response_18XonINVITE_pEearlyMedia (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template PEarlyMedia p_pEarlyMedia ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- pEarlyMedia := p_pEarlyMedia
- }
- }
-
-
- template Response m_Response_18XonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- pPreferredID := p_pPreferredID,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- privacy := p_privacy,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- supported := p_supported,
- privacy := p_privacy,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_recordRoute_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999},//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- recordRoute := p_recordRoute//for INVITE response
- }
- }
-
- template Response m_Response_18XonINVITE_Require (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact,
- Require p_require
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- require := p_require
- }
- }
-
- template Response m_Response_18XonINVITE_Require_ifpresent (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact,
- Require p_require
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- require := p_require
- }
- }
-
- template Response m_Response_18XonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template charstring p_U2UData) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- userToUser := m_UserToUserData(valueof(p_U2UData))
- }
- }
-
- template Response m_Response_18XonINVITE_Xml (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_require_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, Require p_require, template MessageBody p_mb ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo,
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via,template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb ) modifies m_Response_mbody :=
- {
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingFunctionAddresses_fixedValue
-
- }
- }
-
- template Response m_Response_2XXonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- pPreferredID := p_pPreferredID,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
-
- template Response m_Response_2XXonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2XXonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2XXonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- supported := p_supported,
- privacy := p_privacy,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2XXonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- privacy := p_privacy,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb, template charstring p_U2UData)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute,//for INVITE response
- userToUser := m_UserToUserData(valueof(p_U2UData))
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- serviceRoute := {fieldName:=SERVICE_ROUTE_E,
- routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}
- }
- }
-
-
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingFunctionAddresses_fixedValue
- }
- }
-
-
- template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response m_Response_2xxonUPDATE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute
- },
- messageBody := p_mb
- }
-
-
- template Response m_Response_3XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
-
- template Response m_Response_4XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_4XXonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onINVITE_Reason (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, integer p_cause) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
-}//end group response_send
-
-group response_receive
-{
-
- template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- messageBody := {
- sdpMessageBody := ?
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
-
- template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAccessNetworkInfo := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pMediaAuthorization := omit
- }
- }
-
- template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- securityServer := ?,
- wwwAuthenticate := ?
- }
- }
-
- template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
- path := ?,
- serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
- pChargingFunctionAddresses := ?,
- pChargingVector := ?,
- contact := p_contact
- }
- }
-
- template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- historyInfo := p_historyInfo
- }
- }
-
- template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
- }
- }
-
-} // end response_receive
-
-}//end modified_templates
-
-}//end Message_templates
-
-} // end module LibIms_Templates
/tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_PIXITS.ttcn (revision 97)
+++ tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_PIXITS.ttcn (nonexistent)
@@ -1,586 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_PIXITS
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_TextStrings all;
- import from LibCommon_DataStrings all;
-
-group SUT {
-
-group SUT_UE {
- modulepar {
- /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
- */
- 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
- */
- integer PX_IMS_SUT_UE_PORT := 5060;
- }//end modulepar
-}//end group SUT_UE1
-group SUT_UE1 {
- modulepar {
- /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF1_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
- */
- 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
- */
- charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE1 local domain
- */
- charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE1 local user
- */
- charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3-2-2 username of UE1
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE1
- */
- charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
-
- /** @desc charstring for UE1 display name
- */
- charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
- }
-} // end group SUT_UE1
-
-group SUT_UE2 {
- modulepar {
- /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF2_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
- */
- 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
- */
- charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE2 local user
- */
- charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE2
- */
- charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE2
-
-group SUT_UE3 {
- modulepar {
- /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF3_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
- */
- 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
- */
- charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE3 local user
- */
- charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE3_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE3
- */
- charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE3
-
-group SUT_UE4 {
- modulepar {
- /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF4_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
- */
- 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
- */
- charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE4 local user
- */
- charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE4
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE4_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE4
- */
- 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{
- modulepar {
- /** @desc charstring for identity of emergency service local domain
- */
- charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
-
- /** @desc charstring for identity of the emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
-
- /** @desc charstring for identity of the invalid emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
- }
-}// end group EMERGENCY service
-
-group SUT_IBCF {
- modulepar {
- /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
-
- /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF1_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF1 domain
- */
- charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
-
- /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
-
- /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF2_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF2 domain
- */
- charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
- }
-} // end group SUT_IBCF
-group SUT_PCSCF {
- modulepar {
- /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
-
- /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_PCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/P-CSCFdomain
- */
- charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
-
- /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
- */
- 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)
- */
- charstring PX_IMS_SUT_PCSCF_MinSE := "100";
- }
-} // end group SUT_PCSCF
-group SUT_SCSCF {
- modulepar {
- /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
-
- /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_SCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/S-CSCFdomain
- */
- charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
-
- /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
- */
- charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
- }
-} // end group SUT_SCSCF
-
-group SUT_ICSCF {
- modulepar {
- /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
-
- /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_ICSCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-CSCFdomain
- */
- charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
- }
-} // end group SUT_ICSCF
-
-group SUT_AS {
- modulepar {
- /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
- */
- 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
- */
- integer PX_IMS_SUT_AS_PORT := 5060;
-
- /** @desc charstring for SUT/AS domain
- */
- charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
-
- }//end modulepar
-}//end group SUT_UE1
-
-group SUT_IMGCF {
- modulepar {
- /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
-
- /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IMGCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-MGCFdomain
- */
- charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
- }
-} // end group SUT_IMGCF
-
-group SUT_CONF {
- modulepar {
- /**
- * @desc
- * charstring for SUT/conference IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
- /**
- * @desc integer for SUT/conference port number to exchange SIP messages
- */
- integer PX_IMS_SUT_CONF_PORT := 5060;
- /**
- * @desc charstring for SUT/conference domain
- */
- charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
- /**
- * @desc charstring for conference factory URI name
- */
- charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
- };
-
-} // end group SUT_CONF
-
-} // end group SUT
-group TS {
-group TS_UE1 {
- modulepar {
- /** @desc charstring for IP address used by the UE1 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
-
- /** @desc integer for port number used by the UE1 to exchange SIP messages
- */
- integer PX_IMS_TS_UE1_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE1
-
-group TS_UE2 {
- modulepar {
- /** @desc charstring for IP address used by the UE2 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
-
- /** @desc integer for port number used by the UE2 to exchange SIP messages
- */
- integer PX_IMS_TS_UE2_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE2
-
-group TS_UE3 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE3_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE3
-
-group TS_UE4 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE4_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE4
-
-group TS_IBCF {
- modulepar {
- /** @desc charstring for TS/IBCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
-
- /** @desc integer for TS/IBCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_IBCF_PORT := 5060;
-
- /** @desc charstring for TS/IBCF domain
- */
- charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
- }
-} // end group TS_IBCF
-
-group TS_ICSCF {
- modulepar {
- /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
-
- /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ICSCF_PORT := 5060;
-
- /** @desc charstring for TS/I-CSCF domain
- */
- charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
- }
-} // end group TS_ICSCF
-
-group TS_PCSCF {
- modulepar {
- /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
-
- /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_PCSCF_PORT := 5060;
-
- /** @desc charstring for TS/P-CSCFdomain
- */
- charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
- }
-} // end group TS_PCSCF
-
-group TS_SCSCF {
- modulepar {
- /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_SCSCF_PORT := 5060;
-
- /** @desc charstring for TS/S-CSCFdomain
- */
- 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
- */
- charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
-
- /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
- */
- 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
- */
- 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 **
- */
- charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
- }
-} // end group TS_SCSCF
-
-group TS_IMS1user {
- modulepar {
- /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
- */
- charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
-
- /** @desc charstring for TS/domain
- */
- charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
- }
-} // end group TS_IMS1user
-
-group TS_ISUPuser {
- modulepar {
- /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
- */
- charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
-
- /** @desc charstring for ISUP TS/domain or IPAddres
- */
- charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
- }
-} // end group TS_ISUPuser
-
-
-group TS_AS {
- modulepar {
- /** @desc charstring for TS/AS1 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
-
- /** @desc integer for TS/AS1 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS1_PORT := 5060;
-
- /** @desc charstring for TS/AS1 domain
- */
- charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
-
- /** @desc charstring for TS/AS2 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
-
- /** @desc integer for TS/AS2 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS2_PORT := 5060;
-
- /** @desc charstring for TS/AS2 domain
- */
- charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
- }
-} // end group TS_AS
-} // end group TS
-} // end module LibIms_PIXITS
/tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Interface.ttcn (revision 97)
+++ tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Interface.ttcn (nonexistent)
@@ -1,42 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_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
- {
-
- //Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
- type component ImsComponent extends SipComponent
- {
- // general variables
- var ImsInterfaceProfile vc_interfaceprofile
- } // end ImsComponent
-
-// type address WorkaroundAddress; //Remove it later
- }// end group AdressTypes
-
-
-
-
-} // end module LibIms_TestSystem
/tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 97)
+++ tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,87 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types and constants used by the test component
- * for SIP tests.
- */
-
-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
-
-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_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
-
-
- // 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
/tags/TAG_V001_LibIms_beforeValidation/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Steps.ttcn (revision 97)
+++ tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Steps.ttcn (nonexistent)
@@ -1,1077 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests.
- */
-
-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;
- //LibIms
- import from LibIms_Templates all;
- import from LibIms_Interface all;
- import from LibIms_PIXITS all;
- import from LibIms_SIPTypesAndValues all;
-
- group externalfunctions {
- }
- 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 headers for forward request from AS in case if AS acts as Proxy
- */
- function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
- {
- var Request v_request;
- v_request := vc_request;
-
- vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
-
- vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
-
- }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
-
- if (ispresent(v_response.msgHeader.recordRoute)) {
- vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
- }
- }// 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 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
- {
- 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_setHeadersNOTIFY(p_cSeq_s);
-
- }// end f_setHeadersNOTIFY
-
- /**
- **
- * @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 on terminating side
- * @param p_cSeq_s current cSeq
- */
- function f_setHeadersReINVITE (inout CSeq p_cSeq_s) runs on ImsComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- vc_to := vc_caller_To;
-
- vc_from := vc_caller_From;
-
- }// end function f_setHeadersReINVITE
-
- /**
- * @desc sets headers for ReINVITE method on terminating side
- * @param p_cSeq_s current cSeq
- */
- function f_setHeadersReINVITE_ (inout CSeq p_cSeq_s) runs on ImsComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- vc_to := vc_callee_To;
-
- vc_from := vc_callee_From;
-
- //vc_requestUri := f_initSipUrl(p_to_user); //bpin need to be implemeted// Request URI of Invite is identical with To header
-
- }// 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,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- vc_reqHostPort := vc_requestUri.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 {
- }
- 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
- 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_TS_UE1_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.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
- 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.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_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.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.homeDomain := PX_IMS_TS_IMS1UE_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.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
- }
-
- // 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.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.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
- 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_UE1_PORT; // contact (simulated UE)
- vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
- 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
- }
-
- 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
- }
-
- }
- }
-
- 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 p_sipUrl := {
- scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := omit,
- urlParameters := omit,
- headers := omit};
-
- select(p_user){
- case (c_userProfile_UE1atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE2atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE3atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE4atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_IBCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ICSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_PCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_SCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_ISUP) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY_INVALID) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
-
- // following setting is used for the assignment of the Path header field
- case (c_interfaceProfile_IMS_SUT_PCSCF1) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.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) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_conferenceProfile_factoryURI) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
- }
- };
- return(p_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 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
- {
-
- //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))));
-
- // 200OK to complete the request
- vc_contact := vc_request.msgHeader.contact;
- vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}};
- 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)));
-
- }//end function f_awaitingRegistration_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
- {
- //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));
-
- }
-
- /*
- *
- * @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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
- {
-
- //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);
-
- 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_withRegistrationBasic (in integer p_userprofile, inout CSeq p_cSeq_s) runs on ImsComponent
- {
-
- //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));
- }
-
- } // 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();
- }
-
- 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
- {
- //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))));
-
- // 200OK to complete the request
- vc_contact := vc_request.msgHeader.contact;
- vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
- 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)));
-
- f_terminate_component()
- };
-
- function f_IMS_postamble_awaitDeRegistration () runs on ImsComponent
- {
- //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))));
-
- // 200OK to complete the request
- vc_contact := vc_request.msgHeader.contact;
- vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
- 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)));
-
- f_terminate_component()
- };
-
- 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
- {
- // 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) runs on ImsComponent
- {
- // 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
- }
- } // end function f_terminateCall_UE
-
- }
- group defaults {
- }
-} // module LibIms_Steps
/tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Steps.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Templates.ttcn (revision 97)
+++ tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Templates.ttcn (nonexistent)
@@ -1,2869 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_Templates
-{
- //LibCommon
- import from LibCommon_DataStrings all;
-
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_Templates all;
- import from LibSip_Steps all;
- import from LibSip_PIXITS all;
- import from LibSip_XMLTypes all;
- import from XSDAUX all;
-
- //LibIms
- import from LibIms_SIPTypesAndValues all;
-
- import from LibIms_PIXITS all;
-
- template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+";
-
- template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) :=
- {
- displayName := *,
- addrSpec := {
- scheme := "sip:",
- userInfo := *,
- hostPort := {p_host, p_port},
- urlParameters := *,
- headers := *
- }
- }
-
- template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
-
-group Subfields{
-
- template SemicolonParam_List mw_semicolonParams_realm (template charstring p_realm) :=
- ?; //superset({"realm",p_realm},{"rand",?},{"autn",?},{"algorithm","AKAv1-MD5"},{"ik",?},{"ck",?}) // ERROR HERE! Superset operation must contain value list - no templates!
-
- template SemicolonParam_List m_semicolonParams_language (template charstring p_language):=
- {{"language",p_language}}
-
- template SemicolonParam_List mw_semicolonParams_language (template charstring p_language):=
- {{"language",p_language}}
-
- template SemicolonParam_List m_semicolonParams_isub (template charstring p_address):=
- {{"isub",p_address}}
-}
-
-group HeaderFieldTemplates{
-
- template MinSE m_minSE(DeltaSec p_ds):=
- {
- fieldName := MIN_SE_E,
- deltaSec:=p_ds,
- minSeParam:=omit
- }
-
- template PathValue m_pathvalue (SipUrl p_sipUrl):=
- {
- nameAddr := {displayName := omit, // optional charstring
- addrSpec := p_sipUrl // SipUrl
- },
- rrParam := omit
- }
-
- template Path m_path (SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {
- {nameAddr := {
- displayName := omit, // optional charstring
- addrSpec := p_sipUrl // SipUrl
- },
- 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 (SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {*,m_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_fixedValue(charstring p_homeDomain) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {{id:="icid-value", paramValue :="123abc"},
- {id:="icid-generated-at", paramValue :="192.1.1.10"},
- {id:="orig-ioi", paramValue := p_homeDomain}}
- };
- template PChargingVector m_pChargingVector_fixedValue1(charstring p_homeDomain) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {
- {id:="icid-generated-at", paramValue :="192.1.1.10"},
- {id:="orig-ioi", paramValue := p_homeDomain}}
- };
-
- template PChargingVector mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
- };
-
- template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
- {
- fieldName := P_MEDIA_AUTHORIZATION_E,
- pMediaAuthorizations := {"A"} // example
- };
-
-
- template PEarlyMedia m_pEarlyMedia_sup :=
- {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
-
-
- template ProxyRequire m_proxyRequire_secAgree :=
- {
- fieldName := PROXY_REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template PVisitedNetworkID mw_pVisitedNetworkID :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
- genericParams := *}}
- }
-
- template RecordRoute m_recordRoute_notmatching:=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template Require m_require_secAgree :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template Require mw_require_path :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset("path")
- };
-
- template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
- {
- fieldName := ROUTE_E,
- routeBody := {{nameAddr := {displayName := omit,
- addrSpec := {scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := {host:=p_interfaceprofile.SUTIpaddr, portField:= p_interfaceprofile.SUTPort},
- urlParameters := omit,
- headers := omit}
- },
- rrParam := omit}
- }};
-
- template Route m_route_notmatching:=
- {
- fieldName := ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template SessionExpires m_se(DeltaSec p_ds):=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=p_ds,
- seParam:=omit
- }
-
- template SessionExpires mw_se:=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=?,
- seParam:=omit
- }
-
- template Supported m_supported_timer:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"timer"}
- }
-
-
- template Supported m_supported_fromChange:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"from-change"}
- }
-
- template To m_To_targetRefreshRequest(template To p_To) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := p_To.addressField.nameAddr.displayName,
- addrSpec := p_To.addressField.nameAddr.addrSpec
- }},//end addressField
- toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
- };
-
- template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
- viaParams:={{id :=c_branchId,paramValue :=branch_val}}
- }
-
- template Via m_via_notmatching:=
- {
- fieldName := VIA_E,
- viaBody :=
- {{
- sentProtocol := valueof(m_SentProtocol("UDP")),
- sentBy:={host:="unknown.domain.name", portField:= 10000},
- viaParams:={{id :=c_branchId,paramValue :="abcd0000"}}
- } }
- };
-
- /*
- * @desc WWW-Authenticate header field
- * @param p_challenge value
- */
- template WwwAuthenticate m_wwwAuthenticate (Challenge p_challenge):=
- {
- fieldName := WWW_AUTHENTICATE_E,
- challenge := p_challenge
- }
-
- /*
- * @desc WWW-Authenticate header field
- * @param p_challenge value
- */
- template WwwAuthenticate mw_wwwAuthenticate (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := WWW_AUTHENTICATE_E,
- challenge :=
- {digestCln := p_semicolonParam_List // set of GenericParam
- }
- }
-
-
-
- /*
- * @desc AcceptContact header field
- * @param p_acValues value
- */
- template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- /*
- * @desc Authenticate header field
- * @param p_challenge value
- */
- template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues :=
- {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- template SubscriptionState mw_subscriptionState(template charstring p_state) := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- }
-
-} // end group HeaderFieldTemplates
-
-group MessageBodyTemplates {
-
-group XMLTemplates {
-
- template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
- {
- icb := p_icb
- };
-
- template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
- {
- ocb := p_ocb
- };
-
- template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
- template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
- template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) :=
- {
- resourceLists := p_resourceLists
- };
-
-}// end group XMLTemplates
-
-group ACR_CBTemplates {
-
- template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
- {
- ruleset_icb := {
- rule:= {p_ruleType}
- }
- }
-
- template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
- {
- ruleset_ocb := {
- rule:= {p_ruleType}
- }
- }
-
- template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
- {
- id := "rule66",
- conditions := p_condition,
- actions := {bool := false},
- transformations := omit
- }
-
- template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
- choice := {{
- identity := {{
- choice := {{
- one := {
- id := p_id,
- scheme := p_scheme,
- any_1 := omit
- }
- }}
- }}
- }}
- }
-
-
-
-
-} //end group ACR_CBTemplates
-
-group CUGTemplates {
-
- template Cug m_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator :=p_cci
- }
-
- template Cug mw_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator := p_cci
- }
-
- template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
-// outgoingAccessRequest := p_outAccessRequest,
-// cugIndex := p_cugIndex
-//TODO: workaround for ttwb118
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := valueof(p_cugIndex)
- }
-
- template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-}//end group CUGTemplates
-
-group MCIDTemplates {
-
- template Mcid m_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := bit2str('1'B)}
- }
- }
-
- template Mcid m_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('1'B)}
- }
- }
-
-} //end group MCIDTemplates
-
-group PSTNTemplates {
-
- template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi},
- Display := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi, p_pi2},
- Display := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template ProgressIndicatorType p_pi3,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi, p_pi2, p_pi3},
- Display := {p_d}
- }
-
- template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {*, *},
- LowLayerCompatibility := *,
- ProgressIndicator := {*},
- Display := {*}
- }
-
-
- template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
- BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- BCoctet4_1 := omit,
- BCoctet5 := omit,
- BCoctet5a := omit,
- BCoctet5bV110 := omit,
- BCoctet5bV120 := omit,
- BCoctet5c := omit,
- BCoctet5d := omit,
- BCoctet6 := omit,
- BCoctet7 := omit,
- BCoctet7a := omit,
- BCoctet7b := omit
- }
-
- template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
- ProgressOctet3 := {CodingStandard := bit2str('00'B),
- Location := bit2str('0000'B)
- },
- ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)}
- }
-
- template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
- LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- LLOctet3a := omit,
- LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- LLOctet4_1 := omit,
- LLOctet5 := omit,
- LLOctet5a := omit,
- LLOctet5bV110 := omit,
- LLOctet5bV120 := omit,
- LLOctet5c := omit,
- LLOctet5d := omit,
- LLOctet6 := omit,
- LLOctet6aHDLC := omit,
- LLOctet6aUserSpecific := omit,
- LLOctet6b := omit,
- LLOctet7 := omit,
- LLOctet7aUserSpecific := omit,
- LLOctet7aX25 := omit,
- LLOctet7bX25 := omit,
- LLOctet7c := omit,
- LLOctet7aTR9577 := omit,
- LLOctet7bTR9577 := omit
- }
-
- template HighLayerCompatibilityType m_HighLayerCompatibilityType
- (Bit7 p_HLOctet4):= {
- HLOctet3 := {
- CodingStandard :=bit2str('00'B),
- Interpretation :=bit2str('100'B),
- PresentationMethod := bit2str('01'B)
- },
- HLOctet4 := {
- HighLayerCharacteristics := bit2str(p_HLOctet4)
- },
- HLOctet4aMaintenance := omit,
- HLOctet4Audio := omit
- }
-
- template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
- BCoctet3 := p_BCOctet3Type,
- BCoctet4 := p_BCOctet4Type,
- BCoctet4_1 := * ,
- BCoctet5 := * ,
- BCoctet5a := * ,
- BCoctet5bV110 := * ,
- BCoctet5bV120 := * ,
- BCoctet5c := * ,
- BCoctet5d := * ,
- BCoctet6 := * ,
- BCoctet7 := * ,
- BCoctet7a := * ,
- BCoctet7b := *
- }
-
- template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
- BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- BCoctet4_1 := * ,
- BCoctet5 := * ,
- BCoctet5a := * ,
- BCoctet5bV110 := * ,
- BCoctet5bV120 := * ,
- BCoctet5c := * ,
- BCoctet5d := * ,
- BCoctet6 := * ,
- BCoctet7 := * ,
- BCoctet7a := * ,
- BCoctet7b := *
- }
-
- template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
- ProgressOctet3 := p_ProgressOctet3Type,
- ProgressOctet4 := p_ProgressOctet4Type
- }
-
- template LowLayerCompatibilityType mw_LowLayerCompatibilityType
- (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
- LLOctet3 := p_LLOctet3,
- LLOctet3a := * ,
- LLOctet4 := p_LLOctet4,
- LLOctet4_1 := * ,
- LLOctet5 := * ,
- LLOctet5a := * ,
- LLOctet5bV110 := * ,
- LLOctet5bV120 := * ,
- LLOctet5c := * ,
- LLOctet5d := * ,
- LLOctet6 := * ,
- LLOctet6aHDLC := * ,
- LLOctet6aUserSpecific := * ,
- LLOctet6b := * ,
- LLOctet7 := p_LLOctet7,
- LLOctet7aUserSpecific := * ,
- LLOctet7aX25 := * ,
- LLOctet7bX25 := * ,
- LLOctet7c := * ,
- LLOctet7aTR9577 := * ,
- LLOctet7bTR9577 := *
- }
-
- template HighLayerCompatibilityType mw_HighLayerCompatibilityType
- (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
- HLOctet3 := p_HLOctet3,
- HLOctet4 := p_HLOctet4,
- HLOctet4aMaintenance := *,
- HLOctet4Audio := *
- }
-
-} //end group PSTNTemplates
-
-group CDIVNTemplates {
-
- /* general CDIVN subscription */
- template Comm_div_info m_CDIVN_sub := {
- entity := ?,
- comm_div_subs_info := {
- anyAttributes := omit,
- comm_div_selection_criteria := {
- anyAttributes := ?,
- originating_user_selection_criteria := omit,
- diverting_user_selection_criteria := omit,
- diverted_to_user_selection_criteria := omit,
- diversion_time_selection_criteria := omit,
- diversion_reason_selection_criteria := omit,
- any_1 := omit
- },
- comm_div_ntfy_trigger_criteria := omit,
- comm_div_info_selection_criteria := omit,
- any_1 := omit
- },
- comm_div_ntfy_info := omit,
- any_1 := omit
- }
-
-
-} // end grouup CDIVNTemplates
-
-group ResourceListsTemplates {
- template Resource_lists m_ResourceList_2Users(
- EntryType p_user1,
- EntryType p_user2
- ) := {
- list := {
- {
- name := omit,
- anyAttributes := omit,
- display_name := omit,
- seq_1 := {
- {
- list := omit,
- external_ := omit,
- entry := p_user1,
- entry_Ref := omit
- },
- {
- list := omit,
- external_ := omit,
- entry := p_user2,
- entry_Ref := omit
- }
- },
- any_1 := omit
- }
- }
- }
-
- template EntryType m_EntryUser(SipUrl p_user) := {
- display_name := omit,
- uri :=
- p_user.userInfo.userOrTelephoneSubscriber & "@" &
- p_user.hostPort.host,
- any_1 := omit,
- anyAttributes := omit
- }
-}// end grouup ResourceListsTemplates
-
-group Ims3gppTemplates {
- template Ims_3gpp mw_Ims_3gpp_CW := {
- version := 1.0,
- anyAttributes := ?,
- choice_1 := {
- alternative_service := {
- anyAttributes := ?,
- type_ := ?,
- reason := ?,
- action_ := {
- anyAttributes := ?,
- emergency_registration := *,
- call_waiting_indication := {},
- any_1 := *
- },
- any_1 := *
- }
- },
- any_1 := *
- }
-} // end group Ims3gpp
-
-group CONFTemplates {
- template booleanXSD boolXSD_true:={bool:=true}
- template booleanXSD boolXSD_false:={bool:=false}
-
- template anyAttributes m_emptyAnyAttributes:={}
-
- template Media_type m_mediatype_status(template Media_status_type p_status):= {
- id:="1",
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text :=omit,
- type_ :=omit,
- label_ :=omit,
- src_id:=omit,
- status:= p_status,
- any_1:=omit
- }
-
- template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template Media_type p_mediastatus):= {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- referred:=omit,
- status:=p_epStatus,
- joining_method:=p_joinMethod,
- joining_info:=omit,
- disconnection_method:=omit,
- disconnection_info:=omit,
- media:={p_mediastatus},// optional,
- call_info:=omit,
- any_1:=omit
- }
-
- template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- associated_aors:=omit,
- roles:=omit,
- languages :=omit,
- cascaded_focus :=omit,
- endpoint:={p_endpoint},// optional,
- any_1:=omit
- }
-
- template Users_type m_users_1user_full(template User_type p_user):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user},
- any_1:=omit
- }
-
- template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user1,p_user2},
- any_1:=omit
- }
-
- template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
- anyAttributes:=omit,//m_emptyAnyAttributes,
- user_count:=p_nUsers,
- active:=p_active,
- locked:=p_locked,
- any_1 := omit
- }
-
- template Conference_info m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
- entity := p_cUri,
- state := full,
- version := 1,
- anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
- conference_description := omit,
- host_info := omit,
- conference_state := p_cState,
- users := p_users,
- sidebars_by_ref := omit,
- sidebars_by_val := omit,
- any_1 := omit
- }
-
- template Conference_info mw_conferenceInfo_active := {
- entity := ?,
- state := *,
- version := *,
- anyAttributes := ?,
- conference_description := *,
- host_info := *,
- conference_state := ?,
- users := {
- state := ?,
- anyAttributes := ?,
- user := {
- {
- entity := *,
- state := *,
- anyAttributes := *,
- display_text := *,
- associated_aors := *,
- roles := *,
- languages := *,
- cascaded_focus := *,
- endpoint := {
- {
- entity := *,
- state := *,
- anyAttributes := ?,
- display_text := *,
- referred := *,
- status := connected,
- joining_method := dialed_in,
- joining_info := *,
- disconnection_method := *,
- disconnection_info := *,
- media := *,
- call_info := *,
- any_1 := *
- }
- },
- any_1 := *
- }
- },
- any_1 := omit
- },
- sidebars_by_ref := *,
- sidebars_by_val := *,
- any_1 := *
- }
-}
-
-} // end group MessageBodyTemplates
-
-group MessageTemplates {
-
-group modified_templates {
-
-group request_send {
-
- template BYE_Request m_BYE_Request_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_Reason_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_UserToUser_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, template charstring p_U2UData)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route,
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template BYE_Request m_BYE_Request_UE
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- },
- messageBody := p_mb
- }
-
- template INFO_Request m_INFO_Request_Xml_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_Allow_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- allow := p_allow
- }
- }
-
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template HistoryInfo p_historyInfo)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template PAssertedID p_pAssertedID, template Privacy p_privacy )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- acceptContact := p_acceptContact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- privacy := p_privacy,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAssertedService_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- pAssertedService := p_pAssertedService
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- pEarlyMedia := m_pEarlyMedia_sup,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID
- }
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID,
- privacy := p_privacy
- }
- }
-
- template INVITE_Request m_INVITE_Request_SessionExpires_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- sessionExpires := p_se
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_minSE_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_minSE_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_User2UserData_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- userToUser := m_UserToUserData(valueof(p_U2UData))
- }
- }
-
- template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingVector_fixedValue(PX_IMS_SUT_UE1_HOME_DOMAIN),
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PCharging_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported,
- template PChargingVector p_pChargingVector)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := p_pChargingVector,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PMediaAuth_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pMediaAuthorization := m_pMediaAuthorization_fixedValue,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PPreferred_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported, template PPreferredID p_pPreferredID)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pPreferredID := p_pPreferredID,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_1300Bytes_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := m_MBody_longPlainText
- }
-
- template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_NOTIFY_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
- event := {fieldName:=EVENT_E, eventType:="conference",eventParams:=omit},
- subscriptionState:={fieldName:=SUBSCRIPTION_STATE_E, subState:="active",substateParams:=omit},
- expires:={fieldName:=EXPIRES_E, deltaSec:="3600"}
-
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc REFER message exchanged at Mw
- *
- */
- template REFER_Request m_REFER_Request_IMS(
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- Contact p_contact,
- From p_from,
- template To p_to,
- Via p_via,
- template ReferTo p_referTo,
- template ReferredBy p_referredBy,
- template Require p_require,
- template Route p_route,
- template RecordRoute p_recordRoute,
- template Supported p_supported,
- template PChargingVector p_pChargingVector,
- template MessageBody p_mb
- ) modifies m_REFER_Request_Base := {
- msgHeader := {
- contentLength := {
- fieldName := CONTENT_LENGTH_E,
- len:= f_MessageBodyLength(valueof(p_mb))
- },
- contentType := {
- fieldName := CONTENT_TYPE_E,
- mediaType := c_sdpAplication
- },
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
- template ProxyRequire p_proxyRequire, template Require p_require,
- template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- proxyRequire := p_proxyRequire,
- require := p_require,
- securityClient := p_securityClient,
- securityVerify := p_securityVerify,
- supported := p_supported,
- toField := p_to,
- via := p_via
-
- }
- }
-
-
- template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
-
- }
- }
- template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
- modifies m_REGISTER_Request_IMS :=
- {
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000,
- route := p_route
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000
- },
- messageBody := p_mb
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := p_event,
- expires := m_Expires_600000
- }
- }
- template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
- {
- msgHeader :=
- {
- fromField := p_from
- }
- }
-
-}//end group request_send
-
-group request_receive {
-
- template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
- modifies mw_ACK_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template ACK_Request mw_ACK_Request_PchargingVector (template CallId p_callId, template PChargingVector p_pChargingVector)
- modifies mw_ACK_Request_Base
- :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies mw_BYE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies mw_BYE_Request_Base
- :=
- {
- msgHeader := {pChargingVector := p_pChargingVector,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit}
- }
- template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- acceptContact := p_acceptContact
- }
- }
-
- template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {recordRoute := p_recordRoute,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {route := p_route}
- }
-
- template INVITE_Request mw_INVITE_Request_require (
- template Require p_require
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { require := p_require }
- }
-
- template INVITE_Request mw_INVITE_Request_supported (
- template Supported p_supported
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { supported := p_supported }
- }
-
- template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {sessionExpires := p_sessionExpires}
- }
-
- template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
- }
-
- template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- }
- }
-
- template INVITE_Request mw_INVITE_Request_IMS_mb (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := ?
- }
-
- template INVITE_Request mw_INVITE_Request_IMS_cug (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template Cug p_cug ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_CUG(p_cug)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug)))
- }
-
- template INVITE_Request mw_INVITE_Request_IMS_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
- }
-
- /*
- *
- * @desc Await INVITE using topology hiding
- */
- template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- /*
- *
- * @desc Await INVITE without PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { fromField := p_from,
- pAssertedID := omit,
- pPreferredID := omit}
- }
-
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy ifpresent}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- historyInfo := p_historyInfo}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template CallId p_callId,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 (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization (template CallId p_callId)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pMediaAuthorization := omit}
- }
-
- template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := ?,
- path := p_Path,
- pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
- pVisitedNetworkID := p_pVisitedNetworkID,
- require := mw_require_path,
- securityClient := omit,
- securityVerify := omit
- }
- }
-
-
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization
- }
- }
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization,
- securityClient := omit
- }
- }
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { securityVerify := omit,
- securityClient := omit
- }
- }
-
- template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := omit
- }
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
- template From p_from,
- To p_to,
- template PAssertedID p_pAssertedID,
- template PChargingVector p_pChargingVector
- ) modifies mw_SUBSCRIBE_Request_Base := {
- requestLine :=
- {
- method := SUBSCRIBE_E
- },
- msgHeader :=
- { fromField := p_from,
- toField := p_to,
- event := m_Event_reg,
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pChargingVector := p_pChargingVector
- }
- }
-
- template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
- {
- msgHeader :=
- {
- fromField := p_from
- }
- }
-
- template NOTIFY_Request mw_NOTIFY_Request(
- template CallId p_callId,
- template charstring p_state,
- template charstring p_contentType,
- template Event p_event,
- template MessageBody p_mb
- ) modifies mw_NOTIFY_Request_Base := {
- msgHeader :=
- {
- subscriptionState := mw_subscriptionState(p_state),
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
- event := p_event
- },
- messageBody := p_mb
- }
-
-}//end group request_receive
-group response_send
-{
- template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- maxForwards := omit//,
- //recordRoute := p_recordRoute
- }
- }
-
- template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- //maxForwards := omit,
- //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_AlertInfo (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- AlertInfo p_alertInfo
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- alertInfo := p_alertInfo
- }
- }
-
- template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- historyInfo := p_historyInfo,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingFunctionAddresses_fixedValue
-
- }
- }
-
- template Response m_Response_18XonINVITE_pEearlyMedia (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template PEarlyMedia p_pEarlyMedia ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- pEarlyMedia := p_pEarlyMedia
- }
- }
-
-
- template Response m_Response_18XonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- pPreferredID := p_pPreferredID,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- privacy := p_privacy,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- supported := p_supported,
- privacy := p_privacy,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_recordRoute_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999},//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- recordRoute := p_recordRoute//for INVITE response
- }
- }
-
- template Response m_Response_18XonINVITE_Require (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact,
- Require p_require
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- require := p_require
- }
- }
-
- template Response m_Response_18XonINVITE_Require_ifpresent (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact,
- Require p_require
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- require := p_require
- }
- }
-
- template Response m_Response_18XonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template charstring p_U2UData) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- userToUser := m_UserToUserData(valueof(p_U2UData))
- }
- }
-
- template Response m_Response_18XonINVITE_Xml (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_require_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, Require p_require, template MessageBody p_mb ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo,
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via,template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb ) modifies m_Response_mbody :=
- {
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingFunctionAddresses_fixedValue
-
- }
- }
-
- template Response m_Response_2XXonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- pPreferredID := p_pPreferredID,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
-
- template Response m_Response_2XXonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2XXonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2XXonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- supported := p_supported,
- privacy := p_privacy,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2XXonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- privacy := p_privacy,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb, template charstring p_U2UData)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute,//for INVITE response
- userToUser := m_UserToUserData(valueof(p_U2UData))
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- serviceRoute := {fieldName:=SERVICE_ROUTE_E,
- routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}
- }
- }
-
-
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingFunctionAddresses_fixedValue
- }
- }
-
-
- template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- 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:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response m_Response_2xxonUPDATE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute
- },
- messageBody := p_mb
- }
-
-
- template Response m_Response_3XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
-
- template Response m_Response_4XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_4XXonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onINVITE_Reason (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, integer p_cause) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
-}//end group response_send
-
-group response_receive
-{
-
- template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- messageBody := {
- sdpMessageBody := ?
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
-
- template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAccessNetworkInfo := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pMediaAuthorization := omit
- }
- }
-
- template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- securityServer := ?,
- wwwAuthenticate := ?
- }
- }
-
- template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
- path := ?,
- serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
- pChargingFunctionAddresses := ?,
- pChargingVector := ?,
- contact := p_contact
- }
- }
-
- template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- historyInfo := p_historyInfo
- }
- }
-
- template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
- }
- }
-
-} // end response_receive
-
-}//end modified_templates
-
-}//end Message_templates
-
-} // end module LibIms_Templates
/tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_PIXITS.ttcn (revision 97)
+++ tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_PIXITS.ttcn (nonexistent)
@@ -1,586 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_PIXITS
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_TextStrings all;
- import from LibCommon_DataStrings all;
-
-group SUT {
-
-group SUT_UE {
- modulepar {
- /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
- */
- 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
- */
- integer PX_IMS_SUT_UE_PORT := 5060;
- }//end modulepar
-}//end group SUT_UE1
-group SUT_UE1 {
- modulepar {
- /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF1_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
- */
- 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
- */
- charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE1 local domain
- */
- charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE1 local user
- */
- charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3-2-2 username of UE1
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE1
- */
- charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
-
- /** @desc charstring for UE1 display name
- */
- charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
- }
-} // end group SUT_UE1
-
-group SUT_UE2 {
- modulepar {
- /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF2_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
- */
- 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
- */
- charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE2 local user
- */
- charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE2
- */
- charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE2
-
-group SUT_UE3 {
- modulepar {
- /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF3_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
- */
- 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
- */
- charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE3 local user
- */
- charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE3_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE3
- */
- charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE3
-
-group SUT_UE4 {
- modulepar {
- /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF4_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
- */
- 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
- */
- charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE4 local user
- */
- charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE4
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE4_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE4
- */
- 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{
- modulepar {
- /** @desc charstring for identity of emergency service local domain
- */
- charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
-
- /** @desc charstring for identity of the emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
-
- /** @desc charstring for identity of the invalid emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
- }
-}// end group EMERGENCY service
-
-group SUT_IBCF {
- modulepar {
- /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
-
- /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF1_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF1 domain
- */
- charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
-
- /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
-
- /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF2_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF2 domain
- */
- charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
- }
-} // end group SUT_IBCF
-group SUT_PCSCF {
- modulepar {
- /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
-
- /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_PCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/P-CSCFdomain
- */
- charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
-
- /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
- */
- 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)
- */
- charstring PX_IMS_SUT_PCSCF_MinSE := "100";
- }
-} // end group SUT_PCSCF
-group SUT_SCSCF {
- modulepar {
- /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
-
- /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_SCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/S-CSCFdomain
- */
- charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
-
- /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
- */
- charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
- }
-} // end group SUT_SCSCF
-
-group SUT_ICSCF {
- modulepar {
- /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
-
- /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_ICSCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-CSCFdomain
- */
- charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
- }
-} // end group SUT_ICSCF
-
-group SUT_AS {
- modulepar {
- /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
- */
- 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
- */
- integer PX_IMS_SUT_AS_PORT := 5060;
-
- /** @desc charstring for SUT/AS domain
- */
- charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
-
- }//end modulepar
-}//end group SUT_UE1
-
-group SUT_IMGCF {
- modulepar {
- /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
-
- /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IMGCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-MGCFdomain
- */
- charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
- }
-} // end group SUT_IMGCF
-
-group SUT_CONF {
- modulepar {
- /**
- * @desc
- * charstring for SUT/conference IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
- /**
- * @desc integer for SUT/conference port number to exchange SIP messages
- */
- integer PX_IMS_SUT_CONF_PORT := 5060;
- /**
- * @desc charstring for SUT/conference domain
- */
- charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
- /**
- * @desc charstring for conference factory URI name
- */
- charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
- };
-
-} // end group SUT_CONF
-
-} // end group SUT
-group TS {
-group TS_UE1 {
- modulepar {
- /** @desc charstring for IP address used by the UE1 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
-
- /** @desc integer for port number used by the UE1 to exchange SIP messages
- */
- integer PX_IMS_TS_UE1_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE1
-
-group TS_UE2 {
- modulepar {
- /** @desc charstring for IP address used by the UE2 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
-
- /** @desc integer for port number used by the UE2 to exchange SIP messages
- */
- integer PX_IMS_TS_UE2_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE2
-
-group TS_UE3 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE3_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE3
-
-group TS_UE4 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE4_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE4
-
-group TS_IBCF {
- modulepar {
- /** @desc charstring for TS/IBCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
-
- /** @desc integer for TS/IBCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_IBCF_PORT := 5060;
-
- /** @desc charstring for TS/IBCF domain
- */
- charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
- }
-} // end group TS_IBCF
-
-group TS_ICSCF {
- modulepar {
- /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
-
- /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ICSCF_PORT := 5060;
-
- /** @desc charstring for TS/I-CSCF domain
- */
- charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
- }
-} // end group TS_ICSCF
-
-group TS_PCSCF {
- modulepar {
- /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
-
- /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_PCSCF_PORT := 5060;
-
- /** @desc charstring for TS/P-CSCFdomain
- */
- charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
- }
-} // end group TS_PCSCF
-
-group TS_SCSCF {
- modulepar {
- /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_SCSCF_PORT := 5060;
-
- /** @desc charstring for TS/S-CSCFdomain
- */
- 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
- */
- charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
-
- /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
- */
- 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
- */
- 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 **
- */
- charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
- }
-} // end group TS_SCSCF
-
-group TS_IMS1user {
- modulepar {
- /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
- */
- charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
-
- /** @desc charstring for TS/domain
- */
- charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
- }
-} // end group TS_IMS1user
-
-group TS_ISUPuser {
- modulepar {
- /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
- */
- charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
-
- /** @desc charstring for ISUP TS/domain or IPAddres
- */
- charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
- }
-} // end group TS_ISUPuser
-
-
-group TS_AS {
- modulepar {
- /** @desc charstring for TS/AS1 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
-
- /** @desc integer for TS/AS1 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS1_PORT := 5060;
-
- /** @desc charstring for TS/AS1 domain
- */
- charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
-
- /** @desc charstring for TS/AS2 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
-
- /** @desc integer for TS/AS2 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS2_PORT := 5060;
-
- /** @desc charstring for TS/AS2 domain
- */
- charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
- }
-} // end group TS_AS
-} // end group TS
-} // end module LibIms_PIXITS
/tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Interface.ttcn (revision 97)
+++ tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Interface.ttcn (nonexistent)
@@ -1,42 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_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
- {
-
- //Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
- type component ImsComponent extends SipComponent
- {
- // general variables
- var ImsInterfaceProfile vc_interfaceprofile
- } // end ImsComponent
-
-// type address WorkaroundAddress; //Remove it later
- }// end group AdressTypes
-
-
-
-
-} // end module LibIms_TestSystem
/tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 97)
+++ tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,87 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types and constants used by the test component
- * for SIP tests.
- */
-
-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
-
-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_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
-
-
- // 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
/tags/TAG_V002_LibIms_2009_week42/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Steps.ttcn (revision 97)
+++ tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Steps.ttcn (nonexistent)
@@ -1,1287 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests.
- */
-
-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;
- //LibIms
- import from LibIms_Templates all;
- import from LibIms_Interface all;
- import from LibIms_PIXITS all;
- import from LibIms_SIPTypesAndValues all;
-
- group externalfunctions {
- }
- 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
- */
- function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
- {
- var Request v_request;
- v_request := vc_request;
-
- vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
-
- vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
-
- }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
-
- if (ispresent(v_response.msgHeader.recordRoute)) {
- vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
- }
- }// 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) runs on ImsComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
-
- if(p_orginatingSide) {
- vc_to := vc_caller_To;
- vc_from := vc_caller_From;
- }
- else {
- vc_to := vc_callee_To;
- vc_from := vc_callee_From;
- }
-
- }// 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,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- vc_reqHostPort := vc_requestUri.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 {
- }
- 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
- }
-
- 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 p_sipUrl := {
- scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := omit,
- urlParameters := omit,
- headers := omit};
-
- select(p_user){
- case (c_userProfile_UE1atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE2atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE3atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE4atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_IBCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ICSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_PCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_SCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
-// case (c_userProfile_SCSCFwithHomeUE) {
-// p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
-// p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ECSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_ISUP) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY_INVALID) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
-
- // following setting is used for the assignment of the Path header field
- case (c_interfaceProfile_IMS_SUT_PCSCF1) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.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) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_conferenceProfile_factoryURI) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
- }
- };
- return(p_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 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
- {
- vc_ignore_subscribe := true;//handle SUBSCRIBE during the call
- 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_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));
-
- }//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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
- {
-
- //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
- * (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, inout CSeq p_cSeq_s) runs on ImsComponent
- {
-
- //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));
- }
-
- } // 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();
- }
-
- 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_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
- {
- // 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) 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
- }
- } // end function f_terminateCall_UE
-
- }
- group defaults {
- }
-} // module LibIms_Steps
/tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Steps.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Templates.ttcn (revision 97)
+++ tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Templates.ttcn (nonexistent)
@@ -1,3172 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_Templates
-{
- //LibCommon
- import from LibCommon_DataStrings all;
-
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_Templates all;
- import from LibSip_Steps all;
- import from LibSip_PIXITS all;
- import from LibSip_XMLTypes all;
- import from XSDAUX all;
-
- //LibIms
- import from LibIms_SIPTypesAndValues all;
-
- import from LibIms_PIXITS all;
-
- //LibXMLTypes
- import from ietf_params_xml_ns_resource_lists language "XSD" all
- with {
- extension "File:../xsd/ResourceList.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_xcap language "XSD" all
- with {
- extension "File:../xsd/SupplementaryServices.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_mcid language "XSD" all
- with {
- extension "File:../xsd/MCID.xsd"
- }
-
- import from Ims3gpp language "XSD" all
- with {
- extension "File:../xsd/Ims3gpp.xsd"
- }
-
- import from ietf_params_xml_ns_conference_info language "XSD" all
- with {
- extension "File:../xsd/CONF.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_pstn language "XSD" all
- with {
- extension "File:../xsd/PSTN.xsd"
- }
-
- import from ietf_params_xml_ns_common_policy language "XSD" all
- with {
- extension "File:../xsd/common-policy.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_comm_div_info language "XSD" all
- with {
- extension "File:../xsd/CDIVN.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 := "sip:",
- userInfo := *,
- hostPort := {p_host, p_port},
- urlParameters := *,
- headers := *
- }
- }
-
- template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
-
-group Subfields{
-
-
- template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "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 (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,
- userInfo := {userOrTelephoneSubscriber:="registrar"},
- hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
- urlParameters := omit,
- headers := omit}},
- rrParam := omit}
- }
- }
-/*
- * @desc Path header field expectation with at least one path value
- * @param p_sipUrl value of the last element in the list of path values
- */
- template Path mw_path (template SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
- }
-
- template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
- {
- fieldName := P_ACCESS_NETWORK_INFO_E,
- accessType := "IEEE-802.11a",
- genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}}
- };
-
- template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):=
- {
- fieldName := P_ASSERTED_SERVICE_E,
- pAssertedServiceValue := p_pAssertedServiceValue
- };
-
- template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
- {
- fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
- chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
- {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
- };
-
-
- template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := p_chargeParams
- };
-
- template PChargingVector m_pChargingVector_icid_TS :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {{id:=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 mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
- };
-
- template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
- {
- fieldName := P_MEDIA_AUTHORIZATION_E,
- pMediaAuthorizations := {"A"} // example
- };
-
-
- template PEarlyMedia m_pEarlyMedia_sup :=
- {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
-
-
- template ProxyRequire m_proxyRequire_secAgree :=
- {
- fieldName := PROXY_REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template PVisitedNetworkID m_pVisitedNetworkID_TS :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
- genericParams := omit}}
- }
-
- template PVisitedNetworkID mw_pVisitedNetworkID :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
- genericParams := *}}
- }
-
- template RecordRoute m_recordRoute_notmatching:=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template Require m_require_secAgree :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template Require mw_require_path :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset("path")
- };
-
- template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
- {
- fieldName := ROUTE_E,
- routeBody := {{nameAddr := {displayName := omit,
- addrSpec := {scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := {host:=p_interfaceprofile.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"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template SessionExpires m_se(DeltaSec p_ds):=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=p_ds,
- seParam:=omit
- }
-
- template SessionExpires mw_se:=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=?,
- seParam:=omit
- }
-
- template Supported m_supported_timer:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"timer"}
- }
-
-
- template Supported m_supported_fromChange:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"from-change"}
- }
-
- template To m_To_targetRefreshRequest(template To p_To) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := p_To.addressField.nameAddr.displayName,
- addrSpec := p_To.addressField.nameAddr.addrSpec
- }},//end addressField
- toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
- };
-
- template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
- viaParams:={{id :=c_branchId,paramValue :=branch_val}}
- }
-
- template 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
- }
- }
-
-
-
- /*
- * @desc AcceptContact header field
- * @param p_acValues value
- */
- template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- /*
- * @desc Authenticate header field
- * @param p_challenge value
- */
- template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues :=
- {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- template SubscriptionState mw_subscriptionState(template charstring p_state) := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- }
-
- //[3455/5.1]
- template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := {
- fieldName := P_ASSOCIATED_URI_E,
- nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}}
- }
-
-} // end group HeaderFieldTemplates
-
-group MessageBodyTemplates {
-
-group XMLTemplates {
-
-// template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
-// {
-// icb := p_icb
-// };
-
-// template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
-// {
-// ocb := p_ocb
-// };
-
- template XmlBody m_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody m_XmlBody_simservs(template Simservs p_simservs) :=
- {
- simservs := p_simservs
- };
-
- template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
- {
- simservs := {
- anyAttributes := omit,
- choice := {
- {
- incoming_communication_barring := p_icb
- }
- }
- }
- };
-
- template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
- {
- simservs := {
- anyAttributes := omit,
- choice := {
- {
- outgoing_communication_barring := p_ocb
- }
- }
- }
- };
-
- template XmlBody m_XmlBody_CDIVN(template Comm_div_info_type p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
-// template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
-// {
-// cdivn := p_cdivn
-// };
-
- template XmlBody mw_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody mw_XmlBody_CDIVN(template Comm_div_info_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
- };
-
-}// end group XMLTemplates
-
-group ACR_CBTemplates {
-
- template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
- {
- ruleset := {
- rule:= {p_ruleType}
- }
- }
-
- template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
- {
- ruleset := {
- rule:= {p_ruleType}
- }
- }
-
- template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
- {
- id := "rule66",
- conditions := p_condition,
- actions := {elem:={{boolean := false}}},
- transformations := omit
- }
-
- template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
- content := {{
- identity := {{
- content := {{
- one := {
- id := p_id,
- //scheme := p_scheme,
- //any_1 := omit
- elem := {charstring := p_scheme}
- }
- }}
- }}
- }}
- }
-
-
-
-
-} //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,
- anyAttributes := omit,
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator :=p_cci
- }
-
- template Cug mw_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator := p_cci
- }
-
- template CugRequestType m_cugReqType(boolean p_outAccessRequest, integer p_cugIndex) :=
- {
-// outgoingAccessRequest := p_outAccessRequest,
-// cugIndex := p_cugIndex
-//TODO: workaround for ttwb118
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-
- template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-}//end group CUGTemplates
-
-group MCIDTemplates {
-
- template Mcid m_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {mcidRequestIndicator := bit2str('1'B),
- holdingIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
- {
- choice := {
- request := {mcidRequestIndicator := bit2str('1'B),
- holdingIndicator := bit2str('1'B)}
- }
- }
-
- template Mcid m_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {mcidRequestIndicator := bit2str('1'B),
- holdingIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := bit2str('1'B)}
- }
- }
-
-} //end group MCIDTemplates
-
-group PSTNTemplates {
-
- template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template DisplayType p_d) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {p_hlc, p_hlc2},
- lowLayerCompatibility := p_llc,
- progressIndicator := {p_pi},
- display_ := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template DisplayType p_d) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {p_hlc, p_hlc2},
- lowLayerCompatibility := p_llc,
- progressIndicator := {p_pi, p_pi2},
- display_ := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template ProgressIndicatorType p_pi3,
- template DisplayType p_d) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {p_hlc, p_hlc2},
- lowLayerCompatibility := p_llc,
- progressIndicator := {p_pi, p_pi2, p_pi3},
- display_ := {p_d}
- }
-
- template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {*, *},
- lowLayerCompatibility := *,
- progressIndicator := {*},
- display_ := {*}
- }
-
-
- template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
- bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
- bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- bCoctet4_1 := omit,
- bCoctet5 := omit,
- bCoctet5a := omit,
- bCoctet5bV110 := omit,
- bCoctet5bV120 := omit,
- bCoctet5c := omit,
- bCoctet5d := omit,
- bCoctet6 := omit,
- bCoctet7 := omit,
- bCoctet7a := omit,
- bCoctet7b := omit
- }
-
- template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
- progressOctet3 := {codingStandard := bit2str('00'B),
- location := bit2str('0000'B)
- },
- progressOctet4 := {progressDescription := bit2str(p_progDesc)}
- }
-
- template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
- lLOctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- lLOctet3a := omit,
- lLOctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- lLOctet4_1 := omit,
- lLOctet5 := omit,
- lLOctet5a := omit,
- lLOctet5bV110 := omit,
- lLOctet5bV120 := omit,
- lLOctet5c := omit,
- lLOctet5d := omit,
- lLOctet6 := omit,
- lLOctet6aHDLC := omit,
- lLOctet6aUserSpecific := omit,
- lLOctet6b := omit,
- lLOctet7 := {layer3Identification := bit2str('10'B), //TODO check valueand if parameter is mandatory
- userInfoLayer3Protocol := bit2str('10000'B)}, //TODO check value and if parameter is mandatory
- lLOctet7aUserSpecific := omit,
- lLOctet7aX25 := omit,
- lLOctet7bX25 := omit,
- lLOctet7c := omit,
- lLOctet7aTR9577 := omit,
- lLOctet7bTR9577 := omit
- }
-
- template HighLayerCompatibilityType m_HighLayerCompatibilityType
- (Bit7 p_HLOctet4):= {
- hLOctet3 := {
- codingStandard :=bit2str('00'B),
- interpretation :=bit2str('100'B),
- presentationMethod := bit2str('01'B)
- },
- hLOctet4 := {
- highLayerCharacteristics := bit2str(p_HLOctet4)
- },
- hLOctet4aMaintenance := omit,
- hLOctet4Audio := omit
- }
-
- template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
- bCoctet3 := p_BCOctet3Type,
- bCoctet4 := p_BCOctet4Type,
- bCoctet4_1 := * ,
- bCoctet5 := * ,
- bCoctet5a := * ,
- bCoctet5bV110 := * ,
- bCoctet5bV120 := * ,
- bCoctet5c := * ,
- bCoctet5d := * ,
- bCoctet6 := * ,
- bCoctet7 := * ,
- bCoctet7a := * ,
- bCoctet7b := *
- }
-
- template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
- bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
- bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- bCoctet4_1 := * ,
- bCoctet5 := * ,
- bCoctet5a := * ,
- bCoctet5bV110 := * ,
- bCoctet5bV120 := * ,
- bCoctet5c := * ,
- bCoctet5d := * ,
- bCoctet6 := * ,
- bCoctet7 := * ,
- bCoctet7a := * ,
- bCoctet7b := *
- }
-
- template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
- progressOctet3 := p_ProgressOctet3Type,
- progressOctet4 := p_ProgressOctet4Type
- }
-
- template LowLayerCompatibilityType mw_LowLayerCompatibilityType
- (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
- lLOctet3 := p_LLOctet3,
- lLOctet3a := * ,
- lLOctet4 := p_LLOctet4,
- lLOctet4_1 := * ,
- lLOctet5 := * ,
- lLOctet5a := * ,
- lLOctet5bV110 := * ,
- lLOctet5bV120 := * ,
- lLOctet5c := * ,
- lLOctet5d := * ,
- lLOctet6 := * ,
- lLOctet6aHDLC := * ,
- lLOctet6aUserSpecific := * ,
- lLOctet6b := * ,
- lLOctet7 := p_LLOctet7,
- lLOctet7aUserSpecific := * ,
- lLOctet7aX25 := * ,
- lLOctet7bX25 := * ,
- lLOctet7c := * ,
- lLOctet7aTR9577 := * ,
- lLOctet7bTR9577 := *
- }
-
- template HighLayerCompatibilityType mw_HighLayerCompatibilityType
- (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
- hLOctet3 := p_HLOctet3,
- hLOctet4 := p_HLOctet4,
- hLOctet4aMaintenance := *,
- hLOctet4Audio := *
- }
-
-} //end group PSTNTemplates
-
-group CDIVNTemplates {
-
- /* general CDIVN subscription */
- template Comm_div_info_type m_CDIVN_sub := {
- entity := "comm-div-info",
- comm_div_subs_info := {
- anyAttributes := omit,
- comm_div_selection_criteria := {
- anyAttributes := 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 := omit
- },
- comm_div_ntfy_trigger_criteria := omit,
- comm_div_info_selection_criteria := omit,
- elem := omit
- },
- comm_div_ntfy_info := omit,
- elem := omit
- }
-
-
-} // end grouup CDIVNTemplates
-
-group ResourceListsTemplates {
-
-
- template Resource_lists m_ResourceList_2Users(
- EntryType p_user1,
- EntryType p_user2
- ) :=
- {
- sequence := {
- {
- list := {
- name := omit,
- anyAttributes := omit,
- display_name := omit,
- sequence_list := {
- {
- choice := {
- entry := p_user1
- }
- },
- {
- choice := {
- entry := p_user2
- }
- }
- },
- elem := omit
- }
- }
- }
- }
-
- template EntryType m_EntryUser(SipUrl p_user) := {
-
- uri :=
- p_user.userInfo.userOrTelephoneSubscriber & "@" &
- p_user.hostPort.host,
- anyAttributes := omit,
- display_name := omit,
- elem := omit
- }
-}// end grouup ResourceListsTemplates
-
-group Ims3gppTemplates {
-
- //TODO:check commented and below templates when test will be validated
- template TIMS3GPP mw_Ims_3gpp_CW := {
- version := 1.0,
- anyAttributes := ?,
- choice := {
- alternative_service := {
- anyAttributes := *,
- type_ := *,
- reason := *,
- elem := *
- }
- },
- elem := *
- }
-// template TIMS3GPP mw_Ims_3gpp_CW := {
-// version := 1.0,
-// anyAttributes := ?,
-// choice_1 := {
-// alternative_service := {
-// anyAttributes := ?,
-// type_ := ?,
-// reason := ?,
-// action_ := {
-// anyAttributes := ?,
-// emergency_registration := *,
-// call_waiting_indication := {},
-// any_1 := *
-// },
-// any_1 := *
-// }
-// },
-// any_1 := *
-// }
-} // end group Ims3gpp
-
-group CONFTemplates {
- template booleanXSD boolXSD_true:={bool:=true}
- template booleanXSD boolXSD_false:={bool:=false}
-
- template anyAttributes m_emptyAnyAttributes:={}
-
- template ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(template Media_status_type p_status):= {
- id:="1",
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text :=omit,
- type_ :=omit,
- label_ :=omit,
- src_id:=omit,
- status:= p_status,
- elem:=omit
- }
-
- template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template ietf_params_xml_ns_conference_info.Media_type p_mediastatus):= {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- referred:=omit,
- status:=p_epStatus,
- joining_method:=p_joinMethod,
- joining_info:=omit,
- disconnection_method:=omit,
- disconnection_info:=omit,
- media:={p_mediastatus},// optional,
- call_info:=omit,
- elem:=omit
- }
-
- template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- associated_aors:=omit,
- roles:=omit,
- languages :=omit,
- cascaded_focus :=omit,
- endpoint:={p_endpoint},// optional,
- elem:=omit
- }
-
- template Users_type m_users_1user_full(template User_type p_user):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user},
- elem:=omit
- }
-
- template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user1,p_user2},
- elem:=omit
- }
-
- template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
- anyAttributes:=omit,//m_emptyAnyAttributes,
- user_count:=p_nUsers,
- active:=p_active,
- locked:=p_locked,
- elem := omit
- }
-
- template Conference_type m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
- entity := p_cUri,
- state := full,
- version := 1,
- anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
- conference_description := omit,
- host_info := omit,
- conference_state := p_cState,
- users := p_users,
- sidebars_by_ref := omit,
- sidebars_by_val := omit,
- elem := omit
- }
-
- template Conference_type mw_conferenceInfo_active := {
- entity := ?,
- state := *,
- version := *,
- anyAttributes := ?,
- conference_description := *,
- host_info := *,
- conference_state := ?,
- users := {
- state := ?,
- anyAttributes := ?,
- user := {
- {
- entity := *,
- state := *,
- anyAttributes := *,
- display_text := *,
- associated_aors := *,
- roles := *,
- languages := *,
- cascaded_focus := *,
- endpoint := {
- {
- entity := *,
- state := *,
- anyAttributes := ?,
- display_text := *,
- referred := *,
- status := connected,
- joining_method := dialed_in,
- joining_info := *,
- disconnection_method := *,
- disconnection_info := *,
- media := *,
- call_info := *,
- elem := *
- }
- },
- elem := *
- }
- },
- elem := omit
- },
- sidebars_by_ref := *,
- sidebars_by_val := *,
- elem := *
- }
-}
-
-} // end group MessageBodyTemplates
-
-group MessageTemplates {
-
-group modified_templates {
-
-group request_send {
-
-
- template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_Reason_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_UserToUser_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, template charstring p_U2UData)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route,
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template BYE_Request m_BYE_Request_UE
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- reason := m_Reason(p_cause),
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- },
- messageBody := p_mb
- }
-
- template INFO_Request m_INFO_Request_Xml_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_Allow_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template LibSip_SIPTypesAndValues.Allow p_allow)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- allow := p_allow
- }
- }
-
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template HistoryInfo p_historyInfo)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template PAssertedID p_pAssertedID, template Privacy p_privacy )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- acceptContact := p_acceptContact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- privacy := p_privacy,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAssertedService_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- pAssertedService := p_pAssertedService
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- pEarlyMedia := m_pEarlyMedia_sup,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID
- }
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID,
- privacy := p_privacy
- }
- }
-
- template INVITE_Request m_INVITE_Request_SessionExpires_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- sessionExpires := p_se
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_minSE_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_minSE_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_User2UserData_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- userToUser := m_UserToUserData(valueof(p_U2UData))
- }
- }
-
- template MESSAGE_Request m_MESSAGE_Request_MBody_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_messageBody)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := p_messageBody
- }
-
- template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingVector_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 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
- },
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
- template ProxyRequire p_proxyRequire, template Require p_require,
- template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- proxyRequire := p_proxyRequire,
- require := p_require,
- securityClient := p_securityClient,
- securityVerify := p_securityVerify,
- supported := p_supported,
- toField := p_to,
- via := p_via
-
- }
- }
-
-
- template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- path := m_path_TS,
- pChargingVector := m_pChargingVector_icid_TS,
- pVisitedNetworkID := m_pVisitedNetworkID_TS,
- require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
- toField := p_to,
- via := p_via
-
- }
- }
- template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
- modifies m_REGISTER_Request_IMS :=
- {
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000,
- route := p_route
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- 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 INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit}
- }
- template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- acceptContact := p_acceptContact
- }
- }
-
- template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {recordRoute := p_recordRoute,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {route := p_route}
- }
-
- template INVITE_Request mw_INVITE_Request_require (
- template Require p_require
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { require := p_require }
- }
-
- template INVITE_Request mw_INVITE_Request_supported (
- template Supported p_supported
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { supported := p_supported }
- }
-
- template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {sessionExpires := p_sessionExpires}
- }
-
- template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
- }
-
- template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- }
- }
- template INVITE_Request mw_INVITE_Request_IMS_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_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
- }
-
- /*
- *
- * @desc Await INVITE using topology hiding
- */
- template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- /*
- *
- * @desc Await INVITE without PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { fromField := p_from,
- pAssertedID := omit,
- pPreferredID := omit}
- }
-
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy ifpresent}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- historyInfo := p_historyInfo}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template charstring p_id, template charstring p_paramValue)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingVector := mw_pChargingVector(p_id,p_paramValue)}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pMediaAuthorization := omit}
- }
-
- template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := ?,
- path := p_Path,
- pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
- pVisitedNetworkID := p_pVisitedNetworkID,
- require := mw_require_path,
- securityClient := omit,
- securityVerify := omit
- }
- }
-
-
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization
- }
- }
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization,
- securityClient := omit
- }
- }
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { securityVerify := omit,
- securityClient := omit
- }
- }
-
- template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := ?
- }
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
- template From p_from,
- 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
- }
- }
-
- template NOTIFY_Request mw_NOTIFY_Request(
- template CallId p_callId,
- template charstring p_state,
- template charstring p_contentType,
- template Event p_event,
- template MessageBody p_mb
- ) modifies mw_NOTIFY_Request_Base := {
- msgHeader :=
- {
- subscriptionState := mw_subscriptionState(p_state),
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
- event := p_event
- },
- messageBody := p_mb
- }
-
-}//end group request_receive
-group response_send
-{
- template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- maxForwards := omit//,
- //recordRoute := p_recordRoute
- }
- }
-
- template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact //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_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, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- 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 ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo,
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb, 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, integer p_cause) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
-}//end group response_send
-
-group response_receive
-{
-
- template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- messageBody := {
- sdpMessageBody := ?
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
-
- template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAccessNetworkInfo := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pMediaAuthorization := omit
- }
- }
-
- template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- securityServer := ?,
- wwwAuthenticate := ?
- }
- }
-
- template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
- path := ?,
- serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
- pChargingFunctionAddresses := ?,
- pChargingVector := ?,
- contact := p_contact
- }
- }
-
- template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- historyInfo := p_historyInfo
- }
- }
-
- template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
- }
- }
-
-} // end response_receive
-
-}//end modified_templates
-
-}//end Message_templates
-
-} // end module LibIms_Templates
/tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_PIXITS.ttcn (revision 97)
+++ tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_PIXITS.ttcn (nonexistent)
@@ -1,602 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_PIXITS
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_TextStrings all;
- import from LibCommon_DataStrings all;
-
-group SUT {
-
-group SUT_UE {
- modulepar {
- /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
- */
- 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
- */
- integer PX_IMS_SUT_UE_PORT := 5060;
- }//end modulepar
-}//end group SUT_UE1
-group SUT_UE1 {
- modulepar {
- /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF1_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
- */
- 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
- */
- charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE1 local domain
- */
- charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE1 local user
- */
- charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3-2-2 username of UE1
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE1
- */
- charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
-
- /** @desc charstring for UE1 display name
- */
- charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
- }
-} // end group SUT_UE1
-
-group SUT_UE2 {
- modulepar {
- /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF2_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
- */
- 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
- */
- charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE2 local user
- */
- charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE2
- */
- charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE2
-
-group SUT_UE3 {
- modulepar {
- /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF3_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
- */
- 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
- */
- charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE3 local user
- */
- charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE3_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE3
- */
- charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE3
-
-group SUT_UE4 {//UE4 can be used as UE1Visited
- modulepar {
- /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF4_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
- */
- 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
- */
- charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE4 local user
- */
- charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE4
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE4_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE4
- */
- 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{
- modulepar {
- /** @desc charstring for identity of emergency service local domain
- */
- charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
-
- /** @desc charstring for identity of the emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
-
- /** @desc charstring for identity of the invalid emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
- }
-}// end group EMERGENCY service
-
-group SUT_IBCF {
- modulepar {
- /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
-
- /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF1_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF1 domain
- */
- charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
-
- /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
-
- /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF2_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF2 domain
- */
- charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
- }
-} // end group SUT_IBCF
-group SUT_PCSCF {
- modulepar {
- /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
-
- /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_PCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/P-CSCFdomain
- */
- charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
-
- /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
- */
- 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)
- */
- charstring PX_IMS_SUT_PCSCF_MinSE := "100";
- }
-} // end group SUT_PCSCF
-group SUT_SCSCF {
- modulepar {
- /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
-
- /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_SCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/S-CSCFdomain
- */
- charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
-
- /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
- */
- charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
- }
-} // end group SUT_SCSCF
-
-group SUT_ICSCF {
- modulepar {
- /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
-
- /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_ICSCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-CSCFdomain
- */
- charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
- }
-} // end group SUT_ICSCF
-
-group SUT_AS {
- modulepar {
- /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
- */
- 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
- */
- integer PX_IMS_SUT_AS_PORT := 5060;
-
- /** @desc charstring for SUT/AS domain
- */
- charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
-
- }//end modulepar
-}//end group SUT_UE1
-
-group SUT_IMGCF {
- modulepar {
- /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
-
- /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IMGCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-MGCFdomain
- */
- charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
- }
-} // end group SUT_IMGCF
-
-group SUT_CONF {
- modulepar {
- /**
- * @desc
- * charstring for SUT/conference IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
- /**
- * @desc integer for SUT/conference port number to exchange SIP messages
- */
- integer PX_IMS_SUT_CONF_PORT := 5060;
- /**
- * @desc charstring for SUT/conference domain
- */
- charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
- /**
- * @desc charstring for conference factory URI name
- */
- charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
- };
-
-} // end group SUT_CONF
-
-} // end group SUT
-group TS {
-group TS_UE1 {
- modulepar {
- /** @desc charstring for IP address used by the UE1 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
-
- /** @desc integer for port number used by the UE1 to exchange SIP messages
- */
- integer PX_IMS_TS_UE1_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE1
-
-group TS_UE2 {
- modulepar {
- /** @desc charstring for IP address used by the UE2 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
-
- /** @desc integer for port number used by the UE2 to exchange SIP messages
- */
- integer PX_IMS_TS_UE2_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE2
-
-group TS_UE3 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE3_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE3
-
-group TS_UE4 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE4_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE4
-
-group TS_IBCF {
- modulepar {
- /** @desc charstring for TS/IBCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
-
- /** @desc integer for TS/IBCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_IBCF_PORT := 5060;
-
- /** @desc charstring for TS/IBCF domain
- */
- charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
- }
-} // end group TS_IBCF
-
-group TS_ICSCF {
- modulepar {
- /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
-
- /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ICSCF_PORT := 5060;
-
- /** @desc charstring for TS/I-CSCF domain
- */
- charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
- }
-} // end group TS_ICSCF
-
-group TS_PCSCF {
- modulepar {
- /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
-
- /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_PCSCF_PORT := 5060;
-
- /** @desc charstring for TS/P-CSCFdomain
- */
- charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
- }
-} // end group TS_PCSCF
-
-group TS_SCSCF {
- modulepar {
- /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_SCSCF_PORT := 5060;
-
- /** @desc charstring for TS/S-CSCFdomain
- */
- 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
- */
- charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
-
- /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
- */
- 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
- */
- 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 **
- */
- charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
- }
-} // end group TS_SCSCF
-
-group TS_ECSCF {
- modulepar {
- /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/E-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ECSCF_PORT := 5060;
-
- /** @desc charstring for TS/E-CSCFdomain
- */
- charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
- }
-} // end group TS_ECSCF
-
-group TS_IMS1user {
- modulepar {
- /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
- */
- charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
-
- /** @desc charstring for TS/domain
- */
- charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
- }
-} // end group TS_IMS1user
-
-group TS_ISUPuser {
- modulepar {
- /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
- */
- charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
-
- /** @desc charstring for ISUP TS/domain or IPAddres
- */
- charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
- }
-} // end group TS_ISUPuser
-
-
-group TS_AS {
- modulepar {
- /** @desc charstring for TS/AS1 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
-
- /** @desc integer for TS/AS1 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS1_PORT := 5060;
-
- /** @desc charstring for TS/AS1 domain
- */
- charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
-
- /** @desc charstring for TS/AS2 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
-
- /** @desc integer for TS/AS2 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS2_PORT := 5060;
-
- /** @desc charstring for TS/AS2 domain
- */
- charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
- }
-} // end group TS_AS
-} // end group TS
-} // end module LibIms_PIXITS
/tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Interface.ttcn (revision 97)
+++ tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Interface.ttcn (nonexistent)
@@ -1,42 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_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
- {
-
- //Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
- type component ImsComponent extends SipComponent
- {
- // general variables
- var ImsInterfaceProfile vc_interfaceprofile
- } // end ImsComponent
-
-// type address WorkaroundAddress; //Remove it later
- }// end group AdressTypes
-
-
-
-
-} // end module LibIms_TestSystem
/tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 97)
+++ tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,90 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types and constants used by the test component
- * for SIP tests.
- */
-
-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
-
-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_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
/tags/TAG_V004_LibIms_2010_week08/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Steps.ttcn (revision 97)
+++ tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Steps.ttcn (nonexistent)
@@ -1,1308 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests.
- */
-
-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;
- //LibIms
- import from LibIms_Templates all;
- import from LibIms_Interface all;
- import from LibIms_PIXITS all;
- import from LibIms_SIPTypesAndValues all;
-
- group externalfunctions {
- }
- 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
- */
- function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
- {
- var Request v_request;
- v_request := vc_request;
-
- vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
-
- vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
-
- }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
-
- if (ispresent(v_response.msgHeader.recordRoute)) {
- vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
- }
- }// 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) runs on ImsComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- if(p_orginatingSide) {
- vc_to := vc_caller_To;
- vc_from := vc_caller_From;
- }
- else {
- vc_to := vc_callee_To;
- vc_from := vc_callee_From;
- }
-
- }// 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,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- vc_reqHostPort := vc_requestUri.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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
- }
-
- 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 p_sipUrl := {
- scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := omit,
- urlParameters := omit,
- headers := omit};
-
- select(p_user){
- case (c_userProfile_UE1atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE2atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE3atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE4atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_IBCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ICSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_PCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_SCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
-// case (c_userProfile_SCSCFwithHomeUE) {
-// p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
-// p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ECSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_ISUP) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY_INVALID) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
-
- // following setting is used for the assignment of the Path header field
- case (c_interfaceProfile_IMS_SUT_PCSCF1) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.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) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_conferenceProfile_factoryURI) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
- }
- };
- return(p_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 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
- {
- vc_ignore_subscribe := true;//handle SUBSCRIBE during the call
- 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_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));
-
- }//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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
- {
-
- //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
- * (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, inout CSeq p_cSeq_s) runs on ImsComponent
- {
-
- //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));
- }
-
- } // 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();
- }
-
- 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_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
- {
- // 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) 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
- }
- } // end function f_terminateCall_UE
-
- }
- group defaults {
- }
-} // module LibIms_Steps
/tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Steps.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Templates.ttcn (revision 97)
+++ tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Templates.ttcn (nonexistent)
@@ -1,3238 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_Templates
-{
- //LibCommon
- import from LibCommon_DataStrings all;
-
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_Templates all;
- import from LibSip_Steps all;
- import from LibSip_PIXITS all;
- import from LibSip_XMLTypes all;
- import from XSDAUX all;
-
- //LibIms
- import from LibIms_SIPTypesAndValues all;
-
- import from LibIms_PIXITS all;
-
- //LibXMLTypes
- import from ietf_params_xml_ns_resource_lists language "XSD" all
- with {
- extension "File:../xsd/ResourceList.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_xcap language "XSD" all
- with {
- extension "File:../xsd/SupplementaryServices.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_mcid language "XSD" all
- with {
- extension "File:../xsd/MCID.xsd"
- }
-
- import from Ims3gpp language "XSD" all
- with {
- extension "File:../xsd/Ims3gpp.xsd"
- }
-
- import from ietf_params_xml_ns_conference_info language "XSD" all
- with {
- extension "File:../xsd/CONF.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_pstn language "XSD" all
- with {
- extension "File:../xsd/PSTN.xsd"
- }
-
- import from ietf_params_xml_ns_common_policy language "XSD" all
- with {
- extension "File:../xsd/common-policy.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_comm_div_info language "XSD" all
- with {
- extension "File:../xsd/CDIVN.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 := "sip:",
- userInfo := *,
- hostPort := {p_host, p_port},
- urlParameters := *,
- headers := *
- }
- }
-
- template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
-
-group Subfields{
-
-
- template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "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 (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,
- userInfo := {userOrTelephoneSubscriber:="registrar"},
- hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
- urlParameters := omit,
- headers := omit}},
- rrParam := omit}
- }
- }
-/*
- * @desc Path header field expectation with at least one path value
- * @param p_sipUrl value of the last element in the list of path values
- */
- template Path mw_path (template SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
- }
-
- template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
- {
- fieldName := P_ACCESS_NETWORK_INFO_E,
- accessType := "IEEE-802.11a",
- genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}}
- };
-
- template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):=
- {
- fieldName := P_ASSERTED_SERVICE_E,
- pAssertedServiceValue := p_pAssertedServiceValue
- };
-
- template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
- {
- fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
- chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
- {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
- };
-
-
- template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := p_chargeParams
- };
-
- template PChargingVector m_pChargingVector_icid_TS :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {{id:=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 mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
- };
-
- template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
- {
- fieldName := P_MEDIA_AUTHORIZATION_E,
- pMediaAuthorizations := {"A"} // example
- };
-
-
- template PEarlyMedia m_pEarlyMedia_sup :=
- {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
-
-
- template ProxyRequire m_proxyRequire_secAgree :=
- {
- fieldName := PROXY_REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template PVisitedNetworkID m_pVisitedNetworkID_TS :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
- genericParams := omit}}
- }
-
- template PVisitedNetworkID mw_pVisitedNetworkID :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
- genericParams := *}}
- }
-
- template RecordRoute m_recordRoute_notmatching:=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template Require m_require_secAgree :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template Require mw_require_path :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset("path")
- };
-
- template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
- {
- fieldName := ROUTE_E,
- routeBody := {{nameAddr := {displayName := omit,
- addrSpec := {scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := {host:=p_interfaceprofile.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"
- 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
- }
- }
-
-
-
- /*
- * @desc AcceptContact header field
- * @param p_acValues value
- */
- template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- /*
- * @desc Authenticate header field
- * @param p_challenge value
- */
- template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues :=
- {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- template SubscriptionState mw_subscriptionState(template charstring p_state) := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- }
-
- //[3455/5.1]
- template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := {
- fieldName := P_ASSOCIATED_URI_E,
- nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}}
- }
-
-} // end group HeaderFieldTemplates
-
-group MessageBodyTemplates {
-
-group XMLTemplates {
-
-// template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
-// {
-// icb := p_icb
-// };
-
-// template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
-// {
-// ocb := p_ocb
-// };
-
- template XmlBody m_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody m_XmlBody_simservs(template Simservs p_simservs) :=
- {
- simservs := p_simservs
- };
-
- template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
- {
- simservs := {
- anyAttributes := omit,
- choice := {
- {
- incoming_communication_barring := p_icb
- }
- }
- }
- };
-
- template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
- {
- simservs := {
- anyAttributes := omit,
- choice := {
- {
- outgoing_communication_barring := p_ocb
- }
- }
- }
- };
-
- template XmlBody m_XmlBody_CDIVN(template Comm_div_info_type p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
-// template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
-// {
-// cdivn := p_cdivn
-// };
-
- template XmlBody mw_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
- {
- conference_type := 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
- };
-
-}// end group XMLTemplates
-
-group ACR_CBTemplates {
-
- template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
- {
- ruleset := {
- rule:= {p_ruleType}
- }
- }
-
- template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
- {
- ruleset := {
- rule:= {p_ruleType}
- }
- }
-
- template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
- {
- id := "rule66",
- conditions := p_condition,
- actions := {elem:={{boolean := false}}},
- transformations := omit
- }
-
- template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
- content := {{
- identity := {{
- content := {{
- one := {
- id := p_id,
- //scheme := p_scheme,
- //any_1 := omit
- elem := {charstring := p_scheme}
- }
- }}
- }}
- }}
- }
-
-
-
-
-} //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,
- anyAttributes := omit,
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator :=p_cci
- }
-
- template Cug mw_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator := p_cci
- }
-
- template CugRequestType m_cugReqType(boolean p_outAccessRequest, integer p_cugIndex) :=
- {
-// outgoingAccessRequest := p_outAccessRequest,
-// cugIndex := p_cugIndex
-//TODO: workaround for ttwb118
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-
- template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-}//end group CUGTemplates
-
-group MCIDTemplates {
-
- template Mcid m_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {mcidRequestIndicator := bit2str('1'B),
- holdingIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
- {
- choice := {
- request := {mcidRequestIndicator := bit2str('1'B),
- holdingIndicator := bit2str('1'B)}
- }
- }
-
- template Mcid m_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {mcidRequestIndicator := bit2str('1'B),
- holdingIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
- {
- choice := {
- response := {mcidResponseIndicator := bit2str('1'B),
- holdingProvidedIndicator := bit2str('1'B)}
- }
- }
-
-} //end group MCIDTemplates
-
-group PSTNTemplates {
-
- template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template DisplayType p_d) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {p_hlc, p_hlc2},
- lowLayerCompatibility := p_llc,
- progressIndicator := {p_pi},
- display_ := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template DisplayType p_d) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {p_hlc, p_hlc2},
- lowLayerCompatibility := p_llc,
- progressIndicator := {p_pi, p_pi2},
- display_ := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template ProgressIndicatorType p_pi3,
- template DisplayType p_d) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {p_hlc, p_hlc2},
- lowLayerCompatibility := p_llc,
- progressIndicator := {p_pi, p_pi2, p_pi3},
- display_ := {p_d}
- }
-
- template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2) :=
- {
- bearerInfomationElement := {p_bct, p_bct2},
- highLayerCompatibility := {*, *},
- lowLayerCompatibility := *,
- progressIndicator := {*},
- display_ := {*}
- }
-
-
- template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
- bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
- bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- bCoctet4_1 := omit,
- bCoctet5 := omit,
- bCoctet5a := omit,
- bCoctet5bV110 := omit,
- bCoctet5bV120 := omit,
- bCoctet5c := omit,
- bCoctet5d := omit,
- bCoctet6 := omit,
- bCoctet7 := omit,
- bCoctet7a := omit,
- bCoctet7b := omit
- }
-
- template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
- progressOctet3 := {codingStandard := bit2str('00'B),
- location := bit2str('0000'B)
- },
- progressOctet4 := {progressDescription := bit2str(p_progDesc)}
- }
-
- template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
- lLOctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- lLOctet3a := omit,
- lLOctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- lLOctet4_1 := omit,
- lLOctet5 := omit,
- lLOctet5a := omit,
- lLOctet5bV110 := omit,
- lLOctet5bV120 := omit,
- lLOctet5c := omit,
- lLOctet5d := omit,
- lLOctet6 := omit,
- lLOctet6aHDLC := omit,
- lLOctet6aUserSpecific := omit,
- lLOctet6b := omit,
- lLOctet7 := {layer3Identification := bit2str('10'B), //TODO check valueand if parameter is mandatory
- userInfoLayer3Protocol := bit2str('10000'B)}, //TODO check value and if parameter is mandatory
- lLOctet7aUserSpecific := omit,
- lLOctet7aX25 := omit,
- lLOctet7bX25 := omit,
- lLOctet7c := omit,
- lLOctet7aTR9577 := omit,
- lLOctet7bTR9577 := omit
- }
-
- template HighLayerCompatibilityType m_HighLayerCompatibilityType
- (Bit7 p_HLOctet4):= {
- hLOctet3 := {
- codingStandard :=bit2str('00'B),
- interpretation :=bit2str('100'B),
- presentationMethod := bit2str('01'B)
- },
- hLOctet4 := {
- highLayerCharacteristics := bit2str(p_HLOctet4)
- },
- hLOctet4aMaintenance := omit,
- hLOctet4Audio := omit
- }
-
- template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
- bCoctet3 := p_BCOctet3Type,
- bCoctet4 := p_BCOctet4Type,
- bCoctet4_1 := * ,
- bCoctet5 := * ,
- bCoctet5a := * ,
- bCoctet5bV110 := * ,
- bCoctet5bV120 := * ,
- bCoctet5c := * ,
- bCoctet5d := * ,
- bCoctet6 := * ,
- bCoctet7 := * ,
- bCoctet7a := * ,
- bCoctet7b := *
- }
-
- template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
- bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
- bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- bCoctet4_1 := * ,
- bCoctet5 := * ,
- bCoctet5a := * ,
- bCoctet5bV110 := * ,
- bCoctet5bV120 := * ,
- bCoctet5c := * ,
- bCoctet5d := * ,
- bCoctet6 := * ,
- bCoctet7 := * ,
- bCoctet7a := * ,
- bCoctet7b := *
- }
-
- template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
- progressOctet3 := p_ProgressOctet3Type,
- progressOctet4 := p_ProgressOctet4Type
- }
-
- template LowLayerCompatibilityType mw_LowLayerCompatibilityType
- (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
- lLOctet3 := p_LLOctet3,
- lLOctet3a := * ,
- lLOctet4 := p_LLOctet4,
- lLOctet4_1 := * ,
- lLOctet5 := * ,
- lLOctet5a := * ,
- lLOctet5bV110 := * ,
- lLOctet5bV120 := * ,
- lLOctet5c := * ,
- lLOctet5d := * ,
- lLOctet6 := * ,
- lLOctet6aHDLC := * ,
- lLOctet6aUserSpecific := * ,
- lLOctet6b := * ,
- lLOctet7 := p_LLOctet7,
- lLOctet7aUserSpecific := * ,
- lLOctet7aX25 := * ,
- lLOctet7bX25 := * ,
- lLOctet7c := * ,
- lLOctet7aTR9577 := * ,
- lLOctet7bTR9577 := *
- }
-
- template HighLayerCompatibilityType mw_HighLayerCompatibilityType
- (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
- hLOctet3 := p_HLOctet3,
- hLOctet4 := p_HLOctet4,
- hLOctet4aMaintenance := *,
- hLOctet4Audio := *
- }
-
-} //end group PSTNTemplates
-
-group CDIVNTemplates {
-
- /* general CDIVN subscription */
- template Comm_div_info_type m_CDIVN_sub := {
- entity := "comm-div-info",
- comm_div_subs_info := {
- anyAttributes := omit,
- comm_div_selection_criteria := {
- anyAttributes := 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 := omit
- },
- comm_div_ntfy_trigger_criteria := omit,
- comm_div_info_selection_criteria := omit,
- elem := omit
- },
- comm_div_ntfy_info := omit,
- elem := omit
- }
-
-
-} // end grouup CDIVNTemplates
-
-group ResourceListsTemplates {
-
-
- template Resource_lists m_ResourceList_2Users(
- EntryType p_user1,
- EntryType p_user2
- ) :=
- {
- sequence := {
- {
- list := {
- name := omit,
- anyAttributes := omit,
- display_name := omit,
- sequence_list := {
- {
- choice := {
- entry := p_user1
- }
- },
- {
- choice := {
- entry := p_user2
- }
- }
- },
- elem := omit
- }
- }
- }
- }
-
- template EntryType m_EntryUser(SipUrl p_user) := {
-
- uri :=
- p_user.userInfo.userOrTelephoneSubscriber & "@" &
- p_user.hostPort.host,
- anyAttributes := omit,
- display_name := omit,
- elem := omit
- }
-}// end grouup ResourceListsTemplates
-
-group Ims3gppTemplates {
-
- //TODO:check commented and below templates when test will be validated
- template TIMS3GPP mw_Ims_3gpp_CW := {
- version := 1.0,
- anyAttributes := ?,
- choice := {
- alternative_service := {
- anyAttributes := *,
- type_ := *,
- reason := *,
- elem := *
- }
- },
- elem := *
- }
-// template TIMS3GPP mw_Ims_3gpp_CW := {
-// version := 1.0,
-// anyAttributes := ?,
-// choice_1 := {
-// alternative_service := {
-// anyAttributes := ?,
-// type_ := ?,
-// reason := ?,
-// action_ := {
-// anyAttributes := ?,
-// emergency_registration := *,
-// call_waiting_indication := {},
-// any_1 := *
-// },
-// any_1 := *
-// }
-// },
-// any_1 := *
-// }
-} // end group Ims3gpp
-
-group CONFTemplates {
- template booleanXSD boolXSD_true:={bool:=true}
- template booleanXSD boolXSD_false:={bool:=false}
-
- template anyAttributes m_emptyAnyAttributes:={}
-
- template ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(template Media_status_type p_status):= {
- id:="1",
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text :=omit,
- type_ :=omit,
- label_ :=omit,
- src_id:=omit,
- status:= p_status,
- elem:=omit
- }
-
- template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template ietf_params_xml_ns_conference_info.Media_type p_mediastatus):= {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- referred:=omit,
- status:=p_epStatus,
- joining_method:=p_joinMethod,
- joining_info:=omit,
- disconnection_method:=omit,
- disconnection_info:=omit,
- media:={p_mediastatus},// optional,
- call_info:=omit,
- elem:=omit
- }
-
- template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- associated_aors:=omit,
- roles:=omit,
- languages :=omit,
- cascaded_focus :=omit,
- endpoint:={p_endpoint},// optional,
- elem:=omit
- }
-
- template Users_type m_users_1user_full(template User_type p_user):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user},
- elem:=omit
- }
-
- template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user1,p_user2},
- elem:=omit
- }
-
- template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
- anyAttributes:=omit,//m_emptyAnyAttributes,
- user_count:=p_nUsers,
- active:=p_active,
- locked:=p_locked,
- elem := omit
- }
-
- template Conference_type m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
- entity := p_cUri,
- state := full,
- version := 1,
- anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
- conference_description := omit,
- host_info := omit,
- conference_state := p_cState,
- users := p_users,
- sidebars_by_ref := omit,
- sidebars_by_val := omit,
- elem := omit
- }
-
- template Conference_type mw_conferenceInfo_active := {
- entity := ?,
- state := *,
- version := *,
- anyAttributes := ?,
- conference_description := *,
- host_info := *,
- conference_state := ?,
- users := {
- state := ?,
- anyAttributes := ?,
- user := {
- {
- entity := *,
- state := *,
- anyAttributes := *,
- display_text := *,
- associated_aors := *,
- roles := *,
- languages := *,
- cascaded_focus := *,
- endpoint := {
- {
- entity := *,
- state := *,
- anyAttributes := ?,
- display_text := *,
- referred := *,
- status := connected,
- joining_method := dialed_in,
- joining_info := *,
- disconnection_method := *,
- disconnection_info := *,
- media := *,
- call_info := *,
- elem := *
- }
- },
- elem := *
- }
- },
- elem := omit
- },
- sidebars_by_ref := *,
- sidebars_by_val := *,
- elem := *
- }
-}
-
-} // end group MessageBodyTemplates
-
-group MessageTemplates {
-
-group modified_templates {
-
-group request_send {
-
-
- template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_Reason_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_UserToUser_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, template charstring p_U2UData)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route,
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template BYE_Request m_BYE_Request_UE
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- reason := m_Reason(p_cause),
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @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_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 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
- },
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
- template ProxyRequire p_proxyRequire, template Require p_require,
- template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- proxyRequire := p_proxyRequire,
- require := p_require,
- securityClient := p_securityClient,
- securityVerify := p_securityVerify,
- supported := p_supported,
- toField := p_to,
- via := p_via
-
- }
- }
-
-
- template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- path := m_path_TS,
- pChargingVector := m_pChargingVector_icid_TS,
- pVisitedNetworkID := m_pVisitedNetworkID_TS,
- require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
- toField := p_to,
- via := p_via
-
- }
- }
- template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
- modifies m_REGISTER_Request_IMS :=
- {
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000,
- route := p_route
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- 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 INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit}
- }
- template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- acceptContact := p_acceptContact
- }
- }
-
- template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {recordRoute := p_recordRoute,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {route := p_route}
- }
-
- template INVITE_Request mw_INVITE_Request_require (
- template Require p_require
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { require := p_require }
- }
-
- template INVITE_Request mw_INVITE_Request_supported (
- template Supported p_supported
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { supported := p_supported }
- }
-
- template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {sessionExpires := p_sessionExpires}
- }
-
- template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
- }
-
- template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- }
- }
- template INVITE_Request mw_INVITE_Request_IMS_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_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
- }
-
- /*
- *
- * @desc Await INVITE using topology hiding
- */
- template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- /*
- *
- * @desc Await INVITE without PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { fromField := p_from,
- pAssertedID := omit,
- pPreferredID := omit}
- }
-
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy ifpresent}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- historyInfo := p_historyInfo}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template 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_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_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, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- 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, 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, integer p_cause) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
-}//end group response_send
-
-group response_receive
-{
-
- template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- messageBody := {
- sdpMessageBody := ?
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
-
- template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAccessNetworkInfo := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pMediaAuthorization := omit
- }
- }
-
- template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- securityServer := ?,
- wwwAuthenticate := ?
- }
- }
-
- template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
- path := ?,
- serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
- pChargingFunctionAddresses := ?,
- pChargingVector := ?,
- contact := p_contact
- }
- }
-
- template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- historyInfo := p_historyInfo
- }
- }
-
- template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
- }
- }
-
-} // end response_receive
-
-}//end modified_templates
-
-}//end Message_templates
-
-} // end module LibIms_Templates
/tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_PIXITS.ttcn (revision 97)
+++ tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_PIXITS.ttcn (nonexistent)
@@ -1,602 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_PIXITS
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_TextStrings all;
- import from LibCommon_DataStrings all;
-
-group SUT {
-
-group SUT_UE {
- modulepar {
- /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
- */
- 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
- */
- integer PX_IMS_SUT_UE_PORT := 5060;
- }//end modulepar
-}//end group SUT_UE1
-group SUT_UE1 {
- modulepar {
- /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF1_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
- */
- 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
- */
- charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE1 local domain
- */
- charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE1 local user
- */
- 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
- */
- 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
- */
- 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.
- */
- charstring PX_IMS_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE1
- */
- charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
-
- /** @desc charstring for UE1 display name
- */
- charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
- }
-} // end group SUT_UE1
-
-group SUT_UE2 {
- modulepar {
- /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF2_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
- */
- 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
- */
- charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE2 local user
- */
- 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
- */
- 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
- */
- 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.
- */
- charstring PX_IMS_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE2
- */
- charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE2
-
-group SUT_UE3 {
- modulepar {
- /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF3_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
- */
- 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
- */
- charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE3 local user
- */
- 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
- */
- 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
- */
- 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.
- */
- charstring PX_IMS_SUT_UE3_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE3
- */
- charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE3
-
-group SUT_UE4 {//UE4 can be used as UE1Visited
- modulepar {
- /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF4_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
- */
- 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
- */
- charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE4 local user
- */
- 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
- */
- 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
- */
- 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.
- */
- charstring PX_IMS_SUT_UE4_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE4
- */
- charstring PX_IMS_SUT_UE4_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE4
-
-group SUT_unknown{
- modulepar {
- /** @desc charstring for identity of unknown UE public user
- */
- charstring PX_IMS_SUT_unknownUE_PUBLIC_USER := "0007";
- }
-} // end group SUT_unknown
-
-group EMERGENCY{
- modulepar {
- /** @desc charstring for identity of emergency service local domain
- */
- charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
-
- /** @desc charstring for identity of the emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
-
- /** @desc charstring for identity of the invalid emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
- }
-}// end group EMERGENCY service
-
-group SUT_IBCF {
- modulepar {
- /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
-
- /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF1_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF1 domain
- */
- charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
-
- /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
-
- /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF2_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF2 domain
- */
- charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
- }
-} // end group SUT_IBCF
-group SUT_PCSCF {
- modulepar {
- /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
-
- /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_PCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/P-CSCFdomain
- */
- charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
-
- /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
- */
- 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)
- */
- charstring PX_IMS_SUT_PCSCF_MinSE := "100";
- }
-} // end group SUT_PCSCF
-group SUT_SCSCF {
- modulepar {
- /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
-
- /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_SCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/S-CSCFdomain
- */
- charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
-
- /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
- */
- charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
- }
-} // end group SUT_SCSCF
-
-group SUT_ICSCF {
- modulepar {
- /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
-
- /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_ICSCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-CSCFdomain
- */
- charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
- }
-} // end group SUT_ICSCF
-
-group SUT_AS {
- modulepar {
- /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
- */
- 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
- */
- integer PX_IMS_SUT_AS_PORT := 5060;
-
- /** @desc charstring for SUT/AS domain
- */
- charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
-
- }//end modulepar
-}//end group SUT_UE1
-
-group SUT_IMGCF {
- modulepar {
- /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
-
- /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IMGCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-MGCFdomain
- */
- charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
- }
-} // end group SUT_IMGCF
-
-group SUT_CONF {
- modulepar {
- /**
- * @desc
- * charstring for SUT/conference IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
- /**
- * @desc integer for SUT/conference port number to exchange SIP messages
- */
- integer PX_IMS_SUT_CONF_PORT := 5060;
- /**
- * @desc charstring for SUT/conference domain
- */
- charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
- /**
- * @desc charstring for conference factory URI name
- */
- charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
- };
-
-} // end group SUT_CONF
-
-} // end group SUT
-group TS {
-group TS_UE1 {
- modulepar {
- /** @desc charstring for IP address used by the UE1 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
-
- /** @desc integer for port number used by the UE1 to exchange SIP messages
- */
- integer PX_IMS_TS_UE1_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE1
-
-group TS_UE2 {
- modulepar {
- /** @desc charstring for IP address used by the UE2 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
-
- /** @desc integer for port number used by the UE2 to exchange SIP messages
- */
- integer PX_IMS_TS_UE2_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE2
-
-group TS_UE3 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE3_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE3
-
-group TS_UE4 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE4_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE4
-
-group TS_IBCF {
- modulepar {
- /** @desc charstring for TS/IBCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
-
- /** @desc integer for TS/IBCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_IBCF_PORT := 5060;
-
- /** @desc charstring for TS/IBCF domain
- */
- charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
- }
-} // end group TS_IBCF
-
-group TS_ICSCF {
- modulepar {
- /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
-
- /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ICSCF_PORT := 5060;
-
- /** @desc charstring for TS/I-CSCF domain
- */
- charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
- }
-} // end group TS_ICSCF
-
-group TS_PCSCF {
- modulepar {
- /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
-
- /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_PCSCF_PORT := 5060;
-
- /** @desc charstring for TS/P-CSCFdomain
- */
- charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
- }
-} // end group TS_PCSCF
-
-group TS_SCSCF {
- modulepar {
- /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_SCSCF_PORT := 5060;
-
- /** @desc charstring for TS/S-CSCFdomain
- */
- 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
- */
- charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
-
- /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
- */
- 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
- */
- 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 **
- */
- charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
- }
-} // end group TS_SCSCF
-
-group TS_ECSCF {
- modulepar {
- /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/E-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ECSCF_PORT := 5060;
-
- /** @desc charstring for TS/E-CSCFdomain
- */
- charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
- }
-} // end group TS_ECSCF
-
-group TS_IMS1user {
- modulepar {
- /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
- */
- charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
-
- /** @desc charstring for TS/domain
- */
- charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
- }
-} // end group TS_IMS1user
-
-group TS_ISUPuser {
- modulepar {
- /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
- */
- charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
-
- /** @desc charstring for ISUP TS/domain or IPAddres
- */
- charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
- }
-} // end group TS_ISUPuser
-
-
-group TS_AS {
- modulepar {
- /** @desc charstring for TS/AS1 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
-
- /** @desc integer for TS/AS1 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS1_PORT := 5060;
-
- /** @desc charstring for TS/AS1 domain
- */
- charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
-
- /** @desc charstring for TS/AS2 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
-
- /** @desc integer for TS/AS2 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS2_PORT := 5060;
-
- /** @desc charstring for TS/AS2 domain
- */
- charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
- }
-} // end group TS_AS
-} // end group TS
-} // end module LibIms_PIXITS
/tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Interface.ttcn (revision 97)
+++ tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Interface.ttcn (nonexistent)
@@ -1,42 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_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
- {
-
- //Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
- type component ImsComponent extends SipComponent
- {
- // general variables
- var ImsInterfaceProfile vc_interfaceprofile
- } // end ImsComponent
-
-// type address WorkaroundAddress; //Remove it later
- }// end group AdressTypes
-
-
-
-
-} // end module LibIms_TestSystem
/tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 97)
+++ tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,90 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types and constants used by the test component
- * for SIP tests.
- */
-
-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
-
-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_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
/tags/TAG_V005_LibIms_PlugtestLanion2009_STF370/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 97)
+++ tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,90 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types and constants used by the test component
- * for SIP tests.
- */
-
-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
-
-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_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
/tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Steps.ttcn (revision 97)
+++ tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Steps.ttcn (nonexistent)
@@ -1,1254 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests.
- */
-
-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;
- //LibIms
- import from LibIms_Templates all;
- import from LibIms_Interface all;
- import from LibIms_PIXITS all;
- import from LibIms_SIPTypesAndValues all;
-
- group externalfunctions {
- }
- 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
- */
- function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
- {
- var Request v_request;
- v_request := vc_request;
-
- vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
-
- vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
-
- }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
-
- if (ispresent(v_response.msgHeader.recordRoute)) {
- vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
- }
- }// 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) runs on ImsComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
-
- if(p_orginatingSide) {
- vc_to := vc_caller_To;
- vc_from := vc_caller_From;
- }
- else {
- vc_to := vc_callee_To;
- vc_from := vc_callee_From;
- }
-
- }// 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,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- vc_reqHostPort := vc_requestUri.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 {
- }
- 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
- }
-
- 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 p_sipUrl := {
- scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := omit,
- urlParameters := omit,
- headers := omit};
-
- select(p_user){
- case (c_userProfile_UE1atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE2atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE3atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_UE4atSUThome) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_IBCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ICSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_PCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_SCSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
-// case (c_userProfile_SCSCFwithHomeUE) {
-// p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
-// p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
- }
- case (c_userProfile_ECSCFwithHomeUE) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
- }
- case (c_userProfile_ISUP) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
- case (c_serviceProfile_EMERGENCY_INVALID) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
- }
-
- // following setting is used for the assignment of the Path header field
- case (c_interfaceProfile_IMS_SUT_PCSCF1) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.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) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
- }
- case (c_conferenceProfile_factoryURI) {
- p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
- p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
- }
- };
- return(p_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 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;
- //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 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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
- {
-
- //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
- * (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, inout CSeq p_cSeq_s) runs on ImsComponent
- {
-
- //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));
- }
-
- } // 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();
- }
-
- 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_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
- {
- // 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) 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
- }
- } // end function f_terminateCall_UE
-
- }
- group defaults {
- }
-} // module LibIms_Steps
/tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Steps.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Templates.ttcn (revision 97)
+++ tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Templates.ttcn (nonexistent)
@@ -1,3043 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_Templates
-{
- //LibCommon
- import from LibCommon_DataStrings all;
-
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_Templates all;
- import from LibSip_Steps all;
- import from LibSip_PIXITS all;
- import from LibSip_XMLTypes all;
- import from XSDAUX all;
-
- //LibIms
- import from LibIms_SIPTypesAndValues all;
-
- import from LibIms_PIXITS all;
-
- template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+";
-
- template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) :=
- {
- displayName := *,
- addrSpec := {
- scheme := "sip:",
- userInfo := *,
- hostPort := {p_host, p_port},
- urlParameters := *,
- headers := *
- }
- }
-
- template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
-
-group Subfields{
-
-
- template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "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 (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,
- userInfo := {userOrTelephoneSubscriber:="registrar"},
- hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
- urlParameters := omit,
- headers := omit}},
- rrParam := omit}
- }
- }
-/*
- * @desc Path header field expectation with at least one path value
- * @param p_sipUrl value of the last element in the list of path values
- */
- template Path mw_path (template SipUrl p_sipUrl):=
- {
- fieldName := PATH_E,
- pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
- }
-
- template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
- {
- fieldName := P_ACCESS_NETWORK_INFO_E,
- accessType := "IEEE-802.11a",
- genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}}
- };
-
- template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):=
- {
- fieldName := P_ASSERTED_SERVICE_E,
- pAssertedServiceValue := p_pAssertedServiceValue
- };
-
- template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
- {
- fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
- chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
- {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
- };
-
-
- template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := p_chargeParams
- };
-
- template PChargingVector m_pChargingVector_icid_TS :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := {{id:=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 mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
- {
- fieldName := P_CHARGING_VECTOR_E,
- chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
- };
-
- template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
- {
- fieldName := P_MEDIA_AUTHORIZATION_E,
- pMediaAuthorizations := {"A"} // example
- };
-
-
- template PEarlyMedia m_pEarlyMedia_sup :=
- {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
-
-
- template ProxyRequire m_proxyRequire_secAgree :=
- {
- fieldName := PROXY_REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template PVisitedNetworkID m_pVisitedNetworkID_TS :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
- genericParams := omit}}
- }
-
- template PVisitedNetworkID mw_pVisitedNetworkID :=
- {
- fieldName := P_VISITED_NETWORK_E,
- vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
- genericParams := *}}
- }
-
- template RecordRoute m_recordRoute_notmatching:=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody :=
- {{
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme, // contains "sip"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template Require m_require_secAgree :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {"sec-agree"}
- };
-
- template Require mw_require_path :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset("path")
- };
-
- template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
- {
- fieldName := ROUTE_E,
- routeBody := {{nameAddr := {displayName := omit,
- addrSpec := {scheme := c_sipScheme, // contains "sip"
- userInfo := omit,
- hostPort := {host:=p_interfaceprofile.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"
- userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
- hostPort :=
- {
- host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
- portField := omit
- },
- urlParameters := omit,
- headers := omit
- }
- },
- rrParam := omit
- } }
- };
-
- template SessionExpires m_se(DeltaSec p_ds):=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=p_ds,
- seParam:=omit
- }
-
- template SessionExpires mw_se:=
- {
- fieldName := SESSION_EXPIRES_E,
- deltaSec:=?,
- seParam:=omit
- }
-
- template Supported m_supported_timer:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"timer"}
- }
-
-
- template Supported m_supported_fromChange:=
- {
- fieldName := SUPPORTED_E,
- optionsTags := {"from-change"}
- }
-
- template To m_To_targetRefreshRequest(template To p_To) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := p_To.addressField.nameAddr.displayName,
- addrSpec := p_To.addressField.nameAddr.addrSpec
- }},//end addressField
- toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
- };
-
- template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
- viaParams:={{id :=c_branchId,paramValue :=branch_val}}
- }
-
- template 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
- }
- }
-
-
-
- /*
- * @desc AcceptContact header field
- * @param p_acValues value
- */
- template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- /*
- * @desc Authenticate header field
- * @param p_challenge value
- */
- template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
- {
- fieldName := ACCEPT_CONTACT_E,
- acValues :=
- {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
- }
- }
-
- template SubscriptionState mw_subscriptionState(template charstring p_state) := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- }
-
- //[3455/5.1]
- template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := {
- fieldName := P_ASSOCIATED_URI_E,
- nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}}
- }
-
-} // end group HeaderFieldTemplates
-
-group MessageBodyTemplates {
-
-group XMLTemplates {
-
- template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
- {
- icb := p_icb
- };
-
- template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
- {
- ocb := p_ocb
- };
-
- template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
- template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
- {
- conferenceInfo := p_confInfo
- };
-
- template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
- {
- cug := p_cug
- };
-
- template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
- {
- mcid := p_mcid
- };
-
- template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
- {
- pstnTransit := p_pstn
- };
-
- template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
- {
- cdivn := p_cdivn
- };
-
- template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) :=
- {
- resourceLists := p_resourceLists
- };
-
-}// end group XMLTemplates
-
-group ACR_CBTemplates {
-
- template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
- {
- ruleset_icb := {
- rule:= {p_ruleType}
- }
- }
-
- template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
- {
- ruleset_ocb := {
- rule:= {p_ruleType}
- }
- }
-
- template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
- {
- id := "rule66",
- conditions := p_condition,
- actions := {bool := false},
- transformations := omit
- }
-
- template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
- choice := {{
- identity := {{
- choice := {{
- one := {
- id := p_id,
- scheme := p_scheme,
- any_1 := omit
- }
- }}
- }}
- }}
- }
-
-
-
-
-} //end group ACR_CBTemplates
-
-group CUGTemplates {
-
- template Cug m_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator :=p_cci
- }
-
- template Cug mw_CUG (template CugRequestType p_crt,
- template NetworkIdentityType p_nit,
- template SixteenbitType p_cibc,
- template TwoBitType p_cci):=
- {
- cugCallOperation := p_crt,
- networkIndicator := p_nit,
- cugInterlockBinaryCode := p_cibc,
- cugCommunicationIndicator := p_cci
- }
-
- template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
-// outgoingAccessRequest := p_outAccessRequest,
-// cugIndex := p_cugIndex
-//TODO: workaround for ttwb118
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := valueof(p_cugIndex)
- }
-
- template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
- {
- outgoingAccessRequest := {bool:=p_outAccessRequest},
- cugIndex := p_cugIndex
- }
-}//end group CUGTemplates
-
-group MCIDTemplates {
-
- template Mcid m_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := bit2str('1'B)}
- }
- }
-
- template Mcid m_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_request_mcidIndicatorTrue :=
- {
- choice := {
- request := {McidRequestIndicator := bit2str('1'B),
- HoldingIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := ?}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('0'B)}
- }
- }
-
- template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
- {
- choice := {
- response := {McidResponseIndicator := bit2str('1'B),
- HoldingProvidedIndicator := bit2str('1'B)}
- }
- }
-
-} //end group MCIDTemplates
-
-group PSTNTemplates {
-
- template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi},
- Display := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi, p_pi2},
- Display := {p_d}
- }
-
- template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2,
- template HighLayerCompatibilityType p_hlc,
- template HighLayerCompatibilityType p_hlc2,
- template LowLayerCompatibilityType p_llc,
- template ProgressIndicatorType p_pi,
- template ProgressIndicatorType p_pi2,
- template ProgressIndicatorType p_pi3,
- template DisplayType p_d) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {p_hlc, p_hlc2},
- LowLayerCompatibility := p_llc,
- ProgressIndicator := {p_pi, p_pi2, p_pi3},
- Display := {p_d}
- }
-
- template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
- template BearerCapabilityType p_bct2) :=
- {
- BearerInfomationElement := {p_bct, p_bct2},
- HighLayerCompatibility := {*, *},
- LowLayerCompatibility := *,
- ProgressIndicator := {*},
- Display := {*}
- }
-
-
- template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
- BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- BCoctet4_1 := omit,
- BCoctet5 := omit,
- BCoctet5a := omit,
- BCoctet5bV110 := omit,
- BCoctet5bV120 := omit,
- BCoctet5c := omit,
- BCoctet5d := omit,
- BCoctet6 := omit,
- BCoctet7 := omit,
- BCoctet7a := omit,
- BCoctet7b := omit
- }
-
- template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
- ProgressOctet3 := {CodingStandard := bit2str('00'B),
- Location := bit2str('0000'B)
- },
- ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)}
- }
-
- template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
- LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- LLOctet3a := omit,
- LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- LLOctet4_1 := omit,
- LLOctet5 := omit,
- LLOctet5a := omit,
- LLOctet5bV110 := omit,
- LLOctet5bV120 := omit,
- LLOctet5c := omit,
- LLOctet5d := omit,
- LLOctet6 := omit,
- LLOctet6aHDLC := omit,
- LLOctet6aUserSpecific := omit,
- LLOctet6b := omit,
- LLOctet7 := omit,
- LLOctet7aUserSpecific := omit,
- LLOctet7aX25 := omit,
- LLOctet7bX25 := omit,
- LLOctet7c := omit,
- LLOctet7aTR9577 := omit,
- LLOctet7bTR9577 := omit
- }
-
- template HighLayerCompatibilityType m_HighLayerCompatibilityType
- (Bit7 p_HLOctet4):= {
- HLOctet3 := {
- CodingStandard :=bit2str('00'B),
- Interpretation :=bit2str('100'B),
- PresentationMethod := bit2str('01'B)
- },
- HLOctet4 := {
- HighLayerCharacteristics := bit2str(p_HLOctet4)
- },
- HLOctet4aMaintenance := omit,
- HLOctet4Audio := omit
- }
-
- template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
- BCoctet3 := p_BCOctet3Type,
- BCoctet4 := p_BCOctet4Type,
- BCoctet4_1 := * ,
- BCoctet5 := * ,
- BCoctet5a := * ,
- BCoctet5bV110 := * ,
- BCoctet5bV120 := * ,
- BCoctet5c := * ,
- BCoctet5d := * ,
- BCoctet6 := * ,
- BCoctet7 := * ,
- BCoctet7a := * ,
- BCoctet7b := *
- }
-
- template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
- BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
- BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
- InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
- BCoctet4_1 := * ,
- BCoctet5 := * ,
- BCoctet5a := * ,
- BCoctet5bV110 := * ,
- BCoctet5bV120 := * ,
- BCoctet5c := * ,
- BCoctet5d := * ,
- BCoctet6 := * ,
- BCoctet7 := * ,
- BCoctet7a := * ,
- BCoctet7b := *
- }
-
- template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
- ProgressOctet3 := p_ProgressOctet3Type,
- ProgressOctet4 := p_ProgressOctet4Type
- }
-
- template LowLayerCompatibilityType mw_LowLayerCompatibilityType
- (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
- LLOctet3 := p_LLOctet3,
- LLOctet3a := * ,
- LLOctet4 := p_LLOctet4,
- LLOctet4_1 := * ,
- LLOctet5 := * ,
- LLOctet5a := * ,
- LLOctet5bV110 := * ,
- LLOctet5bV120 := * ,
- LLOctet5c := * ,
- LLOctet5d := * ,
- LLOctet6 := * ,
- LLOctet6aHDLC := * ,
- LLOctet6aUserSpecific := * ,
- LLOctet6b := * ,
- LLOctet7 := p_LLOctet7,
- LLOctet7aUserSpecific := * ,
- LLOctet7aX25 := * ,
- LLOctet7bX25 := * ,
- LLOctet7c := * ,
- LLOctet7aTR9577 := * ,
- LLOctet7bTR9577 := *
- }
-
- template HighLayerCompatibilityType mw_HighLayerCompatibilityType
- (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
- HLOctet3 := p_HLOctet3,
- HLOctet4 := p_HLOctet4,
- HLOctet4aMaintenance := *,
- HLOctet4Audio := *
- }
-
-} //end group PSTNTemplates
-
-group CDIVNTemplates {
-
- /* general CDIVN subscription */
- template Comm_div_info m_CDIVN_sub := {
- entity := ?,
- comm_div_subs_info := {
- anyAttributes := omit,
- comm_div_selection_criteria := {
- anyAttributes := ?,
- originating_user_selection_criteria := omit,
- diverting_user_selection_criteria := omit,
- diverted_to_user_selection_criteria := omit,
- diversion_time_selection_criteria := omit,
- diversion_reason_selection_criteria := omit,
- any_1 := omit
- },
- comm_div_ntfy_trigger_criteria := omit,
- comm_div_info_selection_criteria := omit,
- any_1 := omit
- },
- comm_div_ntfy_info := omit,
- any_1 := omit
- }
-
-
-} // end grouup CDIVNTemplates
-
-group ResourceListsTemplates {
- template Resource_lists m_ResourceList_2Users(
- EntryType p_user1,
- EntryType p_user2
- ) := {
- list := {
- {
- name := omit,
- anyAttributes := omit,
- display_name := omit,
- seq_1 := {
- {
- list := omit,
- external_ := omit,
- entry := p_user1,
- entry_Ref := omit
- },
- {
- list := omit,
- external_ := omit,
- entry := p_user2,
- entry_Ref := omit
- }
- },
- any_1 := omit
- }
- }
- }
-
- template EntryType m_EntryUser(SipUrl p_user) := {
- display_name := omit,
- uri :=
- p_user.userInfo.userOrTelephoneSubscriber & "@" &
- p_user.hostPort.host,
- any_1 := omit,
- anyAttributes := omit
- }
-}// end grouup ResourceListsTemplates
-
-group Ims3gppTemplates {
- template Ims_3gpp mw_Ims_3gpp_CW := {
- version := 1.0,
- anyAttributes := ?,
- choice_1 := {
- alternative_service := {
- anyAttributes := ?,
- type_ := ?,
- reason := ?,
- action_ := {
- anyAttributes := ?,
- emergency_registration := *,
- call_waiting_indication := {},
- any_1 := *
- },
- any_1 := *
- }
- },
- any_1 := *
- }
-} // end group Ims3gpp
-
-group CONFTemplates {
- template booleanXSD boolXSD_true:={bool:=true}
- template booleanXSD boolXSD_false:={bool:=false}
-
- template anyAttributes m_emptyAnyAttributes:={}
-
- template Media_type m_mediatype_status(template Media_status_type p_status):= {
- id:="1",
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text :=omit,
- type_ :=omit,
- label_ :=omit,
- src_id:=omit,
- status:= p_status,
- any_1:=omit
- }
-
- template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template Media_type p_mediastatus):= {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- referred:=omit,
- status:=p_epStatus,
- joining_method:=p_joinMethod,
- joining_info:=omit,
- disconnection_method:=omit,
- disconnection_info:=omit,
- media:={p_mediastatus},// optional,
- call_info:=omit,
- any_1:=omit
- }
-
- template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
- entity:=p_Uri,
- state:=full,
- anyAttributes:=omit,//m_emptyAnyAttributes,
- display_text:=omit,
- associated_aors:=omit,
- roles:=omit,
- languages :=omit,
- cascaded_focus :=omit,
- endpoint:={p_endpoint},// optional,
- any_1:=omit
- }
-
- template Users_type m_users_1user_full(template User_type p_user):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user},
- any_1:=omit
- }
-
- template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
- state:=full,
- anyAttributes := omit,//m_emptyAnyAttributes,
- user:={p_user1,p_user2},
- any_1:=omit
- }
-
- template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
- anyAttributes:=omit,//m_emptyAnyAttributes,
- user_count:=p_nUsers,
- active:=p_active,
- locked:=p_locked,
- any_1 := omit
- }
-
- template Conference_info m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
- entity := p_cUri,
- state := full,
- version := 1,
- anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
- conference_description := omit,
- host_info := omit,
- conference_state := p_cState,
- users := p_users,
- sidebars_by_ref := omit,
- sidebars_by_val := omit,
- any_1 := omit
- }
-
- template Conference_info mw_conferenceInfo_active := {
- entity := ?,
- state := *,
- version := *,
- anyAttributes := ?,
- conference_description := *,
- host_info := *,
- conference_state := ?,
- users := {
- state := ?,
- anyAttributes := ?,
- user := {
- {
- entity := *,
- state := *,
- anyAttributes := *,
- display_text := *,
- associated_aors := *,
- roles := *,
- languages := *,
- cascaded_focus := *,
- endpoint := {
- {
- entity := *,
- state := *,
- anyAttributes := ?,
- display_text := *,
- referred := *,
- status := connected,
- joining_method := dialed_in,
- joining_info := *,
- disconnection_method := *,
- disconnection_info := *,
- media := *,
- call_info := *,
- any_1 := *
- }
- },
- any_1 := *
- }
- },
- any_1 := omit
- },
- sidebars_by_ref := *,
- sidebars_by_val := *,
- any_1 := *
- }
-}
-
-} // end group MessageBodyTemplates
-
-group MessageTemplates {
-
-group modified_templates {
-
-group request_send {
-
-
- template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_Reason_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template BYE_Request m_BYE_Request_UserToUser_IMS
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, template charstring p_U2UData)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route,
- userToUser := m_UserToUserData(p_U2UData)
- }
- }
-
- template BYE_Request m_BYE_Request_UE
- ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause),
- route := p_route
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INFO message
- *
- */
- template INFO_Request m_INFO_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- },
- messageBody := p_mb
- }
-
- template INFO_Request m_INFO_Request_Xml_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template MessageBody p_mb )
- modifies m_INFO_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_Allow_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- allow := p_allow
- }
- }
-
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template HistoryInfo p_historyInfo)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
- template PAssertedID p_pAssertedID, template Privacy p_privacy )
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- acceptContact := p_acceptContact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pAssertedID := p_pAssertedID,
- pChargingVector := p_pChargingVector,
- privacy := p_privacy,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PAssertedService_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- pAssertedService := p_pAssertedService
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- pEarlyMedia := m_pEarlyMedia_sup,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID
- }
- }
-
- template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
- modifies m_INVITE_Request_UE
- :=
- {
- msgHeader :=
- {
- pPreferredID := p_pPreferredID,
- privacy := p_privacy
- }
- }
-
- template INVITE_Request m_INVITE_Request_SessionExpires_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- sessionExpires := p_se
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_minSE_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- /*
- *
- * @desc INVITE message exchanged at Mw
- *
- */
- template INVITE_Request m_INVITE_Request_minSE_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- require := p_require,
- pChargingVector := p_pChargingVector,
- route := p_route,
- supported := p_supported,
- minSE := p_minSE
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_User2UserData_IMS
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template Require p_require,
- template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
- modifies m_INVITE_Request_IMS
- :=
- {
- msgHeader :=
- {
- userToUser := m_UserToUserData(valueof(p_U2UData))
- }
- }
-
- template MESSAGE_Request m_MESSAGE_Request_MBody_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported, template MessageBody p_messageBody)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
- supported := p_supported
- },
- messageBody := p_messageBody
- }
-
- template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- require := p_require,
- route := p_route,
- supported := p_supported
- },
- messageBody := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, template Require p_require,
- template Route p_route, template Supported p_supported)
- modifies m_MESSAGE_Request_Base
- :=
- {
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
- pChargingVector := m_pChargingVector_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 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
- },
- require := p_require,
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- supported := p_supported
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
- template ProxyRequire p_proxyRequire, template Require p_require,
- template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- proxyRequire := p_proxyRequire,
- require := p_require,
- securityClient := p_securityClient,
- securityVerify := p_securityVerify,
- supported := p_supported,
- toField := p_to,
- via := p_via
-
- }
- }
-
-
- template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
- modifies m_REGISTER_Request_Base :=
- {
- requestLine :=
- {
- method := REGISTER_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- path := m_path_TS,
- pChargingVector := m_pChargingVector_icid_TS,
- pVisitedNetworkID := m_pVisitedNetworkID_TS,
- require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
- toField := p_to,
- via := p_via
-
- }
- }
- template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
- modifies m_REGISTER_Request_IMS :=
- {
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000,
- route := p_route
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000
- },
- messageBody := p_mb
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := m_Event_reg,
- expires := m_Expires_600000
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event) modifies m_SUBSCRIBE_Request_Base :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E,
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- event := p_event,
- expires := m_Expires_600000
- }
- }
- template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
- {
- msgHeader :=
- {
- fromField := p_from
- }
- }
-
-}//end group request_send
-
-group request_receive {
-
- template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
- modifies mw_ACK_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template ACK_Request mw_ACK_Request_PchargingVector (template CallId p_callId, template PChargingVector p_pChargingVector)
- modifies mw_ACK_Request_Base
- :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies mw_BYE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies mw_BYE_Request_Base
- :=
- {
- msgHeader := {pChargingVector := p_pChargingVector,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := omit}
- }
- template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pChargingFunctionAddresses := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- acceptContact := p_acceptContact
- }
- }
-
- template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {recordRoute := p_recordRoute,
- via := p_via}
- }
-
- template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {route := p_route}
- }
-
- template INVITE_Request mw_INVITE_Request_require (
- template Require p_require
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { require := p_require }
- }
-
- template INVITE_Request mw_INVITE_Request_supported (
- template Supported p_supported
- ) modifies mw_INVITE_Request_Base := {
- msgHeader := { supported := p_supported }
- }
-
- template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {sessionExpires := p_sessionExpires}
- }
-
- template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
- }
-
- template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- }
- }
- template INVITE_Request mw_INVITE_Request_IMS_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_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- pChargingVector := p_pChargingVector,
- recordRoute := p_recordRoute,
- route := p_route,
- via := p_via
- },
- messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
- mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
- }
-
- /*
- *
- * @desc Await INVITE using topology hiding
- */
- template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- /*
- *
- * @desc Await INVITE without PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { fromField := p_from,
- pAssertedID := omit,
- pPreferredID := omit}
- }
-
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- fromField := p_from,
- pAssertedID := p_pAssertedID,
- privacy := p_privacy ifpresent}
- }
-
- /*
- *
- * @desc Await INVITE with PAsserted and Privacy
- */
- template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {
- historyInfo := p_historyInfo}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingFunctionAddresses := omit,
- pChargingVector := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := {pAssertedID := p_pAssertedID,
- pPreferredID := omit
- }
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template charstring p_id, template charstring p_paramValue)
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pChargingVector := mw_pChargingVector(p_id,p_paramValue)}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization
- modifies mw_MESSAGE_Request_Base
- :=
- {
- msgHeader := { pMediaAuthorization := omit}
- }
-
- template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
- {
- msgHeader := { pChargingVector := p_pChargingVector}
- }
-
- template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := ?,
- path := p_Path,
- pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
- pVisitedNetworkID := p_pVisitedNetworkID,
- require := mw_require_path,
- securityClient := omit,
- securityVerify := omit
- }
- }
-
-
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization
- }
- }
-
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := p_authorization,
- securityClient := omit
- }
- }
- template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { securityVerify := omit,
- securityClient := omit
- }
- }
-
- template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
- modifies mw_REGISTER_Request_Base
- :=
- {
- msgHeader := { authorization := ?
- }
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
- template From p_from,
- 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
- }
- }
-
- template NOTIFY_Request mw_NOTIFY_Request(
- template CallId p_callId,
- template charstring p_state,
- template charstring p_contentType,
- template Event p_event,
- template MessageBody p_mb
- ) modifies mw_NOTIFY_Request_Base := {
- msgHeader :=
- {
- subscriptionState := mw_subscriptionState(p_state),
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
- event := p_event
- },
- messageBody := p_mb
- }
-
-}//end group request_receive
-group response_send
-{
- template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit
- }
- }
-
- template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- maxForwards := omit//,
- //recordRoute := p_recordRoute
- }
- }
-
- template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- //contact := p_contact,
- //maxForwards := omit,
- //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_AlertInfo (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- AlertInfo p_alertInfo
- ) modifies m_Response_Base:= {
- msgHeader :=
- {
- alertInfo := p_alertInfo
- }
- }
-
- template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
-
- template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- historyInfo := p_historyInfo,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- }
- }
-
- template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- 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 ) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- require := p_require,
- rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- historyInfo := p_historyInfo,
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
- modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- maxForwards := omit,
- recordRoute := p_recordRoute//for INVITE response
- },
- messageBody := p_mb
- }
-
- template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb, 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, integer p_cause) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- contact := p_contact,
- maxForwards := omit,
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
- {
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
-}//end group response_send
-
-group response_receive
-{
-
- template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- messageBody := {
- sdpMessageBody := ?
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingFunctionAddresses := omit,
- pChargingVector := omit
- }
- }
-
-
- template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAccessNetworkInfo := omit
- }
- }
-
- template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pMediaAuthorization := omit
- }
- }
-
- template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- securityServer := ?,
- wwwAuthenticate := ?
- }
- }
-
- template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- wwwAuthenticate := p_wwwAuthenticate
- }
- }
-
- template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
- path := ?,
- serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
- pChargingFunctionAddresses := ?,
- pChargingVector := ?,
- contact := p_contact
- }
- }
-
- template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- pPreferredID := p_pPreferredID
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- historyInfo := p_historyInfo
- }
- }
-
- template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
- }
- }
-
-} // end response_receive
-
-}//end modified_templates
-
-}//end Message_templates
-
-} // end module LibIms_Templates
/tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_PIXITS.ttcn (revision 97)
+++ tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_PIXITS.ttcn (nonexistent)
@@ -1,602 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_PIXITS
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_TextStrings all;
- import from LibCommon_DataStrings all;
-
-group SUT {
-
-group SUT_UE {
- modulepar {
- /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
- */
- 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
- */
- integer PX_IMS_SUT_UE_PORT := 5060;
- }//end modulepar
-}//end group SUT_UE1
-group SUT_UE1 {
- modulepar {
- /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF1_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
- */
- 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
- */
- charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE1 local domain
- */
- charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE1 local user
- */
- charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3-2-2 username of UE1
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
- */
- charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE1
- */
- charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
-
- /** @desc charstring for UE1 display name
- */
- charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
- }
-} // end group SUT_UE1
-
-group SUT_UE2 {
- modulepar {
- /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF2_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
- */
- 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
- */
- charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE2 local user
- */
- charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE2
- */
- charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE2
-
-group SUT_UE3 {
- modulepar {
- /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF3_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
- */
- 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
- */
- charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE3 local user
- */
- charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE2
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE3_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE3
- */
- charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
- }
-} // end group SUT_UE3
-
-group SUT_UE4 {//UE4 can be used as UE1Visited
- modulepar {
- /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
- */
- 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
- */
- integer PX_IMS_SUT_PCSCF4_PORT := 5060;
-
- /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
- */
- 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
- */
- charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
-
- /** @desc charstring for identity of the tester UE2 local domain
- */
- charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
-
- /** @desc charstring for identity of the tester UE4 local user
- */
- charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
-
- /** @desc charstring for RFC 2617 3.2.2 username of UE4
- * The name of user in the specified realm
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
- */
- charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 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.
- */
- charstring PX_IMS_SUT_UE4_QOP := "auth";
-
- /** @desc charstring for home(SUT) REGISTRAR domain of UE4
- */
- 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{
- modulepar {
- /** @desc charstring for identity of emergency service local domain
- */
- charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
-
- /** @desc charstring for identity of the emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
-
- /** @desc charstring for identity of the invalid emergency service
- */
- charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
- }
-}// end group EMERGENCY service
-
-group SUT_IBCF {
- modulepar {
- /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
-
- /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF1_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF1 domain
- */
- charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
-
- /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
-
- /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IBCF2_PORT := 5060;
-
- /** @desc charstring for SUT/IBCF2 domain
- */
- charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
- }
-} // end group SUT_IBCF
-group SUT_PCSCF {
- modulepar {
- /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
-
- /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_PCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/P-CSCFdomain
- */
- charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
-
- /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
- */
- 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)
- */
- charstring PX_IMS_SUT_PCSCF_MinSE := "100";
- }
-} // end group SUT_PCSCF
-group SUT_SCSCF {
- modulepar {
- /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
-
- /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_SCSCF_PORT := 5060;
-
- /** @desc charstring for SUT/S-CSCFdomain
- */
- charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
-
- /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
- */
- charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
- }
-} // end group SUT_SCSCF
-
-group SUT_ICSCF {
- modulepar {
- /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
-
- /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_ICSCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-CSCFdomain
- */
- charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
- }
-} // end group SUT_ICSCF
-
-group SUT_AS {
- modulepar {
- /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
- */
- 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
- */
- integer PX_IMS_SUT_AS_PORT := 5060;
-
- /** @desc charstring for SUT/AS domain
- */
- charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
-
- }//end modulepar
-}//end group SUT_UE1
-
-group SUT_IMGCF {
- modulepar {
- /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
-
- /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
- */
- integer PX_IMS_SUT_IMGCF_PORT := 5060;
-
- /** @desc charstring for SUT/I-MGCFdomain
- */
- charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
- }
-} // end group SUT_IMGCF
-
-group SUT_CONF {
- modulepar {
- /**
- * @desc
- * charstring for SUT/conference IP address to exchange SIP messages
- */
- charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
- /**
- * @desc integer for SUT/conference port number to exchange SIP messages
- */
- integer PX_IMS_SUT_CONF_PORT := 5060;
- /**
- * @desc charstring for SUT/conference domain
- */
- charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
- /**
- * @desc charstring for conference factory URI name
- */
- charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
- };
-
-} // end group SUT_CONF
-
-} // end group SUT
-group TS {
-group TS_UE1 {
- modulepar {
- /** @desc charstring for IP address used by the UE1 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
-
- /** @desc integer for port number used by the UE1 to exchange SIP messages
- */
- integer PX_IMS_TS_UE1_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE1
-
-group TS_UE2 {
- modulepar {
- /** @desc charstring for IP address used by the UE2 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
-
- /** @desc integer for port number used by the UE2 to exchange SIP messages
- */
- integer PX_IMS_TS_UE2_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE2
-
-group TS_UE3 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE3_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE3
-
-group TS_UE4 {
- modulepar {
- /** @desc charstring for IP address used by the UE3 to exchange SIP messages
- */
- charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
-
- /** @desc integer for port number used by the UE3 to exchange SIP messages
- */
- integer PX_IMS_TS_UE4_PORT := 5060;
-
- /** @desc charstring for visited(TS) REGISTRAR domain
- */
- charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
- }
-} // end group TS_UE4
-
-group TS_IBCF {
- modulepar {
- /** @desc charstring for TS/IBCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
-
- /** @desc integer for TS/IBCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_IBCF_PORT := 5060;
-
- /** @desc charstring for TS/IBCF domain
- */
- charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
- }
-} // end group TS_IBCF
-
-group TS_ICSCF {
- modulepar {
- /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
-
- /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ICSCF_PORT := 5060;
-
- /** @desc charstring for TS/I-CSCF domain
- */
- charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
- }
-} // end group TS_ICSCF
-
-group TS_PCSCF {
- modulepar {
- /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
-
- /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_PCSCF_PORT := 5060;
-
- /** @desc charstring for TS/P-CSCFdomain
- */
- charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
- }
-} // end group TS_PCSCF
-
-group TS_SCSCF {
- modulepar {
- /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/S-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_SCSCF_PORT := 5060;
-
- /** @desc charstring for TS/S-CSCFdomain
- */
- 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
- */
- charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
-
- /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
- */
- 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
- */
- 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 **
- */
- charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
- }
-} // end group TS_SCSCF
-
-group TS_ECSCF {
- modulepar {
- /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
-
- /** @desc integer for TS/E-CSCF port number to exchange SIP messages
- */
- integer PX_IMS_TS_ECSCF_PORT := 5060;
-
- /** @desc charstring for TS/E-CSCFdomain
- */
- charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
- }
-} // end group TS_ECSCF
-
-group TS_IMS1user {
- modulepar {
- /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
- */
- charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
-
- /** @desc charstring for TS/domain
- */
- charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
- }
-} // end group TS_IMS1user
-
-group TS_ISUPuser {
- modulepar {
- /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
- */
- charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
-
- /** @desc charstring for ISUP TS/domain or IPAddres
- */
- charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
- }
-} // end group TS_ISUPuser
-
-
-group TS_AS {
- modulepar {
- /** @desc charstring for TS/AS1 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
-
- /** @desc integer for TS/AS1 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS1_PORT := 5060;
-
- /** @desc charstring for TS/AS1 domain
- */
- charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
-
- /** @desc charstring for TS/AS2 IP address to exchange SIP messages
- */
- charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
-
- /** @desc integer for TS/AS2 port number to exchange SIP messages
- */
- integer PX_IMS_TS_AS2_PORT := 5060;
-
- /** @desc charstring for TS/AS2 domain
- */
- charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
- }
-} // end group TS_AS
-} // end group TS
-} // end module LibIms_PIXITS
/tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Interface.ttcn (revision 97)
+++ tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Interface.ttcn (nonexistent)
@@ -1,42 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibIms_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
- {
-
- //Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
- type component ImsComponent extends SipComponent
- {
- // general variables
- var ImsInterfaceProfile vc_interfaceprofile
- } // end ImsComponent
-
-// type address WorkaroundAddress; //Remove it later
- }// end group AdressTypes
-
-
-
-
-} // end module LibIms_TestSystem
/tags/TAG_V003_LibIms_2009_week49/ttcn/LibIms_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: tags/v1.1.0/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/v1.1.0/ttcn/LibIms_Steps.ttcn (nonexistent)
+++ tags/v1.1.0/ttcn/LibIms_Steps.ttcn (revision 98)
@@ -0,0 +1,1073 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests.
+ */
+
+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;
+ //LibIms
+ import from LibIms_Templates all;
+ import from LibIms_Interface all;
+ import from LibIms_PIXITS all;
+ import from LibIms_SIPTypesAndValues all;
+
+ group externalfunctions {
+ }
+ 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
+
+ LibSip_Steps.f_setHeadersBYE(p_cSeq_s);
+
+ }// end f_setHeadersBYE
+
+ /**
+ *
+ * @desc sets headers for forward request from AS in case if AS acts as Proxy
+ */
+ function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var Request v_request;
+ v_request := vc_request;
+
+ vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
+
+ }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ if (ispresent(v_response.msgHeader.recordRoute)) {
+ vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
+ }
+ }// 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 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
+ {
+ 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_setHeadersNOTIFY(p_cSeq_s);
+
+ }// end f_setHeadersNOTIFY
+
+ /**
+ **
+ * @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 on terminating side
+ * @param p_cSeq_s current cSeq
+ */
+ function f_setHeadersReINVITE (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+ vc_to := vc_caller_To;
+
+ vc_from := vc_caller_From;
+
+ }// end function f_setHeadersReINVITE
+
+ /**
+ * @desc sets headers for ReINVITE method on terminating side
+ * @param p_cSeq_s current cSeq
+ */
+ function f_setHeadersReINVITE_ (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+ vc_to := vc_callee_To;
+
+ vc_from := vc_callee_From;
+
+ //vc_requestUri := f_initSipUrl(p_to_user); //bpin need to be implemeted// Request URI of Invite is identical with To header
+
+ }// 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,
+ userInfo := omit,
+ hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
+ urlParameters := omit,
+ headers := omit
+ };
+
+ vc_reqHostPort := vc_requestUri.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 {
+ }
+ 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
+ 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_TS_UE1_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.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
+ 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.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_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.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.homeDomain := PX_IMS_TS_IMS1UE_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.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
+ }
+
+ // 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.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.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
+ 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_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
+ }
+
+ 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
+ }
+
+ }
+ }
+
+ 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 p_sipUrl := {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := omit,
+ urlParameters := omit,
+ headers := omit};
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE2atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE3atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE4atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_IBCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ICSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_SCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ISUP) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY_INVALID) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+
+ // following setting is used for the assignment of the Path header field
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.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) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_conferenceProfile_factoryURI) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
+ }
+ };
+ return(p_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 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();
+ 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
+ {
+
+ //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))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}};
+ 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)));
+
+ }//end function f_awaitingRegistration_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
+ {
+ //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));
+
+ }
+
+ /*
+ *
+ * @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, inout CSeq p_cSeq_s, template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ //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);
+
+ f_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact));
+ }
+
+ /*
+ *
+ * @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, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+
+ //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_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact));
+ }
+
+ } // 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();
+ }
+
+ 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
+ {
+ //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))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ 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)));
+
+ f_terminate_component()
+ };
+
+ function f_IMS_postamble_awaitDeRegistration () runs on ImsComponent
+ {
+ //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))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ 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)));
+
+ f_terminate_component()
+ };
+
+ 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
+ {
+ // 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) runs on ImsComponent
+ {
+ // 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
+ }
+ } // end function f_terminateCall_UE
+
+ }
+ group defaults {
+ }
+} // module LibIms_Steps
/tags/v1.1.0/ttcn/LibIms_Steps.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.1.0/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/v1.1.0/ttcn/LibIms_Templates.ttcn (nonexistent)
+++ tags/v1.1.0/ttcn/LibIms_Templates.ttcn (revision 98)
@@ -0,0 +1,2868 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_Templates
+{
+ //LibCommon
+ import from LibCommon_DataStrings all;
+
+ //LibSip
+ import from LibSip_SIPTypesAndValues all;
+ import from LibSip_SDPTypes all;
+ import from LibSip_Templates all;
+ import from LibSip_Steps all;
+ import from LibSip_PIXITS all;
+ import from LibSip_XMLTypes all;
+ import from XSDAUX all;
+
+ //LibIms
+ import from LibIms_SIPTypesAndValues all;
+
+ import from LibIms_PIXITS all;
+
+ template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+";
+
+ template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) :=
+ {
+ displayName := *,
+ addrSpec := {
+ scheme := "sip:",
+ userInfo := *,
+ hostPort := {p_host, p_port},
+ urlParameters := *,
+ headers := *
+ }
+ }
+
+ template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
+
+group Subfields{
+
+ template SemicolonParam_List mw_semicolonParams_realm (template charstring p_realm) :=
+ ?; //superset({"realm",p_realm},{"rand",?},{"autn",?},{"algorithm","AKAv1-MD5"},{"ik",?},{"ck",?}) // ERROR HERE! Superset operation must contain value list - no templates!
+
+ template SemicolonParam_List m_semicolonParams_language (template charstring p_language):=
+ {{"language",p_language}}
+
+ template SemicolonParam_List mw_semicolonParams_language (template charstring p_language):=
+ {{"language",p_language}}
+
+ template SemicolonParam_List m_semicolonParams_isub (template charstring p_address):=
+ {{"isub",p_address}}
+}
+
+group HeaderFieldTemplates{
+
+ template MinSE m_minSE(DeltaSec p_ds):=
+ {
+ fieldName := MIN_SE_E,
+ deltaSec:=p_ds,
+ minSeParam:=omit
+ }
+
+ template PathValue m_pathvalue (SipUrl p_sipUrl):=
+ {
+ nameAddr := {displayName := omit, // optional charstring
+ addrSpec := p_sipUrl // SipUrl
+ },
+ rrParam := omit
+ }
+
+ template Path m_path (SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {
+ {nameAddr := {
+ displayName := omit, // optional charstring
+ addrSpec := p_sipUrl // SipUrl
+ },
+ 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 (SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {*,m_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_fixedValue(charstring p_homeDomain) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {{id:="icid-value", paramValue :="123abc"},
+ {id:="icid-generated-at", paramValue :="192.1.1.10"},
+ {id:="orig-ioi", paramValue := p_homeDomain}}
+ };
+ template PChargingVector m_pChargingVector_fixedValue1(charstring p_homeDomain) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {
+ {id:="icid-generated-at", paramValue :="192.1.1.10"},
+ {id:="orig-ioi", paramValue := p_homeDomain}}
+ };
+
+ template PChargingVector mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
+ };
+
+ template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
+ {
+ fieldName := P_MEDIA_AUTHORIZATION_E,
+ pMediaAuthorizations := {"A"} // example
+ };
+
+
+ template PEarlyMedia m_pEarlyMedia_sup :=
+ {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
+
+
+ template ProxyRequire m_proxyRequire_secAgree :=
+ {
+ fieldName := PROXY_REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template PVisitedNetworkID mw_pVisitedNetworkID :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
+ genericParams := *}}
+ }
+
+ template RecordRoute m_recordRoute_notmatching:=
+ {
+ fieldName := RECORD_ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template Require m_require_secAgree :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template Require mw_require_path :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := superset("path")
+ };
+
+ template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
+ {
+ fieldName := ROUTE_E,
+ routeBody := {{nameAddr := {displayName := omit,
+ addrSpec := {scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := {host:=p_interfaceprofile.SUTIpaddr, portField:= p_interfaceprofile.SUTPort},
+ urlParameters := omit,
+ headers := omit}
+ },
+ rrParam := omit}
+ }};
+
+ template Route m_route_notmatching:=
+ {
+ fieldName := ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template SessionExpires m_se(DeltaSec p_ds):=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=p_ds,
+ seParam:=omit
+ }
+
+ template SessionExpires mw_se:=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=?,
+ seParam:=omit
+ }
+
+ template Supported m_supported_timer:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"timer"}
+ }
+
+
+ template Supported m_supported_fromChange:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"from-change"}
+ }
+
+ template To m_To_targetRefreshRequest(template To p_To) :=
+ {
+ fieldName := TO_E,
+ addressField :=
+ {nameAddr := {
+ displayName := p_To.addressField.nameAddr.displayName,
+ addrSpec := p_To.addressField.nameAddr.addrSpec
+ }},//end addressField
+ toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
+ };
+
+ template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
+ {
+ sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
+ sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
+ viaParams:={{id :=c_branchId,paramValue :=branch_val}}
+ }
+
+ template Via m_via_notmatching:=
+ {
+ fieldName := VIA_E,
+ viaBody :=
+ {{
+ sentProtocol := valueof(m_SentProtocol("UDP")),
+ sentBy:={host:="unknown.domain.name", portField:= 10000},
+ viaParams:={{id :=c_branchId,paramValue :="abcd0000"}}
+ } }
+ };
+
+ /*
+ * @desc WWW-Authenticate header field
+ * @param p_challenge value
+ */
+ template WwwAuthenticate m_wwwAuthenticate (Challenge p_challenge):=
+ {
+ fieldName := WWW_AUTHENTICATE_E,
+ challenge := p_challenge
+ }
+
+ /*
+ * @desc WWW-Authenticate header field
+ * @param p_challenge value
+ */
+ template WwwAuthenticate mw_wwwAuthenticate (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := WWW_AUTHENTICATE_E,
+ challenge :=
+ {digestCln := p_semicolonParam_List // set of GenericParam
+ }
+ }
+
+
+
+ /*
+ * @desc AcceptContact header field
+ * @param p_acValues value
+ */
+ template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ /*
+ * @desc Authenticate header field
+ * @param p_challenge value
+ */
+ template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues :=
+ {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ template SubscriptionState mw_subscriptionState(template charstring p_state) := {
+ fieldName := SUBSCRIPTION_STATE_E,
+ subState := p_state,
+ substateParams := omit
+ }
+
+} // end group HeaderFieldTemplates
+
+group MessageBodyTemplates {
+
+group XMLTemplates {
+
+ template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+ {
+ icb := p_icb
+ };
+
+ template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+ {
+ ocb := p_ocb
+ };
+
+ template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+ template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+ template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) :=
+ {
+ resourceLists := p_resourceLists
+ };
+
+}// end group XMLTemplates
+
+group ACR_CBTemplates {
+
+ template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
+ {
+ ruleset_icb := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
+ {
+ ruleset_ocb := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
+ {
+ id := "rule66",
+ conditions := p_condition,
+ actions := {bool := false},
+ transformations := omit
+ }
+
+ template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
+ choice := {{
+ identity := {{
+ choice := {{
+ one := {
+ id := p_id,
+ scheme := p_scheme,
+ any_1 := omit
+ }
+ }}
+ }}
+ }}
+ }
+
+
+
+
+} //end group ACR_CBTemplates
+
+group CUGTemplates {
+
+ template Cug m_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator :=p_cci
+ }
+
+ template Cug mw_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator := p_cci
+ }
+
+ template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+// outgoingAccessRequest := p_outAccessRequest,
+// cugIndex := p_cugIndex
+//TODO: workaround for ttwb118
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := valueof(p_cugIndex)
+ }
+
+ template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+}//end group CUGTemplates
+
+group MCIDTemplates {
+
+ template Mcid m_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := bit2str('1'B)}
+ }
+ }
+
+ template Mcid m_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('1'B)}
+ }
+ }
+
+} //end group MCIDTemplates
+
+group PSTNTemplates {
+
+ template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi},
+ Display := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi, p_pi2},
+ Display := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template ProgressIndicatorType p_pi3,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi, p_pi2, p_pi3},
+ Display := {p_d}
+ }
+
+ template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {*, *},
+ LowLayerCompatibility := *,
+ ProgressIndicator := {*},
+ Display := {*}
+ }
+
+
+ template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
+ BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ BCoctet4_1 := omit,
+ BCoctet5 := omit,
+ BCoctet5a := omit,
+ BCoctet5bV110 := omit,
+ BCoctet5bV120 := omit,
+ BCoctet5c := omit,
+ BCoctet5d := omit,
+ BCoctet6 := omit,
+ BCoctet7 := omit,
+ BCoctet7a := omit,
+ BCoctet7b := omit
+ }
+
+ template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
+ ProgressOctet3 := {CodingStandard := bit2str('00'B),
+ Location := bit2str('0000'B)
+ },
+ ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)}
+ }
+
+ template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
+ LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ LLOctet3a := omit,
+ LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ LLOctet4_1 := omit,
+ LLOctet5 := omit,
+ LLOctet5a := omit,
+ LLOctet5bV110 := omit,
+ LLOctet5bV120 := omit,
+ LLOctet5c := omit,
+ LLOctet5d := omit,
+ LLOctet6 := omit,
+ LLOctet6aHDLC := omit,
+ LLOctet6aUserSpecific := omit,
+ LLOctet6b := omit,
+ LLOctet7 := omit,
+ LLOctet7aUserSpecific := omit,
+ LLOctet7aX25 := omit,
+ LLOctet7bX25 := omit,
+ LLOctet7c := omit,
+ LLOctet7aTR9577 := omit,
+ LLOctet7bTR9577 := omit
+ }
+
+ template HighLayerCompatibilityType m_HighLayerCompatibilityType
+ (Bit7 p_HLOctet4):= {
+ HLOctet3 := {
+ CodingStandard :=bit2str('00'B),
+ Interpretation :=bit2str('100'B),
+ PresentationMethod := bit2str('01'B)
+ },
+ HLOctet4 := {
+ HighLayerCharacteristics := bit2str(p_HLOctet4)
+ },
+ HLOctet4aMaintenance := omit,
+ HLOctet4Audio := omit
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
+ BCoctet3 := p_BCOctet3Type,
+ BCoctet4 := p_BCOctet4Type,
+ BCoctet4_1 := * ,
+ BCoctet5 := * ,
+ BCoctet5a := * ,
+ BCoctet5bV110 := * ,
+ BCoctet5bV120 := * ,
+ BCoctet5c := * ,
+ BCoctet5d := * ,
+ BCoctet6 := * ,
+ BCoctet7 := * ,
+ BCoctet7a := * ,
+ BCoctet7b := *
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
+ BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ BCoctet4_1 := * ,
+ BCoctet5 := * ,
+ BCoctet5a := * ,
+ BCoctet5bV110 := * ,
+ BCoctet5bV120 := * ,
+ BCoctet5c := * ,
+ BCoctet5d := * ,
+ BCoctet6 := * ,
+ BCoctet7 := * ,
+ BCoctet7a := * ,
+ BCoctet7b := *
+ }
+
+ template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
+ ProgressOctet3 := p_ProgressOctet3Type,
+ ProgressOctet4 := p_ProgressOctet4Type
+ }
+
+ template LowLayerCompatibilityType mw_LowLayerCompatibilityType
+ (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
+ LLOctet3 := p_LLOctet3,
+ LLOctet3a := * ,
+ LLOctet4 := p_LLOctet4,
+ LLOctet4_1 := * ,
+ LLOctet5 := * ,
+ LLOctet5a := * ,
+ LLOctet5bV110 := * ,
+ LLOctet5bV120 := * ,
+ LLOctet5c := * ,
+ LLOctet5d := * ,
+ LLOctet6 := * ,
+ LLOctet6aHDLC := * ,
+ LLOctet6aUserSpecific := * ,
+ LLOctet6b := * ,
+ LLOctet7 := p_LLOctet7,
+ LLOctet7aUserSpecific := * ,
+ LLOctet7aX25 := * ,
+ LLOctet7bX25 := * ,
+ LLOctet7c := * ,
+ LLOctet7aTR9577 := * ,
+ LLOctet7bTR9577 := *
+ }
+
+ template HighLayerCompatibilityType mw_HighLayerCompatibilityType
+ (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
+ HLOctet3 := p_HLOctet3,
+ HLOctet4 := p_HLOctet4,
+ HLOctet4aMaintenance := *,
+ HLOctet4Audio := *
+ }
+
+} //end group PSTNTemplates
+
+group CDIVNTemplates {
+
+ /* general CDIVN subscription */
+ template Comm_div_info m_CDIVN_sub := {
+ entity := ?,
+ comm_div_subs_info := {
+ anyAttributes := omit,
+ comm_div_selection_criteria := {
+ anyAttributes := ?,
+ originating_user_selection_criteria := omit,
+ diverting_user_selection_criteria := omit,
+ diverted_to_user_selection_criteria := omit,
+ diversion_time_selection_criteria := omit,
+ diversion_reason_selection_criteria := omit,
+ any_1 := omit
+ },
+ comm_div_ntfy_trigger_criteria := omit,
+ comm_div_info_selection_criteria := omit,
+ any_1 := omit
+ },
+ comm_div_ntfy_info := omit,
+ any_1 := omit
+ }
+
+
+} // end grouup CDIVNTemplates
+
+group ResourceListsTemplates {
+ template Resource_lists m_ResourceList_2Users(
+ EntryType p_user1,
+ EntryType p_user2
+ ) := {
+ list := {
+ {
+ name := omit,
+ anyAttributes := omit,
+ display_name := omit,
+ seq_1 := {
+ {
+ list := omit,
+ external_ := omit,
+ entry := p_user1,
+ entry_Ref := omit
+ },
+ {
+ list := omit,
+ external_ := omit,
+ entry := p_user2,
+ entry_Ref := omit
+ }
+ },
+ any_1 := omit
+ }
+ }
+ }
+
+ template EntryType m_EntryUser(SipUrl p_user) := {
+ display_name := omit,
+ uri :=
+ p_user.userInfo.userOrTelephoneSubscriber & "@" &
+ p_user.hostPort.host,
+ any_1 := omit,
+ anyAttributes := omit
+ }
+}// end grouup ResourceListsTemplates
+
+group Ims3gppTemplates {
+ template Ims_3gpp mw_Ims_3gpp_CW := {
+ version := 1.0,
+ anyAttributes := ?,
+ choice_1 := {
+ alternative_service := {
+ anyAttributes := ?,
+ type_ := ?,
+ reason := ?,
+ action_ := {
+ anyAttributes := ?,
+ emergency_registration := *,
+ call_waiting_indication := {},
+ any_1 := *
+ },
+ any_1 := *
+ }
+ },
+ any_1 := *
+ }
+} // end group Ims3gpp
+
+group CONFTemplates {
+ template booleanXSD boolXSD_true:={bool:=true}
+ template booleanXSD boolXSD_false:={bool:=false}
+
+ template anyAttributes m_emptyAnyAttributes:={}
+
+ template Media_type m_mediatype_status(template Media_status_type p_status):= {
+ id:="1",
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text :=omit,
+ type_ :=omit,
+ label_ :=omit,
+ src_id:=omit,
+ status:= p_status,
+ any_1:=omit
+ }
+
+ template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template Media_type p_mediastatus):= {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ referred:=omit,
+ status:=p_epStatus,
+ joining_method:=p_joinMethod,
+ joining_info:=omit,
+ disconnection_method:=omit,
+ disconnection_info:=omit,
+ media:={p_mediastatus},// optional,
+ call_info:=omit,
+ any_1:=omit
+ }
+
+ template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ associated_aors:=omit,
+ roles:=omit,
+ languages :=omit,
+ cascaded_focus :=omit,
+ endpoint:={p_endpoint},// optional,
+ any_1:=omit
+ }
+
+ template Users_type m_users_1user_full(template User_type p_user):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user},
+ any_1:=omit
+ }
+
+ template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user1,p_user2},
+ any_1:=omit
+ }
+
+ template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ user_count:=p_nUsers,
+ active:=p_active,
+ locked:=p_locked,
+ any_1 := omit
+ }
+
+ template Conference_info m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
+ entity := p_cUri,
+ state := full,
+ version := 1,
+ anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
+ conference_description := omit,
+ host_info := omit,
+ conference_state := p_cState,
+ users := p_users,
+ sidebars_by_ref := omit,
+ sidebars_by_val := omit,
+ any_1 := omit
+ }
+
+ template Conference_info mw_conferenceInfo_active := {
+ entity := ?,
+ state := *,
+ version := *,
+ anyAttributes := ?,
+ conference_description := *,
+ host_info := *,
+ conference_state := ?,
+ users := {
+ state := ?,
+ anyAttributes := ?,
+ user := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := *,
+ display_text := *,
+ associated_aors := *,
+ roles := *,
+ languages := *,
+ cascaded_focus := *,
+ endpoint := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := ?,
+ display_text := *,
+ referred := *,
+ status := connected,
+ joining_method := dialed_in,
+ joining_info := *,
+ disconnection_method := *,
+ disconnection_info := *,
+ media := *,
+ call_info := *,
+ any_1 := *
+ }
+ },
+ any_1 := *
+ }
+ },
+ any_1 := omit
+ },
+ sidebars_by_ref := *,
+ sidebars_by_val := *,
+ any_1 := *
+ }
+}
+
+} // end group MessageBodyTemplates
+
+group MessageTemplates {
+
+group modified_templates {
+
+group request_send {
+
+ template BYE_Request m_BYE_Request_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_Reason_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UserToUser_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, template charstring p_U2UData)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route,
+ userToUser := m_UserToUserData(p_U2UData)
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UE
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ },
+ messageBody := p_mb
+ }
+
+ template INFO_Request m_INFO_Request_Xml_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_Allow_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ allow := p_allow
+ }
+ }
+
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template HistoryInfo p_historyInfo)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template PAssertedID p_pAssertedID, template Privacy p_privacy )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ acceptContact := p_acceptContact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAssertedService_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ pAssertedService := p_pAssertedService
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ pEarlyMedia := m_pEarlyMedia_sup,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID,
+ privacy := p_privacy
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_SessionExpires_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ sessionExpires := p_se
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_minSE_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_minSE_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_User2UserData_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ }
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingVector_fixedValue(PX_IMS_SUT_UE1_HOME_DOMAIN),
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PCharging_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported,
+ template PChargingVector p_pChargingVector)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := p_pChargingVector,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PMediaAuth_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pMediaAuthorization := m_pMediaAuthorization_fixedValue,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PPreferred_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported, template PPreferredID p_pPreferredID)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pPreferredID := p_pPreferredID,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_1300Bytes_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_TextPlainLength(valueof(m_MBody_longPlainText))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := m_MBody_longPlainText
+ }
+
+ template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_NOTIFY_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
+ event := {fieldName:=EVENT_E, eventType:="conference",eventParams:=omit},
+ subscriptionState:={fieldName:=SUBSCRIPTION_STATE_E, subState:="active",substateParams:=omit},
+ expires:={fieldName:=EXPIRES_E, deltaSec:="3600"}
+
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc REFER message exchanged at Mw
+ *
+ */
+ template REFER_Request m_REFER_Request_IMS(
+ SipUrl p_requestUri,
+ CallId p_callId,
+ CSeq p_cSeq,
+ Contact p_contact,
+ From p_from,
+ template To p_to,
+ Via p_via,
+ template ReferTo p_referTo,
+ template ReferredBy p_referredBy,
+ template Require p_require,
+ template Route p_route,
+ template RecordRoute p_recordRoute,
+ template Supported p_supported,
+ template PChargingVector p_pChargingVector,
+ template MessageBody p_mb
+ ) modifies m_REFER_Request_Base := {
+ msgHeader := {
+ contentLength := {
+ fieldName := CONTENT_LENGTH_E,
+ len:= f_MessageBodyLength(valueof(p_mb))
+ },
+ contentType := {
+ fieldName := CONTENT_TYPE_E,
+ mediaType := c_sdpAplication
+ },
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
+ template ProxyRequire p_proxyRequire, template Require p_require,
+ template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ proxyRequire := p_proxyRequire,
+ require := p_require,
+ securityClient := p_securityClient,
+ securityVerify := p_securityVerify,
+ supported := p_supported,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+
+
+ template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+ template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
+ modifies m_REGISTER_Request_IMS :=
+ {
+ msgHeader :=
+ {
+ expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) 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
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000
+ },
+ messageBody := p_mb
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := p_event,
+ expires := m_Expires_600000
+ }
+ }
+ template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
+ {
+ msgHeader :=
+ {
+ fromField := p_from
+ }
+ }
+
+}//end group request_send
+
+group request_receive {
+
+ template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
+ modifies mw_ACK_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template ACK_Request mw_ACK_Request_PchargingVector (template CallId p_callId, template PChargingVector p_pChargingVector)
+ modifies mw_ACK_Request_Base
+ :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies mw_BYE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies mw_BYE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingVector := p_pChargingVector,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit}
+ }
+ template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := ?}
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ acceptContact := p_acceptContact
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {recordRoute := p_recordRoute,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {route := p_route}
+ }
+
+ template INVITE_Request mw_INVITE_Request_require (
+ template Require p_require
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { require := p_require }
+ }
+
+ template INVITE_Request mw_INVITE_Request_supported (
+ template Supported p_supported
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { supported := p_supported }
+ }
+
+ template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {sessionExpires := p_sessionExpires}
+ }
+
+ template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS_mb (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := ?
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS_cug (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template Cug p_cug ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_CUG(p_cug)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug)))
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
+ }
+
+ /*
+ *
+ * @desc Await INVITE using topology hiding
+ */
+ template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ /*
+ *
+ * @desc Await INVITE without PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { fromField := p_from,
+ pAssertedID := omit,
+ pPreferredID := omit}
+ }
+
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy ifpresent}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ historyInfo := p_historyInfo}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template CallId p_callId,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 (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pMediaAuthorization := omit}
+ }
+
+ template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := ?,
+ path := p_Path,
+ pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
+ pVisitedNetworkID := p_pVisitedNetworkID,
+ require := mw_require_path,
+ securityClient := omit,
+ securityVerify := omit
+ }
+ }
+
+
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization,
+ securityClient := omit
+ }
+ }
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { securityVerify := omit,
+ securityClient := omit
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := omit
+ }
+ }
+
+ template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
+ template From p_from,
+ To p_to,
+ template PAssertedID p_pAssertedID,
+ template PChargingVector p_pChargingVector
+ ) modifies mw_SUBSCRIBE_Request_Base := {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E
+ },
+ msgHeader :=
+ { fromField := p_from,
+ toField := p_to,
+ event := m_Event_reg,
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pChargingVector := p_pChargingVector
+ }
+ }
+
+ template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
+ {
+ msgHeader :=
+ {
+ fromField := p_from
+ }
+ }
+
+ template NOTIFY_Request mw_NOTIFY_Request(
+ template CallId p_callId,
+ template charstring p_state,
+ template charstring p_contentType,
+ template Event p_event,
+ template MessageBody p_mb
+ ) modifies mw_NOTIFY_Request_Base := {
+ msgHeader :=
+ {
+ subscriptionState := mw_subscriptionState(p_state),
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
+ event := p_event
+ },
+ messageBody := p_mb
+ }
+
+}//end group request_receive
+group response_send
+{
+ template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ maxForwards := omit//,
+ //recordRoute := p_recordRoute
+ }
+ }
+
+ template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ //maxForwards := omit,
+ //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_AlertInfo (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ AlertInfo p_alertInfo
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ alertInfo := p_alertInfo
+ }
+ }
+
+ template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ historyInfo := p_historyInfo,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingFunctionAddresses_fixedValue
+
+ }
+ }
+
+ template Response m_Response_18XonINVITE_pEearlyMedia (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template PEarlyMedia p_pEarlyMedia ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ pEarlyMedia := p_pEarlyMedia
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ pPreferredID := p_pPreferredID,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ privacy := p_privacy,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ supported := p_supported,
+ privacy := p_privacy,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_recordRoute_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999},//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ recordRoute := p_recordRoute//for INVITE response
+ }
+ }
+
+ template Response m_Response_18XonINVITE_Require (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ Contact p_contact,
+ Require p_require
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ require := p_require
+ }
+ }
+
+ template Response m_Response_18XonINVITE_Require_ifpresent (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ Contact p_contact,
+ Require p_require
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ require := p_require
+ }
+ }
+
+ template Response m_Response_18XonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template charstring p_U2UData) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ }
+ }
+
+ template Response m_Response_18XonINVITE_Xml (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_require_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, Require p_require, template MessageBody p_mb ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo,
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via,template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb ) modifies m_Response_mbody :=
+ {
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingFunctionAddresses_fixedValue
+
+ }
+ }
+
+ template Response m_Response_2XXonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ pPreferredID := p_pPreferredID,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+
+ template Response m_Response_2XXonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2XXonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2XXonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ supported := p_supported,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2XXonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb, template charstring p_U2UData)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute,//for INVITE response
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ serviceRoute := {fieldName:=SERVICE_ROUTE_E,
+ routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}
+ }
+ }
+
+
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingFunctionAddresses_fixedValue
+ }
+ }
+
+
+ template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response m_Response_2xxonUPDATE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute
+ },
+ messageBody := p_mb
+ }
+
+
+ template Response m_Response_3XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+
+ template Response m_Response_4XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_4XXonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onINVITE_Reason (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, integer p_cause) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ reason := mw_Reason(p_cause)
+ }
+ }
+
+ template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+}//end group response_send
+
+group response_receive
+{
+
+ template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ messageBody := {
+ sdpMessageBody := ?
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+
+ template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAccessNetworkInfo := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pMediaAuthorization := omit
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ securityServer := ?,
+ wwwAuthenticate := ?
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+ template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
+ path := ?,
+ serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
+ pChargingFunctionAddresses := ?,
+ pChargingVector := ?,
+ contact := p_contact
+ }
+ }
+
+ template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ historyInfo := p_historyInfo
+ }
+ }
+
+ template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
+ }
+ }
+
+} // end response_receive
+
+}//end modified_templates
+
+}//end Message_templates
+
+} // end module LibIms_Templates
/tags/v1.1.0/ttcn/LibIms_Templates.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.1.0/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/v1.1.0/ttcn/LibIms_Interface.ttcn (nonexistent)
+++ tags/v1.1.0/ttcn/LibIms_Interface.ttcn (revision 98)
@@ -0,0 +1,42 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_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
+ {
+
+ //Solution for building error problem. (Important for validation)
+ //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
+ //With this solution TAU compiler error.
+ type component ImsComponent extends SipComponent
+ {
+ // general variables
+ var ImsInterfaceProfile vc_interfaceprofile
+ } // end ImsComponent
+
+// type address WorkaroundAddress; //Remove it later
+ }// end group AdressTypes
+
+
+
+
+} // end module LibIms_TestSystem
/tags/v1.1.0/ttcn/LibIms_Interface.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.1.0/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/v1.1.0/ttcn/LibIms_PIXITS.ttcn (nonexistent)
+++ tags/v1.1.0/ttcn/LibIms_PIXITS.ttcn (revision 98)
@@ -0,0 +1,586 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_PIXITS
+{
+ //LibCommon
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_TextStrings all;
+ import from LibCommon_DataStrings all;
+
+group SUT {
+
+group SUT_UE {
+ modulepar {
+ /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_UE_PORT := 5060;
+ }//end modulepar
+}//end group SUT_UE1
+group SUT_UE1 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE1 local domain
+ */
+ charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE1 local user
+ */
+ charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3-2-2 username of UE1
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE1_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE1
+ */
+ charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE1 display name
+ */
+ charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
+ }
+} // end group SUT_UE1
+
+group SUT_UE2 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE2 local user
+ */
+ charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE2_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE2
+ */
+ charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE2
+
+group SUT_UE3 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF3_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE3 local user
+ */
+ charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE3_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE3
+ */
+ charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE3
+
+group SUT_UE4 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF4_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE4 local user
+ */
+ charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE4
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE4_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE4
+ */
+ 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{
+ modulepar {
+ /** @desc charstring for identity of emergency service local domain
+ */
+ charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
+
+ /** @desc charstring for identity of the emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
+
+ /** @desc charstring for identity of the invalid emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
+ }
+}// end group EMERGENCY service
+
+group SUT_IBCF {
+ modulepar {
+ /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
+
+ /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF1 domain
+ */
+ charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
+
+ /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
+
+ /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF2 domain
+ */
+ charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
+ }
+} // end group SUT_IBCF
+group SUT_PCSCF {
+ modulepar {
+ /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_PCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/P-CSCFdomain
+ */
+ charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
+
+ /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ 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)
+ */
+ charstring PX_IMS_SUT_PCSCF_MinSE := "100";
+ }
+} // end group SUT_PCSCF
+group SUT_SCSCF {
+ modulepar {
+ /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
+
+ /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_SCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/S-CSCFdomain
+ */
+ charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
+
+ /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
+ */
+ charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
+ }
+} // end group SUT_SCSCF
+
+group SUT_ICSCF {
+ modulepar {
+ /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
+
+ /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_ICSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-CSCFdomain
+ */
+ charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
+ }
+} // end group SUT_ICSCF
+
+group SUT_AS {
+ modulepar {
+ /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_AS_PORT := 5060;
+
+ /** @desc charstring for SUT/AS domain
+ */
+ charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
+
+ }//end modulepar
+}//end group SUT_UE1
+
+group SUT_IMGCF {
+ modulepar {
+ /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
+
+ /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IMGCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-MGCFdomain
+ */
+ charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
+ }
+} // end group SUT_IMGCF
+
+group SUT_CONF {
+ modulepar {
+ /**
+ * @desc
+ * charstring for SUT/conference IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
+ /**
+ * @desc integer for SUT/conference port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_CONF_PORT := 5060;
+ /**
+ * @desc charstring for SUT/conference domain
+ */
+ charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
+ /**
+ * @desc charstring for conference factory URI name
+ */
+ charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
+ };
+
+} // end group SUT_CONF
+
+} // end group SUT
+group TS {
+group TS_UE1 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE1 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
+
+ /** @desc integer for port number used by the UE1 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE1_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE1
+
+group TS_UE2 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE2 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
+
+ /** @desc integer for port number used by the UE2 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE2_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE2
+
+group TS_UE3 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE3_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE3
+
+group TS_UE4 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE4_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE4
+
+group TS_IBCF {
+ modulepar {
+ /** @desc charstring for TS/IBCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
+
+ /** @desc integer for TS/IBCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_IBCF_PORT := 5060;
+
+ /** @desc charstring for TS/IBCF domain
+ */
+ charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
+ }
+} // end group TS_IBCF
+
+group TS_ICSCF {
+ modulepar {
+ /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
+
+ /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ICSCF_PORT := 5060;
+
+ /** @desc charstring for TS/I-CSCF domain
+ */
+ charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
+ }
+} // end group TS_ICSCF
+
+group TS_PCSCF {
+ modulepar {
+ /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
+
+ /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_PCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/P-CSCFdomain
+ */
+ charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
+ }
+} // end group TS_PCSCF
+
+group TS_SCSCF {
+ modulepar {
+ /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_SCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/S-CSCFdomain
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
+
+ /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
+ */
+ 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
+ */
+ 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 **
+ */
+ charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
+ }
+} // end group TS_SCSCF
+
+group TS_IMS1user {
+ modulepar {
+ /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
+
+ /** @desc charstring for TS/domain
+ */
+ charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
+ }
+} // end group TS_IMS1user
+
+group TS_ISUPuser {
+ modulepar {
+ /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
+
+ /** @desc charstring for ISUP TS/domain or IPAddres
+ */
+ charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
+ }
+} // end group TS_ISUPuser
+
+
+group TS_AS {
+ modulepar {
+ /** @desc charstring for TS/AS1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
+
+ /** @desc integer for TS/AS1 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS1_PORT := 5060;
+
+ /** @desc charstring for TS/AS1 domain
+ */
+ charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
+
+ /** @desc charstring for TS/AS2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
+
+ /** @desc integer for TS/AS2 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS2_PORT := 5060;
+
+ /** @desc charstring for TS/AS2 domain
+ */
+ charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
+ }
+} // end group TS_AS
+} // end group TS
+} // end module LibIms_PIXITS
/tags/v1.1.0/ttcn/LibIms_PIXITS.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.1.0/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/v1.1.0/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
+++ tags/v1.1.0/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 98)
@@ -0,0 +1,87 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types and constants used by the test component
+ * for SIP tests.
+ */
+
+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
+
+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_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
+
+
+ // 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
/tags/v1.1.0/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.2.0/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/v1.2.0/ttcn/LibIms_Steps.ttcn (nonexistent)
+++ tags/v1.2.0/ttcn/LibIms_Steps.ttcn (revision 98)
@@ -0,0 +1,1077 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests.
+ */
+
+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;
+ //LibIms
+ import from LibIms_Templates all;
+ import from LibIms_Interface all;
+ import from LibIms_PIXITS all;
+ import from LibIms_SIPTypesAndValues all;
+
+ group externalfunctions {
+ }
+ 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 headers for forward request from AS in case if AS acts as Proxy
+ */
+ function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var Request v_request;
+ v_request := vc_request;
+
+ vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
+
+ }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ if (ispresent(v_response.msgHeader.recordRoute)) {
+ vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
+ }
+ }// 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 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
+ {
+ 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_setHeadersNOTIFY(p_cSeq_s);
+
+ }// end f_setHeadersNOTIFY
+
+ /**
+ **
+ * @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 on terminating side
+ * @param p_cSeq_s current cSeq
+ */
+ function f_setHeadersReINVITE (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+ vc_to := vc_caller_To;
+
+ vc_from := vc_caller_From;
+
+ }// end function f_setHeadersReINVITE
+
+ /**
+ * @desc sets headers for ReINVITE method on terminating side
+ * @param p_cSeq_s current cSeq
+ */
+ function f_setHeadersReINVITE_ (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+ vc_to := vc_callee_To;
+
+ vc_from := vc_callee_From;
+
+ //vc_requestUri := f_initSipUrl(p_to_user); //bpin need to be implemeted// Request URI of Invite is identical with To header
+
+ }// 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,
+ userInfo := omit,
+ hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
+ urlParameters := omit,
+ headers := omit
+ };
+
+ vc_reqHostPort := vc_requestUri.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 {
+ }
+ 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
+ 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_TS_UE1_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.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
+ 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.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_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.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.homeDomain := PX_IMS_TS_IMS1UE_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.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
+ }
+
+ // 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.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.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
+ 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_UE1_PORT; // contact (simulated UE)
+ vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
+ 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
+ }
+
+ 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
+ }
+
+ }
+ }
+
+ 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 p_sipUrl := {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := omit,
+ urlParameters := omit,
+ headers := omit};
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE2atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE3atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE4atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_IBCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ICSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_SCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ISUP) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY_INVALID) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+
+ // following setting is used for the assignment of the Path header field
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.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) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_conferenceProfile_factoryURI) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
+ }
+ };
+ return(p_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 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
+ {
+
+ //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))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}};
+ 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)));
+
+ }//end function f_awaitingRegistration_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
+ {
+ //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));
+
+ }
+
+ /*
+ *
+ * @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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ //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);
+
+ 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_withRegistrationBasic (in integer p_userprofile, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+
+ //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));
+ }
+
+ } // 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();
+ }
+
+ 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
+ {
+ //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))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ 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)));
+
+ f_terminate_component()
+ };
+
+ function f_IMS_postamble_awaitDeRegistration () runs on ImsComponent
+ {
+ //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))));
+
+ // 200OK to complete the request
+ vc_contact := vc_request.msgHeader.contact;
+ vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}};
+ 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)));
+
+ f_terminate_component()
+ };
+
+ 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
+ {
+ // 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) runs on ImsComponent
+ {
+ // 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
+ }
+ } // end function f_terminateCall_UE
+
+ }
+ group defaults {
+ }
+} // module LibIms_Steps
/tags/v1.2.0/ttcn/LibIms_Steps.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.2.0/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/v1.2.0/ttcn/LibIms_Templates.ttcn (nonexistent)
+++ tags/v1.2.0/ttcn/LibIms_Templates.ttcn (revision 98)
@@ -0,0 +1,2869 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_Templates
+{
+ //LibCommon
+ import from LibCommon_DataStrings all;
+
+ //LibSip
+ import from LibSip_SIPTypesAndValues all;
+ import from LibSip_SDPTypes all;
+ import from LibSip_Templates all;
+ import from LibSip_Steps all;
+ import from LibSip_PIXITS all;
+ import from LibSip_XMLTypes all;
+ import from XSDAUX all;
+
+ //LibIms
+ import from LibIms_SIPTypesAndValues all;
+
+ import from LibIms_PIXITS all;
+
+ template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+";
+
+ template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) :=
+ {
+ displayName := *,
+ addrSpec := {
+ scheme := "sip:",
+ userInfo := *,
+ hostPort := {p_host, p_port},
+ urlParameters := *,
+ headers := *
+ }
+ }
+
+ template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
+
+group Subfields{
+
+ template SemicolonParam_List mw_semicolonParams_realm (template charstring p_realm) :=
+ ?; //superset({"realm",p_realm},{"rand",?},{"autn",?},{"algorithm","AKAv1-MD5"},{"ik",?},{"ck",?}) // ERROR HERE! Superset operation must contain value list - no templates!
+
+ template SemicolonParam_List m_semicolonParams_language (template charstring p_language):=
+ {{"language",p_language}}
+
+ template SemicolonParam_List mw_semicolonParams_language (template charstring p_language):=
+ {{"language",p_language}}
+
+ template SemicolonParam_List m_semicolonParams_isub (template charstring p_address):=
+ {{"isub",p_address}}
+}
+
+group HeaderFieldTemplates{
+
+ template MinSE m_minSE(DeltaSec p_ds):=
+ {
+ fieldName := MIN_SE_E,
+ deltaSec:=p_ds,
+ minSeParam:=omit
+ }
+
+ template PathValue m_pathvalue (SipUrl p_sipUrl):=
+ {
+ nameAddr := {displayName := omit, // optional charstring
+ addrSpec := p_sipUrl // SipUrl
+ },
+ rrParam := omit
+ }
+
+ template Path m_path (SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {
+ {nameAddr := {
+ displayName := omit, // optional charstring
+ addrSpec := p_sipUrl // SipUrl
+ },
+ 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 (SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {*,m_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_fixedValue(charstring p_homeDomain) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {{id:="icid-value", paramValue :="123abc"},
+ {id:="icid-generated-at", paramValue :="192.1.1.10"},
+ {id:="orig-ioi", paramValue := p_homeDomain}}
+ };
+ template PChargingVector m_pChargingVector_fixedValue1(charstring p_homeDomain) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {
+ {id:="icid-generated-at", paramValue :="192.1.1.10"},
+ {id:="orig-ioi", paramValue := p_homeDomain}}
+ };
+
+ template PChargingVector mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
+ };
+
+ template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
+ {
+ fieldName := P_MEDIA_AUTHORIZATION_E,
+ pMediaAuthorizations := {"A"} // example
+ };
+
+
+ template PEarlyMedia m_pEarlyMedia_sup :=
+ {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
+
+
+ template ProxyRequire m_proxyRequire_secAgree :=
+ {
+ fieldName := PROXY_REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template PVisitedNetworkID mw_pVisitedNetworkID :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
+ genericParams := *}}
+ }
+
+ template RecordRoute m_recordRoute_notmatching:=
+ {
+ fieldName := RECORD_ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template Require m_require_secAgree :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template Require mw_require_path :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := superset("path")
+ };
+
+ template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
+ {
+ fieldName := ROUTE_E,
+ routeBody := {{nameAddr := {displayName := omit,
+ addrSpec := {scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := {host:=p_interfaceprofile.SUTIpaddr, portField:= p_interfaceprofile.SUTPort},
+ urlParameters := omit,
+ headers := omit}
+ },
+ rrParam := omit}
+ }};
+
+ template Route m_route_notmatching:=
+ {
+ fieldName := ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template SessionExpires m_se(DeltaSec p_ds):=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=p_ds,
+ seParam:=omit
+ }
+
+ template SessionExpires mw_se:=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=?,
+ seParam:=omit
+ }
+
+ template Supported m_supported_timer:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"timer"}
+ }
+
+
+ template Supported m_supported_fromChange:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"from-change"}
+ }
+
+ template To m_To_targetRefreshRequest(template To p_To) :=
+ {
+ fieldName := TO_E,
+ addressField :=
+ {nameAddr := {
+ displayName := p_To.addressField.nameAddr.displayName,
+ addrSpec := p_To.addressField.nameAddr.addrSpec
+ }},//end addressField
+ toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
+ };
+
+ template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
+ {
+ sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
+ sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
+ viaParams:={{id :=c_branchId,paramValue :=branch_val}}
+ }
+
+ template Via m_via_notmatching:=
+ {
+ fieldName := VIA_E,
+ viaBody :=
+ {{
+ sentProtocol := valueof(m_SentProtocol("UDP")),
+ sentBy:={host:="unknown.domain.name", portField:= 10000},
+ viaParams:={{id :=c_branchId,paramValue :="abcd0000"}}
+ } }
+ };
+
+ /*
+ * @desc WWW-Authenticate header field
+ * @param p_challenge value
+ */
+ template WwwAuthenticate m_wwwAuthenticate (Challenge p_challenge):=
+ {
+ fieldName := WWW_AUTHENTICATE_E,
+ challenge := p_challenge
+ }
+
+ /*
+ * @desc WWW-Authenticate header field
+ * @param p_challenge value
+ */
+ template WwwAuthenticate mw_wwwAuthenticate (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := WWW_AUTHENTICATE_E,
+ challenge :=
+ {digestCln := p_semicolonParam_List // set of GenericParam
+ }
+ }
+
+
+
+ /*
+ * @desc AcceptContact header field
+ * @param p_acValues value
+ */
+ template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ /*
+ * @desc Authenticate header field
+ * @param p_challenge value
+ */
+ template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues :=
+ {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ template SubscriptionState mw_subscriptionState(template charstring p_state) := {
+ fieldName := SUBSCRIPTION_STATE_E,
+ subState := p_state,
+ substateParams := omit
+ }
+
+} // end group HeaderFieldTemplates
+
+group MessageBodyTemplates {
+
+group XMLTemplates {
+
+ template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+ {
+ icb := p_icb
+ };
+
+ template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+ {
+ ocb := p_ocb
+ };
+
+ template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+ template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+ template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) :=
+ {
+ resourceLists := p_resourceLists
+ };
+
+}// end group XMLTemplates
+
+group ACR_CBTemplates {
+
+ template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
+ {
+ ruleset_icb := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
+ {
+ ruleset_ocb := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
+ {
+ id := "rule66",
+ conditions := p_condition,
+ actions := {bool := false},
+ transformations := omit
+ }
+
+ template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
+ choice := {{
+ identity := {{
+ choice := {{
+ one := {
+ id := p_id,
+ scheme := p_scheme,
+ any_1 := omit
+ }
+ }}
+ }}
+ }}
+ }
+
+
+
+
+} //end group ACR_CBTemplates
+
+group CUGTemplates {
+
+ template Cug m_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator :=p_cci
+ }
+
+ template Cug mw_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator := p_cci
+ }
+
+ template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+// outgoingAccessRequest := p_outAccessRequest,
+// cugIndex := p_cugIndex
+//TODO: workaround for ttwb118
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := valueof(p_cugIndex)
+ }
+
+ template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+}//end group CUGTemplates
+
+group MCIDTemplates {
+
+ template Mcid m_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := bit2str('1'B)}
+ }
+ }
+
+ template Mcid m_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('1'B)}
+ }
+ }
+
+} //end group MCIDTemplates
+
+group PSTNTemplates {
+
+ template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi},
+ Display := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi, p_pi2},
+ Display := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template ProgressIndicatorType p_pi3,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi, p_pi2, p_pi3},
+ Display := {p_d}
+ }
+
+ template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {*, *},
+ LowLayerCompatibility := *,
+ ProgressIndicator := {*},
+ Display := {*}
+ }
+
+
+ template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
+ BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ BCoctet4_1 := omit,
+ BCoctet5 := omit,
+ BCoctet5a := omit,
+ BCoctet5bV110 := omit,
+ BCoctet5bV120 := omit,
+ BCoctet5c := omit,
+ BCoctet5d := omit,
+ BCoctet6 := omit,
+ BCoctet7 := omit,
+ BCoctet7a := omit,
+ BCoctet7b := omit
+ }
+
+ template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
+ ProgressOctet3 := {CodingStandard := bit2str('00'B),
+ Location := bit2str('0000'B)
+ },
+ ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)}
+ }
+
+ template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
+ LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ LLOctet3a := omit,
+ LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ LLOctet4_1 := omit,
+ LLOctet5 := omit,
+ LLOctet5a := omit,
+ LLOctet5bV110 := omit,
+ LLOctet5bV120 := omit,
+ LLOctet5c := omit,
+ LLOctet5d := omit,
+ LLOctet6 := omit,
+ LLOctet6aHDLC := omit,
+ LLOctet6aUserSpecific := omit,
+ LLOctet6b := omit,
+ LLOctet7 := omit,
+ LLOctet7aUserSpecific := omit,
+ LLOctet7aX25 := omit,
+ LLOctet7bX25 := omit,
+ LLOctet7c := omit,
+ LLOctet7aTR9577 := omit,
+ LLOctet7bTR9577 := omit
+ }
+
+ template HighLayerCompatibilityType m_HighLayerCompatibilityType
+ (Bit7 p_HLOctet4):= {
+ HLOctet3 := {
+ CodingStandard :=bit2str('00'B),
+ Interpretation :=bit2str('100'B),
+ PresentationMethod := bit2str('01'B)
+ },
+ HLOctet4 := {
+ HighLayerCharacteristics := bit2str(p_HLOctet4)
+ },
+ HLOctet4aMaintenance := omit,
+ HLOctet4Audio := omit
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
+ BCoctet3 := p_BCOctet3Type,
+ BCoctet4 := p_BCOctet4Type,
+ BCoctet4_1 := * ,
+ BCoctet5 := * ,
+ BCoctet5a := * ,
+ BCoctet5bV110 := * ,
+ BCoctet5bV120 := * ,
+ BCoctet5c := * ,
+ BCoctet5d := * ,
+ BCoctet6 := * ,
+ BCoctet7 := * ,
+ BCoctet7a := * ,
+ BCoctet7b := *
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
+ BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ BCoctet4_1 := * ,
+ BCoctet5 := * ,
+ BCoctet5a := * ,
+ BCoctet5bV110 := * ,
+ BCoctet5bV120 := * ,
+ BCoctet5c := * ,
+ BCoctet5d := * ,
+ BCoctet6 := * ,
+ BCoctet7 := * ,
+ BCoctet7a := * ,
+ BCoctet7b := *
+ }
+
+ template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
+ ProgressOctet3 := p_ProgressOctet3Type,
+ ProgressOctet4 := p_ProgressOctet4Type
+ }
+
+ template LowLayerCompatibilityType mw_LowLayerCompatibilityType
+ (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
+ LLOctet3 := p_LLOctet3,
+ LLOctet3a := * ,
+ LLOctet4 := p_LLOctet4,
+ LLOctet4_1 := * ,
+ LLOctet5 := * ,
+ LLOctet5a := * ,
+ LLOctet5bV110 := * ,
+ LLOctet5bV120 := * ,
+ LLOctet5c := * ,
+ LLOctet5d := * ,
+ LLOctet6 := * ,
+ LLOctet6aHDLC := * ,
+ LLOctet6aUserSpecific := * ,
+ LLOctet6b := * ,
+ LLOctet7 := p_LLOctet7,
+ LLOctet7aUserSpecific := * ,
+ LLOctet7aX25 := * ,
+ LLOctet7bX25 := * ,
+ LLOctet7c := * ,
+ LLOctet7aTR9577 := * ,
+ LLOctet7bTR9577 := *
+ }
+
+ template HighLayerCompatibilityType mw_HighLayerCompatibilityType
+ (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
+ HLOctet3 := p_HLOctet3,
+ HLOctet4 := p_HLOctet4,
+ HLOctet4aMaintenance := *,
+ HLOctet4Audio := *
+ }
+
+} //end group PSTNTemplates
+
+group CDIVNTemplates {
+
+ /* general CDIVN subscription */
+ template Comm_div_info m_CDIVN_sub := {
+ entity := ?,
+ comm_div_subs_info := {
+ anyAttributes := omit,
+ comm_div_selection_criteria := {
+ anyAttributes := ?,
+ originating_user_selection_criteria := omit,
+ diverting_user_selection_criteria := omit,
+ diverted_to_user_selection_criteria := omit,
+ diversion_time_selection_criteria := omit,
+ diversion_reason_selection_criteria := omit,
+ any_1 := omit
+ },
+ comm_div_ntfy_trigger_criteria := omit,
+ comm_div_info_selection_criteria := omit,
+ any_1 := omit
+ },
+ comm_div_ntfy_info := omit,
+ any_1 := omit
+ }
+
+
+} // end grouup CDIVNTemplates
+
+group ResourceListsTemplates {
+ template Resource_lists m_ResourceList_2Users(
+ EntryType p_user1,
+ EntryType p_user2
+ ) := {
+ list := {
+ {
+ name := omit,
+ anyAttributes := omit,
+ display_name := omit,
+ seq_1 := {
+ {
+ list := omit,
+ external_ := omit,
+ entry := p_user1,
+ entry_Ref := omit
+ },
+ {
+ list := omit,
+ external_ := omit,
+ entry := p_user2,
+ entry_Ref := omit
+ }
+ },
+ any_1 := omit
+ }
+ }
+ }
+
+ template EntryType m_EntryUser(SipUrl p_user) := {
+ display_name := omit,
+ uri :=
+ p_user.userInfo.userOrTelephoneSubscriber & "@" &
+ p_user.hostPort.host,
+ any_1 := omit,
+ anyAttributes := omit
+ }
+}// end grouup ResourceListsTemplates
+
+group Ims3gppTemplates {
+ template Ims_3gpp mw_Ims_3gpp_CW := {
+ version := 1.0,
+ anyAttributes := ?,
+ choice_1 := {
+ alternative_service := {
+ anyAttributes := ?,
+ type_ := ?,
+ reason := ?,
+ action_ := {
+ anyAttributes := ?,
+ emergency_registration := *,
+ call_waiting_indication := {},
+ any_1 := *
+ },
+ any_1 := *
+ }
+ },
+ any_1 := *
+ }
+} // end group Ims3gpp
+
+group CONFTemplates {
+ template booleanXSD boolXSD_true:={bool:=true}
+ template booleanXSD boolXSD_false:={bool:=false}
+
+ template anyAttributes m_emptyAnyAttributes:={}
+
+ template Media_type m_mediatype_status(template Media_status_type p_status):= {
+ id:="1",
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text :=omit,
+ type_ :=omit,
+ label_ :=omit,
+ src_id:=omit,
+ status:= p_status,
+ any_1:=omit
+ }
+
+ template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template Media_type p_mediastatus):= {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ referred:=omit,
+ status:=p_epStatus,
+ joining_method:=p_joinMethod,
+ joining_info:=omit,
+ disconnection_method:=omit,
+ disconnection_info:=omit,
+ media:={p_mediastatus},// optional,
+ call_info:=omit,
+ any_1:=omit
+ }
+
+ template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ associated_aors:=omit,
+ roles:=omit,
+ languages :=omit,
+ cascaded_focus :=omit,
+ endpoint:={p_endpoint},// optional,
+ any_1:=omit
+ }
+
+ template Users_type m_users_1user_full(template User_type p_user):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user},
+ any_1:=omit
+ }
+
+ template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user1,p_user2},
+ any_1:=omit
+ }
+
+ template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ user_count:=p_nUsers,
+ active:=p_active,
+ locked:=p_locked,
+ any_1 := omit
+ }
+
+ template Conference_info m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
+ entity := p_cUri,
+ state := full,
+ version := 1,
+ anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
+ conference_description := omit,
+ host_info := omit,
+ conference_state := p_cState,
+ users := p_users,
+ sidebars_by_ref := omit,
+ sidebars_by_val := omit,
+ any_1 := omit
+ }
+
+ template Conference_info mw_conferenceInfo_active := {
+ entity := ?,
+ state := *,
+ version := *,
+ anyAttributes := ?,
+ conference_description := *,
+ host_info := *,
+ conference_state := ?,
+ users := {
+ state := ?,
+ anyAttributes := ?,
+ user := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := *,
+ display_text := *,
+ associated_aors := *,
+ roles := *,
+ languages := *,
+ cascaded_focus := *,
+ endpoint := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := ?,
+ display_text := *,
+ referred := *,
+ status := connected,
+ joining_method := dialed_in,
+ joining_info := *,
+ disconnection_method := *,
+ disconnection_info := *,
+ media := *,
+ call_info := *,
+ any_1 := *
+ }
+ },
+ any_1 := *
+ }
+ },
+ any_1 := omit
+ },
+ sidebars_by_ref := *,
+ sidebars_by_val := *,
+ any_1 := *
+ }
+}
+
+} // end group MessageBodyTemplates
+
+group MessageTemplates {
+
+group modified_templates {
+
+group request_send {
+
+ template BYE_Request m_BYE_Request_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_Reason_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UserToUser_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, template charstring p_U2UData)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route,
+ userToUser := m_UserToUserData(p_U2UData)
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UE
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ },
+ messageBody := p_mb
+ }
+
+ template INFO_Request m_INFO_Request_Xml_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_Allow_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ allow := p_allow
+ }
+ }
+
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template HistoryInfo p_historyInfo)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template PAssertedID p_pAssertedID, template Privacy p_privacy )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ acceptContact := p_acceptContact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAssertedService_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ pAssertedService := p_pAssertedService
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ pEarlyMedia := m_pEarlyMedia_sup,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID,
+ privacy := p_privacy
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_SessionExpires_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ sessionExpires := p_se
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_minSE_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_minSE_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_User2UserData_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ }
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingVector_fixedValue(PX_IMS_SUT_UE1_HOME_DOMAIN),
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PCharging_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported,
+ template PChargingVector p_pChargingVector)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := p_pChargingVector,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PMediaAuth_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pMediaAuthorization := m_pMediaAuthorization_fixedValue,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PPreferred_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported, template PPreferredID p_pPreferredID)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pPreferredID := p_pPreferredID,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_1300Bytes_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := m_MBody_longPlainText
+ }
+
+ template NOTIFY_Request m_NOTIFY_Request_Xml_IMS_Conference
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_NOTIFY_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
+ event := {fieldName:=EVENT_E, eventType:="conference",eventParams:=omit},
+ subscriptionState:={fieldName:=SUBSCRIPTION_STATE_E, subState:="active",substateParams:=omit},
+ expires:={fieldName:=EXPIRES_E, deltaSec:="3600"}
+
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc REFER message exchanged at Mw
+ *
+ */
+ template REFER_Request m_REFER_Request_IMS(
+ SipUrl p_requestUri,
+ CallId p_callId,
+ CSeq p_cSeq,
+ Contact p_contact,
+ From p_from,
+ template To p_to,
+ Via p_via,
+ template ReferTo p_referTo,
+ template ReferredBy p_referredBy,
+ template Require p_require,
+ template Route p_route,
+ template RecordRoute p_recordRoute,
+ template Supported p_supported,
+ template PChargingVector p_pChargingVector,
+ template MessageBody p_mb
+ ) modifies m_REFER_Request_Base := {
+ msgHeader := {
+ contentLength := {
+ fieldName := CONTENT_LENGTH_E,
+ len:= f_MessageBodyLength(valueof(p_mb))
+ },
+ contentType := {
+ fieldName := CONTENT_TYPE_E,
+ mediaType := c_sdpAplication
+ },
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
+ template ProxyRequire p_proxyRequire, template Require p_require,
+ template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ proxyRequire := p_proxyRequire,
+ require := p_require,
+ securityClient := p_securityClient,
+ securityVerify := p_securityVerify,
+ supported := p_supported,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+
+
+ template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+ template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
+ modifies m_REGISTER_Request_IMS :=
+ {
+ msgHeader :=
+ {
+ expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000,
+ route := p_route
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000
+ },
+ messageBody := p_mb
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := p_event,
+ expires := m_Expires_600000
+ }
+ }
+ template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
+ {
+ msgHeader :=
+ {
+ fromField := p_from
+ }
+ }
+
+}//end group request_send
+
+group request_receive {
+
+ template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
+ modifies mw_ACK_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template ACK_Request mw_ACK_Request_PchargingVector (template CallId p_callId, template PChargingVector p_pChargingVector)
+ modifies mw_ACK_Request_Base
+ :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies mw_BYE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies mw_BYE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingVector := p_pChargingVector,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit}
+ }
+ template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := ?}
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ acceptContact := p_acceptContact
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {recordRoute := p_recordRoute,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {route := p_route}
+ }
+
+ template INVITE_Request mw_INVITE_Request_require (
+ template Require p_require
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { require := p_require }
+ }
+
+ template INVITE_Request mw_INVITE_Request_supported (
+ template Supported p_supported
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { supported := p_supported }
+ }
+
+ template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {sessionExpires := p_sessionExpires}
+ }
+
+ template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS_mb (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := ?
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS_cug (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template Cug p_cug ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_CUG(p_cug)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_CUG(p_cug)))
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
+ }
+
+ /*
+ *
+ * @desc Await INVITE using topology hiding
+ */
+ template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ /*
+ *
+ * @desc Await INVITE without PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { fromField := p_from,
+ pAssertedID := omit,
+ pPreferredID := omit}
+ }
+
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy ifpresent}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ historyInfo := p_historyInfo}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template CallId p_callId,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 (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization (template CallId p_callId)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pMediaAuthorization := omit}
+ }
+
+ template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := ?,
+ path := p_Path,
+ pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
+ pVisitedNetworkID := p_pVisitedNetworkID,
+ require := mw_require_path,
+ securityClient := omit,
+ securityVerify := omit
+ }
+ }
+
+
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization,
+ securityClient := omit
+ }
+ }
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { securityVerify := omit,
+ securityClient := omit
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := omit
+ }
+ }
+
+ template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
+ template From p_from,
+ To p_to,
+ template PAssertedID p_pAssertedID,
+ template PChargingVector p_pChargingVector
+ ) modifies mw_SUBSCRIBE_Request_Base := {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E
+ },
+ msgHeader :=
+ { fromField := p_from,
+ toField := p_to,
+ event := m_Event_reg,
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pChargingVector := p_pChargingVector
+ }
+ }
+
+ template UPDATE_Request mw_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
+ {
+ msgHeader :=
+ {
+ fromField := p_from
+ }
+ }
+
+ template NOTIFY_Request mw_NOTIFY_Request(
+ template CallId p_callId,
+ template charstring p_state,
+ template charstring p_contentType,
+ template Event p_event,
+ template MessageBody p_mb
+ ) modifies mw_NOTIFY_Request_Base := {
+ msgHeader :=
+ {
+ subscriptionState := mw_subscriptionState(p_state),
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
+ event := p_event
+ },
+ messageBody := p_mb
+ }
+
+}//end group request_receive
+group response_send
+{
+ template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ maxForwards := omit//,
+ //recordRoute := p_recordRoute
+ }
+ }
+
+ template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ //maxForwards := omit,
+ //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_AlertInfo (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ AlertInfo p_alertInfo
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ alertInfo := p_alertInfo
+ }
+ }
+
+ template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ historyInfo := p_historyInfo,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingFunctionAddresses_fixedValue
+
+ }
+ }
+
+ template Response m_Response_18XonINVITE_pEearlyMedia (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template PEarlyMedia p_pEarlyMedia ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ pEarlyMedia := p_pEarlyMedia
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ pPreferredID := p_pPreferredID,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ privacy := p_privacy,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ supported := p_supported,
+ privacy := p_privacy,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_recordRoute_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999},//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ recordRoute := p_recordRoute//for INVITE response
+ }
+ }
+
+ template Response m_Response_18XonINVITE_Require (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ Contact p_contact,
+ Require p_require
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ require := p_require
+ }
+ }
+
+ template Response m_Response_18XonINVITE_Require_ifpresent (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ Contact p_contact,
+ Require p_require
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ require := p_require
+ }
+ }
+
+ template Response m_Response_18XonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template charstring p_U2UData) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ }
+ }
+
+ template Response m_Response_18XonINVITE_Xml (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication},
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_require_sdp_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, Require p_require, template MessageBody p_mb ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo,
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via,template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb ) modifies m_Response_mbody :=
+ {
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingFunctionAddresses_fixedValue
+
+ }
+ }
+
+ template Response m_Response_2XXonINVITE_pPreferred_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PPreferredID p_pPreferredID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ pPreferredID := p_pPreferredID,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+
+ template Response m_Response_2XXonINVITE_pAsserted_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2XXonINVITE_pAsserted_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template PAssertedID p_pAssertedID, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2XXonINVITE_supported_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Supported p_supported, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ supported := p_supported,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2XXonINVITE_privacy_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Privacy p_privacy, template RecordRoute p_recordRoute, template MessageBody p_mb) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_UserToUser (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb, template charstring p_U2UData)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute,//for INVITE response
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ serviceRoute := {fieldName:=SERVICE_ROUTE_E,
+ routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}
+ }
+ }
+
+
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingFunctionAddresses_fixedValue
+ }
+ }
+
+
+ template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ 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:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response m_Response_2xxonUPDATE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute
+ },
+ messageBody := p_mb
+ }
+
+
+ template Response m_Response_3XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+
+ template Response m_Response_4XXonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_4XXonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onINVITE_Reason (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, integer p_cause) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ reason := mw_Reason(p_cause)
+ }
+ }
+
+ template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+}//end group response_send
+
+group response_receive
+{
+
+ template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ messageBody := {
+ sdpMessageBody := ?
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+
+ template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAccessNetworkInfo := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pMediaAuthorization := omit
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ securityServer := ?,
+ wwwAuthenticate := ?
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+ template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
+ path := ?,
+ serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
+ pChargingFunctionAddresses := ?,
+ pChargingVector := ?,
+ contact := p_contact
+ }
+ }
+
+ template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ historyInfo := p_historyInfo
+ }
+ }
+
+ template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
+ }
+ }
+
+} // end response_receive
+
+}//end modified_templates
+
+}//end Message_templates
+
+} // end module LibIms_Templates
/tags/v1.2.0/ttcn/LibIms_Templates.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.2.0/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/v1.2.0/ttcn/LibIms_Interface.ttcn (nonexistent)
+++ tags/v1.2.0/ttcn/LibIms_Interface.ttcn (revision 98)
@@ -0,0 +1,42 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_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
+ {
+
+ //Solution for building error problem. (Important for validation)
+ //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
+ //With this solution TAU compiler error.
+ type component ImsComponent extends SipComponent
+ {
+ // general variables
+ var ImsInterfaceProfile vc_interfaceprofile
+ } // end ImsComponent
+
+// type address WorkaroundAddress; //Remove it later
+ }// end group AdressTypes
+
+
+
+
+} // end module LibIms_TestSystem
/tags/v1.2.0/ttcn/LibIms_Interface.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.2.0/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/v1.2.0/ttcn/LibIms_PIXITS.ttcn (nonexistent)
+++ tags/v1.2.0/ttcn/LibIms_PIXITS.ttcn (revision 98)
@@ -0,0 +1,586 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_PIXITS
+{
+ //LibCommon
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_TextStrings all;
+ import from LibCommon_DataStrings all;
+
+group SUT {
+
+group SUT_UE {
+ modulepar {
+ /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_UE_PORT := 5060;
+ }//end modulepar
+}//end group SUT_UE1
+group SUT_UE1 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE1 local domain
+ */
+ charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE1 local user
+ */
+ charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3-2-2 username of UE1
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE1_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE1
+ */
+ charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE1 display name
+ */
+ charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
+ }
+} // end group SUT_UE1
+
+group SUT_UE2 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE2 local user
+ */
+ charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE2_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE2
+ */
+ charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE2
+
+group SUT_UE3 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF3_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE3 local user
+ */
+ charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE3_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE3
+ */
+ charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE3
+
+group SUT_UE4 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF4_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE4 local user
+ */
+ charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE4
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE4_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE4
+ */
+ 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{
+ modulepar {
+ /** @desc charstring for identity of emergency service local domain
+ */
+ charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
+
+ /** @desc charstring for identity of the emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
+
+ /** @desc charstring for identity of the invalid emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
+ }
+}// end group EMERGENCY service
+
+group SUT_IBCF {
+ modulepar {
+ /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
+
+ /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF1 domain
+ */
+ charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
+
+ /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
+
+ /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF2 domain
+ */
+ charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
+ }
+} // end group SUT_IBCF
+group SUT_PCSCF {
+ modulepar {
+ /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_PCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/P-CSCFdomain
+ */
+ charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
+
+ /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ 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)
+ */
+ charstring PX_IMS_SUT_PCSCF_MinSE := "100";
+ }
+} // end group SUT_PCSCF
+group SUT_SCSCF {
+ modulepar {
+ /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
+
+ /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_SCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/S-CSCFdomain
+ */
+ charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
+
+ /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
+ */
+ charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
+ }
+} // end group SUT_SCSCF
+
+group SUT_ICSCF {
+ modulepar {
+ /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
+
+ /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_ICSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-CSCFdomain
+ */
+ charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
+ }
+} // end group SUT_ICSCF
+
+group SUT_AS {
+ modulepar {
+ /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_AS_PORT := 5060;
+
+ /** @desc charstring for SUT/AS domain
+ */
+ charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
+
+ }//end modulepar
+}//end group SUT_UE1
+
+group SUT_IMGCF {
+ modulepar {
+ /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
+
+ /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IMGCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-MGCFdomain
+ */
+ charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
+ }
+} // end group SUT_IMGCF
+
+group SUT_CONF {
+ modulepar {
+ /**
+ * @desc
+ * charstring for SUT/conference IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
+ /**
+ * @desc integer for SUT/conference port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_CONF_PORT := 5060;
+ /**
+ * @desc charstring for SUT/conference domain
+ */
+ charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
+ /**
+ * @desc charstring for conference factory URI name
+ */
+ charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
+ };
+
+} // end group SUT_CONF
+
+} // end group SUT
+group TS {
+group TS_UE1 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE1 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
+
+ /** @desc integer for port number used by the UE1 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE1_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE1
+
+group TS_UE2 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE2 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
+
+ /** @desc integer for port number used by the UE2 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE2_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE2
+
+group TS_UE3 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE3_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE3
+
+group TS_UE4 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE4_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE4
+
+group TS_IBCF {
+ modulepar {
+ /** @desc charstring for TS/IBCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
+
+ /** @desc integer for TS/IBCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_IBCF_PORT := 5060;
+
+ /** @desc charstring for TS/IBCF domain
+ */
+ charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
+ }
+} // end group TS_IBCF
+
+group TS_ICSCF {
+ modulepar {
+ /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
+
+ /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ICSCF_PORT := 5060;
+
+ /** @desc charstring for TS/I-CSCF domain
+ */
+ charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
+ }
+} // end group TS_ICSCF
+
+group TS_PCSCF {
+ modulepar {
+ /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
+
+ /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_PCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/P-CSCFdomain
+ */
+ charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
+ }
+} // end group TS_PCSCF
+
+group TS_SCSCF {
+ modulepar {
+ /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_SCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/S-CSCFdomain
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
+
+ /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
+ */
+ 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
+ */
+ 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 **
+ */
+ charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
+ }
+} // end group TS_SCSCF
+
+group TS_IMS1user {
+ modulepar {
+ /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
+
+ /** @desc charstring for TS/domain
+ */
+ charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
+ }
+} // end group TS_IMS1user
+
+group TS_ISUPuser {
+ modulepar {
+ /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
+
+ /** @desc charstring for ISUP TS/domain or IPAddres
+ */
+ charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
+ }
+} // end group TS_ISUPuser
+
+
+group TS_AS {
+ modulepar {
+ /** @desc charstring for TS/AS1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
+
+ /** @desc integer for TS/AS1 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS1_PORT := 5060;
+
+ /** @desc charstring for TS/AS1 domain
+ */
+ charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
+
+ /** @desc charstring for TS/AS2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
+
+ /** @desc integer for TS/AS2 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS2_PORT := 5060;
+
+ /** @desc charstring for TS/AS2 domain
+ */
+ charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
+ }
+} // end group TS_AS
+} // end group TS
+} // end module LibIms_PIXITS
/tags/v1.2.0/ttcn/LibIms_PIXITS.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.2.0/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/v1.2.0/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
+++ tags/v1.2.0/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 98)
@@ -0,0 +1,87 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types and constants used by the test component
+ * for SIP tests.
+ */
+
+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
+
+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_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
+
+
+ // 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
/tags/v1.2.0/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.3.0/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/v1.3.0/ttcn/LibIms_Steps.ttcn (nonexistent)
+++ tags/v1.3.0/ttcn/LibIms_Steps.ttcn (revision 98)
@@ -0,0 +1,1254 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests.
+ */
+
+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;
+ //LibIms
+ import from LibIms_Templates all;
+ import from LibIms_Interface all;
+ import from LibIms_PIXITS all;
+ import from LibIms_SIPTypesAndValues all;
+
+ group externalfunctions {
+ }
+ 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
+ */
+ function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var Request v_request;
+ v_request := vc_request;
+
+ vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
+
+ }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ if (ispresent(v_response.msgHeader.recordRoute)) {
+ vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
+ }
+ }// 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) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+
+ if(p_orginatingSide) {
+ vc_to := vc_caller_To;
+ vc_from := vc_caller_From;
+ }
+ else {
+ vc_to := vc_callee_To;
+ vc_from := vc_callee_From;
+ }
+
+ }// 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,
+ userInfo := omit,
+ hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
+ urlParameters := omit,
+ headers := omit
+ };
+
+ vc_reqHostPort := vc_requestUri.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 {
+ }
+ 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
+ }
+
+ 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 p_sipUrl := {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := omit,
+ urlParameters := omit,
+ headers := omit};
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE2atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE3atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE4atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_IBCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ICSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_SCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
+// case (c_userProfile_SCSCFwithHomeUE) {
+// p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+// p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ECSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ISUP) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY_INVALID) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+
+ // following setting is used for the assignment of the Path header field
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.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) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_conferenceProfile_factoryURI) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
+ }
+ };
+ return(p_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 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;
+ //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 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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ //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
+ * (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, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+
+ //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));
+ }
+
+ } // 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();
+ }
+
+ 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_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
+ {
+ // 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) 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
+ }
+ } // end function f_terminateCall_UE
+
+ }
+ group defaults {
+ }
+} // module LibIms_Steps
/tags/v1.3.0/ttcn/LibIms_Steps.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.3.0/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/v1.3.0/ttcn/LibIms_Templates.ttcn (nonexistent)
+++ tags/v1.3.0/ttcn/LibIms_Templates.ttcn (revision 98)
@@ -0,0 +1,3043 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_Templates
+{
+ //LibCommon
+ import from LibCommon_DataStrings all;
+
+ //LibSip
+ import from LibSip_SIPTypesAndValues all;
+ import from LibSip_SDPTypes all;
+ import from LibSip_Templates all;
+ import from LibSip_Steps all;
+ import from LibSip_PIXITS all;
+ import from LibSip_XMLTypes all;
+ import from XSDAUX all;
+
+ //LibIms
+ import from LibIms_SIPTypesAndValues all;
+
+ import from LibIms_PIXITS all;
+
+ template charstring m_international_number_format := pattern "\\+\d+";//pattern "\+\d+";
+
+ template NameAddr mw_SipUrl_SUTinterface(charstring p_host, integer p_port) :=
+ {
+ displayName := *,
+ addrSpec := {
+ scheme := "sip:",
+ userInfo := *,
+ hostPort := {p_host, p_port},
+ urlParameters := *,
+ headers := *
+ }
+ }
+
+ template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
+
+group Subfields{
+
+
+ template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
+ {
+ scheme := c_sipScheme, //* contains "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 (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,
+ userInfo := {userOrTelephoneSubscriber:="registrar"},
+ hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
+ urlParameters := omit,
+ headers := omit}},
+ rrParam := omit}
+ }
+ }
+/*
+ * @desc Path header field expectation with at least one path value
+ * @param p_sipUrl value of the last element in the list of path values
+ */
+ template Path mw_path (template SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
+ }
+
+ template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
+ {
+ fieldName := P_ACCESS_NETWORK_INFO_E,
+ accessType := "IEEE-802.11a",
+ genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}}
+ };
+
+ template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):=
+ {
+ fieldName := P_ASSERTED_SERVICE_E,
+ pAssertedServiceValue := p_pAssertedServiceValue
+ };
+
+ template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
+ {
+ fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
+ chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
+ {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
+ };
+
+
+ template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := p_chargeParams
+ };
+
+ template PChargingVector m_pChargingVector_icid_TS :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {{id:=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 mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
+ };
+
+ template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
+ {
+ fieldName := P_MEDIA_AUTHORIZATION_E,
+ pMediaAuthorizations := {"A"} // example
+ };
+
+
+ template PEarlyMedia m_pEarlyMedia_sup :=
+ {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
+
+
+ template ProxyRequire m_proxyRequire_secAgree :=
+ {
+ fieldName := PROXY_REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template PVisitedNetworkID m_pVisitedNetworkID_TS :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
+ genericParams := omit}}
+ }
+
+ template PVisitedNetworkID mw_pVisitedNetworkID :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
+ genericParams := *}}
+ }
+
+ template RecordRoute m_recordRoute_notmatching:=
+ {
+ fieldName := RECORD_ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template Require m_require_secAgree :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template Require mw_require_path :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := superset("path")
+ };
+
+ template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
+ {
+ fieldName := ROUTE_E,
+ routeBody := {{nameAddr := {displayName := omit,
+ addrSpec := {scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := {host:=p_interfaceprofile.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"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template SessionExpires m_se(DeltaSec p_ds):=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=p_ds,
+ seParam:=omit
+ }
+
+ template SessionExpires mw_se:=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=?,
+ seParam:=omit
+ }
+
+ template Supported m_supported_timer:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"timer"}
+ }
+
+
+ template Supported m_supported_fromChange:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"from-change"}
+ }
+
+ template To m_To_targetRefreshRequest(template To p_To) :=
+ {
+ fieldName := TO_E,
+ addressField :=
+ {nameAddr := {
+ displayName := p_To.addressField.nameAddr.displayName,
+ addrSpec := p_To.addressField.nameAddr.addrSpec
+ }},//end addressField
+ toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
+ };
+
+ template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
+ {
+ sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
+ sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
+ viaParams:={{id :=c_branchId,paramValue :=branch_val}}
+ }
+
+ template 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
+ }
+ }
+
+
+
+ /*
+ * @desc AcceptContact header field
+ * @param p_acValues value
+ */
+ template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ /*
+ * @desc Authenticate header field
+ * @param p_challenge value
+ */
+ template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues :=
+ {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ template SubscriptionState mw_subscriptionState(template charstring p_state) := {
+ fieldName := SUBSCRIPTION_STATE_E,
+ subState := p_state,
+ substateParams := omit
+ }
+
+ //[3455/5.1]
+ template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := {
+ fieldName := P_ASSOCIATED_URI_E,
+ nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}}
+ }
+
+} // end group HeaderFieldTemplates
+
+group MessageBodyTemplates {
+
+group XMLTemplates {
+
+ template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+ {
+ icb := p_icb
+ };
+
+ template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+ {
+ ocb := p_ocb
+ };
+
+ template XmlBody m_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+ template XmlBody mw_XmlBody_ConfInfo(template Conference_info p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody mw_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+ template XmlBody mw_XmlBody_ResourceLists(template Resource_lists p_resourceLists) :=
+ {
+ resourceLists := p_resourceLists
+ };
+
+}// end group XMLTemplates
+
+group ACR_CBTemplates {
+
+ template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
+ {
+ ruleset_icb := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
+ {
+ ruleset_ocb := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
+ {
+ id := "rule66",
+ conditions := p_condition,
+ actions := {bool := false},
+ transformations := omit
+ }
+
+ template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
+ choice := {{
+ identity := {{
+ choice := {{
+ one := {
+ id := p_id,
+ scheme := p_scheme,
+ any_1 := omit
+ }
+ }}
+ }}
+ }}
+ }
+
+
+
+
+} //end group ACR_CBTemplates
+
+group CUGTemplates {
+
+ template Cug m_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator :=p_cci
+ }
+
+ template Cug mw_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator := p_cci
+ }
+
+ template CugRequestType m_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+// outgoingAccessRequest := p_outAccessRequest,
+// cugIndex := p_cugIndex
+//TODO: workaround for ttwb118
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := valueof(p_cugIndex)
+ }
+
+ template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+}//end group CUGTemplates
+
+group MCIDTemplates {
+
+ template Mcid m_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := bit2str('1'B)}
+ }
+ }
+
+ template Mcid m_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {McidRequestIndicator := bit2str('1'B),
+ HoldingIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
+ {
+ choice := {
+ response := {McidResponseIndicator := bit2str('1'B),
+ HoldingProvidedIndicator := bit2str('1'B)}
+ }
+ }
+
+} //end group MCIDTemplates
+
+group PSTNTemplates {
+
+ template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi},
+ Display := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi, p_pi2},
+ Display := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template ProgressIndicatorType p_pi3,
+ template DisplayType p_d) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {p_hlc, p_hlc2},
+ LowLayerCompatibility := p_llc,
+ ProgressIndicator := {p_pi, p_pi2, p_pi3},
+ Display := {p_d}
+ }
+
+ template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2) :=
+ {
+ BearerInfomationElement := {p_bct, p_bct2},
+ HighLayerCompatibility := {*, *},
+ LowLayerCompatibility := *,
+ ProgressIndicator := {*},
+ Display := {*}
+ }
+
+
+ template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
+ BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ BCoctet4_1 := omit,
+ BCoctet5 := omit,
+ BCoctet5a := omit,
+ BCoctet5bV110 := omit,
+ BCoctet5bV120 := omit,
+ BCoctet5c := omit,
+ BCoctet5d := omit,
+ BCoctet6 := omit,
+ BCoctet7 := omit,
+ BCoctet7a := omit,
+ BCoctet7b := omit
+ }
+
+ template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
+ ProgressOctet3 := {CodingStandard := bit2str('00'B),
+ Location := bit2str('0000'B)
+ },
+ ProgressOctet4 := {ProgressDescription := bit2str(p_progDesc)}
+ }
+
+ template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
+ LLOctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ LLOctet3a := omit,
+ LLOctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ LLOctet4_1 := omit,
+ LLOctet5 := omit,
+ LLOctet5a := omit,
+ LLOctet5bV110 := omit,
+ LLOctet5bV120 := omit,
+ LLOctet5c := omit,
+ LLOctet5d := omit,
+ LLOctet6 := omit,
+ LLOctet6aHDLC := omit,
+ LLOctet6aUserSpecific := omit,
+ LLOctet6b := omit,
+ LLOctet7 := omit,
+ LLOctet7aUserSpecific := omit,
+ LLOctet7aX25 := omit,
+ LLOctet7bX25 := omit,
+ LLOctet7c := omit,
+ LLOctet7aTR9577 := omit,
+ LLOctet7bTR9577 := omit
+ }
+
+ template HighLayerCompatibilityType m_HighLayerCompatibilityType
+ (Bit7 p_HLOctet4):= {
+ HLOctet3 := {
+ CodingStandard :=bit2str('00'B),
+ Interpretation :=bit2str('100'B),
+ PresentationMethod := bit2str('01'B)
+ },
+ HLOctet4 := {
+ HighLayerCharacteristics := bit2str(p_HLOctet4)
+ },
+ HLOctet4aMaintenance := omit,
+ HLOctet4Audio := omit
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
+ BCoctet3 := p_BCOctet3Type,
+ BCoctet4 := p_BCOctet4Type,
+ BCoctet4_1 := * ,
+ BCoctet5 := * ,
+ BCoctet5a := * ,
+ BCoctet5bV110 := * ,
+ BCoctet5bV120 := * ,
+ BCoctet5c := * ,
+ BCoctet5d := * ,
+ BCoctet6 := * ,
+ BCoctet7 := * ,
+ BCoctet7a := * ,
+ BCoctet7b := *
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
+ BCoctet3 := {CodingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ BCoctet4 := {TransferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ InformationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ BCoctet4_1 := * ,
+ BCoctet5 := * ,
+ BCoctet5a := * ,
+ BCoctet5bV110 := * ,
+ BCoctet5bV120 := * ,
+ BCoctet5c := * ,
+ BCoctet5d := * ,
+ BCoctet6 := * ,
+ BCoctet7 := * ,
+ BCoctet7a := * ,
+ BCoctet7b := *
+ }
+
+ template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
+ ProgressOctet3 := p_ProgressOctet3Type,
+ ProgressOctet4 := p_ProgressOctet4Type
+ }
+
+ template LowLayerCompatibilityType mw_LowLayerCompatibilityType
+ (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
+ LLOctet3 := p_LLOctet3,
+ LLOctet3a := * ,
+ LLOctet4 := p_LLOctet4,
+ LLOctet4_1 := * ,
+ LLOctet5 := * ,
+ LLOctet5a := * ,
+ LLOctet5bV110 := * ,
+ LLOctet5bV120 := * ,
+ LLOctet5c := * ,
+ LLOctet5d := * ,
+ LLOctet6 := * ,
+ LLOctet6aHDLC := * ,
+ LLOctet6aUserSpecific := * ,
+ LLOctet6b := * ,
+ LLOctet7 := p_LLOctet7,
+ LLOctet7aUserSpecific := * ,
+ LLOctet7aX25 := * ,
+ LLOctet7bX25 := * ,
+ LLOctet7c := * ,
+ LLOctet7aTR9577 := * ,
+ LLOctet7bTR9577 := *
+ }
+
+ template HighLayerCompatibilityType mw_HighLayerCompatibilityType
+ (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
+ HLOctet3 := p_HLOctet3,
+ HLOctet4 := p_HLOctet4,
+ HLOctet4aMaintenance := *,
+ HLOctet4Audio := *
+ }
+
+} //end group PSTNTemplates
+
+group CDIVNTemplates {
+
+ /* general CDIVN subscription */
+ template Comm_div_info m_CDIVN_sub := {
+ entity := ?,
+ comm_div_subs_info := {
+ anyAttributes := omit,
+ comm_div_selection_criteria := {
+ anyAttributes := ?,
+ originating_user_selection_criteria := omit,
+ diverting_user_selection_criteria := omit,
+ diverted_to_user_selection_criteria := omit,
+ diversion_time_selection_criteria := omit,
+ diversion_reason_selection_criteria := omit,
+ any_1 := omit
+ },
+ comm_div_ntfy_trigger_criteria := omit,
+ comm_div_info_selection_criteria := omit,
+ any_1 := omit
+ },
+ comm_div_ntfy_info := omit,
+ any_1 := omit
+ }
+
+
+} // end grouup CDIVNTemplates
+
+group ResourceListsTemplates {
+ template Resource_lists m_ResourceList_2Users(
+ EntryType p_user1,
+ EntryType p_user2
+ ) := {
+ list := {
+ {
+ name := omit,
+ anyAttributes := omit,
+ display_name := omit,
+ seq_1 := {
+ {
+ list := omit,
+ external_ := omit,
+ entry := p_user1,
+ entry_Ref := omit
+ },
+ {
+ list := omit,
+ external_ := omit,
+ entry := p_user2,
+ entry_Ref := omit
+ }
+ },
+ any_1 := omit
+ }
+ }
+ }
+
+ template EntryType m_EntryUser(SipUrl p_user) := {
+ display_name := omit,
+ uri :=
+ p_user.userInfo.userOrTelephoneSubscriber & "@" &
+ p_user.hostPort.host,
+ any_1 := omit,
+ anyAttributes := omit
+ }
+}// end grouup ResourceListsTemplates
+
+group Ims3gppTemplates {
+ template Ims_3gpp mw_Ims_3gpp_CW := {
+ version := 1.0,
+ anyAttributes := ?,
+ choice_1 := {
+ alternative_service := {
+ anyAttributes := ?,
+ type_ := ?,
+ reason := ?,
+ action_ := {
+ anyAttributes := ?,
+ emergency_registration := *,
+ call_waiting_indication := {},
+ any_1 := *
+ },
+ any_1 := *
+ }
+ },
+ any_1 := *
+ }
+} // end group Ims3gpp
+
+group CONFTemplates {
+ template booleanXSD boolXSD_true:={bool:=true}
+ template booleanXSD boolXSD_false:={bool:=false}
+
+ template anyAttributes m_emptyAnyAttributes:={}
+
+ template Media_type m_mediatype_status(template Media_status_type p_status):= {
+ id:="1",
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text :=omit,
+ type_ :=omit,
+ label_ :=omit,
+ src_id:=omit,
+ status:= p_status,
+ any_1:=omit
+ }
+
+ template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template Media_type p_mediastatus):= {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ referred:=omit,
+ status:=p_epStatus,
+ joining_method:=p_joinMethod,
+ joining_info:=omit,
+ disconnection_method:=omit,
+ disconnection_info:=omit,
+ media:={p_mediastatus},// optional,
+ call_info:=omit,
+ any_1:=omit
+ }
+
+ template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ associated_aors:=omit,
+ roles:=omit,
+ languages :=omit,
+ cascaded_focus :=omit,
+ endpoint:={p_endpoint},// optional,
+ any_1:=omit
+ }
+
+ template Users_type m_users_1user_full(template User_type p_user):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user},
+ any_1:=omit
+ }
+
+ template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user1,p_user2},
+ any_1:=omit
+ }
+
+ template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ user_count:=p_nUsers,
+ active:=p_active,
+ locked:=p_locked,
+ any_1 := omit
+ }
+
+ template Conference_info m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
+ entity := p_cUri,
+ state := full,
+ version := 1,
+ anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
+ conference_description := omit,
+ host_info := omit,
+ conference_state := p_cState,
+ users := p_users,
+ sidebars_by_ref := omit,
+ sidebars_by_val := omit,
+ any_1 := omit
+ }
+
+ template Conference_info mw_conferenceInfo_active := {
+ entity := ?,
+ state := *,
+ version := *,
+ anyAttributes := ?,
+ conference_description := *,
+ host_info := *,
+ conference_state := ?,
+ users := {
+ state := ?,
+ anyAttributes := ?,
+ user := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := *,
+ display_text := *,
+ associated_aors := *,
+ roles := *,
+ languages := *,
+ cascaded_focus := *,
+ endpoint := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := ?,
+ display_text := *,
+ referred := *,
+ status := connected,
+ joining_method := dialed_in,
+ joining_info := *,
+ disconnection_method := *,
+ disconnection_info := *,
+ media := *,
+ call_info := *,
+ any_1 := *
+ }
+ },
+ any_1 := *
+ }
+ },
+ any_1 := omit
+ },
+ sidebars_by_ref := *,
+ sidebars_by_val := *,
+ any_1 := *
+ }
+}
+
+} // end group MessageBodyTemplates
+
+group MessageTemplates {
+
+group modified_templates {
+
+group request_send {
+
+
+ template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_Reason_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UserToUser_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, template charstring p_U2UData)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route,
+ userToUser := m_UserToUserData(p_U2UData)
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UE
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ },
+ messageBody := p_mb
+ }
+
+ template INFO_Request m_INFO_Request_Xml_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_Allow_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template Allow p_allow)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ allow := p_allow
+ }
+ }
+
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template HistoryInfo p_historyInfo)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template PAssertedID p_pAssertedID, template Privacy p_privacy )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ acceptContact := p_acceptContact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAssertedService_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ pAssertedService := p_pAssertedService
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ pEarlyMedia := m_pEarlyMedia_sup,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID,
+ privacy := p_privacy
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_SessionExpires_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ sessionExpires := p_se
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_minSE_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_minSE_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_User2UserData_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ }
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_MBody_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_messageBody)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := p_messageBody
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingVector_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 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
+ },
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
+ template ProxyRequire p_proxyRequire, template Require p_require,
+ template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ proxyRequire := p_proxyRequire,
+ require := p_require,
+ securityClient := p_securityClient,
+ securityVerify := p_securityVerify,
+ supported := p_supported,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+
+
+ template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ path := m_path_TS,
+ pChargingVector := m_pChargingVector_icid_TS,
+ pVisitedNetworkID := m_pVisitedNetworkID_TS,
+ require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+ template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
+ modifies m_REGISTER_Request_IMS :=
+ {
+ msgHeader :=
+ {
+ expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000,
+ route := p_route
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000
+ },
+ messageBody := p_mb
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_Event (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Event p_event) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := p_event,
+ expires := m_Expires_600000
+ }
+ }
+ template UPDATE_Request m_UPDATE_Request_fromChange (template CallId p_callId, template From p_from) modifies mw_UPDATE_Request_Base :=
+ {
+ msgHeader :=
+ {
+ fromField := p_from
+ }
+ }
+
+}//end group request_send
+
+group request_receive {
+
+ template ACK_Request mw_ACK_Request_noPaccessNetworkInfo (template CallId p_callId)
+ modifies mw_ACK_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template ACK_Request mw_ACK_Request_PchargingVector (template CallId p_callId, template PChargingVector p_pChargingVector)
+ modifies mw_ACK_Request_Base
+ :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template BYE_Request mw_BYE_Request_noPChargingFunction_UE(template CallId p_callId) modifies mw_BYE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template BYE_Request mw_BYE_Request_via_PChargingVector_UE(template CallId p_callId, template PChargingVector p_pChargingVector, template Via p_via) modifies mw_BYE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingVector := p_pChargingVector,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit}
+ }
+ template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := ?}
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ acceptContact := p_acceptContact
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {recordRoute := p_recordRoute,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {route := p_route}
+ }
+
+ template INVITE_Request mw_INVITE_Request_require (
+ template Require p_require
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { require := p_require }
+ }
+
+ template INVITE_Request mw_INVITE_Request_supported (
+ template Supported p_supported
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { supported := p_supported }
+ }
+
+ template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {sessionExpires := p_sessionExpires}
+ }
+
+ template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ }
+ }
+ template INVITE_Request mw_INVITE_Request_IMS_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_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
+ }
+
+ /*
+ *
+ * @desc Await INVITE using topology hiding
+ */
+ template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ /*
+ *
+ * @desc Await INVITE without PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { fromField := p_from,
+ pAssertedID := omit,
+ pPreferredID := omit}
+ }
+
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy ifpresent}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ historyInfo := p_historyInfo}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template charstring p_id, template charstring p_paramValue)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingVector := mw_pChargingVector(p_id,p_paramValue)}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pMediaAuthorization := omit}
+ }
+
+ template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := ?,
+ path := p_Path,
+ pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
+ pVisitedNetworkID := p_pVisitedNetworkID,
+ require := mw_require_path,
+ securityClient := omit,
+ securityVerify := omit
+ }
+ }
+
+
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization,
+ securityClient := omit
+ }
+ }
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { securityVerify := omit,
+ securityClient := omit
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := ?
+ }
+ }
+
+ template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
+ template From p_from,
+ 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
+ }
+ }
+
+ template NOTIFY_Request mw_NOTIFY_Request(
+ template CallId p_callId,
+ template charstring p_state,
+ template charstring p_contentType,
+ template Event p_event,
+ template MessageBody p_mb
+ ) modifies mw_NOTIFY_Request_Base := {
+ msgHeader :=
+ {
+ subscriptionState := mw_subscriptionState(p_state),
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
+ event := p_event
+ },
+ messageBody := p_mb
+ }
+
+}//end group request_receive
+group response_send
+{
+ template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ maxForwards := omit//,
+ //recordRoute := p_recordRoute
+ }
+ }
+
+ template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ //maxForwards := omit,
+ //rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_AlertInfo (
+ StatusLine p_statusLine,
+ CallId p_callId,
+ CSeq p_cSeq,
+ From p_from,
+ To p_to,
+ Via p_via,
+ AlertInfo p_alertInfo
+ ) modifies m_Response_Base:= {
+ msgHeader :=
+ {
+ alertInfo := p_alertInfo
+ }
+ }
+
+ template Response m_Response_18XonINVITE_sdp_require (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact,template MessageBody p_mb,template Require p_require ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_18XonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+
+ template Response m_Response_18XonINVITE_HistoryInfo_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template HistoryInfo p_historyInfo) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ historyInfo := p_historyInfo,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ }
+ }
+
+ template Response m_Response_18XonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ 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 ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo,
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb, 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, integer p_cause) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ reason := mw_Reason(p_cause)
+ }
+ }
+
+ template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+}//end group response_send
+
+group response_receive
+{
+
+ template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ messageBody := {
+ sdpMessageBody := ?
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+
+ template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAccessNetworkInfo := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pMediaAuthorization := omit
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ securityServer := ?,
+ wwwAuthenticate := ?
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+ template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
+ path := ?,
+ serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
+ pChargingFunctionAddresses := ?,
+ pChargingVector := ?,
+ contact := p_contact
+ }
+ }
+
+ template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ historyInfo := p_historyInfo
+ }
+ }
+
+ template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
+ }
+ }
+
+} // end response_receive
+
+}//end modified_templates
+
+}//end Message_templates
+
+} // end module LibIms_Templates
/tags/v1.3.0/ttcn/LibIms_Templates.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.3.0/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/v1.3.0/ttcn/LibIms_PIXITS.ttcn (nonexistent)
+++ tags/v1.3.0/ttcn/LibIms_PIXITS.ttcn (revision 98)
@@ -0,0 +1,602 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_PIXITS
+{
+ //LibCommon
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_TextStrings all;
+ import from LibCommon_DataStrings all;
+
+group SUT {
+
+group SUT_UE {
+ modulepar {
+ /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_UE_PORT := 5060;
+ }//end modulepar
+}//end group SUT_UE1
+group SUT_UE1 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE1 local domain
+ */
+ charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE1 local user
+ */
+ charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3-2-2 username of UE1
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE1_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE1
+ */
+ charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE1 display name
+ */
+ charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
+ }
+} // end group SUT_UE1
+
+group SUT_UE2 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE2 local user
+ */
+ charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE2_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE2
+ */
+ charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE2
+
+group SUT_UE3 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF3_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE3 local user
+ */
+ charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE3_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE3
+ */
+ charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE3
+
+group SUT_UE4 {//UE4 can be used as UE1Visited
+ modulepar {
+ /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF4_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE4 local user
+ */
+ charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE4
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE4_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE4
+ */
+ 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{
+ modulepar {
+ /** @desc charstring for identity of emergency service local domain
+ */
+ charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
+
+ /** @desc charstring for identity of the emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
+
+ /** @desc charstring for identity of the invalid emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
+ }
+}// end group EMERGENCY service
+
+group SUT_IBCF {
+ modulepar {
+ /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
+
+ /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF1 domain
+ */
+ charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
+
+ /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
+
+ /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF2 domain
+ */
+ charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
+ }
+} // end group SUT_IBCF
+group SUT_PCSCF {
+ modulepar {
+ /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_PCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/P-CSCFdomain
+ */
+ charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
+
+ /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ 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)
+ */
+ charstring PX_IMS_SUT_PCSCF_MinSE := "100";
+ }
+} // end group SUT_PCSCF
+group SUT_SCSCF {
+ modulepar {
+ /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
+
+ /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_SCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/S-CSCFdomain
+ */
+ charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
+
+ /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
+ */
+ charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
+ }
+} // end group SUT_SCSCF
+
+group SUT_ICSCF {
+ modulepar {
+ /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
+
+ /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_ICSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-CSCFdomain
+ */
+ charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
+ }
+} // end group SUT_ICSCF
+
+group SUT_AS {
+ modulepar {
+ /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_AS_PORT := 5060;
+
+ /** @desc charstring for SUT/AS domain
+ */
+ charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
+
+ }//end modulepar
+}//end group SUT_UE1
+
+group SUT_IMGCF {
+ modulepar {
+ /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
+
+ /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IMGCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-MGCFdomain
+ */
+ charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
+ }
+} // end group SUT_IMGCF
+
+group SUT_CONF {
+ modulepar {
+ /**
+ * @desc
+ * charstring for SUT/conference IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
+ /**
+ * @desc integer for SUT/conference port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_CONF_PORT := 5060;
+ /**
+ * @desc charstring for SUT/conference domain
+ */
+ charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
+ /**
+ * @desc charstring for conference factory URI name
+ */
+ charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
+ };
+
+} // end group SUT_CONF
+
+} // end group SUT
+group TS {
+group TS_UE1 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE1 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
+
+ /** @desc integer for port number used by the UE1 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE1_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE1
+
+group TS_UE2 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE2 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
+
+ /** @desc integer for port number used by the UE2 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE2_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE2
+
+group TS_UE3 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE3_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE3
+
+group TS_UE4 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE4_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE4
+
+group TS_IBCF {
+ modulepar {
+ /** @desc charstring for TS/IBCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
+
+ /** @desc integer for TS/IBCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_IBCF_PORT := 5060;
+
+ /** @desc charstring for TS/IBCF domain
+ */
+ charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
+ }
+} // end group TS_IBCF
+
+group TS_ICSCF {
+ modulepar {
+ /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
+
+ /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ICSCF_PORT := 5060;
+
+ /** @desc charstring for TS/I-CSCF domain
+ */
+ charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
+ }
+} // end group TS_ICSCF
+
+group TS_PCSCF {
+ modulepar {
+ /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
+
+ /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_PCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/P-CSCFdomain
+ */
+ charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
+ }
+} // end group TS_PCSCF
+
+group TS_SCSCF {
+ modulepar {
+ /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_SCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/S-CSCFdomain
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
+
+ /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
+ */
+ 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
+ */
+ 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 **
+ */
+ charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
+ }
+} // end group TS_SCSCF
+
+group TS_ECSCF {
+ modulepar {
+ /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/E-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ECSCF_PORT := 5060;
+
+ /** @desc charstring for TS/E-CSCFdomain
+ */
+ charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
+ }
+} // end group TS_ECSCF
+
+group TS_IMS1user {
+ modulepar {
+ /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
+
+ /** @desc charstring for TS/domain
+ */
+ charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
+ }
+} // end group TS_IMS1user
+
+group TS_ISUPuser {
+ modulepar {
+ /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
+
+ /** @desc charstring for ISUP TS/domain or IPAddres
+ */
+ charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
+ }
+} // end group TS_ISUPuser
+
+
+group TS_AS {
+ modulepar {
+ /** @desc charstring for TS/AS1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
+
+ /** @desc integer for TS/AS1 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS1_PORT := 5060;
+
+ /** @desc charstring for TS/AS1 domain
+ */
+ charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
+
+ /** @desc charstring for TS/AS2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
+
+ /** @desc integer for TS/AS2 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS2_PORT := 5060;
+
+ /** @desc charstring for TS/AS2 domain
+ */
+ charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
+ }
+} // end group TS_AS
+} // end group TS
+} // end module LibIms_PIXITS
/tags/v1.3.0/ttcn/LibIms_PIXITS.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.3.0/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/v1.3.0/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
+++ tags/v1.3.0/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 98)
@@ -0,0 +1,90 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types and constants used by the test component
+ * for SIP tests.
+ */
+
+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
+
+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_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
/tags/v1.3.0/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.3.0/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/v1.3.0/ttcn/LibIms_Interface.ttcn (nonexistent)
+++ tags/v1.3.0/ttcn/LibIms_Interface.ttcn (revision 98)
@@ -0,0 +1,42 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_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
+ {
+
+ //Solution for building error problem. (Important for validation)
+ //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
+ //With this solution TAU compiler error.
+ type component ImsComponent extends SipComponent
+ {
+ // general variables
+ var ImsInterfaceProfile vc_interfaceprofile
+ } // end ImsComponent
+
+// type address WorkaroundAddress; //Remove it later
+ }// end group AdressTypes
+
+
+
+
+} // end module LibIms_TestSystem
/tags/v1.3.0/ttcn/LibIms_Interface.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.4.0/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/v1.4.0/ttcn/LibIms_Templates.ttcn (nonexistent)
+++ tags/v1.4.0/ttcn/LibIms_Templates.ttcn (revision 98)
@@ -0,0 +1,3172 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_Templates
+{
+ //LibCommon
+ import from LibCommon_DataStrings all;
+
+ //LibSip
+ import from LibSip_SIPTypesAndValues all;
+ import from LibSip_SDPTypes all;
+ import from LibSip_Templates all;
+ import from LibSip_Steps all;
+ import from LibSip_PIXITS all;
+ import from LibSip_XMLTypes all;
+ import from XSDAUX all;
+
+ //LibIms
+ import from LibIms_SIPTypesAndValues all;
+
+ import from LibIms_PIXITS all;
+
+ //LibXMLTypes
+ import from ietf_params_xml_ns_resource_lists language "XSD" all
+ with {
+ extension "File:../xsd/ResourceList.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_simservs_xcap language "XSD" all
+ with {
+ extension "File:../xsd/SupplementaryServices.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_simservs_mcid language "XSD" all
+ with {
+ extension "File:../xsd/MCID.xsd"
+ }
+
+ import from Ims3gpp language "XSD" all
+ with {
+ extension "File:../xsd/Ims3gpp.xsd"
+ }
+
+ import from ietf_params_xml_ns_conference_info language "XSD" all
+ with {
+ extension "File:../xsd/CONF.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_simservs_pstn language "XSD" all
+ with {
+ extension "File:../xsd/PSTN.xsd"
+ }
+
+ import from ietf_params_xml_ns_common_policy language "XSD" all
+ with {
+ extension "File:../xsd/common-policy.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_comm_div_info language "XSD" all
+ with {
+ extension "File:../xsd/CDIVN.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 := "sip:",
+ userInfo := *,
+ hostPort := {p_host, p_port},
+ urlParameters := *,
+ headers := *
+ }
+ }
+
+ template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
+
+group Subfields{
+
+
+ template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
+ {
+ scheme := c_sipScheme, //* contains "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 (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,
+ userInfo := {userOrTelephoneSubscriber:="registrar"},
+ hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
+ urlParameters := omit,
+ headers := omit}},
+ rrParam := omit}
+ }
+ }
+/*
+ * @desc Path header field expectation with at least one path value
+ * @param p_sipUrl value of the last element in the list of path values
+ */
+ template Path mw_path (template SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
+ }
+
+ template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
+ {
+ fieldName := P_ACCESS_NETWORK_INFO_E,
+ accessType := "IEEE-802.11a",
+ genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}}
+ };
+
+ template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):=
+ {
+ fieldName := P_ASSERTED_SERVICE_E,
+ pAssertedServiceValue := p_pAssertedServiceValue
+ };
+
+ template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
+ {
+ fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
+ chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
+ {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
+ };
+
+
+ template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := p_chargeParams
+ };
+
+ template PChargingVector m_pChargingVector_icid_TS :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {{id:=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 mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
+ };
+
+ template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
+ {
+ fieldName := P_MEDIA_AUTHORIZATION_E,
+ pMediaAuthorizations := {"A"} // example
+ };
+
+
+ template PEarlyMedia m_pEarlyMedia_sup :=
+ {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
+
+
+ template ProxyRequire m_proxyRequire_secAgree :=
+ {
+ fieldName := PROXY_REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template PVisitedNetworkID m_pVisitedNetworkID_TS :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
+ genericParams := omit}}
+ }
+
+ template PVisitedNetworkID mw_pVisitedNetworkID :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
+ genericParams := *}}
+ }
+
+ template RecordRoute m_recordRoute_notmatching:=
+ {
+ fieldName := RECORD_ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template Require m_require_secAgree :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template Require mw_require_path :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := superset("path")
+ };
+
+ template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
+ {
+ fieldName := ROUTE_E,
+ routeBody := {{nameAddr := {displayName := omit,
+ addrSpec := {scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := {host:=p_interfaceprofile.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"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template SessionExpires m_se(DeltaSec p_ds):=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=p_ds,
+ seParam:=omit
+ }
+
+ template SessionExpires mw_se:=
+ {
+ fieldName := SESSION_EXPIRES_E,
+ deltaSec:=?,
+ seParam:=omit
+ }
+
+ template Supported m_supported_timer:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"timer"}
+ }
+
+
+ template Supported m_supported_fromChange:=
+ {
+ fieldName := SUPPORTED_E,
+ optionsTags := {"from-change"}
+ }
+
+ template To m_To_targetRefreshRequest(template To p_To) :=
+ {
+ fieldName := TO_E,
+ addressField :=
+ {nameAddr := {
+ displayName := p_To.addressField.nameAddr.displayName,
+ addrSpec := p_To.addressField.nameAddr.addrSpec
+ }},//end addressField
+ toParams := {{id := c_tagId, paramValue := f_getRndTag()}}
+ };
+
+ template ViaBody m_ViaBody_virtualUEinPCSCF(charstring branch_val,in SipUserProfile p_userprofile) :=
+ {
+ sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
+ sentBy:={host:=p_userprofile.contactIpaddr, portField:= p_userprofile.contactPort},
+ viaParams:={{id :=c_branchId,paramValue :=branch_val}}
+ }
+
+ template 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
+ }
+ }
+
+
+
+ /*
+ * @desc AcceptContact header field
+ * @param p_acValues value
+ */
+ template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ /*
+ * @desc Authenticate header field
+ * @param p_challenge value
+ */
+ template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues :=
+ {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ template SubscriptionState mw_subscriptionState(template charstring p_state) := {
+ fieldName := SUBSCRIPTION_STATE_E,
+ subState := p_state,
+ substateParams := omit
+ }
+
+ //[3455/5.1]
+ template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := {
+ fieldName := P_ASSOCIATED_URI_E,
+ nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}}
+ }
+
+} // end group HeaderFieldTemplates
+
+group MessageBodyTemplates {
+
+group XMLTemplates {
+
+// template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+// {
+// icb := p_icb
+// };
+
+// template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+// {
+// ocb := p_ocb
+// };
+
+ template XmlBody m_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody m_XmlBody_simservs(template Simservs p_simservs) :=
+ {
+ simservs := p_simservs
+ };
+
+ template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+ {
+ simservs := {
+ anyAttributes := omit,
+ choice := {
+ {
+ incoming_communication_barring := p_icb
+ }
+ }
+ }
+ };
+
+ template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+ {
+ simservs := {
+ anyAttributes := omit,
+ choice := {
+ {
+ outgoing_communication_barring := p_ocb
+ }
+ }
+ }
+ };
+
+ template XmlBody m_XmlBody_CDIVN(template Comm_div_info_type p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+// template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+// {
+// cdivn := p_cdivn
+// };
+
+ template XmlBody mw_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody mw_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody mw_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody mw_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody mw_XmlBody_CDIVN(template Comm_div_info_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
+ };
+
+}// end group XMLTemplates
+
+group ACR_CBTemplates {
+
+ template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
+ {
+ ruleset := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
+ {
+ ruleset := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
+ {
+ id := "rule66",
+ conditions := p_condition,
+ actions := {elem:={{boolean := false}}},
+ transformations := omit
+ }
+
+ template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
+ content := {{
+ identity := {{
+ content := {{
+ one := {
+ id := p_id,
+ //scheme := p_scheme,
+ //any_1 := omit
+ elem := {charstring := p_scheme}
+ }
+ }}
+ }}
+ }}
+ }
+
+
+
+
+} //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,
+ anyAttributes := omit,
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator :=p_cci
+ }
+
+ template Cug mw_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator := p_cci
+ }
+
+ template CugRequestType m_cugReqType(boolean p_outAccessRequest, integer p_cugIndex) :=
+ {
+// outgoingAccessRequest := p_outAccessRequest,
+// cugIndex := p_cugIndex
+//TODO: workaround for ttwb118
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+
+ template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+}//end group CUGTemplates
+
+group MCIDTemplates {
+
+ template Mcid m_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {mcidRequestIndicator := bit2str('1'B),
+ holdingIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
+ {
+ choice := {
+ request := {mcidRequestIndicator := bit2str('1'B),
+ holdingIndicator := bit2str('1'B)}
+ }
+ }
+
+ template Mcid m_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {mcidRequestIndicator := bit2str('1'B),
+ holdingIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := bit2str('1'B)}
+ }
+ }
+
+} //end group MCIDTemplates
+
+group PSTNTemplates {
+
+ template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template DisplayType p_d) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {p_hlc, p_hlc2},
+ lowLayerCompatibility := p_llc,
+ progressIndicator := {p_pi},
+ display_ := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template DisplayType p_d) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {p_hlc, p_hlc2},
+ lowLayerCompatibility := p_llc,
+ progressIndicator := {p_pi, p_pi2},
+ display_ := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template ProgressIndicatorType p_pi3,
+ template DisplayType p_d) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {p_hlc, p_hlc2},
+ lowLayerCompatibility := p_llc,
+ progressIndicator := {p_pi, p_pi2, p_pi3},
+ display_ := {p_d}
+ }
+
+ template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {*, *},
+ lowLayerCompatibility := *,
+ progressIndicator := {*},
+ display_ := {*}
+ }
+
+
+ template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
+ bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ bCoctet4_1 := omit,
+ bCoctet5 := omit,
+ bCoctet5a := omit,
+ bCoctet5bV110 := omit,
+ bCoctet5bV120 := omit,
+ bCoctet5c := omit,
+ bCoctet5d := omit,
+ bCoctet6 := omit,
+ bCoctet7 := omit,
+ bCoctet7a := omit,
+ bCoctet7b := omit
+ }
+
+ template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
+ progressOctet3 := {codingStandard := bit2str('00'B),
+ location := bit2str('0000'B)
+ },
+ progressOctet4 := {progressDescription := bit2str(p_progDesc)}
+ }
+
+ template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
+ lLOctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ lLOctet3a := omit,
+ lLOctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ lLOctet4_1 := omit,
+ lLOctet5 := omit,
+ lLOctet5a := omit,
+ lLOctet5bV110 := omit,
+ lLOctet5bV120 := omit,
+ lLOctet5c := omit,
+ lLOctet5d := omit,
+ lLOctet6 := omit,
+ lLOctet6aHDLC := omit,
+ lLOctet6aUserSpecific := omit,
+ lLOctet6b := omit,
+ lLOctet7 := {layer3Identification := bit2str('10'B), //TODO check valueand if parameter is mandatory
+ userInfoLayer3Protocol := bit2str('10000'B)}, //TODO check value and if parameter is mandatory
+ lLOctet7aUserSpecific := omit,
+ lLOctet7aX25 := omit,
+ lLOctet7bX25 := omit,
+ lLOctet7c := omit,
+ lLOctet7aTR9577 := omit,
+ lLOctet7bTR9577 := omit
+ }
+
+ template HighLayerCompatibilityType m_HighLayerCompatibilityType
+ (Bit7 p_HLOctet4):= {
+ hLOctet3 := {
+ codingStandard :=bit2str('00'B),
+ interpretation :=bit2str('100'B),
+ presentationMethod := bit2str('01'B)
+ },
+ hLOctet4 := {
+ highLayerCharacteristics := bit2str(p_HLOctet4)
+ },
+ hLOctet4aMaintenance := omit,
+ hLOctet4Audio := omit
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
+ bCoctet3 := p_BCOctet3Type,
+ bCoctet4 := p_BCOctet4Type,
+ bCoctet4_1 := * ,
+ bCoctet5 := * ,
+ bCoctet5a := * ,
+ bCoctet5bV110 := * ,
+ bCoctet5bV120 := * ,
+ bCoctet5c := * ,
+ bCoctet5d := * ,
+ bCoctet6 := * ,
+ bCoctet7 := * ,
+ bCoctet7a := * ,
+ bCoctet7b := *
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
+ bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ bCoctet4_1 := * ,
+ bCoctet5 := * ,
+ bCoctet5a := * ,
+ bCoctet5bV110 := * ,
+ bCoctet5bV120 := * ,
+ bCoctet5c := * ,
+ bCoctet5d := * ,
+ bCoctet6 := * ,
+ bCoctet7 := * ,
+ bCoctet7a := * ,
+ bCoctet7b := *
+ }
+
+ template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
+ progressOctet3 := p_ProgressOctet3Type,
+ progressOctet4 := p_ProgressOctet4Type
+ }
+
+ template LowLayerCompatibilityType mw_LowLayerCompatibilityType
+ (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
+ lLOctet3 := p_LLOctet3,
+ lLOctet3a := * ,
+ lLOctet4 := p_LLOctet4,
+ lLOctet4_1 := * ,
+ lLOctet5 := * ,
+ lLOctet5a := * ,
+ lLOctet5bV110 := * ,
+ lLOctet5bV120 := * ,
+ lLOctet5c := * ,
+ lLOctet5d := * ,
+ lLOctet6 := * ,
+ lLOctet6aHDLC := * ,
+ lLOctet6aUserSpecific := * ,
+ lLOctet6b := * ,
+ lLOctet7 := p_LLOctet7,
+ lLOctet7aUserSpecific := * ,
+ lLOctet7aX25 := * ,
+ lLOctet7bX25 := * ,
+ lLOctet7c := * ,
+ lLOctet7aTR9577 := * ,
+ lLOctet7bTR9577 := *
+ }
+
+ template HighLayerCompatibilityType mw_HighLayerCompatibilityType
+ (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
+ hLOctet3 := p_HLOctet3,
+ hLOctet4 := p_HLOctet4,
+ hLOctet4aMaintenance := *,
+ hLOctet4Audio := *
+ }
+
+} //end group PSTNTemplates
+
+group CDIVNTemplates {
+
+ /* general CDIVN subscription */
+ template Comm_div_info_type m_CDIVN_sub := {
+ entity := "comm-div-info",
+ comm_div_subs_info := {
+ anyAttributes := omit,
+ comm_div_selection_criteria := {
+ anyAttributes := 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 := omit
+ },
+ comm_div_ntfy_trigger_criteria := omit,
+ comm_div_info_selection_criteria := omit,
+ elem := omit
+ },
+ comm_div_ntfy_info := omit,
+ elem := omit
+ }
+
+
+} // end grouup CDIVNTemplates
+
+group ResourceListsTemplates {
+
+
+ template Resource_lists m_ResourceList_2Users(
+ EntryType p_user1,
+ EntryType p_user2
+ ) :=
+ {
+ sequence := {
+ {
+ list := {
+ name := omit,
+ anyAttributes := omit,
+ display_name := omit,
+ sequence_list := {
+ {
+ choice := {
+ entry := p_user1
+ }
+ },
+ {
+ choice := {
+ entry := p_user2
+ }
+ }
+ },
+ elem := omit
+ }
+ }
+ }
+ }
+
+ template EntryType m_EntryUser(SipUrl p_user) := {
+
+ uri :=
+ p_user.userInfo.userOrTelephoneSubscriber & "@" &
+ p_user.hostPort.host,
+ anyAttributes := omit,
+ display_name := omit,
+ elem := omit
+ }
+}// end grouup ResourceListsTemplates
+
+group Ims3gppTemplates {
+
+ //TODO:check commented and below templates when test will be validated
+ template TIMS3GPP mw_Ims_3gpp_CW := {
+ version := 1.0,
+ anyAttributes := ?,
+ choice := {
+ alternative_service := {
+ anyAttributes := *,
+ type_ := *,
+ reason := *,
+ elem := *
+ }
+ },
+ elem := *
+ }
+// template TIMS3GPP mw_Ims_3gpp_CW := {
+// version := 1.0,
+// anyAttributes := ?,
+// choice_1 := {
+// alternative_service := {
+// anyAttributes := ?,
+// type_ := ?,
+// reason := ?,
+// action_ := {
+// anyAttributes := ?,
+// emergency_registration := *,
+// call_waiting_indication := {},
+// any_1 := *
+// },
+// any_1 := *
+// }
+// },
+// any_1 := *
+// }
+} // end group Ims3gpp
+
+group CONFTemplates {
+ template booleanXSD boolXSD_true:={bool:=true}
+ template booleanXSD boolXSD_false:={bool:=false}
+
+ template anyAttributes m_emptyAnyAttributes:={}
+
+ template ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(template Media_status_type p_status):= {
+ id:="1",
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text :=omit,
+ type_ :=omit,
+ label_ :=omit,
+ src_id:=omit,
+ status:= p_status,
+ elem:=omit
+ }
+
+ template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template ietf_params_xml_ns_conference_info.Media_type p_mediastatus):= {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ referred:=omit,
+ status:=p_epStatus,
+ joining_method:=p_joinMethod,
+ joining_info:=omit,
+ disconnection_method:=omit,
+ disconnection_info:=omit,
+ media:={p_mediastatus},// optional,
+ call_info:=omit,
+ elem:=omit
+ }
+
+ template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ associated_aors:=omit,
+ roles:=omit,
+ languages :=omit,
+ cascaded_focus :=omit,
+ endpoint:={p_endpoint},// optional,
+ elem:=omit
+ }
+
+ template Users_type m_users_1user_full(template User_type p_user):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user},
+ elem:=omit
+ }
+
+ template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user1,p_user2},
+ elem:=omit
+ }
+
+ template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ user_count:=p_nUsers,
+ active:=p_active,
+ locked:=p_locked,
+ elem := omit
+ }
+
+ template Conference_type m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
+ entity := p_cUri,
+ state := full,
+ version := 1,
+ anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
+ conference_description := omit,
+ host_info := omit,
+ conference_state := p_cState,
+ users := p_users,
+ sidebars_by_ref := omit,
+ sidebars_by_val := omit,
+ elem := omit
+ }
+
+ template Conference_type mw_conferenceInfo_active := {
+ entity := ?,
+ state := *,
+ version := *,
+ anyAttributes := ?,
+ conference_description := *,
+ host_info := *,
+ conference_state := ?,
+ users := {
+ state := ?,
+ anyAttributes := ?,
+ user := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := *,
+ display_text := *,
+ associated_aors := *,
+ roles := *,
+ languages := *,
+ cascaded_focus := *,
+ endpoint := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := ?,
+ display_text := *,
+ referred := *,
+ status := connected,
+ joining_method := dialed_in,
+ joining_info := *,
+ disconnection_method := *,
+ disconnection_info := *,
+ media := *,
+ call_info := *,
+ elem := *
+ }
+ },
+ elem := *
+ }
+ },
+ elem := omit
+ },
+ sidebars_by_ref := *,
+ sidebars_by_val := *,
+ elem := *
+ }
+}
+
+} // end group MessageBodyTemplates
+
+group MessageTemplates {
+
+group modified_templates {
+
+group request_send {
+
+
+ template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_Reason_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UserToUser_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, template charstring p_U2UData)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route,
+ userToUser := m_UserToUserData(p_U2UData)
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UE
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ reason := m_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ },
+ messageBody := p_mb
+ }
+
+ template INFO_Request m_INFO_Request_Xml_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_xmlAplication}
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_Allow_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template LibSip_SIPTypesAndValues.Allow p_allow)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ allow := p_allow
+ }
+ }
+
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_HistoryInfo_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template HistoryInfo p_historyInfo)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart}
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_Mime_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb,
+ template PAssertedID p_pAssertedID, template Privacy p_privacy )
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy
+ }
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_AcceptContact_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template AcceptContact p_acceptContact, template PAssertedID p_pAssertedID, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ acceptContact := p_acceptContact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAsserted_Privacy_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pAssertedID := p_pAssertedID,
+ pChargingVector := p_pChargingVector,
+ privacy := p_privacy,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PAssertedService_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template PAssertedService p_pAssertedService)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ pAssertedService := p_pAssertedService
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_PEarlyMedia_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb )
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ pEarlyMedia := m_pEarlyMedia_sup,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID )
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_PPreferred_Privacy_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb,template PPreferredID p_pPreferredID, template Privacy p_privacy)
+ modifies m_INVITE_Request_UE
+ :=
+ {
+ msgHeader :=
+ {
+ pPreferredID := p_pPreferredID,
+ privacy := p_privacy
+ }
+ }
+
+ template INVITE_Request m_INVITE_Request_SessionExpires_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template SessionExpires p_se)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ sessionExpires := p_se
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_minSE_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @desc INVITE message exchanged at Mw
+ *
+ */
+ template INVITE_Request m_INVITE_Request_minSE_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template MinSE p_minSE)
+ modifies m_INVITE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ route := p_route,
+ supported := p_supported,
+ minSE := p_minSE
+ },
+ messageBody := p_mb
+ }
+
+ template INVITE_Request m_INVITE_Request_User2UserData_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, Contact p_contact, template Require p_require,
+ template Route p_route, template RecordRoute p_recordRoute, template Supported p_supported, template PChargingVector p_pChargingVector, template MessageBody p_mb, template charstring p_U2UData)
+ modifies m_INVITE_Request_IMS
+ :=
+ {
+ msgHeader :=
+ {
+ userToUser := m_UserToUserData(valueof(p_U2UData))
+ }
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_MBody_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported, template MessageBody p_messageBody)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ supported := p_supported
+ },
+ messageBody := p_messageBody
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ require := p_require,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := omit
+ }
+
+ template MESSAGE_Request m_MESSAGE_Request_PCharging_UE
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Require p_require,
+ template Route p_route, template Supported p_supported)
+ modifies m_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
+ pChargingVector := m_pChargingVector_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 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
+ },
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
+ template ProxyRequire p_proxyRequire, template Require p_require,
+ template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ proxyRequire := p_proxyRequire,
+ require := p_require,
+ securityClient := p_securityClient,
+ securityVerify := p_securityVerify,
+ supported := p_supported,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+
+
+ template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ path := m_path_TS,
+ pChargingVector := m_pChargingVector_icid_TS,
+ pVisitedNetworkID := m_pVisitedNetworkID_TS,
+ require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+ template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
+ modifies m_REGISTER_Request_IMS :=
+ {
+ msgHeader :=
+ {
+ expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000,
+ route := p_route
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ 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 INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit}
+ }
+ template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := ?}
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ acceptContact := p_acceptContact
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {recordRoute := p_recordRoute,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {route := p_route}
+ }
+
+ template INVITE_Request mw_INVITE_Request_require (
+ template Require p_require
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { require := p_require }
+ }
+
+ template INVITE_Request mw_INVITE_Request_supported (
+ template Supported p_supported
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { supported := p_supported }
+ }
+
+ template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {sessionExpires := p_sessionExpires}
+ }
+
+ template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ }
+ }
+ template INVITE_Request mw_INVITE_Request_IMS_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_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
+ }
+
+ /*
+ *
+ * @desc Await INVITE using topology hiding
+ */
+ template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ /*
+ *
+ * @desc Await INVITE without PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { fromField := p_from,
+ pAssertedID := omit,
+ pPreferredID := omit}
+ }
+
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy ifpresent}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ historyInfo := p_historyInfo}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PchargingVector (template charstring p_id, template charstring p_paramValue)
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingVector := mw_pChargingVector(p_id,p_paramValue)}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPaccessNetworkInfo
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pAccessNetworkInfo := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPMediaAuthorization
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pMediaAuthorization := omit}
+ }
+
+ template PUBLISH_Request mw_PUBLISH_Request_PchargingVector(template CallId p_callId, template PChargingVector p_pChargingVector) modifies mw_PUBLISH_Request_Base :=
+ {
+ msgHeader := { pChargingVector := p_pChargingVector}
+ }
+
+ template REGISTER_Request mw_REGISTER_Request_IMS (template Path p_Path, template PChargingVector p_pChargingVector, template PVisitedNetworkID p_pVisitedNetworkID)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := ?,
+ path := p_Path,
+ pChargingVector := p_pChargingVector, //mw_pChargingVector(p_id,p_paramValue)
+ pVisitedNetworkID := p_pVisitedNetworkID,
+ require := mw_require_path,
+ securityClient := omit,
+ securityVerify := omit
+ }
+ }
+
+
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityclient_IMS (template Authorization p_authorization)
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := p_authorization,
+ securityClient := omit
+ }
+ }
+ template REGISTER_Request mw_REGISTER_authorizedRequest_wo_securityheaders_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { securityVerify := omit,
+ securityClient := omit
+ }
+ }
+
+ template REGISTER_Request mw_REGISTER_unauthorizedRequest_IMS
+ modifies mw_REGISTER_Request_Base
+ :=
+ {
+ msgHeader := { authorization := ?
+ }
+ }
+
+ template SUBSCRIBE_Request mw_SUBSCRIBE_Request_IMS (
+ template From p_from,
+ 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
+ }
+ }
+
+ template NOTIFY_Request mw_NOTIFY_Request(
+ template CallId p_callId,
+ template charstring p_state,
+ template charstring p_contentType,
+ template Event p_event,
+ template MessageBody p_mb
+ ) modifies mw_NOTIFY_Request_Base := {
+ msgHeader :=
+ {
+ subscriptionState := mw_subscriptionState(p_state),
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := p_contentType},
+ event := p_event
+ },
+ messageBody := p_mb
+ }
+
+}//end group request_receive
+group response_send
+{
+ template Response m_Response_2xxonBYE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit
+ }
+ }
+
+ template Response m_Response_onCANCEL (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ //contact := p_contact,
+ maxForwards := omit//,
+ //recordRoute := p_recordRoute
+ }
+ }
+
+ template Response m_Response_18XonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact //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_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, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ 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 ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ require := p_require,
+ rSeq := {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_HistoryInfo (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template HistoryInfo p_historyInfo, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ historyInfo := p_historyInfo,
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_Mime (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_mimeMultipart},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_UE (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template RecordRoute p_recordRoute, template MessageBody p_mb)
+ modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
+ maxForwards := omit,
+ recordRoute := p_recordRoute//for INVITE response
+ },
+ messageBody := p_mb
+ }
+
+ template Response m_Response_2xxonINVITE_PchargingVector (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, MessageBody p_mb, 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, integer p_cause) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ reason := mw_Reason(p_cause)
+ }
+ }
+
+ template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+}//end group response_send
+
+group response_receive
+{
+
+ template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ messageBody := {
+ sdpMessageBody := ?
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+
+ template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAccessNetworkInfo := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pMediaAuthorization := omit
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ securityServer := ?,
+ wwwAuthenticate := ?
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+ template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
+ path := ?,
+ serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
+ pChargingFunctionAddresses := ?,
+ pChargingVector := ?,
+ contact := p_contact
+ }
+ }
+
+ template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ historyInfo := p_historyInfo
+ }
+ }
+
+ template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
+ }
+ }
+
+} // end response_receive
+
+}//end modified_templates
+
+}//end Message_templates
+
+} // end module LibIms_Templates
/tags/v1.4.0/ttcn/LibIms_Templates.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.4.0/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/v1.4.0/ttcn/LibIms_Steps.ttcn (nonexistent)
+++ tags/v1.4.0/ttcn/LibIms_Steps.ttcn (revision 98)
@@ -0,0 +1,1287 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests.
+ */
+
+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;
+ //LibIms
+ import from LibIms_Templates all;
+ import from LibIms_Interface all;
+ import from LibIms_PIXITS all;
+ import from LibIms_SIPTypesAndValues all;
+
+ group externalfunctions {
+ }
+ 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
+ */
+ function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var Request v_request;
+ v_request := vc_request;
+
+ vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
+
+ }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ if (ispresent(v_response.msgHeader.recordRoute)) {
+ vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
+ }
+ }// 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) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+
+ if(p_orginatingSide) {
+ vc_to := vc_caller_To;
+ vc_from := vc_caller_From;
+ }
+ else {
+ vc_to := vc_callee_To;
+ vc_from := vc_callee_From;
+ }
+
+ }// 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,
+ userInfo := omit,
+ hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
+ urlParameters := omit,
+ headers := omit
+ };
+
+ vc_reqHostPort := vc_requestUri.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 {
+ }
+ 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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
+ }
+
+ 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 p_sipUrl := {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := omit,
+ urlParameters := omit,
+ headers := omit};
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE2atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE3atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE4atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_IBCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ICSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_SCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
+// case (c_userProfile_SCSCFwithHomeUE) {
+// p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+// p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ECSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ISUP) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY_INVALID) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+
+ // following setting is used for the assignment of the Path header field
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.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) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_conferenceProfile_factoryURI) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
+ }
+ };
+ return(p_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 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
+ {
+ vc_ignore_subscribe := true;//handle SUBSCRIBE during the call
+ 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_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));
+
+ }//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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ //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
+ * (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, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+
+ //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));
+ }
+
+ } // 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();
+ }
+
+ 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_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
+ {
+ // 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) 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
+ }
+ } // end function f_terminateCall_UE
+
+ }
+ group defaults {
+ }
+} // module LibIms_Steps
/tags/v1.4.0/ttcn/LibIms_Steps.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.4.0/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/v1.4.0/ttcn/LibIms_PIXITS.ttcn (nonexistent)
+++ tags/v1.4.0/ttcn/LibIms_PIXITS.ttcn (revision 98)
@@ -0,0 +1,602 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_PIXITS
+{
+ //LibCommon
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_TextStrings all;
+ import from LibCommon_DataStrings all;
+
+group SUT {
+
+group SUT_UE {
+ modulepar {
+ /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_UE_PORT := 5060;
+ }//end modulepar
+}//end group SUT_UE1
+group SUT_UE1 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE1 local domain
+ */
+ charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE1 local user
+ */
+ charstring PX_IMS_SUT_UE1_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3-2-2 username of UE1
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username
+ */
+ charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE1_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE1
+ */
+ charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE1 display name
+ */
+ charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
+ }
+} // end group SUT_UE1
+
+group SUT_UE2 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE2 local user
+ */
+ charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE2_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE2
+ */
+ charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE2
+
+group SUT_UE3 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF3_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE3 local user
+ */
+ charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE2
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE3_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE3
+ */
+ charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE3
+
+group SUT_UE4 {//UE4 can be used as UE1Visited
+ modulepar {
+ /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF4_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE4 local user
+ */
+ charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910";
+
+ /** @desc charstring for RFC 2617 3.2.2 username of UE4
+ * The name of user in the specified realm
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd";
+
+ /** @desc charstring for RFC 2617 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2
+ */
+ charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234";
+
+ /** @desc charstring for RFC 2617 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.
+ */
+ charstring PX_IMS_SUT_UE4_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE4
+ */
+ 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{
+ modulepar {
+ /** @desc charstring for identity of emergency service local domain
+ */
+ charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
+
+ /** @desc charstring for identity of the emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
+
+ /** @desc charstring for identity of the invalid emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
+ }
+}// end group EMERGENCY service
+
+group SUT_IBCF {
+ modulepar {
+ /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
+
+ /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF1 domain
+ */
+ charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
+
+ /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
+
+ /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF2 domain
+ */
+ charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
+ }
+} // end group SUT_IBCF
+group SUT_PCSCF {
+ modulepar {
+ /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_PCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/P-CSCFdomain
+ */
+ charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
+
+ /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ 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)
+ */
+ charstring PX_IMS_SUT_PCSCF_MinSE := "100";
+ }
+} // end group SUT_PCSCF
+group SUT_SCSCF {
+ modulepar {
+ /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
+
+ /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_SCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/S-CSCFdomain
+ */
+ charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
+
+ /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
+ */
+ charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
+ }
+} // end group SUT_SCSCF
+
+group SUT_ICSCF {
+ modulepar {
+ /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
+
+ /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_ICSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-CSCFdomain
+ */
+ charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
+ }
+} // end group SUT_ICSCF
+
+group SUT_AS {
+ modulepar {
+ /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_AS_PORT := 5060;
+
+ /** @desc charstring for SUT/AS domain
+ */
+ charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
+
+ }//end modulepar
+}//end group SUT_UE1
+
+group SUT_IMGCF {
+ modulepar {
+ /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
+
+ /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IMGCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-MGCFdomain
+ */
+ charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
+ }
+} // end group SUT_IMGCF
+
+group SUT_CONF {
+ modulepar {
+ /**
+ * @desc
+ * charstring for SUT/conference IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
+ /**
+ * @desc integer for SUT/conference port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_CONF_PORT := 5060;
+ /**
+ * @desc charstring for SUT/conference domain
+ */
+ charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
+ /**
+ * @desc charstring for conference factory URI name
+ */
+ charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
+ };
+
+} // end group SUT_CONF
+
+} // end group SUT
+group TS {
+group TS_UE1 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE1 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
+
+ /** @desc integer for port number used by the UE1 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE1_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE1
+
+group TS_UE2 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE2 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
+
+ /** @desc integer for port number used by the UE2 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE2_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE2
+
+group TS_UE3 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE3_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE3
+
+group TS_UE4 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE4_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE4
+
+group TS_IBCF {
+ modulepar {
+ /** @desc charstring for TS/IBCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
+
+ /** @desc integer for TS/IBCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_IBCF_PORT := 5060;
+
+ /** @desc charstring for TS/IBCF domain
+ */
+ charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
+ }
+} // end group TS_IBCF
+
+group TS_ICSCF {
+ modulepar {
+ /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
+
+ /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ICSCF_PORT := 5060;
+
+ /** @desc charstring for TS/I-CSCF domain
+ */
+ charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
+ }
+} // end group TS_ICSCF
+
+group TS_PCSCF {
+ modulepar {
+ /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
+
+ /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_PCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/P-CSCFdomain
+ */
+ charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
+ }
+} // end group TS_PCSCF
+
+group TS_SCSCF {
+ modulepar {
+ /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_SCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/S-CSCFdomain
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
+
+ /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
+ */
+ 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
+ */
+ 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 **
+ */
+ charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
+ }
+} // end group TS_SCSCF
+
+group TS_ECSCF {
+ modulepar {
+ /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/E-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ECSCF_PORT := 5060;
+
+ /** @desc charstring for TS/E-CSCFdomain
+ */
+ charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
+ }
+} // end group TS_ECSCF
+
+group TS_IMS1user {
+ modulepar {
+ /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
+
+ /** @desc charstring for TS/domain
+ */
+ charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
+ }
+} // end group TS_IMS1user
+
+group TS_ISUPuser {
+ modulepar {
+ /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
+
+ /** @desc charstring for ISUP TS/domain or IPAddres
+ */
+ charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
+ }
+} // end group TS_ISUPuser
+
+
+group TS_AS {
+ modulepar {
+ /** @desc charstring for TS/AS1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
+
+ /** @desc integer for TS/AS1 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS1_PORT := 5060;
+
+ /** @desc charstring for TS/AS1 domain
+ */
+ charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
+
+ /** @desc charstring for TS/AS2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
+
+ /** @desc integer for TS/AS2 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS2_PORT := 5060;
+
+ /** @desc charstring for TS/AS2 domain
+ */
+ charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
+ }
+} // end group TS_AS
+} // end group TS
+} // end module LibIms_PIXITS
/tags/v1.4.0/ttcn/LibIms_PIXITS.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.4.0/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/v1.4.0/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
+++ tags/v1.4.0/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 98)
@@ -0,0 +1,90 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types and constants used by the test component
+ * for SIP tests.
+ */
+
+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
+
+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_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
/tags/v1.4.0/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.4.0/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/v1.4.0/ttcn/LibIms_Interface.ttcn (nonexistent)
+++ tags/v1.4.0/ttcn/LibIms_Interface.ttcn (revision 98)
@@ -0,0 +1,42 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_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
+ {
+
+ //Solution for building error problem. (Important for validation)
+ //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
+ //With this solution TAU compiler error.
+ type component ImsComponent extends SipComponent
+ {
+ // general variables
+ var ImsInterfaceProfile vc_interfaceprofile
+ } // end ImsComponent
+
+// type address WorkaroundAddress; //Remove it later
+ }// end group AdressTypes
+
+
+
+
+} // end module LibIms_TestSystem
/tags/v1.4.0/ttcn/LibIms_Interface.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.5.0/ttcn/LibIms_Templates.ttcn
===================================================================
--- tags/v1.5.0/ttcn/LibIms_Templates.ttcn (nonexistent)
+++ tags/v1.5.0/ttcn/LibIms_Templates.ttcn (revision 98)
@@ -0,0 +1,3238 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_Templates
+{
+ //LibCommon
+ import from LibCommon_DataStrings all;
+
+ //LibSip
+ import from LibSip_SIPTypesAndValues all;
+ import from LibSip_SDPTypes all;
+ import from LibSip_Templates all;
+ import from LibSip_Steps all;
+ import from LibSip_PIXITS all;
+ import from LibSip_XMLTypes all;
+ import from XSDAUX all;
+
+ //LibIms
+ import from LibIms_SIPTypesAndValues all;
+
+ import from LibIms_PIXITS all;
+
+ //LibXMLTypes
+ import from ietf_params_xml_ns_resource_lists language "XSD" all
+ with {
+ extension "File:../xsd/ResourceList.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_simservs_xcap language "XSD" all
+ with {
+ extension "File:../xsd/SupplementaryServices.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_simservs_mcid language "XSD" all
+ with {
+ extension "File:../xsd/MCID.xsd"
+ }
+
+ import from Ims3gpp language "XSD" all
+ with {
+ extension "File:../xsd/Ims3gpp.xsd"
+ }
+
+ import from ietf_params_xml_ns_conference_info language "XSD" all
+ with {
+ extension "File:../xsd/CONF.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_simservs_pstn language "XSD" all
+ with {
+ extension "File:../xsd/PSTN.xsd"
+ }
+
+ import from ietf_params_xml_ns_common_policy language "XSD" all
+ with {
+ extension "File:../xsd/common-policy.xsd"
+ }
+
+ import from org_etsi_uri__ngn_params_xml_comm_div_info language "XSD" all
+ with {
+ extension "File:../xsd/CDIVN.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 := "sip:",
+ userInfo := *,
+ hostPort := {p_host, p_port},
+ urlParameters := *,
+ headers := *
+ }
+ }
+
+ template Addr_Union mw_UE1_Addr_display := {nameAddr:={displayName:=PX_IMS_SUT_UE1_DISPLAY,addrSpec:=?}};
+
+group Subfields{
+
+
+ template SipUrl m_SipUrl_currIpaddr_CSCF(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
+ {
+ scheme := c_sipScheme, //* contains "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 (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,
+ userInfo := {userOrTelephoneSubscriber:="registrar"},
+ hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
+ urlParameters := omit,
+ headers := omit}},
+ rrParam := omit}
+ }
+ }
+/*
+ * @desc Path header field expectation with at least one path value
+ * @param p_sipUrl value of the last element in the list of path values
+ */
+ template Path mw_path (template SipUrl p_sipUrl):=
+ {
+ fieldName := PATH_E,
+ pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
+ }
+
+ template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
+ {
+ fieldName := P_ACCESS_NETWORK_INFO_E,
+ accessType := "IEEE-802.11a",
+ genericParams := {{id:="extension-access-info",paramValue :="192.1.1.20"}}
+ };
+
+ template PAssertedService m_pAssertedService (PAssertedServiceValue p_pAssertedServiceValue):=
+ {
+ fieldName := P_ASSERTED_SERVICE_E,
+ pAssertedServiceValue := p_pAssertedServiceValue
+ };
+
+ template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
+ {
+ fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
+ chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
+ {id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
+ };
+
+
+ template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := p_chargeParams
+ };
+
+ template PChargingVector m_pChargingVector_icid_TS :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := {{id:=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 mw_pChargingVector(template charstring p_id, template charstring p_paramValue) :=
+ {
+ fieldName := P_CHARGING_VECTOR_E,
+ chargeParams := superset({id := valueof(p_id), paramValue := p_paramValue})
+ };
+
+ template PMediaAuthorization m_pMediaAuthorization_fixedValue :=
+ {
+ fieldName := P_MEDIA_AUTHORIZATION_E,
+ pMediaAuthorizations := {"A"} // example
+ };
+
+
+ template PEarlyMedia m_pEarlyMedia_sup :=
+ {fieldName := P_EARLY_MEDIA_E, em_param := {"supported"}};
+
+
+ template ProxyRequire m_proxyRequire_secAgree :=
+ {
+ fieldName := PROXY_REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template PVisitedNetworkID m_pVisitedNetworkID_TS :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
+ genericParams := omit}}
+ }
+
+ template PVisitedNetworkID mw_pVisitedNetworkID :=
+ {
+ fieldName := P_VISITED_NETWORK_E,
+ vNetWorkSpec := {{vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
+ genericParams := *}}
+ }
+
+ template RecordRoute m_recordRoute_notmatching:=
+ {
+ fieldName := RECORD_ROUTE_E,
+ routeBody :=
+ {{
+ nameAddr :=
+ {
+ displayName := omit,
+ addrSpec :=
+ {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := {userOrTelephoneSubscriber := "unknown", password := omit},
+ hostPort :=
+ {
+ host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring
+ portField := omit
+ },
+ urlParameters := omit,
+ headers := omit
+ }
+ },
+ rrParam := omit
+ } }
+ };
+
+ template Require m_require_secAgree :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := {"sec-agree"}
+ };
+
+ template Require mw_require_path :=
+ {
+ fieldName := REQUIRE_E,
+ optionsTags := superset("path")
+ };
+
+ template Route m_route_interface (in ImsInterfaceProfile p_interfaceprofile):=
+ {
+ fieldName := ROUTE_E,
+ routeBody := {{nameAddr := {displayName := omit,
+ addrSpec := {scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := {host:=p_interfaceprofile.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"
+ 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
+ }
+ }
+
+
+
+ /*
+ * @desc AcceptContact header field
+ * @param p_acValues value
+ */
+ template AcceptContact m_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues := {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ /*
+ * @desc Authenticate header field
+ * @param p_challenge value
+ */
+ template AcceptContact mw_acceptContact (template SemicolonParam_List p_semicolonParam_List):=
+ {
+ fieldName := ACCEPT_CONTACT_E,
+ acValues :=
+ {{wildcard:=c_WILDCARD, acRcParams := p_semicolonParam_List} // set of GenericParam
+ }
+ }
+
+ template SubscriptionState mw_subscriptionState(template charstring p_state) := {
+ fieldName := SUBSCRIPTION_STATE_E,
+ subState := p_state,
+ substateParams := omit
+ }
+
+ //[3455/5.1]
+ template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := {
+ fieldName := P_ASSOCIATED_URI_E,
+ nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}}
+ }
+
+} // end group HeaderFieldTemplates
+
+group MessageBodyTemplates {
+
+group XMLTemplates {
+
+// template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+// {
+// icb := p_icb
+// };
+
+// template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+// {
+// ocb := p_ocb
+// };
+
+ template XmlBody m_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
+ {
+ conferenceInfo := p_confInfo
+ };
+
+ template XmlBody m_XmlBody_CUG(template Cug p_cug) :=
+ {
+ cug := p_cug
+ };
+
+ template XmlBody m_XmlBody_MCID(template Mcid p_mcid) :=
+ {
+ mcid := p_mcid
+ };
+
+ template XmlBody m_XmlBody_PSTNTransit(template PSTN_transit p_pstn) :=
+ {
+ pstnTransit := p_pstn
+ };
+
+ template XmlBody m_XmlBody_simservs(template Simservs p_simservs) :=
+ {
+ simservs := p_simservs
+ };
+
+ template XmlBody m_XmlBody_ACR_ICB(template Incoming_communication_barring p_icb) :=
+ {
+ simservs := {
+ anyAttributes := omit,
+ choice := {
+ {
+ incoming_communication_barring := p_icb
+ }
+ }
+ }
+ };
+
+ template XmlBody m_XmlBody_ACR_OCB(template Outgoing_communication_barring p_ocb) :=
+ {
+ simservs := {
+ anyAttributes := omit,
+ choice := {
+ {
+ outgoing_communication_barring := p_ocb
+ }
+ }
+ }
+ };
+
+ template XmlBody m_XmlBody_CDIVN(template Comm_div_info_type p_cdivn) :=
+ {
+ cdivn := p_cdivn
+ };
+
+// template XmlBody m_XmlBody_CDIVN(template Comm_div_info p_cdivn) :=
+// {
+// cdivn := p_cdivn
+// };
+
+ template XmlBody mw_XmlBody_ConfInfo(template Conference_type p_confInfo) :=
+ {
+ conference_type := 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
+ };
+
+}// end group XMLTemplates
+
+group ACR_CBTemplates {
+
+ template Incoming_communication_barring m_ICB(RuleType p_ruleType) :=
+ {
+ ruleset := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template Outgoing_communication_barring m_OCB(RuleType p_ruleType) :=
+ {
+ ruleset := {
+ rule:= {p_ruleType}
+ }
+ }
+
+ template RuleType m_ruleType_actionFalse(template ConditionsType p_condition) :=
+ {
+ id := "rule66",
+ conditions := p_condition,
+ actions := {elem:={{boolean := false}}},
+ transformations := omit
+ }
+
+ template ConditionsType m_conditionsType_identity(template charstring p_id, template charstring p_scheme) := {
+ content := {{
+ identity := {{
+ content := {{
+ one := {
+ id := p_id,
+ //scheme := p_scheme,
+ //any_1 := omit
+ elem := {charstring := p_scheme}
+ }
+ }}
+ }}
+ }}
+ }
+
+
+
+
+} //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,
+ anyAttributes := omit,
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator :=p_cci
+ }
+
+ template Cug mw_CUG (template CugRequestType p_crt,
+ template NetworkIdentityType p_nit,
+ template SixteenbitType p_cibc,
+ template TwoBitType p_cci):=
+ {
+ cugCallOperation := p_crt,
+ networkIndicator := p_nit,
+ cugInterlockBinaryCode := p_cibc,
+ cugCommunicationIndicator := p_cci
+ }
+
+ template CugRequestType m_cugReqType(boolean p_outAccessRequest, integer p_cugIndex) :=
+ {
+// outgoingAccessRequest := p_outAccessRequest,
+// cugIndex := p_cugIndex
+//TODO: workaround for ttwb118
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+
+ template CugRequestType mw_cugReqType(template boolean p_outAccessRequest, template integer p_cugIndex) :=
+ {
+ outgoingAccessRequest := {bool:=p_outAccessRequest},
+ cugIndex := p_cugIndex
+ }
+}//end group CUGTemplates
+
+group MCIDTemplates {
+
+ template Mcid m_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {mcidRequestIndicator := bit2str('1'B),
+ holdingIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid m_mcid_request_mcidIndicatorTrue_holdIndTrue :=
+ {
+ choice := {
+ request := {mcidRequestIndicator := bit2str('1'B),
+ holdingIndicator := bit2str('1'B)}
+ }
+ }
+
+ template Mcid m_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_request_mcidIndicatorTrue :=
+ {
+ choice := {
+ request := {mcidRequestIndicator := bit2str('1'B),
+ holdingIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := ?}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndFalse :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := bit2str('0'B)}
+ }
+ }
+
+ template Mcid mw_mcid_response_mcidIndicatorTrue_holdProvIndTrue :=
+ {
+ choice := {
+ response := {mcidResponseIndicator := bit2str('1'B),
+ holdingProvidedIndicator := bit2str('1'B)}
+ }
+ }
+
+} //end group MCIDTemplates
+
+group PSTNTemplates {
+
+ template PSTN_transit m_PSTN_transit(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template DisplayType p_d) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {p_hlc, p_hlc2},
+ lowLayerCompatibility := p_llc,
+ progressIndicator := {p_pi},
+ display_ := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_2PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template DisplayType p_d) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {p_hlc, p_hlc2},
+ lowLayerCompatibility := p_llc,
+ progressIndicator := {p_pi, p_pi2},
+ display_ := {p_d}
+ }
+
+ template PSTN_transit m_PSTN_transit_3PI(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2,
+ template HighLayerCompatibilityType p_hlc,
+ template HighLayerCompatibilityType p_hlc2,
+ template LowLayerCompatibilityType p_llc,
+ template ProgressIndicatorType p_pi,
+ template ProgressIndicatorType p_pi2,
+ template ProgressIndicatorType p_pi3,
+ template DisplayType p_d) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {p_hlc, p_hlc2},
+ lowLayerCompatibility := p_llc,
+ progressIndicator := {p_pi, p_pi2, p_pi3},
+ display_ := {p_d}
+ }
+
+ template PSTN_transit mw_PSTN_transit_bc(template BearerCapabilityType p_bct,
+ template BearerCapabilityType p_bct2) :=
+ {
+ bearerInfomationElement := {p_bct, p_bct2},
+ highLayerCompatibility := {*, *},
+ lowLayerCompatibility := *,
+ progressIndicator := {*},
+ display_ := {*}
+ }
+
+
+ template BearerCapabilityType m_BearerCapabilityType (Bit5 p_InfoTrfCap):= {
+ bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ bCoctet4_1 := omit,
+ bCoctet5 := omit,
+ bCoctet5a := omit,
+ bCoctet5bV110 := omit,
+ bCoctet5bV120 := omit,
+ bCoctet5c := omit,
+ bCoctet5d := omit,
+ bCoctet6 := omit,
+ bCoctet7 := omit,
+ bCoctet7a := omit,
+ bCoctet7b := omit
+ }
+
+ template ProgressIndicatorType m_ProgressIndicatorType (Bit7 p_progDesc) := {
+ progressOctet3 := {codingStandard := bit2str('00'B),
+ location := bit2str('0000'B)
+ },
+ progressOctet4 := {progressDescription := bit2str(p_progDesc)}
+ }
+
+ template LowLayerCompatibilityType m_LowLayerCompatibilityType (Bit5 p_InfoTrfCap) := {
+ lLOctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferCapability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ lLOctet3a := omit,
+ lLOctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ lLOctet4_1 := omit,
+ lLOctet5 := omit,
+ lLOctet5a := omit,
+ lLOctet5bV110 := omit,
+ lLOctet5bV120 := omit,
+ lLOctet5c := omit,
+ lLOctet5d := omit,
+ lLOctet6 := omit,
+ lLOctet6aHDLC := omit,
+ lLOctet6aUserSpecific := omit,
+ lLOctet6b := omit,
+ lLOctet7 := {layer3Identification := bit2str('10'B), //TODO check valueand if parameter is mandatory
+ userInfoLayer3Protocol := bit2str('10000'B)}, //TODO check value and if parameter is mandatory
+ lLOctet7aUserSpecific := omit,
+ lLOctet7aX25 := omit,
+ lLOctet7bX25 := omit,
+ lLOctet7c := omit,
+ lLOctet7aTR9577 := omit,
+ lLOctet7bTR9577 := omit
+ }
+
+ template HighLayerCompatibilityType m_HighLayerCompatibilityType
+ (Bit7 p_HLOctet4):= {
+ hLOctet3 := {
+ codingStandard :=bit2str('00'B),
+ interpretation :=bit2str('100'B),
+ presentationMethod := bit2str('01'B)
+ },
+ hLOctet4 := {
+ highLayerCharacteristics := bit2str(p_HLOctet4)
+ },
+ hLOctet4aMaintenance := omit,
+ hLOctet4Audio := omit
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType (template BCOctet3Type p_BCOctet3Type, template BCOctet4Type p_BCOctet4Type):= {
+ bCoctet3 := p_BCOctet3Type,
+ bCoctet4 := p_BCOctet4Type,
+ bCoctet4_1 := * ,
+ bCoctet5 := * ,
+ bCoctet5a := * ,
+ bCoctet5bV110 := * ,
+ bCoctet5bV120 := * ,
+ bCoctet5c := * ,
+ bCoctet5d := * ,
+ bCoctet6 := * ,
+ bCoctet7 := * ,
+ bCoctet7a := * ,
+ bCoctet7b := *
+ }
+
+ template BearerCapabilityType mw_BearerCapabilityType_TrfCap (Bit5 p_InfoTrfCap):= {
+ bCoctet3 := {codingStandard := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferCabability := bit2str(p_InfoTrfCap)},//Information transfer capability
+ bCoctet4 := {transferMode := bit2str('00'B), //Coding standard = CCITT standardized coding
+ informationTransferRate := bit2str('10000'B)}, //Information transfer rate = 64 kbit/s
+ bCoctet4_1 := * ,
+ bCoctet5 := * ,
+ bCoctet5a := * ,
+ bCoctet5bV110 := * ,
+ bCoctet5bV120 := * ,
+ bCoctet5c := * ,
+ bCoctet5d := * ,
+ bCoctet6 := * ,
+ bCoctet7 := * ,
+ bCoctet7a := * ,
+ bCoctet7b := *
+ }
+
+ template ProgressIndicatorType mw_ProgressIndicatorType (template ProgressOctet3Type p_ProgressOctet3Type, template ProgressOctet4Type p_ProgressOctet4Type) := {
+ progressOctet3 := p_ProgressOctet3Type,
+ progressOctet4 := p_ProgressOctet4Type
+ }
+
+ template LowLayerCompatibilityType mw_LowLayerCompatibilityType
+ (template LLOctet3Type p_LLOctet3, template LLOctet4Type p_LLOctet4, template LLOctet7Type p_LLOctet7) := {
+ lLOctet3 := p_LLOctet3,
+ lLOctet3a := * ,
+ lLOctet4 := p_LLOctet4,
+ lLOctet4_1 := * ,
+ lLOctet5 := * ,
+ lLOctet5a := * ,
+ lLOctet5bV110 := * ,
+ lLOctet5bV120 := * ,
+ lLOctet5c := * ,
+ lLOctet5d := * ,
+ lLOctet6 := * ,
+ lLOctet6aHDLC := * ,
+ lLOctet6aUserSpecific := * ,
+ lLOctet6b := * ,
+ lLOctet7 := p_LLOctet7,
+ lLOctet7aUserSpecific := * ,
+ lLOctet7aX25 := * ,
+ lLOctet7bX25 := * ,
+ lLOctet7c := * ,
+ lLOctet7aTR9577 := * ,
+ lLOctet7bTR9577 := *
+ }
+
+ template HighLayerCompatibilityType mw_HighLayerCompatibilityType
+ (template HLOctet3Type p_HLOctet3, template HLOctet4Type p_HLOctet4):= {
+ hLOctet3 := p_HLOctet3,
+ hLOctet4 := p_HLOctet4,
+ hLOctet4aMaintenance := *,
+ hLOctet4Audio := *
+ }
+
+} //end group PSTNTemplates
+
+group CDIVNTemplates {
+
+ /* general CDIVN subscription */
+ template Comm_div_info_type m_CDIVN_sub := {
+ entity := "comm-div-info",
+ comm_div_subs_info := {
+ anyAttributes := omit,
+ comm_div_selection_criteria := {
+ anyAttributes := 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 := omit
+ },
+ comm_div_ntfy_trigger_criteria := omit,
+ comm_div_info_selection_criteria := omit,
+ elem := omit
+ },
+ comm_div_ntfy_info := omit,
+ elem := omit
+ }
+
+
+} // end grouup CDIVNTemplates
+
+group ResourceListsTemplates {
+
+
+ template Resource_lists m_ResourceList_2Users(
+ EntryType p_user1,
+ EntryType p_user2
+ ) :=
+ {
+ sequence := {
+ {
+ list := {
+ name := omit,
+ anyAttributes := omit,
+ display_name := omit,
+ sequence_list := {
+ {
+ choice := {
+ entry := p_user1
+ }
+ },
+ {
+ choice := {
+ entry := p_user2
+ }
+ }
+ },
+ elem := omit
+ }
+ }
+ }
+ }
+
+ template EntryType m_EntryUser(SipUrl p_user) := {
+
+ uri :=
+ p_user.userInfo.userOrTelephoneSubscriber & "@" &
+ p_user.hostPort.host,
+ anyAttributes := omit,
+ display_name := omit,
+ elem := omit
+ }
+}// end grouup ResourceListsTemplates
+
+group Ims3gppTemplates {
+
+ //TODO:check commented and below templates when test will be validated
+ template TIMS3GPP mw_Ims_3gpp_CW := {
+ version := 1.0,
+ anyAttributes := ?,
+ choice := {
+ alternative_service := {
+ anyAttributes := *,
+ type_ := *,
+ reason := *,
+ elem := *
+ }
+ },
+ elem := *
+ }
+// template TIMS3GPP mw_Ims_3gpp_CW := {
+// version := 1.0,
+// anyAttributes := ?,
+// choice_1 := {
+// alternative_service := {
+// anyAttributes := ?,
+// type_ := ?,
+// reason := ?,
+// action_ := {
+// anyAttributes := ?,
+// emergency_registration := *,
+// call_waiting_indication := {},
+// any_1 := *
+// },
+// any_1 := *
+// }
+// },
+// any_1 := *
+// }
+} // end group Ims3gpp
+
+group CONFTemplates {
+ template booleanXSD boolXSD_true:={bool:=true}
+ template booleanXSD boolXSD_false:={bool:=false}
+
+ template anyAttributes m_emptyAnyAttributes:={}
+
+ template ietf_params_xml_ns_conference_info.Media_type m_mediatype_status(template Media_status_type p_status):= {
+ id:="1",
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text :=omit,
+ type_ :=omit,
+ label_ :=omit,
+ src_id:=omit,
+ status:= p_status,
+ elem:=omit
+ }
+
+ template Endpoint_type m_endpoint(template charstring p_Uri,template Endpoint_status_type p_epStatus,template Joining_type p_joinMethod, template Disconnection_type p_discMethod, template ietf_params_xml_ns_conference_info.Media_type p_mediastatus):= {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ referred:=omit,
+ status:=p_epStatus,
+ joining_method:=p_joinMethod,
+ joining_info:=omit,
+ disconnection_method:=omit,
+ disconnection_info:=omit,
+ media:={p_mediastatus},// optional,
+ call_info:=omit,
+ elem:=omit
+ }
+
+ template User_type m_1user (template charstring p_Uri,template Endpoint_type p_endpoint) := {
+ entity:=p_Uri,
+ state:=full,
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ display_text:=omit,
+ associated_aors:=omit,
+ roles:=omit,
+ languages :=omit,
+ cascaded_focus :=omit,
+ endpoint:={p_endpoint},// optional,
+ elem:=omit
+ }
+
+ template Users_type m_users_1user_full(template User_type p_user):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user},
+ elem:=omit
+ }
+
+ template Users_type m_users_2user_full(template User_type p_user1,template User_type p_user2):={
+ state:=full,
+ anyAttributes := omit,//m_emptyAnyAttributes,
+ user:={p_user1,p_user2},
+ elem:=omit
+ }
+
+ template Conference_state_type m_conference_state(template unsignedInt p_nUsers, template booleanXSD p_active, template booleanXSD p_locked) := {
+ anyAttributes:=omit,//m_emptyAnyAttributes,
+ user_count:=p_nUsers,
+ active:=p_active,
+ locked:=p_locked,
+ elem := omit
+ }
+
+ template Conference_type m_ci_cUri_cState_userEntity(template charstring p_cUri, template Conference_state_type p_cState, template Users_type p_users ) := {
+ entity := p_cUri,
+ state := full,
+ version := 1,
+ anyAttributes := omit,//m_emptyAnyAttributes,//*,// {{name:="",val:=""}},
+ conference_description := omit,
+ host_info := omit,
+ conference_state := p_cState,
+ users := p_users,
+ sidebars_by_ref := omit,
+ sidebars_by_val := omit,
+ elem := omit
+ }
+
+ template Conference_type mw_conferenceInfo_active := {
+ entity := ?,
+ state := *,
+ version := *,
+ anyAttributes := ?,
+ conference_description := *,
+ host_info := *,
+ conference_state := ?,
+ users := {
+ state := ?,
+ anyAttributes := ?,
+ user := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := *,
+ display_text := *,
+ associated_aors := *,
+ roles := *,
+ languages := *,
+ cascaded_focus := *,
+ endpoint := {
+ {
+ entity := *,
+ state := *,
+ anyAttributes := ?,
+ display_text := *,
+ referred := *,
+ status := connected,
+ joining_method := dialed_in,
+ joining_info := *,
+ disconnection_method := *,
+ disconnection_info := *,
+ media := *,
+ call_info := *,
+ elem := *
+ }
+ },
+ elem := *
+ }
+ },
+ elem := omit
+ },
+ sidebars_by_ref := *,
+ sidebars_by_val := *,
+ elem := *
+ }
+}
+
+} // end group MessageBodyTemplates
+
+group MessageTemplates {
+
+group modified_templates {
+
+group request_send {
+
+
+ template ACK_Request m_ACK_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template Route p_route) modifies m_ACK_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_Reason_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ reason := mw_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UserToUser_IMS
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, template charstring p_U2UData)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ route := p_route,
+ userToUser := m_UserToUserData(p_U2UData)
+ }
+ }
+
+ template BYE_Request m_BYE_Request_UE
+ ( SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route)
+ modifies m_BYE_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ //securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_Reason_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route, integer p_cause) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ reason := m_Reason(p_cause),
+ route := p_route
+ }
+ }
+
+ template CANCEL_Request m_CANCEL_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template Route p_route) modifies m_CANCEL_Request_Base :=
+ {
+ msgHeader :=
+ {
+ route := p_route
+ }
+ }
+
+ /*
+ *
+ * @desc INFO message
+ *
+ */
+ template INFO_Request m_INFO_Request_IMS
+ (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
+ Via p_via, template MessageBody p_mb )
+ modifies m_INFO_Request_Base
+ :=
+ {
+ msgHeader :=
+ {
+ contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
+ contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
+ },
+ messageBody := p_mb
+ }
+
+ /*
+ *
+ * @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_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 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
+ },
+ require := p_require,
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ supported := p_supported
+ },
+ messageBody := p_mb
+ }
+
+ template REGISTER_Request m_REGISTER_Request_UE (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization,
+ template ProxyRequire p_proxyRequire, template Require p_require,
+ template SecurityClient p_securityClient, template SecurityVerify p_securityVerify, template Supported p_supported)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ proxyRequire := p_proxyRequire,
+ require := p_require,
+ securityClient := p_securityClient,
+ securityVerify := p_securityVerify,
+ supported := p_supported,
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+
+
+ template REGISTER_Request m_REGISTER_Request_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization)
+ modifies m_REGISTER_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := REGISTER_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ authorization := p_authorization,
+ callId := p_callId,
+ contact := p_contact,
+ cSeq := p_cSeq,
+ fromField := p_from,
+ path := m_path_TS,
+ pChargingVector := m_pChargingVector_icid_TS,
+ pVisitedNetworkID := m_pVisitedNetworkID_TS,
+ require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
+ toField := p_to,
+ via := p_via
+
+ }
+ }
+ template REGISTER_Request m_REGISTER_Request_expires_IMS (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization, template DeltaSec p_deltaSec)
+ modifies m_REGISTER_Request_IMS :=
+ {
+ msgHeader :=
+ {
+ expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template Route p_route) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
+ event := m_Event_reg,
+ expires := m_Expires_600000,
+ route := p_route
+ }
+ }
+
+ template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_UE (SipUrl p_requestUri, CallId p_callId,
+ CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_SUBSCRIBE_Request_Base :=
+ {
+ requestLine :=
+ {
+ method := SUBSCRIBE_E,
+ requestUri := p_requestUri
+ },
+ msgHeader :=
+ {
+ pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
+ contact := p_contact,
+ 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 INVITE_Request mw_INVITE_Request_noPChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := omit}
+ }
+ template INVITE_Request mw_INVITE_Request_PChargingFunction modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pChargingFunctionAddresses := ?}
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_noPPreferred (template PAssertedID p_pAssertedID)modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_PAsserted_AcceptContact (template PAssertedID p_pAssertedID, template AcceptContact p_acceptContact) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ acceptContact := p_acceptContact
+ }
+ }
+
+ template INVITE_Request mw_INVITE_Request_RecordRoute_Via (template RecordRoute p_recordRoute, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {recordRoute := p_recordRoute,
+ via := p_via}
+ }
+
+ template INVITE_Request mw_INVITE_Request_route (template Route p_route) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {route := p_route}
+ }
+
+ template INVITE_Request mw_INVITE_Request_require (
+ template Require p_require
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { require := p_require }
+ }
+
+ template INVITE_Request mw_INVITE_Request_supported (
+ template Supported p_supported
+ ) modifies mw_INVITE_Request_Base := {
+ msgHeader := { supported := p_supported }
+ }
+
+ template INVITE_Request mw_INVITE_Request_SessionExpires (template SessionExpires p_sessionExpires) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {sessionExpires := p_sessionExpires}
+ }
+
+ template INVITE_Request mw_INVITE_Request_User2UserData (template charstring p_U2UData) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {userToUser := mw_UserToUserData(p_U2UData)}
+ }
+
+ template INVITE_Request mw_INVITE_Request_IMS (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ }
+ }
+ template INVITE_Request mw_INVITE_Request_IMS_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_pstn (template PChargingVector p_pChargingVector, template RecordRoute p_recordRoute, template Route p_route, template Via p_via, template PSTN_transit p_pstn ) modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ pChargingVector := p_pChargingVector,
+ recordRoute := p_recordRoute,
+ route := p_route,
+ via := p_via
+ },
+ messageBody := (mw_MBody_XML(mw_XmlBody_PSTNTransit(p_pstn)),
+ mw_MBody_MIMESdpXml(?, mw_XmlBody_PSTNTransit(p_pstn)))//m_MBody_PSTN(p_pstn)//PSTN_transit
+ }
+
+ /*
+ *
+ * @desc Await INVITE using topology hiding
+ */
+ template INVITE_Request mw_INVITE_Request_TH modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ /*
+ *
+ * @desc Await INVITE without PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_noPasserted_noPrivacy (template From p_from)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := { fromField := p_from,
+ pAssertedID := omit,
+ pPreferredID := omit}
+ }
+
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_PassertedPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_Passerted_ifPrivacy (template From p_from, template PAssertedID p_pAssertedID, template Privacy p_privacy)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ fromField := p_from,
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy ifpresent}
+ }
+
+ /*
+ *
+ * @desc Await INVITE with PAsserted and Privacy
+ */
+ template INVITE_Request mw_INVITE_Request_HistoryInfo (template HistoryInfo p_historyInfo)
+ modifies mw_INVITE_Request_Base
+ :=
+ {
+ msgHeader := {
+ historyInfo := p_historyInfo}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_UE
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_noPchargingFunction_IMS
+ modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := { pChargingFunctionAddresses := omit,
+ pChargingVector := omit}
+ }
+
+ template MESSAGE_Request mw_MESSAGE_Request_PAsserted_noPPreferred (template CallId p_callId, template PAssertedID p_pAssertedID)modifies mw_MESSAGE_Request_Base
+ :=
+ {
+ msgHeader := {pAssertedID := p_pAssertedID,
+ pPreferredID := omit
+ }
+ }
+
+ template 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_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_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, template PChargingVector p_pChargingVector ) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ 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, 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, integer p_cause) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ contact := p_contact,
+ maxForwards := omit,
+ reason := mw_Reason(p_cause)
+ }
+ }
+
+ template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
+ From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
+ {
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+}//end group response_send
+
+group response_receive
+{
+
+ template Response mw_Response_200onINVITE_noPChargingVector_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_200onINVITE_SDP_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ messageBody := {
+ sdpMessageBody := ?
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPCharging_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingFunctionAddresses := omit,
+ pChargingVector := omit
+ }
+ }
+
+
+ template Response mw_Response_2xxonMESSAGE_noPAccessNetworkInfo_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAccessNetworkInfo := omit
+ }
+ }
+
+ template Response mw_Response_2xxonMESSAGE_noPMediaAuthorization_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pMediaAuthorization := omit
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_securityServer_UE(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ securityServer := ?,
+ wwwAuthenticate := ?
+ }
+ }
+
+ template Response mw_Response_401onREGISTER_WWWauthenticate_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template WwwAuthenticate p_wwwAuthenticate) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ wwwAuthenticate := p_wwwAuthenticate
+ }
+ }
+
+ template Response mw_Response_200onREGISTER_IMS(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template SipUrl p_ue_uri, template Contact p_contact, template SipUrl p_sut_scscf_uri) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssociatedURI := {fieldName := P_ASSOCIATED_URI_E, nameAddrList:={*,{nameAddr:={displayName:=*,addrSpec:=p_ue_uri},genericParams:=*},*}},
+ path := ?,
+ serviceRoute := {fieldName := SERVICE_ROUTE_E, routeBody := {{nameAddr:={displayName:=*,addrSpec:=p_sut_scscf_uri},rrParam:=*}}},
+ pChargingFunctionAddresses := ?,
+ pChargingVector := ?,
+ contact := p_contact
+ }
+ }
+
+ template Response mw_Response_PpreferredID_PassertedID(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PPreferredID p_pPreferredID, template PAssertedID p_pAssertedID) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ pPreferredID := p_pPreferredID
+ }
+ }
+
+ template Response mw_Response_PAsserted_Privacy_History (template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pAssertedID := p_pAssertedID,
+ privacy := p_privacy,
+ historyInfo := p_historyInfo
+ }
+ }
+
+ template Response mw_Response_PchargingVector(template StatusLine p_statusLine, template CallId p_callId,
+ template CSeq p_cSeq, template PChargingVector p_chargingVector) modifies mw_Response_Base:=
+ {
+ statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
+ msgHeader :=
+ {
+ pChargingVector := p_chargingVector // mw_pChargingVector(p_id,p_paramValue)
+ }
+ }
+
+} // end response_receive
+
+}//end modified_templates
+
+}//end Message_templates
+
+} // end module LibIms_Templates
/tags/v1.5.0/ttcn/LibIms_Templates.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.5.0/ttcn/LibIms_Steps.ttcn
===================================================================
--- tags/v1.5.0/ttcn/LibIms_Steps.ttcn (nonexistent)
+++ tags/v1.5.0/ttcn/LibIms_Steps.ttcn (revision 98)
@@ -0,0 +1,1308 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests.
+ */
+
+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;
+ //LibIms
+ import from LibIms_Templates all;
+ import from LibIms_Interface all;
+ import from LibIms_PIXITS all;
+ import from LibIms_SIPTypesAndValues all;
+
+ group externalfunctions {
+ }
+ 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
+ */
+ function f_setHeadersForwardRequestFromAS (inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+ var Request v_request;
+ v_request := vc_request;
+
+ vc_via := v_request.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ vc_route := v_request.msgHeader.route; // TODO route header need to be adapted due to standards
+
+ }// 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_via:= v_response.msgHeader.via; // TODO via header need to be adapted due to standards
+
+ if (ispresent(v_response.msgHeader.recordRoute)) {
+ vc_recordRoute:= v_response.msgHeader.recordRoute; // TODO recordRoute header need to be adapted due to standards
+ }
+ }// 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) runs on ImsComponent
+ {
+ f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
+
+ vc_reqHostPort := vc_requestUri.hostPort;
+
+ if(p_orginatingSide) {
+ vc_to := vc_caller_To;
+ vc_from := vc_caller_From;
+ }
+ else {
+ vc_to := vc_callee_To;
+ vc_from := vc_callee_From;
+ }
+
+ }// 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,
+ userInfo := omit,
+ hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
+ urlParameters := omit,
+ headers := omit
+ };
+
+ vc_reqHostPort := vc_requestUri.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_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.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
+ }
+
+ 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 p_sipUrl := {
+ scheme := c_sipScheme, // contains "sip"
+ userInfo := omit,
+ hostPort := omit,
+ urlParameters := omit,
+ headers := omit};
+
+ select(p_user){
+ case (c_userProfile_UE1atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE2atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE3atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE3_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_UE4atSUThome) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_UE4_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_IBCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ICSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_PCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_SCSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT}
+// case (c_userProfile_SCSCFwithHomeUE) {
+// p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+// p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_userProfile_ECSCFwithHomeUE) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ECSCF_IPADDR, portField :=omit}
+ }
+ case (c_userProfile_ISUP) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+ case (c_serviceProfile_EMERGENCY_INVALID) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit}
+ }
+
+ // following setting is used for the assignment of the Path header field
+ case (c_interfaceProfile_IMS_SUT_PCSCF1) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.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) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_IPADDR, portField :=PX_IMS_SUT_PCSCF1_PORT}
+ }
+ case (c_conferenceProfile_factoryURI) {
+ p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit};
+ p_sipUrl.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := PX_IMS_SUT_CONF_PORT}
+ }
+ };
+ return(p_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 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
+ {
+ vc_ignore_subscribe := true;//handle SUBSCRIBE during the call
+ 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_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));
+
+ }//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, inout CSeq p_cSeq_s, out template REGISTER_Request p_register) runs on ImsComponent
+ {
+
+ //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
+ * (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, inout CSeq p_cSeq_s) runs on ImsComponent
+ {
+
+ //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));
+ }
+
+ } // 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();
+ }
+
+ 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_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
+ {
+ // 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) 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
+ }
+ } // end function f_terminateCall_UE
+
+ }
+ group defaults {
+ }
+} // module LibIms_Steps
/tags/v1.5.0/ttcn/LibIms_Steps.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.5.0/ttcn/LibIms_PIXITS.ttcn
===================================================================
--- tags/v1.5.0/ttcn/LibIms_PIXITS.ttcn (nonexistent)
+++ tags/v1.5.0/ttcn/LibIms_PIXITS.ttcn (revision 98)
@@ -0,0 +1,602 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_PIXITS
+{
+ //LibCommon
+ import from LibCommon_BasicTypesAndValues all;
+ import from LibCommon_TextStrings all;
+ import from LibCommon_DataStrings all;
+
+group SUT {
+
+group SUT_UE {
+ modulepar {
+ /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_UE_PORT := 5060;
+ }//end modulepar
+}//end group SUT_UE1
+group SUT_UE1 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE1 local domain
+ */
+ charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE1 local user
+ */
+ 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
+ */
+ 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
+ */
+ 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.
+ */
+ charstring PX_IMS_SUT_UE1_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE1
+ */
+ charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net";
+
+ /** @desc charstring for UE1 display name
+ */
+ charstring PX_IMS_SUT_UE1_DISPLAY := "UE1@SUT";
+ }
+} // end group SUT_UE1
+
+group SUT_UE2 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE2 local user
+ */
+ 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
+ */
+ 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
+ */
+ 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.
+ */
+ charstring PX_IMS_SUT_UE2_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE2
+ */
+ charstring PX_IMS_SUT_UE2_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE2
+
+group SUT_UE3 {
+ modulepar {
+ /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF3_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE3 local user
+ */
+ 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
+ */
+ 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
+ */
+ 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.
+ */
+ charstring PX_IMS_SUT_UE3_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE3
+ */
+ charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE3
+
+group SUT_UE4 {//UE4 can be used as UE1Visited
+ modulepar {
+ /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
+ */
+ 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
+ */
+ integer PX_IMS_SUT_PCSCF4_PORT := 5060;
+
+ /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2";
+
+ /** @desc charstring for identity of the tester UE2 local domain
+ */
+ charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net";
+
+ /** @desc charstring for identity of the tester UE4 local user
+ */
+ 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
+ */
+ 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
+ */
+ 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.
+ */
+ charstring PX_IMS_SUT_UE4_QOP := "auth";
+
+ /** @desc charstring for home(SUT) REGISTRAR domain of UE4
+ */
+ charstring PX_IMS_SUT_UE4_REGISTRAR := "registrar.sut.net";
+ }
+} // end group SUT_UE4
+
+group SUT_unknown{
+ modulepar {
+ /** @desc charstring for identity of unknown UE public user
+ */
+ charstring PX_IMS_SUT_unknownUE_PUBLIC_USER := "0007";
+ }
+} // end group SUT_unknown
+
+group EMERGENCY{
+ modulepar {
+ /** @desc charstring for identity of emergency service local domain
+ */
+ charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "home.net";
+
+ /** @desc charstring for identity of the emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos";
+
+ /** @desc charstring for identity of the invalid emergency service
+ */
+ charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid";
+ }
+}// end group EMERGENCY service
+
+group SUT_IBCF {
+ modulepar {
+ /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5";
+
+ /** @desc integer for SUT/IBCF1 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF1_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF1 domain
+ */
+ charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net";
+
+ /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6";
+
+ /** @desc integer for SUT/IBCF2 port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IBCF2_PORT := 5060;
+
+ /** @desc charstring for SUT/IBCF2 domain
+ */
+ charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net";
+ }
+} // end group SUT_IBCF
+group SUT_PCSCF {
+ modulepar {
+ /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2";
+
+ /** @desc integer for SUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_PCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/P-CSCFdomain
+ */
+ charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net";
+
+ /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455)
+ */
+ 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)
+ */
+ charstring PX_IMS_SUT_PCSCF_MinSE := "100";
+ }
+} // end group SUT_PCSCF
+group SUT_SCSCF {
+ modulepar {
+ /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4";
+
+ /** @desc integer for SUT/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_SCSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/S-CSCFdomain
+ */
+ charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net";
+
+ /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF
+ */
+ charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf";
+ }
+} // end group SUT_SCSCF
+
+group SUT_ICSCF {
+ modulepar {
+ /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3";
+
+ /** @desc integer for SUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_ICSCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-CSCFdomain
+ */
+ charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net";
+ }
+} // end group SUT_ICSCF
+
+group SUT_AS {
+ modulepar {
+ /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF
+ */
+ 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
+ */
+ integer PX_IMS_SUT_AS_PORT := 5060;
+
+ /** @desc charstring for SUT/AS domain
+ */
+ charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net";
+
+ }//end modulepar
+}//end group SUT_UE1
+
+group SUT_IMGCF {
+ modulepar {
+ /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10";
+
+ /** @desc integer for SUT/I-MGCF port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_IMGCF_PORT := 5060;
+
+ /** @desc charstring for SUT/I-MGCFdomain
+ */
+ charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net";
+ }
+} // end group SUT_IMGCF
+
+group SUT_CONF {
+ modulepar {
+ /**
+ * @desc
+ * charstring for SUT/conference IP address to exchange SIP messages
+ */
+ charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10";
+ /**
+ * @desc integer for SUT/conference port number to exchange SIP messages
+ */
+ integer PX_IMS_SUT_CONF_PORT := 5060;
+ /**
+ * @desc charstring for SUT/conference domain
+ */
+ charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net";
+ /**
+ * @desc charstring for conference factory URI name
+ */
+ charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name";
+ };
+
+} // end group SUT_CONF
+
+} // end group SUT
+group TS {
+group TS_UE1 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE1 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE1_IPADDR := "172.31.1.240";
+
+ /** @desc integer for port number used by the UE1 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE1_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE1_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE1
+
+group TS_UE2 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE2 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE2_IPADDR := "172.31.1.241";
+
+ /** @desc integer for port number used by the UE2 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE2_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE2_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE2
+
+group TS_UE3 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE3_IPADDR := "172.31.1.242";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE3_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE3_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE3
+
+group TS_UE4 {
+ modulepar {
+ /** @desc charstring for IP address used by the UE3 to exchange SIP messages
+ */
+ charstring PX_IMS_TS_UE4_IPADDR := "172.31.1.243";
+
+ /** @desc integer for port number used by the UE3 to exchange SIP messages
+ */
+ integer PX_IMS_TS_UE4_PORT := 5060;
+
+ /** @desc charstring for visited(TS) REGISTRAR domain
+ */
+ charstring PX_IMS_TS_UE4_REGISTRAR := "registrar.ts.net";
+ }
+} // end group TS_UE4
+
+group TS_IBCF {
+ modulepar {
+ /** @desc charstring for TS/IBCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_IBCF_IPADDR := "172.31.1.15";
+
+ /** @desc integer for TS/IBCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_IBCF_PORT := 5060;
+
+ /** @desc charstring for TS/IBCF domain
+ */
+ charstring PX_IMS_TS_IBCF_HOME_DOMAIN := "ibcf.ts.net";
+ }
+} // end group TS_IBCF
+
+group TS_ICSCF {
+ modulepar {
+ /** @desc charstring for TS/I-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ICSCF_IPADDR := "172.31.1.13";
+
+ /** @desc integer for IUT/I-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ICSCF_PORT := 5060;
+
+ /** @desc charstring for TS/I-CSCF domain
+ */
+ charstring PX_IMS_TS_ICSCF_HOME_DOMAIN := "icscf.ts.net";
+ }
+} // end group TS_ICSCF
+
+group TS_PCSCF {
+ modulepar {
+ /** @desc charstring for TS/P-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_PCSCF_IPADDR := "172.31.1.12";
+
+ /** @desc integer for IUT/P-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_PCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/P-CSCFdomain
+ */
+ charstring PX_IMS_TS_PCSCF_HOME_DOMAIN := "pcscf.ts.net";
+ }
+} // end group TS_PCSCF
+
+group TS_SCSCF {
+ modulepar {
+ /** @desc charstring for TS/S-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_SCSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/S-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_SCSCF_PORT := 5060;
+
+ /** @desc charstring for TS/S-CSCFdomain
+ */
+ 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
+ */
+ charstring PX_IMS_SUT_BARRED_PUBLIC_USER;
+
+ /** @desc charstring invalid GRUU for Request-URI to be rejected by IUT S-CSCF
+ */
+ 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
+ */
+ 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 **
+ */
+ charstring PX_IMS_SUT_UNSUBSCRIBED_SDP_SERVICE;
+ }
+} // end group TS_SCSCF
+
+group TS_ECSCF {
+ modulepar {
+ /** @desc charstring for TS/E-CSCF IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_ECSCF_IPADDR := "172.31.1.14";
+
+ /** @desc integer for TS/E-CSCF port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_ECSCF_PORT := 5060;
+
+ /** @desc charstring for TS/E-CSCFdomain
+ */
+ charstring PX_IMS_TS_ECSCF_HOME_DOMAIN := "ECSCF.ts.net";
+ }
+} // end group TS_ECSCF
+
+group TS_IMS1user {
+ modulepar {
+ /** @desc charstring for public userinfo/displayname addressing IMS1UE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_IMS1UE_PUBLIC_USER := "IMS1UE";
+
+ /** @desc charstring for TS/domain
+ */
+ charstring PX_IMS_TS_IMS1UE_HOME_DOMAIN := "ts.net";
+ }
+} // end group TS_IMS1user
+
+group TS_ISUPuser {
+ modulepar {
+ /** @desc charstring for public userinfo addressing ISUPUE (simulated by the TS)
+ */
+ charstring PX_IMS_TS_ISUP_PUBLIC_USER := "070123456";
+
+ /** @desc charstring for ISUP TS/domain or IPAddres
+ */
+ charstring PX_IMS_TS_ISUP_HOME_DOMAIN := "172.27.11.80";
+ }
+} // end group TS_ISUPuser
+
+
+group TS_AS {
+ modulepar {
+ /** @desc charstring for TS/AS1 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS1_IPADDR := "172.31.1.18";
+
+ /** @desc integer for TS/AS1 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS1_PORT := 5060;
+
+ /** @desc charstring for TS/AS1 domain
+ */
+ charstring PX_IMS_TS_AS1_HOME_DOMAIN := "as1.ts.net";
+
+ /** @desc charstring for TS/AS2 IP address to exchange SIP messages
+ */
+ charstring PX_IMS_TS_AS2_IPADDR := "172.31.1.19";
+
+ /** @desc integer for TS/AS2 port number to exchange SIP messages
+ */
+ integer PX_IMS_TS_AS2_PORT := 5060;
+
+ /** @desc charstring for TS/AS2 domain
+ */
+ charstring PX_IMS_TS_AS2_HOME_DOMAIN := "as2.ts.net";
+ }
+} // end group TS_AS
+} // end group TS
+} // end module LibIms_PIXITS
/tags/v1.5.0/ttcn/LibIms_PIXITS.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.5.0/ttcn/LibIms_SIPTypesAndValues.ttcn
===================================================================
--- tags/v1.5.0/ttcn/LibIms_SIPTypesAndValues.ttcn (nonexistent)
+++ tags/v1.5.0/ttcn/LibIms_SIPTypesAndValues.ttcn (revision 98)
@@ -0,0 +1,90 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types and constants used by the test component
+ * for SIP tests.
+ */
+
+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
+
+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_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
/tags/v1.5.0/ttcn/LibIms_SIPTypesAndValues.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/v1.5.0/ttcn/LibIms_Interface.ttcn
===================================================================
--- tags/v1.5.0/ttcn/LibIms_Interface.ttcn (nonexistent)
+++ tags/v1.5.0/ttcn/LibIms_Interface.ttcn (revision 98)
@@ -0,0 +1,42 @@
+/*
+ * @author STF 346, STF366, STF368, STF369
+ * @version $Id$
+ * @desc This module provides the types used by the test component
+ * for SIP-IMS tests. Module become from STF306 and STF334-336
+ */
+
+module LibIms_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
+ {
+
+ //Solution for building error problem. (Important for validation)
+ //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
+ //With this solution TAU compiler error.
+ type component ImsComponent extends SipComponent
+ {
+ // general variables
+ var ImsInterfaceProfile vc_interfaceprofile
+ } // end ImsComponent
+
+// type address WorkaroundAddress; //Remove it later
+ }// end group AdressTypes
+
+
+
+
+} // end module LibIms_TestSystem
/tags/v1.5.0/ttcn/LibIms_Interface.ttcn
Property changes:
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property