Rev

Rev 604 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | Bug Tracker

Rev 604 Rev 607
1
/**
1
/**
2
 * @author STF 346, STF366, STF368, STF369, STF450, STF471
2
 * @author STF 346, STF366, STF368, STF369, STF450, STF471
3
 * @version $Id: LibSip_Templates.ttcn 604 2014-02-27 10:07:49Z nikolajev $
3
 * @version $Id: LibSip_Templates.ttcn 607 2014-02-27 17:24:26Z nikolajev $
4
 * @desc This module defines SIP Templates for message, header, and
4
 * @desc This module defines SIP Templates for message, header, and
5
 *      structured types. <br>
5
 *      structured types. <br>
6
 *      Note that any changes made to the definitions in this module
6
 *      Note that any changes made to the definitions in this module
7
 *      may be overwritten by future releases of this library
7
 *      may be overwritten by future releases of this library
8
 *      End users are encouraged to contact the distributers of this
8
 *      End users are encouraged to contact the distributers of this
9
 *      module regarding their modifications or additions.
9
 *      module regarding their modifications or additions.
10
 * @remark Any additions to the templates shall follow the design rules and always modify base templates only; Existing templates shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org
10
 * @remark Any additions to the templates shall follow the design rules and always modify base templates only; Existing templates shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org
11
 */
11
 */
12
module LibSip_Templates {
12
module LibSip_Templates {
13
    // LibSip
13
    // LibSip
14
    import from LibSip_SIPTypesAndValues all;
14
    import from LibSip_SIPTypesAndValues all;
15
    import from LibSip_SDPTypes all;
15
    import from LibSip_SDPTypes all;
16
    import from LibSip_Interface all;
16
    import from LibSip_Interface all;
17
    import from LibSip_PIXITS all;
17
    import from LibSip_PIXITS all;
18
    import from LibSip_XMLTypes all;
18
    import from LibSip_XMLTypes all;
19
    import from LibSip_SimpleMsgSummaryTypes all;
19
    import from LibSip_SimpleMsgSummaryTypes all;
20
    import from LibSip_MessageBodyTypes all;
20
    import from LibSip_MessageBodyTypes all;
21
21
22
    import from NoTargetNamespace language "XSD" all
22
    import from NoTargetNamespace language "XSD" all
23
    with {
23
    with {
24
        extension "File:../xsd/Ims3gpp.xsd";
24
        extension "File:../xsd/Ims3gpp.xsd";
25
    }
25
    }
26
26
27
    import from urn_ietf_params_xml_ns_conference_info language "XSD" all
27
    import from urn_ietf_params_xml_ns_conference_info language "XSD" all
28
    with {
28
    with {
29
        extension "File:../xsd/CONF.xsd";
29
        extension "File:../xsd/CONF.xsd";
30
    }
30
    }
31
31
32
    import from http_uri_etsi_org_ngn_params_xml_simservs_pstn language "XSD" all
32
    import from http_uri_etsi_org_ngn_params_xml_simservs_pstn language "XSD" all
33
    with {
33
    with {
34
        extension "File:../xsd/PSTN.xsd";
34
        extension "File:../xsd/PSTN.xsd";
35
    }
35
    }
36
36
37
    import from http_uri_etsi_org_ngn_params_xml_simservs_xcap language "XSD" all
37
    import from http_uri_etsi_org_ngn_params_xml_simservs_xcap language "XSD" all
38
    with {
38
    with {
39
        extension "File:../xsd/SupplementaryServices.xsd";
39
        extension "File:../xsd/SupplementaryServices.xsd";
40
    }
40
    }
41
41
42
    import from http_uri_etsi_org_ngn_params_xml_simservs_mcid language "XSD" all
42
    import from http_uri_etsi_org_ngn_params_xml_simservs_mcid language "XSD" all
43
    with {
43
    with {
44
        extension "File:../xsd/MCID.xsd";
44
        extension "File:../xsd/MCID.xsd";
45
    }
45
    }
46
46
47
    import from urn_ietf_params_xml_ns_resource_lists language "XSD" all
47
    import from urn_ietf_params_xml_ns_resource_lists language "XSD" all
48
    with {
48
    with {
49
        extension "File:../xsd/ResourceList.xsd";
49
        extension "File:../xsd/ResourceList.xsd";
50
    }
50
    }
51
51
52
    import from http_uri_etsi_org_ngn_params_xml_comm_div_info language "XSD" all
52
    import from http_uri_etsi_org_ngn_params_xml_comm_div_info language "XSD" all
53
    with {
53
    with {
54
        extension "File:../xsd/CDIVN.xsd";
54
        extension "File:../xsd/CDIVN.xsd";
55
    }
55
    }
56
56
57
    import from urn_3gpp_ns_cw_1_0 language "XSD" all
57
    import from urn_3gpp_ns_cw_1_0 language "XSD" all
58
    with {
58
    with {
59
        extension "File:../xsd/cw.xsd";
59
        extension "File:../xsd/cw.xsd";
60
    }
60
    }
61
61
62
    group ModuleParameters {
62
    group ModuleParameters {
63
63
64
        modulepar boolean MB_LENGTH_FROM_ENCVAL := true;
64
        modulepar boolean MB_LENGTH_FROM_ENCVAL := true;
65
        //*     to get length of message body from ecoded value
65
        //*     to get length of message body from ecoded value
66
        modulepar boolean USE_FX_FOR_XML_LENGTH := false;
66
        modulepar boolean USE_FX_FOR_XML_LENGTH := false;
67
67
68
    //*     To use external functions for calculation of XML message/body length
68
    //*     To use external functions for calculation of XML message/body length
69
    } //*     group ModuleParameters
69
    } //*     group ModuleParameters
70
70
71
    group SubFields {
71
    group SubFields {
72
72
73
        template(value) Addr_Union m_AddrUnion_NameAddr(template(value) NameAddr p_nameAddr) := {nameAddr := p_nameAddr}
73
        template(value) Addr_Union m_AddrUnion_NameAddr(template(value) NameAddr p_nameAddr) := {nameAddr := p_nameAddr}
74
74
75
        template(value) Addr_Union m_AddrUnion_DisplayAndSipUrl(
75
        template(value) Addr_Union m_AddrUnion_DisplayAndSipUrl(
76
            template(value) charstring p_displayName,
76
            template(value) charstring p_displayName,
77
            template(value) SipUrl p_addrSpec
77
            template(value) SipUrl p_addrSpec
78
        ) := {
78
        ) := {
79
            nameAddr := m_CallingAddr(p_displayName, p_addrSpec)
79
            nameAddr := m_CallingAddr(p_displayName, p_addrSpec)
80
        }
80
        }
81
81
82
        template(value) NameAddr m_NameAddr(
82
        template(value) NameAddr m_NameAddr(
83
            template(omit) charstring p_displayName := omit,
83
            template(omit) charstring p_displayName := omit,
84
            template(value) SipUrl p_addrSpec
84
            template(value) SipUrl p_addrSpec
85
        ) := {
85
        ) := {
86
            displayName := p_displayName,
86
            displayName := p_displayName,
87
            addrSpec := p_addrSpec
87
            addrSpec := p_addrSpec
88
        }
88
        }
89
89
90
        template(value) NameAddr m_CallingAddr(
90
        template(value) NameAddr m_CallingAddr(
91
            template(value) charstring p_displayName,
91
            template(value) charstring p_displayName,
92
            template(value) SipUrl p_addrSpec
92
            template(value) SipUrl p_addrSpec
93
        ) := m_NameAddr(p_displayName, p_addrSpec);
93
        ) := m_NameAddr(p_displayName, p_addrSpec);
94
94
95
        template(present) NameAddr mw_NameAddr(
95
        template(present) NameAddr mw_NameAddr(
96
            template charstring p_displayName,
96
            template charstring p_displayName,
97
            template(present) SipUrl p_addrSpec := ?
97
            template(present) SipUrl p_addrSpec := ?
98
        ) := {
98
        ) := {
99
            displayName := p_displayName,
99
            displayName := p_displayName,
100
            addrSpec := p_addrSpec
100
            addrSpec := p_addrSpec
101
        }
101
        }
102
102
103
        template(present) CommaParam_List mw_digestResponse(
103
        template(present) CommaParam_List mw_digestResponse(
104
            template(present) GenericParam p_genericParam := ?
104
            template(present) GenericParam p_genericParam := ?
105
        ) := superset(p_genericParam);
105
        ) := superset(p_genericParam);
106
       
106
       
107
        //*     c_Integrity_protected_yes
107
        //*     c_Integrity_protected_yes
108
        template(value) SemicolonParam_List m_cpc := {
108
        template(value) SemicolonParam_List m_cpc := {
109
            {
109
            {
110
                "cpc",
110
                "cpc",
111
                PX_SIP_ISUP_CPC_VALUE
111
                PX_SIP_ISUP_CPC_VALUE
112
            }
112
            }
113
        }
113
        }
114
114
115
        template(value) SemicolonParam_List m_ReasonParams(
115
        template(value) SemicolonParam_List m_ReasonParams(
116
            template(omit) charstring p_cause := omit,
116
            template(omit) charstring p_cause := omit,
117
            template(value) charstring p_text
117
            template(value) charstring p_text
118
        ) := {
118
        ) := {
119
            m_Cause(p_cause), m_Text(p_text)
119
            m_Cause(p_cause), m_Text(p_text)
120
        }
120
        }
121
121
122
        template(present) SemicolonParam_List mw_ReasonParams(
122
        template(present) SemicolonParam_List mw_ReasonParams(
123
            template charstring p_cause,
123
            template charstring p_cause,
124
            template charstring p_text
124
            template charstring p_text
125
        ) := {
125
        ) := {
126
            mw_Cause_base(p_cause), mw_Text(p_text)
126
            mw_Cause_base(p_cause), mw_Text(p_text)
127
        }
127
        }
128
128
129
        template(value) ReasonValue m_ReasonValue_Base := {
129
        template(value) ReasonValue m_ReasonValue_Base := {
130
            token := "",
130
            token := "",
131
            reasonParams := omit
131
            reasonParams := omit
132
        }
132
        }
133
133
134
        template(present) ReasonValue mw_ReasonValue_Base := {
134
        template(present) ReasonValue mw_ReasonValue_Base := {
135
            token := ?,
135
            token := ?,
136
            reasonParams := *
136
            reasonParams := *
137
        }
137
        }
138
138
139
        template(value) ReasonValue m_ReasonValue_param(
139
        template(value) ReasonValue m_ReasonValue_param(
140
            template(value) charstring p_cause,
140
            template(value) charstring p_cause,
141
            template(value) charstring p_text
141
            template(value) charstring p_text
142
        ) modifies m_ReasonValue_Base := {
142
        ) modifies m_ReasonValue_Base := {
143
            reasonParams := m_ReasonParams(p_cause, p_text)
143
            reasonParams := m_ReasonParams(p_cause, p_text)
144
        }
144
        }
145
145
146
        template(present) ReasonValue mw_ReasonValue_param(
146
        template(present) ReasonValue mw_ReasonValue_param(
147
            template charstring p_cause,
147
            template charstring p_cause,
148
            template charstring p_text
148
            template charstring p_text
149
        ) modifies mw_ReasonValue_Base := {
149
        ) modifies mw_ReasonValue_Base := {
150
            reasonParams := mw_ReasonParams(p_cause, p_text)
150
            reasonParams := mw_ReasonParams(p_cause, p_text)
151
        }
151
        }
152
152
153
        template(value) ReasonValue m_ReasonValue(
153
        template(value) ReasonValue m_ReasonValue(
154
            template(value) charstring p_cause,
154
            template(value) charstring p_cause,
155
            template(value) charstring p_text
155
            template(value) charstring p_text
156
        ) modifies m_ReasonValue_param := {
156
        ) modifies m_ReasonValue_param := {
157
            token := "Q.850"
157
            token := "Q.850"
158
        }
158
        }
159
159
160
        template(present) ReasonValue mw_ReasonValue(
160
        template(present) ReasonValue mw_ReasonValue(
161
            template charstring p_cause,
161
            template charstring p_cause,
162
            template charstring p_text
162
            template charstring p_text
163
        ) modifies mw_ReasonValue_param := {
163
        ) modifies mw_ReasonValue_param := {
164
            token := "Q.850"
164
            token := "Q.850"
165
        }
165
        }
166
166
167
        template(value) ReasonValue m_ReasonValueSIP(
167
        template(value) ReasonValue m_ReasonValueSIP(
168
            template(value) charstring p_cause,
168
            template(value) charstring p_cause,
169
            template(value) charstring p_text
169
            template(value) charstring p_text
170
        ) modifies m_ReasonValue_param := {
170
        ) modifies m_ReasonValue_param := {
171
            token := "SIP"
171
            token := "SIP"
172
        }
172
        }
173
173
174
        template(present) ReasonValue mw_ReasonValueSIP(
174
        template(present) ReasonValue mw_ReasonValueSIP(
175
            template charstring p_cause,
175
            template charstring p_cause,
176
            template charstring p_text
176
            template charstring p_text
177
        ) modifies mw_ReasonValue_param := {
177
        ) modifies mw_ReasonValue_param := {
178
            token := "SIP"
178
            token := "SIP"
179
        }
179
        }
180
180
181
        template(present) RouteBody mw_routeBody(
181
        template(present) RouteBody mw_routeBody(
182
            template(present) SipUrl p_sipurl := ?
182
            template(present) SipUrl p_sipurl := ?
183
        ) := {
183
        ) := {
184
            nameAddr := mw_NameAddr(*, p_sipurl),
184
            nameAddr := mw_NameAddr(*, p_sipurl),
185
            rrParam := *
185
            rrParam := *
186
        }
186
        }
187
187
188
        template(value) SentProtocol m_SentProtocol(
188
        template(value) SentProtocol m_SentProtocol(
189
            template(value) charstring p_protocol
189
            template(value) charstring p_protocol
190
        ) := {
190
        ) := {
191
            protocolName := c_sipName,
191
            protocolName := c_sipName,
192
            protocolVersion := c_sipVersion,
192
            protocolVersion := c_sipVersion,
193
            transport := p_protocol
193
            transport := p_protocol
194
        }
194
        }
195
195
196
        template(value) SipUrl m_BasicSipUrl := {
196
        template(value) SipUrl m_BasicSipUrl := {
197
            scheme := (c_sipScheme),
197
            scheme := (c_sipScheme),
198
            components := {
198
            components := {
199
                sip := {
199
                sip := {
200
                    userInfo := {
200
                    userInfo := {
201
                        userOrTelephoneSubscriber := "",  //*     charstring
201
                        userOrTelephoneSubscriber := "",  //*     charstring
202
                        password :=
202
                        password :=
203
                            omit //*     optional charstring
203
                            omit //*     optional charstring
204
                    },
204
                    },
205
                    hostPort := {
205
                    hostPort := {
206
                        host := omit,  //*     hostname, IPv4 or IPv6 as a charstring
206
                        host := omit,  //*     hostname, IPv4 or IPv6 as a charstring
207
                        portField :=
207
                        portField :=
208
                            omit //*     p_userprofile.currPort - optional integer
208
                            omit //*     p_userprofile.currPort - optional integer
209
                    }
209
                    }
210
                }
210
                }
211
            },
211
            },
212
            urlParameters := omit,
212
            urlParameters := omit,
213
            headers := omit
213
            headers := omit
214
        }
214
        }
215
215
216
        template(value) SipUrl m_SipUrl_currDomain_Base(
216
        template(value) SipUrl m_SipUrl_currDomain_Base(
217
            template(value) SipUserProfile p_userprofile
217
            template(value) SipUserProfile p_userprofile
218
        ) modifies m_BasicSipUrl := {
218
        ) modifies m_BasicSipUrl := {
219
            components := {
219
            components := {
220
                sip := {
220
                sip := {
221
                    userInfo := {
221
                    userInfo := {
222
                        userOrTelephoneSubscriber := p_userprofile.publUsername
222
                        userOrTelephoneSubscriber := p_userprofile.publUsername
223
                    }
223
                    }
224
                }
224
                }
225
            }
225
            }
226
        }
226
        }
227
227
228
        template(value) SipUrl m_SipUrl_currDomain(
228
        template(value) SipUrl m_SipUrl_currDomain(
229
            template(value) SipUserProfile p_userprofile
229
            template(value) SipUserProfile p_userprofile
230
        ) modifies m_SipUrl_currDomain_Base := {
230
        ) modifies m_SipUrl_currDomain_Base := {
231
            components := {
231
            components := {
232
                sip := {
232
                sip := {
233
                    hostPort := {
233
                    hostPort := {
234
                        host :=
234
                        host :=
235
                            p_userprofile
235
                            p_userprofile
236
                            .homeDomain //*     hostname, IPv4 or IPv6 as a charstring
236
                            .homeDomain //*     hostname, IPv4 or IPv6 as a charstring
237
                    }
237
                    }
238
                }
238
                }
239
            }
239
            }
240
        }
240
        }
241
241
242
        template(value) SipUrl m_SipUrl_contactIpaddr(
242
        template(value) SipUrl m_SipUrl_contactIpaddr(
243
            template(value) SipUserProfile p_userprofile
243
            template(value) SipUserProfile p_userprofile
244
        ) modifies m_SipUrl_currDomain_Base := {
244
        ) modifies m_SipUrl_currDomain_Base := {
245
            components := {
245
            components := {
246
                sip := {
246
                sip := {
247
                    hostPort := {
247
                    hostPort := {
248
                        host := p_userprofile.contactIpaddr,  //*     hostname, IPv4 or IPv6 as a charstring
248
                        host := p_userprofile.contactIpaddr,  //*     hostname, IPv4 or IPv6 as a charstring
249
                        portField :=
249
                        portField :=
250
                            p_userprofile
250
                            p_userprofile
251
                            .contactPort //*     optional integer
251
                            .contactPort //*     optional integer
252
                    }
252
                    }
253
                }
253
                }
254
            }
254
            }
255
        }
255
        }
256
256
257
        template(value) SipUrl m_SipUrl_contactIpaddrAndCpc(
257
        template(value) SipUrl m_SipUrl_contactIpaddrAndCpc(
258
            template(value) SipUserProfile p_userprofile
258
            template(value) SipUserProfile p_userprofile
259
        ) modifies m_SipUrl_contactIpaddr := {
259
        ) modifies m_SipUrl_contactIpaddr := {
260
            components := {
260
            components := {
261
                sip := {
261
                sip := {
262
                    userInfo := {
262
                    userInfo := {
263
                        userOrTelephoneSubscriber :=
263
                        userOrTelephoneSubscriber :=
264
                            p_userprofile.publUsername & "; cpc=" &
264
                            p_userprofile.publUsername & "; cpc=" &
265
                            PX_SIP_ISUP_CPC_VALUE //*     charstring
265
                            PX_SIP_ISUP_CPC_VALUE //*     charstring
266
                    }
266
                    }
267
                }
267
                }
268
            }
268
            }
269
        }
269
        }
270
270
271
        template(value) SipUrl m_SipUrl_currIpaddr(
271
        template(value) SipUrl m_SipUrl_currIpaddr(
272
            template(value) SipUserProfile p_userprofile
272
            template(value) SipUserProfile p_userprofile
273
        ) modifies m_SipUrl_currDomain_Base := {
273
        ) modifies m_SipUrl_currDomain_Base := {
274
            components := {
274
            components := {
275
                sip := {
275
                sip := {
276
                    hostPort := {
276
                    hostPort := {
277
                        host := p_userprofile.currIpaddr,  //*     hostname, IPv4 or IPv6 as a charstring
277
                        host := p_userprofile.currIpaddr,  //*     hostname, IPv4 or IPv6 as a charstring
278
                        portField :=
278
                        portField :=
279
                            p_userprofile
279
                            p_userprofile
280
                            .currPort //*     optional integer
280
                            .currPort //*     optional integer
281
                    }
281
                    }
282
                }
282
                }
283
            }
283
            }
284
        }
284
        }
285
285
286
        template(value) SipUrl m_SipUrl_Anonymous modifies m_BasicSipUrl := {
286
        template(value) SipUrl m_SipUrl_Anonymous modifies m_BasicSipUrl := {
287
            components := {
287
            components := {
288
                sip := {
288
                sip := {
289
                    userInfo := {
289
                    userInfo := {
290
                        userOrTelephoneSubscriber :=
290
                        userOrTelephoneSubscriber :=
291
                            "Anonymous" //*     charstring
291
                            "Anonymous" //*     charstring
292
                    },
292
                    },
293
                    hostPort := {
293
                    hostPort := {
294
                        host :=
294
                        host :=
295
                            "Anonymous.invalid" //*     hostname, IPv4 or IPv6 as a charstring
295
                            "Anonymous.invalid" //*     hostname, IPv4 or IPv6 as a charstring
296
                    }
296
                    }
297
                }
297
                }
298
            }
298
            }
299
        }
299
        }
300
300
301
        // TODO: this temlate is possibly incorrectly defined, or "p_urlParameters" parameter name is incorrect, since it is assigned to "headers"
301
        // TODO: this temlate is possibly incorrectly defined, or "p_urlParameters" parameter name is incorrect, since it is assigned to "headers"
302
        template(value) SipUrl m_SipUrl_NumberHostHeader(
302
        template(value) SipUrl m_SipUrl_NumberHostHeader(
303
            template(value) charstring p_number,
303
            template(value) charstring p_number,
304
            template(value) charstring p_host,
304
            template(value) charstring p_host,
305
            template(omit) AmpersandParam_List p_urlParameters := omit
305
            template(omit) AmpersandParam_List p_urlParameters := omit
306
        ) modifies m_BasicSipUrl := {
306
        ) modifies m_BasicSipUrl := {
307
            components := {
307
            components := {
308
                sip := {
308
                sip := {
309
                    userInfo := {userOrTelephoneSubscriber := p_number},
309
                    userInfo := {userOrTelephoneSubscriber := p_number},
310
                    hostPort := {host := p_host}
310
                    hostPort := {host := p_host}
311
                }
311
                }
312
            },
312
            },
313
            urlParameters := p_urlParameters
313
            urlParameters := p_urlParameters
314
        }
314
        }
315
315
316
        template(value) SipUrl m_SipUrl_NumberHostParam(
316
        template(value) SipUrl m_SipUrl_NumberHostParam(
317
            template(value) charstring p_number,
317
            template(value) charstring p_number,
318
            template(value) charstring p_host,
318
            template(value) charstring p_host,
319
            template(omit) AmpersandParam_List p_urlParameters := omit
319
            template(omit) AmpersandParam_List p_urlParameters := omit
320
        ) modifies m_SipUrl_NumberHostHeader := {
320
        ) modifies m_SipUrl_NumberHostHeader := {
321
            components := {sip := {hostPort := {portField := c_defaultSipPort}}}
321
            components := {sip := {hostPort := {portField := c_defaultSipPort}}}
322
        }
322
        }
323
323
324
        template(value) SipUrl m_SipUrl_NumberHostParam_woPort(
324
        template(value) SipUrl m_SipUrl_NumberHostParam_woPort(
325
            template(value) charstring p_number,
325
            template(value) charstring p_number,
326
            template(value) charstring p_host,
326
            template(value) charstring p_host,
327
            template(omit) AmpersandParam_List p_urlParameters := omit
327
            template(omit) AmpersandParam_List p_urlParameters := omit
328
        ) modifies m_SipUrl_NumberHostParam := {
328
        ) modifies m_SipUrl_NumberHostParam := {
329
            components := {sip := {hostPort := {portField := omit}}}
329
            components := {sip := {hostPort := {portField := omit}}}
330
        }
330
        }
331
331
332
        template(present) SipUrl m_BasicTelUrl := {
332
        template(present) SipUrl m_BasicTelUrl := {
333
            scheme := (c_telScheme),
333
            scheme := (c_telScheme),
334
            components := {tel := {subscriber := ""}},
334
            components := {tel := {subscriber := ""}},
335
            urlParameters := omit,
335
            urlParameters := omit,
336
            headers := omit
336
            headers := omit
337
        }
337
        }
338
338
339
        template(value) SipUrl m_TelUrl_publUser(
339
        template(value) SipUrl m_TelUrl_publUser(
340
            template(value) SipUserProfile p_userprofile
340
            template(value) SipUserProfile p_userprofile
341
        ) modifies m_BasicTelUrl := {
341
        ) modifies m_BasicTelUrl := {
342
            components := {
342
            components := {
343
                tel := {
343
                tel := {
344
                    subscriber :=
344
                    subscriber :=
345
                        p_userprofile
345
                        p_userprofile
346
                        .publUsername //*     charstring
346
                        .publUsername //*     charstring
347
                }
347
                }
348
            }
348
            }
349
        }
349
        }
350
350
351
        template(present) SipUrl mw_TelUrl := {
351
        template(present) SipUrl mw_TelUrl := {
352
            scheme := c_telScheme,
352
            scheme := c_telScheme,
353
            components := {tel := {subscriber := ?}},
353
            components := {tel := {subscriber := ?}},
354
            urlParameters := *,
354
            urlParameters := *,
355
            headers := *
355
            headers := *
356
        }
356
        }
357
357
358
        template(present) SipUrl mw_SipUrl := {
358
        template(present) SipUrl mw_SipUrl := {
359
            scheme := c_sipScheme,
359
            scheme := c_sipScheme,
360
            components := {
360
            components := {
361
                sip := {
361
                sip := {
362
                    userInfo := {
362
                    userInfo := {
363
                        userOrTelephoneSubscriber := ?,
363
                        userOrTelephoneSubscriber := ?,
364
                        password := *
364
                        password := *
365
                    },
365
                    },
366
                    hostPort := {
366
                    hostPort := {
367
                        host := *,
367
                        host := *,
368
                        portField := *
368
                        portField := *
369
                    }
369
                    }
370
                }
370
                }
371
            },
371
            },
372
            urlParameters := *,
372
            urlParameters := *,
373
            headers := *
373
            headers := *
374
        }
374
        }
375
375
376
        template(present) SipUrl mw_TelSip_unavailableInvalidUri := (mw_TelSip_unavailableInvalidUri1, mw_TelSip_unavailableInvalidUri2);
376
        template(present) SipUrl mw_TelSip_unavailableInvalidUri := (mw_TelSip_unavailableInvalidUri1, mw_TelSip_unavailableInvalidUri2);
377
377
378
        template(present) SipUrl mw_TelSip_unavailableInvalidUri1 modifies mw_SipUrl := {
378
        template(present) SipUrl mw_TelSip_unavailableInvalidUri1 modifies mw_SipUrl := {
379
            components := {
379
            components := {
380
                sip := {
380
                sip := {
381
                    userInfo := {
381
                    userInfo := {
382
                        userOrTelephoneSubscriber := "unavailable",
382
                        userOrTelephoneSubscriber := "unavailable",
383
                        password :=
383
                        password :=
384
                            omit // TODO STF471: shall be omit or *. If *, remove them die to modifies mw_BasicSipUrl
384
                            omit // TODO STF471: shall be omit or *. If *, remove them die to modifies mw_BasicSipUrl
385
                    },
385
                    },
386
                    hostPort := {
386
                    hostPort := {
387
                        host := "anonymous.invalid",
387
                        host := "anonymous.invalid",
388
                        portField := c_defaultSipPort
388
                        portField := c_defaultSipPort
389
                    }
389
                    }
390
                }
390
                }
391
            },
391
            },
392
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
392
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
393
            headers :=
393
            headers :=
394
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
394
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
395
        }
395
        }
396
        template(present) SipUrl mw_TelSip_unavailableInvalidUri2 modifies mw_TelUrl := {
396
        template(present) SipUrl mw_TelSip_unavailableInvalidUri2 modifies mw_TelUrl := {
397
            components := {tel := {subscriber := "unavailable"}},
397
            components := {tel := {subscriber := "unavailable"}},
398
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
398
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
399
            headers :=
399
            headers :=
400
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
400
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
401
        }
401
        }
402
402
403
        template(present) SipUrl mw_TelSip_unavailableUri(
403
        template(present) SipUrl mw_TelSip_unavailableUri(
404
            template(value) charstring p_host
404
            template(value) charstring p_host
405
        ) := (mw_TelSip_unavailableUri1(p_host), mw_TelSip_unavailableUri2(p_host));
405
        ) := (mw_TelSip_unavailableUri1(p_host), mw_TelSip_unavailableUri2(p_host));
406
406
407
        template(present) SipUrl mw_TelSip_unavailableUri1(
407
        template(present) SipUrl mw_TelSip_unavailableUri1(
408
            template(value) charstring p_host
408
            template(value) charstring p_host
409
        ) modifies mw_TelUrl := {
409
        ) modifies mw_TelUrl := {
410
            components := {tel := {subscriber := "unavailable"}},
410
            components := {tel := {subscriber := "unavailable"}},
411
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
411
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
412
            headers :=
412
            headers :=
413
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
413
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
414
        }
414
        }
415
415
416
        template(present) SipUrl mw_TelSip_unavailableUri2(
416
        template(present) SipUrl mw_TelSip_unavailableUri2(
417
            template(value) charstring p_host
417
            template(value) charstring p_host
418
        ) modifies mw_SipUrl := {
418
        ) modifies mw_SipUrl := {
419
            components := {
419
            components := {
420
                sip := {
420
                sip := {
421
                    userInfo := {
421
                    userInfo := {
422
                        userOrTelephoneSubscriber := "unavailable",
422
                        userOrTelephoneSubscriber := "unavailable",
423
                        password :=
423
                        password :=
424
                            omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
424
                            omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
425
                    },
425
                    },
426
                    hostPort := {
426
                    hostPort := {
427
                        host := p_host,
427
                        host := p_host,
428
                        portField := c_defaultSipPort
428
                        portField := c_defaultSipPort
429
                    }
429
                    }
430
                }
430
                }
431
            },
431
            },
432
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
432
            urlParameters := omit,  // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
433
            headers :=
433
            headers :=
434
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
434
                omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
435
        }
435
        }
436
436
437
        template(present) SipUrl mw_SipUrl_Number(
437
        template(present) SipUrl mw_SipUrl_Number(
438
            template(present) charstring p_number := ?
438
            template(present) charstring p_number := ?
439
        ) modifies mw_SipUrl := {
439
        ) modifies mw_SipUrl := {
440
            components := {
440
            components := {
441
                sip := {
441
                sip := {
442
                    userInfo := {userOrTelephoneSubscriber := p_number},
442
                    userInfo := {userOrTelephoneSubscriber := p_number},
443
                    hostPort := ?
443
                    hostPort := ?
444
                }
444
                }
445
            }
445
            }
446
        }
446
        }
447
447
448
        template(present) SipUrl mw_TelSipUrl_Number(
448
        template(present) SipUrl mw_TelSipUrl_Number(
449
            template(present) charstring p_number := ?
449
            template(present) charstring p_number := ?
450
        ) := (mw_SipUrl_Number(p_number), mw_TelSipUrl_Number2(p_number));
450
        ) := (mw_SipUrl_Number(p_number), mw_TelSipUrl_Number2(p_number));
451
451
452
        template(present) SipUrl mw_TelSipUrl_Number1(
452
        template(present) SipUrl mw_TelSipUrl_Number1(
453
            template(present) charstring p_number := ?
453
            template(present) charstring p_number := ?
454
        ) := mw_SipUrl_Number(p_number);
454
        ) := mw_SipUrl_Number(p_number);
455
455
456
        template(present) SipUrl mw_TelSipUrl_Number2(
456
        template(present) SipUrl mw_TelSipUrl_Number2(
457
            template(present) charstring p_number := ?
457
            template(present) charstring p_number := ?
458
        ) modifies mw_TelUrl := {
458
        ) modifies mw_TelUrl := {
459
            components := {
459
            components := {
460
                tel := {
460
                tel := {
461
                    subscriber := p_number
461
                    subscriber := p_number
462
                }
462
                }
463
            }
463
            }
464
        }
464
        }
465
465
466
        template(present) SipUrl mw_SipUrl_Host(
466
        template(present) SipUrl mw_SipUrl_Host(
467
            template charstring p_host
467
            template charstring p_host
468
        ) modifies mw_SipUrl := {
468
        ) modifies mw_SipUrl := {
469
            components := {
469
            components := {
470
                sip := {
470
                sip := {
471
                    userInfo := *,
471
                    userInfo := *,
472
                    hostPort := {host := p_host}
472
                    hostPort := {host := p_host}
473
                }
473
                }
474
            }
474
            }
475
        }
475
        }
476
476
477
        template(present) SipUrl mw_SipUrl_User_Host(
477
        template(present) SipUrl mw_SipUrl_User_Host(
478
            template(present) charstring p_user := ?,
478
            template(present) charstring p_user := ?,
479
            template charstring p_host
479
            template charstring p_host
480
        ) modifies mw_SipUrl := {
480
        ) modifies mw_SipUrl := {
481
            components := {
481
            components := {
482
                sip := {
482
                sip := {
483
                    userInfo := {userOrTelephoneSubscriber := p_user},
483
                    userInfo := {userOrTelephoneSubscriber := p_user},
484
                    hostPort := {
484
                    hostPort := {
485
                        host :=
485
                        host :=
486
                            p_host //*     hostname, IPv4 or IPv6 as a charstring
486
                            p_host //*     hostname, IPv4 or IPv6 as a charstring
487
                    }
487
                    }
488
                }
488
                }
489
            },
489
            },
490
            urlParameters := {m_UserPhone}
490
            urlParameters := {m_UserPhone}
491
        }
491
        }
492
492
493
        template(present) SipUrl mw_SipUrl_Anonymous modifies mw_SipUrl := {
493
        template(present) SipUrl mw_SipUrl_Anonymous modifies mw_SipUrl := {
494
            components := {
494
            components := {
495
                sip := {
495
                sip := {
496
                    userInfo := {
496
                    userInfo := {
497
                        userOrTelephoneSubscriber := pattern "[a,A][n,N][o,O][n,N][y,Y][m,M][o,O][u,U][s,s]",  //*     charstring
497
                        userOrTelephoneSubscriber := pattern "[a,A][n,N][o,O][n,N][y,Y][m,M][o,O][u,U][s,s]",  //*     charstring
498
                        password :=
498
                        password :=
499
                            omit // TODO STF471: shall be omit or *. If *, remove them die to modifies mw_BasicSipUrl
499
                            omit // TODO STF471: shall be omit or *. If *, remove them die to modifies mw_BasicSipUrl
500
                    },
500
                    },
501
                    hostPort := {
501
                    hostPort := {
502
                        host :=
502
                        host :=
503
                            pattern
503
                            pattern
504
                                "[a,A]nonymous.invalid" //*     hostname, IPv4 or IPv6 as a charstring
504
                                "[a,A]nonymous.invalid" //*     hostname, IPv4 or IPv6 as a charstring
505
                    }
505
                    }
506
                }
506
                }
507
            }
507
            }
508
        }
508
        }
509
509
510
        template(present) SipUrl mw_SipUrl_urlParam(
510
        template(present) SipUrl mw_SipUrl_urlParam(
511
            template SemicolonParam_List p_urlParameters
511
            template SemicolonParam_List p_urlParameters
512
        ) modifies mw_SipUrl := {
512
        ) modifies mw_SipUrl := {
513
            urlParameters := p_urlParameters
513
            urlParameters := p_urlParameters
514
        }
514
        }
515
515
516
        template(present) ContactAddress mw_ContactAddress := {
516
        template(present) ContactAddress mw_ContactAddress := {
517
            addressField := ?,
517
            addressField := ?,
518
            contactParams := *
518
            contactParams := *
519
        }
519
        }
520
520
521
        template(present) HostPort mw_hostPort(
521
        template(present) HostPort mw_hostPort(
522
            template charstring p_host,
522
            template charstring p_host,
523
            template integer p_portField
523
            template integer p_portField
524
        ) := {
524
        ) := {
525
            host := p_host,
525
            host := p_host,
526
            portField := p_portField
526
            portField := p_portField
527
        }
527
        }
528
528
529
        template(present) StatusLine mw_statusLine_any := {
529
        template(present) StatusLine mw_statusLine_any := {
530
            sipVersion := c_sipNameVersion,
530
            sipVersion := c_sipNameVersion,
531
            statusCode := ?,
531
            statusCode := ?,
532
            reasonPhrase := ?
532
            reasonPhrase := ?
533
        }
533
        }
534
534
535
        template(present) StatusLine mw_statusLine(
535
        template(present) StatusLine mw_statusLine(
536
            in template(present) integer p_statusCode := ?,
536
            in template(present) integer p_statusCode := ?,
537
            in template(present) charstring p_reasonPhrase := ?
537
            in template(present) charstring p_reasonPhrase := ?
538
        ) modifies mw_statusLine_any := {
538
        ) modifies mw_statusLine_any := {
539
            statusCode := p_statusCode,
539
            statusCode := p_statusCode,
540
            reasonPhrase := p_reasonPhrase
540
            reasonPhrase := p_reasonPhrase
541
        }
541
        }
542
542
543
        template(present) StatusLine mw_statusLine1xx modifies mw_statusLine_any := {statusCode := (100 .. 199)}
543
        template(present) StatusLine mw_statusLine1xx modifies mw_statusLine_any := {statusCode := (100 .. 199)}
544
       
544
       
545
        template(present) StatusLine mw_statusLine2xx modifies mw_statusLine_any := {statusCode := (200 .. 299)}
545
        template(present) StatusLine mw_statusLine2xx modifies mw_statusLine_any := {statusCode := (200 .. 299)}
546
       
546
       
547
        template(present) StatusLine mw_statusLine3xx modifies mw_statusLine_any := {statusCode := (300 .. 399)}
547
        template(present) StatusLine mw_statusLine3xx modifies mw_statusLine_any := {statusCode := (300 .. 399)}
548
548
549
        template(present) StatusLine mw_statusLine4xx modifies mw_statusLine_any := {statusCode := (400 .. 499)}
549
        template(present) StatusLine mw_statusLine4xx modifies mw_statusLine_any := {statusCode := (400 .. 499)}
550
550
551
        template(present) StatusLine mw_statusLine5xx modifies mw_statusLine_any := {statusCode := (500 .. 599)}
551
        template(present) StatusLine mw_statusLine5xx modifies mw_statusLine_any := {statusCode := (500 .. 599)}
552
       
552
       
553
        template(present) StatusLine mw_statusLine6xx modifies mw_statusLine_any := {statusCode := (600 .. 699)}
553
        template(present) StatusLine mw_statusLine6xx modifies mw_statusLine_any := {statusCode := (600 .. 699)}
554
554
555
        template(present) StatusLine mw_statusLineFinal modifies mw_statusLine_any := {statusCode := (200 .. 699)}
555
        template(present) StatusLine mw_statusLineFinal modifies mw_statusLine_any := {statusCode := (200 .. 699)}
556
556
557
        template(present) NameAddr mw_NameAddr_DispName_User_Host(
557
        template(present) NameAddr mw_NameAddr_DispName_User_Host(
558
            template charstring p_dn,
558
            template charstring p_dn,
559
            template(present) charstring p_user := ?,
559
            template(present) charstring p_user := ?,
560
            template charstring p_host
560
            template charstring p_host
561
        ) := {
561
        ) := {
562
            displayName := p_dn,
562
            displayName := p_dn,
563
            addrSpec := {
563
            addrSpec := {
564
                scheme := c_sipScheme,  //*     contains "sip"
564
                scheme := c_sipScheme,  //*     contains "sip"
565
                components := {
565
                components := {
566
                    sip := {
566
                    sip := {
567
                        userInfo := {
567
                        userInfo := {
568
                            userOrTelephoneSubscriber := p_user,
568
                            userOrTelephoneSubscriber := p_user,
569
                            password := *
569
                            password := *
570
                        },
570
                        },
571
                        hostPort := {
571
                        hostPort := {
572
                            host := p_host,  //*     hostname, IPv4 or IPv6 as a charstring
572
                            host := p_host,  //*     hostname, IPv4 or IPv6 as a charstring
573
                            portField :=
573
                            portField :=
574
                                * //*     optional integer
574
                                * //*     optional integer
575
                        }
575
                        }
576
                    }
576
                    }
577
                },
577
                },
578
                urlParameters := {m_UserPhone},
578
                urlParameters := {m_UserPhone},
579
                headers := *
579
                headers := *
580
            }
580
            }
581
        }
581
        }
582
582
583
        template(present) Addr_Union mw_AddrUnion_Nameaddr(
583
        template(present) Addr_Union mw_AddrUnion_Nameaddr(
584
            template charstring p_dn,
584
            template charstring p_dn,
585
            template(present) charstring p_user := ?,
585
            template(present) charstring p_user := ?,
586
            template charstring p_host
586
            template charstring p_host
587
        ) := {
587
        ) := {
588
            nameAddr := mw_NameAddr_DispName_User_Host(p_dn, p_user, p_host)
588
            nameAddr := mw_NameAddr_DispName_User_Host(p_dn, p_user, p_host)
589
        }
589
        }
590
590
591
        template(present) Addr_Union mw_AddrUnion_SipUrl(
591
        template(present) Addr_Union mw_AddrUnion_SipUrl(
592
            template(present) charstring p_user := ?,
592
            template(present) charstring p_user := ?,
593
            template charstring p_host
593
            template charstring p_host
594
        ) := {
594
        ) := {
595
            addrSpecUnion := mw_SipUrl_User_Host(p_user, p_host)
595
            addrSpecUnion := mw_SipUrl_User_Host(p_user, p_host)
596
        }
596
        }
597
597
598
598
599
    } //*     end group Subfields
599
    } //*     end group Subfields
600
600
601
    group HeaderFieldTemplates {
601
    group HeaderFieldTemplates {
602
        template(value) LibSip_SIPTypesAndValues.Allow m_Allow(
602
        template(value) LibSip_SIPTypesAndValues.Allow m_Allow(
603
            template(value) Method_List p_methods
603
            template(value) Method_List p_methods
604
        ) := {
604
        ) := {
605
            fieldName := ALLOW_E,
605
            fieldName := ALLOW_E,
606
            methods := p_methods
606
            methods := p_methods
607
        }
607
        }
608
608
609
        template(present) LibSip_SIPTypesAndValues.Allow mw_Allow(
609
        template(present) LibSip_SIPTypesAndValues.Allow mw_Allow(
610
            template(value) charstring p_method
610
            template(value) charstring p_method
611
        ) := {
611
        ) := {
612
            fieldName := ALLOW_E,
612
            fieldName := ALLOW_E,
613
            methods := superset(p_method)
613
            methods := superset(p_method)
614
        }
614
        }
615
615
616
        template(value) GenericParam m_Cause(
616
        template(value) GenericParam m_Cause(
617
            template(omit) charstring p_cause := omit
617
            template(omit) charstring p_cause := omit
618
        ) := {
618
        ) := {
619
            id := "cause",
619
            id := "cause",
620
            paramValue := p_cause
620
            paramValue := p_cause
621
        }
621
        }
622
622
623
        template(present) GenericParam mw_Cause_base(
623
        template(present) GenericParam mw_Cause_base(
624
            template charstring p_cause
624
            template charstring p_cause
625
        ) := {
625
        ) := {
626
            id := "cause",
626
            id := "cause",
627
            paramValue := p_cause
627
            paramValue := p_cause
628
        }
628
        }
629
629
630
        template(present) GenericParam mw_Cause(
630
        template(present) GenericParam mw_Cause(
631
            template(value) charstring p_cause
631
            template(value) charstring p_cause
632
        ) := {
632
        ) := {
633
            // TODO - Expression does not work for all TTCN tools
633
            // TODO - Expression does not work for all TTCN tools
634
            id := ?,
634
            id := ?,
635
            paramValue := pattern "*{p_cause}*"
635
            paramValue := pattern "*{p_cause}*"
636
        }
636
        }
637
637
638
        template(value) Authorization m_Authorization(
638
        template(value) Authorization m_Authorization(
639
            template(value) Credentials p_credentials
639
            template(value) Credentials p_credentials
640
        ) := {
640
        ) := {
641
            fieldName := AUTHORIZATION_E,
641
            fieldName := AUTHORIZATION_E,
642
            body := {p_credentials}
642
            body := {p_credentials}
643
        }
643
        }
644
644
645
        // TODO: CR
645
        // TODO: CR
646
        template(value) Authorization m_Authorization_digest(
646
        template(value) Authorization m_Authorization_digest(
647
            template(value) CommaParam_List p_commaParam_List
647
            template(value) CommaParam_List p_commaParam_List
648
        ) := {
648
        ) := {
649
            fieldName := AUTHORIZATION_E,
649
            fieldName := AUTHORIZATION_E,
650
            body := {{digestResponse := p_commaParam_List}}
650
            body := {{digestResponse := p_commaParam_List}}
651
        }
651
        }
652
652
653
        template(present) Authorization mw_Authorization_digest(
653
        template(present) Authorization mw_Authorization_digest(
654
            template(present) CommaParam_List p_commaParam_List := ?
654
            template(present) CommaParam_List p_commaParam_List := ?
655
        ) := {
655
        ) := {
656
            fieldName := AUTHORIZATION_E,
656
            fieldName := AUTHORIZATION_E,
657
            body := {{digestResponse := p_commaParam_List}}
657
            body := {{digestResponse := p_commaParam_List}}
658
        }
658
        }
659
659
660
        template(value) Authorization m_add_Authorization_digest(
660
        template(value) Authorization m_add_Authorization_digest(
661
            template(value) Authorization p_auth,
661
            template(value) Authorization p_auth,
662
            template(value) CommaParam_List p_commaParam_List
662
            template(value) CommaParam_List p_commaParam_List
663
        ) := {
663
        ) := {
664
            fieldName := AUTHORIZATION_E,
664
            fieldName := AUTHORIZATION_E,
665
            body := {{digestResponse := f_merge_CommaParam_List(p_auth.body[0].digestResponse, p_commaParam_List)}}
665
            body := {{digestResponse := f_merge_CommaParam_List(p_auth.body[0].digestResponse, p_commaParam_List)}}
666
        }
666
        }
667
        // TODO: STF471 this template contains matching symbol, but name suggests it is send template
667
        // TODO: STF471 this template contains matching symbol, but name suggests it is send template
668
        template(present) Authorization m_Authorization_other := {
668
        template(present) Authorization m_Authorization_other := {
669
            fieldName := AUTHORIZATION_E,
669
            fieldName := AUTHORIZATION_E,
670
            body := {{otherResponse := ?}}
670
            body := {{otherResponse := ?}}
671
        }
671
        }
672
672
673
        template(present) Authorization mw_Authorization_other := {
673
        template(present) Authorization mw_Authorization_other := {
674
            fieldName := AUTHORIZATION_E,
674
            fieldName := AUTHORIZATION_E,
675
            body := {{otherResponse := ?}}
675
            body := {{otherResponse := ?}}
676
        }
676
        }
677
677
678
        template(value) Contact m_Contact(
678
        template(value) Contact m_Contact(
679
            template(value) SipUrl p_sipUrl
679
            template(value) SipUrl p_sipUrl
680
        ) := {
680
        ) := {
681
            fieldName := CONTACT_E,
681
            fieldName := CONTACT_E,
682
            contactBody := {
682
            contactBody := {
683
                contactAddresses := {
683
                contactAddresses := {
684
                    {
684
                    {
685
                        addressField := {addrSpecUnion := p_sipUrl},
685
                        addressField := {addrSpecUnion := p_sipUrl},
686
                        contactParams := omit
686
                        contactParams := omit
687
                    }
687
                    }
688
                }
688
                }
689
            } //*     end contactBody
689
            } //*     end contactBody
690
        } //*     end m_Contact
690
        } //*     end m_Contact
691
691
692
        template(value) Contact m_Contact_profile(
692
        template(value) Contact m_Contact_profile(
693
            template(value) SipUserProfile p_userprofile
693
            template(value) SipUserProfile p_userprofile
694
        ) := {
694
        ) := {
695
            fieldName := CONTACT_E,
695
            fieldName := CONTACT_E,
696
            contactBody := {
696
            contactBody := {
697
                contactAddresses := {
697
                contactAddresses := {
698
                    {
698
                    {
699
                        addressField := {addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
699
                        addressField := {addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
700
                        contactParams := omit
700
                        contactParams := omit
701
                    }
701
                    }
702
                }
702
                }
703
            } //*     end
703
            } //*     end
704
              //*     contactBody
704
              //*     contactBody
705
        } //*     end m_Contact
705
        } //*     end m_Contact
706
706
707
707
708
        template(value) Contact m_Contact_profile_expires(
708
        template(value) Contact m_Contact_profile_expires(
709
            template(value) SipUserProfile p_userprofile,
709
            template(value) SipUserProfile p_userprofile,
710
            template(value) charstring p_expires
710
            template(value) charstring p_expires
711
        ) := {
711
        ) := {
712
            fieldName := CONTACT_E,
712
            fieldName := CONTACT_E,
713
            contactBody := {
713
            contactBody := {
714
                contactAddresses := {
714
                contactAddresses := {
715
                    {
715
                    {
716
                        addressField := {addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
716
                        addressField := {addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
717
                        contactParams := {
717
                        contactParams := {
718
                            {
718
                            {
719
                                "expires",
719
                                "expires",
720
                                p_expires
720
                                p_expires
721
                            }
721
                            }
722
                        }
722
                        }
723
                    }
723
                    }
724
                }
724
                }
725
            } //*     end contactBody
725
            } //*     end contactBody
726
        } //*     end m_Contact
726
        } //*     end m_Contact
727
727
728
        template(value) From m_From(
728
        template(value) From m_From(
729
            template(value) NameAddr p_nameAddr,
729
            template(value) NameAddr p_nameAddr,
730
            template(value) charstring p_tag_str
730
            template(value) charstring p_tag_str
731
        ) := {
731
        ) := {
732
            fieldName := FROM_E,
732
            fieldName := FROM_E,
733
            addressField := {nameAddr := p_nameAddr},  //*     end addressField
733
            addressField := {nameAddr := p_nameAddr},  //*     end addressField
734
            fromParams := {
734
            fromParams := {
735
                {
735
                {
736
                    id := c_tagId,
736
                    id := c_tagId,
737
                    paramValue := p_tag_str
737
                    paramValue := p_tag_str
738
                }
738
                }
739
            }
739
            }
740
        }
740
        }
741
741
742
        template(value) From m_From_Anonymous(
742
        template(value) From m_From_Anonymous(
743
            template(value) charstring p_tag_str
743
            template(value) charstring p_tag_str
744
        ) := {
744
        ) := {
745
            fieldName := FROM_E,
745
            fieldName := FROM_E,
746
            addressField := {
746
            addressField := {
747
                nameAddr :=
747
                nameAddr :=
748
                    m_NameAddr(
748
                    m_NameAddr(
749
                        "Anonymous",
749
                        "Anonymous",
750
                        //*     optional charstring
750
                        //*     optional charstring
751
                        m_SipUrl_Anonymous //*     SipUrl
751
                        m_SipUrl_Anonymous //*     SipUrl
752
                    )
752
                    )
753
            },  //*     end addressField
753
            },  //*     end addressField
754
            fromParams := {
754
            fromParams := {
755
                {
755
                {
756
                    id := c_tagId,
756
                    id := c_tagId,
757
                    paramValue := p_tag_str
757
                    paramValue := p_tag_str
758
                }
758
                }
759
            }
759
            }
760
        }
760
        }
761
761
762
        template(value) From m_From_SipUrl(
762
        template(value) From m_From_SipUrl(
763
            template(value) SipUrl p_sipUrl
763
            template(value) SipUrl p_sipUrl
764
        ) := {
764
        ) := {
765
            fieldName := FROM_E,
765
            fieldName := FROM_E,
766
            addressField := {
766
            addressField := {
767
                nameAddr :=
767
                nameAddr :=
768
                    m_NameAddr(
768
                    m_NameAddr(
769
                        omit,
769
                        omit,
770
                        //*     optional charstring
770
                        //*     optional charstring
771
                        p_sipUrl //*     SipUrl
771
                        p_sipUrl //*     SipUrl
772
                    )
772
                    )
773
            },  //*     end addressField
773
            },  //*     end addressField
774
            fromParams := omit
774
            fromParams := omit
775
        }
775
        }
776
776
777
        template(value) Event m_Event_base := {
777
        template(value) Event m_Event_base := {
778
            fieldName := EVENT_E,
778
            fieldName := EVENT_E,
779
            eventType := "",
779
            eventType := "",
780
            eventParams := omit
780
            eventParams := omit
781
        }
781
        }
782
782
783
        template(value) Event m_Event_refer modifies m_Event_base := {eventType := "refer"}
783
        template(value) Event m_Event_refer modifies m_Event_base := {eventType := "refer"}
784
784
785
        template(value) Event m_Event_conference modifies m_Event_base := {eventType := "conference"}
785
        template(value) Event m_Event_conference modifies m_Event_base := {eventType := "conference"}
786
786
787
        template(value) Event m_Event_presence modifies m_Event_base := {eventType := "presence"}
787
        template(value) Event m_Event_presence modifies m_Event_base := {eventType := "presence"}
788
788
789
        template(value) Event m_Event_reg modifies m_Event_base := {eventType := "reg"}
789
        template(value) Event m_Event_reg modifies m_Event_base := {eventType := "reg"}
790
790
791
        template(value) Event m_Event_cdiv modifies m_Event_base := {eventType := "comm-div-info"}
791
        template(value) Event m_Event_cdiv modifies m_Event_base := {eventType := "comm-div-info"}
792
792
793
        template(value) Event m_Event_mcid := m_Event_cdiv;
793
        template(value) Event m_Event_mcid := m_Event_cdiv;
794
794
795
        template(value) Expires m_Expires_base := {
795
        template(value) Expires m_Expires_base := {
796
            fieldName := EXPIRES_E,
796
            fieldName := EXPIRES_E,
797
            deltaSec := ""
797
            deltaSec := ""
798
        }
798
        }
799
799
800
        template(value) Expires m_Expires_600000 modifies m_Expires_base := {deltaSec := "600000"}
800
        template(value) Expires m_Expires_600000 modifies m_Expires_base := {deltaSec := "600000"}
801
801
802
        template(value) Expires m_Expires(
802
        template(value) Expires m_Expires(
803
            template(value) charstring p_deltaSec
803
            template(value) charstring p_deltaSec
804
        ) modifies m_Expires_base := {
804
        ) modifies m_Expires_base := {
805
            deltaSec := p_deltaSec
805
            deltaSec := p_deltaSec
806
        }
806
        }
807
807
808
        template(present) Expires mw_Expires(
808
        template(present) Expires mw_Expires(
809
            template(present) charstring p_deltaSec := ?
809
            template(present) charstring p_deltaSec := ?
810
        ) := {
810
        ) := {
811
            fieldName := EXPIRES_E,
811
            fieldName := EXPIRES_E,
812
            deltaSec := p_deltaSec
812
            deltaSec := p_deltaSec
813
        }
813
        }
814
814
815
        template(value) HistoryInfo m_HistoryInfo(
815
        template(value) HistoryInfo m_HistoryInfo(
816
            template(value) HistoryInfo_List p_HistoryInfo_List
816
            template(value) HistoryInfo_List p_HistoryInfo_List
817
        ) := {
817
        ) := {
818
            fieldName := HISTORY_INFO_E,
818
            fieldName := HISTORY_INFO_E,
819
            historyInfoList := p_HistoryInfo_List
819
            historyInfoList := p_HistoryInfo_List
820
        }
820
        }
821
821
822
        template(present) HistoryInfo mw_HistoryInfo(
822
        template(present) HistoryInfo mw_HistoryInfo(
823
            template(present) HistoryInfo_List p_HistoryInfo_List := ?
823
            template(present) HistoryInfo_List p_HistoryInfo_List := ?
824
        ) := {
824
        ) := {
825
            fieldName := HISTORY_INFO_E,
825
            fieldName := HISTORY_INFO_E,
826
            historyInfoList := p_HistoryInfo_List
826
            historyInfoList := p_HistoryInfo_List
827
        }
827
        }
828
828
829
        template(value) HistoryInfoEntry m_HistoryInfoEntry(
829
        template(value) HistoryInfoEntry m_HistoryInfoEntry(
830
            template(value) SipUrl p_Url,
830
            template(value) SipUrl p_Url,
831
            template(omit) IntegerList p_index := omit,
831
            template(omit) IntegerList p_index := omit,
832
            template(omit) SemicolonParam_List p_paramlist := omit
832
            template(omit) SemicolonParam_List p_paramlist := omit
833
        ) := {
833
        ) := {
834
            nameAddr := m_NameAddr(omit, p_Url),
834
            nameAddr := m_NameAddr(omit, p_Url),
835
            hiIndex := p_index,
835
            hiIndex := p_index,
836
            hiExtention := p_paramlist
836
            hiExtention := p_paramlist
837
        }
837
        }
838
838
839
        template(present) HistoryInfoEntry mw_HistoryInfoEntry(
839
        template(present) HistoryInfoEntry mw_HistoryInfoEntry(
840
            template(present) SipUrl p_Url := ?,
840
            template(present) SipUrl p_Url := ?,
841
            template IntegerList p_index,
841
            template IntegerList p_index,
842
            template SemicolonParam_List p_paramlist
842
            template SemicolonParam_List p_paramlist
843
        ) := {
843
        ) := {
844
            nameAddr := mw_NameAddr(*, p_Url),
844
            nameAddr := mw_NameAddr(*, p_Url),
845
            hiIndex := p_index,
845
            hiIndex := p_index,
846
            hiExtention := p_paramlist
846
            hiExtention := p_paramlist
847
        }
847
        }
848
848
849
        template(value) PAssertedID m_PAssertedID(
849
        template(value) PAssertedID m_PAssertedID(
850
            template(value) Addr_Union p_pAssertedIDValue
850
            template(value) Addr_Union p_pAssertedIDValue
851
        ) := {
851
        ) := {
852
            fieldName := P_ASSERTED_ID_E,
852
            fieldName := P_ASSERTED_ID_E,
853
            pAssertedIDValueList := {p_pAssertedIDValue}
853
            pAssertedIDValueList := {p_pAssertedIDValue}
854
        }
854
        }
855
855
856
        template(value) PAssertedID m_PAssertedID_2x(
856
        template(value) PAssertedID m_PAssertedID_2x(
857
            template(value) Addr_Union p_pAssertedIDValue,
857
            template(value) Addr_Union p_pAssertedIDValue,
858
            template(value) Addr_Union p_pAssertedIDValue2
858
            template(value) Addr_Union p_pAssertedIDValue2
859
        ) modifies m_PAssertedID := {
859
        ) modifies m_PAssertedID := {
860
            pAssertedIDValueList := {p_pAssertedIDValue, p_pAssertedIDValue2}
860
            pAssertedIDValueList := {p_pAssertedIDValue, p_pAssertedIDValue2}
861
        }
861
        }
862
862
863
        template(present) PAssertedID mw_PAssertedID(
863
        template(present) PAssertedID mw_PAssertedID(
864
            template(present) PAssertedIDValue p_pAssertedIDValue := ?
864
            template(present) PAssertedIDValue p_pAssertedIDValue := ?
865
        ) := {
865
        ) := {
866
            fieldName := P_ASSERTED_ID_E,
866
            fieldName := P_ASSERTED_ID_E,
867
            pAssertedIDValueList := {p_pAssertedIDValue}
867
            pAssertedIDValueList := {p_pAssertedIDValue}
868
        }
868
        }
869
869
870
        template(present) PAssertedIDValue mw_PAssertedIDValue(
870
        template(present) PAssertedIDValue mw_PAssertedIDValue(
871
            template(present) SipUrl p_SipUrl := ?
871
            template(present) SipUrl p_SipUrl := ?
872
        ) := {
872
        ) := {
873
            nameAddr := {
873
            nameAddr := {
874
                displayName := *,
874
                displayName := *,
875
                addrSpec := p_SipUrl
875
                addrSpec := p_SipUrl
876
            }
876
            }
877
        }
877
        }
878
878
879
        template(value) PPreferredID m_PPreferredID(
879
        template(value) PPreferredID m_PPreferredID(
880
            template(value) Addr_Union p_pPreferredIDValue
880
            template(value) Addr_Union p_pPreferredIDValue
881
        ) := {
881
        ) := {
882
            fieldName := P_PREFERRED_ID_E,
882
            fieldName := P_PREFERRED_ID_E,
883
            pPreferredIDValueList := {p_pPreferredIDValue}
883
            pPreferredIDValueList := {p_pPreferredIDValue}
884
        }
884
        }
885
885
886
        template(value) Privacy m_Privacy(
886
        template(value) Privacy m_Privacy(
887
            template(value) PrivacyValue p_privacy
887
            template(value) PrivacyValue p_privacy
888
        ) := {
888
        ) := {
889
            fieldName := PRIVACY_E,
889
            fieldName := PRIVACY_E,
890
            privValueList := {p_privacy}
890
            privValueList := {p_privacy}
891
        }
891
        }
892
892
893
        template(present) Privacy mw_Privacy_Base(
893
        template(present) Privacy mw_Privacy_Base(
894
            template(present) charstring p_value := ?
894
            template(present) charstring p_value := ?
895
        ) := {
895
        ) := {
896
            fieldName := PRIVACY_E,
896
            fieldName := PRIVACY_E,
897
            privValueList := {*, p_value, *}
897
            privValueList := {*, p_value, *}
898
        }
898
        }
899
899
900
        template(present) Privacy mw_Privacy_id := mw_Privacy_Base("id");
900
        template(present) Privacy mw_Privacy_id := mw_Privacy_Base("id");
901
901
902
        template(present) Privacy mw_Privacy_user := mw_Privacy_Base("user");
902
        template(present) Privacy mw_Privacy_user := mw_Privacy_Base("user");
903
903
904
        template(value) RAck m_RAck(
904
        template(value) RAck m_RAck(
905
            integer p_responseNum,
905
            integer p_responseNum,
906
            integer p_seqNumber,
906
            integer p_seqNumber,
907
            charstring p_method
907
            charstring p_method
908
        ) := {
908
        ) := {
909
            fieldName := RACK_E,
909
            fieldName := RACK_E,
910
            responseNum := p_responseNum,
910
            responseNum := p_responseNum,
911
            seqNumber := p_seqNumber,
911
            seqNumber := p_seqNumber,
912
            method := p_method
912
            method := p_method
913
        }
913
        }
914
914
915
        template(value) Reason m_Reason(
915
        template(value) Reason m_Reason(
916
            template(value) integer p_cause
916
            template(value) integer p_cause
917
        ) := {
917
        ) := {
918
            fieldName := REASON_E,
918
            fieldName := REASON_E,
919
            reasonValues := {m_ReasonValue(int2str(valueof(p_cause)), "dummy")}
919
            reasonValues := {m_ReasonValue(int2str(valueof(p_cause)), "dummy")}
920
        }
920
        }
921
921
922
        template(value) Reason m_Reason21 := {
922
        template(value) Reason m_Reason21 := {
923
            fieldName := REASON_E,
923
            fieldName := REASON_E,
924
            reasonValues := {m_ReasonValue(int2str(21), "call reject")}
924
            reasonValues := {m_ReasonValue(int2str(21), "call reject")}
925
        }
925
        }
926
926
927
        template(present) Reason mw_Reason_Base := {
927
        template(present) Reason mw_Reason_Base := {
928
            fieldName := REASON_E,
928
            fieldName := REASON_E,
929
            reasonValues := {}
929
            reasonValues := {}
930
        }
930
        }
931
931
932
        template(present) Reason mw_Reason(
932
        template(present) Reason mw_Reason(
933
            template(value) charstring p_cause
933
            template(value) charstring p_cause
934
        ) modifies mw_Reason_Base := {
934
        ) modifies mw_Reason_Base := {
935
            reasonValues := {mw_ReasonValue(p_cause, ?)}
935
            reasonValues := {mw_ReasonValue(p_cause, ?)}
936
        }
936
        }
937
937
938
        template(present) Reason mw_ReasonSIP(
938
        template(present) Reason mw_ReasonSIP(
939
            template(value) charstring p_cause
939
            template(value) charstring p_cause
940
        ) modifies mw_Reason_Base := {
940
        ) modifies mw_Reason_Base := {
941
            reasonValues := {mw_ReasonValueSIP(p_cause, ?)}
941
            reasonValues := {mw_ReasonValueSIP(p_cause, ?)}
942
        }
942
        }
943
943
944
        template(value) RecordRoute m_recordRoute_currIpAddr(
944
        template(value) RecordRoute m_recordRoute_currIpAddr(
945
            template(value) SipUserProfile p_userprofile
945
            template(value) SipUserProfile p_userprofile
946
        ) := {
946
        ) := {
947
            fieldName := RECORD_ROUTE_E,
947
            fieldName := RECORD_ROUTE_E,
948
            routeBody := {
948
            routeBody := {
949
                {
949
                {
950
                    nameAddr := {
950
                    nameAddr := {
951
                        displayName := omit,
951
                        displayName := omit,
952
                        addrSpec := {
952
                        addrSpec := {
953
                            scheme := c_sipScheme,  //*     contains "sip"
953
                            scheme := c_sipScheme,  //*     contains "sip"
954
                            components := {
954
                            components := {
955
                                sip := {
955
                                sip := {
956
                                    userInfo := omit,
956
                                    userInfo := omit,
957
                                    hostPort := {
957
                                    hostPort := {
958
                                        host := p_userprofile.currIpaddr,
958
                                        host := p_userprofile.currIpaddr,
959
                                        portField := p_userprofile.currPort
959
                                        portField := p_userprofile.currPort
960
                                    }
960
                                    }
961
                                }
961
                                }
962
                            },
962
                            },
963
                            urlParameters := omit,
963
                            urlParameters := omit,
964
                            headers := omit
964
                            headers := omit
965
                        }
965
                        }
966
                    },
966
                    },
967
                    rrParam := omit
967
                    rrParam := omit
968
                }
968
                }
969
            }
969
            }
970
        }
970
        }
971
971
972
        // TODO STF471 addition
972
        // TODO STF471 addition
973
        template(value) RecordRoute m_recordRoute_currIpAddr_params(
973
        template(value) RecordRoute m_recordRoute_currIpAddr_params(
974
            template(value) SipUserProfile p_userprofile,
974
            template(value) SipUserProfile p_userprofile,
975
            template(value) SemicolonParam_List p_urlParameters
975
            template(value) SemicolonParam_List p_urlParameters
976
        ) := {
976
        ) := {
977
            fieldName := RECORD_ROUTE_E,
977
            fieldName := RECORD_ROUTE_E,
978
            routeBody := {
978
            routeBody := {
979
                {
979
                {
980
                    nameAddr := {
980
                    nameAddr := {
981
                        displayName := omit,
981
                        displayName := omit,
982
                        addrSpec := {
982
                        addrSpec := {
983
                            scheme := c_sipScheme,  //*     contains "sip"
983
                            scheme := c_sipScheme,  //*     contains "sip"
984
                            components := {
984
                            components := {
985
                                sip := {
985
                                sip := {
986
                                    userInfo := omit,
986
                                    userInfo := omit,
987
                                    hostPort := {
987
                                    hostPort := {
988
                                        host := p_userprofile.currIpaddr,
988
                                        host := p_userprofile.currIpaddr,
989
                                        portField := p_userprofile.currPort
989
                                        portField := p_userprofile.currPort
990
                                    }
990
                                    }
991
                                }
991
                                }
992
                            },
992
                            },
993
                            urlParameters := p_urlParameters,
993
                            urlParameters := p_urlParameters,
994
                            headers := omit
994
                            headers := omit
995
                        }
995
                        }
996
                    },
996
                    },
997
                    rrParam := omit
997
                    rrParam := omit
998
                }
998
                }
999
            }
999
            }
1000
        }
1000
        }
1001
1001
1002
        template(value) RouteBody m_routeBody_currIpAddr(
1002
        template(value) RouteBody m_routeBody_currIpAddr(
1003
            template(value) SipUserProfile p_userprofile
1003
            template(value) SipUserProfile p_userprofile
1004
        ) := {
1004
        ) := {
1005
            nameAddr := {
1005
            nameAddr := {
1006
                displayName := omit,
1006
                displayName := omit,
1007
                addrSpec := {
1007
                addrSpec := {
1008
                    scheme := c_sipScheme,  //*     contains "sip"
1008
                    scheme := c_sipScheme,  //*     contains "sip"
1009
                    components := {
1009
                    components := {
1010
                        sip := {
1010
                        sip := {
1011
                            userInfo := omit,
1011
                            userInfo := omit,
1012
                            hostPort := {
1012
                            hostPort := {
1013
                                host := p_userprofile.homeDomain,
1013
                                host := p_userprofile.homeDomain,
1014
                                portField := p_userprofile.currPort
1014
                                portField := p_userprofile.currPort
1015
                            }
1015
                            }
1016
                        }
1016
                        }
1017
                    },
1017
                    },
1018
                    urlParameters := omit,
1018
                    urlParameters := omit,
1019
                    headers := omit
1019
                    headers := omit
1020
                }
1020
                }
1021
            },
1021
            },
1022
            rrParam := omit
1022
            rrParam := omit
1023
        }
1023
        }
1024
1024
1025
        template(value) ReferredBy m_ReferredBy_SipUrl(
1025
        template(value) ReferredBy m_ReferredBy_SipUrl(
1026
            template(value) SipUrl p_sipUrl
1026
            template(value) SipUrl p_sipUrl
1027
        ) := {
1027
        ) := {
1028
            fieldName := REFERRED_BY_E,
1028
            fieldName := REFERRED_BY_E,
1029
            nameAddr :=
1029
            nameAddr :=
1030
                m_NameAddr(
1030
                m_NameAddr(
1031
                    // STF471 {displayName
1031
                    // STF471 {displayName
1032
                    omit,
1032
                    omit,
1033
                    // := omit,
1033
                    // := omit,
1034
                    p_sipUrl // addrSpec:=p_sipUrl}
1034
                    p_sipUrl // addrSpec:=p_sipUrl}
1035
                ),
1035
                ),
1036
            referredbyIdParams := omit
1036
            referredbyIdParams := omit
1037
        }
1037
        }
1038
1038
1039
        template(value) ReferTo m_ReferTo_SipUrl(
1039
        template(value) ReferTo m_ReferTo_SipUrl(
1040
            template(value) SipUrl p_sipUrl,
1040
            template(value) SipUrl p_sipUrl,
1041
            template(value) charstring p_method
1041
            template(value) charstring p_method
1042
        ) := {
1042
        ) := {
1043
            fieldName := REFER_TO_E,
1043
            fieldName := REFER_TO_E,
1044
            nameAddr :=
1044
            nameAddr :=
1045
                m_NameAddr(
1045
                m_NameAddr(
1046
                    // STF471 {displayName
1046
                    // STF471 {displayName
1047
                    omit,
1047
                    omit,
1048
                    // := omit,
1048
                    // := omit,
1049
                    p_sipUrl // addrSpec:=p_sipUrl}
1049
                    p_sipUrl // addrSpec:=p_sipUrl}
1050
                ),
1050
                ),
1051
            referToParams := {
1051
            referToParams := {
1052
                {
1052
                {
1053
                    id := "method",
1053
                    id := "method",
1054
                    paramValue := p_method
1054
                    paramValue := p_method
1055
                }
1055
                }
1056
            }
1056
            }
1057
        }
1057
        }
1058
1058
1059
        template(value) ReferSub m_ReferSub(
1059
        template(value) ReferSub m_ReferSub(
1060
            template(value) boolean p_value
1060
            template(value) boolean p_value
1061
        ) := {
1061
        ) := {
1062
            fieldName := REFER_SUB_E,
1062
            fieldName := REFER_SUB_E,
1063
            referSubValue := p_value,
1063
            referSubValue := p_value,
1064
            referSubParams := omit
1064
            referSubParams := omit
1065
        }
1065
        }
1066
1066
1067
        template(value) Replaces m_Replaces(
1067
        template(value) Replaces m_Replaces(
1068
            template(value) charstring p_callId,
1068
            template(value) charstring p_callId,
1069
            template(value) charstring p_toTag,
1069
            template(value) charstring p_toTag,
1070
            template(value) charstring p_fromTag
1070
            template(value) charstring p_fromTag
1071
        ) := {
1071
        ) := {
1072
            fieldName := REPLACES_E,
1072
            fieldName := REPLACES_E,
1073
            replacesParams := {
1073
            replacesParams := {
1074
                {
1074
                {
1075
                    id := p_callId,
1075
                    id := p_callId,
1076
                    paramValue := omit
1076
                    paramValue := omit
1077
                },
1077
                },
1078
                {
1078
                {
1079
                    id := "to-tag",
1079
                    id := "to-tag",
1080
                    paramValue := p_toTag
1080
                    paramValue := p_toTag
1081
                },
1081
                },
1082
                {
1082
                {
1083
                    id := "from-tag",
1083
                    id := "from-tag",
1084
                    paramValue := p_fromTag
1084
                    paramValue := p_fromTag
1085
                }
1085
                }
1086
            }
1086
            }
1087
        }
1087
        }
1088
1088
1089
        template(value) Require m_Require_empty := {
1089
        template(value) Require m_Require_empty := {
1090
            fieldName := REQUIRE_E,
1090
            fieldName := REQUIRE_E,
1091
            optionsTags := {""}
1091
            optionsTags := {""}
1092
        }
1092
        }
1093
1093
1094
        template(value) Require m_Require_replaces modifies m_Require_empty := {optionsTags := {c_replaces}}
1094
        template(value) Require m_Require_replaces modifies m_Require_empty := {optionsTags := {c_replaces}}
1095
1095
1096
        template(value) Require m_Require_100rel modifies m_Require_empty := {optionsTags := {c_tag100rel}}
1096
        template(value) Require m_Require_100rel modifies m_Require_empty := {optionsTags := {c_tag100rel}}
1097
1097
1098
        template(value) Require m_Require_prec modifies m_Require_empty := {optionsTags := {c_tagPrecond}}
1098
        template(value) Require m_Require_prec modifies m_Require_empty := {optionsTags := {c_tagPrecond}}
1099
1099
1100
        template(value) SubscriptionState m_SubscriptionState_active := {
1100
        template(value) SubscriptionState m_SubscriptionState_active := {
1101
            fieldName := SUBSCRIPTION_STATE_E,
1101
            fieldName := SUBSCRIPTION_STATE_E,
1102
            subState := "active",
1102
            subState := "active",
1103
            substateParams := {
1103
            substateParams := {
1104
                {
1104
                {
1105
                    id := "expires",
1105
                    id := "expires",
1106
                    paramValue := "60000"
1106
                    paramValue := "60000"
1107
                }
1107
                }
1108
            }
1108
            }
1109
        }
1109
        }
1110
1110
1111
        template(value) Supported m_Supported_empty := {
1111
        template(value) Supported m_Supported_empty := {
1112
            fieldName := SUPPORTED_E,
1112
            fieldName := SUPPORTED_E,
1113
            optionsTags := {""}
1113
            optionsTags := {""}
1114
        }
1114
        }
1115
1115
1116
        template(value) Supported m_Supported_fromChange modifies m_Supported_empty := {optionsTags := {c_tagFromChange}}
1116
        template(value) Supported m_Supported_fromChange modifies m_Supported_empty := {optionsTags := {c_tagFromChange}}
1117
1117
1118
        template(value) Supported m_Supported_prec modifies m_Supported_empty := {optionsTags := {c_tagPrecond}}
1118
        template(value) Supported m_Supported_prec modifies m_Supported_empty := {optionsTags := {c_tagPrecond}}
1119
1119
1120
        template(value) Supported m_Supported_100rel modifies m_Supported_empty := {optionsTags := {c_tag100rel}}
1120
        template(value) Supported m_Supported_100rel modifies m_Supported_empty := {optionsTags := {c_tag100rel}}
1121
1121
1122
        template(value) Supported m_Supported_100rel_prec modifies m_Supported_empty := {optionsTags := {c_tag100rel, c_tagPrecond}}
1122
        template(value) Supported m_Supported_100rel_prec modifies m_Supported_empty := {optionsTags := {c_tag100rel, c_tagPrecond}}
1123
1123
1124
        template(value) GenericParam m_Text(
1124
        template(value) GenericParam m_Text(
1125
            template(value) charstring p_text
1125
            template(value) charstring p_text
1126
        ) := {
1126
        ) := {
1127
            id := "text",
1127
            id := "text",
1128
            paramValue := p_text
1128
            paramValue := p_text
1129
        }
1129
        }
1130
1130
1131
        template(present) GenericParam mw_Text(
1131
        template(present) GenericParam mw_Text(
1132
            template charstring p_text
1132
            template charstring p_text
1133
        ) := {
1133
        ) := {
1134
            id := "text",
1134
            id := "text",
1135
            paramValue := p_text
1135
            paramValue := p_text
1136
        }
1136
        }
1137
1137
1138
        template(value) GenericParam m_UserPhone := {
1138
        template(value) GenericParam m_UserPhone := {
1139
            id := "user",
1139
            id := "user",
1140
            paramValue := "phone"
1140
            paramValue := "phone"
1141
        }
1141
        }
1142
1142
1143
        template(value) GenericParam m_UserToUserEncodingHex := {
1143
        template(value) GenericParam m_UserToUserEncodingHex := {
1144
            id := "encoding",
1144
            id := "encoding",
1145
            paramValue := "hex"
1145
            paramValue := "hex"
1146
        }
1146
        }
1147
1147
1148
        template(value) UserToUser m_UserToUserData(
1148
        template(value) UserToUser m_UserToUserData(
1149
            template(value) UserToUser.uuiData p_U2UData
1149
            template(value) UserToUser.uuiData p_U2UData
1150
        ) := {
1150
        ) := {
1151
            fieldName := USER_TO_USER_E,
1151
            fieldName := USER_TO_USER_E,
1152
            uuiData := p_U2UData,
1152
            uuiData := p_U2UData,
1153
            uuiParam := m_UserToUserEncodingHex
1153
            uuiParam := m_UserToUserEncodingHex
1154
        }
1154
        }
1155
1155
1156
        template(value) To m_To(
1156
        template(value) To m_To(
1157
            template(value) SipUrl p_sipUrl
1157
            template(value) SipUrl p_sipUrl
1158
        ) := {
1158
        ) := {
1159
            fieldName := TO_E,
1159
            fieldName := TO_E,
1160
            addressField := {
1160
            addressField := {
1161
                nameAddr :=
1161
                nameAddr :=
1162
                    m_NameAddr(
1162
                    m_NameAddr(
1163
                        "ETSI Tester",
1163
                        "ETSI Tester",
1164
                        //*     optional charstring
1164
                        //*     optional charstring
1165
                        p_sipUrl //*     SipUrl
1165
                        p_sipUrl //*     SipUrl
1166
                    )
1166
                    )
1167
            },  //*     end addressField
1167
            },  //*     end addressField
1168
            toParams := omit
1168
            toParams := omit
1169
        }
1169
        }
1170
1170
1171
        template(value) To m_To_SipUrl(
1171
        template(value) To m_To_SipUrl(
1172
            template(value) SipUrl p_sipUrl
1172
            template(value) SipUrl p_sipUrl
1173
        ) modifies m_To := {
1173
        ) modifies m_To := {
1174
            addressField := {
1174
            addressField := {
1175
                nameAddr := {
1175
                nameAddr := {
1176
                    displayName :=
1176
                    displayName :=
1177
                        omit //*     optional charstring
1177
                        omit //*     optional charstring
1178
                }
1178
                }
1179
            } //*     end addressField
1179
            } //*     end addressField
1180
        }
1180
        }
1181
1181
1182
        template(present) To mw_To_NameAddr_SipUrl(
1182
        template(present) To mw_To_NameAddr_SipUrl(
1183
            template charstring p_dn,
1183
            template charstring p_dn,
1184
            template(present) charstring p_user := ?,
1184
            template(present) charstring p_user := ?,
1185
            template charstring p_host
1185
            template charstring p_host
1186
        ) := {
1186
        ) := {
1187
            fieldName := TO_E,
1187
            fieldName := TO_E,
1188
            addressField := (mw_AddrUnion_Nameaddr(p_dn, p_user, p_host), mw_AddrUnion_SipUrl(p_user, p_host)),
1188
            addressField := (mw_AddrUnion_Nameaddr(p_dn, p_user, p_host), mw_AddrUnion_SipUrl(p_user, p_host)),
1189
            toParams := *
1189
            toParams := *
1190
        }
1190
        }
1191
1191
1192
        template(present) To mw_To(
1192
        template(present) To mw_To(
1193
            template(present) SipUrl p_sipUrl := ?
1193
            template(present) SipUrl p_sipUrl := ?
1194
        ) := {
1194
        ) := {
1195
            fieldName := TO_E,
1195
            fieldName := TO_E,
1196
            addressField := {nameAddr := mw_NameAddr(*, p_sipUrl)},
1196
            addressField := {nameAddr := mw_NameAddr(*, p_sipUrl)},
1197
            toParams := *
1197
            toParams := *
1198
        }
1198
        }
1199
1199
1200
        template(present) From mw_From(
1200
        template(present) From mw_From(
1201
            template(present) SipUrl p_sipUrl := ?
1201
            template(present) SipUrl p_sipUrl := ?
1202
        ) := {
1202
        ) := {
1203
            fieldName := FROM_E,
1203
            fieldName := FROM_E,
1204
            addressField := {nameAddr := mw_NameAddr(*, p_sipUrl)},
1204
            addressField := {nameAddr := mw_NameAddr(*, p_sipUrl)},
1205
            fromParams := *
1205
            fromParams := *
1206
        }
1206
        }
1207
1207
1208
        template(present) From mw_From_NameAddr_SipUrl(
1208
        template(present) From mw_From_NameAddr_SipUrl(
1209
            template charstring p_dn,
1209
            template charstring p_dn,
1210
            template(present) charstring p_user := ?,
1210
            template(present) charstring p_user := ?,
1211
            template charstring p_host
1211
            template charstring p_host
1212
        ) := {
1212
        ) := {
1213
            fieldName := FROM_E,
1213
            fieldName := FROM_E,
1214
            addressField := (mw_AddrUnion_Nameaddr(p_dn, p_user, p_host), mw_AddrUnion_SipUrl(p_user, p_host)),
1214
            addressField := (mw_AddrUnion_Nameaddr(p_dn, p_user, p_host), mw_AddrUnion_SipUrl(p_user, p_host)),
1215
            fromParams := *
1215
            fromParams := *
1216
        }
1216
        }
1217
        template(value) ViaBody m_ViaBody_currIpaddr(
1217
        template(value) ViaBody m_ViaBody_currIpaddr(
1218
            template(value) charstring branch_val,
1218
            template(value) charstring branch_val,
1219
            template(value) SipUserProfile p_userprofile
1219
            template(value) SipUserProfile p_userprofile
1220
        ) := {
1220
        ) := {
1221
            sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
1221
            sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
1222
            sentBy := {
1222
            sentBy := {
1223
                host := p_userprofile.currIpaddr,
1223
                host := p_userprofile.currIpaddr,
1224
                portField := p_userprofile.currPort
1224
                portField := p_userprofile.currPort
1225
            },
1225
            },
1226
            viaParams := {
1226
            viaParams := {
1227
                {
1227
                {
1228
                    id := c_branchId,
1228
                    id := c_branchId,
1229
                    paramValue := branch_val
1229
                    paramValue := branch_val
1230
                }
1230
                }
1231
            }
1231
            }
1232
        }
1232
        }
1233
1233
1234
        template(present) ViaBody mw_ViaBody_interface(
1234
        template(present) ViaBody mw_ViaBody_interface(
1235
            template(present) HostPort p_hostport := ?
1235
            template(present) HostPort p_hostport := ?
1236
        ) := {
1236
        ) := {
1237
            sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
1237
            sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
1238
            sentBy := {
1238
            sentBy := {
1239
                host := p_hostport.host,
1239
                host := p_hostport.host,
1240
                portField := p_hostport.portField
1240
                portField := p_hostport.portField
1241
            },
1241
            },
1242
            viaParams := *
1242
            viaParams := *
1243
        }
1243
        }
1244
1244
1245
        template(present) Via mw_Via(
1245
        template(present) Via mw_Via(
1246
            template(present) ViaBody p_viabody := ?
1246
            template(present) ViaBody p_viabody := ?
1247
        ) := {
1247
        ) := {
1248
            fieldName := VIA_E,
1248
            fieldName := VIA_E,
1249
            viaBody := {*, p_viabody, *} // superset(p_viabody)
1249
            viaBody := {*, p_viabody, *} // superset(p_viabody)
1250
        }
1250
        }
1251
1251
1252
        template(present) CallId mw_CallId_any := {
1252
        template(present) CallId mw_CallId_any := {
1253
            fieldName := CALL_ID_E,
1253
            fieldName := CALL_ID_E,
1254
            callid := ?
1254
            callid := ?
1255
        }
1255
        }
1256
1256
1257
        template(present) Require mw_Require_Base := {
1257
        template(present) Require mw_Require_Base := {
1258
            fieldName := REQUIRE_E,
1258
            fieldName := REQUIRE_E,
1259
            optionsTags := {}
1259
            optionsTags := {}
1260
        }
1260
        }
1261
1261
1262
        template(present) Require mw_Require_not_100rel modifies mw_Require_Base := {optionsTags := superset(complement(c_tag100rel))}
1262
        template(present) Require mw_Require_not_100rel modifies mw_Require_Base := {optionsTags := superset(complement(c_tag100rel))}
1263
1263
1264
        template(present) Require mw_require_100rel modifies mw_Require_Base := {optionsTags := superset(c_tag100rel)}
1264
        template(present) Require mw_require_100rel modifies mw_Require_Base := {optionsTags := superset(c_tag100rel)}
1265
1265
1266
        template(present) RecordRoute mw_recordroute(
1266
        template(present) RecordRoute mw_recordroute(
1267
            template(present) RouteBody p_routeBody := ?
1267
            template(present) RouteBody p_routeBody := ?
1268
        ) := {
1268
        ) := {
1269
            fieldName := RECORD_ROUTE_E,
1269
            fieldName := RECORD_ROUTE_E,
1270
            routeBody := {*, p_routeBody, *} // superset(p_routeBody)
1270
            routeBody := {*, p_routeBody, *} // superset(p_routeBody)
1271
        }
1271
        }
1272
1272
1273
        template(present) Route mw_route(
1273
        template(present) Route mw_route(
1274
            template(present) RouteBody_List p_routeBody := ?
1274
            template(present) RouteBody_List p_routeBody := ?
1275
        ) := {
1275
        ) := {
1276
            fieldName := ROUTE_E,
1276
            fieldName := ROUTE_E,
1277
            routeBody := p_routeBody
1277
            routeBody := p_routeBody
1278
        }
1278
        }
1279
1279
1280
        template(present) Supported mw_Supported_Base := {
1280
        template(present) Supported mw_Supported_Base := {
1281
            fieldName := SUPPORTED_E,
1281
            fieldName := SUPPORTED_E,
1282
            optionsTags := {}
1282
            optionsTags := {}
1283
        }
1283
        }
1284
1284
1285
        template(present) Supported mw_Supported_100rel_prec modifies mw_Supported_Base := {optionsTags := superset(c_tag100rel, c_tagPrecond)}
1285
        template(present) Supported mw_Supported_100rel_prec modifies mw_Supported_Base := {optionsTags := superset(c_tag100rel, c_tagPrecond)}
1286
1286
1287
        template(present) Supported mw_Supported_100rel modifies mw_Supported_Base := {optionsTags := superset(c_tag100rel)}
1287
        template(present) Supported mw_Supported_100rel modifies mw_Supported_Base := {optionsTags := superset(c_tag100rel)}
1288
1288
1289
        template(present) Supported mw_Supported_fromChange modifies mw_Supported_Base := {optionsTags := superset(c_tagFromChange)}
1289
        template(present) Supported mw_Supported_fromChange modifies mw_Supported_Base := {optionsTags := superset(c_tagFromChange)}
1290
1290
1291
        template(present) UserToUser mw_UserToUserData(
1291
        template(present) UserToUser mw_UserToUserData(
1292
            template(present) UserToUser.uuiData p_U2UData := ?
1292
            template(present) UserToUser.uuiData p_U2UData := ?
1293
        ) := {
1293
        ) := {
1294
            fieldName := USER_TO_USER_E,
1294
            fieldName := USER_TO_USER_E,
1295
            uuiData := p_U2UData,
1295
            uuiData := p_U2UData,
1296
            uuiParam := ?
1296
            uuiParam := ?
1297
        }
1297
        }
1298
1298
1299
        template(present) Contact mw_Contact_conference := {
1299
        template(present) Contact mw_Contact_conference := {
1300
            fieldName := CONTACT_E,
1300
            fieldName := CONTACT_E,
1301
            contactBody := {
1301
            contactBody := {
1302
                contactAddresses := {
1302
                contactAddresses := {
1303
                    {
1303
                    {
1304
                        addressField := {
1304
                        addressField := {
1305
                            nameAddr := {
1305
                            nameAddr := {
1306
                                displayName := *,
1306
                                displayName := *,
1307
                                addrSpec := {
1307
                                addrSpec := {
1308
                                    scheme := ?,
1308
                                    scheme := ?,
1309
                                    components := ?,
1309
                                    components := ?,
1310
                                    urlParameters := {
1310
                                    urlParameters := {
1311
                                        {
1311
                                        {
1312
                                            "isfocus",
1312
                                            "isfocus",
1313
                                            *
1313
                                            *
1314
                                        },
1314
                                        },
1315
                                        *
1315
                                        *
1316
                                    },
1316
                                    },
1317
                                    headers := *
1317
                                    headers := *
1318
                                }
1318
                                }
1319
                            }
1319
                            }
1320
                        },
1320
                        },
1321
                        contactParams := *
1321
                        contactParams := *
1322
                    }
1322
                    }
1323
                }
1323
                }
1324
            }
1324
            }
1325
        }
1325
        }
1326
1326
1327
        template(value) AlertInfo m_AlertInfo_Base := {
1327
        template(value) AlertInfo m_AlertInfo_Base := {
1328
            fieldName := ALERT_INFO_E,
1328
            fieldName := ALERT_INFO_E,
1329
            alertInfoBody := {}
1329
            alertInfoBody := {}
1330
        }
1330
        }
1331
1331
1332
        template(value) AlertInfo m_AlertInfo(
1332
        template(value) AlertInfo m_AlertInfo(
1333
            template(value) charstring p_urn
1333
            template(value) charstring p_urn
1334
        ) modifies m_AlertInfo_Base := {
1334
        ) modifies m_AlertInfo_Base := {
1335
            alertInfoBody := {
1335
            alertInfoBody := {
1336
                {
1336
                {
1337
                    p_urn,
1337
                    p_urn,
1338
                    omit
1338
                    omit
1339
                }
1339
                }
1340
            }
1340
            }
1341
        }
1341
        }
1342
1342
1343
        template(present) AlertInfo mw_AlertInfo(
1343
        template(present) AlertInfo mw_AlertInfo(
1344
            template(present) charstring p_urn := ?
1344
            template(present) charstring p_urn := ?
1345
        ) modifies m_AlertInfo_Base := {
1345
        ) modifies m_AlertInfo_Base := {
1346
            alertInfoBody :=
1346
            alertInfoBody :=
1347
                superset(
1347
                superset(
1348
                    {
1348
                    {
1349
                        p_urn,
1349
                        p_urn,
1350
                        omit
1350
                        omit
1351
                    }
1351
                    }
1352
                )
1352
                )
1353
        }
1353
        }
1354
1354
1355
1355
1356
1356
1357
    } //*     end of group HeaderFieldTemplates
1357
    } //*     end of group HeaderFieldTemplates
1358
1358
1359
1359
1360
    group MessageTemplates {
1360
    group MessageTemplates {
1361
1361
1362
        group dummy_templates {
1362
        group dummy_templates {
1363
1363
1364
            group dummy_parameter_send {
1364
            group dummy_parameter_send {
1365
1365
1366
                template(value) RequestLine m_requestLine_dummy(
1366
                template(value) RequestLine m_requestLine_dummy(
1367
                    template(value) Method p_method
1367
                    template(value) Method p_method
1368
                ) := {
1368
                ) := {
1369
                    method := p_method,
1369
                    method := p_method,
1370
                    requestUri := c_unavailableUri,
1370
                    requestUri := c_unavailableUri,
1371
                    sipVersion := c_sipNameVersion
1371
                    sipVersion := c_sipNameVersion
1372
                }
1372
                }
1373
1373
1374
                template(value) MessageHeader m_msgHeader_dummy := {
1374
                template(value) MessageHeader m_msgHeader_dummy := {
1375
                    accept := omit,
1375
                    accept := omit,
1376
                    acceptContact := omit,
1376
                    acceptContact := omit,
1377
                    acceptEncoding := omit,
1377
                    acceptEncoding := omit,
1378
                    acceptLanguage := omit,
1378
                    acceptLanguage := omit,
1379
                    alertInfo := omit,
1379
                    alertInfo := omit,
1380
                    allow := omit,
1380
                    allow := omit,
1381
                    allowEvents := omit,  //*     RFC3265
1381
                    allowEvents := omit,  //*     RFC3265
1382
                    authenticationInfo := omit,
1382
                    authenticationInfo := omit,
1383
                    authorization := omit,
1383
                    authorization := omit,
1384
                    callId := c_empty_CallId,
1384
                    callId := c_empty_CallId,
1385
                    callInfo := omit,
1385
                    callInfo := omit,
1386
                    contact := omit,
1386
                    contact := omit,
1387
                    contentDisposition := omit,
1387
                    contentDisposition := omit,
1388
                    contentEncoding := omit,
1388
                    contentEncoding := omit,
1389
                    contentLanguage := omit,
1389
                    contentLanguage := omit,
1390
                    contentLength := {
1390
                    contentLength := {
1391
                        fieldName := CONTENT_LENGTH_E,
1391
                        fieldName := CONTENT_LENGTH_E,
1392
                        len := 0
1392
                        len := 0
1393
                    },
1393
                    },
1394
                    contentType := omit,  //*     if message body present m,
1394
                    contentType := omit,  //*     if message body present m,
1395
                                          //*     else not present
1395
                                          //*     else not present
1396
                    cSeq := c_empty_cSeq,
1396
                    cSeq := c_empty_cSeq,
1397
                    date := omit,
1397
                    date := omit,
1398
                    errorInfo := omit,
1398
                    errorInfo := omit,
1399
                    event := omit,  //*     RFC3265
1399
                    event := omit,  //*     RFC3265
1400
                    expires := omit,
1400
                    expires := omit,
1401
                    fromField := c_empty_From,
1401
                    fromField := c_empty_From,
1402
                    geolocation := omit,
1402
                    geolocation := omit,
1403
                    geolocationRouting := omit,
1403
                    geolocationRouting := omit,
1404
                    historyInfo := omit,  //*     RFC4244
1404
                    historyInfo := omit,  //*     RFC4244
1405
                    inReplyTo := omit,
1405
                    inReplyTo := omit,
1406
                    maxForwards := c_maxForwards70,
1406
                    maxForwards := c_maxForwards70,
1407
                    mimeVersion := omit,
1407
                    mimeVersion := omit,
1408
                    minExpires := omit,
1408
                    minExpires := omit,
1409
                    minSE := omit,  //*     RFC4028
1409
                    minSE := omit,  //*     RFC4028
1410
                    organization := omit,
1410
                    organization := omit,
1411
                    pAccessNetworkInfo := omit,  //*     RFC3455
1411
                    pAccessNetworkInfo := omit,  //*     RFC3455
1412
                    pAssertedID := omit,
1412
                    pAssertedID := omit,
1413
                    pAssertedService := omit,
1413
                    pAssertedService := omit,
1414
                    pAssociatedURI := omit,
1414
                    pAssociatedURI := omit,
1415
                    path := omit,  //*     RFC3327
1415
                    path := omit,  //*     RFC3327
1416
                    pCalledPartyID := omit,  //*     RFC3455
1416
                    pCalledPartyID := omit,  //*     RFC3455
1417
                    pChargingFunctionAddresses := omit,  //*     RFC3455
1417
                    pChargingFunctionAddresses := omit,  //*     RFC3455
1418
                    pChargingVector := omit,  //*     RFC3455
1418
                    pChargingVector := omit,  //*     RFC3455
1419
                    pEarlyMedia := omit,  //*     RFC5009
1419
                    pEarlyMedia := omit,  //*     RFC5009
1420
                    pMediaAuthorization := omit,  //*     RFC3313
1420
                    pMediaAuthorization := omit,  //*     RFC3313
1421
                    pPreferredID := omit,
1421
                    pPreferredID := omit,
1422
                    pPreferredService := omit,
1422
                    pPreferredService := omit,
1423
                    priority := omit,
1423
                    priority := omit,
1424
                    privacy := omit,
1424
                    privacy := omit,
1425
                    proxyAuthenticate := omit,
1425
                    proxyAuthenticate := omit,
1426
                    proxyAuthorization := omit,
1426
                    proxyAuthorization := omit,
1427
                    proxyRequire := omit,
1427
                    proxyRequire := omit,
1428
                    pVisitedNetworkID := omit,  //*     RFC3455
1428
                    pVisitedNetworkID := omit,  //*     RFC3455
1429
                    rAck := omit,
1429
                    rAck := omit,
1430
                    rSeq := omit,
1430
                    rSeq := omit,
1431
                    reason := omit,
1431
                    reason := omit,
1432
                    recordRoute := omit,
1432
                    recordRoute := omit,
1433
                    requestDisposition := omit,
1433
                    requestDisposition := omit,
1434
                    referredBy := omit,  //*     RFC3892 - REFER method
1434
                    referredBy := omit,  //*     RFC3892 - REFER method
1435
                    referTo := omit,  //*     RFC3515 - REFER method
1435
                    referTo := omit,  //*     RFC3515 - REFER method
1436
                    referSub := omit,  //*     RFC4488 - REFER method
1436
                    referSub := omit,  //*     RFC4488 - REFER method
1437
                    replaces := omit,  //*     RFC3891
1437
                    replaces := omit,  //*     RFC3891
1438
                    replyTo := omit,
1438
                    replyTo := omit,
1439
                    require := omit,
1439
                    require := omit,
1440
                    retryAfter := omit,
1440
                    retryAfter := omit,
1441
                    route := omit,
1441
                    route := omit,
1442
                    securityClient := omit,  //*     RFC3329
1442
                    securityClient := omit,  //*     RFC3329
1443
                    securityServer := omit,  //*     RFC3329
1443
                    securityServer := omit,  //*     RFC3329
1444
                    securityVerify := omit,  //*     RFC3329
1444
                    securityVerify := omit,  //*     RFC3329
1445
                    server := omit,
1445
                    server := omit,
1446
                    serviceRoute := omit,  //*     RFC3608
1446
                    serviceRoute := omit,  //*     RFC3608
1447
                    sessionExpires := omit,  //*     RFC4028
1447
                    sessionExpires := omit,  //*     RFC4028
1448
                    sessionId := omit,
1448
                    sessionId := omit,
1449
                    sipETag := omit,
1449
                    sipETag := omit,
1450
                    sipIfMatch := omit,
1450
                    sipIfMatch := omit,
1451
                    subject := omit,
1451
                    subject := omit,
1452
                    subscriptionState := omit,  //*     RFC3265
1452
                    subscriptionState := omit,  //*     RFC3265
1453
                    supported := omit,
1453
                    supported := omit,
1454
                    timestamp := omit,
1454
                    timestamp := omit,
1455
                    toField := c_empty_To,
1455
                    toField := c_empty_To,
1456
                    unsupported := omit,
1456
                    unsupported := omit,
1457
                    userToUser := omit,
1457
                    userToUser := omit,
1458
                    userAgent := omit,
1458
                    userAgent := omit,
1459
                    via := c_empty_Via,
1459
                    via := c_empty_Via,
1460
                    warning := omit,
1460
                    warning := omit,
1461
                    wwwAuthenticate := omit,
1461
                    wwwAuthenticate := omit,
1462
                    undefinedHeader_List := omit
1462
                    undefinedHeader_List := omit
1463
                }
1463
                }
1464
1464
1465
1465
1466
1466
1467
            } //*     group dummy_parameter_send
1467
            } //*     group dummy_parameter_send
1468
1468
1469
            group dummy_parameter_receive {
1469
            group dummy_parameter_receive {
1470
1470
1471
                template(present) RequestLine mw_requestLine_dummy(
1471
                template(present) RequestLine mw_requestLine_dummy(
1472
                    Method p_method
1472
                    Method p_method
1473
                ) := {
1473
                ) := {
1474
                    method := p_method,
1474
                    method := p_method,
1475
                    requestUri := ?,
1475
                    requestUri := ?,
1476
                    sipVersion := c_sipNameVersion
1476
                    sipVersion := c_sipNameVersion
1477
                }
1477
                }
1478
1478
1479
                template(present) MessageHeader mw_msgHeader_dummy := {
1479
                template(present) MessageHeader mw_msgHeader_dummy := {
1480
                    accept := *,
1480
                    accept := *,
1481
                    acceptContact := *,
1481
                    acceptContact := *,
1482
                    acceptEncoding := *,
1482
                    acceptEncoding := *,
1483
                    acceptLanguage := *,
1483
                    acceptLanguage := *,
1484
                    alertInfo := *,
1484
                    alertInfo := *,
1485
                    allow := *,
1485
                    allow := *,
1486
                    allowEvents := *,  //*     RFC3265
1486
                    allowEvents := *,  //*     RFC3265
1487
                    authenticationInfo := *,
1487
                    authenticationInfo := *,
1488
                    authorization := *,
1488
                    authorization := *,
1489
                    callId := ?,
1489
                    callId := ?,
1490
                    callInfo := *,
1490
                    callInfo := *,
1491
                    contact := *,
1491
                    contact := *,
1492
                    contentDisposition := *,
1492
                    contentDisposition := *,
1493
                    contentEncoding := *,
1493
                    contentEncoding := *,
1494
                    contentLanguage := *,
1494
                    contentLanguage := *,
1495
                    contentLength := ?,
1495
                    contentLength := ?,
1496
                    contentType := *,
1496
                    contentType := *,
1497
                    cSeq := ?,
1497
                    cSeq := ?,
1498
                    date := *,
1498
                    date := *,
1499
                    errorInfo := *,
1499
                    errorInfo := *,
1500
                    event := *,  //*     RFC3265
1500
                    event := *,  //*     RFC3265
1501
                    expires := *,
1501
                    expires := *,
1502
                    fromField := ?,
1502
                    fromField := ?,
1503
                    geolocation := *,
1503
                    geolocation := *,
1504
                    geolocationRouting := *,
1504
                    geolocationRouting := *,
1505
                    historyInfo := *,  //*     RFC4244
1505
                    historyInfo := *,  //*     RFC4244
1506
                    inReplyTo := *,
1506
                    inReplyTo := *,
1507
                    maxForwards := *,
1507
                    maxForwards := *,
1508
                    mimeVersion := *,
1508
                    mimeVersion := *,
1509
                    minExpires := *,
1509
                    minExpires := *,
1510
                    minSE := *,  //*     RFC4028
1510
                    minSE := *,  //*     RFC4028
1511
                    organization := *,
1511
                    organization := *,
1512
                    pAccessNetworkInfo := *,  //*     RFC3455
1512
                    pAccessNetworkInfo := *,  //*     RFC3455
1513
                    pAssertedID := *,
1513
                    pAssertedID := *,
1514
                    pAssertedService := *,
1514
                    pAssertedService := *,
1515
                    pAssociatedURI := *,
1515
                    pAssociatedURI := *,
1516
                    path := *,  //*     RFC3327
1516
                    path := *,  //*     RFC3327
1517
                    pCalledPartyID := *,  //*     RFC3455
1517
                    pCalledPartyID := *,  //*     RFC3455
1518
                    pChargingFunctionAddresses := *,  //*     RFC3455
1518
                    pChargingFunctionAddresses := *,  //*     RFC3455
1519
                    pChargingVector := *,  //*     RFC3455
1519
                    pChargingVector := *,  //*     RFC3455
1520
                    pEarlyMedia := *,  //*     RFC5009
1520
                    pEarlyMedia := *,  //*     RFC5009
1521
                    pMediaAuthorization := *,  //*     RFC3313
1521
                    pMediaAuthorization := *,  //*     RFC3313
1522
                    pPreferredID := *,
1522
                    pPreferredID := *,
1523
                    pPreferredService := *,
1523
                    pPreferredService := *,
1524
                    priority := *,
1524
                    priority := *,
1525
                    privacy := *,
1525
                    privacy := *,
1526
                    proxyAuthenticate := *,
1526
                    proxyAuthenticate := *,
1527
                    proxyAuthorization := *,
1527
                    proxyAuthorization := *,
1528
                    proxyRequire := *,
1528
                    proxyRequire := *,
1529
                    pVisitedNetworkID := *,  //*     RFC3455
1529
                    pVisitedNetworkID := *,  //*     RFC3455
1530
                    rAck := *,
1530
                    rAck := *,
1531
                    rSeq := *,
1531
                    rSeq := *,
1532
                    reason := *,
1532
                    reason := *,
1533
                    recordRoute := *,
1533
                    recordRoute := *,
1534
                    requestDisposition := *,
1534
                    requestDisposition := *,
1535
                    referredBy := *,  //*     RFC3892 - REFER method
1535
                    referredBy := *,  //*     RFC3892 - REFER method
1536
                    referTo := *,  //*     RFC3515 - REFER method
1536
                    referTo := *,  //*     RFC3515 - REFER method
1537
                    referSub := *,  //*     RFC4488 - REFER method
1537
                    referSub := *,  //*     RFC4488 - REFER method
1538
                    replaces := *,  //*     RFC 3891
1538
                    replaces := *,  //*     RFC 3891
1539
                    replyTo := *,
1539
                    replyTo := *,
1540
                    require := *,
1540
                    require := *,
1541
                    retryAfter := *,
1541
                    retryAfter := *,
1542
                    route := *,
1542
                    route := *,
1543
                    securityClient := *,  //*     RFC3329
1543
                    securityClient := *,  //*     RFC3329
1544
                    securityServer := *,  //*     RFC3329
1544
                    securityServer := *,  //*     RFC3329
1545
                    securityVerify := *,  //*     RFC3329
1545
                    securityVerify := *,  //*     RFC3329
1546
                    server := *,
1546
                    server := *,
1547
                    serviceRoute := *,  //*     RFC3608
1547
                    serviceRoute := *,  //*     RFC3608
1548
                    sessionExpires := *,  //*     RFC4028
1548
                    sessionExpires := *,  //*     RFC4028
1549
                    sessionId := *,
1549
                    sessionId := *,
1550
                    sipETag := *,
1550
                    sipETag := *,
1551
                    sipIfMatch := *,
1551
                    sipIfMatch := *,
1552
                    subject := *,
1552
                    subject := *,
1553
                    subscriptionState := *,  //*     RFC3265
1553
                    subscriptionState := *,  //*     RFC3265
1554
                    supported := *,
1554
                    supported := *,
1555
                    timestamp := *,
1555
                    timestamp := *,
1556
                    toField := ?,
1556
                    toField := ?,
1557
                    unsupported := *,
1557
                    unsupported := *,
1558
                    userToUser := *,
1558
                    userToUser := *,
1559
                    userAgent := *,
1559
                    userAgent := *,
1560
                    via := ?,
1560
                    via := ?,
1561
                    warning := *,
1561
                    warning := *,
1562
                    wwwAuthenticate := *,
1562
                    wwwAuthenticate := *,
1563
                    undefinedHeader_List := *
1563
                    undefinedHeader_List := *
1564
                }
1564
                }
1565
1565
1566
1566
1567
1567
1568
            } //*     end group dummy_parameter_receive
1568
            } //*     end group dummy_parameter_receive
1569
1569
1570
            group dummy_request_templates_send {
1570
            group dummy_request_templates_send {
1571
1571
1572
                template(value) ACK_Request m_ACK_Dummy := {
1572
                template(value) ACK_Request m_ACK_Dummy := {
1573
                    requestLine := m_requestLine_dummy(ACK_E),
1573
                    requestLine := m_requestLine_dummy(ACK_E),
1574
                    msgHeader := m_msgHeader_dummy,
1574
                    msgHeader := m_msgHeader_dummy,
1575
                    messageBody := omit,
1575
                    messageBody := omit,
1576
                    payload := omit
1576
                    payload := omit
1577
                }
1577
                }
1578
1578
1579
                template(value) BYE_Request m_BYE_Dummy := {
1579
                template(value) BYE_Request m_BYE_Dummy := {
1580
                    requestLine := m_requestLine_dummy(BYE_E),
1580
                    requestLine := m_requestLine_dummy(BYE_E),
1581
                    msgHeader := m_msgHeader_dummy,
1581
                    msgHeader := m_msgHeader_dummy,
1582
                    messageBody := omit,
1582
                    messageBody := omit,
1583
                    payload := omit
1583
                    payload := omit
1584
                }
1584
                }
1585
1585
1586
                template(value) CANCEL_Request m_CANCEL_Dummy := {
1586
                template(value) CANCEL_Request m_CANCEL_Dummy := {
1587
                    requestLine := m_requestLine_dummy(CANCEL_E),
1587
                    requestLine := m_requestLine_dummy(CANCEL_E),
1588
                    msgHeader := m_msgHeader_dummy,
1588
                    msgHeader := m_msgHeader_dummy,
1589
                    messageBody := omit,
1589
                    messageBody := omit,
1590
                    payload := omit
1590
                    payload := omit
1591
                }
1591
                }
1592
1592
1593
                template(value) INFO_Request m_INFO_Dummy := {
1593
                template(value) INFO_Request m_INFO_Dummy := {
1594
                    requestLine := m_requestLine_dummy(INFO_E),
1594
                    requestLine := m_requestLine_dummy(INFO_E),
1595
                    msgHeader := m_msgHeader_dummy,
1595
                    msgHeader := m_msgHeader_dummy,
1596
                    messageBody := omit,
1596
                    messageBody := omit,
1597
                    payload := omit
1597
                    payload := omit
1598
                }
1598
                }
1599
1599
1600
                template(value) INVITE_Request m_INVITE_Dummy := {
1600
                template(value) INVITE_Request m_INVITE_Dummy := {
1601
                    requestLine := m_requestLine_dummy(INVITE_E),
1601
                    requestLine := m_requestLine_dummy(INVITE_E),
1602
                    msgHeader := m_msgHeader_dummy,
1602
                    msgHeader := m_msgHeader_dummy,
1603
                    messageBody := omit,
1603
                    messageBody := omit,
1604
                    payload := omit
1604
                    payload := omit
1605
                }
1605
                }
1606
1606
1607
                template(value) MESSAGE_Request m_MESSAGE_Dummy := {
1607
                template(value) MESSAGE_Request m_MESSAGE_Dummy := {
1608
                    requestLine := m_requestLine_dummy(MESSAGE_E),
1608
                    requestLine := m_requestLine_dummy(MESSAGE_E),
1609
                    msgHeader := m_msgHeader_dummy,
1609
                    msgHeader := m_msgHeader_dummy,
1610
                    messageBody := omit,
1610
                    messageBody := omit,
1611
                    payload := omit
1611
                    payload := omit
1612
                }
1612
                }
1613
1613
1614
                template(value) NOTIFY_Request m_NOTIFY_Dummy := {
1614
                template(value) NOTIFY_Request m_NOTIFY_Dummy := {
1615
                    requestLine := m_requestLine_dummy(NOTIFY_E),
1615
                    requestLine := m_requestLine_dummy(NOTIFY_E),
1616
                    msgHeader := m_msgHeader_dummy,
1616
                    msgHeader := m_msgHeader_dummy,
1617
                    messageBody := omit,
1617
                    messageBody := omit,
1618
                    payload := omit
1618
                    payload := omit
1619
                }
1619
                }
1620
1620
1621
                template(value) OPTIONS_Request m_OPTIONS_Dummy := {
1621
                template(value) OPTIONS_Request m_OPTIONS_Dummy := {
1622
                    requestLine := m_requestLine_dummy(OPTIONS_E),
1622
                    requestLine := m_requestLine_dummy(OPTIONS_E),
1623
                    msgHeader := m_msgHeader_dummy,
1623
                    msgHeader := m_msgHeader_dummy,
1624
                    messageBody := omit,
1624
                    messageBody := omit,
1625
                    payload := omit
1625
                    payload := omit
1626
                }
1626
                }
1627
1627
1628
                template(value) PRACK_Request m_PRACK_Dummy := {
1628
                template(value) PRACK_Request m_PRACK_Dummy := {
1629
                    requestLine := m_requestLine_dummy(PRACK_E),
1629
                    requestLine := m_requestLine_dummy(PRACK_E),
1630
                    msgHeader := m_msgHeader_dummy,
1630
                    msgHeader := m_msgHeader_dummy,
1631
                    messageBody := omit,
1631
                    messageBody := omit,
1632
                    payload := omit
1632
                    payload := omit
1633
                }
1633
                }
1634
1634
1635
                template(value) PUBLISH_Request m_PUBLISH_Dummy := {
1635
                template(value) PUBLISH_Request m_PUBLISH_Dummy := {
1636
                    requestLine := m_requestLine_dummy(PUBLISH_E),
1636
                    requestLine := m_requestLine_dummy(PUBLISH_E),
1637
                    msgHeader := m_msgHeader_dummy,
1637
                    msgHeader := m_msgHeader_dummy,
1638
                    messageBody := omit,
1638
                    messageBody := omit,
1639
                    payload := omit
1639
                    payload := omit
1640
                }
1640
                }
1641
1641
1642
                template(value) REGISTER_Request m_REGISTER_Dummy := {
1642
                template(value) REGISTER_Request m_REGISTER_Dummy := {
1643
                    requestLine := m_requestLine_dummy(REGISTER_E),
1643
                    requestLine := m_requestLine_dummy(REGISTER_E),
1644
                    msgHeader := m_msgHeader_dummy,
1644
                    msgHeader := m_msgHeader_dummy,
1645
                    messageBody := omit,
1645
                    messageBody := omit,
1646
                    payload := omit
1646
                    payload := omit
1647
                }
1647
                }
1648
1648
1649
                template(value) REFER_Request m_REFER_Dummy := {
1649
                template(value) REFER_Request m_REFER_Dummy := {
1650
                    requestLine := m_requestLine_dummy(REFER_E),
1650
                    requestLine := m_requestLine_dummy(REFER_E),
1651
                    msgHeader := m_msgHeader_dummy,
1651
                    msgHeader := m_msgHeader_dummy,
1652
                    messageBody := omit,
1652
                    messageBody := omit,
1653
                    payload := omit
1653
                    payload := omit
1654
                }
1654
                }
1655
1655
1656
                template(value) SUBSCRIBE_Request m_SUBSCRIBE_Dummy := {
1656
                template(value) SUBSCRIBE_Request m_SUBSCRIBE_Dummy := {
1657
                    requestLine := m_requestLine_dummy(SUBSCRIBE_E),
1657
                    requestLine := m_requestLine_dummy(SUBSCRIBE_E),
1658
                    msgHeader := m_msgHeader_dummy,
1658
                    msgHeader := m_msgHeader_dummy,
1659
                    messageBody := omit,
1659
                    messageBody := omit,
1660
                    payload := omit
1660
                    payload := omit
1661
                }
1661
                }
1662
1662
1663
                template(value) UPDATE_Request m_UPDATE_Dummy := {
1663
                template(value) UPDATE_Request m_UPDATE_Dummy := {
1664
                    requestLine := m_requestLine_dummy(UPDATE_E),
1664
                    requestLine := m_requestLine_dummy(UPDATE_E),
1665
                    msgHeader := m_msgHeader_dummy,
1665
                    msgHeader := m_msgHeader_dummy,
1666
                    messageBody := omit,
1666
                    messageBody := omit,
1667
                    payload := omit
1667
                    payload := omit
1668
                }
1668
                }
1669
1669
1670
1670
1671
1671
1672
            } //*     end group dummy_request_templates_send
1672
            } //*     end group dummy_request_templates_send
1673
            group dummy_request_templates_receive {
1673
            group dummy_request_templates_receive {
1674
1674
1675
                template(present) ACK_Request mw_ACK_Dummy := {
1675
                template(present) ACK_Request mw_ACK_Dummy := {
1676
                    requestLine := mw_requestLine_dummy(ACK_E),
1676
                    requestLine := mw_requestLine_dummy(ACK_E),
1677
                    msgHeader := mw_msgHeader_dummy,
1677
                    msgHeader := mw_msgHeader_dummy,
1678
                    messageBody := *,
1678
                    messageBody := *,
1679
                    payload := *
1679
                    payload := *
1680
                }
1680
                }
1681
1681
1682
                template(present) BYE_Request mw_BYE_Dummy := {
1682
                template(present) BYE_Request mw_BYE_Dummy := {
1683
                    requestLine := mw_requestLine_dummy(BYE_E),
1683
                    requestLine := mw_requestLine_dummy(BYE_E),
1684
                    msgHeader := mw_msgHeader_dummy,
1684
                    msgHeader := mw_msgHeader_dummy,
1685
                    messageBody := *,
1685
                    messageBody := *,
1686
                    payload := *
1686
                    payload := *
1687
                }
1687
                }
1688
1688
1689
                template(present) CANCEL_Request mw_CANCEL_Dummy := {
1689
                template(present) CANCEL_Request mw_CANCEL_Dummy := {
1690
                    requestLine := mw_requestLine_dummy(CANCEL_E),
1690
                    requestLine := mw_requestLine_dummy(CANCEL_E),
1691
                    msgHeader := mw_msgHeader_dummy,
1691
                    msgHeader := mw_msgHeader_dummy,
1692
                    messageBody := *,
1692
                    messageBody := *,
1693
                    payload := *
1693
                    payload := *
1694
                }
1694
                }
1695
1695
1696
                template(present) INFO_Request mw_INFO_Dummy := {
1696
                template(present) INFO_Request mw_INFO_Dummy := {
1697
                    requestLine := mw_requestLine_dummy(INFO_E),
1697
                    requestLine := mw_requestLine_dummy(INFO_E),
1698
                    msgHeader := mw_msgHeader_dummy,
1698
                    msgHeader := mw_msgHeader_dummy,
1699
                    messageBody := *,
1699
                    messageBody := *,
1700
                    payload := *
1700
                    payload := *
1701
                }
1701
                }
1702
1702
1703
                template(present) INVITE_Request mw_INVITE_Dummy := {
1703
                template(present) INVITE_Request mw_INVITE_Dummy := {
1704
                    requestLine := mw_requestLine_dummy(INVITE_E),
1704
                    requestLine := mw_requestLine_dummy(INVITE_E),
1705
                    msgHeader := mw_msgHeader_dummy,
1705
                    msgHeader := mw_msgHeader_dummy,
1706
                    messageBody := *,
1706
                    messageBody := *,
1707
                    payload := *
1707
                    payload := *
1708
                }
1708
                }
1709
1709
1710
                template(present) MESSAGE_Request mw_MESSAGE_Dummy := {
1710
                template(present) MESSAGE_Request mw_MESSAGE_Dummy := {
1711
                    requestLine := mw_requestLine_dummy(MESSAGE_E),
1711
                    requestLine := mw_requestLine_dummy(MESSAGE_E),
1712
                    msgHeader := mw_msgHeader_dummy,
1712
                    msgHeader := mw_msgHeader_dummy,
1713
                    messageBody := *,
1713
                    messageBody := *,
1714
                    payload := *
1714
                    payload := *
1715
                }
1715
                }
1716
1716
1717
                template(present) OPTIONS_Request mw_OPTIONS_Dummy := {
1717
                template(present) OPTIONS_Request mw_OPTIONS_Dummy := {
1718
                    requestLine := mw_requestLine_dummy(OPTIONS_E),
1718
                    requestLine := mw_requestLine_dummy(OPTIONS_E),
1719
                    msgHeader := mw_msgHeader_dummy,
1719
                    msgHeader := mw_msgHeader_dummy,
1720
                    messageBody := *,
1720
                    messageBody := *,
1721
                    payload := *
1721
                    payload := *
1722
                }
1722
                }
1723
1723
1724
                template(present) NOTIFY_Request mw_NOTIFY_Dummy := {
1724
                template(present) NOTIFY_Request mw_NOTIFY_Dummy := {
1725
                    requestLine := mw_requestLine_dummy(NOTIFY_E),
1725
                    requestLine := mw_requestLine_dummy(NOTIFY_E),
1726
                    msgHeader := mw_msgHeader_dummy,
1726
                    msgHeader := mw_msgHeader_dummy,
1727
                    messageBody := *,
1727
                    messageBody := *,
1728
                    payload := *
1728
                    payload := *
1729
                }
1729
                }
1730
1730
1731
                template(present) PRACK_Request mw_PRACK_Dummy := {
1731
                template(present) PRACK_Request mw_PRACK_Dummy := {
1732
                    requestLine := mw_requestLine_dummy(PRACK_E),
1732
                    requestLine := mw_requestLine_dummy(PRACK_E),
1733
                    msgHeader := mw_msgHeader_dummy,
1733
                    msgHeader := mw_msgHeader_dummy,
1734
                    messageBody := *,
1734
                    messageBody := *,
1735
                    payload := *
1735
                    payload := *
1736
                }
1736
                }
1737
1737