Compare Revisions
-
The credentials to download the source code are:
Username: svnusers
Password: svnusers
/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 |