diff --git a/ttcn/LibIms_PIXITS.ttcn b/ttcn/LibIms_PIXITS.ttcn index c971159e1e63c8dea76ea2fe4437c102b01832a0..1af088e1a6a9b133a2c1992e177d90a35a35fe8f 100644 --- a/ttcn/LibIms_PIXITS.ttcn +++ b/ttcn/LibIms_PIXITS.ttcn @@ -225,10 +225,14 @@ group EMERGENCY{ /** @desc charstring for identity of the emergency service */ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE := "service:sos"; - - /** @desc charstring for identity of the invalid emergency service + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_namespaceId := "service"; + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString := "sos"; + + /** @desc charstring for identity of the invalid emergency service */ modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service:sos.invalid"; + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceId := "service"; + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceSpecificString := "sos.invalid"; }// end group EMERGENCY service group SUT_IBCF { diff --git a/ttcn/LibIms_SIPTypesAndValues.ttcn b/ttcn/LibIms_SIPTypesAndValues.ttcn index 2b30fd9cfe01b63ced995d43880f29c0ba28400f..9f6240bc3894e48966e0528c6ac4df483ab0cec2 100644 --- a/ttcn/LibIms_SIPTypesAndValues.ttcn +++ b/ttcn/LibIms_SIPTypesAndValues.ttcn @@ -18,7 +18,7 @@ const integer c_ISUP_HOP_COUNT:=31; //TODO replace this value with appropriate P // URN scheme (RFC 5031) // TODO NOTE: this definition is for temporary use -const charstring c_urnScheme := "urn"; +// const charstring c_urnScheme := "urn"; // defined in LibSIPTyypesAndValues group UserProfileConstants { diff --git a/ttcn/LibIms_Steps.ttcn b/ttcn/LibIms_Steps.ttcn index c3c372ab2aa9de09597e1faaf183de576b25fe43..6903c0a1e529133c6e32f48a28869135dbe188a0 100644 --- a/ttcn/LibIms_Steps.ttcn +++ b/ttcn/LibIms_Steps.ttcn @@ -15,6 +15,7 @@ module LibIms_Steps import from LibSip_PIXITS all; import from LibSip_Interface all; import from LibSip_XMLTypes all; + import from LibSip_MessageBodyTypes all; //LibIms import from LibIms_Templates all; import from LibIms_Interface all; @@ -268,7 +269,7 @@ module LibIms_Steps { f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via - vc_reqHostPort := vc_requestUri.hostPort; + vc_reqHostPort := vc_requestUri.components.sip.hostPort; if(p_orginatingSide) { vc_to := vc_caller_To; @@ -328,13 +329,14 @@ module LibIms_Steps vc_requestUri:= { scheme := c_sipScheme, - userInfo := omit, - hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit}, + components := { sip:= { + userInfo := omit, + hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit}}}, urlParameters := omit, headers := omit }; - vc_reqHostPort := vc_requestUri.hostPort; + vc_reqHostPort := vc_requestUri.components.sip.hostPort; vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr }; vc_callIdReg := vc_callId; @@ -752,91 +754,91 @@ module LibIms_Steps { var SipUrl p_sipUrl := { scheme := c_sipScheme, // contains "sip" + components := { sip:= { userInfo := omit, - hostPort := omit, + hostPort := {omit,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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE3_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_PCSCF_IPADDR, portField :=omit} } case (c_userProfile_SCSCFwithHomeUE) { - p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT} } case (c_userProfile_SCSCFwithHomeUE_domain) { - p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=omit} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE4_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=omit} } case (c_userProfile_AS1) { - p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_TS_AS1_IPADDR, portField :=omit} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_AS1_IPADDR, 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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_TS_ISUP_HOME_DOMAIN, portField :=omit} } case (c_serviceProfile_EMERGENCY) { - // TODO NOTE: this definition is for temporary use p_sipUrl.scheme := c_urnScheme; - p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit} + p_sipUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceId; + p_sipUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString; + //p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit} } case (c_serviceProfile_EMERGENCY_INVALID) { - // TODO NOTE: this definition is for temporary use p_sipUrl.scheme := c_urnScheme; - p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE_INVALID, password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit} + p_sipUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceId; + p_sipUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceSpecificString; } // following setting is used for the assignment of the Path header field case (c_interfaceProfile_IMS_SUT_PCSCF1) { - p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT} } // following setting is used in relation to the route headers list elements case (c_interfaceSIPURL_IMS_SUT_PCSCF1_domain) { - p_sipUrl.userInfo := {userOrTelephoneSubscriber:="", password:=omit}; - p_sipUrl.hostPort := {host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN, portField :=PX_IMS_SUT_PCSCF1_PORT} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit}; + p_sipUrl.components.sip.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} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:="", password:=omit}; + p_sipUrl.components.sip.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 := omit} + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_CONF_FACTORY_NAME, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_CONF_HOME_DOMAIN, portField := omit} } }; return(p_sipUrl) @@ -1389,7 +1391,7 @@ module LibIms_Steps } group defaults { - altstep a_clearRegistration_IMSuser() runs on SipComponent + altstep a_clearRegistration_IMSuser() runs on ImsComponent { var Response v_response; var Request v_request; diff --git a/ttcn/LibIms_Templates.ttcn b/ttcn/LibIms_Templates.ttcn index 65d611e5519368cea939744b502e65ce1f097724..1887f4f9f1375a76153102f9d7b249d22c51bc9f 100644 --- a/ttcn/LibIms_Templates.ttcn +++ b/ttcn/LibIms_Templates.ttcn @@ -19,6 +19,7 @@ module LibIms_Templates import from LibSip_Steps all; import from LibSip_PIXITS all; import from LibSip_XMLTypes all; + import from LibSip_MessageBodyTypes all; //LibIms import from LibIms_SIPTypesAndValues all; @@ -83,8 +84,9 @@ module LibIms_Templates displayName := *, addrSpec := { scheme := "sip:", - userInfo := *, - hostPort := {p_host, p_port}, + components := { sip:= { + userInfo := *, + hostPort := {p_host, p_port}}}, urlParameters := *, headers := * } @@ -97,13 +99,14 @@ 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" + scheme := c_sipScheme, //* contains "sip" + components := { sip:= { userInfo := omit, //* optional hostPort := - { - host := p_userprofile.currIpaddr, //* hostname, IPv4 or IPv6 as a charstring - portField := p_userprofile.currPort //* optional integer - }, + { + host := p_userprofile.currIpaddr, //* hostname, IPv4 or IPv6 as a charstring + portField := p_userprofile.currPort //* optional integer + }}}, urlParameters := omit, headers := omit } @@ -158,13 +161,14 @@ group HeaderFieldTemplates{ displayName := omit, // optional charstring addrSpec := { scheme := c_sipScheme, - userInfo := { - userOrTelephoneSubscriber := "registrar", - password := omit - }, - hostPort := { - PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT - }, + components := { sip:= { + userInfo := { + userOrTelephoneSubscriber := "registrar", + password := omit + }, + hostPort := { + PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT + }}}, urlParameters := { { id := "lr", paramValue := omit}}, headers := omit } @@ -288,12 +292,13 @@ group HeaderFieldTemplates{ 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 - }, + components := { sip:= { + userInfo := {userOrTelephoneSubscriber := "unknown", password := omit}, + hostPort := + { + host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring + portField := omit + }}}, urlParameters := omit, headers := omit } @@ -319,10 +324,11 @@ group HeaderFieldTemplates{ fieldName := ROUTE_E, routeBody := {{nameAddr := {displayName := omit, addrSpec := {scheme := c_sipScheme, // contains "sip" + components := { sip:= { userInfo := omit, - hostPort := {host:=p_interfaceprofile.SUTHomeDomain, portField:= omit}, - urlParameters := omit, - headers := omit} + hostPort := {host:=p_interfaceprofile.SUTHomeDomain, portField:= omit}}}, + urlParameters := omit, + headers := omit} }, rrParam := omit} }}; @@ -338,12 +344,13 @@ group HeaderFieldTemplates{ 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 - }, + components := { sip:= { + userInfo := {userOrTelephoneSubscriber := "unknown", password := omit}, + hostPort := + { + host := "unknown.domain.name", // hostname, IPv4 or IPv6 as a charstring + portField := omit + }}}, urlParameters := omit, headers := omit } @@ -1119,8 +1126,8 @@ group ResourceListsTemplates { template EntryType m_EntryUser(SipUrl p_user) := { uri := - p_user.userInfo.userOrTelephoneSubscriber & "@" & - p_user.hostPort.host, + p_user.components.sip.userInfo.userOrTelephoneSubscriber & "@" & + p_user.components.sip.hostPort.host, attr := {}, display_name := omit, elem_list := {}