Loading AtsImsIot/AtsImsIot_Behavior.ttcn +100 −0 Original line number Diff line number Diff line Loading @@ -3314,6 +3314,106 @@ group checksTC_IMS_SS_0010 { }//end group checksTC_IMS_SS_0010 group checksTC_IMS_PRES_0001 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5097_13_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_PUBLISH_Request_Base(?))}, {}, {0, omit}, "TP_IMS_5097_13", false, p_checkMessage ) ); p_monitorCompRef.done; } //function /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5097_13_isc( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_AS_IMS_B := mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B)); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5097_13_isc(v_AS_IMS_B))}, {mw_SipRequest(mdw_TP_IMS_5097_13_f_isc)}, {0, omit}, "TP_IMS_5097_13", false, p_checkMessage ) ); p_monitorCompRef.done; } //function /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_07_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {}, {0, omit}, "TP_IMS_5108_07", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_07_isc( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_AS_IMS_B := (mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B)), mw_SipUrl_Host(f_GetEUTASServerIpAddress(PX_EUT_B))); var template SipUrl v_SCSCF_IMS_B := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)), mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_B))); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5108_07_isc(v_AS_IMS_B, v_SCSCF_IMS_B))}, {mw_SipRequest(mdw_TP_IMS_5108_07_f_isc)}, {0, omit}, "TP_IMS_5108_07", false, p_checkMessage ) ); p_monitorCompRef.done; } }//end group checksTC_IMS_PRES_0001 group messagingChecks { /** * @desc Starts monitor component behavior for TP_IMS_5097_05 Loading AtsImsIot/AtsImsIot_Functions.ttcn +108 −0 Original line number Diff line number Diff line Loading @@ -865,6 +865,114 @@ module AtsImsIot_Functions { return c_dummyInfo; } /* * * @desc Looks for Presence user for a specific product * @param p_productIdx Index of the product * @return PresUser */ function f_getPresUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].presUserId )) { return PX_IMS_USER_DATA[i].userIds[j].presUserId; } // end if } // end for j log("f_getPresUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getPresUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } /* * * @desc Looks for File transfer user for a specific product * @param p_productIdx Index of the product * @return FtUser */ function f_getFtUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].ftUserId )) { return PX_IMS_USER_DATA[i].userIds[j].ftUserId; } // end if } // end for j log("f_getFtUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getFtUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } /* * * @desc Looks for Content sharing user for a specific product * @param p_productIdx Index of the product * @return ShareUser */ function f_getShareUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].shareUserId )) { return PX_IMS_USER_DATA[i].userIds[j].shareUserId; } // end if } // end for j log("f_getShareUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getShareUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } /* * * @desc Looks for Instant messaging user for a specific product * @param p_productIdx Index of the product * @return ImUser */ function f_getImUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].imUserId )) { return PX_IMS_USER_DATA[i].userIds[j].imUserId; } // end if } // end for j log("f_getImUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getImUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // TODO function f_getUEHostname(integer p_ID, out charstring p_hostname) return boolean { Loading AtsImsIot/AtsImsIot_Templates.ttcn +95 −0 Original line number Diff line number Diff line Loading @@ -804,6 +804,64 @@ module AtsImsIot_Templates { } } /** * * @desc SUBSCRIBE Request checking TP_IMS_5108_07 on ISC */ template SUBSCRIBE_Request mdw_TP_IMS_5108_07_isc( template SipUrl p_ASB_Uri, template SipUrl p_SCSCF_Uri ) modifies mw_SUBSCRIBE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := { { nameAddr := { displayName := *, addrSpec := p_ASB_Uri }, rrParam := * }, { nameAddr := { displayName := *, addrSpec := p_SCSCF_Uri }, rrParam := * }, * } }, pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "orig-ioi", paramValue := ?}, * } } } } /** * * @desc SUBSCRIBE Request checking TP_IMS_5108_07_f on ISC * ifpresent ioi params than fail */ template SUBSCRIBE_Request mdw_TP_IMS_5108_07_f_isc modifies mw_SUBSCRIBE_Request_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "term-ioi", paramValue := *}, * } } } } /** * * @desc 180 Ringing Response checking TP_IMS_5115_01 on MW Loading Loading @@ -1345,6 +1403,43 @@ module AtsImsIot_Templates { } } /** * * @desc PUBLISH Request checking TP_IMS_5097_13 */ template PUBLISH_Request mdw_TP_IMS_5097_13_isc (template SipUrl p_EutB_ASUri) modifies mw_PUBLISH_Request_Base(?) := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := {mw_routeBody(p_EutB_ASUri), *} }, pChargingFunctionAddresses := ?, pChargingVector := mw_PChargingVector({ {id := "orig-ioi", paramValue := *}, // NOTE indicating also operator identifier for IMSA {id := "access-network-charging-info", paramValue := ?}, * }) } } /** * @desc PUBLISH Request checking TP_IMS_5097_13 false */ template PUBLISH_Request mdw_TP_IMS_5097_13_f_isc modifies mw_PUBLISH_Request_Base(?) := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "term-ioi", paramValue := *}, * } } } } template MESSAGE_Request mdw_TP_IMS_5097_05_p_ic( template CallId p_callId ) modifies mw_MESSAGE_Request_Base := { Loading AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +22 −22 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Default SIP URI with DNS/ENUM lookup procedure * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.1 */ testcase TC_IMS_CALL_0001() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -122,7 +122,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Default SIP URI * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.2 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.2 */ testcase TC_IMS_CALL_0001F() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -217,7 +217,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Default Tel URI * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.3 */ testcase TC_IMS_CALL_0002() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -300,7 +300,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Rejection of call from barred user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.4 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.4 */ testcase TC_IMS_CALL_0003() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -346,7 +346,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Rejection of call to non existing user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.5 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.5 */ testcase TC_IMS_CALL_0004() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -388,7 +388,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Rejection of call to unavailable user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.6 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.6 */ testcase TC_IMS_CALL_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -430,7 +430,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Initial request to non-registered user with terminating unregistered filter criterion * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.7 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.7 */ testcase TC_IMS_CALL_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -472,7 +472,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call (roaming) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.1 */ testcase TC_IMS_CALL_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -547,7 +547,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call with hold/resume * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.2 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.2 */ testcase TC_IMS_CALL_0008() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -624,7 +624,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent request(other than target refresh) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.3 */ testcase TC_IMS_CALL_0009() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -680,7 +680,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent target refresh request(INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.4 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.4 */ testcase TC_IMS_CALL_0010() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -748,7 +748,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Call CANCEL by calling user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.1 */ testcase TC_IMS_CALL_0014() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -796,7 +796,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Call failure due to de-registration of calling user during call * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.3 */ testcase TC_IMS_CALL_0016() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -850,7 +850,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent target refresh request (INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.4 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.4 */ testcase TC_IMS_CALL_0017() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -945,7 +945,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent target refresh request (UPDATE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.5 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.5 */ testcase TC_IMS_CALL_0018() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1040,7 +1040,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Addition of media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.6 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.6 */ testcase TC_IMS_CALL_0019() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1130,7 +1130,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Addition of media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.7 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.7 */ testcase TC_IMS_CALL_0020() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1243,7 +1243,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Hold/resume media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.8 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.8 */ testcase TC_IMS_CALL_0021() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1381,7 +1381,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Hold/resume media streams (UPDATE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.9 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.9 */ testcase TC_IMS_CALL_0022() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1519,7 +1519,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call - TH(Topology hiding) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.5.1 */ testcase TC_IMS_CALL_0024() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1601,7 +1601,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc CANCEL call by calling user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.2 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.5.2 */ testcase TC_IMS_CALL_0025() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1650,7 +1650,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call with hold/resume - roaming * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.5.3 */ testcase TC_IMS_CALL_0026() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading AtsImsIot/AtsImsIot_TestCases_MESS.ttcn +7 −7 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network shall support SIP messages greater than 1500 bytes. * (in ETSI TS 186 011-2 V2.3.1 cause 4.5.1.1) * (in ETSI TS 186 011-2 V3.1.1 cause 4.5.1.1) */ testcase TC_IMS_MESS_0001() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -82,7 +82,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging with SIP identity correctly without * topology hiding. (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.1) * topology hiding. (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.1) */ testcase TC_IMS_MESS_0002() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -133,7 +133,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging with TEL URI identities correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.2) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.2) */ testcase TC_IMS_MESS_0003() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -183,7 +183,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging with DNS/ENUM lookup procedure correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.3) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.3) */ testcase TC_IMS_MESS_0004() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -233,7 +233,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging while roaming correctly. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.4) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.4) */ testcase TC_IMS_MESS_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -276,7 +276,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.5) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.5) */ testcase TC_IMS_MESS_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -314,7 +314,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.6) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.6) */ testcase TC_IMS_MESS_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +100 −0 Original line number Diff line number Diff line Loading @@ -3314,6 +3314,106 @@ group checksTC_IMS_SS_0010 { }//end group checksTC_IMS_SS_0010 group checksTC_IMS_PRES_0001 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5097_13_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_PUBLISH_Request_Base(?))}, {}, {0, omit}, "TP_IMS_5097_13", false, p_checkMessage ) ); p_monitorCompRef.done; } //function /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5097_13_isc( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_AS_IMS_B := mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B)); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5097_13_isc(v_AS_IMS_B))}, {mw_SipRequest(mdw_TP_IMS_5097_13_f_isc)}, {0, omit}, "TP_IMS_5097_13", false, p_checkMessage ) ); p_monitorCompRef.done; } //function /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_07_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {}, {0, omit}, "TP_IMS_5108_07", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_07_isc( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_AS_IMS_B := (mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B)), mw_SipUrl_Host(f_GetEUTASServerIpAddress(PX_EUT_B))); var template SipUrl v_SCSCF_IMS_B := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)), mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_B))); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5108_07_isc(v_AS_IMS_B, v_SCSCF_IMS_B))}, {mw_SipRequest(mdw_TP_IMS_5108_07_f_isc)}, {0, omit}, "TP_IMS_5108_07", false, p_checkMessage ) ); p_monitorCompRef.done; } }//end group checksTC_IMS_PRES_0001 group messagingChecks { /** * @desc Starts monitor component behavior for TP_IMS_5097_05 Loading
AtsImsIot/AtsImsIot_Functions.ttcn +108 −0 Original line number Diff line number Diff line Loading @@ -865,6 +865,114 @@ module AtsImsIot_Functions { return c_dummyInfo; } /* * * @desc Looks for Presence user for a specific product * @param p_productIdx Index of the product * @return PresUser */ function f_getPresUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].presUserId )) { return PX_IMS_USER_DATA[i].userIds[j].presUserId; } // end if } // end for j log("f_getPresUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getPresUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } /* * * @desc Looks for File transfer user for a specific product * @param p_productIdx Index of the product * @return FtUser */ function f_getFtUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].ftUserId )) { return PX_IMS_USER_DATA[i].userIds[j].ftUserId; } // end if } // end for j log("f_getFtUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getFtUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } /* * * @desc Looks for Content sharing user for a specific product * @param p_productIdx Index of the product * @return ShareUser */ function f_getShareUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].shareUserId )) { return PX_IMS_USER_DATA[i].userIds[j].shareUserId; } // end if } // end for j log("f_getShareUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getShareUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } /* * * @desc Looks for Instant messaging user for a specific product * @param p_productIdx Index of the product * @return ImUser */ function f_getImUser(integer p_productIdx) return ImsUserInfo { var integer v_size := sizeof(PX_IMS_USER_DATA); const ImsUserInfo c_dummyInfo := { "dummy", "dummy", "dummy", "dummy", "dummy" }; var ImsUserIdentity v_userid; for(var integer i := 0; i < v_size; i := i+1) { if(PX_IMS_USER_DATA[i].productIndex == p_productIdx) { var integer v_size_j := sizeof(PX_IMS_USER_DATA[i].userIds); for(var integer j := 0; j < v_size_j; j := j+1) { if ( ischosen(PX_IMS_USER_DATA[i].userIds[j].imUserId )) { return PX_IMS_USER_DATA[i].userIds[j].imUserId; } // end if } // end for j log("f_getImUser: Did not find specified user id in specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // end if } // end for i log("f_getImUser: Did not find specified product in PX_IMS_USER_DATA"); return c_dummyInfo; } // TODO function f_getUEHostname(integer p_ID, out charstring p_hostname) return boolean { Loading
AtsImsIot/AtsImsIot_Templates.ttcn +95 −0 Original line number Diff line number Diff line Loading @@ -804,6 +804,64 @@ module AtsImsIot_Templates { } } /** * * @desc SUBSCRIBE Request checking TP_IMS_5108_07 on ISC */ template SUBSCRIBE_Request mdw_TP_IMS_5108_07_isc( template SipUrl p_ASB_Uri, template SipUrl p_SCSCF_Uri ) modifies mw_SUBSCRIBE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := { { nameAddr := { displayName := *, addrSpec := p_ASB_Uri }, rrParam := * }, { nameAddr := { displayName := *, addrSpec := p_SCSCF_Uri }, rrParam := * }, * } }, pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "orig-ioi", paramValue := ?}, * } } } } /** * * @desc SUBSCRIBE Request checking TP_IMS_5108_07_f on ISC * ifpresent ioi params than fail */ template SUBSCRIBE_Request mdw_TP_IMS_5108_07_f_isc modifies mw_SUBSCRIBE_Request_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "term-ioi", paramValue := *}, * } } } } /** * * @desc 180 Ringing Response checking TP_IMS_5115_01 on MW Loading Loading @@ -1345,6 +1403,43 @@ module AtsImsIot_Templates { } } /** * * @desc PUBLISH Request checking TP_IMS_5097_13 */ template PUBLISH_Request mdw_TP_IMS_5097_13_isc (template SipUrl p_EutB_ASUri) modifies mw_PUBLISH_Request_Base(?) := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := {mw_routeBody(p_EutB_ASUri), *} }, pChargingFunctionAddresses := ?, pChargingVector := mw_PChargingVector({ {id := "orig-ioi", paramValue := *}, // NOTE indicating also operator identifier for IMSA {id := "access-network-charging-info", paramValue := ?}, * }) } } /** * @desc PUBLISH Request checking TP_IMS_5097_13 false */ template PUBLISH_Request mdw_TP_IMS_5097_13_f_isc modifies mw_PUBLISH_Request_Base(?) := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "term-ioi", paramValue := *}, * } } } } template MESSAGE_Request mdw_TP_IMS_5097_05_p_ic( template CallId p_callId ) modifies mw_MESSAGE_Request_Base := { Loading
AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +22 −22 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Default SIP URI with DNS/ENUM lookup procedure * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.1 */ testcase TC_IMS_CALL_0001() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -122,7 +122,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Default SIP URI * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.2 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.2 */ testcase TC_IMS_CALL_0001F() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -217,7 +217,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Default Tel URI * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.3 */ testcase TC_IMS_CALL_0002() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -300,7 +300,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Rejection of call from barred user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.4 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.4 */ testcase TC_IMS_CALL_0003() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -346,7 +346,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Rejection of call to non existing user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.5 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.5 */ testcase TC_IMS_CALL_0004() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -388,7 +388,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Rejection of call to unavailable user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.6 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.6 */ testcase TC_IMS_CALL_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -430,7 +430,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Initial request to non-registered user with terminating unregistered filter criterion * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.7 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.1.7 */ testcase TC_IMS_CALL_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -472,7 +472,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call (roaming) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.1 */ testcase TC_IMS_CALL_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -547,7 +547,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call with hold/resume * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.2 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.2 */ testcase TC_IMS_CALL_0008() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -624,7 +624,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent request(other than target refresh) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.3 */ testcase TC_IMS_CALL_0009() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -680,7 +680,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent target refresh request(INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.4 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.2.4 */ testcase TC_IMS_CALL_0010() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -748,7 +748,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Call CANCEL by calling user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.1 */ testcase TC_IMS_CALL_0014() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -796,7 +796,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Call failure due to de-registration of calling user during call * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.3 */ testcase TC_IMS_CALL_0016() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -850,7 +850,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent target refresh request (INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.4 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.4 */ testcase TC_IMS_CALL_0017() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -945,7 +945,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Subsequent target refresh request (UPDATE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.5 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.5 */ testcase TC_IMS_CALL_0018() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1040,7 +1040,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Addition of media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.6 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.6 */ testcase TC_IMS_CALL_0019() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1130,7 +1130,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Addition of media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.7 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.7 */ testcase TC_IMS_CALL_0020() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1243,7 +1243,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Hold/resume media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.8 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.8 */ testcase TC_IMS_CALL_0021() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1381,7 +1381,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Hold/resume media streams (UPDATE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.9 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.3.9 */ testcase TC_IMS_CALL_0022() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1519,7 +1519,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call - TH(Topology hiding) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.1 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.5.1 */ testcase TC_IMS_CALL_0024() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1601,7 +1601,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc CANCEL call by calling user * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.2 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.5.2 */ testcase TC_IMS_CALL_0025() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -1650,7 +1650,7 @@ module AtsImsIot_TestCases_CALL { /** * @desc Normal call with hold/resume - roaming * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.3 * @see TS 186 011-2 V3.1.1 cause 4.5.3.1.5.3 */ testcase TC_IMS_CALL_0026() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading
AtsImsIot/AtsImsIot_TestCases_MESS.ttcn +7 −7 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network shall support SIP messages greater than 1500 bytes. * (in ETSI TS 186 011-2 V2.3.1 cause 4.5.1.1) * (in ETSI TS 186 011-2 V3.1.1 cause 4.5.1.1) */ testcase TC_IMS_MESS_0001() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -82,7 +82,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging with SIP identity correctly without * topology hiding. (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.1) * topology hiding. (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.1) */ testcase TC_IMS_MESS_0002() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -133,7 +133,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging with TEL URI identities correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.2) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.2) */ testcase TC_IMS_MESS_0003() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -183,7 +183,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging with DNS/ENUM lookup procedure correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.3) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.3) */ testcase TC_IMS_MESS_0004() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -233,7 +233,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging while roaming correctly. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.4) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.4) */ testcase TC_IMS_MESS_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -276,7 +276,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.5) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.5) */ testcase TC_IMS_MESS_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading Loading @@ -314,7 +314,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.6) * (ETSI TS 186 011-2 V3.1.1 cause 4.5.4.6) */ testcase TC_IMS_MESS_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components Loading