source: trunk/ETSI-Testsuites/ETSI_auto_IOT/AtsImsIot/AtsImsIot_TestCases_CALL.ttcn @ 18

Last change on this file since 18 was 18, checked in by phdmakk, 14 years ago
File size: 60.6 KB
Line 
1/**
2 *      @author         STF 370
3 *  @version    $Id: $
4 *      @desc           This module provides ATS specific test case definitions.
5 */
6module AtsImsIot_TestCases_CALL {
7        import from AtsImsIot_Behavior {
8        function all;
9    }
10
11        import from AtsImsIot_Functions {
12        function all;
13    }
14
15        import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;}
16
17        import from LibIms_UpperTester {type ImsUserInfo;}
18
19        import from LibIot_TestConfiguration {
20        function f_cf_create_IotEquipmentUser;
21    }
22
23        import from AtsImsIot_TestConfiguration {
24        const all;
25        function all;
26    }
27
28        import from LibIot_TestInterface {type IotEquipmentUser;}
29
30        import from AtsImsIot_TestSystem {
31        type ImsInterfaceMonitor, ImsTestCoordinator, IotSystemInterface;
32    }
33   
34        import from AtsImsIot_TestSystem {type CF_INT_CALL;}
35       
36       
37        /**
38                * @desc Default SIP URI with DNS/ENUM lookup procedure
39                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.1
40                */
41        testcase TC_IMS_CALL_0001() runs on ImsTestCoordinator system IotSystemInterface {
42                // create components
43                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
44                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
45                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
46                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
47                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
48                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
49                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
50                var ImsUserInfo v_userTelInfoB := f_getTelUserId(PX_EUT_B);
51                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
52                               
53                // map/connect component ports
54                f_cf_adapter_up();
55                f_cf_user_up(v_ueA);
56                f_cf_user_up(v_ueB);
57                f_cf_int_call_up(v_config);
58               
59                // preamble
60                f_mtc_userRegistration(v_ueA, v_userInfoA);
61                f_mtc_userRegistration(v_ueB, v_userInfoB);
62               
63                // test body
64                f_mtc_userInitiateCall (v_ueA, v_userTelInfoB); //Test Sequence Step 1
65               
66                // check 1 (INVITE)
67                f_mtc_check_TP_IMS_5097_01_gm(v_gmA, true); // Check1
68                f_mtc_check_TP_IMS_5097_02_gm(v_gmA, true); // Check2
69                f_mtc_check_TP_IMS_5097_04_gm(v_gmA, false); // Check3
70                f_mtc_check_TP_IMS_5097_01_ic(v_ic, true); // Check1   
71                f_mtc_check_TP_IMS_5097_02_ic(v_ic, true); // Check2   
72                f_mtc_check_TP_IMS_5097_04_ic(v_ic, false); // Check3
73
74                // checks 6, 10 (180 Ringing)
75        f_mtc_check_TP_IMS_5115_01_gm(v_gmB, true); // Check 6
76                f_mtc_check_TP_IMS_5115_03_gm(v_gmB, true); // Check 7
77        f_mtc_check_TP_IMS_5131_01_gm(v_gmB, false); // Check 10
78        f_mtc_check_TP_IMS_5115_01_ic(v_ic, true); // Check 6
79        f_mtc_check_TP_IMS_5115_03_ic(v_ic, true); // Check 7
80                f_mtc_check_TP_IMS_5131_01_ic(v_ic, false); // Check 10
81                               
82                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
83                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
84                f_mtc_userAnswerCall(v_ueB); //Test Sequence Step 4
85
86                // checks 8, 11 (2xx)
87                f_mtc_check_TP_IMS_5115_02_gm(v_gmB, true); // Check 8
88                f_mtc_check_TP_IMS_5115_04_gm(v_gmB, true); // Check 9
89                f_mtc_check_TP_IMS_5131_02_gm(v_gmB, false); // Check 11
90                f_mtc_check_TP_IMS_5115_02_ic(v_ic, true); // Check 8
91                f_mtc_check_TP_IMS_5115_04_ic(v_ic, true); // Check 9
92                f_mtc_check_TP_IMS_5131_02_ic(v_ic, false); // Check 11
93
94                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 5
95                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 6
96
97                //check 4 (ACK)
98                f_mtc_check_TP_IMS_5107_02_gm(v_gmA, false); // Check2
99                f_mtc_check_TP_IMS_5107_02_ic(v_ic, false); // Check2
100
101                f_mtc_EndCall(v_ueA); //Test Sequence Step 7
102
103                // check 5 (BYE)
104                f_mtc_check_TP_IMS_5107_01_gm(v_gmA, false); // Check3
105                f_mtc_check_TP_IMS_5107_01_ic(v_ic, false); // Check3
106
107                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 8
108                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 9
109               
110                // postamble
111                f_PO_user_home_deregistration(v_ueA);
112                f_PO_user_home_deregistration(v_ueB);
113                f_cf_int_call_down(v_config);
114               
115                //unmap/disconnet component ports
116                f_cf_user_down(v_ueA);
117                f_cf_user_down(v_ueB);
118                f_cf_adapter_down();
119                f_cf_adapter_down();
120        } //end testcase TC_IMS_CALL_0001
121       
122       
123        /**
124         * @desc Default SIP URI
125         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.2
126         */
127        testcase TC_IMS_CALL_0001F() runs on ImsTestCoordinator system IotSystemInterface {
128                // create components
129                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
130        var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
131                var IotEquipmentUser v_ueB2 := f_cf_create_IotEquipmentUser(c_userUE_B2);
132                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
133                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
134                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
135                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
136                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
137                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
138                               
139                // map/connect component ports
140                f_cf_adapter_up();
141                f_cf_user_up(v_ueA);
142                f_cf_user_up(v_ueB);
143                f_cf_user_up(v_ueB2);
144                f_cf_int_call_up(v_config);
145               
146                // preamble
147                f_mtc_userRegistration(v_ueA, v_userInfoA);
148                f_mtc_userRegistration(v_ueB, v_userInfoB);
149                f_mtc_userRegistration(v_ueB2, v_userInfoB);
150               
151               
152                // test body
153                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
154               
155                // check 1 (INVITE)
156                f_mtc_check_TP_IMS_5097_01_gm(v_gmA, false); // Check1         
157                f_mtc_check_TP_IMS_5097_01_ic(v_ic, false); // Check1
158
159                // checks 4, 6 (180 Ringing)
160                f_mtc_check_TP_IMS_5115_01_gm(v_gmB, true); // Check 4
161                f_mtc_check_TP_IMS_5131_01_gm(v_gmB, false); // Check 6
162                f_mtc_check_TP_IMS_5115_01_ic(v_ic, true); // Check4
163                f_mtc_check_TP_IMS_5131_01_ic(v_ic, false); // Check6
164                f_mtc_check_TP_IMS_5115_01_gm(v_gmB, true); // Check4 
165                f_mtc_check_TP_IMS_5131_01_gm(v_gmB, false); // Check6   
166                f_mtc_check_TP_IMS_5115_01_ic(v_ic, true); // Check4 from UE_B2
167                f_mtc_check_TP_IMS_5131_01_ic(v_ic, false); // Check6 from UE_B2
168                               
169                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
170                f_mtc_userCheckRinging(v_ueB2); //Test Sequence Step 3
171                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 4
172                f_mtc_userAnswerCall(v_ueB2); //Test Sequence Step 5
173
174                // checks 5, 7 (2xx)
175                f_mtc_check_TP_IMS_5115_02_gm(v_gmB, true); // Check 5
176                f_mtc_check_TP_IMS_5131_02_gm(v_gmB, false); // Check 7
177                f_mtc_check_TP_IMS_5115_02_ic(v_ic, true); // Check 5
178                f_mtc_check_TP_IMS_5131_02_ic(v_ic, false); // Check 7
179                f_mtc_check_TP_IMS_5115_02_gm(v_gmB, true); // Check 5
180                f_mtc_check_TP_IMS_5131_02_gm(v_gmB, false); // Check 7
181                f_mtc_check_TP_IMS_5115_02_ic(v_ic, true); // Check5 from UE_B2
182                f_mtc_check_TP_IMS_5131_02_ic(v_ic, false); // Check7 from UE_B2
183               
184               
185                f_mtc_userCheckCallNoLongerOffered(v_ueB); //Test Sequence Step 6
186                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 7
187                f_mtc_userCheckCallEstablished(v_ueB2); //Test Sequence Step 8
188
189                //check 2 (ACK)
190                f_mtc_check_TP_IMS_5107_02_gm(v_gmA, false); // Check2
191                f_mtc_check_TP_IMS_5107_02_ic(v_ic, false); // Check2
192
193                f_mtc_EndCall(v_ueA); //Test Sequence Step 9
194
195                // check 3 (BYE)
196                f_mtc_check_TP_IMS_5107_01_gm(v_gmA, false); // Check3
197                f_mtc_check_TP_IMS_5107_01_ic(v_ic, false); // Check3
198
199                f_mtc_userCheckCallEnded(v_ueB2 ); //Test Sequence Step 10
200                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 11
201               
202               
203                // postamble
204                f_PO_user_home_deregistration(v_ueA);
205                f_PO_user_home_deregistration(v_ueB);
206                f_PO_user_home_deregistration(v_ueB2);
207                f_cf_int_call_down(v_config);
208               
209                //unmap/disconnet component ports
210                f_cf_user_down(v_ueA);
211                f_cf_user_down(v_ueB);
212                f_cf_user_down(v_ueB2);
213                f_cf_adapter_down();
214                f_cf_adapter_down();
215        } //end testcase TC_IMS_CALL_0001F
216       
217       
218        /**
219                * @desc Default Tel URI
220                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.3
221                */
222        testcase TC_IMS_CALL_0002() runs on ImsTestCoordinator system IotSystemInterface {
223                // create components
224                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
225                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
226                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
227                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
228                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
229                var ImsUserInfo v_userInfoA := f_getTelUserId(PX_EUT_A);
230                var ImsUserInfo v_userInfoB := f_getTelUserId(PX_EUT_B);
231                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
232                               
233                // map/connect component ports
234                f_cf_adapter_up();
235                f_cf_user_up(v_ueA);
236                f_cf_user_up(v_ueB);
237                f_cf_int_call_up(v_config);
238               
239                // preamble
240                f_mtc_userRegistration(v_ueA, v_userInfoA);
241                f_mtc_userRegistration(v_ueB, v_userInfoB);
242               
243                // test body
244                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
245               
246                // check 1 (INVITE)
247                f_mtc_check_TP_IMS_5097_01_gm(v_gmA, true); // Check1
248                f_mtc_check_TP_IMS_5097_02_gm(v_gmA, false); // Check2
249                f_mtc_check_TP_IMS_5097_01_ic(v_ic, true); // Check1   
250                f_mtc_check_TP_IMS_5097_02_ic(v_ic, false); // Check2   
251
252                // checks 6, 10 (180 Ringing)
253        f_mtc_check_TP_IMS_5115_01_gm(v_gmB, true); // Check 5
254                f_mtc_check_TP_IMS_5115_03_gm(v_gmB, true); // Check 6
255        f_mtc_check_TP_IMS_5131_01_gm(v_gmB, false); // Check 9
256        f_mtc_check_TP_IMS_5115_01_ic(v_ic, true); // Check 5
257        f_mtc_check_TP_IMS_5115_03_ic(v_ic, true); // Check 6
258                f_mtc_check_TP_IMS_5131_01_ic(v_ic, false); // Check 9 
259                               
260                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
261                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
262                f_mtc_userAnswerCall(v_ueB); //Test Sequence Step 4
263
264                // checks 8, 11 (2xx)
265                f_mtc_check_TP_IMS_5115_02_gm(v_gmB, true); // Check 7
266                f_mtc_check_TP_IMS_5115_04_gm(v_gmB, true); // Check 8
267                f_mtc_check_TP_IMS_5131_02_gm(v_gmB, false); // Check 10
268                f_mtc_check_TP_IMS_5115_02_ic(v_ic, true); // Check 7
269                f_mtc_check_TP_IMS_5115_04_ic(v_ic, true); // Check 8
270                f_mtc_check_TP_IMS_5131_02_ic(v_ic, false); // Check 10
271
272                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 5
273                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 6
274
275                //check 4 (ACK)
276                f_mtc_check_TP_IMS_5107_02_gm(v_gmA, false); // Check3
277                f_mtc_check_TP_IMS_5107_02_ic(v_ic, false); // Check3
278
279                f_mtc_EndCall(v_ueA); //Test Sequence Step 7
280
281                // check 5 (BYE)
282                f_mtc_check_TP_IMS_5107_01_gm(v_gmA, false); // Check4
283                f_mtc_check_TP_IMS_5107_01_ic(v_ic, false); // Check4
284
285                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 8
286                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 9
287               
288                // postamble
289                f_PO_user_home_deregistration(v_ueA);
290                f_PO_user_home_deregistration(v_ueB);
291                f_cf_int_call_down(v_config);
292               
293                //unmap/disconnet component ports
294                f_cf_user_down(v_ueA);
295                f_cf_user_down(v_ueB);
296                f_cf_adapter_down();
297                f_cf_adapter_down();
298        } //end testcase TC_IMS_CALL_0002
299       
300       
301        /**
302                * @desc Rejection of call from barred user
303                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.4
304                */
305        testcase TC_IMS_CALL_0003() runs on ImsTestCoordinator system IotSystemInterface {
306                // create components
307                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
308                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
309                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
310                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
311                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
312                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
313                var CF_INT_CALL v_config := {v_gmA, v_ic, omit};
314                               
315                // map/connect component ports
316                f_cf_adapter_up();
317                f_cf_user_up(v_ueA);
318                f_cf_user_up(v_ueB);
319                f_cf_int_call_up(v_config);
320               
321                // preamble
322                f_mtc_userRegistration(v_ueA, v_userInfoA);
323                f_mtc_userRegistration(v_ueB, v_userInfoB);
324               
325                // test body
326                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
327               
328                //check 1 (INVITE)
329                f_mtc_check_TP_IMS_5108_05_gm(v_gmA, false); // Check1 
330                f_mtc_check_TP_IMS_5108_05_ic(v_ic, false); // Check1
331               
332                f_mtc_userCheckCallCannotBeEstablished(v_ueA); //Test Sequence Step 2
333               
334                // postamble
335                f_PO_user_home_deregistration(v_ueA);
336                f_PO_user_home_deregistration(v_ueB);
337                f_cf_int_call_down(v_config);
338               
339                //unmap/disconnet component ports
340                f_cf_user_down(v_ueA);
341                f_cf_user_down(v_ueB);
342                f_cf_adapter_down();
343                f_cf_adapter_down();
344        } //end testcase TC_IMS_CALL_0003
345       
346       
347        /**
348                * @desc Rejection of call to non existing user
349                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.5
350                */
351        testcase TC_IMS_CALL_0004() runs on ImsTestCoordinator system IotSystemInterface {
352                // create components
353                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
354                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
355                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
356                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
357                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
358                var CF_INT_CALL v_config := {v_gmA, v_ic, omit};
359                               
360                // map/connect component ports
361                f_cf_adapter_up();
362                f_cf_user_up(v_ueA);
363                f_cf_int_call_up(v_config);
364               
365                // preamble
366                f_mtc_userRegistration(v_ueA, v_userInfoA);
367               
368                // test body
369                v_userInfoB.privateId := ("non_existing_user");
370                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1 //
371               
372                //check 1 (INVITE)
373                f_mtc_check_TP_IMS_5132_01_gm(v_gmA, false); // Check1 
374                f_mtc_check_TP_IMS_5132_01_ic(v_ic, false); // Check1
375               
376                f_mtc_userCheckCallCannotBeEstablished(v_ueA); //Test Sequence Step 2
377               
378                // postamble
379                f_PO_user_home_deregistration(v_ueA);
380                f_cf_int_call_down(v_config);
381               
382                //unmap/disconnet component ports
383                f_cf_user_down(v_ueA);
384                f_cf_adapter_down();
385                f_cf_adapter_down();
386        } //end testcase TC_IMS_CALL_0004
387       
388       
389        /**
390                * @desc Rejection of call to unavailable user
391                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.6
392                */
393        testcase TC_IMS_CALL_0005() runs on ImsTestCoordinator system IotSystemInterface {
394                // create components
395                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
396                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
397                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
398                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
399                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
400                var CF_INT_CALL v_config := {v_gmA, v_ic, omit};
401                               
402                // map/connect component ports
403                f_cf_adapter_up();
404                f_cf_user_up(v_ueA);
405                f_cf_int_call_up(v_config);
406               
407                // preamble
408                f_mtc_userRegistration(v_ueA, v_userInfoA);
409               
410                // test body
411                v_userInfoB.privateId := ("unavailable");
412                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1 //
413               
414                //check 1 (INVITE)
415                f_mtc_check_TP_IMS_5133_01_gm(v_gmA, false); // Check1 
416                f_mtc_check_TP_IMS_5133_01_ic(v_ic, false); // Check1
417               
418                f_mtc_userCheckCallCannotBeEstablished(v_ueA); //Test Sequence Step 2
419               
420                // postamble
421                f_PO_user_home_deregistration(v_ueA);
422                f_cf_int_call_down(v_config);
423               
424                //unmap/disconnet component ports
425                f_cf_user_down(v_ueA);
426                f_cf_adapter_down();
427                f_cf_adapter_down();
428        } //end testcase TC_IMS_CALL_0005
429       
430       
431        /**
432                * @desc Initial request to non-registered user with terminating unregistered filter criterion
433                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.1.7
434                */
435        testcase TC_IMS_CALL_0006() runs on ImsTestCoordinator system IotSystemInterface {
436                // create components
437                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
438                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
439                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
440                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
441                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
442                var CF_INT_CALL v_config := {v_gmA, v_ic, omit};
443                               
444                // map/connect component ports
445                f_cf_adapter_up();
446                f_cf_user_up(v_ueA);
447                f_cf_int_call_up(v_config);
448               
449                // preamble
450                f_mtc_userRegistration(v_ueA, v_userInfoA);
451               
452                // test body
453                v_userInfoB.privateId := ("userNOAS_in_IMSB");
454                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1 //
455               
456                //check 1 (INVITE)
457                f_mtc_check_TP_IMS_5109_01_gm(v_gmA, false); // Check1 
458                f_mtc_check_TP_IMS_5109_01_ic(v_ic, false); // Check1
459               
460                f_mtc_userCheckCallCannotBeEstablished(v_ueA); //Test Sequence Step 2
461               
462                // postamble
463                f_PO_user_home_deregistration(v_ueA);
464                f_cf_int_call_down(v_config);
465               
466                //unmap/disconnet component ports
467                f_cf_user_down(v_ueA);
468                f_cf_adapter_down();
469                f_cf_adapter_down();
470        } //end testcase TC_IMS_CALL_0006
471       
472       
473        /**
474                * @desc Normal call (roaming)
475                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.1
476                */
477        testcase TC_IMS_CALL_0007() runs on ImsTestCoordinator system IotSystemInterface {
478                // create components
479                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
480                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
481                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
482                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
483                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
484                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
485                //var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
486                               
487                // map/connect component ports
488                f_cf_adapter_up();
489                f_cf_user_up(v_ueA);
490                f_cf_user_up(v_ueB);
491                f_cf_roam_call_up(v_gmA, v_ic);
492               
493                // preamble
494                f_mtc_userRegistration(v_ueA, v_userInfoA);
495                f_mtc_userRegistration(v_ueB, v_userInfoB);
496               
497                // test body
498                f_mtc_userInitiateCall (v_ueB, v_userInfoA); //Test Sequence Step 1
499               
500                // checks 1,2 gm
501                f_mtc_check_TP_IMS_5046_01_gm(v_gmA, true); // Check1
502                f_mtc_check_TP_IMS_5067_01_gm(v_gmA, false); // Check2
503                //checks 1,2 (INVITE from IMS_A to IMS_B)
504                f_mtc_check_TP_IMS_5046_01_ic(v_ic, true); // Check1   
505                f_mtc_check_TP_IMS_5067_01_ic(v_ic, false); // Check2
506               
507        //checks 7,3 (INVITE from IMS_B to IMS_A and 100 Trying from IMS_A to IMS_B)
508        f_mtc_check_TP_IMS_5108_01_ic(v_ic, true); // Check7   
509        f_mtc_check_TP_IMS_5070_01_ic(v_ic, false); // Check3
510
511                // checks 5 (180 Ringing)
512        f_mtc_check_TP_IMS_5055_01_gm(v_gmA, true); // Check 5
513        f_mtc_check_TP_IMS_5055_01_ic(v_ic, true); // Check 5
514                               
515                f_mtc_userCheckRinging(v_ueA); //Test Sequence Step 2
516                f_mtc_userCheckPeerIsRinging(v_ueB); //Test Sequence Step 3
517                f_mtc_userAnswerCall(v_ueA); //Test Sequence Step 4
518
519                // checks 6 (2xx)
520                f_mtc_check_TP_IMS_5055_02_gm(v_gmA, true); // Check 6
521                f_mtc_check_TP_IMS_5055_02_ic(v_ic, true); // Check 6
522
523                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 5
524                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 6
525
526                f_mtc_EndCall(v_ueA); //Test Sequence Step 7
527
528                // check 4 (BYE)
529                //f_mtc_check_TP_IMS_5301_01_gm(v_gmA, false); // Check4
530                //f_mtc_check_TP_IMS_5301_01_ic(v_ic, false); // Check4
531
532                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 8
533                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 9
534               
535                // postamble
536                f_PO_user_home_deregistration(v_ueA);
537                f_PO_user_home_deregistration(v_ueB);
538                f_cf_roam_call_down(v_gmA, v_ic);
539               
540                //unmap/disconnet component ports
541                f_cf_user_down(v_ueA);
542                f_cf_user_down(v_ueB);
543                f_cf_adapter_down();
544                f_cf_adapter_down();
545        } //end testcase TC_IMS_CALL_0007
546       
547       
548        /**
549          * @desc Normal call with hold/resume
550          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.2
551          */
552        testcase TC_IMS_CALL_0008() runs on ImsTestCoordinator system IotSystemInterface {
553                // create components
554                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
555                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
556                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
557                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
558                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
559                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
560                               
561                // map/connect component ports
562                f_cf_adapter_up();
563                f_cf_user_up(v_ueA);
564                f_cf_user_up(v_ueB);
565                f_cf_roam_call_up(v_gmA, v_ic);
566               
567                // preamble
568                f_mtc_userRegistration(v_ueA, v_userInfoA);
569                f_mtc_userRegistration(v_ueB, v_userInfoB);
570               
571                // test body
572                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
573                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
574                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
575                f_mtc_userAnswerCall(v_ueB); //Test Sequence Step 4
576                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 5
577                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 6
578
579                f_mtc_userTriggerHold(v_ueA); //Test Sequence Step 7
580
581                // checks 3 and 1 (INVITE and 100 Trying)
582                f_mtc_check_TP_IMS_5120_01_gm(v_gmA, false, 1); // Check3
583                f_mtc_check_TP_IMS_5081_01_ic(v_ic, true); // Check1
584                f_mtc_check_TP_IMS_5120_01_ic(v_ic, false, 2); // Check3       
585                               
586                //checks 2 (200 OK)
587                f_mtc_check_TP_IMS_5082_01_gm(v_gmA, false, 1); // Check2
588                f_mtc_check_TP_IMS_5082_01_ic(v_ic, false, 2); // Check2
589       
590                f_mtc_userCheckUserOnHold(v_ueB); //Test Sequence Step 8
591                f_mtc_userCheckUserOnHold(v_ueA); //Test Sequence Step 9
592               
593                f_mtc_userTriggerResume(v_ueA);  //Test Sequence Step 10
594               
595                // checks 3 and 1 (INVITE and 100 Trying)
596                f_mtc_check_TP_IMS_5120_01_gm(v_gmA, false, 0); // Check3
597                f_mtc_check_TP_IMS_5120_01_ic(v_ic, true, 0); // Check3
598                f_mtc_check_TP_IMS_5081_01_ic(v_ic, false); // Check1
599               
600                //checks 2 (200 OK)
601                f_mtc_check_TP_IMS_5082_01_gm(v_gmA, false, 0); // Check2
602                f_mtc_check_TP_IMS_5082_01_ic(v_ic, false, 0); // Check2
603               
604                f_mtc_userCheckCallResumed(v_ueB);  //Test Sequence Step 11
605                f_mtc_userCheckCallResumed(v_ueA);  //Test Sequence Step 12
606
607                f_mtc_EndCall(v_ueA); //Test Sequence Step 13
608
609                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 14
610                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 15
611               
612                // postamble
613                f_PO_user_home_deregistration(v_ueA);
614                f_PO_user_home_deregistration(v_ueB);
615                f_cf_roam_call_down(v_gmA, v_ic);
616               
617                //unmap/disconnet component ports
618                f_cf_user_down(v_ueA);
619                f_cf_user_down(v_ueB);
620                f_cf_adapter_down();
621                f_cf_adapter_down();
622        } //end testcase TC_IMS_CALL_0008
623       
624       
625        /**
626                * @desc Subsequent request(other than target refresh)
627                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.3
628                */
629        testcase TC_IMS_CALL_0009() runs on ImsTestCoordinator system IotSystemInterface {
630                // create components
631                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
632                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
633                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
634                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
635                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
636                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
637               
638                               
639                // map/connect component ports
640                f_cf_adapter_up();
641                f_cf_user_up(v_ueA);
642                f_cf_user_up(v_ueB);
643                f_cf_roam_call_up(v_gmA, v_ic);
644               
645                // preamble
646                f_mtc_userRegistration(v_ueA, v_userInfoA);
647                f_mtc_userRegistration(v_ueB, v_userInfoB);
648               
649                // test body
650                f_mtc_userInitiateCall (v_ueB, v_userInfoA); //Test Sequence Step 1
651                                               
652                f_mtc_userCheckRinging(v_ueA); //Test Sequence Step 2
653                f_mtc_userCheckPeerIsRinging(v_ueB); //Test Sequence Step 3
654                f_mtc_userAnswerCall(v_ueA); //Test Sequence Step 4
655
656                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 5
657                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 6
658
659                f_mtc_EndCall(v_ueB); //Test Sequence Step 7
660
661                // check 1 (BYE)
662                f_mtc_check_TP_IMS_5052_01_gm(v_gmA, false); // Check1
663                f_mtc_check_TP_IMS_5052_01_ic(v_ic, false); // Check1
664
665                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 8
666                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 9
667               
668                // postamble
669                f_PO_user_home_deregistration(v_ueA);
670                f_PO_user_home_deregistration(v_ueB);
671                f_cf_roam_call_down(v_gmA, v_ic);
672               
673                //unmap/disconnet component ports
674                f_cf_user_down(v_ueA);
675                f_cf_user_down(v_ueB);
676                f_cf_adapter_down();
677                f_cf_adapter_down();
678        } //end testcase TC_IMS_CALL_0009
679       
680       
681        /**
682          * @desc Subsequent target refresh request(INVITE)
683          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.4
684          */
685        testcase TC_IMS_CALL_0010() runs on ImsTestCoordinator system IotSystemInterface {
686                // create components
687                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
688                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
689                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
690                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
691                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
692                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
693                               
694                // map/connect component ports
695                f_cf_adapter_up();
696                f_cf_user_up(v_ueA);
697                f_cf_user_up(v_ueB);
698                f_cf_roam_call_up(v_gmA, v_ic);
699               
700                // preamble
701                f_mtc_userRegistration(v_ueA, v_userInfoA);
702                f_mtc_userRegistration(v_ueB, v_userInfoB);
703               
704                // test body
705                f_mtc_userInitiateCall (v_ueB, v_userInfoA); //Test Sequence Step 1
706                f_mtc_userCheckRinging(v_ueA); //Test Sequence Step 2
707                f_mtc_userCheckPeerIsRinging(v_ueB); //Test Sequence Step 3
708                f_mtc_userAnswerCall(v_ueA); //Test Sequence Step 4
709                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 5
710                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 6
711
712                f_mtc_userTriggerHold(v_ueB); //Test Sequence Step 7
713
714                // checks 1 and 2 (INVITE)
715                f_mtc_check_TP_IMS_5048_01_gm(v_gmA, false, 1); // Check1
716                f_mtc_check_TP_IMS_5048_01_ic(v_ic, true, 2); // Check1
717                f_mtc_check_TP_IMS_5080_01_ic(v_ic, false); // Check2
718                       
719                f_mtc_userCheckUserOnHold(v_ueA); //Test Sequence Step 8
720                f_mtc_userCheckUserOnHold(v_ueB); //Test Sequence Step 9
721               
722                f_mtc_userTriggerResume(v_ueB);  //Test Sequence Step 10
723               
724                // checks 1 and 2 (INVITE)
725                f_mtc_check_TP_IMS_5048_01_gm(v_gmA, false, 0); // Check1
726                f_mtc_check_TP_IMS_5048_01_ic(v_ic, true, 1); // Check1
727                f_mtc_check_TP_IMS_5080_01_ic(v_ic, false); // Check2
728               
729                f_mtc_userCheckCallResumed(v_ueA);  //Test Sequence Step 11
730                f_mtc_userCheckCallResumed(v_ueB);  //Test Sequence Step 12
731
732                f_mtc_EndCall(v_ueA); //Test Sequence Step 13
733
734                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 14
735                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 15
736               
737                // postamble
738                f_PO_user_home_deregistration(v_ueA);
739                f_PO_user_home_deregistration(v_ueB);
740                f_cf_roam_call_down(v_gmA, v_ic);
741               
742                //unmap/disconnet component ports
743                f_cf_user_down(v_ueA);
744                f_cf_user_down(v_ueB);
745                f_cf_adapter_down();
746                f_cf_adapter_down();
747        } //end testcase TC_IMS_CALL_0010
748       
749       
750        /**
751          * @desc Call CANCEL due to loss of connectivity of calling user during call establishment
752          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.2.7
753          */
754        testcase TC_IMS_CALL_0013() runs on ImsTestCoordinator system IotSystemInterface {
755                // create components
756                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
757                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
758                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
759                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
760                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
761                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
762                               
763                // map/connect component ports
764                f_cf_adapter_up();
765                f_cf_user_up(v_ueA);
766                f_cf_user_up(v_ueB);
767                f_cf_roam_call_up(v_gmA, v_ic);
768               
769                // preamble
770                f_mtc_userRegistration(v_ueA, v_userInfoA);
771                f_mtc_userRegistration(v_ueB, v_userInfoB);
772               
773                // test body
774                f_mtc_userInitiateCall (v_ueB, v_userInfoA); //Test Sequence Step 1
775                f_mtc_userCheckRinging(v_ueA); //Test Sequence Step 2
776                f_mtc_userCheckPeerIsRinging(v_ueB); //Test Sequence Step 3
777               
778                f_cf_user_down(v_ueB);// //Test Sequence Step 4 --- UEB loses conectivity
779
780                f_mtc_check_TP_IMS_5072_02_gm(v_gmA, false); // Check1
781               
782                f_mtc_userCheckCallCancelled(v_ueA); //Test Sequence Step 5
783                               
784                // postamble
785                f_PO_user_home_deregistration(v_ueA);
786                f_cf_roam_call_down(v_gmA, v_ic);
787               
788                //unmap/disconnet component ports
789                f_cf_user_down(v_ueA);
790                f_cf_adapter_down();
791                f_cf_adapter_down();
792        } //end testcase TC_IMS_CALL_0013
793       
794       
795        /**
796          * @desc Call CANCEL by calling user
797          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.1
798          */
799        testcase TC_IMS_CALL_0014() runs on ImsTestCoordinator system IotSystemInterface {
800                // create components
801                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
802                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
803                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
804                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
805                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
806                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
807                               
808                // map/connect component ports
809                f_cf_adapter_up();
810                f_cf_user_up(v_ueA);
811                f_cf_user_up(v_ueB);
812                f_cf_roam_call_up(v_gmA, v_ic);
813               
814                // preamble
815                f_mtc_userRegistration(v_ueA, v_userInfoA);
816                f_mtc_userRegistration(v_ueB, v_userInfoB);
817               
818                // test body
819                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
820                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
821                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
822                f_mtc_userTriggerCancelCall (v_ueA); //Test Sequence Step 4
823               
824                f_mtc_check_TP_IMS_5107_03_gm(v_gmA, false); // Check1
825                f_mtc_check_TP_IMS_5107_03_ic(v_ic, false); // Check1
826               
827                f_mtc_userCheckCallCancelled(v_ueB); //Test Sequence Step 5
828                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 6
829               
830                // postamble
831                f_PO_user_home_deregistration(v_ueA);
832                f_PO_user_home_deregistration(v_ueB);
833                f_cf_roam_call_down(v_gmA, v_ic);
834               
835                //unmap/disconnet component ports
836                f_cf_user_down(v_ueA);
837                f_cf_user_down(v_ueB);
838                f_cf_adapter_down();
839                f_cf_adapter_down();
840        } //end testcase TC_IMS_CALL_0014
841       
842
843        /**
844          * @desc Call failure due to de-registration of calling user during call
845          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.3
846          */
847        testcase TC_IMS_CALL_0016() runs on ImsTestCoordinator system IotSystemInterface {
848                // create components
849                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
850                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
851                var IotEquipmentUser v_imsA := f_cf_create_IotEquipmentUser("IMS A");
852                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
853                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
854                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
855                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
856                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
857                var CF_INT_CALL v_config := {v_gmA, v_ic, omit};
858                               
859                // map/connect component ports
860                f_cf_adapter_up();
861                f_cf_user_up(v_ueA);
862                f_cf_user_up(v_ueB);
863                f_cf_user_up(v_imsA);
864                f_cf_int_call_up(v_config);
865               
866                // preamble
867                f_mtc_userRegistration(v_ueA, v_userInfoA);
868                f_mtc_userRegistration(v_ueB, v_userInfoB);
869               
870                // test body
871                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
872                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
873                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
874                f_mtc_userAnswerCall(v_ueB); //Test Sequence Step 4
875                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 5
876                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 6           
877                f_mtc_imsTriggerUeDeregistration(v_imsA, v_ueA); //Test Sequence Step 7
878               
879                f_mtc_check_TP_IMS_5139_01_ic(v_ic, false); // Check 1
880               
881                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 8
882               
883                // postamble
884                f_PO_user_home_deregistration(v_ueA);
885                f_PO_user_home_deregistration(v_ueB);
886                f_cf_int_call_down(v_config);
887               
888                //unmap/disconnet component ports
889                f_cf_user_down(v_ueA);
890                f_cf_user_down(v_ueB);
891                f_cf_user_down(v_imsA);
892                f_cf_adapter_down();
893                f_cf_adapter_down();
894        } //end testcase TC_IMS_CALL_0016
895       
896       
897        /**
898         * @desc Subsequent target refresh request (INVITE)
899         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.4
900         */
901        testcase TC_IMS_CALL_0017() runs on ImsTestCoordinator system IotSystemInterface {
902                // create components
903                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
904                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
905                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
906                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
907                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
908               
909                // variables
910                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
911                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
912                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
913                               
914                // map/connect component ports
915                f_cf_adapter_up();
916                f_cf_user_up(v_ueA);
917                f_cf_user_up(v_ueB);
918               
919                // configuration
920                f_cf_int_call_up(v_config);
921               
922                // preamble
923                f_PR_user_home_registration(v_ueA,v_userInfoA);
924                f_PR_user_home_registration(v_ueB,v_userInfoB);
925               
926                // test body
927               
928                // Test Sequence 1 --------------------->
929                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
930                // Test Sequence 2 --------------------->
931                f_mtc_userCheckRinging(v_ueB);
932                // Test Sequence 3 --------------------->
933                f_mtc_userCheckPeerIsRinging(v_ueA);
934                // Test Sequence 4 --------------------->
935                f_mtc_userAnswerCall(v_ueB);
936                // Test Sequence 5 --------------------->
937                f_mtc_userCheckCallEstablished(v_ueA);
938                // Test Sequence 6 --------------------->
939                f_mtc_userCheckCallEstablished(v_ueB);
940                // Test Sequence 7 --------------------->
941                f_mtc_userTriggerHold(v_ueA);
942               
943                // check 1
944                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1);
945                f_mtc_check_TP_IMS_5106_01_ic(v_ic,1);
946               
947                // Test Sequence 8 --------------------->
948                f_mtc_userCheckUserOnHold(v_ueB);
949               
950                // check 2
951                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
952                f_mtc_check_TP_IMS_5121_02_ic(v_ic,1);
953               
954                // Test Sequence 9 --------------------->
955                f_mtc_userCheckUserOnHold(v_ueA);
956                // Test Sequence 10 -------------------->
957                f_mtc_userTriggerResume(v_ueA);
958               
959                // check 1
960                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
961                f_mtc_check_TP_IMS_5106_01_ic(v_ic,0);
962               
963                // Test Sequence 11 -------------------->
964                f_mtc_userCheckCallResumed(v_ueB);
965               
966                // check 2
967                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
968                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
969               
970                // Test Sequence 12 -------------------->
971                f_mtc_userCheckCallResumed(v_ueA);
972                // Test Sequence 13 -------------------->
973                f_mtc_EndCall(v_ueA);
974                // Test Sequence 14 -------------------->
975                f_mtc_userCheckCallEnded(v_ueB );
976                // Test Sequence 15 -------------------->
977                f_mtc_userCheckCallEnded(v_ueA);
978               
979                // postamble
980                f_PO_user_home_deregistration(v_ueA);
981                f_PO_user_home_deregistration(v_ueB);
982                f_cf_int_call_down(v_config);
983               
984                //unmap/disconnet component ports
985                f_cf_user_down(v_ueA);
986                f_cf_user_down(v_ueB);
987                f_cf_adapter_down();
988                f_cf_adapter_down();
989        }
990       
991       
992        /**
993         * @desc Subsequent target refresh request (UPDATE)
994         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.5
995         */
996        testcase TC_IMS_CALL_0018() runs on ImsTestCoordinator system IotSystemInterface {
997                // create components
998                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
999                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1000                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
1001                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1002                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1003               
1004                // variables
1005                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1006                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1007                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1008                               
1009                // map/connect component ports
1010                f_cf_adapter_up();
1011                f_cf_user_up(v_ueA);
1012                f_cf_user_up(v_ueB);
1013               
1014                // configuration
1015                f_cf_int_call_up(v_config);
1016               
1017                // preamble
1018                f_PR_user_home_registration(v_ueA,v_userInfoA);
1019                f_PR_user_home_registration(v_ueB,v_userInfoB);
1020               
1021                // test body
1022               
1023                // Test Sequence 1 --------------------->
1024                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
1025                // Test Sequence 2 --------------------->
1026                f_mtc_userCheckRinging(v_ueB);
1027                // Test Sequence 3 --------------------->
1028                f_mtc_userCheckPeerIsRinging(v_ueA);
1029                // Test Sequence 4 --------------------->
1030                f_mtc_userAnswerCall(v_ueB);
1031                // Test Sequence 5 --------------------->
1032                f_mtc_userCheckCallEstablished(v_ueA);
1033                // Test Sequence 6 --------------------->
1034                f_mtc_userCheckCallEstablished(v_ueB);
1035                // Test Sequence 7 --------------------->
1036                f_mtc_userTriggerHold(v_ueA);
1037               
1038                // check 1
1039                f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
1040                f_mtc_check_TP_IMS_5106_02_ic(v_ic);
1041               
1042                // Test Sequence 8 --------------------->
1043                f_mtc_userCheckUserOnHold(v_ueB);
1044               
1045                // check 2
1046                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
1047                f_mtc_check_TP_IMS_5121_02_ic(v_ic,1);
1048               
1049                // Test Sequence 9 --------------------->
1050                f_mtc_userCheckUserOnHold(v_ueA);
1051                // Test Sequence 10 -------------------->
1052                f_mtc_userTriggerResume(v_ueA);
1053               
1054                // check 1
1055                f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
1056                f_mtc_check_TP_IMS_5106_02_ic(v_ic);
1057               
1058                // Test Sequence 11 -------------------->
1059                f_mtc_userCheckCallResumed(v_ueB);
1060               
1061                // check 2
1062                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1063                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1064               
1065                // Test Sequence 12 -------------------->
1066                f_mtc_userCheckCallResumed(v_ueA);
1067                // Test Sequence 13 -------------------->
1068                f_mtc_EndCall(v_ueA);
1069                // Test Sequence 14 -------------------->
1070                f_mtc_userCheckCallEnded(v_ueB );
1071                // Test Sequence 15 -------------------->
1072                f_mtc_userCheckCallEnded(v_ueA);
1073               
1074                // postamble
1075                f_PO_user_home_deregistration(v_ueA);
1076                f_PO_user_home_deregistration(v_ueB);
1077                f_cf_int_call_down(v_config);
1078               
1079                //unmap/disconnet component ports
1080                f_cf_user_down(v_ueA);
1081                f_cf_user_down(v_ueB);
1082                f_cf_adapter_down();
1083                f_cf_adapter_down();
1084        }
1085       
1086       
1087        /**
1088         * @desc Addition of media streams (reINVITE)
1089         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.6
1090         */
1091        testcase TC_IMS_CALL_0019() runs on ImsTestCoordinator system IotSystemInterface {
1092                // create components
1093                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1094                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1095                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
1096                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1097                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1098               
1099                // variables
1100                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1101                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1102                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1103                               
1104                // map/connect component ports
1105                f_cf_adapter_up();
1106                f_cf_user_up(v_ueA);
1107                f_cf_user_up(v_ueB);
1108               
1109                // configuration
1110                f_cf_int_call_up(v_config);
1111               
1112                // preamble
1113                f_PR_user_home_registration(v_ueA,v_userInfoA);
1114                f_PR_user_home_registration(v_ueB,v_userInfoB);
1115               
1116                // test body
1117               
1118                // Test Sequence 1 --------------------->
1119                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
1120                // Test Sequence 2 --------------------->
1121                f_mtc_userCheckRinging(v_ueB);
1122                // Test Sequence 3 --------------------->
1123                f_mtc_userCheckPeerIsRinging(v_ueA);
1124                // Test Sequence 4 --------------------->
1125                f_mtc_userAnswerCall(v_ueB);
1126                // Test Sequence 5 --------------------->
1127                f_mtc_userCheckCallEstablished(v_ueA);
1128                // Test Sequence 6 --------------------->
1129                f_mtc_userCheckCallEstablished(v_ueB);
1130                // Test Sequence 7 --------------------->
1131                f_mtc_userAddNewMediaStream(v_ueA);
1132               
1133                // check 1
1134                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1);
1135                f_mtc_check_TP_IMS_5106_01_ic(v_ic,1);
1136               
1137                // Test Sequence 8 --------------------->
1138                // optional     
1139                // Test Sequence 9 --------------------->
1140                // optional
1141               
1142                // Test Sequence 10 -------------------->
1143                f_mtc_userCheckNewMediaStream(v_ueB);
1144               
1145                // Test Sequence 11 -------------------->
1146                f_mtc_userCheckNewMediaStream(v_ueA);
1147               
1148                // check 2
1149                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
1150                f_mtc_check_TP_IMS_5121_02_ic(v_ic,1);
1151               
1152                // Test Sequence 12 -------------------->
1153                f_mtc_EndCall(v_ueA);
1154                // Test Sequence 13 -------------------->
1155                f_mtc_userCheckCallEnded(v_ueB );
1156               
1157                // check 2
1158                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1159                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1160               
1161                // Test Sequence 14 -------------------->
1162                f_mtc_userCheckCallEnded(v_ueA );
1163               
1164                // postamble
1165                f_PO_user_home_deregistration(v_ueA);
1166                f_PO_user_home_deregistration(v_ueB);
1167                f_cf_int_call_down(v_config);
1168               
1169                //unmap/disconnet component ports
1170                f_cf_user_down(v_ueA);
1171                f_cf_user_down(v_ueB);
1172                f_cf_adapter_down();
1173                f_cf_adapter_down();
1174        }
1175       
1176       
1177        /**
1178         * @desc Addition of media streams (reINVITE)
1179         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.7
1180         */
1181        testcase TC_IMS_CALL_0020() runs on ImsTestCoordinator system IotSystemInterface {
1182                // create components
1183                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1184                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1185                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A);
1186                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1187                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1188               
1189                // variables
1190                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1191                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1192                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1193                               
1194                // map/connect component ports
1195                f_cf_adapter_up();
1196                f_cf_user_up(v_ueA);
1197                f_cf_user_up(v_ueB);
1198               
1199                // configuration
1200                f_cf_int_call_up(v_config);
1201               
1202                // preamble
1203                f_PR_user_home_registration(v_ueA,v_userInfoA);
1204                f_PR_user_home_registration(v_ueB,v_userInfoB);
1205               
1206                // test body
1207               
1208                // Test Sequence 1 --------------------->
1209                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
1210                // Test Sequence 2 --------------------->
1211                f_mtc_userCheckRinging(v_ueB);
1212                // Test Sequence 3 --------------------->
1213                f_mtc_userCheckPeerIsRinging(v_ueA);
1214                // Test Sequence 4 --------------------->
1215                f_mtc_userAnswerCall(v_ueB);
1216                // Test Sequence 5 --------------------->
1217                f_mtc_userCheckCallEstablished(v_ueA);
1218                // Test Sequence 6 --------------------->
1219                f_mtc_userCheckCallEstablished(v_ueB);
1220                // Test Sequence 7 --------------------->
1221                f_mtc_userAddNewMediaStream(v_ueA);
1222               
1223                // check 1
1224                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1);
1225                f_mtc_check_TP_IMS_5106_01_ic(v_ic,1);
1226               
1227                // Test Sequence 8 --------------------->
1228                // optional     
1229                // Test Sequence 9 --------------------->
1230                // optional
1231               
1232                // Test Sequence 10 -------------------->
1233                f_mtc_userCheckNewMediaStream(v_ueB);
1234               
1235                // Test Sequence 11 -------------------->
1236                f_mtc_userCheckNewMediaStream(v_ueA);
1237               
1238                // check 2
1239                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
1240                f_mtc_check_TP_IMS_5121_02_ic(v_ic,1);
1241               
1242                // Test Sequence 12 -------------------->
1243                f_mtc_userModifiyMediaStream(v_ueA);
1244               
1245                // check 1
1246                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
1247                f_mtc_check_TP_IMS_5106_01_ic(v_ic,0);
1248               
1249                // Test Sequence 13 -------------------->
1250                // optional
1251                // Test Sequence 14 -------------------->
1252                // optional
1253               
1254                // Test Sequence 15 -------------------->
1255                f_mtc_userCheckNewMediaStream(v_ueB);
1256               
1257                // check 2
1258                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1259                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1260               
1261                // Test Sequence 16 -------------------->
1262                f_mtc_userCheckNewMediaStream(v_ueA);
1263               
1264                // Test Sequence 17 -------------------->
1265                f_mtc_EndCall(v_ueB);
1266               
1267                // check 2
1268                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1269                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1270               
1271                // Test Sequence 18 -------------------->
1272                f_mtc_userCheckCallEnded(v_ueA );
1273               
1274                // Test Sequence 19 -------------------->
1275                f_mtc_userCheckCallEnded(v_ueB );
1276               
1277                // postamble
1278                f_PO_user_home_deregistration(v_ueA);
1279                f_PO_user_home_deregistration(v_ueB);
1280                f_cf_int_call_down(v_config);
1281               
1282                //unmap/disconnet component ports
1283                f_cf_user_down(v_ueA);
1284                f_cf_user_down(v_ueB);
1285                f_cf_adapter_down();
1286                f_cf_adapter_down();
1287        }
1288       
1289       
1290        /**
1291         * @desc Hold/resume media streams (reINVITE)
1292         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.8
1293         */
1294        testcase TC_IMS_CALL_0021() runs on ImsTestCoordinator system IotSystemInterface {
1295                // create components
1296                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1297                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1298                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A);
1299                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1300                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1301               
1302                // variables
1303                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1304                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1305                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1306                               
1307                // map/connect component ports
1308                f_cf_adapter_up();
1309                f_cf_user_up(v_ueA);
1310                f_cf_user_up(v_ueB);
1311               
1312                // configuration
1313                f_cf_int_call_up(v_config);
1314               
1315                // preamble
1316                f_PR_user_home_registration(v_ueA,v_userInfoA);
1317                f_PR_user_home_registration(v_ueB,v_userInfoB);
1318               
1319                // test body
1320               
1321                // Test Sequence 1 --------------------->
1322                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
1323                // Test Sequence 2 --------------------->
1324                f_mtc_userCheckRinging(v_ueB);
1325                // Test Sequence 3 --------------------->
1326                f_mtc_userCheckPeerIsRinging(v_ueA);
1327                // Test Sequence 4 --------------------->
1328                f_mtc_userAnswerCall(v_ueB);
1329                // Test Sequence 5 --------------------->
1330                f_mtc_userCheckCallEstablished(v_ueA);
1331                // Test Sequence 6 --------------------->
1332                f_mtc_userCheckCallEstablished(v_ueB);
1333                // Test Sequence 7 --------------------->
1334                f_mtc_userAddNewMediaStream(v_ueA);
1335               
1336                // check 1
1337                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1);
1338                f_mtc_check_TP_IMS_5106_01_ic(v_ic,1);
1339               
1340                // Test Sequence 8 --------------------->
1341                // optional     
1342                // Test Sequence 9 --------------------->
1343                // optional
1344               
1345                // Test Sequence 10 -------------------->
1346                f_mtc_userCheckNewMediaStream(v_ueB);
1347               
1348                // Test Sequence 11 -------------------->
1349                f_mtc_userCheckNewMediaStream(v_ueA);
1350               
1351                // check 2
1352                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
1353                f_mtc_check_TP_IMS_5121_02_ic(v_ic,1);
1354               
1355                // Test Sequence 12 -------------------->
1356                f_mtc_userTriggerHold(v_ueA);
1357               
1358                // check 1
1359                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
1360                f_mtc_check_TP_IMS_5106_01_ic(v_ic,0);
1361               
1362                // Test Sequence 13 -------------------->
1363                f_mtc_userCheckUserOnHold(v_ueA);
1364               
1365                // Test Sequence 14 -------------------->
1366                f_mtc_userCheckUserOnHold(v_ueB);
1367               
1368                // check 2
1369                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1370                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1371               
1372                // Test Sequence 15 -------------------->
1373                f_mtc_userTriggerResume(v_ueA);
1374               
1375                // check 1
1376                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
1377                f_mtc_check_TP_IMS_5106_01_ic(v_ic,0);
1378               
1379                // Test Sequence 16 -------------------->
1380                f_mtc_userCheckCallResumed(v_ueB);
1381               
1382                // check 2
1383                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1384                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1385               
1386                // Test Sequence 17 -------------------->
1387                f_mtc_userCheckCallResumed(v_ueA);
1388               
1389                // Test Sequence 18 -------------------->
1390                f_mtc_userRemoveMediaStream(v_ueA);
1391               
1392                // check 1
1393                f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0);
1394                f_mtc_check_TP_IMS_5106_01_ic(v_ic,0);
1395               
1396                // Test Sequence 19 -------------------->
1397                f_mtc_userCheckRemoveMediaStream(v_ueB);
1398               
1399                // check 2
1400                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1401                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1402               
1403                // Test Sequence 20 -------------------->
1404                // optional
1405               
1406                // Test Sequence 21 -------------------->
1407                f_mtc_EndCall(v_ueB);
1408               
1409                // Test Sequence 22 -------------------->
1410                f_mtc_userCheckCallEnded(v_ueA );
1411               
1412                // Test Sequence 23 -------------------->
1413                f_mtc_userCheckCallEnded(v_ueB );
1414               
1415                // postamble
1416                f_PO_user_home_deregistration(v_ueA);
1417                f_PO_user_home_deregistration(v_ueB);
1418                f_cf_int_call_down(v_config);
1419               
1420                //unmap/disconnet component ports
1421                f_cf_user_down(v_ueA);
1422                f_cf_user_down(v_ueB);
1423                f_cf_adapter_down();
1424                f_cf_adapter_down();
1425        }
1426       
1427       
1428        /**
1429         * @desc Hold/resume media streams (UPDATE)
1430         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.9
1431         */
1432        testcase TC_IMS_CALL_0022() runs on ImsTestCoordinator system IotSystemInterface {
1433                // create components
1434                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1435                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1436                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A);
1437                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1438                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1439               
1440                // variables
1441                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1442                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1443                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1444                               
1445                // map/connect component ports
1446                f_cf_adapter_up();
1447                f_cf_user_up(v_ueA);
1448                f_cf_user_up(v_ueB);
1449               
1450                // configuration
1451                f_cf_int_call_up(v_config);
1452               
1453                // preamble
1454                f_PR_user_home_registration(v_ueA,v_userInfoA);
1455                f_PR_user_home_registration(v_ueB,v_userInfoB);
1456               
1457                // test body
1458               
1459                // Test Sequence 1 --------------------->
1460                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
1461                // Test Sequence 2 --------------------->
1462                f_mtc_userCheckRinging(v_ueB);
1463                // Test Sequence 3 --------------------->
1464                f_mtc_userCheckPeerIsRinging(v_ueA);
1465                // Test Sequence 4 --------------------->
1466                f_mtc_userAnswerCall(v_ueB);
1467                // Test Sequence 5 --------------------->
1468                f_mtc_userCheckCallEstablished(v_ueA);
1469                // Test Sequence 6 --------------------->
1470                f_mtc_userCheckCallEstablished(v_ueB);
1471                // Test Sequence 7 --------------------->
1472                f_mtc_userAddNewMediaStream(v_ueA);
1473               
1474                // check 1
1475                f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
1476                f_mtc_check_TP_IMS_5106_02_ic(v_ic);
1477               
1478                // Test Sequence 8 --------------------->
1479                // optional     
1480                // Test Sequence 9 --------------------->
1481                // optional
1482               
1483                // Test Sequence 10 -------------------->
1484                f_mtc_userCheckNewMediaStream(v_ueB);
1485               
1486                // Test Sequence 11 -------------------->
1487                f_mtc_userCheckNewMediaStream(v_ueA);
1488               
1489                // check 2
1490                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1);
1491                f_mtc_check_TP_IMS_5121_02_ic(v_ic,1);
1492               
1493                // Test Sequence 12 -------------------->
1494                f_mtc_userTriggerHold(v_ueA);
1495               
1496                // check 1
1497                f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
1498                f_mtc_check_TP_IMS_5106_02_ic(v_ic);
1499               
1500                // Test Sequence 13 -------------------->
1501                f_mtc_userCheckUserOnHold(v_ueA);
1502               
1503                // Test Sequence 14 -------------------->
1504                f_mtc_userCheckUserOnHold(v_ueB);
1505               
1506                // check 2
1507                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1508                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1509               
1510                // Test Sequence 15 -------------------->
1511                f_mtc_userTriggerResume(v_ueA);
1512               
1513                // check 1
1514                f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
1515                f_mtc_check_TP_IMS_5106_02_ic(v_ic);
1516               
1517                // Test Sequence 16 -------------------->
1518                f_mtc_userCheckCallResumed(v_ueB);
1519               
1520                // check 2
1521                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1522                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1523               
1524                // Test Sequence 17 -------------------->
1525                f_mtc_userCheckCallResumed(v_ueA);
1526               
1527                // Test Sequence 18 -------------------->
1528                f_mtc_userRemoveMediaStream(v_ueA);
1529               
1530                // check 1
1531                f_mtc_check_TP_IMS_5106_02_gm(v_gmA);
1532                f_mtc_check_TP_IMS_5106_02_ic(v_ic);
1533               
1534                // Test Sequence 19 -------------------->
1535                f_mtc_userCheckRemoveMediaStream(v_ueB);
1536               
1537                // check 2
1538                f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0);
1539                f_mtc_check_TP_IMS_5121_02_ic(v_ic,0);
1540               
1541                // Test Sequence 20 -------------------->
1542                // optional
1543               
1544                // Test Sequence 21 -------------------->
1545                f_mtc_EndCall(v_ueB);
1546               
1547                // Test Sequence 22 -------------------->
1548                f_mtc_userCheckCallEnded(v_ueA );
1549               
1550                // Test Sequence 23 -------------------->
1551                f_mtc_userCheckCallEnded(v_ueB );
1552               
1553                // postamble
1554                f_PO_user_home_deregistration(v_ueA);
1555                f_PO_user_home_deregistration(v_ueB);
1556                f_cf_int_call_down(v_config);
1557               
1558                //unmap/disconnet component ports
1559                f_cf_user_down(v_ueA);
1560                f_cf_user_down(v_ueB);
1561                f_cf_adapter_down();
1562                f_cf_adapter_down();
1563        }
1564       
1565       
1566        /**
1567         * @desc Subsequent target refresh request (INVITE)
1568         * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.4
1569         */
1570        testcase TC_IMS_CALL_0023() runs on ImsTestCoordinator system IotSystemInterface {
1571                // create components
1572                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1573                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1574                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1575                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1576               
1577                // variables
1578                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1579                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1580                var CF_INT_CALL v_config := {v_gmA, v_ic, omit};
1581                               
1582                // map/connect component ports
1583                f_cf_adapter_up();
1584                f_cf_user_up(v_ueA);
1585                f_cf_user_up(v_ueB);
1586               
1587                // configuration
1588                f_cf_int_call_up(v_config);
1589               
1590                // preamble
1591                f_PR_user_home_registration(v_ueA,v_userInfoA);
1592                f_PR_user_home_registration(v_ueB,v_userInfoB);
1593               
1594                // test body
1595               
1596                // Test Sequence 1 --------------------->
1597                f_mtc_userInitiateCall (v_ueA, v_userInfoB);
1598                // Test Sequence 2 --------------------->
1599                f_mtc_userCheckRinging(v_ueB);
1600                // Test Sequence 3 --------------------->
1601                f_mtc_userCheckPeerIsRinging(v_ueA);
1602                // Test Sequence 4 --------------------->
1603                f_mtc_userAnswerCall(v_ueB);
1604                // Test Sequence 5 --------------------->
1605                f_mtc_userCheckCallEstablished(v_ueA);
1606                // Test Sequence 6 --------------------->
1607                f_mtc_userCheckCallEstablished(v_ueB);
1608                // Test Sequence 7 --------------------->
1609                f_mtc_userLooseConnection(v_ueB);
1610               
1611                // check 1
1612                f_mtc_check_TP_IMS_5074_01_ic(v_ic);
1613               
1614                // Test Sequence 8 --------------------->
1615                f_mtc_userCheckCallEnded(v_ueA);
1616               
1617                // postamble
1618                f_PO_user_home_deregistration(v_ueA);
1619                f_PO_user_home_deregistration(v_ueB);
1620                f_cf_int_call_down(v_config);
1621               
1622                //unmap/disconnet component ports
1623                f_cf_user_down(v_ueA);
1624                f_cf_user_down(v_ueB);
1625                f_cf_adapter_down();
1626                f_cf_adapter_down();
1627        }
1628       
1629       
1630        /**
1631                * @desc Normal call - TH(Topology hiding)
1632                * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.1
1633                */
1634        testcase TC_IMS_CALL_0024() runs on ImsTestCoordinator system IotSystemInterface {
1635                // create components
1636                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1637                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1638                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1639                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
1640                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1641                var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
1642                var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
1643                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1644                               
1645                // map/connect component ports
1646                f_cf_adapter_up();
1647                f_cf_user_up(v_ueA);
1648                f_cf_user_up(v_ueB);
1649                f_cf_int_call_up(v_config);
1650               
1651                // preamble
1652                f_mtc_userRegistration(v_ueA, v_userInfoA);
1653                f_mtc_userRegistration(v_ueB, v_userInfoB);
1654               
1655                // test body
1656                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
1657               
1658                //check 1,2,3,6  (INVITE and 100Trying)
1659        f_mtc_check_TP_IMS_5135_01_gm(v_gmA, true); // Check1 - INVITE
1660        f_mtc_check_TP_IMS_5404_01_gm(v_gmA, false); // Check3 - INVITE
1661        f_mtc_check_TP_IMS_5135_01_ic(v_ic, true); // Check1 - INVITE   
1662                f_mtc_check_TP_IMS_5137_01_ic(v_ic, true); // Check2 - INVITE   
1663                f_mtc_check_TP_IMS_5404_01_ic(v_ic, true); // Check3 - INVITE
1664                f_mtc_check_TP_IMS_5414_01_ic(v_ic, false); // Check6 - INVITE and 100Trying   
1665               
1666                //check 7 (180 Ringing)
1667
1668                f_mtc_check_TP_IMS_5137_02_gm(v_gmB, false); // Check 7
1669                f_mtc_check_TP_IMS_5137_02_ic(v_ic, false); // Check 7
1670                               
1671                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
1672                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
1673                f_mtc_userAnswerCall(v_ueB); //Test Sequence Step 4
1674
1675                //check 8 (2xx)
1676
1677                f_mtc_check_TP_IMS_5137_03_gm(v_gmB, false); // Check 8
1678                f_mtc_check_TP_IMS_5137_03_ic(v_ic, false); // Check 8
1679
1680                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 5
1681                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 6
1682
1683                // check 4 (ACK)
1684                f_mtc_check_TP_IMS_5408_01_gm(v_gmA, false); // Check4
1685                f_mtc_check_TP_IMS_5408_01_ic(v_ic, false); // Check4
1686
1687                f_mtc_EndCall(v_ueA); //Test Sequence Step 7
1688
1689                // check 5 (BYE)
1690                f_mtc_check_TP_IMS_5408_03_gm(v_gmA, false); // Check4
1691                f_mtc_check_TP_IMS_5408_03_ic(v_ic, false); // Check4
1692               
1693                //check 8 (2xx)
1694
1695                f_mtc_check_TP_IMS_5137_03_gm(v_gmB, false); // Check 8
1696                f_mtc_check_TP_IMS_5137_03_ic(v_ic, false); // Check 8
1697
1698                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 8
1699                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 9
1700               
1701                // postamble
1702                f_PO_user_home_deregistration(v_ueA);
1703                f_PO_user_home_deregistration(v_ueB);
1704               
1705                //unmap/disconnet component ports
1706                f_cf_user_down(v_ueA);
1707                f_cf_user_down(v_ueB);
1708                f_cf_int_call_down(v_config);
1709                f_cf_adapter_down();
1710        } //end testcase TC_IMS_CALL_0024
1711       
1712        /**
1713          * @desc CANCEL call  by calling user
1714          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.2
1715          */
1716        testcase TC_IMS_CALL_0025() runs on ImsTestCoordinator system IotSystemInterface {
1717                // create components
1718                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1719                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1720                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1721                var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
1722                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1723                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
1724                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
1725                var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB};
1726                               
1727                // map/connect component ports
1728                f_cf_adapter_up();
1729                f_cf_user_up(v_ueA);
1730                f_cf_user_up(v_ueB);
1731                f_cf_int_call_up(v_config);
1732               
1733                // preamble
1734                f_mtc_userRegistration(v_ueA, v_userInfoA);
1735                f_mtc_userRegistration(v_ueB, v_userInfoB);
1736               
1737                // test body
1738                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
1739                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
1740                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
1741                f_mtc_userTriggerCancelCall (v_ueA); //Test Sequence Step 4
1742               
1743                f_mtc_check_TP_IMS_5408_02_gm(v_gmA, false); // Check1
1744                f_mtc_check_TP_IMS_5408_02_ic(v_ic, false); // Check1
1745               
1746                f_mtc_userCheckCallCancelled(v_ueB); //Test Sequence Step 5
1747                f_mtc_userCheckCallTerminated(v_ueA); //Test Sequence Step 6
1748               
1749                // postamble
1750                f_PO_user_home_deregistration(v_ueA);
1751                f_PO_user_home_deregistration(v_ueB);
1752               
1753                //unmap/disconnet component ports
1754                f_cf_user_down(v_ueA);
1755                f_cf_user_down(v_ueB);
1756                f_cf_int_call_down(v_config);
1757                f_cf_adapter_down();
1758        } //end testcase TC_IMS_CALL_0025
1759       
1760       
1761        /**
1762          * @desc Normal call with hold/resume - roaming
1763          * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.5.3
1764          */
1765        testcase TC_IMS_CALL_0026() runs on ImsTestCoordinator system IotSystemInterface {
1766                // create components
1767                var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
1768                var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
1769                var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
1770                var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
1771                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
1772                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
1773                               
1774                // map/connect component ports
1775                f_cf_user_up(v_ueA);
1776                f_cf_user_up(v_ueB);
1777                f_cf_roam_call_up(v_gmA, v_ic);
1778               
1779                // preamble
1780                f_mtc_userRegistration(v_ueA, v_userInfoA);
1781                f_mtc_userRegistration(v_ueB, v_userInfoB);
1782               
1783                // test body
1784                f_mtc_userInitiateCall (v_ueA, v_userInfoB); //Test Sequence Step 1
1785                f_mtc_userCheckRinging(v_ueB); //Test Sequence Step 2
1786                f_mtc_userCheckPeerIsRinging(v_ueA); //Test Sequence Step 3
1787                f_mtc_userAnswerCall(v_ueB); //Test Sequence Step 4
1788                f_mtc_userCheckCallEstablished(v_ueA); //Test Sequence Step 5
1789                f_mtc_userCheckCallEstablished(v_ueB); //Test Sequence Step 6
1790
1791                f_mtc_userTriggerHold(v_ueA); //Test Sequence Step 7
1792
1793                // check 1 (INVITE)
1794                f_mtc_check_TP_IMS_5408_04_gm(v_gmA, false,1); // Check1
1795                f_mtc_check_TP_IMS_5408_04_ic(v_ic, false,2); // Check1
1796                       
1797                f_mtc_userCheckUserOnHold(v_ueB); //Test Sequence Step 8
1798                f_mtc_userCheckUserOnHold(v_ueA); //Test Sequence Step 9
1799               
1800                f_mtc_userTriggerResume(v_ueA);  //Test Sequence Step 10
1801               
1802                // check 1 (INVITE)
1803                f_mtc_check_TP_IMS_5408_04_gm(v_gmA, false,0); // Check1
1804                f_mtc_check_TP_IMS_5408_04_ic(v_ic, false,1); // Check1
1805                               
1806                f_mtc_userCheckCallResumed(v_ueB);  //Test Sequence Step 11
1807                f_mtc_userCheckCallResumed(v_ueA);  //Test Sequence Step 12
1808
1809                f_mtc_EndCall(v_ueA); //Test Sequence Step 13
1810
1811                f_mtc_userCheckCallEnded(v_ueB); //Test Sequence Step 14
1812                f_mtc_userCheckCallEnded(v_ueA); //Test Sequence Step 15
1813               
1814                // postamble
1815                f_PO_user_home_deregistration(v_ueA);
1816                f_PO_user_home_deregistration(v_ueB);
1817               
1818                //unmap/disconnet component ports
1819                f_cf_user_down(v_ueA);
1820                f_cf_user_down(v_ueB);
1821                f_cf_roam_call_down(v_gmA, v_ic);
1822        } //end testcase TC_IMS_CALL_0026
1823       
1824}
Note: See TracBrowser for help on using the repository browser.