Loading AtsImsIot/AtsImsIot_Behavior.ttcn +15 −6 Original line number Diff line number Diff line Loading @@ -2291,7 +2291,8 @@ group checksTC_IMS_CALL_0010 { boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var template SipUrl v_pcscfEutAUrl := (mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)), mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A))); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { Loading Loading @@ -3297,20 +3298,27 @@ group checksTC_IMS_SS_0008 { boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var template SipUrl v_pcscfEutAIpUrl := mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A)); var ImsUserInfo v_user := f_getAnyValidUser(PX_EUT_B); var template SipUrl v_UserEutBUrl := mw_SipUrl_Host(v_user.domain); var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)}; var template Route v_Route := omit; var Route v_Route; var template Route vt_pcscfRoute := { fieldName := ROUTE_E, routeBody := {mw_routeBody(v_pcscfEutAUrl), *} }; routeBody := ({mw_routeBody(v_pcscfEutAUrl), *}, {mw_routeBody(v_pcscfEutAIpUrl), *} ) }; var Via v_Via; var template Via vt_pcscfVia := { fieldName := VIA_E, viaBody := {mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *} }; viaBody := ({mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *}, {mw_ViaBody_interface(v_pcscfEutAIpUrl.hostPort), *} ) }; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5046_01_mw(v_pcscfEutAUrl, v_UserEutBUrl))}, {mw_SipRequest((mdw_TP_IMS_5046_01_mw(v_pcscfEutAUrl, v_UserEutBUrl), mdw_TP_IMS_5046_01_mw(v_pcscfEutAIpUrl, v_UserEutBUrl)))}, {mw_SipRequest(mw_INVITE_Request_Base)}, {0, omit}, "TP_IMS_5046_01", Loading Loading @@ -4035,7 +4043,8 @@ group checksTC_IMS_SS_0010 { ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)); var template SipUrl v_SCSCF_A_Uri := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)), mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_A))); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { Loading AtsImsIot/AtsImsIot_Functions.ttcn +41 −0 Original line number Diff line number Diff line Loading @@ -1059,6 +1059,47 @@ module AtsImsIot_Functions { } } /** * @desc Get the P-CSCF IP address of referenced EUT * @return if a PCSCF is avaiable, the IP address of the PCSCF, * otherwise error_string */ function f_GetEUTPcscfIpAddress(integer p_ProductIdx) return charstring { var integer v_size_interfaces := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces); var integer v_size_ipinterfaceinfo; var integer v_interface := -1; var integer v_ipinterfaceinfo := -1; var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Gg][Mm]")){ v_interface := i; break; } } if (v_interface > -1) { v_size_ipinterfaceinfo := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo); for(var integer i := 0; i < v_size_ipinterfaceinfo; i := i+1) { if(ispresent(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[i].domainName)) { v_domainname := PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[i].domainName; if (match(substr(v_domainname, 0, 5), pattern "[Pp][Cc][Ss][Cc][Ff]") or match(substr(v_domainname, 0, 5), pattern "[Pp][Tt][Ee][Cc][Hh]")) { v_ipinterfaceinfo := i; } } } } else { log ("P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } if (v_ipinterfaceinfo > -1) { return PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[v_ipinterfaceinfo].IpAddress; } else { log ("P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } } /** * @desc Get the IBCF FQDN address of referenced EUT * @return if a IBCF is avaiable, the domainname of the IBCF, Loading AtsImsIot/AtsImsIot_Templates.ttcn +10 −1 Original line number Diff line number Diff line Loading @@ -634,7 +634,16 @@ module AtsImsIot_Templates { template GenericParam p_param ) modifies mw_INVITE_Request_Base := { msgHeader := { route := omit, // TODO TP is not clear please double check route := (omit, { fieldName := ROUTE_E, routeBody := { *, complement(mw_routeBody(p_SCSCF_Uri)), * } } ), recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := {{ Loading LibIms_ConfigAndTrigger/LibIms_UpperTester.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -453,7 +453,7 @@ module LibIms_UpperTester { userIds := { { genUserId := { publicId := "userSIP", publicId := "userGEN", privateId := "userSIP_priv", password := "123456", domain := "nexcom.etsi", Loading @@ -462,7 +462,7 @@ module LibIms_UpperTester { }}, { sipUserId := { publicId := "userSIP", publicId := "userGEN", privateId := "userSIP_priv", password := "123456", domain := "nexcom.etsi", Loading LibIot/LibIot_PIXITS.ttcn +12 −7 Original line number Diff line number Diff line Loading @@ -221,9 +221,14 @@ module LibIot_PIXITS { interfaceInfo := { IpInterfaceInfo := { { domainName := "as.thomson.net", IpAddress := "0.0.0.0", domainName := "pcscf.thomson.etsi", IpAddress := "10.10.2.10", portNumbers := {5060} }, { domainName := "telephonyas.thomson.net", IpAddress := "10.10.2.20", portNumbers := {5076} } } } Loading Loading @@ -704,7 +709,7 @@ module LibIot_PIXITS { { domainName := "pcscf.nexcom.etsi", IpAddress := "10.10.7.18", portNumbers := {5080} portNumbers := {5080, 5055} }, { domainName := omit, Loading Loading @@ -756,7 +761,7 @@ module LibIot_PIXITS { { domainName := "pcscf.nexcom.etsi", IpAddress := "10.10.7.18", portNumbers := {5080} portNumbers := {5080, 5055} }, { domainName := "icscf.nexcom.etsi", Loading Loading @@ -931,13 +936,13 @@ module LibIot_PIXITS { * @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_A * */ modulepar integer PX_EUT_A := 0; modulepar integer PX_EUT_A := 6; /** * * @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_B */ modulepar integer PX_EUT_B := 5; modulepar integer PX_EUT_B := 8; /** * Loading Loading @@ -974,7 +979,7 @@ module LibIot_PIXITS { * @desc * In case of offline mode, it defines the path where all sessions's Pcap files are located. */ modulepar charstring PX_IOT_PCAP_SESSIONS_PATH := "c:/Captures/Result/MS4 Mon Afternoon 2"; // Do not forget to upgrade PX_EUT_A and PX_EUT_B modulepar charstring PX_IOT_PCAP_SESSIONS_PATH := "c:/Captures/Result/MS2 Wed Afternoon 1"; // Do not forget to upgrade PX_EUT_A and PX_EUT_B /** * @desc Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +15 −6 Original line number Diff line number Diff line Loading @@ -2291,7 +2291,8 @@ group checksTC_IMS_CALL_0010 { boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var template SipUrl v_pcscfEutAUrl := (mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)), mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A))); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { Loading Loading @@ -3297,20 +3298,27 @@ group checksTC_IMS_SS_0008 { boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var template SipUrl v_pcscfEutAIpUrl := mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A)); var ImsUserInfo v_user := f_getAnyValidUser(PX_EUT_B); var template SipUrl v_UserEutBUrl := mw_SipUrl_Host(v_user.domain); var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)}; var template Route v_Route := omit; var Route v_Route; var template Route vt_pcscfRoute := { fieldName := ROUTE_E, routeBody := {mw_routeBody(v_pcscfEutAUrl), *} }; routeBody := ({mw_routeBody(v_pcscfEutAUrl), *}, {mw_routeBody(v_pcscfEutAIpUrl), *} ) }; var Via v_Via; var template Via vt_pcscfVia := { fieldName := VIA_E, viaBody := {mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *} }; viaBody := ({mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *}, {mw_ViaBody_interface(v_pcscfEutAIpUrl.hostPort), *} ) }; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5046_01_mw(v_pcscfEutAUrl, v_UserEutBUrl))}, {mw_SipRequest((mdw_TP_IMS_5046_01_mw(v_pcscfEutAUrl, v_UserEutBUrl), mdw_TP_IMS_5046_01_mw(v_pcscfEutAIpUrl, v_UserEutBUrl)))}, {mw_SipRequest(mw_INVITE_Request_Base)}, {0, omit}, "TP_IMS_5046_01", Loading Loading @@ -4035,7 +4043,8 @@ group checksTC_IMS_SS_0010 { ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)); var template SipUrl v_SCSCF_A_Uri := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)), mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_A))); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { Loading
AtsImsIot/AtsImsIot_Functions.ttcn +41 −0 Original line number Diff line number Diff line Loading @@ -1059,6 +1059,47 @@ module AtsImsIot_Functions { } } /** * @desc Get the P-CSCF IP address of referenced EUT * @return if a PCSCF is avaiable, the IP address of the PCSCF, * otherwise error_string */ function f_GetEUTPcscfIpAddress(integer p_ProductIdx) return charstring { var integer v_size_interfaces := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces); var integer v_size_ipinterfaceinfo; var integer v_interface := -1; var integer v_ipinterfaceinfo := -1; var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Gg][Mm]")){ v_interface := i; break; } } if (v_interface > -1) { v_size_ipinterfaceinfo := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo); for(var integer i := 0; i < v_size_ipinterfaceinfo; i := i+1) { if(ispresent(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[i].domainName)) { v_domainname := PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[i].domainName; if (match(substr(v_domainname, 0, 5), pattern "[Pp][Cc][Ss][Cc][Ff]") or match(substr(v_domainname, 0, 5), pattern "[Pp][Tt][Ee][Cc][Hh]")) { v_ipinterfaceinfo := i; } } } } else { log ("P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } if (v_ipinterfaceinfo > -1) { return PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[v_ipinterfaceinfo].IpAddress; } else { log ("P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "P-CSCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } } /** * @desc Get the IBCF FQDN address of referenced EUT * @return if a IBCF is avaiable, the domainname of the IBCF, Loading
AtsImsIot/AtsImsIot_Templates.ttcn +10 −1 Original line number Diff line number Diff line Loading @@ -634,7 +634,16 @@ module AtsImsIot_Templates { template GenericParam p_param ) modifies mw_INVITE_Request_Base := { msgHeader := { route := omit, // TODO TP is not clear please double check route := (omit, { fieldName := ROUTE_E, routeBody := { *, complement(mw_routeBody(p_SCSCF_Uri)), * } } ), recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := {{ Loading
LibIms_ConfigAndTrigger/LibIms_UpperTester.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -453,7 +453,7 @@ module LibIms_UpperTester { userIds := { { genUserId := { publicId := "userSIP", publicId := "userGEN", privateId := "userSIP_priv", password := "123456", domain := "nexcom.etsi", Loading @@ -462,7 +462,7 @@ module LibIms_UpperTester { }}, { sipUserId := { publicId := "userSIP", publicId := "userGEN", privateId := "userSIP_priv", password := "123456", domain := "nexcom.etsi", Loading
LibIot/LibIot_PIXITS.ttcn +12 −7 Original line number Diff line number Diff line Loading @@ -221,9 +221,14 @@ module LibIot_PIXITS { interfaceInfo := { IpInterfaceInfo := { { domainName := "as.thomson.net", IpAddress := "0.0.0.0", domainName := "pcscf.thomson.etsi", IpAddress := "10.10.2.10", portNumbers := {5060} }, { domainName := "telephonyas.thomson.net", IpAddress := "10.10.2.20", portNumbers := {5076} } } } Loading Loading @@ -704,7 +709,7 @@ module LibIot_PIXITS { { domainName := "pcscf.nexcom.etsi", IpAddress := "10.10.7.18", portNumbers := {5080} portNumbers := {5080, 5055} }, { domainName := omit, Loading Loading @@ -756,7 +761,7 @@ module LibIot_PIXITS { { domainName := "pcscf.nexcom.etsi", IpAddress := "10.10.7.18", portNumbers := {5080} portNumbers := {5080, 5055} }, { domainName := "icscf.nexcom.etsi", Loading Loading @@ -931,13 +936,13 @@ module LibIot_PIXITS { * @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_A * */ modulepar integer PX_EUT_A := 0; modulepar integer PX_EUT_A := 6; /** * * @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_B */ modulepar integer PX_EUT_B := 5; modulepar integer PX_EUT_B := 8; /** * Loading Loading @@ -974,7 +979,7 @@ module LibIot_PIXITS { * @desc * In case of offline mode, it defines the path where all sessions's Pcap files are located. */ modulepar charstring PX_IOT_PCAP_SESSIONS_PATH := "c:/Captures/Result/MS4 Mon Afternoon 2"; // Do not forget to upgrade PX_EUT_A and PX_EUT_B modulepar charstring PX_IOT_PCAP_SESSIONS_PATH := "c:/Captures/Result/MS2 Wed Afternoon 1"; // Do not forget to upgrade PX_EUT_A and PX_EUT_B /** * @desc Loading