source: trunk/ETSI-Testsuites/ETSI_auto_IOT/ttcn/AtsImsIot/AtsImsIot_Templates.ttcn @ 34

Last change on this file since 34 was 22, checked in by rings, 14 years ago
  • Property svn:executable set to *
File size: 51.4 KB
Line 
1/*
2 *      @author         STF 370
3 *  @version    $Id: $
4 *      @desc           This module provides the templates for Interoperability tests.
5 */
6
7module AtsImsIot_Templates {
8
9        import from LibCommon_BasicTypesAndValues {type UInt16;}
10       
11        import from LibCommon_VerdictControl {type FncRetCode;}
12       
13        import from LibIot_TypesAndValues {
14                type
15                        InterfaceInfoList,
16                        ProtocolFilter,
17                        GeneralConfigurationReq,
18                        GeneralConfigurationRsp,
19                        SetFilterReq,
20                        SetFilterRsp,
21                        StartTrafficCaptureReq,
22                        StartTrafficCaptureRsp,
23                        StopTrafficCaptureReq,
24                        StopTrafficCaptureRsp,
25                        IpAddress,
26                        Status;
27        }
28        import from AtsImsIot_TypesAndValues {type SipMessage;}
29
30        import from LibSip_SIPTypesAndValues all;
31       
32        import from LibSip_Templates all;
33       
34        import from LibIot_PIXITS {
35                modulepar
36                        PX_IOT_TIMESTAMP_OFFSET,
37                        PX_IOT_PCAP_SESSIONS_PATH,
38                        PX_IOT_RECORD_MODE,
39                        PX_IOT_EUTs_IFACE_INFO_LIST,
40                        PX_IOT_FILE_MERGE_LIST,
41                PX_IOT_FILE_MERGE_PATH,
42                PX_IOT_MERGE_TOOL_PATH,
43                PX_IOT_IFACES;
44        }
45       
46        group adapterMsgTemplates {
47                template SetFilterReq m_SetFilterReq(ProtocolFilter p_protocol, InterfaceInfoList p_iterfaces)  := {
48                        protocol := p_protocol,
49                        interfaceInfos := p_iterfaces
50                }
51               
52                template SetFilterRsp mw_SetFilterRsp(template Status p_status) := {
53                        status := p_status
54                }
55        }
56
57       
58        group sipTemplates {
59   
60                /**
61                * @desc SIP request template
62                * @param p_request SIP request
63                */
64                template SipMessage mw_SipRequest(in template (present) Request p_request) := {
65                        request := p_request
66                }
67   
68                /**
69                * @desc SIP response template
70                * @param p_response SIP response
71                */
72                template SipMessage mw_SipResponse(in template (present) Response p_response) := {
73                        response := p_response
74                }
75        }//end group
76       
77        group modifiedSIPBaseTemplates {
78               
79                /**
80                *
81                * @desc Message Request containing a message body greater than 1500 bytes.
82                */
83                template MESSAGE_Request mdw_TP_IMS_4002_01(template CallId p_callId) modifies mw_MESSAGE_Request_Base := {
84                        msgHeader := {
85                                contact := *
86                        },
87                        messageBody := {
88                                textplain := pattern "?#(1500,)"
89                        }
90                }
91               
92                /**
93                 *
94                 * @desc REGISTER Request containing secuity client header.
95                 */
96    template REGISTER_Request mdw_TP_IMS_5011_01_gm modifies mw_REGISTER_Request_Base := {
97      msgHeader := {
98                securityClient := ?
99      }
100    }
101   
102                /**
103                *
104                * @desc REGISTER Request containing secuity client header.
105                */
106                template REGISTER_Request mdw_TP_IMS_5011_02_gm modifies mw_REGISTER_Request_Base := {
107                        msgHeader := {
108                                securityClient := ?
109                        }
110                }
111   
112    /**
113     *
114     * @desc REGISTER Request checking TP_IMS_5011_01.
115     */
116    template REGISTER_Request mdw_TP_IMS_5011_01p_ic ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := {
117      msgHeader := {
118        path := mw_PathDef (p_EUTHostname),
119        require :=  mw_Require ({"path", *}),
120                pChargingVector := {
121                        fieldName := P_CHARGING_VECTOR_E,
122                        chargeParams := {
123                                {id := "icid-value", paramValue := ?},
124                                {id := "orig-ioi", paramValue := ?},
125                                *
126                        }
127                },
128        authorization := m_Authorization(mw_credentialIntegrityNo),
129        securityClient := omit,
130        securityVerify :=omit,
131        pVisitedNetworkID := mw_PVisitedNetworkIDAny
132      }
133    }
134   
135        /**
136        *
137        * @desc REGISTER Request checking TP_IMS_5011_01.
138        */
139        template REGISTER_Request mdw_TP_IMS_5011_01f_ic modifies mw_REGISTER_Request_Base := {
140                msgHeader := {
141                        pChargingVector := {
142                                fieldName := P_CHARGING_VECTOR_E,
143                                chargeParams := {
144                                        {id := "term-ioi", paramValue := ?},
145                                        *
146                                }
147                        }
148                }
149        }   
150   
151   /**
152     *
153     * @desc REGISTER Request checking TP_IMS_5134_01.
154     */
155    template REGISTER_Request mdw_TP_IMS_5134_01_ic ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := {
156      msgHeader := {
157        path := mw_PathDef (p_EUTHostname)
158      }
159    }
160
161    /**
162     *
163     * @desc REGISTER Request checking TP_IMS_5011_02.
164     */
165    template REGISTER_Request mdw_TP_IMS_5011_02p_ic ( charstring p_EUTHostname  ) modifies mw_REGISTER_Request_Base := {
166      msgHeader := {
167        path := mw_PathDef (p_EUTHostname),
168        require :=  mw_Require ({"path", *}),
169        pChargingVector :=  mw_PChargingVector({
170            {id := "icid-value", paramValue := ?},
171            {id := "orig-ioi", paramValue := ?},
172            *
173          }),
174        authorization := m_Authorization(mw_credentialIntegrityYes),
175        securityClient := omit,
176        securityVerify :=omit,
177        pVisitedNetworkID := mw_PVisitedNetworkIDAny
178      }
179    }
180
181        /**
182        *
183        * @desc REGISTER Request checking TP_IMS_5011_02.
184        */   
185        template REGISTER_Request mdw_TP_IMS_5011_02f_ic modifies mw_REGISTER_Request_Base := {
186                msgHeader := {
187                        pChargingVector :=  mw_PChargingVector({
188                                {id := "term-ioi", paramValue := ?},
189                                *
190                        })
191                }
192        }   
193   
194        /**
195        *
196        * @desc REGISTER Request checking TP_IMS_5089_01.
197        */
198        template REGISTER_Request mdw_TP_IMS_5089_01_ic_when modifies mw_REGISTER_Request_Base := {
199                msgHeader := {
200                        authorization := m_Authorization(mw_credentialIntegrityNo)
201                }
202        }
203
204        /**
205        *
206        * @desc REGISTER Request checking TP_IMS_5092_01.
207        */
208        template REGISTER_Request mdw_TP_IMS_5092_01_ic_when modifies mw_REGISTER_Request_Base := {
209                msgHeader := {
210                        authorization := m_Authorization(mw_credentialIntegrityNo)
211                }
212        }
213
214    /**
215     *
216     * @desc 200 OK  message for TP_IMS_5092_01
217     */
218    template Response mdw_TP_IMS_5092_01_ic (charstring p_EUTHostname, template SipUrl p_eutBUri) modifies mw_200OK_Base := {
219                msgHeader := {
220                        path := mw_PathDef (p_EUTHostname),
221                        pAssociatedURI := {
222                                fieldName := P_ASSOCIATED_URI_E,
223                                nameAddrList := ?
224                        },
225                        pChargingVector :=  mw_PChargingVector({  // @TODO indicating operator_identifier of IMS_? (IUT_?)?
226                                                        {id := "term-ioi", paramValue := ?},
227                                                        *
228                        }),
229                        serviceRoute := mw_ServiceRoute (p_eutBUri),
230                        contact := {
231                                fieldName := CONTACT_E,
232                                contactBody := {
233                                        contactAddresses := ?
234                                }
235                        }
236                }
237    }
238   /**
239     *
240     * @desc 401 Unauthorized   message checking f_mtc_check_TP_IMS_5089_01_ic.
241     */
242    template Response mdw_TP_IMS_5089_01_ic modifies mw_401Unauthorized_Base := {
243      msgHeader := {
244        wwwAuthenticate := mw_WwwAuthenticate
245      }
246    }
247
248
249   /**
250     *
251     * @desc SUBSCRIBE checking TP_IMS_5044_01.
252     */
253    template SUBSCRIBE_Request mdw_TP_IMS_5044_01_ic(
254                template SipUrl p_subscribe_uri,
255        template SipUrl p_eutAUri,
256        template charstring p_EUTB_PublicId
257    ) modifies mw_SUBSCRIBE_Request_Base := {
258     
259      requestLine := {
260        method := SUBSCRIBE_E,
261        requestUri := p_subscribe_uri, // @TODO
262        sipVersion := c_sipNameVersion
263      },
264      msgHeader := {
265        fromField := mw_From (p_eutAUri),
266        toField := mw_To_NameAddr_SipUrl (p_EUTB_PublicId, ?, ?),
267        event := m_Event_reg,
268        expires := ?, // checked outside the template
269        pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_eutAUri)),
270        pChargingVector :=  mw_PChargingVector({
271            {id := "icid-value", paramValue := *},
272            *
273          })
274      }
275    }
276
277    template SUBSCRIBE_Request mdw_TP_IMS_5405_01_ic
278    modifies mw_SUBSCRIBE_Request_Base := {
279     
280      requestLine := {
281        method := SUBSCRIBE_E,
282        requestUri := ?,
283        sipVersion := c_sipNameVersion
284      },
285      msgHeader := {
286        via := mw_Via (?), // TODO
287                recordRoute := mw_recordroute(?), // @TODO                     
288        route := mw_route(?), // TODO
289        pChargingVector :=  omit
290          }
291    }
292
293    /**
294     *
295     * @desc INVITE Request checking TP_IMS_5046_01
296     */
297    template INVITE_Request mdw_TP_IMS_5046_01_ic (template SipUrl p_pcscfEutAUri, template SipUrl p_userEutBUrl)
298     modifies mw_INVITE_Request_Base := {
299      msgHeader := {
300                route := {
301                fieldName := ROUTE_E,
302                routeBody := ? // complement (mw_routeBody(p_pcscfEutAUri)) // to be checked outside template
303                        },
304        via := {
305                        fieldName := VIA_E,
306                        viaBody := ? // superset(mw_ViaBody_interface(p_pcscfEutAUri.hostPort)) // to be checked outside template
307                },
308        recordRoute := {
309                fieldName := RECORD_ROUTE_E,
310                routeBody := {mw_routeBody(p_pcscfEutAUri), *}                 
311        },
312                pPreferredID := omit,
313                pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_userEutBUrl)),
314        pChargingVector :=  mw_PChargingVector({
315            {id := "icid-value", paramValue := *},
316            *
317          })
318      }
319    }
320
321        /**
322          *
323          * @desc INVITE Request checking TP_IMS_5048_01
324          */
325        template INVITE_Request mdw_TP_IMS_5048_01_ic (template SipUrl p_pcscfEutAUri)
326         modifies mw_INVITE_Request_Base := {
327          msgHeader := {
328                route := {
329                        fieldName := ROUTE_E,
330                        routeBody := {
331                        *,
332                        complement(mw_routeBody(p_pcscfEutAUri)),
333                        *
334                        }
335                },
336                via := {
337                        fieldName := VIA_E,
338                        viaBody := ? // superset(mw_ViaBody_interface(p_pcscfEutAUri.hostPort)) // to be checked outside template
339                },
340                recordRoute := {
341                        fieldName := RECORD_ROUTE_E,
342                        routeBody := {mw_routeBody(p_pcscfEutAUri), *}                 
343                }
344          }
345        }
346   
347        /**
348          *
349          * @desc BYE Request checking TP_IMS_5052_01 on MW
350          */
351        template BYE_Request mdw_TP_IMS_5052_01_p_ic(template CallId p_callId, template RecordRoute p_route)
352         modifies mw_BYE_Request_Base := {
353          msgHeader := {
354                route := {
355                        fieldName := ROUTE_E,
356                        routeBody := *
357                },
358                recordRoute := p_route
359          }
360        }
361
362        template BYE_Request mdw_TP_IMS_5052_01_f_ic(
363                template CallId p_callId,
364                template SipUrl p_pcscfEutAUri)
365        modifies mw_BYE_Request_Base := {
366                msgHeader := {
367                route := {
368                        fieldName := ROUTE_E,
369                        routeBody := {
370                                *,
371                                mw_routeBody(p_pcscfEutAUri),
372                                *
373                        }
374                }
375        }
376        }
377
378   
379        /**
380          *
381          * @desc 180 Ringing Response checking TP_IMS_5055_01 on MW
382          */
383        template Response mdw_TP_IMS_5055_01_ic(template SipUrl p_pcscfEutAUri, template SipUrl p_userEutAUri)
384         modifies mw_180Ringing_Base := {
385          msgHeader := {
386                recordRoute := {
387                        fieldName := RECORD_ROUTE_E,
388                        routeBody := {mw_routeBody(p_pcscfEutAUri), *}                 
389                },
390                pPreferredID := omit,
391                pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_userEutAUri))//TODO containing public identitiy sent in P-Called_Party-ID header in the initial request
392          }
393        }
394   
395        /**
396          *
397          * @desc 200 OK Response checking TP_IMS_5055_02 on MW
398          */
399        template Response mdw_TP_IMS_5055_02_ic(template SipUrl p_pcscfEutAUri, template SipUrl p_userEutAUri)
400         modifies mw_200OK_Base := {
401          msgHeader := {
402                recordRoute := {
403                        fieldName := RECORD_ROUTE_E,
404                        routeBody := {mw_routeBody(p_pcscfEutAUri), *}                 
405                },
406                pPreferredID := omit,
407                pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_userEutAUri))//TODO containing public identitiy sent in P-Called_Party-ID header in the initial request
408          }
409        }
410
411        /**
412          *
413          * @desc INVITE Request checking TP_IMS_5067_01 on MW
414          */
415        template INVITE_Request mdw_TP_IMS_5067_01_ic
416         modifies mw_INVITE_Request_Base := {
417        msgHeader := {
418                        pChargingVector :=  mw_PChargingVector({
419                                {id := "access-network-charging-info", paramValue := ?},
420                                *
421                        })
422        }
423        }
424   
425     /**
426       *
427       * @desc CANCEL Request checking TP_IMS_572_02 on gm
428       */
429     template CANCEL_Request mdw_TP_IMS_5072_02_gm (template CallId p_callId)
430      modifies mw_CANCEL_Request_Base := {
431       msgHeader := {
432                reason := {
433                        fieldName := REASON_E,
434                        reasonValues := {
435                                {
436                                        token := "503 Service Unavailable",
437                                        reasonParams := *
438                                },
439                                *
440                        }
441                }
442      }
443     }
444
445        /**
446          *
447          * @desc INVITE Request checking TP_IMS_5080_01 on MW
448          */
449        template INVITE_Request mdw_TP_IMS_5080_01_ic
450         modifies mw_INVITE_Request_Base := {
451          msgHeader := {
452                pChargingVector :=  mw_PChargingVector({
453                        {id := "access-network-charging-info", paramValue := ?}, //note access-network-charging-info should be updated
454                        *
455                })
456          }
457        }
458   
459        /**
460          *
461          * @desc 200 OK Response checking TP_IMS_5082_01 on MW
462          */
463        template Response mdw_TP_IMS_5082_01_ic
464         modifies mw_200OK_Base := {
465                msgHeader := {
466                        pChargingVector :=  mw_PChargingVector({
467                                {id := "access-network-charging-info", paramValue := ?},
468                                *
469                        })
470                }
471        }
472   
473    /**
474    *
475    * @desc SUBSCRIBE checking TP_IMS_5096_01.
476    */
477    template SUBSCRIBE_Request mdw_TP_IMS_5096_01_ic_when modifies mw_SUBSCRIBE_Request_Base := {
478                msgHeader := {
479                        event := m_Event_reg
480                }
481    }
482   
483   /**
484     * @desc INVITE Request checking TP_IMS_5097_01
485     */
486    template INVITE_Request mdw_TP_IMS_5097_01_ic (template SipUrl p_SCSCF_SIP_URI)
487     modifies mw_INVITE_Request_Base := {
488      msgHeader := {
489                route := ({
490                        fieldName := ROUTE_E,
491                        routeBody := {
492                                *,
493                                complement(mw_routeBody(p_SCSCF_SIP_URI)),
494                                *
495                        }
496                }, omit),
497        recordRoute := {
498                fieldName := RECORD_ROUTE_E,
499                routeBody := {mw_routeBody(p_SCSCF_SIP_URI), *}                 
500        },       
501                pChargingVector := {
502                        fieldName := P_CHARGING_VECTOR_E,
503                        chargeParams := {
504                                *,
505                                {id := "icid-value", paramValue := ?},
506                                *,
507                                {id := "orig-ioi", paramValue := ?},
508                                *,
509                                complement({id := "term-ioi", paramValue := ?}),
510                                *,
511                                complement({id := "access-network-charging-info", paramValue := ?}),
512                                *
513                        }
514                }
515      }
516    }
517   
518   
519        /**
520          * @desc INVITE Request checking TP_IMS_5097_02
521          */
522        template INVITE_Request mdw_TP_IMS_5097_02_ic (
523                template SipUrl p_SIP_URI,
524                template SipUrl p_TEL_URI)
525         modifies mw_INVITE_Request_Base := {
526          msgHeader := {
527                pAssertedID := {
528                        fieldName := P_ASSERTED_ID_E,
529                        pAssertedIDValueList := {
530                                *,
531                                ({ nameAddr := mw_NameAddr(p_SIP_URI)}, {addrSpecUnion := mw_SIP_URI_Base}), 
532                                *,
533                                ({nameAddr := mw_NameAddr(p_TEL_URI)}, {addrSpecUnion := mw_TEL_URI_Base}),
534                                *
535                        }
536                }                               
537          }
538        }
539   
540        /**
541          * @desc INVITE Request checking TP_IMS_5097_04
542          */
543        template INVITE_Request mdw_TP_IMS_5097_04_gm(template SipUrl p_requestUri)
544         modifies mw_INVITE_Request_Base := {
545          requestLine := {
546                requestUri := p_requestUri
547          }
548        }
549   
550        /**
551          * @desc INVITE Request checking TP_IMS_5097_04
552          */
553        template INVITE_Request mdw_TP_IMS_5097_04_ic(template SipUrl p_requestUri)
554         modifies mw_INVITE_Request_Base := {
555          requestLine := {
556                requestUri := p_requestUri
557          },
558          msgHeader := {       
559                pChargingVector := {
560                        fieldName := P_CHARGING_VECTOR_E,
561                        chargeParams := {
562                                *,
563                                complement({id := "access-network-charging-info", paramValue := ?}),
564                                *
565                        }
566                }
567                                       
568          }
569        }
570   
571        /**
572          *
573          * @desc BYE Request checking TP_IMS_5107_01 on MW
574          */
575        template BYE_Request mdw_TP_IMS_5107_01_ic(template CallId p_callId, template SipUrl p_SCSCF_SIP_URI)
576         modifies mw_BYE_Request_Base := {
577          msgHeader := {
578                route := {
579                        fieldName := ROUTE_E,
580                        routeBody := {
581                                *,
582                                complement(mw_routeBody(p_SCSCF_SIP_URI)),
583                                *
584                        }
585                }
586          }
587        }
588   
589        /**
590          *
591          * @desc ACK Request checking TP_IMS_5107_02 on MW
592          */
593        template ACK_Request mdw_TP_IMS_5107_02_ic(template CallId p_callId, template SipUrl p_SCSCF_SIP_URI)
594         modifies mw_ACK_Request_Base := {
595          msgHeader := {
596                route := {
597                        fieldName := ROUTE_E,
598                        routeBody := {
599                                *,
600                                complement(mw_routeBody(p_SCSCF_SIP_URI)),
601                                *
602                        }
603                }
604          }
605        }
606   
607        /**
608          *
609          * @desc CANCEL Request checking TP_IMS_5107_03 on MW
610          */
611        template CANCEL_Request mdw_TP_IMS_5107_03_ic (template CallId p_callId, template SipUrl p_SCSCF_SIP_URI)
612        modifies mw_CANCEL_Request_Base := {
613                msgHeader := {
614                        route := (
615                                omit,
616                                        {
617                                        fieldName := ROUTE_E,
618                                        routeBody := {
619                                                *,
620                                                complement(mw_routeBody(p_SCSCF_SIP_URI)),
621                                                *
622                                        }
623                                }
624                        )
625                }
626        }
627   
628        /**
629          *
630          * @desc INVITE Request checking TP_IMS_5108_01 on MW
631          */
632        template INVITE_Request mdw_TP_IMS_5108_01_ic(
633                template SipUrl p_SCSCF_Uri,
634                template GenericParam p_param
635        ) modifies mw_INVITE_Request_Base := {
636         msgHeader := {
637                route := (omit,
638                                        {
639                                                fieldName := ROUTE_E,
640                                                routeBody := {
641                                                        *,
642                                                        complement(mw_routeBody(p_SCSCF_Uri)),
643                                                        *
644                                                }
645                                        }
646                                ),
647                recordRoute := {
648                        fieldName := RECORD_ROUTE_E,
649                        routeBody := {{
650                                nameAddr := {
651                                        displayName := *,
652                                        addrSpec := p_SCSCF_Uri
653                                },
654                                rrParam := *
655                        }, *}
656                },
657                pChargingVector := {
658                        fieldName := P_CHARGING_VECTOR_E,
659                        chargeParams := {
660                                p_param,
661                                *
662                        }
663                }       
664         }
665        }
666       
667        /**
668          *
669          * @desc INVITE Request checking TP_IMS_5108_01_f on MW
670          *             ifpresent ioi params than fail
671          */
672        template INVITE_Request mdw_TP_IMS_5108_01_f_ic
673         modifies mw_INVITE_Request_Base := {
674          msgHeader := {
675                pChargingVector := {
676                        fieldName := P_CHARGING_VECTOR_E,
677                        chargeParams := {
678                                {id := "orig-ioi", paramValue := ?},
679                                {id := "term-ioi", paramValue := ?},
680                                *
681                        }
682                }       
683          }
684        }
685   
686        /**
687          *
688          * @desc INVITE Request checking TP_IMS_5108_03 on ISC
689          */
690        template INVITE_Request mdw_TP_IMS_5108_03_isc(
691                template SipUrl p_ASB_Uri,
692                template SipUrl p_SCSCF_Uri
693        ) modifies mw_INVITE_Request_Base := {
694          msgHeader := {
695                route := {
696                        fieldName := ROUTE_E,
697                        routeBody := {
698                                {
699                                nameAddr := {
700                                        displayName := *,
701                                        addrSpec := p_ASB_Uri   
702                                },
703                                rrParam := *
704                                },
705                                {
706                                nameAddr := {
707                                        displayName := *,
708                                        addrSpec := p_SCSCF_Uri
709                                },
710                                rrParam := *
711                                },
712                                *
713                               
714                        }
715                },
716                pChargingVector := {
717                        fieldName := P_CHARGING_VECTOR_E,
718                        chargeParams := {
719                        {id := "orig-ioi", paramValue := ?},
720                        *
721                        }
722                }       
723          }
724        }
725       
726        /**
727          *
728          * @desc INVITE Request checking TP_IMS_5108_03_f on ISC
729          *             ifpresent ioi params than fail
730          */
731        template INVITE_Request mdw_TP_IMS_5108_03_f_isc
732                modifies mw_INVITE_Request_Base := {
733                        msgHeader := {
734                pChargingVector := {
735                        fieldName := P_CHARGING_VECTOR_E,
736                        chargeParams := {
737                                {id := "term-ioi", paramValue := *},
738                                *
739                        }
740                }       
741                        }
742        }
743   
744        /**
745          *
746          * @desc 180 Ringing Response checking TP_IMS_5115_01 on MW
747          */
748        template Response mdw_TP_IMS_5115_01_ic
749         modifies mw_180Ringing_Base := {
750          msgHeader := {
751                pChargingVector :=  mw_PChargingVector({
752                {id := "orig-ioi", paramValue := ?},
753                {id := "term-ioi", paramValue := ?},
754                *
755                })
756          }
757        }
758   
759        /**
760          *
761          * @desc 200 OK Response checking TP_IMS_5115_02 on MW
762          */
763        template Response mdw_TP_IMS_5115_02_ic
764         modifies mw_200OK_Base := {
765          msgHeader := {
766                pChargingVector :=  mw_PChargingVector({
767                        {id := "orig-ioi", paramValue := ?},
768                        {id := "term-ioi", paramValue := ?},
769                        *
770                })
771          }
772        }
773   
774        /**
775          *
776          * @desc 180 Ringing Response checking TP_IMS_5115_03 on MW
777          */
778        template Response mdw_TP_IMS_5115_03_ic(
779        template SipUrl p_SIP_URI,
780        template SipUrl p_TEL_URI)
781         modifies mw_180Ringing_Base := {
782          msgHeader := {
783                pAssertedID := {
784                        fieldName := P_ASSERTED_ID_E,
785                        pAssertedIDValueList := {
786                                *,
787                                { nameAddr := mw_NameAddr(p_SIP_URI)},
788                                *,
789                                {nameAddr := mw_NameAddr(p_TEL_URI)},
790                                *
791                        }
792                }
793          }
794        }
795   
796        /**
797          *
798          * @desc 200 OK Response checking TP_IMS_5115_04 on MW
799          */
800        template Response mdw_TP_IMS_5115_04_ic(
801        template SipUrl p_SIP_URI,
802        template SipUrl p_TEL_URI)
803         modifies mw_200OK_Base := {
804          msgHeader := {
805                pAssertedID := {
806                        fieldName := P_ASSERTED_ID_E,
807                        pAssertedIDValueList := {
808                                *,
809                                { nameAddr := mw_NameAddr(p_SIP_URI)},
810                                *,
811                                {nameAddr := mw_NameAddr(p_TEL_URI)},
812                                *
813                        }
814                }
815          }
816        }
817   
818        /**
819          *
820          * @desc 200 OK Response checking TP_IMS_5115_08 on MW
821          */
822        template Response mdw_TP_IMS_5115_08_ic
823         modifies mw_200OK_Base := {
824          msgHeader := {
825                pChargingVector :=  mw_PChargingVector({
826                        {id := "orig-ioi", paramValue := ?},
827                        {id := "term-ioi", paramValue := ?},
828                        *
829                })
830          }
831        }
832   
833        /**
834          *
835          * @desc 180 Ringing Response checking TP_IMS_5131_01 on MW
836          */
837        template Response mdw_TP_IMS_5131_01_ic
838         modifies mw_180Ringing_Base := {
839          msgHeader := {
840                pChargingFunctionAddresses := omit
841          }
842        }
843   
844        /**
845          *
846          * @desc 200 OK Response checking TP_IMS_5131_02 on MW
847          */
848        template Response mdw_TP_IMS_5131_02_ic
849         modifies mw_200OK_Base := {
850          msgHeader := {
851                pChargingFunctionAddresses := omit
852          }
853        }
854
855     /**
856       *
857       * @desc INVITE Request checking TP_IMS_5135_01
858       */
859     template INVITE_Request mdw_TP_IMS_5135_01_ic (template SipUrl p_ibcfEutAUri)
860      modifies mw_INVITE_Request_Base := {
861       msgHeader := {
862          recordRoute := {
863           fieldName := RECORD_ROUTE_E,
864           routeBody := {mw_routeBody(p_ibcfEutAUri), *}               
865          }
866       }
867     }
868
869        /**
870          *
871          * @desc INVITE Request checking TP_IMS_5137_01
872          */
873        template INVITE_Request mdw_TP_IMS_5137_01_ic (template SipUrl p_ibcfEutAUri)
874         modifies mw_INVITE_Request_Base := {
875          msgHeader := {
876                route := {
877                        fieldName := ROUTE_E,
878                        routeBody := {
879                                mw_routeBodyTH(p_ibcfEutAUri),
880                                *
881                        }
882                },
883                via := {
884                        fieldName := VIA_E,
885                        viaBody := {{
886                                sentProtocol := *,
887                                sentBy := *,
888                                viaParams :={{
889                                id:="tokenized-by",
890                                paramValue := *
891                        }}
892                        }}
893                },
894                recordRoute := {
895                        fieldName := RECORD_ROUTE_E,
896                        routeBody := {mw_routeBodyTH(*), *}                     
897                }
898         }
899        }
900   
901        /**
902          *
903          * @desc 180 Ringing Response checking TP_IMS_5137_02 on MW
904          */
905        template Response mdw_TP_IMS_5137_02_ic
906         modifies mw_180Ringing_Base := {
907          msgHeader := {
908                via := {
909                        fieldName := VIA_E,
910                        viaBody := {{
911                                sentProtocol := *,
912                                sentBy := *,
913                                viaParams :={{
914                                        id:="tokenized-by",
915                                        paramValue := *
916                                }}
917                        }}
918                },
919                recordRoute := {
920                        fieldName := RECORD_ROUTE_E,
921                        routeBody := {mw_routeBodyTH(*), *}                     
922                }
923          }
924        }
925   
926        /**
927          *
928          * @desc 200 OK Response checking TP_IMS_5137_03 on MW
929          */
930        template Response mdw_TP_IMS_5137_03_ic
931         modifies mw_200OK_Base := {
932          msgHeader := {
933                via := {
934                        fieldName := VIA_E,
935                        viaBody := {{
936                                sentProtocol := *,
937                                sentBy := *,
938                                viaParams :={{
939                                        id:="tokenized-by",
940                                        paramValue := *
941                                }}
942                        }}
943                },
944                recordRoute := {
945                        fieldName := RECORD_ROUTE_E,
946                        routeBody := {mw_routeBodyTH(*), *}                     
947                }
948          }
949        }
950       
951        /**
952          *
953          * @desc BYE Request checking TP_IMS_5139_01 on MW
954          */
955        template BYE_Request mdw_TP_IMS_5139_01_ic(
956                template CallId p_callId,
957                template SipUrl p_UE_URI,
958                template To  p_to,
959                template From  p_from,
960                template CSeq p_cSeq,
961                template Route p_route
962        ) modifies mw_BYE_Request_Base := {
963                requestLine := {
964                        requestUri := p_UE_URI
965                },
966                msgHeader := {
967                        callId := p_callId,
968                        cSeq := p_cSeq,                 
969                        fromField := p_from,                   
970                        reason := ?,
971                        route := p_route,               
972                        toField := p_to
973                }
974        }
975
976         
977        /**
978          *
979          * @desc BYE Request checking TP_IMS_5301_01 on MW
980          */
981        template BYE_Request mdw_TP_IMS_5301_01_ic(template CallId p_callId, template SipUrl p_SCSCF_SIP_URI)
982         modifies mw_BYE_Request_Base := {
983          msgHeader := {
984                route := {
985                        fieldName := ROUTE_E,
986                        routeBody := {
987                                *,
988                                complement(mw_routeBody(p_SCSCF_SIP_URI)),
989                                *
990                        }
991                },
992                recordRoute := {
993                        fieldName := RECORD_ROUTE_E,
994                        routeBody := {mw_routeBody(p_SCSCF_SIP_URI), *}                 
995                }
996          }
997        }
998   
999    /**
1000      *
1001      * @desc 180 Ringing Response checking TP_IMS_5308_01 on GM
1002      */
1003    template Response mdw_TP_IMS_5308_01_gm
1004     modifies mw_180Ringing_Base := {
1005      msgHeader := {
1006        pChargingFunctionAddresses := ?
1007      }
1008    }
1009   
1010        /**
1011          *
1012          * @desc 180 Ringing Response checking TP_IMS_5308_01 on ISC
1013          */
1014        template Response mdw_TP_IMS_5308_01_isc
1015         modifies mw_180Ringing_Base := {
1016          msgHeader := {
1017                pChargingFunctionAddresses :=?
1018         }
1019        }
1020       
1021    /**
1022      *
1023      * @desc 200 OK Response checking TP_IMS_5308_02 on GM
1024      */
1025    template Response mdw_TP_IMS_5308_02_gm
1026     modifies mw_200OK_Base := {
1027      msgHeader := {
1028     pChargingFunctionAddresses := ?
1029      }
1030    }
1031       
1032        /**
1033          *
1034          * @desc 200 OK Response checking TP_IMS_5308_02 on ISC
1035          */
1036        template Response mdw_TP_IMS_5308_02_isc
1037         modifies mw_200OK_Base := {
1038          msgHeader := {
1039                pChargingFunctionAddresses := ?
1040         }
1041        }
1042
1043   /**
1044     *
1045     * @desc INVITE Request checking TP_IMS_5310_01 on GM
1046     */
1047    template INVITE_Request mdw_TP_IMS_5310_01_gm
1048     modifies mw_INVITE_Request_Base := {
1049      msgHeader := {
1050        pChargingVector :=  mw_PChargingVector({
1051            {id := "access-network-charging-info", paramValue := ?},
1052            *
1053          })
1054      }
1055    }
1056   
1057   /**
1058     *
1059     * @desc INVITE Request checking TP_IMS_5310_01 on AS
1060     */
1061    template INVITE_Request mdw_TP_IMS_5310_01_isc
1062     modifies mw_INVITE_Request_Base := {
1063      msgHeader := {
1064        pChargingVector :=  mw_PChargingVector({
1065            {id := "access-network-charging-info", paramValue := ?},
1066            *
1067          })
1068      }
1069    }
1070
1071   /**
1072     *
1073     * @desc 200 OK Response checking TP_IMS_5312_01 on MW
1074     */
1075    template Response mdw_TP_IMS_5312_01_ic
1076     modifies mw_200OK_Base := {
1077      msgHeader := {
1078        pChargingVector :=  mw_PChargingVector({
1079            {id := "access-network-charging-info", paramValue := ?},
1080            *
1081          })
1082      }
1083    }
1084   /**
1085     *
1086     * @desc 200 OK Response checking TP_IMS_5312_01 on AS
1087     */
1088    template Response mdw_TP_IMS_5312_01_isc
1089     modifies mw_200OK_Base := {
1090      msgHeader := {
1091        pChargingVector :=  mw_PChargingVector({
1092            {id := "access-network-charging-info", paramValue := ?},
1093            *
1094          })
1095      }
1096    }
1097
1098        /**
1099          *
1100          * @desc 433 Anonymity Disallowe Response checking TP_IMS_5313_01 on MW
1101          */
1102        template Response mdw_TP_IMS_5313_01_ic
1103         modifies mw_433Anony_Base := {
1104          msgHeader := {
1105                pChargingVector :=  mw_PChargingVector({
1106                        {id := "access-network-charging-info", paramValue := ?},
1107                        *
1108                })
1109          }
1110        }
1111       
1112        /**
1113          *
1114          * @desc 433 Anonymity Disallowe Response checking TP_IMS_5313_01 on AS
1115          */
1116        template Response mdw_TP_IMS_5313_01_isc
1117         modifies mw_433Anony_Base := {
1118          msgHeader := {
1119                pChargingVector :=  mw_PChargingVector({
1120                        {id := "access-network-charging-info", paramValue := ?},
1121                        *
1122                        })
1123          }
1124        }
1125
1126        /**
1127          *
1128          * @desc INVITE Request checking TP_IMS_5404_01 on GM
1129          */
1130        template INVITE_Request mdw_TP_IMS_5404_01_gm
1131         modifies mw_INVITE_Request_Base := {
1132          msgHeader := {
1133                pChargingFunctionAddresses := ?
1134         }
1135        }
1136
1137        /**
1138          *
1139          * @desc INVITE Request checking TP_IMS_5404_01 on MW
1140          */
1141        template INVITE_Request mdw_TP_IMS_5404_01_ic
1142         modifies mw_INVITE_Request_Base := {
1143          msgHeader := {
1144                pChargingFunctionAddresses := omit
1145         }
1146        }
1147   
1148        /**
1149          *
1150          * @desc ACK Request checking TP_IMS_5408_01 on MW
1151          */
1152        template ACK_Request mdw_TP_IMS_5408_01_ic(template CallId p_callId, template SipUrl p_IBCF_SIP_URI)
1153         modifies mw_ACK_Request_Base := {
1154          msgHeader := {
1155                route := {
1156                        fieldName := ROUTE_E,
1157                        routeBody := {
1158                                mw_routeBodyTH(p_IBCF_SIP_URI),
1159                                *
1160                        }
1161                },
1162                via := {
1163                        fieldName := VIA_E,
1164                        viaBody := {{
1165                                sentProtocol := *,
1166                                sentBy := *,
1167                                viaParams :={{
1168                                        id:="tokenized-by",
1169                                        paramValue := *
1170                                }}
1171                        }}
1172                }
1173          }
1174        }
1175   
1176        /**
1177                        *
1178                        * @desc BYE Request checking TP_IMS_5408_02 on MW
1179                        */
1180        template CANCEL_Request mdw_TP_IMS_5408_02_ic(template CallId p_callId, template SipUrl p_IBCF_SIP_URI)
1181         modifies mw_CANCEL_Request_Base := {
1182          msgHeader := {
1183                route := {
1184                        fieldName := ROUTE_E,
1185                        routeBody := {
1186                                mw_routeBodyTH(p_IBCF_SIP_URI),
1187                                *
1188                        }
1189                },
1190                via := {
1191                        fieldName := VIA_E,
1192                        viaBody := {{
1193                                sentProtocol := *,
1194                                sentBy := *,
1195                                viaParams :={{
1196                                        id:="tokenized-by",
1197                                        paramValue := *
1198                                }}
1199                        }}
1200                },
1201                recordRoute := {
1202                        fieldName := RECORD_ROUTE_E,
1203                        routeBody := {mw_routeBodyTH(*), *}                     
1204                }
1205          }
1206        }
1207   
1208        /**
1209          *
1210          * @desc BYE Request checking TP_IMS_5408_03 on MW
1211          */
1212        template BYE_Request mdw_TP_IMS_5408_03_ic(template CallId p_callId, template SipUrl p_IBCF_SIP_URI)
1213         modifies mw_BYE_Request_Base := {
1214          msgHeader := {
1215                route := {
1216                        fieldName := ROUTE_E,
1217                        routeBody := {
1218                                mw_routeBodyTH(p_IBCF_SIP_URI),
1219                                *
1220                        }
1221                },
1222                via := {
1223                        fieldName := VIA_E,
1224                        viaBody := {{
1225                                sentProtocol := *,
1226                                sentBy := *,
1227                                viaParams :={{
1228                                        id:="tokenized-by",
1229                                        paramValue := *
1230                                }}
1231                        }}
1232                },
1233                recordRoute := {
1234                        fieldName := RECORD_ROUTE_E,
1235                        routeBody := {mw_routeBodyTH(*), *}                     
1236                }
1237          }
1238        }
1239
1240        /**
1241          *
1242          * @desc INVITE Request checking TP_IMS_5408_04
1243          */
1244        template INVITE_Request mdw_TP_IMS_5408_04_ic (template SipUrl p_ibcfEutAUri)
1245         modifies mw_INVITE_Request_Base := {
1246          msgHeader := {
1247                route := {
1248                        fieldName := ROUTE_E,
1249                        routeBody := {
1250                                mw_routeBodyTH(p_ibcfEutAUri),
1251                                *
1252                        }
1253                },
1254                via := {
1255                        fieldName := VIA_E,
1256                        viaBody := {{
1257                                sentProtocol := *,
1258                                sentBy := *,
1259                                viaParams :={{
1260                                        id:="tokenized-by",
1261                                        paramValue := *
1262                                }}
1263                        }}
1264                },
1265                recordRoute := {
1266                        fieldName := RECORD_ROUTE_E,
1267                        routeBody := {mw_routeBodyTH(*), *}                     
1268                }
1269         }
1270        }
1271
1272   /**
1273     *
1274     * @desc INVITE Request checking TP_IMS_5097_09
1275     */
1276    template INVITE_Request mdw_TP_IMS_5097_09_isc (template SipUrl p_EutB_ASUri)
1277     modifies mw_INVITE_Request_Base := {
1278      msgHeader := {
1279                route := {
1280                fieldName := ROUTE_E,
1281                routeBody := {mw_routeBody(p_EutB_ASUri), *}
1282                        },
1283                 pChargingFunctionAddresses := ?,
1284         pChargingVector :=  mw_PChargingVector({
1285            {id := "orig-ioi", paramValue := *},  // NOTE indicating also operator identifier for IMSA
1286            *
1287          })
1288      }
1289    }
1290   
1291        /**
1292          * @desc INVITE Request checking TP_IMS_5097_09 false
1293          */
1294        template INVITE_Request mdw_TP_IMS_5097_09_f_isc
1295         modifies mw_INVITE_Request_Base := {
1296               
1297          msgHeader := {       
1298                pChargingVector := {
1299                        fieldName := P_CHARGING_VECTOR_E,
1300                        chargeParams := {
1301                                                        {id := "term-ioi", paramValue := *},
1302                                                        *
1303                        }
1304                }
1305          }
1306        }
1307   
1308    template MESSAGE_Request mdw_TP_IMS_5097_05_p_ic(
1309        template CallId p_callId
1310    ) modifies mw_MESSAGE_Request_Base := {
1311        msgHeader := {
1312            pChargingVector := {
1313                fieldName := P_CHARGING_VECTOR_E,
1314                chargeParams := {
1315                    {id := "icid-value", paramValue := ?},
1316                    {id := "orig-ioi", paramValue := ?},
1317                    *
1318                }
1319            },
1320            pAccessNetworkInfo := omit
1321        }
1322    }
1323   
1324                template MESSAGE_Request mdw_TP_IMS_5097_05_f2_ic(
1325                        template CallId p_callId,
1326                        template SipUrl p_SCSCF_SIP_URI
1327                ) modifies mw_MESSAGE_Request_Base := {
1328                        msgHeader := {
1329                                route := {
1330                                        fieldName := ROUTE_E,
1331                                        routeBody := {
1332                                                mw_routeBody(p_SCSCF_SIP_URI),
1333                                                *
1334                                        }
1335                                }
1336                        }
1337                }
1338   
1339    template MESSAGE_Request mdw_TP_IMS_5097_05_f_ic(
1340        template CallId p_callId
1341    ) modifies mw_MESSAGE_Request_Base := {
1342        msgHeader := {
1343            pChargingVector := {
1344                fieldName := P_CHARGING_VECTOR_E,
1345                chargeParams := {
1346                    {id := "term-ioi", paramValue := ?},
1347                    {id := "access-network-charging-info", paramValue := ?},
1348                    *
1349                }
1350            }
1351        }
1352    }
1353   
1354    template MESSAGE_Request mdw_TP_IMS_5097_08_gm(
1355      template CallId p_callId
1356    ) modifies mw_MESSAGE_Request_Base := {
1357       requestLine := { requestUri := mw_TEL_URI_Base }
1358    }
1359   
1360    template MESSAGE_Request mdw_TP_IMS_5097_08_ic(
1361      template CallId p_callId
1362    ) modifies mw_MESSAGE_Request_Base := {
1363       requestLine := {
1364                requestUri := mw_SIP_URI_Base
1365        },
1366        msgHeader := {
1367                pChargingVector := {
1368                   fieldName := P_CHARGING_VECTOR_E,
1369                   chargeParams := {
1370                    complement({id := "access-network-charging-info", paramValue := ?}),
1371                            *
1372                   }
1373                }       
1374        }
1375    }
1376   
1377    template MESSAGE_Request mdw_TP_IMS_5097_07_ic(
1378      template CallId p_callId,
1379      template SipUrl p_SIP_URI,
1380      template SipUrl p_TEL_URI)
1381    modifies mw_MESSAGE_Request_Base := {
1382        msgHeader := {
1383            pAssertedID := {
1384                fieldName := P_ASSERTED_ID_E,
1385                pAssertedIDValueList := {
1386                    ({nameAddr := mw_NameAddr(p_SIP_URI)}, {addrSpecUnion := mw_SIP_URI_Base}),
1387                    ({nameAddr := mw_NameAddr(p_TEL_URI)}, {addrSpecUnion := mw_TEL_URI_Base}),
1388                    *
1389                }
1390            }
1391        }
1392    }
1393   
1394    template MESSAGE_Request mdw_TP_IMS_5108_02a_ic(
1395      template CallId p_callId
1396    ) modifies mw_MESSAGE_Request_Base := {
1397        msgHeader := {
1398                pChargingVector := {
1399                fieldName := P_CHARGING_VECTOR_E,
1400                chargeParams := {
1401                    {id := "icid-value", paramValue := ?},
1402                    *
1403                }
1404            }   
1405        }
1406    }
1407   
1408    template MESSAGE_Request mdw_TP_IMS_5108_02b_p_ic(
1409      template CallId p_callId,
1410      template SipUrl p_SCSCF_Uri,
1411      template GenericParam p_param
1412    ) modifies mw_MESSAGE_Request_Base := {
1413        msgHeader := {
1414                route := omit, // TODO TP is not clear please double check
1415                recordRoute := {
1416                        fieldName := RECORD_ROUTE_E,
1417                        routeBody := {{
1418                                nameAddr := {
1419                                        displayName := *,
1420                                        addrSpec := p_SCSCF_Uri
1421                                },
1422                                rrParam := *
1423                        }}
1424                },
1425                pChargingVector := {
1426                fieldName := P_CHARGING_VECTOR_E,
1427                chargeParams := {
1428                    p_param,
1429                    *
1430                }
1431            }   
1432        }
1433    }
1434   
1435    template MESSAGE_Request mdw_TP_IMS_5108_02b_f_ic(
1436      template CallId p_callId
1437    ) modifies mw_MESSAGE_Request_Base := {
1438        msgHeader := {
1439                pChargingVector := {
1440                fieldName := P_CHARGING_VECTOR_E,
1441                chargeParams := {
1442                    {id := "orig-ioi", paramValue := ?},
1443                        {id := "term-ioi", paramValue := ?},
1444                        *
1445                }
1446            }   
1447        }
1448    }
1449               
1450               
1451        /**
1452    * @desc INVITE Request checking TP_IMS_5120_01
1453    */
1454        template INVITE_Request mdw_TP_IMS_5120_01_ic(
1455                template SipUrl p_SCSCF_URI
1456        ) modifies mw_INVITE_Request_Base := {
1457                msgHeader := {       
1458                        route := {
1459                                fieldName := ROUTE_E,
1460                                routeBody := {
1461                                        complement(mw_routeBody(p_SCSCF_URI)),
1462                                        *
1463                                }
1464                        },
1465                        recordRoute := {
1466                                fieldName := RECORD_ROUTE_E,
1467                                routeBody := {
1468                                        mw_routeBody(p_SCSCF_URI),
1469                                        *
1470                                }                       
1471                        }
1472                }
1473        }
1474   
1475    template Response mw_TP_IMS_5121_02_ic modifies mdw_2XX_Base := {
1476            msgHeader := {
1477                pChargingVector := {
1478                   fieldName := P_CHARGING_VECTOR_E,
1479                   chargeParams := {
1480                    complement({id := "access-network-charging-info", paramValue := ?}),
1481                            *
1482                   }
1483                }
1484            }   
1485    }
1486   
1487    template Response mw_TP_IMS_5117_02_ic modifies mdw_2XX_Base := {
1488            msgHeader := {
1489                pChargingVector := {
1490                   fieldName := P_CHARGING_VECTOR_E,
1491                   chargeParams := {
1492                    complement({id := "access-network-charging-info", paramValue := ?}),
1493                            *
1494                   }
1495                }
1496            }   
1497    }
1498   
1499    template Response mw_TP_IMS_5117_06_ic modifies mdw_2XX_Base := {
1500            msgHeader := {
1501                pAssertedID := {
1502                fieldName := P_ASSERTED_ID_E,
1503                pAssertedIDValueList := {
1504                    {nameAddr := mw_NameAddr(mw_SIP_URI_Base)},
1505                    {nameAddr := mw_NameAddr(mw_TEL_URI_Base)},
1506                    *
1507                }
1508            }
1509            }   
1510    }
1511   
1512    template Response mw_TP_IMS_5118_01_ic modifies mw_200OK_Base := {
1513            msgHeader := {
1514                pChargingVector := {
1515                   fieldName := P_CHARGING_VECTOR_E,
1516                   chargeParams := {
1517                        {id := "orig-ioi", paramValue := ?},
1518                        {id := "term-ioi", paramValue := ?},
1519                        *
1520                   }
1521                }
1522            }   
1523    }
1524   
1525    template MESSAGE_Request mdw_TP_IMS_5050_01_ic(
1526      template CallId p_callId,
1527      template SipUrl p_PCSCF_URI,
1528      template SipUrl p_UE_A_URI
1529    ) modifies mw_MESSAGE_Request_Base := {
1530        msgHeader := {
1531                route := {
1532                        fieldName := ROUTE_E,
1533                        routeBody := {
1534                                {
1535                                        nameAddr := {
1536                                                displayName := *,
1537                                                addrSpec := complement(p_PCSCF_URI)     
1538                                        },
1539                                        rrParam := *
1540                                },*
1541                        }
1542                },
1543                pPreferredID := omit,
1544                pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_UE_A_URI)),
1545                pChargingVector := {
1546                fieldName := P_CHARGING_VECTOR_E,
1547                chargeParams := {
1548                    {id := "icid-value", paramValue := ?},
1549                        *
1550                }
1551            }   
1552        }
1553    }
1554
1555        template Response mdw_2XX_Base modifies m_Response_Dummy := {
1556                statusLine := {c_sipNameVersion, (200..299), *},
1557                msgHeader := ?,
1558                messageBody := *,
1559                payload := *
1560        }
1561
1562  template Response mw_100Trying_Base  modifies m_Response_Dummy :=
1563                {
1564                statusLine := c_statusLine100,
1565                msgHeader := ?,
1566                messageBody := *,
1567                payload := *
1568                }
1569
1570  template Response mw_180Ringing_Base  modifies m_Response_Dummy :=
1571                {
1572                statusLine := c_statusLine180,
1573                msgHeader := ?,
1574                messageBody := *,
1575                payload := *
1576                }
1577  template Response mw_200OK_Base  modifies m_Response_Dummy :=
1578                {
1579                statusLine := c_statusLine200,
1580                msgHeader := ?,
1581                messageBody := *,
1582                payload := *
1583                }
1584  template Response mw_202Accepted_Base  modifies m_Response_Dummy :=
1585                {
1586                statusLine := c_statusLine202,
1587                msgHeader := ?,
1588                messageBody := *,
1589                payload := *
1590                }
1591  template Response mw_401Unauthorized_Base  modifies m_Response_Dummy :=
1592                {
1593                statusLine := {c_sipNameVersion, 401, ?},
1594                msgHeader := ?,
1595                messageBody := *,
1596                payload := *
1597                }
1598               
1599  template Response mdw_4XX_Base modifies m_Response_Dummy :=
1600  {
1601                statusLine := {c_sipNameVersion, (400..499), *},
1602                msgHeader := ?,
1603                messageBody := *,
1604                payload := *
1605  }
1606  template Response mw_403Forbidden_Base  modifies m_Response_Dummy :=
1607                {
1608                statusLine := {c_sipNameVersion, 403, ?},
1609                msgHeader := ?,
1610                messageBody := *,
1611                payload := *
1612                }
1613               
1614        template Response mw_404NotFound_Base  modifies m_Response_Dummy :=
1615        {
1616                statusLine := {c_sipNameVersion, 404, ?},
1617                msgHeader := ?,
1618                messageBody := *,
1619                payload := *
1620        }
1621               
1622        template Response mdw_404Or604NotFound_Base  modifies m_Response_Dummy :=
1623        {
1624                statusLine := ({c_sipNameVersion, 404, ?}, {c_sipNameVersion, 604, ?}),
1625                msgHeader := ?,
1626                messageBody := *,
1627                payload := *
1628        }
1629               
1630        template Response mdw_408Or5XX_Base  modifies m_Response_Dummy :=
1631        {
1632                statusLine := {c_sipNameVersion, (408,(500..599)), *},
1633                msgHeader := ?,
1634                messageBody := *,
1635                payload := *
1636        }
1637               
1638        template Response mw_433Anony_Base  modifies m_Response_Dummy :=
1639        {
1640                statusLine := c_statusLine433,
1641                msgHeader := ?,
1642                messageBody := *,
1643                payload := *
1644        }
1645
1646                template REGISTER_Request mdw_TP_IMS_5088_01_gm  modifies mw_REGISTER_Request_Base := {
1647                        msgHeader := {authorization := m_Authorization(mw_credentialIntegrityYes)}
1648                }
1649       
1650                template NOTIFY_Request mdw_TP_IMS_5088_01_ic(template CallId p_callId, template SipUrl p_PCSCF_SIP_URI) modifies mw_NOTIFY_Request_Base := {
1651                        requestLine := { requestUri := p_PCSCF_SIP_URI },
1652                        msgHeader := {
1653                                event := {
1654                                        fieldName := EVENT_E,
1655                                        eventType := pattern "*reg*",
1656                                        eventParams := *},
1657                                route := ? }, // TODO route header indicating the original Route_header from SUBSCRIBE (SUBSCRIBE not defined in the test description)
1658                        messageBody := ? // TODO
1659                }
1660       
1661        template NOTIFY_Request mdw_TP_IMS_5093_01_UE_ic(template CallId p_callId, template SipUrl p_UE_SIP_URI) modifies mw_NOTIFY_Request_Base := {
1662                requestLine := { requestUri := p_UE_SIP_URI },
1663                msgHeader := {
1664                        event := {
1665                                fieldName := EVENT_E,
1666                                eventType := pattern "*reg*",
1667                                eventParams := *},
1668                        route := ? }, // TODO route header indicating the original Route_header from SUBSCRIBE (SUBSCRIBE not defined in the test description)
1669                messageBody := ? // TODO
1670        }       
1671           
1672        template NOTIFY_Request mdw_TP_IMS_5093_01_IMS_ic(template CallId p_callId, template SipUrl p_PCSCF_SIP_URI) modifies mw_NOTIFY_Request_Base := {
1673                requestLine := { requestUri := p_PCSCF_SIP_URI },
1674                msgHeader := {
1675                        event := {
1676                                fieldName := EVENT_E,
1677                                eventType := pattern "*reg*",
1678                                eventParams := *},
1679                        route := ? }, // TODO route header indicating the original Route_header from SUBSCRIBE (SUBSCRIBE not defined in the test description)
1680                messageBody := ? // TODO
1681        } 
1682       
1683                template NOTIFY_Request mdw_TP_IMS_5094_01_UE(template CallId p_callId, template SipUrl p_UE_SIP_URI) modifies mw_NOTIFY_Request_Base := {
1684                        requestLine := { requestUri := p_UE_SIP_URI },
1685                        msgHeader := {
1686                                event := {
1687                                        fieldName := EVENT_E,
1688                                        eventType := pattern "*reg*",
1689                                        eventParams := *},
1690                                route := ? }, // TODO route header indicating the original Route_header from SUBSCRIBE (SUBSCRIBE not defined in the test description)
1691                        messageBody := ? // TODO
1692                }
1693           
1694                template NOTIFY_Request mdw_TP_IMS_5094_01_IMS_ic(template CallId p_callId, template SipUrl p_PCSCF_SIP_URI) modifies mw_NOTIFY_Request_Base := {
1695                        requestLine := { requestUri := p_PCSCF_SIP_URI },
1696                        msgHeader := {
1697                                event := {
1698                                        fieldName := EVENT_E,
1699                                        eventType := pattern "*reg*",
1700                                        eventParams := *},
1701                                route := ? }, // TODO route header indicating the original Route_header from SUBSCRIBE (SUBSCRIBE not defined in the test description)
1702                        messageBody := ? // TODO
1703                }
1704               
1705               
1706        /**
1707          * @desc INVITE Request checking TP_IMS_5106_01
1708          */
1709        template INVITE_Request mdw_TP_IMS_5106_01_ic(
1710                template SipUrl p_SCSCF_URI
1711        ) modifies mw_INVITE_Request_Base := {
1712          msgHeader := {       
1713                route := {
1714                fieldName := ROUTE_E,
1715                routeBody := {
1716                        complement(mw_routeBody(p_SCSCF_URI)),
1717                        *
1718                }
1719                },
1720        recordRoute := {
1721                fieldName := RECORD_ROUTE_E,
1722                routeBody := {
1723                        mw_routeBody(p_SCSCF_URI),
1724                        *
1725                }                       
1726        },
1727        pAccessNetworkInfo := omit,
1728        pChargingVector :=  mw_PChargingVector({
1729            {id := "icid-value", paramValue := *},
1730            *
1731        })
1732          }
1733        }
1734       
1735        /**
1736          * @desc VYE Request checking TP_IMS_5074_01
1737          */
1738        template BYE_Request mdw_TP_IMS_5074_01_ic(
1739                template CallId p_callId,
1740                template SipUrl p_UE_URI // must be the IP address
1741        ) modifies mw_BYE_Request_Base := {
1742          requestLine := {
1743                requestUri := p_UE_URI
1744          },
1745          msgHeader := {
1746                toField := ?,
1747                fromField := ?,
1748                cSeq := ?,
1749                route := ?,
1750        reason := {
1751                fieldName := REASON_E,
1752                reasonValues := {
1753                        {
1754                                token := "503 Service Unavailable",
1755                                reasonParams := *
1756                        },
1757                        *
1758                }
1759        }
1760          }
1761        }
1762       
1763               
1764        /**
1765          * @desc UPDATE Request checking TP_IMS_5106_02
1766          */
1767        template UPDATE_Request mdw_TP_IMS_5106_02_p_ic(
1768                template CallId p_callId,
1769                template SipUrl p_SCSCF_URI
1770        ) modifies mw_UPDATE_Request_Base := {
1771          msgHeader := {       
1772                route := {
1773                fieldName := ROUTE_E,
1774                routeBody := *
1775                },
1776        recordRoute := {
1777                fieldName := RECORD_ROUTE_E,
1778                routeBody := {
1779                        *,
1780                        mw_routeBody(p_SCSCF_URI),
1781                        *
1782                }                       
1783        },
1784        pChargingVector :=  mw_PChargingVector({
1785            {id := "icid-value", paramValue := *},
1786            *
1787        })
1788          }
1789        }
1790       
1791
1792    template UPDATE_Request mdw_TP_IMS_5106_02_f_ic(
1793        template CallId p_callId,
1794        template SipUrl p_SCSCF_URI
1795    ) modifies mw_UPDATE_Request_Base := {
1796        msgHeader := {       
1797                route := {
1798                        fieldName := ROUTE_E,
1799                        routeBody := {
1800                                mw_routeBody(p_SCSCF_URI),
1801                                *
1802                        }
1803                }
1804        }
1805    }
1806
1807        }//end group
1808        group HeaderTemplates {
1809               
1810      template Path mw_PathDef (charstring p_Host) := {
1811      fieldName := PATH_E,
1812      pathValues := {{
1813        nameAddr:= {
1814          displayName := *,
1815          addrSpec := {
1816            scheme := "sip",
1817            userInfo := *,
1818            hostPort := {   
1819              host := p_Host,
1820              portField := *},
1821              urlParameters := *,
1822              headers := omit}
1823          },
1824          rrParam := omit
1825      }}
1826      } // template
1827     
1828      template Require mw_Require (template OptionTag_List p_optionsList) := {
1829        fieldName := REQUIRE_E,
1830        optionsTags := p_optionsList
1831      } // template
1832   
1833      template PChargingVector mw_PChargingVector (template SemicolonParam_List p_List) := {
1834        fieldName := P_CHARGING_VECTOR_E,
1835        chargeParams := p_List
1836      } // template
1837   
1838      template ServiceRoute mw_ServiceRoute (template SipUrl p_eutAddr) := {
1839        fieldName := SERVICE_ROUTE_E,
1840        routeBody := {
1841          {
1842            nameAddr := {
1843              displayName := *,
1844              addrSpec := p_eutAddr
1845            },
1846            rrParam := *
1847          },
1848          *
1849        }
1850      } // template
1851   
1852   
1853   
1854      template PVisitedNetworkID mw_PVisitedNetworkIDAny  := {
1855        fieldName := P_VISITED_NETWORK_E,
1856        vNetWorkSpec := ?
1857      } // template
1858   
1859      template PAssociatedURI mw_PAssociatedURI (template SemicolonParam_List p_SemicolonParam_List):= 
1860        {
1861        fieldName := P_ASSOCIATED_URI_E,
1862        nameAddrList:= {
1863           {nameAddr := *,
1864            genericParams := p_SemicolonParam_List 
1865           },
1866           *
1867           }
1868        }         
1869      template WwwAuthenticate mw_WwwAuthenticate  := {
1870        fieldName := WWW_AUTHENTICATE_E,
1871        challenge := {
1872          digestCln := { //{id := "username", paramValue := ?},
1873                                                                          {id := "realm", paramValue := ?}, // TODO containing operator ID
1874                                                                          {id := "nonce", paramValue := ?},
1875                                                                          {id := "rand", paramValue := ?},
1876                                                                          {id := "autn", paramValue := ?},
1877                                                                          {id := "ik", paramValue := ?},
1878                                                                          {id := "ck", paramValue := ?},
1879                                                                          {id := "algorithm", paramValue := "AKAv1-MD5"},
1880                                                                          *}
1881         
1882        }
1883      } // template
1884 
1885 
1886        } // end group HeaderTemplates
1887
1888    group AuxiliaryInformationElementTemplates {
1889     
1890                template Credentials mw_credentialIntegrityYes := {
1891                 otherResponse := {authScheme := ?, authParams := { {"integrity-protected", "yes"},*} // TODO
1892                 }}
1893                template Credentials mw_credentialIntegrityNo := {
1894                 otherResponse := {authScheme := ?, authParams := { {"integrity-protected", "no"},*} // TODO
1895                 }}
1896     
1897                template RouteBody mw_routeBodyTH (template SipUrl p_sipurl):= {
1898                nameAddr :=
1899                {
1900                        displayName := *,
1901                        addrSpec := p_sipurl
1902                },
1903                rrParam := {{
1904                                id:="tokenized-by",
1905                                paramValue := *
1906                        }}
1907                }
1908                 
1909                template NameAddr mw_NameAddr(template SipUrl p_URI) := {
1910                        displayName := *,
1911                        addrSpec := p_URI
1912                }
1913               
1914                template SipUrl mw_SIP_URI_Base := {
1915                scheme := "sip",  // meaning "not tel"
1916                userInfo := ?,
1917                hostPort := ?,
1918                urlParameters := *,
1919                headers := *
1920            }
1921               
1922                template SipUrl mw_TEL_URI_Base := {
1923            scheme := "tel",
1924            userInfo := ?,
1925            hostPort := *,
1926            urlParameters := *,
1927            headers := *
1928        }
1929 
1930    } //end group
1931
1932  group adapterTemplates {
1933   
1934    template GeneralConfigurationReq m_generalConfigurationReq_offline := {
1935      captureProcessIpAddress := "127.0.0.1",
1936      captureProcessPort := 5501,
1937      captureMode := {
1938        offlineCapture := {
1939          offset := PX_IOT_TIMESTAMP_OFFSET,
1940          captureSource := {
1941            sessionsPath := PX_IOT_PCAP_SESSIONS_PATH,
1942            mergeFileList := {
1943              mergeFileList := { },
1944              mergeFilePath := "",
1945              mergeToolPath := ""
1946            }
1947          }
1948        }
1949      },
1950      eutInfoList := omit
1951    }
1952    template GeneralConfigurationReq m_generalConfigurationReq_online := {
1953      captureProcessIpAddress := "127.0.0.1",
1954      captureProcessPort := 5501,
1955      captureMode := {
1956        liveCpature := {
1957          physicalInterfaces := {
1958            PX_IOT_IFACES
1959          },
1960          recordMode := PX_IOT_RECORD_MODE
1961        }
1962      },
1963      eutInfoList := PX_IOT_EUTs_IFACE_INFO_LIST
1964    }
1965    template GeneralConfigurationReq m_generalConfigurationReq_merge := {
1966      captureProcessIpAddress := "127.0.0.1",
1967      captureProcessPort := 5501,
1968      captureMode := {
1969        offlineCapture := {
1970          offset := PX_IOT_TIMESTAMP_OFFSET,
1971          captureSource := {
1972            sessionsPath := "",
1973            mergeFileList := {
1974              mergeFileList := PX_IOT_FILE_MERGE_LIST,
1975              mergeFilePath := PX_IOT_FILE_MERGE_PATH,
1976              mergeToolPath := PX_IOT_MERGE_TOOL_PATH
1977            }
1978          }
1979        }
1980      },
1981      eutInfoList := omit
1982    }
1983    template GeneralConfigurationRsp m_generalConfigurationRsp_success := {
1984      status := {
1985        code := e_success,
1986        reason := *
1987      }
1988    }
1989    template GeneralConfigurationRsp m_generalConfigurationRsp_timeout := {
1990      status := {
1991        code := e_timeout,
1992        reason := *
1993      }
1994    }
1995    template GeneralConfigurationRsp m_generalConfigurationRsp_error := {
1996      status := {
1997        code := e_error,
1998        reason := *
1999      }
2000    }
2001    template GeneralConfigurationRsp m_generalConfigurationRsp_any := {
2002      status := {
2003        code := *,
2004        reason := *
2005      }
2006    }
2007    template StartTrafficCaptureReq m_startTrafficCaptureReq := {
2008    }
2009    template StartTrafficCaptureRsp m_startTrafficCaptureRsp_any := {
2010      status := {
2011        code := *,
2012        reason := *
2013      }
2014    }
2015    template StopTrafficCaptureReq m_stopTrafficCaptureReq :={
2016    }
2017    template StopTrafficCaptureRsp m_stopTrafficCaptureRsp_any := {
2018      status := {
2019        code := *,
2020        reason := *
2021      }
2022    }
2023   
2024    template SetFilterReq m_setFilterReq (ProtocolFilter p_proto, IpAddress p_addr1,
2025      IpAddress p_addr2, UInt16 p_port) :={
2026      protocol := p_proto,
2027      interfaceInfos := {
2028        {
2029          IpInterfaceInfo := {
2030            {
2031              domainName := omit,
2032              IpAddress := p_addr1,
2033              portNumbers := { p_port }
2034            },
2035            {
2036              domainName := omit,
2037              IpAddress := p_addr2,
2038              portNumbers := { p_port }
2039            }
2040          }
2041        }
2042      }           
2043    }
2044   
2045    template SetFilterRsp m_setFilterRspAny := {
2046      status := {
2047        code := *,
2048        reason := *
2049      }
2050    }
2051  } // adapterTemplates
2052
2053}//end module
2054
Note: See TracBrowser for help on using the repository browser.