source: trunk/ETSI-Testsuites/ETSI_auto_IOT/ttcn/AtsImsIot/AtsImsIot_Behavior.ttcn @ 22

Last change on this file since 22 was 22, checked in by rings, 14 years ago
  • Property svn:executable set to *
File size: 117.6 KB
Line 
1/**
2 *      @author         STF 370
3 *  @version    $Id: $
4 *      @desc           This module provides common functions which describes behavior for each TP reference.
5 */
6module AtsImsIot_Behavior {
7       
8        import from AtsImsIot_TestSystem {
9                type ImsInterfaceMonitor, ImsTestCoordinator;
10        }
11
12        import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;}
13
14        import from AtsImsIot_Templates {template all;}
15
16        import from AtsImsIot_TypesAndValues {
17                type SipMessage, SipMessageList, SkipType;
18        }
19               
20       
21        import from LibIms_UpperTester {type ImsUserInfo;}
22
23        import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;}
24        import from LibIot_Functions {
25                function f_setConformanceVerdict, f_setIotVerdictFAIL;
26        }
27
28        import from LibSip_SIPTypesAndValues all;
29       
30        import from LibSip_Templates all;
31       
32        import from AtsImsIot_Functions all;
33        import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;}
34               
35group checks {
36
37group checksTC_IMS_MESS_0001{
38               
39                 /**
40          * @desc
41          *     TP_IMS_4002_01 in CFW step 3 (MESSAGE)<br> ensure that {<br>
42          *     when { UE_A sends a MESSAGE to UE_B containing a Message_Body
43          *     greater than 1300 bytes }<br> then { IMS_B receives the MESSAGE
44          *     containing the Message_Body greater than 1300 bytes }<br> }
45          */
46            function f_mtc_check_TP_IMS_4002_01_gm(ImsInterfaceMonitor p_monitorCompRef)
47                runs on ImsTestCoordinator {
48                                       
49           p_monitorCompRef.start(
50            f_imsIot_receive(
51                {mw_SipRequest(mdw_TP_IMS_4002_01(?))},//? CallId can be checked
52                {mw_SipRequest(mw_MESSAGE_Request_Base(?))},
53                {0,omit},
54                "TP_IMS_4002_01_gm",
55                false,
56                false
57            )
58           );
59           p_monitorCompRef.done;
60            }
61
62            function f_mtc_check_TP_IMS_4002_01_ic(ImsInterfaceMonitor p_monitorCompRef)
63                runs on ImsTestCoordinator {
64                                       
65           p_monitorCompRef.start(
66            f_imsIot_receive(
67                {mw_SipRequest(mdw_TP_IMS_4002_01(?))},//? CallId can be checked
68                {mw_SipRequest(mw_MESSAGE_Request_Base(?))},
69                {0, omit},
70                "TP_IMS_4002_01_ic",
71                false,
72                false
73            )
74           );
75           p_monitorCompRef.done;
76            }
77} // group
78
79    group checksTC_IMS_REG_0001 {           
80        /**
81         * @desc Starts monitor component behavior for TP_IMS_5011_01
82         *               the on Gm-interface
83         * @param p_monitorCompRef Reference to monitor component
84         */
85        function f_mtc_check_TP_IMS_5011_01_gm(
86                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
87        ) runs on ImsTestCoordinator {
88           
89           p_monitorCompRef.start(
90            f_imsIot_receive(
91                {mw_SipRequest(mdw_TP_IMS_5011_01_gm)},
92                {mw_SipRequest(mw_REGISTER_Request_Base)},
93                {0, omit},
94                "TP_IMS_5011_01",
95                false,
96                        p_checkMessage
97            )
98           );
99           p_monitorCompRef.done;
100        }
101       
102        /**
103         * @desc Starts monitor component behavior for TP_IMS_5011_01
104         *               on the Mw-interface
105         * @param p_monitorCompRef Reference to monitor component
106         */
107         
108        function f_mtc_check_TP_IMS_5011_01_ic(
109                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
110        ) runs on ImsTestCoordinator {
111                var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A);
112                p_monitorCompRef.start(
113                        f_imsIot_receive(
114                                {mw_SipRequest(mdw_TP_IMS_5011_01p_ic(v_EUT_A_Addr))},
115                                {
116                                                mw_SipRequest(mdw_TP_IMS_5011_01f_ic),
117                                        mw_SipRequest(mw_REGISTER_Request_Base)
118                                },
119                                {0, omit},
120                                "TP_IMS_5011_01",
121                                false,
122                                p_checkMessage
123                        )
124                );
125                p_monitorCompRef.done;
126        }
127
128        /**
129        * @desc Starts monitor component behavior for TP_IMS_5089_01 (gm)
130        * @param p_monitorCompRef Reference to monitor component
131        */             
132        function f_mtc_check_TP_IMS_5089_01_gm_when (
133                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
134        ) runs on ImsTestCoordinator {
135                p_monitorCompRef.start(
136                        f_imsIot_receive(
137                                {mw_SipRequest(mw_REGISTER_Request_Base)},
138                                {},
139                                {0, omit},
140                                "TP_IMS_5089_01_gm_when",
141                                false,
142                                p_checkMessage
143                        )
144                );
145                p_monitorCompRef.done;
146        }
147
148
149        /**
150        * @desc Starts monitor component behavior for TP_IMS_5011_02 (gm)
151        *                the on Gm-interface
152        * @param p_monitorCompRef Reference to monitor component
153        */
154        function f_mtc_check_TP_IMS_5011_02_gm(
155                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
156        ) runs on ImsTestCoordinator {
157           
158                p_monitorCompRef.start(
159                        f_imsIot_receive(
160                                {mw_SipRequest(mdw_TP_IMS_5011_02_gm)},
161                                {mw_SipRequest(mw_REGISTER_Request_Base)},
162                                {0, omit},
163                                "TP_IMS_5011_02_gm",
164                                false,
165                                p_checkMessage
166                        )
167                );
168                p_monitorCompRef.done;
169        }
170
171        /**
172        * @desc Starts monitor component behavior for TP_IMS_5011_02 (mw)
173        * @param p_monitorCompRef Reference to monitor component
174        */
175        function f_mtc_check_TP_IMS_5011_02_ic(
176                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
177                ) runs on ImsTestCoordinator {
178                        var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A);                 
179
180                        p_monitorCompRef.start(
181                        f_imsIot_receive(
182                                {mw_SipRequest(mdw_TP_IMS_5011_02p_ic(v_EUT_A_Addr))},
183                                {mw_SipRequest(mdw_TP_IMS_5011_02f_ic),
184                                mw_SipRequest(mw_REGISTER_Request_Base)},
185                                {0, omit},
186                                "TP_IMS_5011_02",
187                                false,
188                                p_checkMessage
189                        )
190                        );
191                        p_monitorCompRef.done;
192                }
193
194
195        /**
196        * @desc Starts monitor component behavior for TP_IMS_5089_01 (when)
197        * @param p_monitorCompRef Reference to monitor component
198        */
199        function f_mtc_check_TP_IMS_5089_01_ic_when(
200                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
201        ) runs on ImsTestCoordinator {
202                        p_monitorCompRef.start(
203                                f_imsIot_receive(
204                                        {mw_SipRequest(mdw_TP_IMS_5089_01_ic_when)},
205                                        {mw_SipRequest(mw_REGISTER_Request_Base)},
206                                        {0, omit},
207                                        "TP_IMS_5089_01 (when)",
208                                        false,
209                                        p_checkMessage
210                                )
211                        );
212                p_monitorCompRef.done;
213        }
214
215            /**
216                 * @desc Starts monitor component behavior for TP_IMS_5089_01 (then)
217                 * @param p_monitorCompRef Reference to monitor component
218                 */
219            function f_mtc_check_TP_IMS_5089_01_ic_then(
220                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
221            ) runs on ImsTestCoordinator {
222          p_monitorCompRef.start(
223            f_imsIot_receive(
224                {mw_SipResponse(mdw_TP_IMS_5089_01_ic)},
225                {mw_SipResponse (mw_401Unauthorized_Base)},
226                {0, omit},
227                "TP_IMS_5089_01",
228                false,
229                                p_checkMessage
230            )
231           );
232           p_monitorCompRef.done;
233            }
234
235
236                /**
237        * @desc Starts monitor component behavior for TP_IMS_5092_01 (gm)
238        *                the on Gm-interface
239        * @param p_monitorCompRef Reference to monitor component
240        */
241        function f_mtc_check_TP_IMS_5092_01_gm(
242                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
243        ) runs on ImsTestCoordinator {
244                p_monitorCompRef.start(
245                        f_imsIot_receive(
246                        {mw_SipRequest(mdw_TP_IMS_5011_02_gm)},
247                        {mw_SipRequest(mw_REGISTER_Request_Base)},
248                        {0, omit},
249                        "TP_IMS_5092_01_gm",
250                        false,
251                                p_checkMessage
252                        )
253                );
254                        p_monitorCompRef.done;
255        }
256
257                /**
258                * @desc Starts monitor component behavior for TP_IMS_5092_01 (when)
259                * @param p_monitorCompRef Reference to monitor component
260                */
261        function f_mtc_check_TP_IMS_5092_01_ic_when(
262                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
263        ) runs on ImsTestCoordinator {
264                p_monitorCompRef.start(
265                f_imsIot_receive(
266                        {mw_SipRequest(mdw_TP_IMS_5092_01_ic_when)},
267                        {mw_SipRequest(mw_REGISTER_Request_Base)},
268                        {0, omit},
269                        "TP_IMS_5092_01 (when)",
270                        false,
271                                p_checkMessage
272                        )
273                );
274                        p_monitorCompRef.done;
275                }
276
277                /**
278        * @desc Starts monitor component behavior for TP_IMS_5092_01
279        * @param p_monitorCompRef Reference to monitor component
280        */
281                function f_mtc_check_TP_IMS_5092_01_ic(
282                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
283                ) runs on ImsTestCoordinator {
284                        var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A);
285                        var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B));
286                       
287                p_monitorCompRef.start(
288                                f_imsIot_receive(
289                                {mw_SipResponse(mdw_TP_IMS_5092_01_ic(v_EUT_A_Addr, v_eutBUri))},
290                                {mw_SipResponse (mw_200OK_Base)},
291                                {0, omit},
292                                "TP_IMS_5092_01",
293                                false,
294                                        p_checkMessage
295                        )
296                );
297                p_monitorCompRef.done;
298                }
299
300
301                /**
302                * @desc Starts monitor component behavior for TP_IMS_5044_01 (when)
303                * @param p_monitorCompRef Reference to monitor component
304                */
305        function f_mtc_check_TP_IMS_5044_01_ic_when(
306                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
307        ) runs on ImsTestCoordinator return Response {
308                var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B));
309                        var SipMessage v_sip := {response := valueof(m_Response_Dummy)};
310                        p_monitorCompRef.start(
311                                        f_imsIot_receive(
312                                        {mw_SipResponse(mw_200OK_Base)},
313                                        {},
314                                        {0, omit},
315                                        "TP_IMS_5044_01 (when)",
316                                        true,
317                                        p_checkMessage
318                                )
319                        );
320                        p_monitorCompRef.done;
321
322                        f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
323                        return v_sip.response;
324        }
325
326    /**
327         * @desc Starts monitor component behavior for TP_IMS_5044_01
328         * @param p_monitorCompRef Reference to monitor component
329         */
330        function f_mtc_check_TP_IMS_5044_01_ic(
331                ImsInterfaceMonitor p_monitorCompRef, Response p_200OK, boolean p_checkMessage
332        ) runs on ImsTestCoordinator {
333                var charstring v_UEB_PublicId := f_GetUEPublicId(PX_EUT_B);
334                var template SipUrl v_eutAUri := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));               
335                var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
336                var charstring v_Epires200OK;
337                var charstring v_EpiresSubscribe;
338                p_monitorCompRef.start(
339                        f_imsIot_receive(
340                                {mw_SipRequest(mdw_TP_IMS_5044_01_ic(?, v_eutAUri, v_UEB_PublicId))},
341                                {mw_SipRequest(mw_SUBSCRIBE_Request_Base)},
342                                {0, omit},
343                                "TP_IMS_5044_01",
344                                true,
345                        p_checkMessage
346                        )
347                );
348                p_monitorCompRef.done;
349   
350                f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
351                // Check that the expires header is set to "a value greater than the one
352                // in the Expires_header of the 200_response"
353               
354                if(ispresent(p_200OK.msgHeader.expires)) {
355                        v_Epires200OK := p_200OK.msgHeader.expires.deltaSec;
356                        v_EpiresSubscribe  := v_sip.request.msgHeader.expires.deltaSec;
357                        if (str2int(v_EpiresSubscribe) > str2int(v_Epires200OK)) {
358                                f_setIotVerdictFAIL("TP_IMS_5044_01 - Expires_header of subscribe is NOT greater than the Expires_header of 200_response.");
359                        }
360                }       
361        }
362
363                /**
364        * @desc Starts monitor component behavior for TP_IMS_5096_01
365        * @param p_monitorCompRef Reference to monitor component
366        */
367                function f_mtc_check_TP_IMS_5096_01_ic_when(
368                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
369                ) runs on ImsTestCoordinator  return Request {
370                        var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
371                p_monitorCompRef.start(
372                        f_imsIot_receive(
373                                {mw_SipRequest(mdw_TP_IMS_5096_01_ic_when)},
374                                {mw_SipRequest(mw_SUBSCRIBE_Request_Base)},
375                                {0, omit},
376                                "TP_IMS_5096_01 (when)",
377                                true,
378                                        p_checkMessage
379                        )
380                );
381                p_monitorCompRef.done;
382                f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
383                return v_sip.request;
384                }
385
386
387            /**
388                 * @desc Starts monitor component behavior for TP_IMS_5096_01
389                 */
390            function f_mtc_check_TP_IMS_5096_01_ic(
391                ImsInterfaceMonitor p_monitorCompRef, Request p_Subscribe, boolean p_checkMessage
392            ) runs on ImsTestCoordinator
393            {
394                   var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
395           var charstring v_Epires200OK;
396           var charstring v_EpiresSubscribe;
397           p_monitorCompRef.start(
398            f_imsIot_receive(
399                {mw_SipResponse(mw_200OK_Base), mw_SipResponse(mw_202Accepted_Base)},
400                {},
401                {0, omit},
402                "TP_IMS_5096_01",
403                true,
404                                p_checkMessage
405            )
406           );
407           p_monitorCompRef.done;
408                   
409           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
410           if(ispresent(v_sip.response.msgHeader.expires)) {
411               // Check that the message contains "Expires_header indicating the same or
412               // lower expiry time than specified in the initial SUBSCRIBE"
413                   v_Epires200OK := v_sip.response.msgHeader.expires.deltaSec;
414                   v_EpiresSubscribe  := p_Subscribe.msgHeader.expires.deltaSec;         
415               if (str2int(v_Epires200OK) <= str2int(v_EpiresSubscribe)) {
416                         f_setIotVerdictFAIL("TP_IMS_5096_01 - - Expires_header Expires_header of 200_response is NOT the same or lower than the Expires_header of subscribe.");
417               }
418           }
419            }
420
421    } // group
422
423group checksTC_IMS_REG_0002{       
424            /**
425                 * @desc Starts monitor component behavior
426                 * @param p_monitorCompRef Reference to monitor component
427                 */
428            function f_mtc_check_TP_IMS_5203_01_gm(
429                ImsInterfaceMonitor p_monitorCompRef
430            ) runs on ImsTestCoordinator {
431                   // Check that the UE sends any register                     
432           p_monitorCompRef.start(
433            f_imsIot_receive(
434                {mw_SipRequest(mw_REGISTER_Request_Base)},
435                {},
436                {0, omit},
437                "TP_IMS_5203_01",
438                false,
439                false
440            )
441           );
442           p_monitorCompRef.done;
443            }
444           
445            /**
446                 * @desc Starts monitor component behavior
447                 * @param p_monitorCompRef Reference to monitor component
448                 */
449            function f_mtc_check_TP_IMS_5203_01_ic(
450                ImsInterfaceMonitor p_monitorCompRef
451            ) runs on ImsTestCoordinator return Request {
452                   var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
453                   
454                   //Get first Register
455                   //var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A);
456                   var Request v_RegisterStep4, v_RegisterStep2;               
457           p_monitorCompRef.start(
458            f_imsIot_receive(
459                {mw_SipRequest(mw_REGISTER_Request_Base)},
460                {},
461                {0, omit},
462                "TP_IMS_5203_01 first register",
463                true,
464                false
465            )
466           );
467           p_monitorCompRef.done;
468           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
469           v_RegisterStep2 := v_sip.request;
470
471                   //Get second Register
472           p_monitorCompRef.start(
473            f_imsIot_receive(
474                {mw_SipRequest(mw_REGISTER_Request_Base)},
475                {},
476                {0, omit},
477                "TP_IMS_5203_01 second register",
478                true,
479                false
480            )
481           );
482           p_monitorCompRef.done;
483           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
484           
485           // TODO: Currently we don't check anything, just that IMS-A sent 2 consecutive Registers 
486           v_RegisterStep4 := v_sip.request;                     
487           return v_RegisterStep4;
488            }
489 
490} // group
491
492group checksTC_IMS_REG_0002H{       
493            /**
494                 * @desc Starts monitor component behavior
495                 * @param p_monitorCompRef Reference to monitor component
496                 */
497            function f_mtc_check_TP_IMS_5402_01_gm(
498                ImsInterfaceMonitor p_monitorCompRef
499            ) runs on ImsTestCoordinator {
500                   // Check that the UE sends any register                     
501           p_monitorCompRef.start(
502            f_imsIot_receive(
503                {mw_SipRequest(mw_REGISTER_Request_Base)},
504                {},
505                {0, omit},
506                "TP_IMS_5203_01",
507                false,
508                false
509            )
510           );
511           p_monitorCompRef.done;
512            }
513           
514            /**
515                 * @desc Starts monitor component behavior
516                 * @param p_monitorCompRef Reference to monitor component
517                 */
518            function f_mtc_check_TP_IMS_5402_01_ic(
519                ImsInterfaceMonitor p_monitorCompRef
520            ) runs on ImsTestCoordinator return Request {
521                   var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
522                   
523                   //Get first Register
524                   //var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A);
525                   var Request v_RegisterStep4, v_RegisterStep2;               
526           p_monitorCompRef.start(
527            f_imsIot_receive(
528                {mw_SipRequest(mw_REGISTER_Request_Base)},
529                {},
530                {0, omit},
531                "TP_IMS_5203_01 first register",
532                true,
533                false
534            )
535           );
536           p_monitorCompRef.done;
537           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
538           v_RegisterStep2 := v_sip.request;
539
540                   //Get second Register
541           p_monitorCompRef.start(
542            f_imsIot_receive(
543                {mw_SipRequest(mw_REGISTER_Request_Base)},
544                {},
545                {0, omit},
546                "TP_IMS_5203_01 second register",
547                true,
548                false
549            )
550           );
551           p_monitorCompRef.done;
552           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
553           v_RegisterStep4 := v_sip.request;                     
554           
555           // Check that IMS_A sends the original Register to
556           // another entrypoint of IMS-B
557           if (not (match (v_RegisterStep4.msgHeader, v_RegisterStep2.msgHeader))){
558             // Headers differ
559            f_setIotVerdictFAIL("TP_IMS_5203_01");
560           }
561           if (match (v_RegisterStep4.requestLine, v_RegisterStep4.requestLine)){
562             // IMS-A used same entrypoint
563                        f_setIotVerdictFAIL("TP_IMS_5203_01");
564           } 
565           return v_RegisterStep4;
566            }
567 
568 
569} // group
570        group checksTC_IMS_REG_0003{       
571            /**
572                 * @desc Starts monitor component behavior
573                 * @param p_monitorCompRef Reference to monitor component
574                 */
575            function f_mtc_check_TP_IMS_5129_01_gm(
576                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
577            ) runs on ImsTestCoordinator {
578                   // Check that the UE sends any register                     
579           p_monitorCompRef.start(
580            f_imsIot_receive(
581                {mw_SipRequest(mw_REGISTER_Request_Base)},
582                {},
583                {0, omit},
584                "TP_IMS_5129_01 (gm)",
585                false,
586                                p_checkMessage
587            )
588           );
589           p_monitorCompRef.done;
590            }
591
592                /**
593        * @desc Starts monitor component behavior
594        * @param p_monitorCompRef Reference to monitor component
595        */
596                function f_mtc_check_TP_IMS_5129_01_ic_when(
597                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
598                ) runs on ImsTestCoordinator {
599                        // Check that the IMS_A forwards register from UE_B                     
600                        p_monitorCompRef.start(
601                                f_imsIot_receive(
602                                        {mw_SipRequest(mw_REGISTER_Request_Base)},
603                                        {},
604                                        {0, omit},
605                                        "TP_IMS_5129_01 (mw-when)",
606                                        false,
607                                        p_checkMessage
608                                )
609                        );
610                        p_monitorCompRef.done;
611                }
612           
613            /**
614                 * @desc Starts monitor component behavior
615                 * @param p_monitorCompRef Reference to monitor component
616                 */
617                function f_mtc_check_TP_IMS_5129_01_ic(
618                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
619            ) runs on ImsTestCoordinator {
620                        var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
621                p_monitorCompRef.start(
622            // Check that IMS_B responds with 403 forbidden
623                f_imsIot_receive(
624                    {mw_SipResponse(mw_403Forbidden_Base)},
625                    {},
626                                {0, omit},
627                    "TP_IMS_5129_01 (mw)",
628                    true,
629                                p_checkMessage
630               )
631           );
632           p_monitorCompRef.done;
633                }
634        } // group
635       
636        group checksTC_IMS_REG_0003H{       
637            /**
638                 * @desc Starts monitor component behavior
639                 * @param p_monitorCompRef Reference to monitor component
640                 */
641                function f_mtc_check_TP_IMS_5411_01_gm(
642                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
643            ) runs on ImsTestCoordinator {
644                        // Check that the UE sends any register                 
645                        p_monitorCompRef.start(
646                                f_imsIot_receive(
647                                        {mw_SipRequest(mw_REGISTER_Request_Base)},
648                                        {},
649                    {0, omit},
650                    "TP_IMS_5411_01 (gm)",
651                    false,
652                                p_checkMessage
653                )
654                );
655                p_monitorCompRef.done;
656                }
657           
658                /**
659                * @desc Starts monitor component behavior
660                * @param p_monitorCompRef Reference to monitor component
661                */
662                function f_mtc_check_TP_IMS_5411_01_ic_when(
663                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
664                ) runs on ImsTestCoordinator {
665                        // Check that the IMS_A forwards register from UE_B                     
666                        p_monitorCompRef.start(
667                                f_imsIot_receive(
668                                        {mw_SipRequest(mw_REGISTER_Request_Base)},
669                                        {},
670                                        {0, omit},
671                                        "TP_IMS_5411_01 (mw-when)",
672                                        false,
673                                        p_checkMessage
674                                )
675                        );
676                        p_monitorCompRef.done;
677                }           
678           
679            /**
680                 * @desc Starts monitor component behavior
681                 * @param p_monitorCompRef Reference to monitor component
682                 */
683                function f_mtc_check_TP_IMS_5411_01_ic(
684                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
685            ) runs on ImsTestCoordinator {
686                        p_monitorCompRef.start(
687                                f_imsIot_receive(
688                    {mw_SipResponse(mw_403Forbidden_Base)},
689                    {},
690                                {0, omit},
691                    "TP_IMS_5411_01 (mw)",
692                    true,
693                                p_checkMessage
694                )
695                        );
696                        p_monitorCompRef.done;
697                }
698        } // group
699
700group checksTC_IMS_REG_0004 {
701
702        /**
703        * @desc Starts monitor component behavior for TP_IMS_5088_01 (gm)
704        * @param p_monitorCompRef Reference to monitor component
705        */
706        function f_mtc_check_TP_IMS_5088_01_gm(
707                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
708        ) runs on ImsTestCoordinator {
709                       
710                p_monitorCompRef.start(
711                        f_imsIot_receive(
712                                {mw_SipRequest(mdw_TP_IMS_5088_01_gm)},
713                                {mw_SipRequest(mw_REGISTER_Request_Base)},
714                                {0, omit},
715                                "TP_IMS_5088_01 (gm)",
716                                false,
717                                        p_checkMessage
718                        )
719                );
720                p_monitorCompRef.done;
721        }
722
723        /**
724        * @desc Starts monitor component behavior for TP_IMS_5088_01 (mw)
725        * @param p_monitorCompRef Reference to monitor component
726        */
727        function f_mtc_check_TP_IMS_5088_01_ic(
728                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
729        ) runs on ImsTestCoordinator {
730               
731                        var template SipUrl v_eutAUri := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
732                                       
733                p_monitorCompRef.start(
734                        f_imsIot_receive(
735                                        {mw_SipRequest(mdw_TP_IMS_5088_01_ic(?, v_eutAUri))},
736                                        {mw_SipRequest(mw_NOTIFY_Request_Base(*))},
737                                        {0, omit},
738                                        "TP_IMS_5088_01_ic",
739                                        false,
740                                        p_checkMessage
741                        )
742                );
743        }
744        } // group
745
746        group checksTC_IMS_REG_0005{
747        /**
748        * @desc Starts monitor component behavior for TP_IMS_5093_01 (mw)
749        * @param p_monitorCompRef Reference to monitor component
750        */
751        function f_mtc_check_TP_IMS_5093_01_UE_ic(
752                ImsInterfaceMonitor p_monitorCompRef, ImsUserInfo v_anyValidUser, boolean p_checkMessage
753        ) runs on ImsTestCoordinator {
754               
755                        var template SipUrl v_request_uri := mw_SipUrl_Number(v_anyValidUser.publicId);
756               
757                p_monitorCompRef.start(
758                        f_imsIot_receive(
759                                {mw_SipRequest(mdw_TP_IMS_5093_01_UE_ic(?, v_request_uri))},
760                                {mw_SipRequest(mw_NOTIFY_Request_Base(?))},
761                                {0, omit},
762                                "TP_IMS_5093_01_ic",
763                                false,
764                                        p_checkMessage
765                        )
766                );
767                p_monitorCompRef.done;
768        }               
769       
770                /**
771        * @desc Starts monitor component behavior for TP_IMS_5093_01 (mw)
772        * @param p_monitorCompRef Reference to monitor component
773        */
774        function f_mtc_check_TP_IMS_5093_01_IMS_ic(
775                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
776        ) runs on ImsTestCoordinator {
777               
778                        var template SipUrl v_request_uri := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
779               
780                p_monitorCompRef.start(
781                        f_imsIot_receive(
782                                {mw_SipRequest(mdw_TP_IMS_5093_01_IMS_ic(?, v_request_uri))},
783                                {mw_SipRequest(mw_NOTIFY_Request_Base(?))},
784                                {0, omit},
785                                "TP_IMS_5093_01_ic",
786                                false,
787                                        p_checkMessage
788                        )
789                );
790                p_monitorCompRef.done;
791        }
792        } // end group
793       
794        group checksTC_IMS_REG_0006{
795       
796                /**
797                * @desc Starts monitor component behavior for TP_IMS_5094_01 (mw)
798                * @param p_monitorCompRef Reference to monitor component
799                */
800                function f_mtc_check_TP_IMS_5094_01_UE(
801                        ImsInterfaceMonitor p_monitorCompRef, ImsUserInfo v_anyValidUser, boolean p_checkMessage
802                ) runs on ImsTestCoordinator {
803               
804                        var template SipUrl v_request_uri := mw_SipUrl_Number(v_anyValidUser.publicId);
805   
806                        p_monitorCompRef.start(
807                                f_imsIot_receive(
808                                        {mw_SipRequest(mdw_TP_IMS_5094_01_UE(?, v_request_uri))},
809                                        {mw_SipRequest(mw_NOTIFY_Request_Base(?))},
810                                        {0, omit},
811                                        "TP_IMS_5094_01_ic",
812                                        false,
813                                        p_checkMessage
814                                )
815                        );
816                        p_monitorCompRef.done;
817                }               
818       
819                /**
820                * @desc Starts monitor component behavior for TP_IMS_5094_01 (mw)
821                * @param p_monitorCompRef Reference to monitor component
822                */
823                function f_mtc_check_TP_IMS_5094_01_IMS(
824                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
825                ) runs on ImsTestCoordinator {
826
827                        var template SipUrl v_request_uri := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
828
829                        p_monitorCompRef.start(
830                                f_imsIot_receive(
831                                        {mw_SipRequest(mdw_TP_IMS_5094_01_IMS_ic(?, v_request_uri))},
832                                        {mw_SipRequest(mw_NOTIFY_Request_Base(?))},
833                                        {0, omit},
834                                        "TP_IMS_5094_01_ic",
835                                        false,
836                                        p_checkMessage
837                                )
838                        );
839                        p_monitorCompRef.done;
840                }
841               
842        } // end group
843
844group checksTC_IMS_REG_0007 {       
845            /**
846                 * @desc Starts monitor component behavior
847                 * @param p_monitorCompRef Reference to monitor component
848                 */
849            function f_mtc_check_TP_IMS_5134_01_gm(
850                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
851            ) runs on ImsTestCoordinator {
852                                       
853                        p_monitorCompRef.start(
854                                f_imsIot_receive(
855                                        {mw_SipRequest(mw_REGISTER_Request_Base)},
856                    {},
857                    {0, omit},
858                    "TP_IMS_5134_01 (gm)",
859                    false,
860                                        p_checkMessage
861                )
862                );
863                        p_monitorCompRef.done;
864                }
865           
866            /**
867                 * @desc Starts monitor component behavior
868                 * @param p_monitorCompRef Reference to monitor component
869                 */
870            function f_mtc_check_TP_IMS_5134_01_ic(
871                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
872            ) runs on ImsTestCoordinator {
873                        var charstring v_IBPC := f_GetEUTIbcfAddress(PX_EUT_A);                 
874                        p_monitorCompRef.start(
875                        f_imsIot_receive(
876                    {mw_SipRequest(mdw_TP_IMS_5134_01_ic(v_IBPC))},
877                    {mw_SipRequest(mw_REGISTER_Request_Base)},
878                    {0, omit},
879                    "TP_IMS_5134_01",
880                    false,
881                                        p_checkMessage
882                        )
883                        );
884                        p_monitorCompRef.done;
885                // fetch second register
886                p_monitorCompRef.start(
887                                f_imsIot_receive(
888                                        {mw_SipRequest(mdw_TP_IMS_5134_01_ic(v_IBPC))},
889                        {mw_SipRequest(mw_REGISTER_Request_Base)},
890                                        {0, omit},
891                        "TP_IMS_5134_01",
892                        true,
893                                        p_checkMessage
894                                )
895                        );
896                        p_monitorCompRef.done;
897                }
898
899                /**
900        * @desc Starts monitor component behavior
901        * @param p_monitorCompRef Reference to monitor component
902        */
903                function f_mtc_check_TP_IMS_5405_01_gm(
904                        ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
905                ) runs on ImsTestCoordinator {
906                                       
907                        p_monitorCompRef.start(
908                                f_imsIot_receive(
909                                        {mw_SipRequest(mw_SUBSCRIBE_Request_Base)},
910                                        {},
911                                        {0, omit},
912                                        "TP_IMS_5405_01 (gm)",
913                                        false,
914                                        p_checkMessage
915                                )
916                        );     
917                        p_monitorCompRef.done;
918                }
919
920            /**
921                 * @desc Starts monitor component behavior
922                 * @param p_monitorCompRef Reference to monitor component
923                 */
924            function f_mtc_check_TP_IMS_5405_01_ic(
925                ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage
926            ) runs on ImsTestCoordinator {
927                        // check 1st SUBSCRIBE (step 10)
928                        p_monitorCompRef.start(
929                                f_imsIot_receive(
930                    {mw_SipRequest(mdw_TP_IMS_5405_01_ic)},
931                    {mw_SipRequest(mw_SUBSCRIBE_Request_Base)},
932                                        {0, omit},
933                    "TP_IMS_5405_01",
934                    false,
935                                p_checkMessage
936                )
937                );
938                p_monitorCompRef.done;
939                       
940                        // check 2nd SUBSCRIBE (step 15)
941                        p_monitorCompRef.start(
942                                f_imsIot_receive(
943                    {mw_SipRequest(mdw_TP_IMS_5405_01_ic)},
944                    {mw_SipRequest(mw_SUBSCRIBE_Request_Base)},
945                                        {0, omit},
946                    "TP_IMS_5405_01",
947                    false,
948                    p_checkMessage
949                                )
950                        );
951                        p_monitorCompRef.done;
952                }
953        } // group
954
955
956group checksTC_IMS_CALL_0001 {     
957            /**
958                 * @desc Starts monitor component behavior
959                 * @param p_monitorCompRef Reference to monitor component
960                 */
961            function f_mtc_check_TP_IMS_5097_01_gm(
962                ImsInterfaceMonitor p_monitorCompRef,
963                        boolean p_checkMessage
964            ) runs on ImsTestCoordinator {
965                                       
966           p_monitorCompRef.start(
967            f_imsIot_receive(
968                {mw_SipRequest(mw_INVITE_Request_Base)},
969                {},
970                {0, omit},
971                "TP_IMS_5097_01",
972                false,
973                                p_checkMessage
974            )
975           );
976           p_monitorCompRef.done;
977            }
978           
979            /**
980                 * @desc Starts monitor component behavior
981                 * @param p_monitorCompRef Reference to monitor component
982                 */
983            function f_mtc_check_TP_IMS_5097_01_ic(
984                ImsInterfaceMonitor p_monitorCompRef,
985                        boolean p_checkMessage
986            ) runs on ImsTestCoordinator  {
987                   var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
988               p_monitorCompRef.start(
989                f_imsIot_receive(
990                {mw_SipRequest(mdw_TP_IMS_5097_01_ic((mw_SipUrl_Host(v_EUT_A_Addr),
991                                                                                                                                        mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_A))) ))},
992                {},
993                {0, omit},
994                "TP_IMS_5097_01",
995                true,
996                                p_checkMessage
997            )
998           );
999           p_monitorCompRef.done;
1000                } //function
1001           
1002            /**
1003             * @desc Starts monitor component behavior for TP_IMS_5097_02
1004                 * @param p_monitorCompRef Reference to monitor component
1005                 */
1006            function f_mtc_check_TP_IMS_5097_02_gm(
1007                ImsInterfaceMonitor p_monitorCompRef,
1008                boolean p_checkMessage
1009            ) runs on ImsTestCoordinator {
1010           p_monitorCompRef.start(
1011            f_imsIot_receive(
1012                {mw_SipRequest(mw_INVITE_Request_Base)},
1013                {},
1014                {0, omit},
1015                "TP_IMS_5097_02",
1016                false,
1017                p_checkMessage
1018            )
1019           );
1020           p_monitorCompRef.done;
1021            }
1022           
1023            /**
1024                 * @desc Starts monitor component behavior for TP_IMS_5097_02
1025                 * @param p_monitorCompRef Reference to monitor component
1026                 */
1027            function f_mtc_check_TP_IMS_5097_02_ic(
1028                ImsInterfaceMonitor p_monitorCompRef,
1029                boolean p_checkMessage
1030            ) runs on ImsTestCoordinator {
1031           p_monitorCompRef.start(
1032            f_imsIot_receive(
1033                {mw_SipRequest(mdw_TP_IMS_5097_02_ic(mw_SIP_URI_Base, mw_TEL_URI_Base))},
1034                {mw_SipRequest(mw_INVITE_Request_Base)},
1035                {0, omit},
1036                "TP_IMS_5097_02",
1037                false,
1038                p_checkMessage
1039            )
1040           );
1041           p_monitorCompRef.done;
1042            }
1043           
1044        /**
1045                  * @desc Starts monitor component behavior for TP_IMS_5097_04
1046                  * @param p_monitorCompRef Reference to monitor component
1047                  */
1048        function f_mtc_check_TP_IMS_5097_04_gm(
1049                ImsInterfaceMonitor p_monitorCompRef,
1050                boolean p_checkMessage
1051        ) runs on ImsTestCoordinator {
1052                p_monitorCompRef.start(
1053                f_imsIot_receive(
1054                        {mw_SipRequest(mdw_TP_IMS_5097_04_gm(mw_TEL_URI_Base))},//TODO check TEL_URI of UE_B
1055                        {mw_SipRequest(mw_INVITE_Request_Base)},
1056                        {0, omit},
1057                        "TP_IMS_5097_04",
1058                        false,
1059                        p_checkMessage
1060                        )
1061                );
1062                p_monitorCompRef.done;
1063        }
1064           
1065                /**
1066          * @desc Starts monitor component behavior for TP_IMS_5097_04
1067          * @param p_monitorCompRef Reference to monitor component
1068                  */
1069                function f_mtc_check_TP_IMS_5097_04_ic(
1070                        ImsInterfaceMonitor p_monitorCompRef,
1071                        boolean p_checkMessage
1072                ) runs on ImsTestCoordinator {
1073                   p_monitorCompRef.start(
1074                        f_imsIot_receive(
1075                                {mw_SipRequest(mdw_TP_IMS_5097_04_ic(mw_SIP_URI_Base))},//TODO check SIP_URI of UE_B
1076                                {mw_SipRequest(mw_INVITE_Request_Base)},
1077                                {0, omit},
1078                                "TP_IMS_5097_04",
1079                                false,
1080                                p_checkMessage
1081                                )
1082                        );
1083                        p_monitorCompRef.done;
1084                }
1085
1086            /**
1087                 * @desc Starts monitor component behavior
1088                 * @param p_monitorCompRef Reference to monitor component
1089                 */
1090            function f_mtc_check_TP_IMS_5107_02_gm(
1091                ImsInterfaceMonitor p_monitorCompRef,
1092                        boolean p_checkMessage
1093            ) runs on ImsTestCoordinator {
1094                                       
1095           p_monitorCompRef.start(
1096            f_imsIot_receive(
1097                {mw_SipRequest(mw_ACK_Request_Base(?))},
1098                {},
1099                {0, omit},
1100                "TP_IMS_5107_02",
1101                false,
1102                                p_checkMessage
1103            )
1104           );
1105           p_monitorCompRef.done;
1106            }
1107
1108            /**
1109                 * @desc Starts monitor component behavior
1110                 * @param p_monitorCompRef Reference to monitor component
1111                 */
1112            function f_mtc_check_TP_IMS_5107_02_ic(
1113                ImsInterfaceMonitor p_monitorCompRef,
1114                        boolean p_checkMessage
1115            ) runs on ImsTestCoordinator  {
1116            var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
1117                   
1118        p_monitorCompRef.start(
1119         f_imsIot_receive(
1120            {mw_SipRequest(mdw_TP_IMS_5107_02_ic(?, mw_SipUrl_Host(v_EUT_A_Addr)))},
1121            {},
1122            {0, omit},
1123            "TP_IMS_5107_02",
1124            false,
1125                        p_checkMessage
1126         )
1127        );
1128       p_monitorCompRef.done;
1129           } //function
1130
1131            /**
1132                 * @desc Starts monitor component behavior
1133                 * @param p_monitorCompRef Reference to monitor component
1134                 */
1135            function f_mtc_check_TP_IMS_5107_01_gm(
1136                ImsInterfaceMonitor p_monitorCompRef,
1137                        boolean p_checkMessage
1138            ) runs on ImsTestCoordinator {
1139                                       
1140           p_monitorCompRef.start(
1141            f_imsIot_receive(
1142                {mw_SipRequest(mw_BYE_Request_Base(?))},
1143                {},
1144                {0, omit},
1145                "TP_IMS_5107_01",
1146                false,
1147                                p_checkMessage
1148            )
1149           );
1150           p_monitorCompRef.done;
1151            }
1152
1153
1154            /**
1155                 * @desc Starts monitor component behavior
1156                 * @param p_monitorCompRef Reference to monitor component
1157                 */
1158            function f_mtc_check_TP_IMS_5107_01_ic(
1159                ImsInterfaceMonitor p_monitorCompRef,
1160                        boolean p_checkMessage
1161            ) runs on ImsTestCoordinator  {     
1162                var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
1163           
1164        p_monitorCompRef.start(
1165         f_imsIot_receive(
1166            {mw_SipRequest(mdw_TP_IMS_5107_01_ic(?, mw_SipUrl_Host(v_EUT_A_Addr)))},
1167            {},
1168            {0, omit},
1169            "TP_IMS_5107_01",
1170            false,
1171                        p_checkMessage
1172         )
1173        );
1174        p_monitorCompRef.done;
1175           } //function
1176               
1177        /**
1178          * @desc Starts monitor component behavior
1179          * @param p_monitorCompRef Reference to monitor component
1180          */
1181            function f_mtc_check_TP_IMS_5115_01_gm(
1182                ImsInterfaceMonitor p_monitorCompRef,
1183                        boolean p_checkMessage
1184                ) runs on ImsTestCoordinator {
1185                                       
1186           p_monitorCompRef.start(
1187            f_imsIot_receive(
1188                {mw_SipResponse(mw_180Ringing_Base)},
1189                {},
1190                {0, omit},
1191                "TP_IMS_5115_01",
1192                false,
1193                                p_checkMessage
1194            )
1195           );
1196           p_monitorCompRef.done;
1197            }
1198           
1199                /**
1200                  * @desc Starts monitor component behavior
1201                  * @param p_monitorCompRef Reference to monitor component
1202                  */
1203            function f_mtc_check_TP_IMS_5115_01_ic(
1204                        ImsInterfaceMonitor p_monitorCompRef,
1205                        boolean p_checkMessage
1206                ) runs on ImsTestCoordinator {
1207                                       
1208           p_monitorCompRef.start(
1209            f_imsIot_receive(
1210                {mw_SipResponse(mdw_TP_IMS_5115_01_ic)},
1211                {mw_SipResponse(mw_180Ringing_Base)},
1212                {0, omit},
1213                "TP_IMS_5115_01",
1214                false,
1215                                p_checkMessage
1216            )
1217           );
1218           p_monitorCompRef.done;
1219            }
1220               
1221                /**
1222                  * @desc Starts monitor component behavior
1223                  * @param p_monitorCompRef Reference to monitor component
1224                  */
1225                function f_mtc_check_TP_IMS_5115_02_gm(
1226                ImsInterfaceMonitor p_monitorCompRef,
1227                boolean p_checkMessage
1228                ) runs on ImsTestCoordinator {
1229   
1230                p_monitorCompRef.start(
1231                        f_imsIot_receive(
1232                                        {mw_SipResponse(mw_200OK_Base)},
1233                                        {},
1234                                        {0, omit},
1235                                        "TP_IMS_5115_02",
1236                                        false,
1237                                        p_checkMessage
1238                        )
1239                );
1240                        p_monitorCompRef.done;
1241                }
1242           
1243                /**
1244                  * @desc Starts monitor component behavior
1245                  * @param p_monitorCompRef Reference to monitor component
1246                  */
1247                function f_mtc_check_TP_IMS_5115_02_ic(
1248                ImsInterfaceMonitor p_monitorCompRef,
1249                boolean p_checkMessage
1250        ) runs on ImsTestCoordinator {
1251
1252                p_monitorCompRef.start(
1253                        f_imsIot_receive(
1254                                        {mw_SipResponse(mdw_TP_IMS_5115_02_ic)},
1255                                        {mw_SipResponse(mw_200OK_Base)},
1256                                        {0, omit},
1257                                        "TP_IMS_5115_02",
1258                                        false,
1259                                        p_checkMessage
1260                        )
1261                );
1262                p_monitorCompRef.done;
1263                }
1264               
1265                /**
1266                  * @desc Starts monitor component behavior
1267                  * @param p_monitorCompRef Reference to monitor component
1268                */
1269                function f_mtc_check_TP_IMS_5115_03_gm(
1270                        ImsInterfaceMonitor p_monitorCompRef,
1271                        boolean p_checkMessage
1272                ) runs on ImsTestCoordinator {
1273                                       
1274                p_monitorCompRef.start(
1275                        f_imsIot_receive(
1276                                        {mw_SipResponse(mw_180Ringing_Base)},
1277                                        {},
1278                                        {0, omit},
1279                                        "TP_IMS_5115_03",
1280                                        false,
1281                                        p_checkMessage
1282                                )
1283                        );
1284                        p_monitorCompRef.done;
1285                }
1286           
1287                /**
1288                  * @desc Starts monitor component behavior
1289                  * @param p_monitorCompRef Reference to monitor component
1290                  */
1291                function f_mtc_check_TP_IMS_5115_03_ic(
1292                ImsInterfaceMonitor p_monitorCompRef,
1293                boolean p_checkMessage
1294                ) runs on ImsTestCoordinator {
1295                                       
1296                        p_monitorCompRef.start(
1297                                f_imsIot_receive(
1298                                        {mw_SipResponse(mdw_TP_IMS_5115_03_ic(mw_SIP_URI_Base, mw_TEL_URI_Base))},
1299                                        {mw_SipResponse(mw_180Ringing_Base)},
1300                                        {0, omit},
1301                                        "TP_IMS_5115_03",
1302                                        false,
1303                                        p_checkMessage
1304                                )
1305                        );
1306                        p_monitorCompRef.done;
1307                }
1308               
1309                /**
1310                  * @desc Starts monitor component behavior
1311                  * @param p_monitorCompRef Reference to monitor component
1312                  */
1313                function f_mtc_check_TP_IMS_5115_04_gm(
1314                        ImsInterfaceMonitor p_monitorCompRef,
1315                        boolean p_checkMessage
1316                ) runs on ImsTestCoordinator {
1317   
1318                        p_monitorCompRef.start(
1319                                f_imsIot_receive(
1320                        {mw_SipResponse(mw_200OK_Base)},
1321                        {},
1322                        {0, omit},
1323                        "TP_IMS_5115_04",
1324                        false,
1325                        p_checkMessage
1326                                )
1327                        );
1328                        p_monitorCompRef.done;
1329                }
1330           
1331                /**
1332                  * @desc Starts monitor component behavior
1333                  * @param p_monitorCompRef Reference to monitor component
1334                  */
1335                function f_mtc_check_TP_IMS_5115_04_ic(
1336                        ImsInterfaceMonitor p_monitorCompRef,
1337                        boolean p_checkMessage
1338                ) runs on ImsTestCoordinator {
1339
1340                        p_monitorCompRef.start(
1341                                f_imsIot_receive(
1342                                {mw_SipResponse(mdw_TP_IMS_5115_04_ic(mw_SIP_URI_Base, mw_TEL_URI_Base))},
1343                                {mw_SipResponse(mw_200OK_Base)},
1344                                {0, omit},
1345                                "TP_IMS_5115_04",
1346                                false,
1347                                p_checkMessage
1348                                )
1349                        );
1350                        p_monitorCompRef.done;
1351                }
1352               
1353                /**
1354                  * @desc Starts monitor component behavior
1355                  * @param p_monitorCompRef Reference to monitor component
1356                  */
1357                function f_mtc_check_TP_IMS_5131_01_gm(
1358                ImsInterfaceMonitor p_monitorCompRef,
1359                boolean p_checkMessage
1360        ) runs on ImsTestCoordinator {
1361                                       
1362                        p_monitorCompRef.start(
1363                                f_imsIot_receive(
1364                                        {mw_SipResponse(mw_180Ringing_Base)},
1365                                        {},
1366                                        {0, omit},
1367                                        "TP_IMS_5131_01",
1368                                        false,
1369                                        p_checkMessage
1370                                )
1371                        );
1372                        p_monitorCompRef.done;
1373                }
1374           
1375                /**
1376                  * @desc Starts monitor component behavior
1377                  * @param p_monitorCompRef Reference to monitor component
1378                  */
1379                function f_mtc_check_TP_IMS_5131_01_ic(
1380                ImsInterfaceMonitor p_monitorCompRef,
1381                boolean p_checkMessage
1382        ) runs on ImsTestCoordinator { 
1383                                       
1384                        p_monitorCompRef.start(
1385                                f_imsIot_receive(
1386                                        {mw_SipResponse(mdw_TP_IMS_5131_01_ic)},
1387                                        {mw_SipResponse(mw_180Ringing_Base)},
1388                                        {0, omit},
1389                                        "TP_IMS_5131_01",
1390                                        false,
1391                                        p_checkMessage
1392                                )
1393                        );
1394                        p_monitorCompRef.done;
1395                }
1396               
1397                /**
1398                  * @desc Starts monitor component behavior
1399                  * @param p_monitorCompRef Reference to monitor component
1400                  */
1401        function f_mtc_check_TP_IMS_5131_02_gm(
1402                ImsInterfaceMonitor p_monitorCompRef,
1403                boolean p_checkMessage
1404        ) runs on ImsTestCoordinator {
1405   
1406                        p_monitorCompRef.start(
1407                                f_imsIot_receive(
1408                        {mw_SipResponse(mw_200OK_Base)},
1409                        {},
1410                        {0, omit},
1411                        "TP_IMS_5131_02",
1412                        false,
1413                                        p_checkMessage
1414                                )
1415                        );
1416                        p_monitorCompRef.done;
1417                }
1418           
1419                /**
1420                  * @desc Starts monitor component behavior
1421                  * @param p_monitorCompRef Reference to monitor component
1422                  */
1423        function f_mtc_check_TP_IMS_5131_02_ic(
1424                ImsInterfaceMonitor p_monitorCompRef,
1425                boolean p_checkMessage
1426        ) runs on ImsTestCoordinator {
1427
1428                        p_monitorCompRef.start(
1429                                f_imsIot_receive(
1430                                {mw_SipResponse(mdw_TP_IMS_5131_02_ic)},
1431                                {mw_SipResponse(mw_200OK_Base)},
1432                                {0, omit},
1433                                "TP_IMS_5131_02",
1434                                false,
1435                                        p_checkMessage
1436                                )
1437                        );
1438                        p_monitorCompRef.done;
1439                }
1440           
1441} // group
1442
1443group checksTC_IMS_CALL_0001F {
1444
1445/*functions already used in test TC_IMS_CALL_0001
1446 * f_mtc_check_TP_IMS_5097_01_gm
1447 * f_mtc_check_TP_IMS_5097_01_ic
1448 * f_mtc_check_TP_IMS_5107_01_gm
1449 * f_mtc_check_TP_IMS_5107_01_ic
1450 * f_mtc_check_TP_IMS_5107_02_gm
1451 * f_mtc_check_TP_IMS_5107_02_ic
1452 * f_mtc_check_TP_IMS_5115_01_gm
1453 * f_mtc_check_TP_IMS_5115_01_ic
1454 * f_mtc_check_TP_IMS_5115_02_gm
1455 * f_mtc_check_TP_IMS_5115_02_ic
1456 * f_mtc_check_TP_IMS_5131_01_gm
1457 * f_mtc_check_TP_IMS_5131_01_ic
1458 * f_mtc_check_TP_IMS_5131_02_gm
1459 * f_mtc_check_TP_IMS_5131_02_ic
1460 *
1461*/
1462} // group
1463
1464group checksTC_IMS_CALL_0002 {
1465
1466/*functions already used in test TC_IMS_CALL_0001
1467 * f_mtc_check_TP_IMS_5097_01_gm
1468 * f_mtc_check_TP_IMS_5097_01_ic
1469 * f_mtc_check_TP_IMS_5097_02_gm
1470 * f_mtc_check_TP_IMS_5097_02_ic
1471 * f_mtc_check_TP_IMS_5107_01_gm
1472 * f_mtc_check_TP_IMS_5107_01_ic
1473 * f_mtc_check_TP_IMS_5107_02_gm
1474 * f_mtc_check_TP_IMS_5107_02_ic
1475 * f_mtc_check_TP_IMS_5115_01_gm
1476 * f_mtc_check_TP_IMS_5115_01_ic
1477 * f_mtc_check_TP_IMS_5115_02_gm
1478 * f_mtc_check_TP_IMS_5115_02_ic
1479 * f_mtc_check_TP_IMS_5115_03_gm
1480 * f_mtc_check_TP_IMS_5115_03_ic
1481 * f_mtc_check_TP_IMS_5115_04_gm
1482 * f_mtc_check_TP_IMS_5115_04_ic
1483 * f_mtc_check_TP_IMS_5131_01_gm
1484 * f_mtc_check_TP_IMS_5131_01_ic
1485 * f_mtc_check_TP_IMS_5131_02_gm
1486 * f_mtc_check_TP_IMS_5131_02_ic
1487 *
1488*/
1489} // group
1490
1491group checksTC_IMS_CALL_0003 {     
1492       
1493        /**
1494          * @desc Starts monitor component behavior
1495          * @param p_monitorCompRef Reference to monitor component
1496          */
1497                function f_mtc_check_TP_IMS_5108_05_gm(
1498                        ImsInterfaceMonitor p_monitorCompRef,
1499                        boolean p_checkMessage
1500                ) runs on ImsTestCoordinator {
1501                                       
1502                        p_monitorCompRef.start(
1503                         f_imsIot_receive(
1504                                {mw_SipRequest(mw_INVITE_Request_Base)},
1505                                {},
1506                                {0, omit},
1507                                "TP_IMS_5108_05",
1508                                false,
1509                                p_checkMessage
1510                         )
1511                        );
1512                        p_monitorCompRef.done;
1513                }
1514           
1515                /**
1516                  * @desc Starts monitor component behavior
1517                  * @param p_monitorCompRef Reference to monitor component
1518                  */
1519                function f_mtc_check_TP_IMS_5108_05_ic(
1520                        ImsInterfaceMonitor p_monitorCompRef,
1521                        boolean p_checkMessage
1522                ) runs on ImsTestCoordinator  {
1523                        p_monitorCompRef.start(
1524                         f_imsIot_receive(
1525                                {mw_SipRequest(mw_INVITE_Request_Base)},
1526                                {},
1527                                {0, omit},
1528                                "TP_IMS_5108_05",
1529                                false,
1530                                p_checkMessage
1531                         )
1532                        );
1533                        p_monitorCompRef.done;
1534                       
1535                        p_monitorCompRef.start(
1536                         f_imsIot_receive(
1537                                {mw_SipResponse(mw_404NotFound_Base)},
1538                                {},
1539                                {0, omit},
1540                                "TP_IMS_5108_05",
1541                                false,
1542                                false
1543                         )
1544                        );
1545                        p_monitorCompRef.done;
1546                       
1547                } //function
1548
1549} // group
1550
1551group checksTC_IMS_CALL_0004 {     
1552       
1553        /**
1554          * @desc Starts monitor component behavior
1555          * @param p_monitorCompRef Reference to monitor component
1556          */
1557                function f_mtc_check_TP_IMS_5132_01_gm(
1558                        ImsInterfaceMonitor p_monitorCompRef,
1559                        boolean p_checkMessage
1560                ) runs on ImsTestCoordinator {
1561                                       
1562                        p_monitorCompRef.start(
1563                         f_imsIot_receive(
1564                                {mw_SipRequest(mw_INVITE_Request_Base)},
1565                                {},
1566                                {0, omit},
1567                                "TP_IMS_5132_01",
1568                                false,
1569                                p_checkMessage
1570                         )
1571                        );
1572                        p_monitorCompRef.done;
1573                }
1574           
1575                /**
1576                  * @desc Starts monitor component behavior
1577                  * @param p_monitorCompRef Reference to monitor component
1578                  */
1579                function f_mtc_check_TP_IMS_5132_01_ic(
1580                        ImsInterfaceMonitor p_monitorCompRef,
1581                        boolean p_checkMessage
1582                ) runs on ImsTestCoordinator  {
1583                        p_monitorCompRef.start(
1584                         f_imsIot_receive(
1585                                {mw_SipRequest(mw_INVITE_Request_Base)},
1586                                {},
1587                                {0, omit},
1588                                "TP_IMS_5132_01",
1589                                false,
1590                                p_checkMessage
1591                         )
1592                        );
1593                        p_monitorCompRef.done;
1594                       
1595                        p_monitorCompRef.start(
1596                         f_imsIot_receive(
1597                                {mw_SipResponse(mdw_404Or604NotFound_Base)},
1598                                {},
1599                                {0, omit},
1600                                "TP_IMS_5132_01",
1601                                false,
1602                                false
1603                         )
1604                        );
1605                        p_monitorCompRef.done;
1606                       
1607                } //function
1608
1609} // group
1610
1611group checksTC_IMS_CALL_0005 {     
1612       
1613        /**
1614          * @desc Starts monitor component behavior
1615          * @param p_monitorCompRef Reference to monitor component
1616          */
1617                function f_mtc_check_TP_IMS_5133_01_gm(
1618                        ImsInterfaceMonitor p_monitorCompRef,
1619                        boolean p_checkMessage
1620                ) runs on ImsTestCoordinator {
1621                                       
1622                        p_monitorCompRef.start(
1623                         f_imsIot_receive(
1624                                {mw_SipRequest(mw_INVITE_Request_Base)},
1625                                {},
1626                                {0, omit},
1627                                "TP_IMS_5133_01",
1628                                false,
1629                                p_checkMessage
1630                         )
1631                        );
1632                        p_monitorCompRef.done;
1633                }
1634           
1635                /**
1636                  * @desc Starts monitor component behavior
1637                  * @param p_monitorCompRef Reference to monitor component
1638                  */
1639                function f_mtc_check_TP_IMS_5133_01_ic(
1640                        ImsInterfaceMonitor p_monitorCompRef,
1641                        boolean p_checkMessage
1642                ) runs on ImsTestCoordinator  {
1643                        p_monitorCompRef.start(
1644                         f_imsIot_receive(
1645                                {mw_SipRequest(mw_INVITE_Request_Base)},
1646                                {},
1647                                {0, omit},
1648                                "TP_IMS_5133_01",
1649                                false,
1650                                p_checkMessage
1651                         )
1652                        );
1653                        p_monitorCompRef.done;
1654                       
1655                        p_monitorCompRef.start(
1656                         f_imsIot_receive(
1657                                {mw_SipResponse(mdw_4XX_Base)},
1658                                {},
1659                                {0, omit},
1660                                "TP_IMS_5133_01",
1661                                false,
1662                                false
1663                         )
1664                        );
1665                        p_monitorCompRef.done;
1666                       
1667                } //function
1668
1669} // group
1670
1671group checksTC_IMS_CALL_0006 {     
1672       
1673        /**
1674          * @desc Starts monitor component behavior
1675          * @param p_monitorCompRef Reference to monitor component
1676          */
1677                function f_mtc_check_TP_IMS_5109_01_gm(
1678                        ImsInterfaceMonitor p_monitorCompRef,
1679                        boolean p_checkMessage
1680                ) runs on ImsTestCoordinator {
1681                                       
1682                        p_monitorCompRef.start(
1683                         f_imsIot_receive(
1684                                {mw_SipRequest(mw_INVITE_Request_Base)},
1685                                {},
1686                                {0, omit},
1687                                "TP_IMS_5109_01",
1688                                false,
1689                                p_checkMessage
1690                         )
1691                        );
1692                        p_monitorCompRef.done;
1693                }
1694           
1695                /**
1696                  * @desc Starts monitor component behavior
1697                  * @param p_monitorCompRef Reference to monitor component
1698                  */
1699                function f_mtc_check_TP_IMS_5109_01_ic(
1700                        ImsInterfaceMonitor p_monitorCompRef,
1701                        boolean p_checkMessage
1702                ) runs on ImsTestCoordinator  {
1703                        p_monitorCompRef.start(
1704                         f_imsIot_receive(
1705                                {mw_SipRequest(mw_INVITE_Request_Base)},
1706                                {},
1707                                {0, omit},
1708                                "TP_IMS_5109_01",
1709                                false,
1710                                p_checkMessage
1711                         )
1712                        );
1713                        p_monitorCompRef.done;
1714                       
1715                        p_monitorCompRef.start(
1716                         f_imsIot_receive(
1717                                {mw_SipResponse(mdw_408Or5XX_Base)},
1718                                {},
1719                                {0, omit},
1720                                "TP_IMS_5109_01",
1721                                false,
1722                                false
1723                         )
1724                        );
1725                        p_monitorCompRef.done;
1726                       
1727                } //function
1728
1729} // group
1730
1731group checksTC_IMS_CALL_0007 {
1732
1733               
1734                /**
1735          * @desc Starts monitor component behavior
1736          * @param p_monitorCompRef Reference to monitor component
1737                  */
1738        function f_mtc_check_TP_IMS_5055_01_gm(
1739                ImsInterfaceMonitor p_monitorCompRef,
1740                boolean p_checkMessage
1741        ) runs on ImsTestCoordinator {
1742                                       
1743                p_monitorCompRef.start(
1744                 f_imsIot_receive(
1745                        {mw_SipResponse(mw_180Ringing_Base)},
1746                        {},
1747                        {0, omit},
1748                        "TP_IMS_5055_01",
1749                        false,
1750                        p_checkMessage
1751                 )
1752                );
1753                p_monitorCompRef.done;
1754                }
1755           
1756            /**
1757                  * @desc Starts monitor component behavior
1758                  * @param p_monitorCompRef Reference to monitor component
1759                  */
1760        function f_mtc_check_TP_IMS_5055_01_ic(
1761                        ImsInterfaceMonitor p_monitorCompRef,
1762                        boolean p_checkMessage
1763        ) runs on ImsTestCoordinator {
1764                var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
1765                        var ImsUserInfo v_user := f_getAnyValidUser(PX_EUT_A);
1766                        var template SipUrl v_UserEutAUrl := mw_SipUrl_Host(v_user.domain);
1767                                       
1768                p_monitorCompRef.start(
1769                 f_imsIot_receive(
1770                        {mw_SipResponse(mdw_TP_IMS_5055_01_ic(v_pcscfEutAUrl, v_UserEutAUrl))},
1771                        {mw_SipResponse(mw_180Ringing_Base)},
1772                        {0, omit},
1773                        "TP_IMS_5055_01",
1774                        false,
1775                        p_checkMessage
1776                        )
1777                 );
1778                p_monitorCompRef.done;
1779        }
1780               
1781                /**
1782                  * @desc Starts monitor component behavior
1783                  * @param p_monitorCompRef Reference to monitor component
1784                  */           
1785                function f_mtc_check_TP_IMS_5055_02_gm(
1786                ImsInterfaceMonitor p_monitorCompRef,
1787                boolean p_checkMessage
1788                ) runs on ImsTestCoordinator {
1789           
1790                        p_monitorCompRef.start(
1791                         f_imsIot_receive(
1792                                {mw_SipResponse(mw_200OK_Base)},
1793                                {},
1794                                {0, omit},
1795                                "TP_IMS_5055_02",
1796                                false,
1797                                p_checkMessage
1798                         )
1799                        );
1800                        p_monitorCompRef.done;
1801                }
1802                   
1803                /**
1804                  * @desc Starts monitor component behavior
1805                  * @param p_monitorCompRef Reference to monitor component
1806                  */
1807                function f_mtc_check_TP_IMS_5055_02_ic(
1808                ImsInterfaceMonitor p_monitorCompRef,
1809                boolean p_checkMessage
1810                ) runs on ImsTestCoordinator {
1811                var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
1812                        var ImsUserInfo v_user := f_getAnyValidUser(PX_EUT_A);
1813                        var template SipUrl v_UserEutAUrl := mw_SipUrl_Host(v_user.domain);
1814
1815                p_monitorCompRef.start(
1816                 f_imsIot_receive(
1817                        {mw_SipResponse(mdw_TP_IMS_5055_02_ic(v_pcscfEutAUrl, v_UserEutAUrl))},
1818                        {mw_SipResponse(mw_200OK_Base)},
1819                        {0, omit},
1820                        "TP_IMS_5055_02",
1821                        false,
1822                        p_checkMessage
1823                 )
1824                );
1825                p_monitorCompRef.done;
1826                }
1827                                                                   
1828            /**
1829                 * @desc Starts monitor component behavior
1830                 * @param p_monitorCompRef Reference to monitor component
1831                 */
1832            function f_mtc_check_TP_IMS_5067_01_gm(
1833                ImsInterfaceMonitor p_monitorCompRef,
1834                        boolean p_checkMessage
1835            ) runs on ImsTestCoordinator {
1836                                       
1837           p_monitorCompRef.start(
1838            f_imsIot_receive(
1839                {mw_SipRequest(mw_INVITE_Request_Base)},
1840                {},
1841                {0, omit},
1842                "TP_IMS_5067_01",
1843                false,
1844                                p_checkMessage
1845            )
1846           );
1847           p_monitorCompRef.done;
1848            }
1849           
1850            /**
1851                 * @desc Starts monitor component behavior
1852                 * @param p_monitorCompRef Reference to monitor component
1853                 */
1854            function f_mtc_check_TP_IMS_5067_01_ic(
1855                ImsInterfaceMonitor p_monitorCompRef,
1856                        boolean p_checkMessage
1857            ) runs on ImsTestCoordinator  {
1858           p_monitorCompRef.start(
1859            f_imsIot_receive(
1860                {mw_SipRequest(mdw_TP_IMS_5067_01_ic)},
1861                {mw_SipRequest(mw_INVITE_Request_Base)},
1862                {0, omit},
1863                "TP_IMS_5067_01",
1864                true,   //NOTE: later check in 5108_01 of same icid value
1865                                p_checkMessage
1866            )
1867           );
1868           p_monitorCompRef.done;
1869            }
1870           
1871        /**
1872                  * @desc Starts monitor component behavior for TP_IMS_5070_01
1873                  * @param p_monitorCompRef Reference to monitor component
1874                  */
1875        function f_mtc_check_TP_IMS_5070_01_ic(
1876                ImsInterfaceMonitor p_monitorCompRef,
1877                boolean p_checkMessage
1878        ) runs on ImsTestCoordinator {
1879       
1880                p_monitorCompRef.start(
1881                        f_imsIot_receive(
1882                        {mw_SipRequest(mw_INVITE_Request_Base)},
1883                        {},
1884                        {0, omit},
1885                        "TP_IMS_5070_01",
1886                        false,
1887                        p_checkMessage
1888                        )
1889                );
1890                p_monitorCompRef.done;
1891               
1892                        p_monitorCompRef.start(
1893                                f_imsIot_receive(
1894                                {mw_SipResponse(mw_100Trying_Base)},
1895                                {},
1896                                {0, omit},
1897                                "TP_IMS_5070_01",
1898                                false,
1899                                false
1900                                )
1901                        );
1902                        p_monitorCompRef.done;
1903       
1904        }
1905           
1906                /**
1907          * @desc Starts monitor component behavior for TP_IMS_5108_01
1908          * @param p_monitorCompRef Reference to monitor component
1909          */
1910                function f_mtc_check_TP_IMS_5108_01_ic(
1911                        ImsInterfaceMonitor p_monitorCompRef,
1912                        boolean p_checkMessage
1913                ) runs on ImsTestCoordinator {
1914                        var template SipUrl v_SCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B));
1915                        var SemicolonParam_List p_paramList;
1916                        var GenericParam p_param;
1917                        var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
1918   
1919                                               
1920   
1921                        f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); //NOTE: icid value from 5067_01
1922log("### f_mtc_check_TP_IMS_5108_01_ic: v_sip=", v_sip.request.msgHeader.pChargingVector);
1923                        if(ispresent(v_sip.request.msgHeader.pChargingVector)) {
1924                                 if(ispresent(v_sip.request.msgHeader.pChargingVector.chargeParams))  {
1925log("### f_mtc_check_TP_IMS_5108_01_ic: then");
1926                        p_paramList := v_sip.request.msgHeader.pChargingVector.chargeParams;
1927log("### f_mtc_check_TP_IMS_5108_01_ic: p_paramList=", p_paramList);
1928                        for(var integer i := 0; i < lengthof(p_paramList); i:= i+1) {
1929                                        if(p_paramList[i].id == "icid-value") {
1930log("### f_mtc_check_TP_IMS_5108_01_ic: find param=", p_paramList[i]);
1931                                                p_param := p_paramList[i];
1932                                                break;
1933                                        }
1934                                }
1935                        }
1936                        }
1937log("### f_mtc_check_TP_IMS_5108_01_ic: start");
1938
1939                        p_monitorCompRef.start(
1940                                f_imsIot_receive(
1941                                {mw_SipRequest(mdw_TP_IMS_5108_01_ic(v_SCSCF_IMS_B, p_param))},//pass criteria
1942                                {
1943                                mw_SipRequest(mdw_TP_IMS_5108_01_f_ic), //fail criteria
1944                                mw_SipRequest(mw_INVITE_Request_Base)   //fail criteria
1945                                },
1946                                {0, omit},
1947                                "TP_IMS_5108_01",
1948                                false,
1949                                p_checkMessage
1950                                )
1951                        );
1952                        p_monitorCompRef.done;
1953   
1954                }
1955                                                                   
1956                /**
1957          * @desc Starts monitor component behavior
1958          * @param p_monitorCompRef Reference to monitor component
1959                  */
1960                function f_mtc_check_TP_IMS_5301_01_gm(
1961                        ImsInterfaceMonitor p_monitorCompRef,
1962                        boolean p_checkMessage
1963                ) runs on ImsTestCoordinator {
1964                                       
1965                        p_monitorCompRef.start(
1966                         f_imsIot_receive(
1967                                {mw_SipRequest(mw_BYE_Request_Base(*))},
1968                                {},
1969                                {0, omit},
1970                                "TP_IMS_5301_01",
1971                                false,
1972                                p_checkMessage
1973                         )
1974                        );
1975                        p_monitorCompRef.done;
1976                }
1977           
1978                /**
1979          * @desc Starts monitor component behavior
1980          * @param p_monitorCompRef Reference to monitor component
1981                  */
1982                function f_mtc_check_TP_IMS_5301_01_ic(
1983                        ImsInterfaceMonitor p_monitorCompRef,
1984                        boolean p_checkMessage
1985                ) runs on ImsTestCoordinator  {
1986                        var template SipUrl v_SCSCF_IMS_A := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
1987                        p_monitorCompRef.start(
1988                         f_imsIot_receive(
1989                                {mw_SipRequest(mdw_TP_IMS_5301_01_ic(?, v_SCSCF_IMS_A))},
1990                                {mw_SipRequest(mw_BYE_Request_Base(?))},
1991                                {0, omit},
1992                                "TP_IMS_5301_01",
1993                                false, 
1994                                p_checkMessage
1995                         )
1996                        );
1997                        p_monitorCompRef.done;
1998                }
1999           
2000} // group
2001
2002group checksTC_IMS_CALL_0008 {
2003           
2004                /**
2005        * @desc Starts monitor component behavior
2006        * @param p_monitorCompRef Reference to monitor component
2007        */
2008                function f_mtc_check_TP_IMS_5081_01_ic(
2009            ImsInterfaceMonitor p_monitorCompRef,
2010            boolean p_checkMessage
2011        ) runs on ImsTestCoordinator {
2012                               
2013        p_monitorCompRef.start(
2014         f_imsIot_receive(
2015                {mw_SipRequest(mw_INVITE_Request_Base)},
2016                {},
2017                {0, omit},
2018                "TP_IMS_5081_01",
2019                false,
2020                        p_checkMessage
2021                )
2022         );
2023        p_monitorCompRef.done;
2024                               
2025        p_monitorCompRef.start(
2026                 f_imsIot_receive(
2027                        {mw_SipResponse(mw_100Trying_Base)},
2028                        {},
2029                        {0, omit},
2030                        "TP_IMS_5081_01",
2031                        false,
2032                        false
2033                        )
2034                 );
2035        p_monitorCompRef.done;
2036                }
2037               
2038                /**
2039                * @desc Starts monitor component behavior
2040                * @param p_monitorCompRef Reference to monitor component
2041                */             
2042                function f_mtc_check_TP_IMS_5082_01_gm(
2043                        ImsInterfaceMonitor p_monitorCompRef,
2044                        boolean p_checkMessage,
2045                        integer p_skipCount
2046                ) runs on ImsTestCoordinator {
2047                        var template SkipType v_skip := {0, omit};
2048               
2049                        if(p_skipCount > 0) {
2050                                v_skip := {1, mw_SipResponse(mw_200OK_Base)};
2051                        }
2052                       
2053                p_monitorCompRef.start(
2054                 f_imsIot_receive(
2055                        {mw_SipResponse(mw_200OK_Base)},
2056                        {},
2057                                v_skip,
2058                        "TP_IMS_5082_01",
2059                        false,
2060                        p_checkMessage
2061                 )
2062                );
2063                p_monitorCompRef.done;
2064                }
2065                   
2066                /**
2067                * @desc Starts monitor component behavior
2068                * @param p_monitorCompRef Reference to monitor component
2069                */
2070                function f_mtc_check_TP_IMS_5082_01_ic(
2071                        ImsInterfaceMonitor p_monitorCompRef,
2072                        boolean p_checkMessage,
2073                        integer p_skipCount
2074                ) runs on ImsTestCoordinator {
2075                        var template SkipType v_skip := {0, omit};
2076               
2077                        if(p_skipCount > 0) {
2078                                v_skip := {p_skipCount, mw_SipResponse(mw_200OK_Base)};
2079                        }       
2080                       
2081                        p_monitorCompRef.start(
2082                         f_imsIot_receive(
2083                                {mw_SipResponse(mdw_TP_IMS_5082_01_ic)},//TODO check updated access-network-charging-info
2084                                {mw_SipResponse(mw_200OK_Base)},
2085                                v_skip,
2086                                "TP_IMS_5082_01",
2087                                false,
2088                                p_checkMessage
2089                         )
2090                        );
2091                        p_monitorCompRef.done;
2092                }
2093
2094               
2095                /**
2096          * @desc Starts monitor component behavior
2097          * @param p_monitorCompRef Reference to monitor component
2098                  */
2099        function f_mtc_check_TP_IMS_5120_01_gm(
2100                ImsInterfaceMonitor p_monitorCompRef,
2101                boolean p_checkMessage,
2102                        integer p_skipCount
2103        ) runs on ImsTestCoordinator {
2104                var template SkipType v_skip := {0, omit};
2105               
2106                        if(p_skipCount > 0) {
2107                                v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)};
2108                        }
2109                                       
2110                p_monitorCompRef.start(
2111                 f_imsIot_receive(
2112                        {mw_SipRequest(mw_INVITE_Request_Base)},
2113                        {},
2114                                v_skip,
2115                        "TP_IMS_5120_01",
2116                        false,
2117                        p_checkMessage
2118                 )
2119                );
2120                p_monitorCompRef.done;
2121                }
2122           
2123            /**
2124                  * @desc Starts monitor component behavior
2125                  * @param p_monitorCompRef Reference to monitor component
2126                  */
2127        function f_mtc_check_TP_IMS_5120_01_ic(
2128                        ImsInterfaceMonitor p_monitorCompRef,
2129                        boolean p_checkMessage,
2130                        integer p_skipCount
2131        ) runs on ImsTestCoordinator {
2132                var template SipUrl v_scscfEutBUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B));
2133                        var template SkipType v_skip := {0, omit};
2134               
2135                        if(p_skipCount > 0) {
2136                                v_skip := {p_skipCount, mw_SipRequest(mw_INVITE_Request_Base)};
2137                        }
2138                                                                       
2139                //INVITE from IMS_A to IMS_B                   
2140                        p_monitorCompRef.start(
2141                         f_imsIot_receive(
2142                                {mw_SipRequest(mw_INVITE_Request_Base)},
2143                                {},
2144                                v_skip,
2145                                "TP_IMS_5120_01",
2146                                false,
2147                                false
2148                                )
2149                         );
2150                        p_monitorCompRef.done;
2151                       
2152                        // 100 Trying from IMS_B to IMS_A
2153                        p_monitorCompRef.start(
2154                 f_imsIot_receive(
2155                        {mw_SipResponse(mw_100Trying_Base)},
2156                        {},
2157                        {0, omit},
2158                        "TP_IMS_5120_01",
2159                        false,
2160                        false
2161                        )
2162                 );
2163                        p_monitorCompRef.done;
2164               
2165                        // INVITE from IMS_B to IMS_A
2166                p_monitorCompRef.start(
2167                 f_imsIot_receive(
2168                        {mw_SipRequest(mdw_TP_IMS_5120_01_ic(v_scscfEutBUrl))},
2169                        {},
2170                        {0, omit},
2171                        "TP_IMS_5120_01",
2172                        false,
2173                        p_checkMessage
2174                        )
2175                 );
2176                p_monitorCompRef.done;
2177        }
2178           
2179} // group
2180
2181group checksTC_IMS_CALL_0009 {
2182
2183                                                                   
2184                /**
2185          * @desc Starts monitor component behavior
2186          * @param p_monitorCompRef Reference to monitor component
2187                  */
2188                function f_mtc_check_TP_IMS_5052_01_gm(
2189                        ImsInterfaceMonitor p_monitorCompRef,
2190                        boolean p_checkMessage
2191                ) runs on ImsTestCoordinator {
2192                                       
2193                        p_monitorCompRef.start(
2194                         f_imsIot_receive(
2195                                {mw_SipRequest(mw_BYE_Request_Base(*))},
2196                                {},
2197                                {0, omit},
2198                                "TP_IMS_5052_01",
2199                                false,
2200                                p_checkMessage
2201                         )
2202                        );
2203                        p_monitorCompRef.done;
2204                }
2205           
2206                /**
2207          * @desc Starts monitor component behavior
2208          * @param p_monitorCompRef Reference to monitor component
2209                  */
2210                function f_mtc_check_TP_IMS_5052_01_ic(
2211                        ImsInterfaceMonitor p_monitorCompRef,
2212                        boolean p_checkMessage
2213                ) runs on ImsTestCoordinator  {
2214                        var template SipUrl v_PCSCF_IMS_A := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
2215                        var template RecordRoute p_recordRoute := omit;
2216                        var SipMessage v_sip := {request := valueof(m_ACK_Dummy)};
2217                       
2218                        p_monitorCompRef.start(
2219                                f_imsIot_receive(
2220                                {mw_SipRequest(mw_ACK_Request_Base(?))},
2221                                {},
2222                                {1, mw_SipRequest(mw_ACK_Request_Base(?))},
2223                                "TP_IMS_5052_01",
2224                                true,   
2225                                false
2226                                )
2227                        );
2228                        p_monitorCompRef.done;
2229                       
2230                        // get Record-route header from prev ACK
2231                        f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
2232                        if(ispresent(v_sip.request.msgHeader.recordRoute)){
2233                                p_recordRoute := v_sip.request.msgHeader.recordRoute;
2234                        }
2235                       
2236                       
2237                        p_monitorCompRef.start(
2238                         f_imsIot_receive(
2239                                {mw_SipRequest(mdw_TP_IMS_5052_01_p_ic(?,p_recordRoute))},
2240                                {
2241                                        mw_SipRequest(mdw_TP_IMS_5052_01_f_ic(?, v_PCSCF_IMS_A)),
2242                                        mw_SipRequest(mw_BYE_Request_Base(?))
2243                                },
2244                                {0, omit},
2245                                "TP_IMS_5052_01",
2246                                false, 
2247                                p_checkMessage
2248                         )
2249                        );
2250                        p_monitorCompRef.done;
2251                }
2252           
2253} // group
2254
2255group checksTC_IMS_CALL_0010 {
2256               
2257                /**
2258          * @desc Starts monitor component behavior
2259          * @param p_monitorCompRef Reference to monitor component
2260                  */
2261        function f_mtc_check_TP_IMS_5048_01_gm(
2262                ImsInterfaceMonitor p_monitorCompRef,
2263                boolean p_checkMessage,
2264                        integer p_skipCount
2265        ) runs on ImsTestCoordinator {
2266                var template SkipType v_skip := {0, omit};
2267               
2268                        if(p_skipCount > 0) {
2269                                v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)};
2270                        }
2271                                       
2272                p_monitorCompRef.start(
2273                 f_imsIot_receive(
2274                        {mw_SipRequest(mw_INVITE_Request_Base)},
2275                        {},
2276                                v_skip,
2277                        "TP_IMS_5048_01",
2278                        false,
2279                        p_checkMessage
2280                 )
2281                );
2282                p_monitorCompRef.done;
2283                }
2284           
2285            /**
2286                  * @desc Starts monitor component behavior
2287                  * @param p_monitorCompRef Reference to monitor component
2288                  */
2289        function f_mtc_check_TP_IMS_5048_01_ic(
2290                        ImsInterfaceMonitor p_monitorCompRef,
2291                        boolean p_checkMessage,
2292                        integer p_skipCount
2293        ) runs on ImsTestCoordinator {
2294                var template SipUrl v_pcscfEutAUrl := (mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)),
2295                                                                                                                mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A)));
2296                        var template SkipType v_skip := {0, omit};
2297               
2298                        if(p_skipCount > 0) {
2299                                v_skip := {p_skipCount, mw_SipRequest(mw_INVITE_Request_Base)};
2300                        }
2301               
2302                        // INVITE from IMS_A to IMS_B
2303                p_monitorCompRef.start(
2304                 f_imsIot_receive(
2305                        {mw_SipRequest(mdw_TP_IMS_5048_01_ic(v_pcscfEutAUrl))},
2306                        {},
2307                                v_skip,
2308                        "TP_IMS_5048_01",
2309                        false,
2310                        p_checkMessage
2311                        )
2312                 );
2313                p_monitorCompRef.done;
2314        }
2315           
2316            /**
2317                  * @desc Starts monitor component behavior
2318                  * @param p_monitorCompRef Reference to monitor component
2319                  */
2320        function f_mtc_check_TP_IMS_5080_01_ic(
2321                        ImsInterfaceMonitor p_monitorCompRef,
2322                        boolean p_checkMessage
2323        ) runs on ImsTestCoordinator {
2324               
2325                        // INVITE from IMS_A to IMS_B
2326                p_monitorCompRef.start(
2327                 f_imsIot_receive(
2328                        {mw_SipRequest(mdw_TP_IMS_5080_01_ic)},
2329                        {},
2330                        {0, omit},
2331                        "TP_IMS_5080_01",
2332                        false,
2333                        p_checkMessage
2334                        )
2335                 );
2336                p_monitorCompRef.done;
2337        }
2338           
2339} // group
2340
2341group checksTC_IMS_CALL_0013 {     
2342       
2343                /**
2344                  * @desc Starts monitor component behavior
2345                  * @param p_monitorCompRef Reference to monitor component
2346                  */
2347                function f_mtc_check_TP_IMS_5072_02_gm(
2348                        ImsInterfaceMonitor p_monitorCompRef,
2349                        boolean p_checkMessage
2350                ) runs on ImsTestCoordinator  {
2351                       
2352                        p_monitorCompRef.start(
2353                         f_imsIot_receive(
2354                                {mw_SipRequest(mdw_TP_IMS_5072_02_gm(?))},
2355                                {},
2356                                {0, omit},
2357                                "TP_IMS_5072_02",
2358                                false,
2359                                p_checkMessage
2360                         )
2361                        );
2362                        p_monitorCompRef.done;
2363                       
2364                } //function
2365
2366} // group
2367
2368group checksTC_IMS_CALL_0014 {     
2369       
2370   
2371        /**
2372          * @desc Starts monitor component behavior
2373          * @param p_monitorCompRef Reference to monitor component
2374          */
2375        function f_mtc_check_TP_IMS_5107_03_gm(
2376                ImsInterfaceMonitor p_monitorCompRef,
2377                boolean p_checkMessage
2378        ) runs on ImsTestCoordinator  {
2379               
2380                p_monitorCompRef.start(
2381                        f_imsIot_receive(
2382                        {mw_SipRequest(mw_CANCEL_Request_Base(?))},
2383                        {},
2384                        {0, omit},
2385                        "TP_IMS_5107_03",
2386                        false,
2387                        p_checkMessage
2388                        )
2389                );
2390                p_monitorCompRef.done;
2391                       
2392        } //function
2393
2394                /**
2395                  * @desc Starts monitor component behavior
2396                  * @param p_monitorCompRef Reference to monitor component
2397                  */
2398                function f_mtc_check_TP_IMS_5107_03_ic(
2399                        ImsInterfaceMonitor p_monitorCompRef,
2400                        boolean p_checkMessage
2401                ) runs on ImsTestCoordinator  {
2402                        var template SipUrl v_scscfImsAUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
2403                       
2404                        p_monitorCompRef.start(
2405                         f_imsIot_receive(
2406                                {mw_SipRequest(mdw_TP_IMS_5107_03_ic(?, v_scscfImsAUrl))},
2407                                {},
2408                                {0, omit},
2409                                "TP_IMS_5107_03",
2410                                false,
2411                                p_checkMessage
2412                         )
2413                        );
2414                        p_monitorCompRef.done;
2415                       
2416                } //function
2417
2418} // group
2419
2420group checksTC_IMS_CALL_0016 { 
2421                /**
2422                * @desc Starts monitor component behavior
2423                * @param p_monitorCompRef Reference to monitor component
2424                */
2425                function f_mtc_check_TP_IMS_5139_01_ic(
2426                        ImsInterfaceMonitor p_monitorCompRef,
2427                        boolean p_checkMessage
2428                ) runs on ImsTestCoordinator  {
2429                        var template SipUrl v_scscfImsAUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
2430                        var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
2431                                                var SipUrl v_UE_URI;
2432                        var To  v_to;
2433                        var From v_from;
2434                        var CallId v_callId;
2435                        var CSeq v_cSeq;
2436                        var Route v_route;
2437                       
2438                       
2439                        p_monitorCompRef.start(
2440                        f_imsIot_receive(
2441                        {mw_SipRequest(mw_INVITE_Request_Base)},
2442                        {},
2443                        {0, omit},
2444                        "TP_IMS_5139_01",
2445                        true,
2446                        p_checkMessage
2447                        )
2448                );
2449                p_monitorCompRef.done;
2450               
2451                        f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
2452                        // Get Contact Header from INVITE
2453
2454                        if(ischosen(v_sip.request)) {
2455                                v_from := valueof(v_sip.request.msgHeader.fromField);           
2456                                v_callId := valueof(v_sip.request.msgHeader.callId);
2457                        }
2458   
2459                p_monitorCompRef.start(
2460                        f_imsIot_receive(
2461                        {mw_SipResponse(mw_200OK_Base)},
2462                        {},
2463                        {0, omit},
2464                        "TP_IMS_5139_01",
2465                        true,
2466                        p_checkMessage
2467                        )
2468                );
2469                p_monitorCompRef.done;
2470                       
2471                        f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
2472                        // Get Contact Header from 200-OK response
2473                       
2474                if(ischosen(v_sip.response)) {
2475                        if(ispresent(v_sip.response.msgHeader.contact)) {
2476                                v_UE_URI := f_getContactAddr(v_sip.response.msgHeader.contact);
2477                        }
2478                        v_to := valueof(v_sip.response.msgHeader.toField);             
2479                        }
2480               
2481                        p_monitorCompRef.start(
2482                                f_imsIot_receive(
2483                                {mw_SipRequest(mdw_TP_IMS_5139_01_ic(v_callId, v_UE_URI, v_to, v_from, ?, ?))},
2484                                {},
2485                                {0, omit},
2486                                "TP_IMS_5139_01",
2487                                false,
2488                                p_checkMessage
2489                                )
2490                        );
2491                        p_monitorCompRef.done;
2492                       
2493                } //function
2494} // group
2495
2496group checksTC_IMS_CALL_0024 {
2497                                                                   
2498            /**
2499                 * @desc Starts monitor component behavior
2500                 * @param p_monitorCompRef Reference to monitor component
2501                 */
2502            function f_mtc_check_TP_IMS_5135_01_gm(
2503                ImsInterfaceMonitor p_monitorCompRef,
2504                        boolean p_checkMessage
2505            ) runs on ImsTestCoordinator {
2506                                       
2507           p_monitorCompRef.start(
2508            f_imsIot_receive(
2509                {mw_SipRequest(mw_INVITE_Request_Base)},
2510                {},
2511                {0, omit},
2512                "TP_IMS_5135_01",
2513                false,
2514                                p_checkMessage
2515            )
2516           );
2517           p_monitorCompRef.done;
2518            }
2519           
2520            /**
2521                 * @desc Starts monitor component behavior
2522                 * @param p_monitorCompRef Reference to monitor component
2523                 */
2524            function f_mtc_check_TP_IMS_5135_01_ic(
2525                ImsInterfaceMonitor p_monitorCompRef,
2526                        boolean p_checkMessage
2527            ) runs on ImsTestCoordinator  {
2528                   var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A));
2529               
2530           p_monitorCompRef.start(
2531            f_imsIot_receive(
2532                {mw_SipRequest(mdw_TP_IMS_5135_01_ic(v_ibcfEutAUrl))},
2533                {},
2534                {0, omit},
2535                "TP_IMS_5135_01",
2536                false,
2537                                p_checkMessage
2538            )
2539           );
2540           p_monitorCompRef.done;
2541            }
2542           
2543                /**
2544          * @desc Starts monitor component behavior
2545          * @param p_monitorCompRef Reference to monitor component
2546          */
2547                function f_mtc_check_TP_IMS_5137_01_ic(
2548                        ImsInterfaceMonitor p_monitorCompRef,
2549                        boolean p_checkMessage
2550                ) runs on ImsTestCoordinator  {
2551                        var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A));
2552               
2553                        p_monitorCompRef.start(
2554                         f_imsIot_receive(
2555                                {mw_SipRequest(mdw_TP_IMS_5137_01_ic(v_ibcfEutAUrl))},
2556                                {},
2557                                {0, omit},
2558                                "TP_IMS_5137_01",
2559                                false,
2560                                p_checkMessage
2561                         )
2562                        );
2563                        p_monitorCompRef.done;
2564                }
2565                                                                   
2566                /**
2567          * @desc Starts monitor component behavior
2568          * @param p_monitorCompRef Reference to monitor component
2569          */
2570                function f_mtc_check_TP_IMS_5404_01_gm(
2571                        ImsInterfaceMonitor p_monitorCompRef,
2572                        boolean p_checkMessage
2573                ) runs on ImsTestCoordinator {
2574                                       
2575                        p_monitorCompRef.start(
2576                         f_imsIot_receive(
2577                                {mw_SipRequest(mdw_TP_IMS_5404_01_gm)},
2578                                {},
2579                                {0, omit},
2580                                "TP_IMS_5404_01",
2581                                false,
2582                                p_checkMessage
2583                         )
2584                        );
2585                        p_monitorCompRef.done;
2586                }
2587           
2588                /**
2589          * @desc Starts monitor component behavior
2590          * @param p_monitorCompRef Reference to monitor component
2591          */
2592                function f_mtc_check_TP_IMS_5404_01_ic(
2593                        ImsInterfaceMonitor p_monitorCompRef,
2594                        boolean p_checkMessage
2595                ) runs on ImsTestCoordinator  {
2596                               
2597                        p_monitorCompRef.start(
2598                         f_imsIot_receive(
2599                                {mw_SipRequest(mdw_TP_IMS_5404_01_ic)},
2600                                {},
2601                                {0, omit},
2602                                "TP_IMS_5404_01",
2603                                false,
2604                                p_checkMessage
2605                         )
2606                        );
2607                        p_monitorCompRef.done;
2608                }
2609           
2610                /**
2611          * @desc Starts monitor component behavior for TP_IMS_5414_01
2612          * @param p_monitorCompRef Reference to monitor component
2613          */
2614                function f_mtc_check_TP_IMS_5414_01_ic(
2615                        ImsInterfaceMonitor p_monitorCompRef,
2616                        boolean p_checkMessage
2617                ) runs on ImsTestCoordinator {
2618       
2619                        p_monitorCompRef.start(
2620                                f_imsIot_receive(
2621                                {mw_SipRequest(mw_INVITE_Request_Base)},
2622                                {},
2623                                {0, omit},
2624                                "TP_IMS_5414_01",
2625                                false,
2626                                p_checkMessage
2627                                )
2628                        );
2629                        p_monitorCompRef.done;
2630               
2631            p_monitorCompRef.start(
2632                f_imsIot_receive(
2633                {mw_SipResponse(mw_100Trying_Base)},
2634                {},
2635                {0, omit},
2636                "TP_IMS_5414_01",
2637                false,
2638                false
2639                )
2640            );
2641            p_monitorCompRef.done;
2642       
2643                }
2644               
2645                /**
2646                  * @desc Starts monitor component behavior
2647                  * @param p_monitorCompRef Reference to monitor component
2648                  */
2649                function f_mtc_check_TP_IMS_5137_02_gm(
2650                        ImsInterfaceMonitor p_monitorCompRef,
2651                        boolean p_checkMessage
2652                ) runs on ImsTestCoordinator {
2653                                       
2654                        p_monitorCompRef.start(
2655                         f_imsIot_receive(
2656                                {mw_SipResponse(mw_180Ringing_Base)},
2657                                {},
2658                                {0, omit},
2659                                "TP_IMS_5137_02",
2660                                false,
2661                                p_checkMessage
2662                         )
2663                        );
2664                        p_monitorCompRef.done;
2665                }
2666           
2667                /**
2668          * @desc Starts monitor component behavior
2669          * @param p_monitorCompRef Reference to monitor component
2670          */
2671                function f_mtc_check_TP_IMS_5137_02_ic(
2672                ImsInterfaceMonitor p_monitorCompRef,
2673                        boolean p_checkMessage
2674                ) runs on ImsTestCoordinator {
2675                                       
2676                        p_monitorCompRef.start(
2677                         f_imsIot_receive(
2678                                {mw_SipResponse(mdw_TP_IMS_5137_02_ic)},
2679                                {},
2680                                {0, omit},
2681                                "TP_IMS_5137_02",
2682                                false,
2683                                p_checkMessage
2684                                )
2685                         );
2686                        p_monitorCompRef.done;
2687                }
2688
2689                       
2690        /**
2691          * @desc Starts monitor component behavior
2692          * @param p_monitorCompRef Reference to monitor component
2693          */           
2694        function f_mtc_check_TP_IMS_5137_03_gm(
2695                        ImsInterfaceMonitor p_monitorCompRef,
2696                        boolean p_checkMessage
2697        ) runs on ImsTestCoordinator {
2698                   
2699        p_monitorCompRef.start(
2700                f_imsIot_receive(
2701                {mw_SipResponse(mw_200OK_Base)},
2702                {},
2703                {0, omit},
2704                "TP_IMS_5137_03",
2705                false,
2706                p_checkMessage
2707                )
2708        );
2709        p_monitorCompRef.done;
2710        }
2711                           
2712        /**
2713                * @desc Starts monitor component behavior
2714                * @param p_monitorCompRef Reference to monitor component
2715                */
2716        function f_mtc_check_TP_IMS_5137_03_ic(
2717                                ImsInterfaceMonitor p_monitorCompRef,
2718                                boolean p_checkMessage
2719        ) runs on ImsTestCoordinator {
2720                               
2721                                p_monitorCompRef.start(
2722                                        f_imsIot_receive(
2723                                        {mw_SipResponse(mdw_TP_IMS_5137_03_ic)},
2724                                        {},
2725                                        {0, omit},
2726                                        "TP_IMS_5137_03",
2727                                        false,
2728                                        p_checkMessage
2729                                        )
2730                                );
2731                                p_monitorCompRef.done;
2732        }
2733
2734                /**
2735        * @desc Starts monitor component behavior
2736        * @param p_monitorCompRef Reference to monitor component
2737                */
2738                function f_mtc_check_TP_IMS_5408_01_gm(
2739                        ImsInterfaceMonitor p_monitorCompRef,
2740                        boolean p_checkMessage
2741                ) runs on ImsTestCoordinator {
2742                                       
2743                        p_monitorCompRef.start(
2744                         f_imsIot_receive(
2745                                {mw_SipRequest(mw_ACK_Request_Base(?))},
2746                                {},
2747                                {0, omit},
2748                                "TP_IMS_5408_01",
2749                                false,
2750                                p_checkMessage
2751                         )
2752                        );
2753                        p_monitorCompRef.done;
2754                }
2755
2756                /**
2757          * @desc Starts monitor component behavior
2758          * @param p_monitorCompRef Reference to monitor component
2759                  */
2760                function f_mtc_check_TP_IMS_5408_01_ic(
2761                        ImsInterfaceMonitor p_monitorCompRef,
2762                        boolean p_checkMessage
2763                ) runs on ImsTestCoordinator  {
2764               
2765                        var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A));   
2766                   
2767                p_monitorCompRef.start(
2768                         f_imsIot_receive(
2769                                {mw_SipRequest(mdw_TP_IMS_5408_01_ic(?, v_ibcfEutAUrl))},
2770                                {},
2771                                {0, omit},
2772                                "TP_IMS_5408_01",
2773                                false,
2774                                p_checkMessage
2775                         )
2776                        );
2777                        p_monitorCompRef.done;
2778                }
2779                                                                   
2780                /**
2781          * @desc Starts monitor component behavior
2782          * @param p_monitorCompRef Reference to monitor component
2783                  */
2784                function f_mtc_check_TP_IMS_5408_03_gm(
2785                        ImsInterfaceMonitor p_monitorCompRef,
2786                        boolean p_checkMessage
2787                ) runs on ImsTestCoordinator {
2788                                       
2789                        p_monitorCompRef.start(
2790                         f_imsIot_receive(
2791                                {mw_SipRequest(mw_BYE_Request_Base(*))},
2792                                {},
2793                                {0, omit},
2794                                "TP_IMS_5408_03",
2795                                false,
2796                                p_checkMessage
2797                         )
2798                        );
2799                        p_monitorCompRef.done;
2800                }
2801           
2802                /**
2803          * @desc Starts monitor component behavior
2804          * @param p_monitorCompRef Reference to monitor component
2805                  */
2806                function f_mtc_check_TP_IMS_5408_03_ic(
2807                        ImsInterfaceMonitor p_monitorCompRef,
2808                        boolean p_checkMessage
2809                ) runs on ImsTestCoordinator  {
2810                        var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A));
2811                        p_monitorCompRef.start(
2812                         f_imsIot_receive(
2813                                {mw_SipRequest(mdw_TP_IMS_5408_03_ic(?, v_ibcfEutAUrl))},
2814                                {},
2815                                {0, omit},
2816                                "TP_IMS_5408_03",
2817                                false, 
2818                                p_checkMessage
2819                         )
2820                        );
2821                        p_monitorCompRef.done;
2822                }
2823           
2824} // group
2825
2826group checksTC_IMS_CALL_0025 {
2827                                                                   
2828                /**
2829                  * @desc Starts monitor component behavior
2830                  * @param p_monitorCompRef Reference to monitor component
2831                  */
2832                function f_mtc_check_TP_IMS_5408_02_gm(
2833                        ImsInterfaceMonitor p_monitorCompRef,
2834                        boolean p_checkMessage
2835                ) runs on ImsTestCoordinator {
2836                                       
2837                        p_monitorCompRef.start(
2838                                f_imsIot_receive(
2839                                {mw_SipRequest(mw_CANCEL_Request_Base(*))},
2840                                {},
2841                                {0, omit},
2842                                "TP_IMS_5408_02",
2843                                false,
2844                                p_checkMessage
2845                                )
2846                        );
2847                        p_monitorCompRef.done;
2848                }
2849           
2850                /**
2851                  * @desc Starts monitor component behavior
2852                  * @param p_monitorCompRef Reference to monitor component
2853                  */
2854                function f_mtc_check_TP_IMS_5408_02_ic(
2855                        ImsInterfaceMonitor p_monitorCompRef,
2856                        boolean p_checkMessage
2857                ) runs on ImsTestCoordinator  {
2858                        var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A));
2859                        p_monitorCompRef.start(
2860                                f_imsIot_receive(
2861                                {mw_SipRequest(mdw_TP_IMS_5408_02_ic(?, v_ibcfEutAUrl))},
2862                                {},
2863                                {0, omit},
2864                                "TP_IMS_5408_02",
2865                                false, 
2866                                p_checkMessage
2867                                )
2868                        );
2869                        p_monitorCompRef.done;
2870                }
2871           
2872} // group
2873
2874group checksTC_IMS_CALL_0026 {
2875                                                                   
2876                /**
2877                  * @desc Starts monitor component behavior
2878                  * @param p_monitorCompRef Reference to monitor component
2879                  */
2880                function f_mtc_check_TP_IMS_5408_04_gm(
2881                        ImsInterfaceMonitor p_monitorCompRef,
2882                        boolean p_checkMessage,
2883                        integer p_skipCount
2884                ) runs on ImsTestCoordinator {
2885                               
2886                        var template SkipType v_skip := {0, omit};
2887               
2888                        if(p_skipCount > 0) {
2889                                v_skip := {p_skipCount, mw_SipRequest(mw_INVITE_Request_Base)};
2890                        }
2891                                       
2892                        p_monitorCompRef.start(
2893                                f_imsIot_receive(
2894                                {mw_SipRequest(mw_INVITE_Request_Base)},
2895                                {},
2896                                v_skip,
2897                                "TP_IMS_5408_04",
2898                                false,
2899                                p_checkMessage
2900                                )
2901                        );
2902                        p_monitorCompRef.done;
2903                }
2904           
2905                /**
2906                  * @desc Starts monitor component behavior
2907                  * @param p_monitorCompRef Reference to monitor component
2908                  */
2909                function f_mtc_check_TP_IMS_5408_04_ic(
2910                        ImsInterfaceMonitor p_monitorCompRef,
2911                        boolean p_checkMessage,
2912                        integer p_skipCount
2913                ) runs on ImsTestCoordinator  {
2914                        var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A));
2915                        var template SkipType v_skip := {0, omit};
2916               
2917                        if(p_skipCount > 0) {
2918                                v_skip := {p_skipCount, mw_SipRequest(mw_INVITE_Request_Base)};
2919                        }
2920                       
2921                        p_monitorCompRef.start(
2922                                f_imsIot_receive(
2923                                {mw_SipRequest(mdw_TP_IMS_5408_04_ic(v_ibcfEutAUrl))},
2924                                {},
2925                                v_skip,
2926                                "TP_IMS_5408_04",
2927                                false, 
2928                                p_checkMessage
2929                                )
2930                        );
2931                        p_monitorCompRef.done;
2932                }
2933           
2934} // group
2935       
2936       
2937group checksTC_IMS_SS_0001 {
2938
2939           
2940            /**
2941                 * @desc Starts monitor component behavior
2942                 * @param p_monitorCompRef Reference to monitor component
2943                 */
2944            function f_mtc_check_TP_IMS_5310_01_gm(
2945                ImsInterfaceMonitor p_monitorCompRef,
2946                        integer p_skipCount
2947            ) runs on ImsTestCoordinator  {
2948               
2949                        var template SkipType v_skip := {0, omit};
2950               
2951                        if(p_skipCount > 0) {
2952                                v_skip := {p_skipCount, mw_SipRequest(mw_INVITE_Request_Base)};
2953                        }
2954                                                                                               
2955            p_monitorCompRef.start(
2956             f_imsIot_receive(
2957                 {mw_SipRequest(mdw_TP_IMS_5310_01_gm)},
2958                 {},
2959                 v_skip,
2960                 "TP_IMS_5310_01",
2961                 false,
2962                 false
2963             )
2964                        );
2965                        p_monitorCompRef.done;
2966            }
2967            /**
2968                 * @desc Starts monitor component behavior
2969                 * @param p_monitorCompRef Reference to monitor component
2970                 */
2971            function f_mtc_check_TP_IMS_5310_01_isc(
2972                ImsInterfaceMonitor p_monitorCompRef
2973            ) runs on ImsTestCoordinator  {
2974                       
2975            p_monitorCompRef.start(
2976             f_imsIot_receive(
2977                {mw_SipRequest(mdw_TP_IMS_5310_01_isc)},
2978                {},
2979                                {0, omit},
2980                "TP_IMS_5310_01",
2981                false,
2982                false
2983             )
2984            );
2985            p_monitorCompRef.done;
2986            }
2987           
2988            /**
2989                 * @desc Starts monitor component behavior
2990                 * @param p_monitorCompRef Reference to monitor component
2991                 */
2992            function f_mtc_check_TP_IMS_5312_01_ic(
2993                ImsInterfaceMonitor p_monitorCompRef,
2994                integer p_skipCount
2995            ) runs on ImsTestCoordinator  {
2996               
2997                var template SkipType v_skip := {0, omit};
2998
2999                        if(p_skipCount > 0) {
3000                                v_skip := {p_skipCount, mw_SipResponse(mw_Response_Base(c_statusLine200, ?, ?))};
3001                        }
3002                       
3003           p_monitorCompRef.start(
3004            f_imsIot_receive(
3005                {mw_SipResponse(mdw_TP_IMS_5312_01_ic)},
3006                {},
3007                                v_skip,
3008                "mdw_TP_IMS_5312_01",
3009                false,
3010                false
3011            )
3012           );
3013           p_monitorCompRef.done;
3014            }
3015            /**
3016                 * @desc Starts monitor component behavior
3017                 * @param p_monitorCompRef Reference to monitor component
3018                 */
3019            function f_mtc_check_TP_IMS_5312_01_isc(
3020                ImsInterfaceMonitor p_monitorCompRef
3021            ) runs on ImsTestCoordinator  {
3022           p_monitorCompRef.start(
3023            f_imsIot_receive(
3024                {mw_SipResponse(mdw_TP_IMS_5312_01_isc)},
3025                {},
3026                {0, omit},
3027                "TP_IMS_5312_01",
3028                false,
3029                false
3030            )
3031           );
3032           p_monitorCompRef.done;
3033            }
3034} // group
3035
3036
3037group checksTC_IMS_SS_0002 {
3038       
3039        // f_mtc_check_TP_IMS_5310_01_gm already used in test TC_IMS_SS_0001       
3040        // f_mtc_check_TP_IMS_5310_01_isc already used in test TC_IMS_SS_0001   
3041        // f_mtc_check_TP_IMS_5312_01_ic already used in test TC_IMS_SS_0001       
3042        // f_mtc_check_TP_IMS_5312_01_isc already used in test TC_IMS_SS_0001       
3043}
3044
3045
3046group checksTC_IMS_SS_0003 {
3047       
3048        // f_mtc_check_TP_IMS_5097_02_gm already used in test TC_IMS_CALL_0001
3049        // f_mtc_check_TP_IMS_5097_02_ic already used in test TC_IMS_CALL_0001
3050
3051                /**
3052          * @desc Starts monitor component behavior
3053          * @param p_monitorCompRef Reference to monitor component
3054                  */
3055                function f_mtc_check_TP_IMS_5108_03_ic(
3056                        ImsInterfaceMonitor p_monitorCompRef,
3057                        boolean p_checkMessage
3058                ) runs on ImsTestCoordinator  {
3059                       
3060                        p_monitorCompRef.start(
3061                         f_imsIot_receive(
3062                                {mw_SipRequest(mw_INVITE_Request_Base)},
3063                                {},
3064                                {0, omit},
3065                                "TP_IMS_5108_03",
3066                                false,
3067                                p_checkMessage
3068                         )
3069                        );
3070                        p_monitorCompRef.done;
3071                }
3072
3073        /**
3074        * @desc Starts monitor component behavior
3075        * @param p_monitorCompRef Reference to monitor component
3076        */
3077        function f_mtc_check_TP_IMS_5108_03_isc(
3078                ImsInterfaceMonitor p_monitorCompRef,
3079                boolean p_checkMessage
3080        ) runs on ImsTestCoordinator  {
3081                       
3082                        var template SipUrl v_AS_IMS_B := (mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B)),
3083                                                                                                                mw_SipUrl_Host(f_GetEUTASServerIpAddress(PX_EUT_B)));
3084                        var template SipUrl v_SCSCF_IMS_B := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)),
3085                                                                                                                        mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_B)));
3086                       
3087                p_monitorCompRef.start(
3088                 f_imsIot_receive(
3089                        {mw_SipRequest(mdw_TP_IMS_5108_03_isc(v_AS_IMS_B, v_SCSCF_IMS_B))},
3090                        {mw_SipRequest(mdw_TP_IMS_5108_03_f_isc)},
3091                        {0, omit},
3092                        "TP_IMS_5108_03",
3093                        false,
3094                        p_checkMessage
3095                 )
3096                );
3097                p_monitorCompRef.done;
3098        }
3099               
3100                /**
3101                  * @desc Starts monitor component behavior
3102                  * @param p_monitorCompRef Reference to monitor component
3103                  */
3104                function f_mtc_check_TP_IMS_5115_08_isc(
3105                        ImsInterfaceMonitor p_monitorCompRef,
3106                        boolean p_checkMessage
3107                ) runs on ImsTestCoordinator {
3108   
3109                        p_monitorCompRef.start(
3110                         f_imsIot_receive(
3111                                {mw_SipResponse(mw_200OK_Base)},//check 200OK from ASB->IMSB
3112                                {},
3113                                {1, mw_SipResponse(mw_200OK_Base)},//skip 200OK from IMSB->ASB
3114                                "TP_IMS_5115_08",
3115                                false,
3116                                p_checkMessage
3117                         )
3118                        );
3119                        p_monitorCompRef.done;
3120                }
3121           
3122                /**
3123                  * @desc Starts monitor component behavior
3124                  * @param p_monitorCompRef Reference to monitor component
3125                  */
3126                function f_mtc_check_TP_IMS_5115_08_ic(
3127                        ImsInterfaceMonitor p_monitorCompRef,
3128                        boolean p_checkMessage,
3129                        integer p_skipCount
3130                ) runs on ImsTestCoordinator {
3131                       
3132                        var template SkipType v_skip := {0, omit};
3133
3134                if(p_skipCount > 0) {
3135                        v_skip := {p_skipCount, mw_SipResponse(mw_Response_Base(c_statusLine200, ?, ?))};
3136                }
3137
3138                        p_monitorCompRef.start(
3139                         f_imsIot_receive(
3140                                {mw_SipResponse(mdw_TP_IMS_5115_08_ic)},
3141                                {},
3142                                v_skip,
3143                                "TP_IMS_5115_08",
3144                                false,
3145                                p_checkMessage
3146                         )
3147                        );
3148                        p_monitorCompRef.done;
3149        }
3150}
3151
3152group checksTC_IMS_SS_0004 {
3153       
3154        // f_mtc_check_TP_IMS_5108_03_ic already used in test TC_IMS_SS_0003       
3155        // f_mtc_check_TP_IMS_5108_03_isc already used in test TC_IMS_SS_0003   
3156        // f_mtc_check_TP_IMS_5115_08_ic already used in test TC_IMS_SS_0003       
3157        // f_mtc_check_TP_IMS_5115_08_isc already used in test TC_IMS_SS_0003       
3158}
3159group checksTC_IMS_SS_0005 {
3160       
3161// f_mtc_check_TP_IMS_5108_03_ic already used in test TC_IMS_SS_0003
3162// f_mtc_check_TP_IMS_5108_03_isc already used in test TC_IMS_SS_0003
3163
3164        /**
3165          * @desc Starts monitor component behavior
3166          * @param p_monitorCompRef Reference to monitor component
3167          */
3168        function f_mtc_check_TP_IMS_5313_01_ic(
3169                ImsInterfaceMonitor p_monitorCompRef,
3170                boolean p_checkMessage
3171                ) runs on ImsTestCoordinator  {
3172                       
3173                        p_monitorCompRef.start(
3174                         f_imsIot_receive(
3175                        {mw_SipResponse(mdw_TP_IMS_5313_01_ic)},
3176                        {},
3177                        {0, omit},
3178                        "TP_IMS_5313_01",
3179                        false,
3180                        p_checkMessage
3181                         )
3182                        );
3183                        p_monitorCompRef.done;
3184                }
3185
3186                /**
3187                  * @desc Starts monitor component behavior
3188                  * @param p_monitorCompRef Reference to monitor component
3189                  */
3190                function f_mtc_check_TP_IMS_5313_01_isc(
3191                        ImsInterfaceMonitor p_monitorCompRef,
3192                        boolean p_checkMessage
3193                ) runs on ImsTestCoordinator  {
3194                       
3195                        p_monitorCompRef.start(
3196                         f_imsIot_receive(
3197                                {mw_SipResponse(mdw_TP_IMS_5313_01_isc)},
3198                                {},
3199                                {0, omit},
3200                                "TP_IMS_5313_01",
3201                                false,
3202                                p_checkMessage
3203                         )
3204                        );
3205                        p_monitorCompRef.done;
3206                }
3207}//end group checksTC_IMS_SS_0005
3208
3209group checksTC_IMS_SS_0006 {
3210           
3211                /**
3212          * @desc Starts monitor component behavior
3213          * @param p_monitorCompRef Reference to monitor component
3214          */
3215                function f_mtc_check_TP_IMS_5097_09_ic(
3216                        ImsInterfaceMonitor p_monitorCompRef,
3217                        boolean p_checkMessage
3218                ) runs on ImsTestCoordinator  {
3219               
3220                        p_monitorCompRef.start(
3221                         f_imsIot_receive(
3222                                {mw_SipRequest(mw_INVITE_Request_Base)},
3223                                {},
3224                                {0, omit},
3225                                "TP_IMS_5097_09",
3226                                false,
3227                                p_checkMessage
3228                         )
3229                        );
3230                        p_monitorCompRef.done;
3231                } //function
3232           
3233                /**
3234          * @desc Starts monitor component behavior
3235          * @param p_monitorCompRef Reference to monitor component
3236          */
3237                function f_mtc_check_TP_IMS_5097_09_isc(
3238                        ImsInterfaceMonitor p_monitorCompRef,
3239                        boolean p_checkMessage
3240                ) runs on ImsTestCoordinator  {
3241               
3242                        var template SipUrl v_AS_IMS_B := mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B));
3243                        p_monitorCompRef.start(
3244                         f_imsIot_receive(
3245                                {mw_SipRequest(mdw_TP_IMS_5097_09_isc(v_AS_IMS_B))},
3246                                {mw_SipRequest(mdw_TP_IMS_5097_09_f_isc)},
3247                                {0, omit},
3248                                "TP_IMS_5097_09",
3249                                false,
3250                                p_checkMessage
3251                         )
3252                        );
3253                        p_monitorCompRef.done;
3254                } //function
3255
3256}//end group checksTC_IMS_SS_0006
3257
3258group checksTC_IMS_SS_0007 {
3259       
3260        // f_mtc_check_TP_IMS_5097_01_gm already used in test TC_IMS_CALL_0001     
3261        // f_mtc_check_TP_IMS_5097_01_ic already used in test TC_IMS_CALL_0001 
3262        // f_mtc_check_TP_IMS_5108_03_ic already used in test TC_IMS_SS_0003       
3263        // f_mtc_check_TP_IMS_5108_03_isc already used in test TC_IMS_SS_0003   
3264        // f_mtc_check_TP_IMS_5115_08_ic already used in test TC_IMS_SS_0003       
3265        // f_mtc_check_TP_IMS_5115_08_isc already used in test TC_IMS_SS_0003
3266       
3267}//end group checksTC_IMS_SS_0007
3268
3269group checksTC_IMS_SS_0008 {       
3270            /**
3271                 * @desc Starts monitor component behavior
3272                 * @param p_monitorCompRef Reference to monitor component
3273                 */
3274            function f_mtc_check_TP_IMS_5046_01_gm(
3275                ImsInterfaceMonitor p_monitorCompRef,
3276                        boolean p_checkMessage
3277            ) runs on ImsTestCoordinator {
3278                                       
3279           p_monitorCompRef.start(
3280            f_imsIot_receive(
3281                {mw_SipRequest(mw_INVITE_Request_Base)},
3282                {},
3283                {0, omit},
3284                "TP_IMS_5046_01",
3285                false,
3286                                p_checkMessage
3287            )
3288           );
3289           p_monitorCompRef.done;
3290            }
3291           
3292            /**
3293                 * @desc Starts monitor component behavior
3294                 * @param p_monitorCompRef Reference to monitor component
3295                 */
3296            function f_mtc_check_TP_IMS_5046_01_ic(
3297                ImsInterfaceMonitor p_monitorCompRef,
3298                        boolean p_checkMessage
3299            ) runs on ImsTestCoordinator  {
3300                   var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A));
3301                   var template SipUrl v_pcscfEutAIpUrl := mw_SipUrl_Host(f_GetEUTPcscfIpAddress(PX_EUT_A));
3302                        var ImsUserInfo v_user := f_getAnyValidUser(PX_EUT_B);
3303                        var template SipUrl v_UserEutBUrl := mw_SipUrl_Host(v_user.domain);
3304                   var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
3305                   var Route v_Route;
3306                   var template Route vt_pcscfRoute := {
3307                                        fieldName := ROUTE_E,
3308                                        routeBody := ({mw_routeBody(v_pcscfEutAUrl), *},
3309                                                                                {mw_routeBody(v_pcscfEutAIpUrl), *} )
3310                                                                        };
3311               var Via v_Via;
3312               var template Via vt_pcscfVia := {
3313                                fieldName := VIA_E,
3314                                        viaBody := ({mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *},
3315                                                                        {mw_ViaBody_interface(v_pcscfEutAIpUrl.hostPort), *} )
3316                                                                };
3317                                                               
3318           p_monitorCompRef.start(
3319            f_imsIot_receive(
3320                {mw_SipRequest((mdw_TP_IMS_5046_01_ic(v_pcscfEutAUrl, v_UserEutBUrl),
3321                                                        mdw_TP_IMS_5046_01_ic(v_pcscfEutAIpUrl, v_UserEutBUrl)))},
3322                {mw_SipRequest(mw_INVITE_Request_Base)},
3323                {0, omit},
3324                "TP_IMS_5046_01",
3325                true,
3326                                p_checkMessage
3327            )
3328           );
3329           p_monitorCompRef.done;
3330                   f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
3331                   if(ispresent(v_sip.request.msgHeader.route)) {
3332                        v_Route := v_sip.request.msgHeader.route;
3333                   }
3334                   //if(ispresent(v_sip.request.msgHeader.via)) {
3335                        v_Via := v_sip.request.msgHeader.via;
3336                   //}
3337                       
3338                // Check Route header
3339          if (match(v_Route, vt_pcscfRoute)) {
3340                        f_setIotVerdictFAIL("TP_IMS_5046_01");
3341                }
3342                   // Check Via header
3343                   if (match(v_Via, vt_pcscfVia)) {
3344               } else {
3345                        f_setIotVerdictFAIL("TP_IMS_5046_01");
3346                   }
3347            }
3348
3349            /**
3350                 * @desc Starts monitor component
3351                 */
3352            function f_mtc_check_TP_IMS_5110_01_isc(
3353                ImsInterfaceMonitor p_monitorCompRef)
3354            runs on ImsTestCoordinator
3355            {
3356           p_monitorCompRef.start(
3357            f_imsIot_receive(
3358                {mw_SipResponse(mw_200OK_Base)},
3359                {},
3360                {1, mw_SipResponse(mw_200OK_Base)},
3361                "TP_IMS_5110_01",
3362                false,
3363                false
3364            )
3365           );
3366           p_monitorCompRef.done;                 
3367            }
3368            /**
3369                 * @desc Starts monitor component
3370                 */
3371            function f_mtc_check_TP_IMS_5110_01_ic(
3372                ImsInterfaceMonitor p_monitorCompRef)
3373            runs on ImsTestCoordinator
3374            {
3375           p_monitorCompRef.start(
3376            f_imsIot_receive(
3377                {mw_SipResponse(mw_200OK_Base)},
3378                {},
3379                {0, omit},
3380                "TP_IMS_5110_01",
3381                false,
3382                false
3383            )
3384           );
3385           p_monitorCompRef.done;                 
3386            }
3387
3388
3389} // group
3390
3391group checksTC_IMS_SS_0009 {
3392}//end group checksTC_IMS_SS_0009
3393
3394group checksTC_IMS_SS_0010 {
3395       
3396        /**
3397                  * @desc Starts monitor component behavior
3398                  * @param p_monitorCompRef Reference to monitor component
3399                  */
3400        function f_mtc_check_TP_IMS_5308_01_gm(
3401                        ImsInterfaceMonitor p_monitorCompRef,
3402                        boolean p_checkMessage
3403                ) runs on ImsTestCoordinator {
3404                                       
3405                p_monitorCompRef.start(
3406                 f_imsIot_receive(
3407                        {mw_SipResponse(mdw_TP_IMS_5308_01_gm)},
3408                        {},
3409                        {0, omit},
3410                        "TP_IMS_5308_01",
3411                        false,
3412                        p_checkMessage
3413                 )
3414                );
3415                p_monitorCompRef.done;
3416        }
3417           
3418        /**
3419                  * @desc Starts monitor component behavior
3420                  * @param p_monitorCompRef Reference to monitor component
3421                  */
3422        function f_mtc_check_TP_IMS_5308_01_isc(
3423                        ImsInterfaceMonitor p_monitorCompRef,
3424                        boolean p_checkMessage
3425                ) runs on ImsTestCoordinator { 
3426                                       
3427                p_monitorCompRef.start(
3428                 f_imsIot_receive(
3429                                {mw_SipResponse(mdw_TP_IMS_5308_01_isc)},
3430                                {mw_SipResponse(mw_180Ringing_Base)},
3431                                {0, omit},
3432                                "TP_IMS_5308_01",
3433                                false,
3434                                p_checkMessage
3435                 )
3436                );
3437                p_monitorCompRef.done;
3438        }
3439               
3440                /**
3441                  * @desc Starts monitor component behavior
3442                  * @param p_monitorCompRef Reference to monitor component
3443                  */
3444                function f_mtc_check_TP_IMS_5308_02_gm(
3445                        ImsInterfaceMonitor p_monitorCompRef,
3446                        boolean p_checkMessage
3447                ) runs on ImsTestCoordinator {
3448   
3449                        p_monitorCompRef.start(
3450                         f_imsIot_receive(
3451                                {mw_SipResponse(mdw_TP_IMS_5308_02_gm)},
3452                                {},
3453                                {0, omit},
3454                                "TP_IMS_5308_02",
3455                                false,
3456                                p_checkMessage
3457                         )
3458                        );
3459                        p_monitorCompRef.done;
3460                }
3461           
3462                /**
3463                  * @desc Starts monitor component behavior
3464                  * @param p_monitorCompRef Reference to monitor component
3465                  */
3466                function f_mtc_check_TP_IMS_5308_02_isc(
3467                        ImsInterfaceMonitor p_monitorCompRef,
3468                        boolean p_checkMessage
3469                ) runs on ImsTestCoordinator {
3470
3471                        p_monitorCompRef.start(
3472                         f_imsIot_receive(
3473                                {mw_SipResponse(mdw_TP_IMS_5308_02_isc)},
3474                                {mw_SipResponse(mw_200OK_Base)},
3475                                {0, omit},
3476                                "TP_IMS_5308_02",
3477                                false,
3478                                p_checkMessage
3479                         )
3480                        );
3481                        p_monitorCompRef.done;
3482                }       
3483       
3484}//end group checksTC_IMS_SS_0010
3485
3486        group messagingChecks {
3487                /**
3488                 * @desc Starts monitor component behavior for TP_IMS_5097_05
3489                 * @param p_monitorCompRef Reference to monitor component
3490                 */
3491            function f_mtc_check_TP_IMS_5097_05_gm(
3492                ImsInterfaceMonitor p_monitorCompRef,
3493                boolean p_checkMessage
3494            ) runs on ImsTestCoordinator {
3495           p_monitorCompRef.start(
3496            f_imsIot_receive(
3497                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3498                {},
3499                {0, omit},
3500                "TP_IMS_5097_05",
3501                false,
3502                p_checkMessage
3503            )
3504           );
3505           p_monitorCompRef.done;
3506            }
3507           
3508            /**
3509                 * @desc Starts monitor component behavior for TP_IMS_5097_05
3510                 * @param p_monitorCompRef Reference to monitor component
3511                 */
3512            function f_mtc_check_TP_IMS_5097_05_ic(
3513                ImsInterfaceMonitor p_monitorCompRef,
3514                boolean p_checkMessage
3515            ) runs on ImsTestCoordinator {
3516                   var charstring v_EUT_A_Addr := f_GetEUTScscfAddress(PX_EUT_A);
3517           
3518           p_monitorCompRef.start(
3519            f_imsIot_receive(
3520                { mw_SipRequest(mdw_TP_IMS_5097_05_p_ic(*)) },
3521                {
3522                        mw_SipRequest(mdw_TP_IMS_5097_05_f_ic(*)),
3523                                        mw_SipRequest(mdw_TP_IMS_5097_05_f2_ic(*,mw_SipUrl_Host(v_EUT_A_Addr))),
3524                        mw_SipRequest(mw_MESSAGE_Request_Base(*))
3525                },
3526                {0, omit},
3527                "TP_IMS_5097_05",
3528                false,
3529                true
3530            )
3531           );
3532           p_monitorCompRef.done;
3533           
3534           
3535           p_monitorCompRef.start(
3536            f_imsIot_receive(
3537                {mw_SipRequest(mdw_TP_IMS_5097_05_p_ic(*))},
3538                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3539                {0, omit},
3540                "TP_IMS_5097_05",
3541                false,
3542                p_checkMessage
3543            )
3544           );
3545           p_monitorCompRef.done;
3546            }
3547           
3548            /**
3549             * @desc Starts monitor component behavior for TP_IMS_5097_05
3550                 * @param p_monitorCompRef Reference to monitor component
3551                 */
3552            function f_mtc_check_TP_IMS_5097_07_gm(
3553                ImsInterfaceMonitor p_monitorCompRef,
3554                boolean p_checkMessage
3555            ) runs on ImsTestCoordinator {
3556           p_monitorCompRef.start(
3557            f_imsIot_receive(
3558                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3559                {},
3560                {0, omit},
3561                "TP_IMS_5097_07",
3562                false,
3563                p_checkMessage
3564            )
3565           );
3566           p_monitorCompRef.done;
3567            }
3568           
3569           
3570            /**
3571                 * @desc Starts monitor component behavior for TP_IMS_5097_07
3572                 * @param p_monitorCompRef Reference to monitor component
3573                 */
3574            function f_mtc_check_TP_IMS_5097_07_ic(
3575                ImsInterfaceMonitor p_monitorCompRef,
3576                boolean p_checkMessage
3577            ) runs on ImsTestCoordinator {
3578           p_monitorCompRef.start(
3579            f_imsIot_receive(
3580                {mw_SipRequest(mdw_TP_IMS_5097_07_ic(*,mw_SIP_URI_Base, mw_TEL_URI_Base))},
3581                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3582                {0, omit},
3583                "TP_IMS_5097_07",
3584                false,
3585                p_checkMessage
3586            )
3587           );
3588           p_monitorCompRef.done;
3589            }
3590           
3591             
3592            /**
3593             * @desc Starts monitor component behavior for TP_IMS_5097_08
3594                 * @param p_monitorCompRef Reference to monitor component
3595                 */
3596            function f_mtc_check_TP_IMS_5097_08_gm(
3597                ImsInterfaceMonitor p_monitorCompRef,
3598                boolean p_checkMessage
3599            ) runs on ImsTestCoordinator {
3600           p_monitorCompRef.start(
3601            f_imsIot_receive(
3602                {mw_SipRequest(mdw_TP_IMS_5097_08_gm(*))},
3603                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3604                {0, omit},
3605                "TP_IMS_5097_08",
3606                false,
3607                p_checkMessage
3608            )
3609           );
3610           p_monitorCompRef.done;
3611            }
3612           
3613           
3614            /**
3615                 * @desc Starts monitor component behavior for TP_IMS_5097_08
3616                 * @param p_monitorCompRef Reference to monitor component
3617                 */
3618            function f_mtc_check_TP_IMS_5097_08_ic(
3619                ImsInterfaceMonitor p_monitorCompRef,
3620                boolean p_checkMessage
3621            ) runs on ImsTestCoordinator {
3622           p_monitorCompRef.start(
3623            f_imsIot_receive(
3624                {mw_SipRequest(mdw_TP_IMS_5097_08_ic(*))},
3625                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3626                {0, omit},
3627                "TP_IMS_5097_08",
3628                false,
3629                p_checkMessage
3630            )
3631           );
3632           p_monitorCompRef.done;
3633            }
3634           
3635           
3636            /**
3637             * @desc Starts monitor component behavior for TP_IMS_5117_02
3638                 * @param p_monitorCompRef Reference to monitor component
3639                 */
3640            function f_mtc_check_TP_IMS_5117_02_gm(
3641                ImsInterfaceMonitor p_monitorCompRef,
3642                boolean p_checkMessage
3643            ) runs on ImsTestCoordinator {
3644           p_monitorCompRef.start(
3645            f_imsIot_receive(
3646                {mw_SipResponse(mdw_2XX_Base)},
3647                {},
3648                {0, omit},
3649                "TP_IMS_5117_02",
3650                false,
3651                p_checkMessage
3652            )
3653           );
3654           p_monitorCompRef.done;
3655            }
3656           
3657           
3658            /**
3659             * @desc Starts monitor component behavior for TP_IMS_5117_02
3660                 * @param p_monitorCompRef Reference to monitor component
3661                 */
3662            function f_mtc_check_TP_IMS_5117_02_ic(
3663                ImsInterfaceMonitor p_monitorCompRef,
3664                boolean p_checkMessage
3665            ) runs on ImsTestCoordinator {
3666           p_monitorCompRef.start(
3667            f_imsIot_receive(
3668                        {mw_SipResponse(mw_TP_IMS_5117_02_ic)},
3669                {mw_SipResponse(mdw_2XX_Base)},
3670                {0, omit},
3671                "TP_IMS_5117_02",
3672                false,
3673                p_checkMessage
3674            )
3675           );
3676           p_monitorCompRef.done;
3677            }
3678           
3679           
3680           
3681            /**
3682             * @desc Starts monitor component behavior for TP_IMS_5117_06
3683                 * @param p_monitorCompRef Reference to monitor component
3684                 */
3685            function f_mtc_check_TP_IMS_5117_06_gm(
3686                ImsInterfaceMonitor p_monitorCompRef,
3687                boolean p_checkMessage
3688            ) runs on ImsTestCoordinator {
3689           p_monitorCompRef.start(
3690            f_imsIot_receive(
3691                {mw_SipResponse(mdw_2XX_Base)},
3692                {},
3693                {0, omit},
3694                "TP_IMS_5117_06",
3695                false,
3696                p_checkMessage
3697            )
3698           );
3699           p_monitorCompRef.done;
3700            }
3701           
3702           
3703            /**
3704             * @desc Starts monitor component behavior for TP_IMS_5117_06
3705                 * @param p_monitorCompRef Reference to monitor component
3706                 */
3707            function f_mtc_check_TP_IMS_5117_06_ic(
3708                ImsInterfaceMonitor p_monitorCompRef,
3709                boolean p_checkMessage
3710            ) runs on ImsTestCoordinator {
3711           p_monitorCompRef.start(
3712            f_imsIot_receive(
3713                        {mw_SipResponse(mw_TP_IMS_5117_06_ic)},
3714                {mw_SipResponse(mdw_2XX_Base)},
3715                {0, omit},
3716                "TP_IMS_5117_06",
3717                false,
3718                p_checkMessage
3719            )
3720           );
3721           p_monitorCompRef.done;
3722            }
3723           
3724           
3725            /**
3726             * @desc Starts monitor component behavior for TP_IMS_5118_01
3727                 * @param p_monitorCompRef Reference to monitor component
3728                 */
3729            function f_mtc_check_TP_IMS_5118_01_gm(
3730                ImsInterfaceMonitor p_monitorCompRef,
3731                boolean p_checkMessage
3732            ) runs on ImsTestCoordinator {
3733           p_monitorCompRef.start(
3734            f_imsIot_receive(
3735                {mw_SipResponse(mw_200OK_Base)},
3736                {},
3737                {0, omit},
3738                "TP_IMS_5118_01",
3739                false,
3740                p_checkMessage
3741            )
3742           );
3743           p_monitorCompRef.done;
3744            }
3745           
3746           
3747            /**
3748             * @desc Starts monitor component behavior for TP_IMS_5118_01
3749                 * @param p_monitorCompRef Reference to monitor component
3750                 */
3751            function f_mtc_check_TP_IMS_5118_01_ic(
3752                ImsInterfaceMonitor p_monitorCompRef,
3753                boolean p_checkMessage
3754            ) runs on ImsTestCoordinator {
3755           p_monitorCompRef.start(
3756            f_imsIot_receive(
3757                        {mw_SipResponse(mw_TP_IMS_5118_01_ic)},
3758                {mw_SipResponse(mw_200OK_Base)},
3759                {0, omit},
3760                "TP_IMS_5118_01",
3761                false,
3762                p_checkMessage
3763            )
3764           );
3765           p_monitorCompRef.done;
3766            }   
3767               
3768                 
3769            /**
3770             * @desc Starts monitor component behavior for TP_IMS_5108_02
3771                 * @param p_monitorCompRef Reference to monitor component
3772                 */
3773            function f_mtc_check_TP_IMS_5108_02_gm(
3774                ImsInterfaceMonitor p_monitorCompRef,
3775                boolean p_checkMessage
3776            ) runs on ImsTestCoordinator {
3777           p_monitorCompRef.start(
3778            f_imsIot_receive(
3779                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3780                {},
3781                {0, omit},
3782                "TP_IMS_5108_02",
3783                false,
3784                p_checkMessage
3785            )
3786           );
3787           p_monitorCompRef.done;
3788            }
3789           
3790            /**
3791                 * @desc Starts monitor component behavior for TP_IMS_5108_02
3792                 * @param p_monitorCompRef Reference to monitor component
3793                 */
3794            function f_mtc_check_TP_IMS_5108_02_ic(
3795                ImsInterfaceMonitor p_monitorCompRef
3796            ) runs on ImsTestCoordinator {
3797               var template SipUrl v_SCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B));
3798           var SemicolonParam_List p_paramList;
3799           var GenericParam p_param;
3800           var SipMessage v_sip := {request := valueof(m_INVITE_Dummy)};
3801           
3802           p_monitorCompRef.start(
3803            f_imsIot_receive(
3804                {mw_SipRequest(mdw_TP_IMS_5108_02a_ic(*))},
3805                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3806                {0, omit},
3807                "TP_IMS_5108_02",
3808                true,
3809                true
3810            )
3811           );
3812           p_monitorCompRef.done;
3813           
3814           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
3815           p_paramList := v_sip.request.msgHeader.pChargingVector.chargeParams;
3816           for(var integer i := 0; i < lengthof(p_paramList); i:= i+1) {
3817                        if(p_paramList[i].id == "icid-value") {
3818                                p_param := p_paramList[i];
3819                        }
3820           }
3821           
3822           p_monitorCompRef.start(
3823            f_imsIot_receive(
3824                {},
3825                {
3826                        mw_SipRequest(mdw_TP_IMS_5108_02b_f_ic(*)),
3827                        mw_SipRequest(mw_MESSAGE_Request_Base(*))
3828                },
3829                {0, omit},
3830                "TP_IMS_5108_02",
3831                false,
3832                true
3833            )
3834           );
3835           p_monitorCompRef.done;
3836           
3837           
3838           p_monitorCompRef.start(
3839            f_imsIot_receive(
3840                {},
3841                {
3842                        mw_SipRequest(mdw_TP_IMS_5108_02b_p_ic(*, v_SCSCF_IMS_B, p_param)),
3843                        mw_SipRequest(mw_MESSAGE_Request_Base(*))
3844                },
3845                {0, omit},
3846                "TP_IMS_5108_02",
3847                false,
3848                false
3849            )
3850           );
3851           p_monitorCompRef.done;
3852            }
3853         
3854            /**
3855             * @desc Starts monitor component behavior for TP_IMS_5050_01
3856                 * @param p_monitorCompRef Reference to monitor component
3857                 */
3858            function f_mtc_check_TP_IMS_5050_01_gm(
3859                ImsInterfaceMonitor p_monitorCompRef,
3860                boolean p_checkMessage
3861            ) runs on ImsTestCoordinator {
3862           p_monitorCompRef.start(
3863            f_imsIot_receive(
3864                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3865                {},
3866                {0, omit},
3867                "TP_IMS_5050_01",
3868                false,
3869                p_checkMessage
3870            )
3871           );
3872           p_monitorCompRef.done;
3873            }
3874       
3875         
3876            /**
3877             * @desc Starts monitor component behavior for TP_IMS_5050_01
3878                 * @param p_monitorCompRef Reference to monitor component
3879                 */
3880            function f_mtc_check_TP_IMS_5050_01_ic(
3881                ImsInterfaceMonitor p_monitorCompRef,
3882                boolean p_checkMessage
3883            ) runs on ImsTestCoordinator {
3884                var template SipUrl v_PCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_B));
3885                var template SipUrl v_UE_A := mw_SipUrl_Host(f_GetEUTPublicId(PX_EUT_A));
3886               
3887           p_monitorCompRef.start(
3888            f_imsIot_receive(
3889                        {mw_SipRequest(mdw_TP_IMS_5050_01_ic(*, v_PCSCF_IMS_B, v_UE_A))},
3890                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3891                {0, omit},
3892                "TP_IMS_5050_01",
3893                false,
3894                p_checkMessage
3895            )
3896           );
3897           p_monitorCompRef.done;
3898            }   
3899           
3900            /**
3901             * @desc Starts monitor component behavior for TP_IMS_5050_01
3902                 * @param p_monitorCompRef Reference to monitor component
3903                 */
3904            function f_mtc_check_TP_IMS_5114_02_gm(
3905                ImsInterfaceMonitor p_monitorCompRef
3906            ) runs on ImsTestCoordinator {
3907               
3908              p_monitorCompRef.start(
3909            f_imsIot_receive(
3910                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3911                {},
3912                {0, omit},
3913                "TP_IMS_5114_02",
3914                false,
3915                false
3916            )
3917           );
3918           p_monitorCompRef.done;       
3919            }
3920           
3921            /**
3922             * @desc Starts monitor component behavior for TP_IMS_5050_01
3923                 * @param p_monitorCompRef Reference to monitor component
3924                 */
3925            function f_mtc_check_TP_IMS_5114_02_ic(
3926                ImsInterfaceMonitor p_monitorCompRef
3927            ) runs on ImsTestCoordinator {
3928               
3929              p_monitorCompRef.start(
3930            f_imsIot_receive(
3931                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3932                {},
3933                {0, omit},
3934                "TP_IMS_5114_02",
3935                false,
3936                false
3937            )
3938           );
3939           p_monitorCompRef.done;       
3940           
3941           p_monitorCompRef.start(
3942            f_imsIot_receive(
3943                        {mw_SipResponse(mdw_4XX_Base)},
3944                {},
3945                {0, omit},
3946                "TP_IMS_5114_02",
3947                false,
3948                false
3949            )
3950           );
3951           p_monitorCompRef.done;
3952            }
3953           
3954            /**
3955             * @desc Starts monitor component behavior for TP_IMS_5108_06
3956                 * @param p_monitorCompRef Reference to monitor component
3957                 */
3958            function f_mtc_check_TP_IMS_5108_06_gm(
3959                ImsInterfaceMonitor p_monitorCompRef
3960            ) runs on ImsTestCoordinator {
3961               p_monitorCompRef.start(
3962            f_imsIot_receive(
3963                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3964                {},
3965                {0, omit},
3966                "TP_IMS_5108_06",
3967                false,
3968                false
3969            )
3970           );
3971           p_monitorCompRef.done;
3972            }
3973           
3974            /**
3975             * @desc Starts monitor component behavior for TP_IMS_5108_06
3976                 * @param p_monitorCompRef Reference to monitor component
3977                 */
3978            function f_mtc_check_TP_IMS_5108_06_ic(
3979                ImsInterfaceMonitor p_monitorCompRef
3980            ) runs on ImsTestCoordinator {
3981               
3982              p_monitorCompRef.start(
3983            f_imsIot_receive(
3984                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
3985                {},
3986                {0, omit},
3987                "TP_IMS_5108_06",
3988                false,
3989                false
3990            )
3991           );
3992           p_monitorCompRef.done;       
3993           
3994           p_monitorCompRef.start(
3995            f_imsIot_receive(
3996                        {mw_SipResponse(mw_404NotFound_Base)},
3997                {},
3998                {0, omit},
3999                "TP_IMS_5108_06",
4000                false,
4001                false
4002            )
4003           );
4004           p_monitorCompRef.done;
4005            }
4006        }
4007       
4008        group callChecks {
4009               
4010               
4011            /**
4012             * @desc Starts monitor component behavior for TP_IMS_5106_01
4013                 * @param p_monitorCompRef Reference to monitor component
4014                 */
4015            function f_mtc_check_TP_IMS_5106_01_gm(
4016                ImsInterfaceMonitor p_monitorCompRef,
4017                integer p_skipCount
4018            ) runs on ImsTestCoordinator {
4019                var template SkipType v_skip := {0, omit};
4020               
4021                if(p_skipCount > 0) {
4022                        v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)};
4023                }
4024               p_monitorCompRef.start(
4025            f_imsIot_receive(
4026                {mw_SipRequest(mw_INVITE_Request_Base)},
4027                {},
4028                v_skip,
4029                "TP_IMS_5106_01",
4030                false,
4031                false
4032            )
4033           );
4034           p_monitorCompRef.done;
4035            }
4036           
4037           
4038            /**
4039             * @desc Starts monitor component behavior for TP_IMS_5106_01
4040                 * @param p_monitorCompRef Reference to monitor component
4041                 */
4042            function f_mtc_check_TP_IMS_5106_01_ic(
4043                ImsInterfaceMonitor p_monitorCompRef,
4044                integer p_skipCount
4045            ) runs on ImsTestCoordinator {
4046                var template SipUrl v_SCSCF_A_Uri := (mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)),
4047                                                                                                                mw_SipUrl_Host(f_GetEUTScscfIpAddress(PX_EUT_A)));
4048                var template SkipType v_skip := {0, omit};
4049               
4050                if(p_skipCount > 0) {
4051                        v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)};
4052                }
4053               
4054                       
4055               p_monitorCompRef.start(
4056            f_imsIot_receive(
4057                {mw_SipRequest(mdw_TP_IMS_5106_01_ic(v_SCSCF_A_Uri))},
4058                {mw_SipRequest(mw_INVITE_Request_Base)},
4059                v_skip,
4060                "TP_IMS_5106_01",
4061                false,
4062                false
4063            )
4064           );
4065           p_monitorCompRef.done;
4066            }
4067           
4068           
4069            /**
4070             * @desc Starts monitor component behavior for TP_IMS_5106_02
4071                 * @param p_monitorCompRef Reference to monitor component
4072                 */
4073            function f_mtc_check_TP_IMS_5106_02_gm(
4074                ImsInterfaceMonitor p_monitorCompRef
4075            ) runs on ImsTestCoordinator {
4076               p_monitorCompRef.start(
4077            f_imsIot_receive(
4078                {mw_SipRequest(mw_UPDATE_Request_Base(*))},
4079                {},
4080                {0, omit},
4081                "TP_IMS_5106_02",
4082                false,
4083                false
4084            )
4085           );
4086           p_monitorCompRef.done;
4087            }
4088           
4089           
4090            /**
4091             * @desc Starts monitor component behavior for TP_IMS_5106_02
4092                 * @param p_monitorCompRef Reference to monitor component
4093                 */
4094            function f_mtc_check_TP_IMS_5106_02_ic(
4095                ImsInterfaceMonitor p_monitorCompRef
4096            ) runs on ImsTestCoordinator {
4097                var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
4098                       
4099               p_monitorCompRef.start(
4100            f_imsIot_receive(
4101                {mw_SipRequest(mdw_TP_IMS_5106_02_p_ic(*,v_SCSCF_A_Uri))},
4102                {
4103                                        mw_SipRequest(mdw_TP_IMS_5106_02_f_ic(*,v_SCSCF_A_Uri)),
4104                        mw_SipRequest(mw_UPDATE_Request_Base(*))},
4105                {0, omit},
4106                "TP_IMS_5106_02",
4107                false,
4108                false
4109            )
4110           );
4111           p_monitorCompRef.done;
4112            }
4113           
4114           
4115           
4116            /**
4117             * @desc Starts monitor component behavior for TP_IMS_5121_02
4118                 * @param p_monitorCompRef Reference to monitor component
4119                 */
4120            function f_mtc_check_TP_IMS_5121_02_gm(
4121                ImsInterfaceMonitor p_monitorCompRef,
4122                integer p_skipCount
4123            ) runs on ImsTestCoordinator {
4124                // TODO TP must be checked, currently only 2XX is checked
4125               
4126                var template SkipType v_skip := {0, omit};
4127               
4128                if(p_skipCount > 0) {
4129                        v_skip := {1, mw_SipResponse(mdw_2XX_Base)};
4130                }
4131               p_monitorCompRef.start(
4132            f_imsIot_receive(
4133                {mw_SipResponse(mdw_2XX_Base)},
4134                {},
4135                v_skip,
4136                "TP_IMS_5121_02",
4137                false,
4138                false
4139            )
4140           );
4141           p_monitorCompRef.done;
4142            }
4143           
4144           
4145            /**
4146             * @desc Starts monitor component behavior for TP_IMS_5121_02
4147                 * @param p_monitorCompRef Reference to monitor component
4148                 */
4149            function f_mtc_check_TP_IMS_5121_02_ic(
4150                ImsInterfaceMonitor p_monitorCompRef,
4151                integer p_skipCount
4152            ) runs on ImsTestCoordinator {
4153                var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
4154                var template SkipType v_skip := {0, omit};
4155               
4156                if(p_skipCount > 0) {
4157                        v_skip := {1, mw_SipResponse(mdw_2XX_Base)};
4158                }
4159               
4160                       
4161               p_monitorCompRef.start(
4162            f_imsIot_receive(
4163                {mw_SipResponse(mw_TP_IMS_5121_02_ic)},
4164                {mw_SipResponse(mdw_2XX_Base)},
4165                v_skip,
4166                "TP_IMS_5121_02",
4167                false,
4168                false
4169            )
4170           );
4171           p_monitorCompRef.done;
4172            }
4173           
4174           
4175            /**
4176             * @desc Starts monitor component behavior for TP_IMS_5074_01
4177                 * @param p_monitorCompRef Reference to monitor component
4178                 */
4179            function f_mtc_check_TP_IMS_5074_01_ic(
4180                ImsInterfaceMonitor p_monitorCompRef
4181            ) runs on ImsTestCoordinator {
4182                var template SipUrl v_UE_A_Uri := f_getUeIpAddress(PX_EUT_A);
4183                       
4184               p_monitorCompRef.start(
4185            f_imsIot_receive(
4186                {mw_SipRequest(mdw_TP_IMS_5074_01_ic(*,v_UE_A_Uri))},
4187                {mw_SipRequest(mw_BYE_Request_Base(*))},
4188                {0, omit},
4189                "TP_IMS_5074_01",
4190                false,
4191                false
4192            )
4193           );
4194           p_monitorCompRef.done;
4195            }
4196        }
4197       
4198} // end group
4199}// end module
Note: See TracBrowser for help on using the repository browser.