Rev

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

Rev 656 Rev 658
1
/**
1
/**
2
 * @author STF 346, STF366, STF368, STF369, STF450, STF471, STF160
2
 * @author STF 346, STF366, STF368, STF369, STF450, STF471, STF160
3
 * @version $Id: LibSip_SIPTypesAndValues.ttcn 656 2018-02-16 08:32:25Z genoudoli $
-
 
-
 
3
 * @version $Id: LibSip_SIPTypesAndValues.ttcn 658 2018-06-14 06:44:44Z genoudoli $
4
 * @desc This module defines message, header, structured and simple SIP
4
 * @desc This module defines message, header, structured and simple SIP
5
 *             types as well constants used by LipSip constructs. <br>
5
 *             types as well constants used by LipSip constructs. <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
 *             This module is part of LibSipV3.
10
 *             This module is part of LibSipV3.
11
 * @remark Adding of new message and header types is ok; Adding of new optional header fields in
11
 * @remark Adding of new message and header types is ok; Adding of new optional header fields in
12
 * @see MessageHeader type is ok but should be done at same time as dummy template updates; Existing message or header types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org
12
 * @see MessageHeader type is ok but should be done at same time as dummy template updates; Existing message or header types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org
13
 */
13
 */
14
module LibSip_SIPTypesAndValues {
14
module LibSip_SIPTypesAndValues {
15
    import from LibSip_MessageBodyTypes all;
15
    import from LibSip_MessageBodyTypes all;
16
    import from LibSip_Common all;
16
    import from LibSip_Common all;
17
17
18
    group Constants {
18
    group Constants {
19
        group SimpleConstants {
19
        group SimpleConstants {
20
            // SIP name protocol plus version
20
            // SIP name protocol plus version
21
            const charstring c_sipNameVersion := "SIP/2.0";
21
            const charstring c_sipNameVersion := "SIP/2.0";
22
22
23
            // SIP name protocol
23
            // SIP name protocol
24
            const charstring c_sipName := "SIP";
24
            const charstring c_sipName := "SIP";
25
25
26
            // SIP version
26
            // SIP version
27
            const charstring c_sipVersion := "2.0";
27
            const charstring c_sipVersion := "2.0";
28
28
29
            // SIP scheme
29
            // SIP scheme
30
            const charstring c_sipScheme := "sip";
30
            const charstring c_sipScheme := "sip";
31
31
32
            // TEL scheme
32
            // TEL scheme
33
            const charstring c_telScheme := "tel";
33
            const charstring c_telScheme := "tel";
34
34
35
            // URN schema
35
            // URN schema
36
            const charstring c_urnScheme := "urn";
36
            const charstring c_urnScheme := "urn";
37
37
38
            // TAG_ID
38
            // TAG_ID
39
            const charstring c_tagId := "tag";
39
            const charstring c_tagId := "tag";
40
40
41
            // BRANCH_ID
41
            // BRANCH_ID
42
            const charstring c_branchId := "branch";
42
            const charstring c_branchId := "branch";
43
43
44
            // BRANCH_COOKIE
44
            // BRANCH_COOKIE
45
            const charstring c_branchCookie := "z9hG4bK";
45
            const charstring c_branchCookie := "z9hG4bK";
46
46
47
            // EXPIRES_ID
47
            // EXPIRES_ID
48
            const charstring c_expiresId := "expires";
48
            const charstring c_expiresId := "expires";
49
49
50
            // MADDR_ID
50
            // MADDR_ID
51
            const charstring c_maddrId := "maddr";
51
            const charstring c_maddrId := "maddr";
52
52
53
            // METHOD_ID
53
            // METHOD_ID
54
            const charstring c_methodId := "method";
54
            const charstring c_methodId := "method";
55
55
56
            // RECEIVED_ID
56
            // RECEIVED_ID
57
            const charstring c_receivedId := "received";
57
            const charstring c_receivedId := "received";
58
58
59
            // TTL_ID
59
            // TTL_ID
60
            const charstring c_ttlId := "ttl";
60
            const charstring c_ttlId := "ttl";
61
61
62
            // USER_ID
62
            // USER_ID
63
            const charstring c_userId := "user";
63
            const charstring c_userId := "user";
64
64
65
            // SDP name application
65
            // SDP name application
66
            const charstring c_sdpApplication := "application/sdp";
66
            const charstring c_sdpApplication := "application/sdp";
67
67
68
            // XML name application
68
            // XML name application
69
            const charstring c_xmlApplication := "application/xml";
69
            const charstring c_xmlApplication := "application/xml";
70
70
71
            // XML name application
71
            // XML name application
72
            const charstring c_xmlreginfoApplication := "application/reginfo+xml";
72
            const charstring c_xmlreginfoApplication := "application/reginfo+xml";
73
73
74
            // XML name resource-list
74
            // XML name resource-list
75
            const charstring c_xmlresourcelistApplication := "application/resource-lists+xml";
75
            const charstring c_xmlresourcelistApplication := "application/resource-lists+xml";
76
76
77
            // IMS 3GPP name application
77
            // IMS 3GPP name application
78
            const charstring c_ims3gppApplication := "application/3gpp-ims+xml";
78
            const charstring c_ims3gppApplication := "application/3gpp-ims+xml";
79
79
80
            // IMS 3GPP name CW application
80
            // IMS 3GPP name CW application
81
            const charstring c_ims3gppCwApplication := "application/vnd.3gpp.cw+xml";
81
            const charstring c_ims3gppCwApplication := "application/vnd.3gpp.cw+xml";
82
82
83
            // IMS ETSI name MCID application
83
            // IMS ETSI name MCID application
84
            const charstring c_imsEtsiMcidApplication := "application/vnd.etsi.mcid+xml";
84
            const charstring c_imsEtsiMcidApplication := "application/vnd.etsi.mcid+xml";
85
85
86
            // IMS ETSI name CUG application
86
            // IMS ETSI name CUG application
87
            const charstring c_imsEtsiCugApplication := "application/vnd.etsi.cug+xml";
87
            const charstring c_imsEtsiCugApplication := "application/vnd.etsi.cug+xml";
88
88
89
            // IMS ETSI name Simservs application(TIP/TIR, ACR, CDIV, OIP/OIR, CUG)
89
            // IMS ETSI name Simservs application(TIP/TIR, ACR, CDIV, OIP/OIR, CUG)
90
            const charstring c_imsEtsiSimservsApplication := "application/vnd.etsi.simservs+xml";
90
            const charstring c_imsEtsiSimservsApplication := "application/vnd.etsi.simservs+xml";
91
91
92
            // OCTET-STREAM name application
92
            // OCTET-STREAM name application
93
            const charstring c_octetApplication := "application/octet-stream";
93
            const charstring c_octetApplication := "application/octet-stream";
94
94
95
            // PLAIN-TEXT name application
95
            // PLAIN-TEXT name application
96
            const charstring c_plainText := "text/plain";
96
            const charstring c_plainText := "text/plain";
97
97
98
            // SIP fragment message
98
            // SIP fragment message
99
            const charstring c_sipfragMessage := "message/sipfrag";
99
            const charstring c_sipfragMessage := "message/sipfrag";
100
100
101
            // text content of 1300 bytes for messages with message body
101
            // text content of 1300 bytes for messages with message body
102
            const charstring c_longMessageContent_1300Bytes :=
102
            const charstring c_longMessageContent_1300Bytes :=
103
                "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" &
103
                "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" &
104
                "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & oct2char('0D'O) & oct2char('0A'O); // CRLF
104
                "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & oct2char('0D'O) & oct2char('0A'O); // CRLF
105
            // Default SIP port number : 5060
105
            // Default SIP port number : 5060
106
            const integer c_defaultSipPort := 5060;
106
            const integer c_defaultSipPort := 5060;
107
107
108
            // Default SIP protocol : UDP
108
            // Default SIP protocol : UDP
109
            const charstring c_defaultSipProt := "UDP";
109
            const charstring c_defaultSipProt := "UDP";
110
110
111
            // Fixed IP multicast address
111
            // Fixed IP multicast address
112
            const charstring c_mcastSipIpaddr := "224.0.1.75";
112
            const charstring c_mcastSipIpaddr := "224.0.1.75";
113
113
114
            // Short delta-second used in expires parameter to acknowledge a registration
114
            // Short delta-second used in expires parameter to acknowledge a registration
115
            const charstring c_shortRegistration := "3600";
115
            const charstring c_shortRegistration := "3600";
116
116
117
            // ([RFC3891 ] Sec 6.1)
117
            // ([RFC3891 ] Sec 6.1)
118
            const charstring c_earlyFlag := "early-only";
118
            const charstring c_earlyFlag := "early-only";
119
119
120
            // option tag replaces ([RFC3261 ] )
120
            // option tag replaces ([RFC3261 ] )
121
            const charstring c_replaces := "replaces";
121
            const charstring c_replaces := "replaces";
122
122
123
            // option tag 100rel (reliable provisional response [RFC3262 ] )
123
            // option tag 100rel (reliable provisional response [RFC3262 ] )
124
            const charstring c_tag100rel := "100rel";
124
            const charstring c_tag100rel := "100rel";
125
125
126
            // option tag from-change ([RFC4916 ] )
126
            // option tag from-change ([RFC4916 ] )
127
            const charstring c_tagFromChange := "from-change";
127
            const charstring c_tagFromChange := "from-change";
128
128
129
            // option tag precondition (ch.11 [RFC3312 ] )
129
            // option tag precondition (ch.11 [RFC3312 ] )
130
            const charstring c_tagPrecond := "precondition";
130
            const charstring c_tagPrecond := "precondition";
131
131
132
            // due to problem with TAU compiler because hardcoded return statement constant is created
132
            // due to problem with TAU compiler because hardcoded return statement constant is created
133
            const HostPort c_hostport_dummy := {
133
            const HostPort c_hostport_dummy := {
134
                host := "",
134
                host := "",
135
                portField := c_defaultSipPort
135
                portField := c_defaultSipPort
136
            };
136
            };
137
137
138
            // CLIP/CLIR information
138
            // CLIP/CLIR information
139
            const PrivacyValue c_privacy_none := "none";
139
            const PrivacyValue c_privacy_none := "none";
140
            const PrivacyValue c_privacy_id := "id";
140
            const PrivacyValue c_privacy_id := "id";
141
            const PrivacyValue c_privacy_header := "header";
141
            const PrivacyValue c_privacy_header := "header";
142
            const PrivacyValue c_privacy_user := "user";
142
            const PrivacyValue c_privacy_user := "user";
143
            const PrivacyValue c_privacy_critical := "critical";
143
            const PrivacyValue c_privacy_critical := "critical";
144
            const PrivacyValue c_privacy_session := "session";
144
            const PrivacyValue c_privacy_session := "session";
145
145
146
            //
146
            //
147
            const charstring c_AT := "@"; // MRO
147
            const charstring c_AT := "@"; // MRO
148
            const charstring c_SP := oct2char('20'O);
148
            const charstring c_SP := oct2char('20'O);
149
            const charstring c_SLASH := oct2char('2F'O);
149
            const charstring c_SLASH := oct2char('2F'O);
150
            const charstring c_LT := oct2char('3C'O);
150
            const charstring c_LT := oct2char('3C'O);
151
            const charstring c_GT := oct2char('3E'O);
151
            const charstring c_GT := oct2char('3E'O);
152
152
153
            // * (wildchard) sign
153
            // * (wildchard) sign
154
            const charstring c_WILDCARD := "*";
154
            const charstring c_WILDCARD := "*";
155
155
156
            const integer c_CRlen := 2;
156
            const integer c_CRlen := 2;
157
            // length of new line (0d0a)
157
            // length of new line (0d0a)
158
            const GenericParam c_Integrity_protected_yes := {"integrity-protected", {tokenOrHost := "yes"}};
158
            const GenericParam c_Integrity_protected_yes := {"integrity-protected", {tokenOrHost := "yes"}};
159
            const GenericParam c_Integrity_protected_no := {"integrity-protected", {tokenOrHost := "no"}};
159
            const GenericParam c_Integrity_protected_no := {"integrity-protected", {tokenOrHost := "no"}};
160
            const GenericParam c_Integrity_protected_ip_assoc_pending := {"integrity-protected", {tokenOrHost := "ip-assoc-pending"}};
160
            const GenericParam c_Integrity_protected_ip_assoc_pending := {"integrity-protected", {tokenOrHost := "ip-assoc-pending"}};
161
161
162
            const charstring c_algorithm := "MD5";
162
            const charstring c_algorithm := "MD5";
163
163
164
        } // end group SimpleConstants
164
        } // end group SimpleConstants
165
165
166
        group AuthorizationConstants {
166
        group AuthorizationConstants {
167
167
168
            const charstring c_ik := "";
168
            const charstring c_ik := "";
169
            const charstring c_ck := "";
169
            const charstring c_ck := "";
170
            const charstring c_nonce := "";
170
            const charstring c_nonce := "";
171
            const charstring c_nonce_value := "0edff6c521cc3f407f2d9e01cf6ed82b";
171
            const charstring c_nonce_value := "0edff6c521cc3f407f2d9e01cf6ed82b";
172
172
173
173
174
        } // end group AuthorizationConstants
174
        } // end group AuthorizationConstants
175
175
176
        group PChargingVectorConstants {
176
        group PChargingVectorConstants {
177
177
178
            const charstring c_icid := "icid-value";
178
            const charstring c_icid := "icid-value";
179
            const charstring c_icid_value := "123abc";
179
            const charstring c_icid_value := "123abc";
180
            const charstring c_icid_generated_at := "icid-generated-at";
180
            const charstring c_icid_generated_at := "icid-generated-at";
181
            const charstring c_orig_ioi := "orig-ioi";
181
            const charstring c_orig_ioi := "orig-ioi";
182
            const charstring c_term_ioi := "term-ioi";
182
            const charstring c_term_ioi := "term-ioi";
183
            const charstring c_access_network_charging_info := "access-network-charging-info";
183
            const charstring c_access_network_charging_info := "access-network-charging-info";
184
184
185
185
186
        } // end group PChargingVectorConstants
186
        } // end group PChargingVectorConstants
187
187
188
        group HeaderFieldConstants {
188
        group HeaderFieldConstants {
189
189
190
            const CallId c_empty_CallId := {
190
            const CallId c_empty_CallId := {
191
                fieldName := CALL_ID_E,
191
                fieldName := CALL_ID_E,
192
                callid := ""
192
                callid := ""
193
            };
193
            };
194
194
195
            const ContentType c_empty_ContentType := {
195
            const ContentType c_empty_ContentType := {
196
                fieldName := CONTENT_TYPE_E,
196
                fieldName := CONTENT_TYPE_E,
197
                mTypeSubtype := ""
-
 
-
 
197
                mTypeSubtype := "",
-
 
198
                mParams := omit
198
            };
199
            };
199
200
200
            const CSeq c_empty_cSeq := {
201
            const CSeq c_empty_cSeq := {
201
                fieldName := CSEQ_E,
202
                fieldName := CSEQ_E,
202
                seqNumber := 0,
203
                seqNumber := 0,
203
                method := "EMPTY"
204
                method := "EMPTY"
204
            };
205
            };
205
206
206
            const From c_empty_From := {
207
            const From c_empty_From := {
207
                fieldName := FROM_E,
208
                fieldName := FROM_E,
208
                addressField := {
209
                addressField := {
209
                    nameAddr := {
210
                    nameAddr := {
210
                        displayName := omit,
211
                        displayName := omit,
211
                        addrSpec := {
212
                        addrSpec := {
212
                            scheme := c_sipScheme,
213
                            scheme := c_sipScheme,
213
                            components := {
214
                            components := {
214
                                sip := {
215
                                sip := {
215
                                    userInfo := omit,
216
                                    userInfo := omit,
216
                                    hostPort := {
217
                                    hostPort := {
217
                                        host := "127.0.0.1",
218
                                        host := "127.0.0.1",
218
                                        portField := c_defaultSipPort
219
                                        portField := c_defaultSipPort
219
                                    }
220
                                    }
220
                                }
221
                                }
221
                            },
222
                            },
222
                            urlParameters := omit,
223
                            urlParameters := omit,
223
                            headers := omit
224
                            headers := omit
224
                        }
225
                        }
225
                    }
226
                    }
226
                },
227
                },
227
                fromParams := omit
228
                fromParams := omit
228
            };
229
            };
229
230
230
            const MaxForwards c_maxForwards70 := {
231
            const MaxForwards c_maxForwards70 := {
231
                fieldName := MAX_FORWARDS_E,
232
                fieldName := MAX_FORWARDS_E,
232
                forwards := 70
233
                forwards := 70
233
            };
234
            };
234
235
235
            const SipUrl c_empty_RequestUri := {
236
            const SipUrl c_empty_RequestUri := {
236
                scheme := c_sipScheme,
237
                scheme := c_sipScheme,
237
                components := {
238
                components := {
238
                    sip := {
239
                    sip := {
239
                        userInfo := omit,
240
                        userInfo := omit,
240
                        hostPort := {
241
                        hostPort := {
241
                            host := "127.0.0.1",
242
                            host := "127.0.0.1",
242
                            portField := c_defaultSipPort
243
                            portField := c_defaultSipPort
243
                        }
244
                        }
244
                    }
245
                    }
245
                },
246
                },
246
                urlParameters := omit,
247
                urlParameters := omit,
247
                headers := omit
248
                headers := omit
248
            };
249
            };
249
250
250
            const SipUrl c_unavailableUri := {
251
            const SipUrl c_unavailableUri := {
251
                scheme := c_sipScheme,
252
                scheme := c_sipScheme,
252
                components := {
253
                components := {
253
                    sip := {
254
                    sip := {
254
                        userInfo := {
255
                        userInfo := {
255
                            userOrTelephoneSubscriber := "unavailable",
256
                            userOrTelephoneSubscriber := "unavailable",
256
                            password := omit
257
                            password := omit
257
                        },
258
                        },
258
                        hostPort := {
259
                        hostPort := {
259
                            host := "anonymous.invalid",
260
                            host := "anonymous.invalid",
260
                            portField := c_defaultSipPort
261
                            portField := c_defaultSipPort
261
                        }
262
                        }
262
                    }
263
                    }
263
                },
264
                },
264
                urlParameters := omit,
265
                urlParameters := omit,
265
                headers := omit
266
                headers := omit
266
            };
267
            };
267
268
268
            const To c_empty_To := { // value of To header
269
            const To c_empty_To := { // value of To header
269
                fieldName := TO_E,
270
                fieldName := TO_E,
270
                addressField := {
271
                addressField := {
271
                    nameAddr := {
272
                    nameAddr := {
272
                        displayName := omit,
273
                        displayName := omit,
273
                        addrSpec := {
274
                        addrSpec := {
274
                            scheme := c_sipScheme,
275
                            scheme := c_sipScheme,
275
                            components := {
276
                            components := {
276
                                sip := {
277
                                sip := {
277
                                    userInfo := omit,
278
                                    userInfo := omit,
278
                                    hostPort := {
279
                                    hostPort := {
279
                                        host := "127.0.0.1",
280
                                        host := "127.0.0.1",
280
                                        portField := c_defaultSipPort
281
                                        portField := c_defaultSipPort
281
                                    }
282
                                    }
282
                                }
283
                                }
283
                            },
284
                            },
284
                            urlParameters := omit,
285
                            urlParameters := omit,
285
                            headers := omit
286
                            headers := omit
286
                        }
287
                        }
287
                    }
288
                    }
288
                },
289
                },
289
                toParams := omit
290
                toParams := omit
290
            };
291
            };
291
292
292
            const Via c_empty_Via := {
293
            const Via c_empty_Via := {
293
                fieldName := VIA_E,
294
                fieldName := VIA_E,
294
                viaBody := {
295
                viaBody := {
295
                    {
296
                    {
296
                        sentProtocol := {
297
                        sentProtocol := {
297
                            protocolName := c_sipName,
298
                            protocolName := c_sipName,
298
                            protocolVersion := c_sipVersion,
299
                            protocolVersion := c_sipVersion,
299
                            transport := c_defaultSipProt
300
                            transport := c_defaultSipProt
300
                        },
301
                        },
301
                        sentBy := {
302
                        sentBy := {
302
                            host := "127.0.0.1",
303
                            host := "127.0.0.1",
303
                            portField := c_defaultSipPort
304
                            portField := c_defaultSipPort
304
                        },
305
                        },
305
                        viaParams := omit
306
                        viaParams := omit
306
                    }
307
                    }
307
                }
308
                }
308
            };
309
            };
309
310
310
311
311
        }
312
        }
312
313
313
314
314
        group UserProfileConstants {
315
        group UserProfileConstants {
315
            // number of user profile from 1-10 for SIP profile
316
            // number of user profile from 1-10 for SIP profile
316
            const integer c_userProfile_SIP1_home := 1;
317
            const integer c_userProfile_SIP1_home := 1;
317
            const integer c_userProfile_SIP2_home := 2;
318
            const integer c_userProfile_SIP2_home := 2;
318
319
319
320
320
        } // end group UserProfileConstants
321
        } // end group UserProfileConstants
321
322
322
        group StatusLines {
323
        group StatusLines {
323
            const StatusLine c_statusLine100 := {c_sipNameVersion, 100, "Trying"};
324
            const StatusLine c_statusLine100 := {c_sipNameVersion, 100, "Trying"};
324
            const StatusLine c_statusLine180 := {c_sipNameVersion, 180, "Ringing"};
325
            const StatusLine c_statusLine180 := {c_sipNameVersion, 180, "Ringing"};
325
            const StatusLine c_statusLine181 := {c_sipNameVersion, 181, "Call Is Being Forwarded"};
326
            const StatusLine c_statusLine181 := {c_sipNameVersion, 181, "Call Is Being Forwarded"};
326
            const StatusLine c_statusLine182 := {c_sipNameVersion, 182, "Queued"};
327
            const StatusLine c_statusLine182 := {c_sipNameVersion, 182, "Queued"};
327
            const StatusLine c_statusLine183 := {c_sipNameVersion, 183, "Session Progress"};
328
            const StatusLine c_statusLine183 := {c_sipNameVersion, 183, "Session Progress"};
328
329
329
            const StatusLine c_statusLine200 := {c_sipNameVersion, 200, "OK"};
330
            const StatusLine c_statusLine200 := {c_sipNameVersion, 200, "OK"};
330
            const StatusLine c_statusLine202 := {c_sipNameVersion, 202, "Accepted"};
331
            const StatusLine c_statusLine202 := {c_sipNameVersion, 202, "Accepted"};
331
332
332
            const StatusLine c_statusLine300 := {c_sipNameVersion, 300, "Multiple Choices"};
333
            const StatusLine c_statusLine300 := {c_sipNameVersion, 300, "Multiple Choices"};
333
            const StatusLine c_statusLine301 := {c_sipNameVersion, 301, "Moved Permanently"};
334
            const StatusLine c_statusLine301 := {c_sipNameVersion, 301, "Moved Permanently"};
334
            const StatusLine c_statusLine302 := {c_sipNameVersion, 302, "Moved Temporarily"};
335
            const StatusLine c_statusLine302 := {c_sipNameVersion, 302, "Moved Temporarily"};
335
            const StatusLine c_statusLine305 := {c_sipNameVersion, 305, "Use Proxy"};
336
            const StatusLine c_statusLine305 := {c_sipNameVersion, 305, "Use Proxy"};
336
            const StatusLine c_statusLine380 := {c_sipNameVersion, 380, "Alternative Service"};
337
            const StatusLine c_statusLine380 := {c_sipNameVersion, 380, "Alternative Service"};
337
338
338
            const StatusLine c_statusLine400 := {c_sipNameVersion, 400, "Bad Request"};
339
            const StatusLine c_statusLine400 := {c_sipNameVersion, 400, "Bad Request"};
339
            const StatusLine c_statusLine401 := {c_sipNameVersion, 401, "Unauthorized"};
340
            const StatusLine c_statusLine401 := {c_sipNameVersion, 401, "Unauthorized"};
340
            const StatusLine c_statusLine402 := {c_sipNameVersion, 402, "Payment Required"};
341
            const StatusLine c_statusLine402 := {c_sipNameVersion, 402, "Payment Required"};
341
            const StatusLine c_statusLine403 := {c_sipNameVersion, 403, "Forbidden"};
342
            const StatusLine c_statusLine403 := {c_sipNameVersion, 403, "Forbidden"};
342
            const StatusLine c_statusLine404 := {c_sipNameVersion, 404, "Not Found"};
343
            const StatusLine c_statusLine404 := {c_sipNameVersion, 404, "Not Found"};
343
            const StatusLine c_statusLine405 := {c_sipNameVersion, 405, "Method Not Allowed"};
344
            const StatusLine c_statusLine405 := {c_sipNameVersion, 405, "Method Not Allowed"};
344
            const StatusLine c_statusLine406 := {c_sipNameVersion, 406, "Not Acceptable"};
345
            const StatusLine c_statusLine406 := {c_sipNameVersion, 406, "Not Acceptable"};
345
            const StatusLine c_statusLine407 := {c_sipNameVersion, 407, "Proxy Authentication Required"};
346
            const StatusLine c_statusLine407 := {c_sipNameVersion, 407, "Proxy Authentication Required"};
346
            const StatusLine c_statusLine408 := {c_sipNameVersion, 408, "Request Timeout"};
347
            const StatusLine c_statusLine408 := {c_sipNameVersion, 408, "Request Timeout"};
347
            const StatusLine c_statusLine410 := {c_sipNameVersion, 410, "Gone"};
348
            const StatusLine c_statusLine410 := {c_sipNameVersion, 410, "Gone"};
348
            const StatusLine c_statusLine413 := {c_sipNameVersion, 413, "Request Entity Too Large"};
349
            const StatusLine c_statusLine413 := {c_sipNameVersion, 413, "Request Entity Too Large"};
349
            const StatusLine c_statusLine414 := {c_sipNameVersion, 414, "Request-URI Too Long"};
350
            const StatusLine c_statusLine414 := {c_sipNameVersion, 414, "Request-URI Too Long"};
350
            const StatusLine c_statusLine415 := {c_sipNameVersion, 415, "Unsupported Media Type"};
351
            const StatusLine c_statusLine415 := {c_sipNameVersion, 415, "Unsupported Media Type"};
351
            const StatusLine c_statusLine416 := {c_sipNameVersion, 416, "Unsupported URI Scheme"};
352
            const StatusLine c_statusLine416 := {c_sipNameVersion, 416, "Unsupported URI Scheme"};
352
            const StatusLine c_statusLine420 := {c_sipNameVersion, 420, "Bad Extension"};
353
            const StatusLine c_statusLine420 := {c_sipNameVersion, 420, "Bad Extension"};
353
            const StatusLine c_statusLine421 := {c_sipNameVersion, 421, "Extension Required"};
354
            const StatusLine c_statusLine421 := {c_sipNameVersion, 421, "Extension Required"};
354
            const StatusLine c_statusLine422 := {c_sipNameVersion, 422, "Session Interval Too Small"};
355
            const StatusLine c_statusLine422 := {c_sipNameVersion, 422, "Session Interval Too Small"};
355
            const StatusLine c_statusLine423 := {c_sipNameVersion, 423, "Interval Too Brief"};
356
            const StatusLine c_statusLine423 := {c_sipNameVersion, 423, "Interval Too Brief"};
356
            const StatusLine c_statusLine433 := {c_sipNameVersion, 433, "Anonymity Disallowed"};
357
            const StatusLine c_statusLine433 := {c_sipNameVersion, 433, "Anonymity Disallowed"};
357
            const StatusLine c_statusLine480 := {c_sipNameVersion, 480, "Temporarily Unavailable"};
358
            const StatusLine c_statusLine480 := {c_sipNameVersion, 480, "Temporarily Unavailable"};
358
            const StatusLine c_statusLine481 := {c_sipNameVersion, 481, "Call/Transaction Does Not Exist"};
359
            const StatusLine c_statusLine481 := {c_sipNameVersion, 481, "Call/Transaction Does Not Exist"};
359
            const StatusLine c_statusLine482 := {c_sipNameVersion, 482, "Loop Detected"};
360
            const StatusLine c_statusLine482 := {c_sipNameVersion, 482, "Loop Detected"};
360
            const StatusLine c_statusLine483 := {c_sipNameVersion, 483, "Too Many Hops"};
361
            const StatusLine c_statusLine483 := {c_sipNameVersion, 483, "Too Many Hops"};
361
            const StatusLine c_statusLine484 := {c_sipNameVersion, 484, "Address Incomplete"};
362
            const StatusLine c_statusLine484 := {c_sipNameVersion, 484, "Address Incomplete"};
362
            const StatusLine c_statusLine485 := {c_sipNameVersion, 485, "Ambiguous"};
363
            const StatusLine c_statusLine485 := {c_sipNameVersion, 485, "Ambiguous"};
363
            const StatusLine c_statusLine486 := {c_sipNameVersion, 486, "Busy Here"};
364
            const StatusLine c_statusLine486 := {c_sipNameVersion, 486, "Busy Here"};
364
            const StatusLine c_statusLine487 := {c_sipNameVersion, 487, "Request Terminated"};
365
            const StatusLine c_statusLine487 := {c_sipNameVersion, 487, "Request Terminated"};
365
            const StatusLine c_statusLine488 := {c_sipNameVersion, 488, "Not Acceptable Here"};
366
            const StatusLine c_statusLine488 := {c_sipNameVersion, 488, "Not Acceptable Here"};
366
            const StatusLine c_statusLine493 := {c_sipNameVersion, 493, "Undecipherable"};
367
            const StatusLine c_statusLine493 := {c_sipNameVersion, 493, "Undecipherable"};
367
            const StatusLine c_statusLine500 := {c_sipNameVersion, 500, "Server Internal Error"};
368
            const StatusLine c_statusLine500 := {c_sipNameVersion, 500, "Server Internal Error"};
368
            const StatusLine c_statusLine501 := {c_sipNameVersion, 501, "Not implemented"};
369
            const StatusLine c_statusLine501 := {c_sipNameVersion, 501, "Not implemented"};
369
            const StatusLine c_statusLine502 := {c_sipNameVersion, 502, "Bad Gateway"};
370
            const StatusLine c_statusLine502 := {c_sipNameVersion, 502, "Bad Gateway"};
370
            const StatusLine c_statusLine503 := {c_sipNameVersion, 503, "Service Unavailable"};
371
            const StatusLine c_statusLine503 := {c_sipNameVersion, 503, "Service Unavailable"};
371
            const StatusLine c_statusLine504 := {c_sipNameVersion, 504, "Server Time-out"};
372
            const StatusLine c_statusLine504 := {c_sipNameVersion, 504, "Server Time-out"};
372
            const StatusLine c_statusLine505 := {c_sipNameVersion, 505, "Version Not Supported"};
373
            const StatusLine c_statusLine505 := {c_sipNameVersion, 505, "Version Not Supported"};
373
            const StatusLine c_statusLine513 := {c_sipNameVersion, 513, "Message Too Large"};
374
            const StatusLine c_statusLine513 := {c_sipNameVersion, 513, "Message Too Large"};
374
            const StatusLine c_statusLine580 := {c_sipNameVersion, 580, "Precondition Failure"};
375
            const StatusLine c_statusLine580 := {c_sipNameVersion, 580, "Precondition Failure"};
375
            const StatusLine c_statusLine600 := {c_sipNameVersion, 600, "Busy Everywhere"};
376
            const StatusLine c_statusLine600 := {c_sipNameVersion, 600, "Busy Everywhere"};
376
            const StatusLine c_statusLine603 := {c_sipNameVersion, 603, "Decline"};
377
            const StatusLine c_statusLine603 := {c_sipNameVersion, 603, "Decline"};
377
            const StatusLine c_statusLine604 := {c_sipNameVersion, 604, "Does Not Exist Anywhere"};
378
            const StatusLine c_statusLine604 := {c_sipNameVersion, 604, "Does Not Exist Anywhere"};
378
            const StatusLine c_statusLine606 := {c_sipNameVersion, 606, "Not Acceptable"};
379
            const StatusLine c_statusLine606 := {c_sipNameVersion, 606, "Not Acceptable"};
379
380
380
381
381
        } // end StatusLines
382
        } // end StatusLines
382
383
383
        group SIPSyncPointNames {
384
        group SIPSyncPointNames {
384
            const charstring c_Ringing := "Ringing";
385
            const charstring c_Ringing := "Ringing";
385
            const charstring c_uPlane := "uPlane";
386
            const charstring c_uPlane := "uPlane";
386
            const charstring c_sync1 := "sync1";
387
            const charstring c_sync1 := "sync1";
387
            const charstring c_sync2 := "sync2";
388
            const charstring c_sync2 := "sync2";
388
            const charstring c_sync3 := "sync3";
389
            const charstring c_sync3 := "sync3";
389
            const charstring c_sync4 := "sync4";
390
            const charstring c_sync4 := "sync4";
390
            const charstring c_uPlaneStop := "uPlaneStop";
391
            const charstring c_uPlaneStop := "uPlaneStop";
391
            const charstring c_annoucA := "announcementA";
392
            const charstring c_annoucA := "announcementA";
392
            const charstring c_annoucB := "announcementB";
393
            const charstring c_annoucB := "announcementB";
393
            const charstring c_annouc := "announcement";
394
            const charstring c_annouc := "announcement";
394
            const charstring c_voicem := "voiceMessage";
395
            const charstring c_voicem := "voiceMessage";
395
        }
396
        }
396
397
397
398
398
    } // end group Constants
399
    } // end group Constants
399
400
400
    group Types {
401
    group Types {
401
        group SubTypes {
402
        group SubTypes {
402
            // Subtypes
403
            // Subtypes
403
            group TokenTypes // TokensTypes
404
            group TokenTypes // TokensTypes
404
                              {
405
                              {
405
                // [20 ]
406
                // [20 ]
406
                type enumerated FieldName {
407
                type enumerated FieldName {
407
                    ACCEPT_E,
408
                    ACCEPT_E,
408
                    ACCEPT_ENCODING_E,
409
                    ACCEPT_ENCODING_E,
409
                    ACCEPT_LANGUAGE_E,
410
                    ACCEPT_LANGUAGE_E,
410
                    ALERT_INFO_E,
411
                    ALERT_INFO_E,
411
                    ALLOW_E,
412
                    ALLOW_E,
412
                    AUTHENTICATION_INFO_E,
413
                    AUTHENTICATION_INFO_E,
413
                    AUTHORIZATION_E,
414
                    AUTHORIZATION_E,
414
                    CALL_ID_E,
415
                    CALL_ID_E,
415
                    CALL_INFO_E,
416
                    CALL_INFO_E,
416
                    CONTACT_E,
417
                    CONTACT_E,
417
                    CONTENT_DISPOSITION_E,
418
                    CONTENT_DISPOSITION_E,
418
                    CONTENT_ENCODING_E,
419
                    CONTENT_ENCODING_E,
419
                    CONTENT_LANGUAGE_E,
420
                    CONTENT_LANGUAGE_E,
420
                    CONTENT_LENGTH_E,
421
                    CONTENT_LENGTH_E,
421
                    CONTENT_TYPE_E,
422
                    CONTENT_TYPE_E,
422
                    CSEQ_E,
423
                    CSEQ_E,
423
                    DATE_E,
424
                    DATE_E,
424
                    ERROR_INFO_E,
425
                    ERROR_INFO_E,
425
                    EXPIRES_E,
426
                    EXPIRES_E,
426
                    FROM_E,
427
                    FROM_E,
427
                    IN_REPLY_TO_E,
428
                    IN_REPLY_TO_E,
428
                    MAX_FORWARDS_E,
429
                    MAX_FORWARDS_E,
429
                    MIME_VERSION_E,
430
                    MIME_VERSION_E,
430
                    MIN_EXPIRES_E,
431
                    MIN_EXPIRES_E,
431
                    ORGANIZATION_E,
432
                    ORGANIZATION_E,
432
                    PRIORITY_E,
433
                    PRIORITY_E,
433
                    PROXY_AUTHENTICATE_E,
434
                    PROXY_AUTHENTICATE_E,
434
                    PROXY_AUTHORIZATION_E,
435
                    PROXY_AUTHORIZATION_E,
435
                    PROXY_REQUIRE_E,
436
                    PROXY_REQUIRE_E,
436
                    RECORD_ROUTE_E,
437
                    RECORD_ROUTE_E,
437
                    REPLY_TO_E,
438
                    REPLY_TO_E,
438
                    REQUIRE_E,
439
                    REQUIRE_E,
439
                    RETRY_AFTER_E,
440
                    RETRY_AFTER_E,
440
                    ROUTE_E,
441
                    ROUTE_E,
441
                    SERVER_E,
442
                    SERVER_E,
442
                    SUBJECT_E,
443
                    SUBJECT_E,
443
                    SUPPORTED_E,
444
                    SUPPORTED_E,
444
                    TIMESTAMP_E,
445
                    TIMESTAMP_E,
445
                    TO_E,
446
                    TO_E,
446
                    UNSUPPORTED_E,
447
                    UNSUPPORTED_E,
447
                    USER_AGENT_E,
448
                    USER_AGENT_E,
448
                    VIA_E,
449
                    VIA_E,
449
                    WARNING_E,
450
                    WARNING_E,
450
                    WWW_AUTHENTICATE_E,
451
                    WWW_AUTHENTICATE_E,
451
                    // [3262/7.1 ]
452
                    // [3262/7.1 ]
452
                    RACK_E,
453
                    RACK_E,
453
                    RSEQ_E,
454
                    RSEQ_E,
454
                    // [3265/7.2 ]
455
                    // [3265/7.2 ]
455
                    ALLOW_EVENTS_E,
456
                    ALLOW_EVENTS_E,
456
                    EVENT_E,
457
                    EVENT_E,
457
                    SUBSCRIPTION_STATE_E,
458
                    SUBSCRIPTION_STATE_E,
458
                    // [3313 ]
459
                    // [3313 ]
459
                    P_MEDIA_AUTHORIZATION_E,
460
                    P_MEDIA_AUTHORIZATION_E,
460
                    // [3323 ]
461
                    // [3323 ]
461
                    PRIVACY_E,
462
                    PRIVACY_E,
462
                    // [3325 ]
463
                    // [3325 ]
463
                    P_ASSERTED_ID_E,
464
                    P_ASSERTED_ID_E,
464
                    P_PREFERRED_ID_E,
465
                    P_PREFERRED_ID_E,
465
                    P_PREFERRED_SERVICE_E,
466
                    P_PREFERRED_SERVICE_E,
466
                    // [3326 ]
467
                    // [3326 ]
467
                    REASON_E,
468
                    REASON_E,
468
                    // [3515 ] - REFER method
469
                    // [3515 ] - REFER method
469
                    REFER_TO_E,
470
                    REFER_TO_E,
470
                    // [4488 ] - REFER method
471
                    // [4488 ] - REFER method
471
                    REFER_SUB_E,
472
                    REFER_SUB_E,
472
                    // [3891 ]
473
                    // [3891 ]
473
                    REPLACES_E,
474
                    REPLACES_E,
474
                    // [3892 ] - REFER method
475
                    // [3892 ] - REFER method
475
                    REFERRED_BY_E,
476
                    REFERRED_BY_E,
476
                    // [4244 ]
477
                    // [4244 ]
477
                    HISTORY_INFO_E,
478
                    HISTORY_INFO_E,
478
                    // [3313 ]
479
                    // [3313 ]
479
                    P_MEDIA_AUTH_E,
480
                    P_MEDIA_AUTH_E,
480
                    // [3327 ]
481
                    // [3327 ]
481
                    PATH_E,
482
                    PATH_E,
482
                    // [3329 ]
483
                    // [3329 ]
483
                    SECURITY_CLIENT_E,
484
                    SECURITY_CLIENT_E,
484
                    SECURITY_SERVER_E,
485
                    SECURITY_SERVER_E,
485
                    SECURITY_VERIFY_E,
486
                    SECURITY_VERIFY_E,
486
                    // [3455 ]
487
                    // [3455 ]
487
                    P_ACCESS_NETWORK_INFO_E,
488
                    P_ACCESS_NETWORK_INFO_E,
488
                    P_ASSOCIATED_URI_E,
489
                    P_ASSOCIATED_URI_E,
489
                    P_CALLED_PARTY_E,
490
                    P_CALLED_PARTY_E,
490
                    P_CHARGING_FUNCTION_ADDRESSES_E,
491
                    P_CHARGING_FUNCTION_ADDRESSES_E,
491
                    P_CHARGING_VECTOR_E,
492
                    P_CHARGING_VECTOR_E,
492
                    P_VISITED_NETWORK_E,
493
                    P_VISITED_NETWORK_E,
493
                    // [3608 ]
494
                    // [3608 ]
494
                    SERVICE_ROUTE_E,
495
                    SERVICE_ROUTE_E,
495
                    // [3841 ]
496
                    // [3841 ]
496
                    ACCEPT_CONTACT_E,
497
                    ACCEPT_CONTACT_E,
497
                    REQUEST_DISPOSITION_E,
498
                    REQUEST_DISPOSITION_E,
498
                    // [4028 ]
499
                    // [4028 ]
499
                    MIN_SE_E,
500
                    MIN_SE_E,
500
                    SESSION_EXPIRES_E,
501
                    SESSION_EXPIRES_E,
501
                    P_ASSERTED_SERVICE_E,
502
                    P_ASSERTED_SERVICE_E,
502
                    // [5009 ]
503
                    // [5009 ]
503
                    P_EARLY_MEDIA_E,
504
                    P_EARLY_MEDIA_E,
504
                    // http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07
505
                    // http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07
505
                    // Transporting User to User Call Control Information in SIP for ISDN Interworking
506
                    // Transporting User to User Call Control Information in SIP for ISDN Interworking
506
                    USER_TO_USER_E,
507
                    USER_TO_USER_E,
507
                    // [6442 ] /*
508
                    // [6442 ] /*
508
                    GEOLOCATION_E,
509
                    GEOLOCATION_E,
509
                    GEOLOCATION_ROUTING_E,
510
                    GEOLOCATION_ROUTING_E,
510
                    SESSION_ID_E,
511
                    SESSION_ID_E,
511
                    SIP_ETAG_E,
512
                    SIP_ETAG_E,
512
                    SIP_IF_MATCH_E,
513
                    SIP_IF_MATCH_E,
513
                    FEATURE_CAPS_E,
514
                    FEATURE_CAPS_E,
514
                    // 6086
515
                    // 6086
515
                    RECV_INFO_E,
516
                    RECV_INFO_E,
516
                    INFO_PACKAGE_E,
517
                    INFO_PACKAGE_E,
517
                    // 2616
518
                    // 2616
518
                    HOST_E,
519
                    HOST_E,
519
                    // 
520
                    // 
520
                    RESOURCE_PRIORITY_E, //4412
521
                    RESOURCE_PRIORITY_E, //4412
521
                    ANSWER_MODE_E, //5373
522
                    ANSWER_MODE_E, //5373
522
                    PRIV_ANSWER_MODE_E, //5373
523
                    PRIV_ANSWER_MODE_E, //5373
523
                    TARGET_DIALOG_E, //4538
524
                    TARGET_DIALOG_E, //4538
524
                    P_ANSWER_STATE_E //4964
525
                    P_ANSWER_STATE_E //4964
525
                }
526
                }
526
527
527
                // [7.1 ]
528
                // [7.1 ]
528
                type enumerated Method {
529
                type enumerated Method {
529
                    ACK_E,
530
                    ACK_E,
530
                    BYE_E,
531
                    BYE_E,
531
                    CANCEL_E,
532
                    CANCEL_E,
532
                    INVITE_E,
533
                    INVITE_E,
533
                    OPTIONS_E,
534
                    OPTIONS_E,
534
                    REGISTER_E,
535
                    REGISTER_E,
535
                    PRACK_E // Note: this element is not defined in [5 ]
536
                    PRACK_E // Note: this element is not defined in [5 ]
536
                            ,
537
                            ,
537
                    SUBSCRIBE_E,
538
                    SUBSCRIBE_E,
538
                    NOTIFY_E // [3265 ]
539
                    NOTIFY_E // [3265 ]
539
                             ,
540
                             ,
540
                    PUBLISH_E // [3903/12 ]
541
                    PUBLISH_E // [3903/12 ]
541
                              ,
542
                              ,
542
                    REFER_E // [3515 ]
543
                    REFER_E // [3515 ]
543
                            ,
544
                            ,
544
                    UPDATE_E // [3311 ]
545
                    UPDATE_E // [3311 ]
545
                             ,
546
                             ,
546
                    MESSAGE_E // [3428 ]
547
                    MESSAGE_E // [3428 ]
547
                              ,
548
                              ,
548
                    INFO_E // [2976 ]
549
                    INFO_E // [2976 ]
549
                           ,
550
                           ,
550
                    UNKNOWN_METHOD_E
551
                    UNKNOWN_METHOD_E
551
                }
552
                }
552
553
553
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43 ]
554
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43 ]
554
                type record HostPort {
555
                type record HostPort {
555
                    charstring host optional, // hostname, IPv4 or IPv6
556
                    charstring host optional, // hostname, IPv4 or IPv6
556
                    integer portField optional // represented as an integer
557
                    integer portField optional // represented as an integer
557
                }
558
                }
558
559
559
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
560
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
560
                /**
561
                /**
561
                 * @desc identifier for user or telephone subscriber
562
                 * @desc identifier for user or telephone subscriber
562
                 * @member userOrTelephoneSubscriber provides the username or a phone name identifying the subscriber
563
                 * @member userOrTelephoneSubscriber provides the username or a phone name identifying the subscriber
563
                 * @member password related password information
564
                 * @member password related password information
564
                 */
565
                 */
565
                type record UserInfo {
566
                type record UserInfo {
566
                    charstring userOrTelephoneSubscriber,
567
                    charstring userOrTelephoneSubscriber,
567
                    charstring password optional
568
                    charstring password optional
568
                }
569
                }
569
570
570
                // [19.1.1 ;used in: 20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
571
                // [19.1.1 ;used in: 20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
571
                /**
572
                /**
572
                 * @desc Uniform Resource Identifier (URI)
573
                 * @desc Uniform Resource Identifier (URI)
573
                 * @member scheme distinguishes call types, e.g. voice, fax etc. or related address scheme, e.g. tel, sip
574
                 * @member scheme distinguishes call types, e.g. voice, fax etc. or related address scheme, e.g. tel, sip
574
                 * @member userInfo Contains user information (also in non-SIP URLs) with optional parameter as passwords
575
                 * @member userInfo Contains user information (also in non-SIP URLs) with optional parameter as passwords
575
                 * @member hostPort Hostname or IP address information and port identifier of the target
576
                 * @member hostPort Hostname or IP address information and port identifier of the target
576
                 * @member urlParameters Contains either SIP or TEL URL parameters, separated by semicolons, e.g. transport=tcp or user=phone
577
                 * @member urlParameters Contains either SIP or TEL URL parameters, separated by semicolons, e.g. transport=tcp or user=phone
577
                 * @member headers Additional information added after the parameters, e.g. priority=urgent
578
                 * @member headers Additional information added after the parameters, e.g. priority=urgent
578
                 */
579
                 */
579
                type record SipUriComponents { // sip-uri acc. to RFC 3261 cl. 19.1
580
                type record SipUriComponents { // sip-uri acc. to RFC 3261 cl. 19.1
580
                    UserInfo userInfo optional,
581
                    UserInfo userInfo optional,
581
                    HostPort hostPort
582
                    HostPort hostPort
582
                }
583
                }
583
584
584
                type record TelUriComponents { // tel-uri acc. to RFC 3966
585
                type record TelUriComponents { // tel-uri acc. to RFC 3966
585
                    charstring subscriber
586
                    charstring subscriber
586
                }
587
                }
587
588
588
                type record UrnUriComponents { // urn-uri acc. to RFC 2141
589
                type record UrnUriComponents { // urn-uri acc. to RFC 2141
589
                    charstring namespaceId, // e.g. "service" as acc. to RFC 5031
590
                    charstring namespaceId, // e.g. "service" as acc. to RFC 5031
590
                    charstring namespaceSpecificString // e.g. "sos"
591
                    charstring namespaceSpecificString // e.g. "sos"
591
                }
592
                }
592
593
593
                type union UriComponents {
594
                type union UriComponents {
594
                    SipUriComponents sip, // scheme: "sip" or sips"
595
                    SipUriComponents sip, // scheme: "sip" or sips"
595
                    TelUriComponents tel, // scheme: "tel"
596
                    TelUriComponents tel, // scheme: "tel"
596
                    UrnUriComponents urn, // scheme: "urn"
597
                    UrnUriComponents urn, // scheme: "urn"
597
                    charstring other // scheme: none of the above schemes
598
                    charstring other // scheme: none of the above schemes
598
                }
599
                }
599
600
600
                type record SipUrl {
601
                type record SipUrl {
601
                    charstring scheme, // e.g "sip" or "tel"
602
                    charstring scheme, // e.g "sip" or "tel"
602
                    UriComponents components, // corresponding to the scheme
603
                    UriComponents components, // corresponding to the scheme
603
                    SemicolonParam_List urlParameters optional,
604
                    SemicolonParam_List urlParameters optional,
604
                    AmpersandParam_List headers optional
605
                    AmpersandParam_List headers optional
605
                }
606
                }
606
607
607
                // [20.1, RFC2616 14.1 ]
608
                // [20.1, RFC2616 14.1 ]
608
                type record AcceptBody {
609
                type record AcceptBody {
609
                    charstring mediaRange,
610
                    charstring mediaRange,
610
                    SemicolonParam_List acceptParam optional
611
                    SemicolonParam_List acceptParam optional
611
                }
612
                }
612
613
613
                // [20.1, RFC2616 14.1 ]
614
                // [20.1, RFC2616 14.1 ]
614
                type set of AcceptBody AcceptBody_List;
615
                type set of AcceptBody AcceptBody_List;
615
616
616
                // [20.4 ]
617
                // [20.4 ]
617
                type record AlertInfoBody {
618
                type record AlertInfoBody {
618
                    charstring url, // any URI
619
                    charstring url, // any URI
619
                    SemicolonParam_List genericParams optional
620
                    SemicolonParam_List genericParams optional
620
                }
621
                }
621
622
622
                // [20.4 ]
623
                // [20.4 ]
623
                type set of AlertInfoBody AlertInfoBody_List;
624
                type set of AlertInfoBody AlertInfoBody_List;
624
625
625
                // [20.8 ]
626
                // [20.8 ]
626
                type charstring CallidString;
627
                type charstring CallidString;
627
                // token ["
628
                // token ["
628
                // [20.8 ]
629
                // [20.8 ]
629
                type set of CallidString CallidString_List;
630
                type set of CallidString CallidString_List;
630
631
631
                // [20.9 ]
632
                // [20.9 ]
632
                type record CallInfoBody {
633
                type record CallInfoBody {
633
                    charstring url, // any URI
634
                    charstring url, // any URI
634
                    SemicolonParam_List infoParams optional
635
                    SemicolonParam_List infoParams optional
635
                }
636
                }
636
637
637
                // [20.9 ]
638
                // [20.9 ]
638
                type set of CallInfoBody CallInfoBody_List;
639
                type set of CallInfoBody CallInfoBody_List;
639
640
640
                // [20.27, 20.44, .......10.32, 10.48; RFC2616 14.33, 14.47; RFC2617 1.2 ]
641
                // [20.27, 20.44, .......10.32, 10.48; RFC2616 14.33, 14.47; RFC2617 1.2 ]
641
                type union Challenge {
642
                type union Challenge {
642
                    CommaParam_List digestCln,
643
                    CommaParam_List digestCln,
643
                    OtherAuth otherChallenge
644
                    OtherAuth otherChallenge
644
                }
645
                }
645
646
646
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
647
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
647
                type union DisplayName
648
                type union DisplayName
648
                {
649
                {
649
                  charstring  token,
650
                  charstring  token,
650
                  charstring  quotedString
651
                  charstring  quotedString
651
                }
652
                }
652
653
653
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
654
                // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ]
654
                type record NameAddr {
655
                type record NameAddr {
655
                    DisplayName displayName optional,
656
                    DisplayName displayName optional,
656
                    SipUrl addrSpec
657
                    SipUrl addrSpec
657
                }
658
                }
658
659
659
                // [20.10, 20.20, 20.31, 20.39 ]
660
                // [20.10, 20.20, 20.31, 20.39 ]
660
                type union Addr_Union {
661
                type union Addr_Union {
661
                    NameAddr nameAddr,
662
                    NameAddr nameAddr,
662
                    SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field
663
                    SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field
663
                }
664
                }
664
665
665
                // [20.10 ]
666
                // [20.10 ]
666
                type record ContactAddress {
667
                type record ContactAddress {
667
                    Addr_Union addressField,
668
                    Addr_Union addressField,
668
                    SemicolonParam_List contactParams optional
669
                    SemicolonParam_List contactParams optional
669
                }
670
                }
670
671
671
                // [20.10 ]
672
                // [20.10 ]
672
                type set of ContactAddress ContactAddress_List; // 1 or more elements
673
                type set of ContactAddress ContactAddress_List; // 1 or more elements
673
                // [20.10 ]
674
                // [20.10 ]
674
                type union ContactBody {
675
                type union ContactBody {
675
                    charstring wildcard,
676
                    charstring wildcard,
676
                    ContactAddress_List contactAddresses
677
                    ContactAddress_List contactAddresses
677
                }
678
                }
678
679
679
                // [20.2, 20.12; RFC2616 14.3, 14.11 ]
680
                // [20.2, 20.12; RFC2616 14.3, 14.11 ]
680
                type charstring ContentCoding;
681
                type charstring ContentCoding;
681
682
682
                // [20.2, 20.12; RFC2616 14.3, 14.11 ]
683
                // [20.2, 20.12; RFC2616 14.3, 14.11 ]
683
                type set of ContentCoding ContentCoding_List;
684
                type set of ContentCoding ContentCoding_List;
684
685
685
                // [20.7, 20.28; RFC2616 14.35 RFC2617 1.2 ]
686
                // [20.7, 20.28; RFC2616 14.35 RFC2617 1.2 ]
686
                type union Credentials {
687
                type union Credentials {
687
                    CommaParam_List digestResponse,
688
                    CommaParam_List digestResponse,
688
                    OtherAuth otherResponse
689
                    OtherAuth otherResponse
689
                }
690
                }
690
691
691
                // allow multiple Authorization headers due to RFC3261 ch. 20.7 and 20.28
692
                // allow multiple Authorization headers due to RFC3261 ch. 20.7 and 20.28
692
                type record of Credentials CredentialsList;
693
                type record of Credentials CredentialsList;
693
694
694
                // [20.19, 20.23, 20.33 ]
695
                // [20.19, 20.23, 20.33 ]
695
                type charstring DeltaSec; // an external operation can handle this field
696
                type charstring DeltaSec; // an external operation can handle this field
696
                // [20.18 ]
697
                // [20.18 ]
697
                type record ErrorInfoBody {
698
                type record ErrorInfoBody {
698
                    charstring uri, // any URI
699
                    charstring uri, // any URI
699
                    SemicolonParam_List genericParams optional
700
                    SemicolonParam_List genericParams optional
700
                }
701
                }
701
702
702
                // [20.18 ]
703
                // [20.18 ]
703
                type set of ErrorInfoBody ErrorInfoBody_List;
704
                type set of ErrorInfoBody ErrorInfoBody_List;
704
705
705
                // [20.3 RFC2616 14.4 ]
706
                // [20.3 RFC2616 14.4 ]
706
                type record LanguageBody {
707
                type record LanguageBody {
707
                    charstring languageRange,
708
                    charstring languageRange,
708
                    SemicolonParam_List acceptParam optional
709
                    SemicolonParam_List acceptParam optional
709
                }
710
                }
710
711
711
                // [20.3 RFC2616 14.4 ]
712
                // [20.3 RFC2616 14.4 ]
712
                type set of LanguageBody LanguageBody_List;
713
                type set of LanguageBody LanguageBody_List;
713
714
714
                // [20.13; RFC2616 14.12 ]
715
                // [20.13; RFC2616 14.12 ]
715
                type charstring LanguageTag;
716
                type charstring LanguageTag;
716
717
717
                // [20.13; RFC2616 14.12 ]
718
                // [20.13; RFC2616 14.12 ]
718
                type set of LanguageTag LanguageTag_List;
719
                type set of LanguageTag LanguageTag_List;
719
720
720
                // [20.5 ]
721
                // [20.5 ]
721
                type set of charstring Method_List;
722
                type set of charstring Method_List;
722
723
723
                // [20.29, 20.32, 20.37, 20.40 ]
724
                // [20.29, 20.32, 20.37, 20.40 ]
724
                type charstring OptionTag;
725
                type charstring OptionTag;
725
726
726
                // [20.29, 20.32, 20.37, 20.40 ]
727
                // [20.29, 20.32, 20.37, 20.40 ]
727
                type set of OptionTag OptionTag_List;
728
                type set of OptionTag OptionTag_List;
728
729
729
                // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2 ]
730
                // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2 ]
730
                type record OtherAuth {
731
                type record OtherAuth {
731
                    charstring authScheme,
732
                    charstring authScheme,
732
                    CommaParam_List authParams
733
                    CommaParam_List authParams
733
                }
734
                }
734
735
735
                type record Payload {
736
                type record Payload {
736
                    integer payloadlength,
737
                    integer payloadlength,
737
                    charstring payloadvalue
738
                    charstring payloadvalue
738
                }
739
                }
739
740
740
                // [20.30,20.34 ]
741
                // [20.30,20.34 ]
741
                type record RouteBody {
742
                type record RouteBody {
742
                    NameAddr nameAddr,
743
                    NameAddr nameAddr,
743
                    SemicolonParam_List rrParam optional
744
                    SemicolonParam_List rrParam optional
744
                }
745
                }
745
746
746
                // [20.30,20.34 ]
747
                // [20.30,20.34 ]
747
                type record of RouteBody RouteBody_List;
748
                type record of RouteBody RouteBody_List;
748
749
749
                // [20.42 ]
750
                // [20.42 ]
750
                type record SentProtocol {
751
                type record SentProtocol {
751
                    charstring protocolName,
752
                    charstring protocolName,
752
                    charstring protocolVersion,
753
                    charstring protocolVersion,
753
                    charstring transport
754
                    charstring transport
754
                }
755
                }
755
756
756
                // [20.35, 20.41; RFC2616 14.43 ]
757
                // [20.35, 20.41; RFC2616 14.43 ]
757
                type charstring ServerVal;
758
                type charstring ServerVal;
758
759
759
                // [20.35, 20.41; RFC2616 14.43 ]
760
                // [20.35, 20.41; RFC2616 14.43 ]
760
                type set of ServerVal ServerVal_List;
761
                type set of ServerVal ServerVal_List;
761
762
762
                // [20.38 ]
763
                // [20.38 ]
763
                type record TimeValue {
764
                type record TimeValue {
764
                    integer majorDigit, // represented as an integer
765
                    integer majorDigit, // represented as an integer
765
                    integer minorDigit optional // represented as an integer
766
                    integer minorDigit optional // represented as an integer
766
                }
767
                }
767
768
768
                // [20.42 ]
769
                // [20.42 ]
769
                type record ViaBody {
770
                type record ViaBody {
770
                    SentProtocol sentProtocol,
771
                    SentProtocol sentProtocol,
771
                    HostPort sentBy,
772
                    HostPort sentBy,
772
                    SemicolonParam_List viaParams optional
773
                    SemicolonParam_List viaParams optional
773
                }
774
                }
774
775
775
                // [20.42 ]
776
                // [20.42 ]
776
                type record of ViaBody ViaBody_List;
777
                type record of ViaBody ViaBody_List;
777
778
778
                // [20.43 ]
779
                // [20.43 ]
779
                type union WarnAgent {
780
                type union WarnAgent {
780
                    HostPort hostPort,
781
                    HostPort hostPort,
781
                    charstring pseudonym
782
                    charstring pseudonym
782
                }
783
                }
783
784
784
                // [20.43 ]
785
                // [20.43 ]
785
                type record WarningValue {
786
                type record WarningValue {
786
                    integer warnCode, // represented as an integer
787
                    integer warnCode, // represented as an integer
787
                    WarnAgent warnAgent,
788
                    WarnAgent warnAgent,
788
                    charstring warnText
789
                    charstring warnText
789
                }
790
                }
790
791
791
                // [20.43 ]
792
                // [20.43 ]
792
                type set of WarningValue WarningValue_List;
793
                type set of WarningValue WarningValue_List;
793
794
794
                type Addr_Union PAssertedIDValue;
795
                type Addr_Union PAssertedIDValue;
795
796
796
                type record of PAssertedIDValue PAssertedIDValue_List;
797
                type record of PAssertedIDValue PAssertedIDValue_List;
797
798
798
                type charstring PAssertedServiceValue;
799
                type charstring PAssertedServiceValue;
799
800
800
                type Addr_Union PPreferredIDValue;
801
                type Addr_Union PPreferredIDValue;
801
802
802
                type record of PPreferredIDValue PPreferredIDValue_List;
803
                type record of PPreferredIDValue PPreferredIDValue_List;
803
804
804
                type charstring PrivacyValue;
805
                type charstring PrivacyValue;
805
806
806
                type record of PrivacyValue PrivacyValue_List;
807
                type record of PrivacyValue PrivacyValue_List;
807
808
808
                type set of FcValue FcValue_List;
809
                type set of FcValue FcValue_List;
809
                type record FcValue {
810
                type record FcValue {
810
                    charstring wildcard(c_WILDCARD),
811
                    charstring wildcard(c_WILDCARD),
811
                    SemicolonParam_List fcParams optional
812
                    SemicolonParam_List fcParams optional
812
                }
813
                }
813
814
814
815
815
            } // end group TokensType
816
            } // end group TokensType
816
817
817
818
818
            group HeaderFieldTypes // Header Fields
819
            group HeaderFieldTypes // Header Fields
819
                                    {
820
                                    {
820
                group CommonHeaderFieldTypes {
821
                group CommonHeaderFieldTypes {
821
                    // [20.1, RFC2616 14.1 ]
822
                    // [20.1, RFC2616 14.1 ]
822
                    type record Accept {
823
                    type record Accept {
823
                        FieldName fieldName (ACCEPT_E) ,
824
                        FieldName fieldName (ACCEPT_E) ,
824
                        AcceptBody_List acceptArgs optional
825
                        AcceptBody_List acceptArgs optional
825
                    }
826
                    }
826
827
827
                    // [20.2, RFC2616 14.3 ]
828
                    // [20.2, RFC2616 14.3 ]
828
                    type record AcceptEncoding {
829
                    type record AcceptEncoding {
829
                        FieldName fieldName (ACCEPT_ENCODING_E) ,
830
                        FieldName fieldName (ACCEPT_ENCODING_E) ,
830
                        ContentCoding_List contentCoding optional
831
                        ContentCoding_List contentCoding optional
831
                    }
832
                    }
832
833
833
                    // [20.3, RFC2616 14.4 ]
834
                    // [20.3, RFC2616 14.4 ]
834
                    type record AcceptLanguage {
835
                    type record AcceptLanguage {
835
                        FieldName fieldName (ACCEPT_LANGUAGE_E) ,
836
                        FieldName fieldName (ACCEPT_LANGUAGE_E) ,
836
                        LanguageBody_List languageBody optional
837
                        LanguageBody_List languageBody optional
837
                    }
838
                    }
838
839
839
                    // [20.4 ]
840
                    // [20.4 ]
840
                    type record AlertInfo {
841
                    type record AlertInfo {
841
                        FieldName fieldName (ALERT_INFO_E) ,
842
                        FieldName fieldName (ALERT_INFO_E) ,
842
                        AlertInfoBody_List alertInfoBody optional
843
                        AlertInfoBody_List alertInfoBody optional
843
                    }
844
                    }
844
845
845
                    // [20.5 ]
846
                    // [20.5 ]
846
                    type record Allow {
847
                    type record Allow {
847
                        FieldName fieldName (ALLOW_E) ,
848
                        FieldName fieldName (ALLOW_E) ,
848
                        Method_List methods optional
849
                        Method_List methods optional
849
                    }
850
                    }
850
851
851
                    // [20.6 ]
852
                    // [20.6 ]
852
                    type record AuthenticationInfo {
853
                    type record AuthenticationInfo {
853
                        FieldName fieldName (AUTHENTICATION_INFO_E) ,
854
                        FieldName fieldName (AUTHENTICATION_INFO_E) ,
854
                        CommaParam_List ainfo
855
                        CommaParam_List ainfo
855
                    }
856
                    }
856
857
857
                    // [20.7 RFC2617 3.2.2 ]
858
                    // [20.7 RFC2617 3.2.2 ]
858
                    type record Authorization {
859
                    type record Authorization {
859
                        FieldName fieldName (AUTHORIZATION_E) ,
860
                        FieldName fieldName (AUTHORIZATION_E) ,
860
                        CredentialsList body // changed from Credentials to allow multiple Authorization headers
861
                        CredentialsList body // changed from Credentials to allow multiple Authorization headers
861
                    }
862
                    }
862
863
863
                    // [20.8 ]
864
                    // [20.8 ]
864
                    type record CallId {
865
                    type record CallId {
865
                        FieldName fieldName (CALL_ID_E) ,
866
                        FieldName fieldName (CALL_ID_E) ,
866
                        CallidString callid
867
                        CallidString callid
867
                    }
868
                    }
868
869
869
                    // [20.9 ]
870
                    // [20.9 ]
870
                    type record CallInfo {
871
                    type record CallInfo {
871
                        FieldName fieldName (CALL_INFO_E) ,
872
                        FieldName fieldName (CALL_INFO_E) ,
872
                        CallInfoBody_List callInfoBody optional
873
                        CallInfoBody_List callInfoBody optional
873
                    }
874
                    }
874
875
875
                    // [20.10 ]
876
                    // [20.10 ]
876
                    type record Contact {
877
                    type record Contact {
877
                        FieldName fieldName (CONTACT_E) ,
878
                        FieldName fieldName (CONTACT_E) ,
878
                        ContactBody contactBody
879
                        ContactBody contactBody
879
                    }
880
                    }
880
881
881
                    // [20.11 ]
882
                    // [20.11 ]
882
                    type record ContentDisposition {
883
                    type record ContentDisposition {
883
                        FieldName fieldName (CONTENT_DISPOSITION_E) ,
884
                        FieldName fieldName (CONTENT_DISPOSITION_E) ,
884
                        charstring dispositionType,
885
                        charstring dispositionType,
885
                        SemicolonParam_List dispositionParams optional
886
                        SemicolonParam_List dispositionParams optional
886
                    }
887
                    }
887
888
888
                    // [20.12 RFC2616 14.11 ]
889
                    // [20.12 RFC2616 14.11 ]
889
                    type record ContentEncoding {
890
                    type record ContentEncoding {
890
                        FieldName fieldName (CONTENT_ENCODING_E) ,
891
                        FieldName fieldName (CONTENT_ENCODING_E) ,
891
                        ContentCoding_List contentCoding
892
                        ContentCoding_List contentCoding
892
                    }
893
                    }
893
894
894
                    // [20.13 RFC2616 14.12 ]
895
                    // [20.13 RFC2616 14.12 ]
895
                    type record ContentLanguage {
896
                    type record ContentLanguage {
896
                        FieldName fieldName (CONTENT_LANGUAGE_E) ,
897
                        FieldName fieldName (CONTENT_LANGUAGE_E) ,
897
                        LanguageTag_List languageTag
898
                        LanguageTag_List languageTag
898
                    }
899
                    }
899
900
900
                    // [20.14 ]
901
                    // [20.14 ]
901
                    type record ContentLength {
902
                    type record ContentLength {
902
                        FieldName fieldName (CONTENT_LENGTH_E) ,
903
                        FieldName fieldName (CONTENT_LENGTH_E) ,
903
                        integer len // this field is represented as an integer
904
                        integer len // this field is represented as an integer
904
                    }
905
                    }
905
906
906
                    // [20.15 ]
907
                    // [20.15 ]
907
                    type record ContentType {
908
                    type record ContentType {
908
                        FieldName fieldName (CONTENT_TYPE_E) ,
909
                        FieldName fieldName (CONTENT_TYPE_E) ,
909
                        charstring mTypeSubtype ,
910
                        charstring mTypeSubtype ,
910
                                                SemicolonParam_List mParams optional
911
                                                SemicolonParam_List mParams optional
911
                    }
912
                    }
912
913
913
                    // [20.16 ]
914
                    // [20.16 ]
914
                    type record CSeq {
915
                    type record CSeq {
915
                        FieldName fieldName (CSEQ_E) ,
916
                        FieldName fieldName (CSEQ_E) ,
916
                        integer seqNumber, // this field is represented as an integer
917
                        integer seqNumber, // this field is represented as an integer
917
                        charstring method
918
                        charstring method
918
                    }
919
                    }
919
920
920
                    // [20.17 ]
921
                    // [20.17 ]
921
                    type record Date {
922
                    type record Date {
922
                        FieldName fieldName (DATE_E) ,
923
                        FieldName fieldName (DATE_E) ,
923
                        charstring sipDate
924
                        charstring sipDate
924
                    }
925
                    }
925
926
926
                    // [20.18 ]
927
                    // [20.18 ]
927
                    type record ErrorInfo {
928
                    type record ErrorInfo {
928
                        FieldName fieldName (ERROR_INFO_E) ,
929
                        FieldName fieldName (ERROR_INFO_E) ,
929
                        ErrorInfoBody_List errorInfo optional
930
                        ErrorInfoBody_List errorInfo optional
930
                    }
931
                    }
931
932
932
                    // [20.19 ]
933
                    // [20.19 ]
933
                    type record Expires {
934
                    type record Expires {
934
                        FieldName fieldName (EXPIRES_E) ,
935
                        FieldName fieldName (EXPIRES_E) ,
935
                        DeltaSec deltaSec
936
                        DeltaSec deltaSec
936
                    }
937
                    }
937
938
938
                    //[6809]
939
                    //[6809]
939
                    type record FeatureCaps {
940
                    type record FeatureCaps {
940
                        FieldName fieldName(FEATURE_CAPS_E),
941
                        FieldName fieldName(FEATURE_CAPS_E),
941
                        FcValue_List fcValues
942
                        FcValue_List fcValues
942
                    }
943
                    }
943
944
944
                    // [20.20 ]
945
                    // [20.20 ]
945
                    type record From {
946
                    type record From {
946
                        FieldName fieldName (FROM_E) ,
947
                        FieldName fieldName (FROM_E) ,
947
                        Addr_Union addressField,
948
                        Addr_Union addressField,
948
                        SemicolonParam_List fromParams optional
949
                        SemicolonParam_List fromParams optional
949
                    }
950
                    }
950
951
951
                    // [2616]
952
                    // [2616]
952
                    type record Host {
953
                    type record Host {
953
                        FieldName fieldName(HOST_E),
954
                        FieldName fieldName(HOST_E),
954
                        charstring host, // an empty value is represented by the empty charstring ""
955
                        charstring host, // an empty value is represented by the empty charstring ""
955
                        integer portField optional
956
                        integer portField optional
956
                    }
957
                    }
957
958
958
                    // [20.21 ]
959
                    // [20.21 ]
959
                    type record InReplyTo {
960
                    type record InReplyTo {
960
                        FieldName fieldName (IN_REPLY_TO_E) ,
961
                        FieldName fieldName (IN_REPLY_TO_E) ,
961
                        CallidString_List callids
962
                        CallidString_List callids
962
                    }
963
                    }
963
964
964
                    // [20.22 ]
965
                    // [20.22 ]
965
                    type record MaxForwards {
966
                    type record MaxForwards {
966
                        FieldName fieldName (MAX_FORWARDS_E) ,
967
                        FieldName fieldName (MAX_FORWARDS_E) ,
967
                        integer forwards // this field is represented as an integer
968
                        integer forwards // this field is represented as an integer
968
                    }
969
                    }
969
970
970
                    // [20.23 ]
971
                    // [20.23 ]
971
                    type record MinExpires {
972
                    type record MinExpires {
972
                        FieldName fieldName (MIN_EXPIRES_E) ,
973
                        FieldName fieldName (MIN_EXPIRES_E) ,
973
                        DeltaSec deltaSec
974
                        DeltaSec deltaSec
974
                    }
975
                    }
975
976
976
                    // [20.24 RFC2616 19.4.1 ]
977
                    // [20.24 RFC2616 19.4.1 ]
977
                    type record MimeVersion {
978
                    type record MimeVersion {
978
                        FieldName fieldName (MIME_VERSION_E) ,
979
                        FieldName fieldName (MIME_VERSION_E) ,
979
                        integer majorNumber, // this field is represented as an integer
980
                        integer majorNumber, // this field is represented as an integer
980
                        integer minorNumber // this field is represented as an integer
981
                        integer minorNumber // this field is represented as an integer
981
                    }
982
                    }
982
983
983
                    // [20.25 ]
984
                    // [20.25 ]
984
                    type record Organization {
985
                    type record Organization {
985
                        FieldName fieldName (ORGANIZATION_E) ,
986
                        FieldName fieldName (ORGANIZATION_E) ,
986
                        charstring organization
987
                        charstring organization
987
                    }
988
                    }
988
989
989
                    // [20.26 ]
990
                    // [20.26 ]
990
                    type record Priority {
991
                    type record Priority {
991
                        FieldName fieldName (PRIORITY_E) ,
992
                        FieldName fieldName (PRIORITY_E) ,
992
                        charstring priorityValue
993
                        charstring priorityValue
993
                    }
994
                    }
994
995
995
                    // [20.27 RFC2616 14.33 RFC2617 1.2 ]
996
                    // [20.27 RFC2616 14.33 RFC2617 1.2 ]
996
                    type record ProxyAuthenticate {
997
                    type record ProxyAuthenticate {
997
                        FieldName fieldName (PROXY_AUTHENTICATE_E) ,
998
                        FieldName fieldName (PROXY_AUTHENTICATE_E) ,
998
                        Challenge challenge
999
                        Challenge challenge
999
                    }
1000
                    }
1000
1001
1001
                    // [20.28 RFC2616 14.35 RFC2617 1.2 ]
1002
                    // [20.28 RFC2616 14.35 RFC2617 1.2 ]
1002
                    type record ProxyAuthorization {
1003
                    type record ProxyAuthorization {
1003
                        FieldName fieldName (PROXY_AUTHORIZATION_E) ,
1004
                        FieldName fieldName (PROXY_AUTHORIZATION_E) ,
1004
                        CredentialsList
1005
                        CredentialsList
1005
                        credentials // changed from Credentials to allow multiple Authorization headers
1006
                        credentials // changed from Credentials to allow multiple Authorization headers
1006
                    }
1007
                    }
1007
1008
1008
                    // [20.29 ]
1009
                    // [20.29 ]
1009
                    type record ProxyRequire {
1010
                    type record ProxyRequire {
1010
                        FieldName fieldName (PROXY_REQUIRE_E) ,
1011
                        FieldName fieldName (PROXY_REQUIRE_E) ,
1011
                        OptionTag_List optionsTags
1012
                        OptionTag_List optionsTags
1012
                    }
1013
                    }
1013
1014
1014
                    // [20.30 ]
1015
                    // [20.30 ]
1015
                    type record RecordRoute {
1016
                    type record RecordRoute {
1016
                        FieldName fieldName (RECORD_ROUTE_E) ,
1017
                        FieldName fieldName (RECORD_ROUTE_E) ,
1017
                        RouteBody_List routeBody
1018
                        RouteBody_List routeBody
1018
                    }
1019
                    }
1019
1020
1020
                    type set of InfoPackage_Type InfoPackage_List;
1021
                    type set of InfoPackage_Type InfoPackage_List;
1021
                   
1022
                   
1022
                    type record InfoPackage_Type {
1023
                    type record InfoPackage_Type {
1023
                        charstring  infoPackageName,
1024
                        charstring  infoPackageName,
1024
                        SemicolonParam_List infoPackageParams optional
1025
                        SemicolonParam_List infoPackageParams optional
1025
                       
1026
                       
1026
                    }
1027
                    }
1027
                   
1028
                   
1028
                    //[6086]
1029
                    //[6086]
1029
                    type record RecvInfo {
1030
                    type record RecvInfo {
1030
                        FieldName fieldName(RECV_INFO_E),
1031
                        FieldName fieldName(RECV_INFO_E),
1031
                        InfoPackage_List infoPackageList
1032
                        InfoPackage_List infoPackageList
1032
                    }
1033
                    }
1033
1034
1034
                    //[6086]
1035
                    //[6086]
1035
                    type record InfoPackage {
1036
                    type record InfoPackage {
1036
                        FieldName fieldName(INFO_PACKAGE_E),
1037
                        FieldName fieldName(INFO_PACKAGE_E),
1037
                        InfoPackage_Type infoPackageType
1038
                        InfoPackage_Type infoPackageType
1038
                    }
1039
                    }
1039
1040
1040
                    // [20.31 ]
1041
                    // [20.31 ]
1041
                    type record ReplyTo {
1042
                    type record ReplyTo {
1042
                        FieldName fieldName (REPLY_TO_E) ,
1043
                        FieldName fieldName (REPLY_TO_E) ,
1043
                        Addr_Union addressField,
1044
                        Addr_Union addressField,
1044
                        SemicolonParam_List replyToParams optional
1045
                        SemicolonParam_List replyToParams optional
1045
                    }
1046
                    }
1046
1047
1047
                    // [20.32 ]
1048
                    // [20.32 ]
1048
                    type record Require {
1049
                    type record Require {
1049
                        FieldName fieldName (REQUIRE_E) ,
1050
                        FieldName fieldName (REQUIRE_E) ,
1050
                        OptionTag_List optionsTags
1051
                        OptionTag_List optionsTags
1051
                    }
1052
                    }
1052
1053
1053
                    // [20.33 ]
1054
                    // [20.33 ]
1054
                    type record RetryAfter {
1055
                    type record RetryAfter {
1055
                        FieldName fieldName (RETRY_AFTER_E) ,
1056
                        FieldName fieldName (RETRY_AFTER_E) ,
1056
                        DeltaSec deltaSec,
1057
                        DeltaSec deltaSec,
1057
                        charstring comment optional,
1058
                        charstring comment optional,
1058
                        SemicolonParam_List retryParams optional
1059
                        SemicolonParam_List retryParams optional
1059
                    }
1060
                    }
1060
1061
1061
                    // [20.34 ]
1062
                    // [20.34 ]
1062
                    type record Route {
1063
                    type record Route {
1063
                        FieldName fieldName (ROUTE_E) ,
1064
                        FieldName fieldName (ROUTE_E) ,
1064
                        RouteBody_List routeBody
1065
                        RouteBody_List routeBody
1065
                    }
1066
                    }
1066
1067
1067
                    // [20.35 RFC2616 14.38 ]
1068
                    // [20.35 RFC2616 14.38 ]
1068
                    type record Server {
1069
                    type record Server {
1069
                        FieldName fieldName (SERVER_E) ,
1070
                        FieldName fieldName (SERVER_E) ,
1070
                        ServerVal_List serverBody
1071
                        ServerVal_List serverBody
1071
                    }
1072
                    }
1072
1073
1073
                    // [20.36 ]
1074
                    // [20.36 ]
1074
                    type record Subject {
1075
                    type record Subject {
1075
                        FieldName fieldName (SUBJECT_E) ,
1076
                        FieldName fieldName (SUBJECT_E) ,
1076
                        charstring summary
1077
                        charstring summary
1077
                    }
1078
                    }
1078
1079
1079
                    // [20.37 ]
1080
                    // [20.37 ]
1080
                    type record Supported {
1081
                    type record Supported {
1081
                        FieldName fieldName (SUPPORTED_E) ,
1082
                        FieldName fieldName (SUPPORTED_E) ,
1082
                        OptionTag_List optionsTags optional
1083
                        OptionTag_List optionsTags optional
1083
                    }
1084
                    }
1084
1085
1085
                    // [20.38 ]
1086
                    // [20.38 ]
1086
                    type record Timestamp {
1087
                    type record Timestamp {
1087
                        FieldName fieldName (TIMESTAMP_E) ,
1088
                        FieldName fieldName (TIMESTAMP_E) ,
1088
                        TimeValue timeValue optional,
1089
                        TimeValue timeValue optional,
1089
                        TimeValue delay optional
1090
                        TimeValue delay optional
1090
                    }
1091
                    }
1091
1092
1092
                    // [20.39 ]
1093
                    // [20.39 ]
1093
                    type record To {
1094
                    type record To {
1094
                        FieldName fieldName (TO_E) ,
1095
                        FieldName fieldName (TO_E) ,
1095
                        Addr_Union addressField,
1096
                        Addr_Union addressField,
1096
                        SemicolonParam_List toParams optional
1097
                        SemicolonParam_List toParams optional
1097
                    }
1098
                    }
1098
1099
1099
                    // [20.40 ]
1100
                    // [20.40 ]
1100
                    type record Unsupported {
1101
                    type record Unsupported {
1101
                        FieldName fieldName (UNSUPPORTED_E) ,
1102
                        FieldName fieldName (UNSUPPORTED_E) ,
1102
                        OptionTag_List optionsTags
1103
                        OptionTag_List optionsTags
1103
                    }
1104
                    }
1104
1105
1105
                    // Undefined header field
1106
                    // Undefined header field
1106
                    type record UndefinedHeader {
1107
                    type record UndefinedHeader {
1107
                        charstring headerName,
1108
                        charstring headerName,
1108
                        charstring headerValue
1109
                        charstring headerValue
1109
                    }
1110
                    }
1110
1111
1111
                    type set of UndefinedHeader UndefinedHeader_List;
1112
                    type set of UndefinedHeader UndefinedHeader_List;
1112
1113
1113
                    // [20.41 RFC2616 14.43 ]
1114
                    // [20.41 RFC2616 14.43 ]
1114
                    type record UserAgent {
1115
                    type record UserAgent {
1115
                        FieldName fieldName (USER_AGENT_E) ,
1116
                        FieldName fieldName (USER_AGENT_E) ,
1116
                        ServerVal_List userAgentBody
1117
                        ServerVal_List userAgentBody
1117
                    }
1118
                    }
1118
1119
1119
                    // [20.42 ]
1120
                    // [20.42 ]
1120
                    type record Via {
1121
                    type record Via {
1121
                        FieldName fieldName (VIA_E) ,
1122
                        FieldName fieldName (VIA_E) ,
1122
                        ViaBody_List viaBody
1123
                        ViaBody_List viaBody
1123
                    }
1124
                    }
1124
1125
1125
                    // [20.43 ]
1126
                    // [20.43 ]
1126
                    type record Warning {
1127
                    type record Warning {
1127
                        FieldName fieldName (WARNING_E) ,
1128
                        FieldName fieldName (WARNING_E) ,
1128
                        WarningValue_List warningValue
1129
                        WarningValue_List warningValue
1129
                    }
1130
                    }
1130
1131
1131
                    // [20.44 RFC2616 14.47 RFC2617 1.2 ]
1132
                    // [20.44 RFC2616 14.47 RFC2617 1.2 ]
1132
                    type record WwwAuthenticate {
1133
                    type record WwwAuthenticate {
1133
                        FieldName fieldName (WWW_AUTHENTICATE_E) ,
1134
                        FieldName fieldName (WWW_AUTHENTICATE_E) ,
1134
                        Challenge challenge
1135
                        Challenge challenge
1135
                    }
1136
                    }
1136
1137
1137
                } // end group CommonHeaderFieldTypes
1138
                } // end group CommonHeaderFieldTypes
1138
                group RFC3262HeaderFieldTypes {
1139
                group RFC3262HeaderFieldTypes {
1139
                    // [3262/7.1 ]
1140
                    // [3262/7.1 ]
1140
                    type record RSeq {
1141
                    type record RSeq {
1141
                        FieldName fieldName (RSEQ_E) ,
1142
                        FieldName fieldName (RSEQ_E) ,
1142
                        integer responseNum
1143
                        integer responseNum
1143
                    }
1144
                    }
1144
1145
1145
                    // [3262/7.2 ]
1146
                    // [3262/7.2 ]
1146
                    type record RAck {
1147
                    type record RAck {
1147
                        FieldName fieldName (RACK_E) ,
1148
                        FieldName fieldName (RACK_E) ,
1148
                        integer responseNum,
1149
                        integer responseNum,
1149
                        integer seqNumber,
1150
                        integer seqNumber,
1150
                        charstring method
1151
                        charstring method
1151
                    }
1152
                    }
1152
1153
1153
                } // end group RFC3262HeaderFieldTypes
1154
                } // end group RFC3262HeaderFieldTypes
1154
1155
1155
                group RFC3265HeaderFieldTypes {
1156
                group RFC3265HeaderFieldTypes {
1156
                    // [3265/7.2 ]
1157
                    // [3265/7.2 ]
1157
                    type record AllowEvents {
1158
                    type record AllowEvents {
1158
                        FieldName fieldName (ALLOW_EVENTS_E) ,
1159
                        FieldName fieldName (ALLOW_EVENTS_E) ,
1159
                        EventType_List eventTypes
1160
                        EventType_List eventTypes
1160
                    }
1161
                    }
1161
1162
1162
                    type set of EventType EventType_List;
1163
                    type set of EventType EventType_List;
1163
                    type charstring EventType;
1164
                    type charstring EventType;
1164
1165
1165
                    // [3265/7.2 ]
1166
                    // [3265/7.2 ]
1166
                    type record Event {
1167
                    type record Event {
1167
                        FieldName fieldName (EVENT_E) ,
1168
                        FieldName fieldName (EVENT_E) ,
1168
                        EventType eventType,
1169
                        EventType eventType,
1169
                        SemicolonParam_List eventParams optional
1170
                        SemicolonParam_List eventParams optional
1170
                    }
1171
                    }
1171
1172
1172
                    // [3265/7.2 ]
1173
                    // [3265/7.2 ]
1173
                    type record SubscriptionState {
1174
                    type record SubscriptionState {
1174
                        FieldName fieldName (SUBSCRIPTION_STATE_E) ,
1175
                        FieldName fieldName (SUBSCRIPTION_STATE_E) ,
1175
                        SubState subState,
1176
                        SubState subState,
1176
                        SemicolonParam_List substateParams optional
1177
                        SemicolonParam_List substateParams optional
1177
                    }
1178
                    }
1178
1179
1179
                    type charstring SubState;
1180
                    type charstring SubState;
1180
1181
1181
                } // end group RFC3265HeaderFieldTypes
1182
                } // end group RFC3265HeaderFieldTypes
1182
1183
1183
                group RFC3313HeaderFieldTypes {
1184
                group RFC3313HeaderFieldTypes {
1184
                    // [3313/5 ]
1185
                    // [3313/5 ]
1185
                    type record PMediaAuthorization {
1186
                    type record PMediaAuthorization {
1186
                        FieldName fieldName (P_MEDIA_AUTHORIZATION_E) ,
1187
                        FieldName fieldName (P_MEDIA_AUTHORIZATION_E) ,
1187
                        PMediaAuthorization_List pMediaAuthorizations
1188
                        PMediaAuthorization_List pMediaAuthorizations
1188
                    }
1189
                    }
1189
1190
1190
                    type charstring PMediaAuthValue; // HEXDIG "0"-"9", "A"-"F"
1191
                    type charstring PMediaAuthValue; // HEXDIG "0"-"9", "A"-"F"
1191
                    type record of PMediaAuthValue PMediaAuthorization_List;
1192
                    type record of PMediaAuthValue PMediaAuthorization_List;
1192
1193
1193
1194
1194
                } // end group RFC3265HeaderFieldTypes
1195
                } // end group RFC3265HeaderFieldTypes
1195
1196
1196
                group RFC3323HeaderFieldTypes {
1197
                group RFC3323HeaderFieldTypes {
1197
                    // [3323 ]
1198
                    // [3323 ]
1198
                    type record Privacy {
1199
                    type record Privacy {
1199
                        FieldName fieldName (PRIVACY_E) ,
1200
                        FieldName fieldName (PRIVACY_E) ,
1200
                        PrivacyValue_List privValueList
1201
                        PrivacyValue_List privValueList
1201
                    }
1202
                    }
1202
1203
1203
                } // end group RFC3323HeaderFieldTypes
1204
                } // end group RFC3323HeaderFieldTypes
1204
1205
1205
                group RFC3325HeaderFieldTypes {
1206
                group RFC3325HeaderFieldTypes {
1206
                    // [3325 ]
1207
                    // [3325 ]
1207
                    type record PAssertedID {
1208
                    type record PAssertedID {
1208
                        FieldName fieldName (P_ASSERTED_ID_E) ,
1209
                        FieldName fieldName (P_ASSERTED_ID_E) ,
1209
                        PAssertedIDValue_List pAssertedIDValueList
1210
                        PAssertedIDValue_List pAssertedIDValueList
1210
                    }
1211
                    }
1211
1212
1212
                    // [3325 ]
1213
                    // [3325 ]
1213
                    type record PPreferredID {
1214
                    type record PPreferredID {
1214
                        FieldName fieldName (P_PREFERRED_ID_E) ,
1215
                        FieldName fieldName (P_PREFERRED_ID_E) ,
1215
                        PPreferredIDValue_List pPreferredIDValueList
1216
                        PPreferredIDValue_List pPreferredIDValueList
1216
                    }
1217
                    }
1217
                    // draft-drage-sipping-service-identification-01 (July 2007)
1218
                    // draft-drage-sipping-service-identification-01 (July 2007)
1218
                    type record PPreferredService {
1219
                    type record PPreferredService {
1219
                        FieldName fieldName (P_PREFERRED_SERVICE_E) ,
1220
                        FieldName fieldName (P_PREFERRED_SERVICE_E) ,
1220
                        charstring serviceId
1221
                        charstring serviceId
1221
                    }
1222
                    }
1222
1223
1223
1224
1224
                } // end group RFC3325HeaderFieldTypes
1225
                } // end group RFC3325HeaderFieldTypes
1225
1226
1226
                group RFC3326HeaderFieldTypes {
1227
                group RFC3326HeaderFieldTypes {
1227
                    // [3326 ]
1228
                    // [3326 ]
1228
                    type record of ReasonValue ReasonValues;
1229
                    type record of ReasonValue ReasonValues;
1229
1230
1230
                    type record ReasonValue {
1231
                    type record ReasonValue {
1231
                        charstring token,
1232
                        charstring token,
1232
                        SemicolonParam_List reasonParams optional
1233
                        SemicolonParam_List reasonParams optional
1233
                    }
1234
                    }
1234
1235
1235
                    type record Reason {
1236
                    type record Reason {
1236
                        FieldName fieldName (REASON_E) ,
1237
                        FieldName fieldName (REASON_E) ,
1237
                        ReasonValues reasonValues
1238
                        ReasonValues reasonValues
1238
                    }
1239
                    }
1239
1240
1240
                } // end group RFC3326HeaderFieldTypes
1241
                } // end group RFC3326HeaderFieldTypes
1241
1242
1242
                group RFC3327HeaderFieldTypes {
1243
                group RFC3327HeaderFieldTypes {
1243
                    // [3327 ]
1244
                    // [3327 ]
1244
                    type record Path {
1245
                    type record Path {
1245
                        FieldName fieldName (PATH_E) ,
1246
                        FieldName fieldName (PATH_E) ,
1246
                        PathValues pathValues
1247
                        PathValues pathValues
1247
                    }
1248
                    }
1248
1249
1249
                    type record of PathValue PathValues;
1250
                    type record of PathValue PathValues;
1250
1251
1251
                    type record PathValue {
1252
                    type record PathValue {
1252
                        NameAddr nameAddr,
1253
                        NameAddr nameAddr,
1253
                        SemicolonParam_List rrParam optional
1254
                        SemicolonParam_List rrParam optional
1254
                    }
1255
                    }
1255
1256
1256
                } // end group RFC3515HeaderFieldTypes
1257
                } // end group RFC3515HeaderFieldTypes
1257
1258
1258
1259
1259
                group RFC4488HeaderFieldTypes {
1260
                group RFC4488HeaderFieldTypes {
1260
                    // [4488 ]
1261
                    // [4488 ]
1261
                    type record ReferSub {
1262
                    type record ReferSub {
1262
                        FieldName fieldName (REFER_SUB_E) ,
1263
                        FieldName fieldName (REFER_SUB_E) ,
1263
                        boolean referSubValue,
1264
                        boolean referSubValue,
1264
                        SemicolonParam_List referSubParams optional
1265
                        SemicolonParam_List referSubParams optional
1265
                    }
1266
                    }
1266
1267
1267
                } // end group RFC4488HeaderFieldTypes
1268
                } // end group RFC4488HeaderFieldTypes
1268
1269
1269
                group RFC3329HeaderFieldTypes {
1270
                group RFC3329HeaderFieldTypes {
1270
                    // [RFC3329/2.2 ]
1271
                    // [RFC3329/2.2 ]
1271
                    type record SecurityMechanism {
1272
                    type record SecurityMechanism {
1272
                        charstring mechName,
1273
                        charstring mechName,
1273
                        SemicolonParam_List mechParams optional
1274
                        SemicolonParam_List mechParams optional
1274
                    }
1275
                    }
1275
1276
1276
                    type set of SecurityMechanism SecurityMechanism_List;
1277
                    type set of SecurityMechanism SecurityMechanism_List;
1277
1278
1278
                    type record SecurityClient {
1279
                    type record SecurityClient {
1279
                        FieldName fieldName (SECURITY_CLIENT_E) ,
1280
                        FieldName fieldName (SECURITY_CLIENT_E) ,
1280
                        SecurityMechanism_List securityMech
1281
                        SecurityMechanism_List securityMech
1281
                    }
1282
                    }
1282
1283
1283
                    type record SecurityServer {
1284
                    type record SecurityServer {
1284
                        FieldName fieldName (SECURITY_SERVER_E) ,
1285
                        FieldName fieldName (SECURITY_SERVER_E) ,
1285
                        SecurityMechanism_List securityMech
1286
                        SecurityMechanism_List securityMech
1286
                    }
1287
                    }
1287
1288
1288
                    type record SecurityVerify {
1289
                    type record SecurityVerify {
1289
                        FieldName fieldName (SECURITY_VERIFY_E) ,
1290
                        FieldName fieldName (SECURITY_VERIFY_E) ,
1290
                        SecurityMechanism_List securityMech
1291
                        SecurityMechanism_List securityMech
1291
                    }
1292
                    }
1292
1293
1293
                } // end group RFC3329HeaderFieldTypes
1294
                } // end group RFC3329HeaderFieldTypes
1294
1295
1295
                group RFC3455HeaderFieldTypes {
1296
                group RFC3455HeaderFieldTypes {
1296
                    type record of NameAddrParam NameAddrParam_List;
1297
                    type record of NameAddrParam NameAddrParam_List;
1297
1298
1298
                    type record NameAddrParam {
1299
                    type record NameAddrParam {
1299
                        NameAddr nameAddr,
1300
                        NameAddr nameAddr,
1300
                        SemicolonParam_List genericParams optional
1301
                        SemicolonParam_List genericParams optional
1301
                    }
1302
                    }
1302
                    // [3455/5.1 ]
1303
                    // [3455/5.1 ]
1303
                    type record PAssociatedURI {
1304
                    type record PAssociatedURI {
1304
                        FieldName fieldName (P_ASSOCIATED_URI_E) ,
1305
                        FieldName fieldName (P_ASSOCIATED_URI_E) ,
1305
                        NameAddrParam_List nameAddrList
1306
                        NameAddrParam_List nameAddrList
1306
                    }
1307
                    }
1307
                    // [3455/5.2 ]
1308
                    // [3455/5.2 ]
1308
                    type record PCalledPartyID {
1309
                    type record PCalledPartyID {
1309
                        FieldName fieldName (P_CALLED_PARTY_E) ,
1310
                        FieldName fieldName (P_CALLED_PARTY_E) ,
1310
                        NameAddrParam nameAddParams
1311
                        NameAddrParam nameAddParams
1311
                    }
1312
                    }
1312
1313
1313
                    type record of VnetworkSpec VnetworkSpec_List;
1314
                    type record of VnetworkSpec VnetworkSpec_List;
1314
1315
1315
                    type record VnetworkSpec {
1316
                    type record VnetworkSpec {
1316
                        charstring vNetworkSpecToken,
1317
                        charstring vNetworkSpecToken,
1317
                        SemicolonParam_List genericParams optional
1318
                        SemicolonParam_List genericParams optional
1318
                    }
1319
                    }
1319
1320
1320
                    // [3455/5.3 ]
1321
                    // [3455/5.3 ]
1321
                    type record PVisitedNetworkID {
1322
                    type record PVisitedNetworkID {
1322
                        FieldName fieldName (P_VISITED_NETWORK_E) ,
1323
                        FieldName fieldName (P_VISITED_NETWORK_E) ,
1323
                        VnetworkSpec_List vNetWorkSpec
1324
                        VnetworkSpec_List vNetWorkSpec
1324
                    }
1325
                    }
1325
1326
1326
                    // [3455/5.4 ]
1327
                    // [3455/5.4 ]
1327
                    type record PAccessNetworkInfo {
1328
                    type record PAccessNetworkInfo {
1328
                        FieldName fieldName (P_ACCESS_NETWORK_INFO_E) ,
1329
                        FieldName fieldName (P_ACCESS_NETWORK_INFO_E) ,
1329
                        charstring accessType,
1330
                        charstring accessType,
1330
                        SemicolonParam_List genericParams optional
1331
                        SemicolonParam_List genericParams optional
1331
                    }
1332
                    }
1332
1333
1333
                    // [3455/5.5 ]
1334
                    // [3455/5.5 ]
1334
                    type record PChargingFunctionAddresses {
1335
                    type record PChargingFunctionAddresses {
1335
                        FieldName fieldName (P_CHARGING_FUNCTION_ADDRESSES_E) ,
1336
                        FieldName fieldName (P_CHARGING_FUNCTION_ADDRESSES_E) ,
1336
                        SemicolonParam_List chargeAddrParams optional
1337
                        SemicolonParam_List chargeAddrParams optional
1337
                    }
1338
                    }
1338
1339
1339
                    // [3455/5.6 ]
1340
                    // [3455/5.6 ]
1340
                    type record PChargingVector {
1341
                    type record PChargingVector {
1341
                        FieldName fieldName (P_CHARGING_VECTOR_E) ,
1342
                        FieldName fieldName (P_CHARGING_VECTOR_E) ,
1342
                        charstring icidValue,
1343
                        charstring icidValue,
1343
                        SemicolonParam_List chargeParams optional
1344
                        SemicolonParam_List chargeParams optional
1344
                    }
1345
                    }
1345
1346
1346
                } // end group RFC33455HeaderFieldTypes
1347
                } // end group RFC33455HeaderFieldTypes
1347
1348
1348
                group RFC3515HeaderFieldTypes {
1349
                group RFC3515HeaderFieldTypes {
1349
                    // [3515 ]
1350
                    // [3515 ]
1350
                    type record ReferTo {
1351
                    type record ReferTo {
1351
                        FieldName fieldName (REFER_TO_E) ,
1352
                        FieldName fieldName (REFER_TO_E) ,
1352
                        NameAddr nameAddr,
1353
                        NameAddr nameAddr,
1353
                        SemicolonParam_List referToParams optional
1354
                        SemicolonParam_List referToParams optional
1354
                    }
1355
                    }
1355
1356
1356
                } // end group RFC3515HeaderFieldTypes
1357
                } // end group RFC3515HeaderFieldTypes
1357
1358
1358
                group RFC3608HeaderFieldTypes {
1359
                group RFC3608HeaderFieldTypes {
1359
                    // [3608 ]
1360
                    // [3608 ]
1360
                    type record ServiceRoute {
1361
                    type record ServiceRoute {
1361
                        FieldName fieldName (SERVICE_ROUTE_E) ,
1362
                        FieldName fieldName (SERVICE_ROUTE_E) ,
1362
                        RouteBody_List routeBody
1363
                        RouteBody_List routeBody
1363
                    }
1364
                    }
1364
1365
1365
                } // end group RFC33608HeaderFieldTypes
1366
                } // end group RFC33608HeaderFieldTypes
1366
1367
1367
1368
1368
                group RFC3841HeaderFieldTypes {
1369
                group RFC3841HeaderFieldTypes {
1369
                    // [3841 ]
1370
                    // [3841 ]
1370
                    type record AcceptContact {
1371
                    type record AcceptContact {
1371
                        FieldName fieldName (ACCEPT_CONTACT_E) ,
1372
                        FieldName fieldName (ACCEPT_CONTACT_E) ,
1372
                        AcRcValue_List acValues
1373
                        AcRcValue_List acValues
1373
                    }
1374
                    }
1374
1375
1375
                    type set of AcRcValue AcRcValue_List;
1376
                    type set of AcRcValue AcRcValue_List;
1376
1377
1377
                    type record AcRcValue {
1378
                    type record AcRcValue {
1378
                        charstring wildcard (c_WILDCARD) ,
1379
                        charstring wildcard (c_WILDCARD) ,
1379
                        SemicolonParam_List acRcParams optional
1380
                        SemicolonParam_List acRcParams optional
1380
                    }
1381
                    }
1381
                    // [RFC 3841 ]
1382
                    // [RFC 3841 ]
1382
                    type charstring Directive;
1383
                    type charstring Directive;
1383
                    type set of Directive Directive_List;
1384
                    type set of Directive Directive_List;
1384
                    type record RequestDisposition {
1385
                    type record RequestDisposition {
1385
                        FieldName fieldName (REQUEST_DISPOSITION_E) ,
1386
                        FieldName fieldName (REQUEST_DISPOSITION_E) ,
1386
                        Directive_List directives
1387
                        Directive_List directives
1387
                    }
1388
                    }
1388
1389
1389
1390
1390
                } // end group RFC3841HeaderFieldTypes
1391
                } // end group RFC3841HeaderFieldTypes
1391
1392
1392
                group RFC3891HeaderFieldTypes {
1393
                group RFC3891HeaderFieldTypes {
1393
                    // [3891 ]
1394
                    // [3891 ]
1394
                    type record Replaces {
1395
                    type record Replaces {
1395
                        FieldName fieldName (REPLACES_E) ,
1396
                        FieldName fieldName (REPLACES_E) ,
1396
                        CallidString callid,
1397
                        CallidString callid,
1397
                        SemicolonParam_List replacesParams optional
1398
                        SemicolonParam_List replacesParams optional
1398
                    }
1399
                    }
1399
1400
1400
                } // end group RFC3891HeaderFieldTypes
1401
                } // end group RFC3891HeaderFieldTypes
1401
1402
1402
                group RFC3892HeaderFieldTypes {
1403
                group RFC3892HeaderFieldTypes {
1403
                    // [3892 ]
1404
                    // [3892 ]
1404
                    type record ReferredBy {
1405
                    type record ReferredBy {
1405
                        FieldName fieldName (REFERRED_BY_E) ,
1406
                        FieldName fieldName (REFERRED_BY_E) ,
1406
                        NameAddr nameAddr,
1407
                        NameAddr nameAddr,
1407
                        SemicolonParam_List referredbyIdParams optional
1408
                        SemicolonParam_List referredbyIdParams optional
1408
                    }
1409
                    }
1409
1410
1410
                } // end group RFC3892HeaderFieldTypes
1411
                } // end group RFC3892HeaderFieldTypes
1411
1412
1412
                group RFC4028HeaderFieldTypes {
1413
                group RFC4028HeaderFieldTypes {
1413
                    // [4028 ]
1414
                    // [4028 ]
1414
                    type record MinSE {
1415
                    type record MinSE {
1415
                        FieldName fieldName (MIN_SE_E) ,
1416
                        FieldName fieldName (MIN_SE_E) ,
1416
                        DeltaSec deltaSec,
1417
                        DeltaSec deltaSec,
1417
                        SemicolonParam_List minSeParam optional
1418
                        SemicolonParam_List minSeParam optional
1418
                    }
1419
                    }
1419
                    // [4028 ]
1420
                    // [4028 ]
1420
                    type record SessionExpires {
1421
                    type record SessionExpires {
1421
                        FieldName fieldName (SESSION_EXPIRES_E) ,
1422
                        FieldName fieldName (SESSION_EXPIRES_E) ,
1422
                        DeltaSec deltaSec,
1423
                        DeltaSec deltaSec,
1423
                        SemicolonParam_List seParam optional
1424
                        SemicolonParam_List seParam optional
1424
                    }
1425
                    }
1425
1426
1426
                } // end group RFC4028HeaderFieldTypes
1427
                } // end group RFC4028HeaderFieldTypes
1427
1428
1428
                group RFC4244HeaderFieldTypes {
1429
                group RFC4244HeaderFieldTypes {
1429
                    // [4244 ]
1430
                    // [4244 ]
1430
                    type record HistoryInfo {
1431
                    type record HistoryInfo {
1431
                        FieldName fieldName (HISTORY_INFO_E) ,
1432
                        FieldName fieldName (HISTORY_INFO_E) ,
1432
                        HistoryInfo_List historyInfoList
1433
                        HistoryInfo_List historyInfoList
1433
                    }
1434
                    }
1434
1435
1435
                    type record of HistoryInfoEntry HistoryInfo_List;
1436
                    type record of HistoryInfoEntry HistoryInfo_List;
1436
1437
1437
                    type record of integer IntegerList;
1438
                    type record of integer IntegerList;
1438
1439
1439
                    type record HistoryInfoEntry {
1440
                    type record HistoryInfoEntry {
1440
                        NameAddr nameAddr,
1441
                        NameAddr nameAddr,
1441
                        IntegerList hiIndex optional,
1442
                        IntegerList hiIndex optional,
1442
                        SemicolonParam_List hiExtention optional
1443
                        SemicolonParam_List hiExtention optional
1443
                    }
1444
                    }
1444
1445
1445
                    type record of charstring StringList;
1446
                    type record of charstring StringList;
1446
1447
1447
                } // end group RFC4244HeaderFieldTypes
1448
                } // end group RFC4244HeaderFieldTypes
1448
1449
1449
                group RFC5009PEarlyMediaHeader {
1450
                group RFC5009PEarlyMediaHeader {
1450
                    // [5009 ]
1451
                    // [5009 ]
1451
                    type record PEarlyMedia {
1452
                    type record PEarlyMedia {
1452
                        FieldName fieldName (P_EARLY_MEDIA_E) ,
1453
                        FieldName fieldName (P_EARLY_MEDIA_E) ,
1453
                        EM_Param_List em_param
1454
                        EM_Param_List em_param
1454
                    }
1455
                    }
1455
                    type charstring EM_Param;
1456
                    type charstring EM_Param;
1456
                    type set of EM_Param EM_Param_List;
1457
                    type set of EM_Param EM_Param_List;
1457
1458
1458
                } // end group RFC5009PEarlyMediaHeader
1459
                } // end group RFC5009PEarlyMediaHeader
1459
1460
1460
                // http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07, expires 16.Aug.2009
1461
                // http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07, expires 16.Aug.2009
1461
                // Transporting User to User Call Control Information in SIP for ISDN Interworking
1462
                // Transporting User to User Call Control Information in SIP for ISDN Interworking
1462
                // type definition of SIP header mechanism
1463
                // type definition of SIP header mechanism
1463
                group UserToUser_PreliminaryRFCDraft {
1464
                group UserToUser_PreliminaryRFCDraft {
1464
                    type record UserToUser {
1465
                    type record UserToUser {
1465
                        FieldName fieldName (USER_TO_USER_E) ,
1466
                        FieldName fieldName (USER_TO_USER_E) ,
1466
                        charstring uuiData  length(256),
1467
                        charstring uuiData  length(256),
1467
                        /*length limitation due to ISDN, max of allowed 128 hex digits are represented by 256 characters*/
1468
                        /*length limitation due to ISDN, max of allowed 128 hex digits are represented by 256 characters*/
1468
                        GenericParam uuiParam
1469
                        GenericParam uuiParam
1469
                    }
1470
                    }
1470
1471
1471
1472
1472
                } // end group UserToUser_PreliminaryRFCDraft
1473
                } // end group UserToUser_PreliminaryRFCDraft
1473
1474
1474
                type record PAssertedService {
1475
                type record PAssertedService {
1475
                    FieldName fieldName (P_ASSERTED_SERVICE_E) ,
1476
                    FieldName fieldName (P_ASSERTED_SERVICE_E) ,
1476
                    PAssertedServiceValue pAssertedServiceValue
1477
                    PAssertedServiceValue pAssertedServiceValue
1477
                }
1478
                }
1478
1479
1479
                group RFC6442GeolocationConveyance {
1480
                group RFC6442GeolocationConveyance {
1480
                    // [6442 ]
1481
                    // [6442 ]
1481
                    type record Geolocation {
1482
                    type record Geolocation {
1482
                        // RFC6442 clause 4.1
1483
                        // RFC6442 clause 4.1
1483
                        FieldName fieldName (GEOLOCATION_E) ,
1484
                        FieldName fieldName (GEOLOCATION_E) ,
1484
                        SipUrl addrSpec,
1485
                        SipUrl addrSpec,
1485
                        SemicolonParam_List geolocParam optional
1486
                        SemicolonParam_List geolocParam optional
1486
                    }
1487
                    }
1487
                    type enumerated GeolocationRoutingState {
1488
                    type enumerated GeolocationRoutingState {
1488
                        GEOLOCATION_ROUTING_YES_E, GEOLOCATION_ROUTING_NO_E, GEOLOCATION_ROUTING_OTHER_E
1489
                        GEOLOCATION_ROUTING_YES_E, GEOLOCATION_ROUTING_NO_E, GEOLOCATION_ROUTING_OTHER_E
1489
                    }
1490
                    }
1490
                    type record GeolocationRouting {
1491
                    type record GeolocationRouting {
1491
                        // RFC6442 clause 4.2
1492
                        // RFC6442 clause 4.2
1492
                        FieldName fieldName (GEOLOCATION_ROUTING_E) ,
1493
                        FieldName fieldName (GEOLOCATION_ROUTING_E) ,
1493
                        GeolocationRoutingState state,
1494
                        GeolocationRoutingState state,
1494
                        GenericParam genericValue optional
1495
                        GenericParam genericValue optional
1495
                    }
1496
                    }
1496
1497
1497
                } // end group RFC6442GeolocationConveyance
1498
                } // end group RFC6442GeolocationConveyance
1498
1499
1499
                type charstring SessIdString  length(32);
1500
                type charstring SessIdString  length(32);
1500
1501
1501
                type record SessionId {
1502
                type record SessionId {
1502
                    FieldName fieldName (SESSION_ID_E) ,
1503
                    FieldName fieldName (SESSION_ID_E) ,
1503
                    SessIdString sessid,
1504
                    SessIdString sessid,
1504
                    GenericParam sessidParam optional
1505
                    GenericParam sessidParam optional
1505
                }
1506
                }
1506
1507
1507
                type charstring EntityTag;
1508
                type charstring EntityTag;
1508
1509
1509
                type record SIP_ETag {
1510
                type record SIP_ETag {
1510
                    FieldName fieldName (SIP_ETAG_E) ,
1511
                    FieldName fieldName (SIP_ETAG_E) ,
1511
                    EntityTag entityTag
1512
                    EntityTag entityTag
1512
                }
1513
                }
1513
1514
1514
                type record SIP_If_Match {
1515
                type record SIP_If_Match {
1515
                    FieldName fieldName (SIP_IF_MATCH_E) ,
1516
                    FieldName fieldName (SIP_IF_MATCH_E) ,
1516
                    EntityTag entityTag
1517
                    EntityTag entityTag
1517
                }
1518
                }
1518
1519
1519
                // RFC4412
1520
                // RFC4412
1520
                type record ResourcePriority {
1521
                type record ResourcePriority {
1521
                    FieldName fieldName (RESOURCE_PRIORITY_E) ,
1522
                    FieldName fieldName (RESOURCE_PRIORITY_E) ,
1522
                    ResourcePriority_List resourcePriorityList
1523
                    ResourcePriority_List resourcePriorityList
1523
                }
1524
                }
1524
                type set of R_Value ResourcePriority_List;
1525
                type set of R_Value ResourcePriority_List;
1525
                type record R_Value {
1526
                type record R_Value {
1526
                    charstring namespace,
1527
                    charstring namespace,
1527
                    charstring rPriority
1528
                    charstring rPriority
1528
                }
1529
                }
1529
               
1530
               
1530
                // RFC5373
1531
                // RFC5373
1531
                type record AnswerMode {
1532
                type record AnswerMode {
1532
                    FieldName fieldName (ANSWER_MODE_E),
1533
                    FieldName fieldName (ANSWER_MODE_E),
1533
                    AnswerMode_Value answerMode_Value,
1534
                    AnswerMode_Value answerMode_Value,
1534
                    SemicolonParam_List answerModeParams optional
1535
                    SemicolonParam_List answerModeParams optional
1535
                }
1536
                }
1536
                type record PrivAnswerMode {
1537
                type record PrivAnswerMode {
1537
                    FieldName fieldName (PRIV_ANSWER_MODE_E),
1538
                    FieldName fieldName (PRIV_ANSWER_MODE_E),
1538
                    AnswerMode_Value answerMode_Value,
1539
                    AnswerMode_Value answerMode_Value,
1539
                    SemicolonParam_List answerModeParams optional
1540
                    SemicolonParam_List answerModeParams optional
1540
                }                
1541
                }                
1541
                type charstring AnswerMode_Value;
1542
                type charstring AnswerMode_Value;
1542
               
1543
               
1543
                 // RFC4538
1544
                 // RFC4538
1544
                type record TargetDialog {
1545
                type record TargetDialog {
1545
                      FieldName fieldName (TARGET_DIALOG_E),
1546
                      FieldName fieldName (TARGET_DIALOG_E),
1546
                      CallidString callid,
1547
                      CallidString callid,
1547
                      TdParam tdParam optional
1548
                      TdParam tdParam optional
1548
                }
1549
                }
1549
                type record TdParam {
1550
                type record TdParam {
1550
                        charstring remoteParam optional,
1551
                        charstring remoteParam optional,
1551
                        charstring localParam optional,                        
1552
                        charstring localParam optional,                        
1552
                        SemicolonParam_List genericParams optional
1553
                        SemicolonParam_List genericParams optional
1553
                    }  
1554
                    }  
1554
1555
1555
                 // RFC4964
1556
                 // RFC4964
1556
                type record PAnswerState {
1557
                type record PAnswerState {
1557
                      FieldName fieldName (P_ANSWER_STATE_E),
1558
                      FieldName fieldName (P_ANSWER_STATE_E),
1558
                      charstring answerType,
1559
                      charstring answerType,
1559
                      SemicolonParam_List genericParams optional
1560
                      SemicolonParam_List genericParams optional
1560
                }
1561
                }
1561
1562
1562
1563
1563
            } // end group HeaderFieldTypes
1564
            } // end group HeaderFieldTypes
1564
1565
1565
            group MessageHeaderTypes {
1566
            group MessageHeaderTypes {
1566
1567
1567
                // Message-Header for all SIP requests and responses [20 ]
1568
                // Message-Header for all SIP requests and responses [20 ]
1568
                type set MessageHeader {
1569
                type set MessageHeader {
1569
                    Accept accept optional,
1570
                    Accept accept optional,
1570
                    AcceptContact acceptContact optional,
1571
                    AcceptContact acceptContact optional,
1571
                    AcceptEncoding acceptEncoding optional,
1572
                    AcceptEncoding acceptEncoding optional,
1572
                    AcceptLanguage acceptLanguage optional,
1573
                    AcceptLanguage acceptLanguage optional,
1573
                    AlertInfo alertInfo optional,
1574
                    AlertInfo alertInfo optional,
1574
                    Allow allow optional,
1575
                    Allow allow optional,
1575
                    AllowEvents allowEvents optional,
1576
                    AllowEvents allowEvents optional,
1576
                    // 3265/7.2
1577
                    // 3265/7.2
1577
                    AuthenticationInfo authenticationInfo optional,
1578
                    AuthenticationInfo authenticationInfo optional,
1578
                    // only in responses
1579
                    // only in responses
1579
                    Authorization authorization optional,
1580
                    Authorization authorization optional,
1580
                    // only in requests
1581
                    // only in requests
1581
                    CallId callId optional,
1582
                    CallId callId optional,
1582
                    // optional only in Invalid test cases mandatory otherwise
1583
                    // optional only in Invalid test cases mandatory otherwise
1583
                    CallInfo callInfo optional,
1584
                    CallInfo callInfo optional,
1584
                    Contact contact optional,
1585
                    Contact contact optional,
1585
                    // optional in response and all requests except INVITE where mandatory
1586
                    // optional in response and all requests except INVITE where mandatory
1586
                    ContentDisposition contentDisposition optional,
1587
                    ContentDisposition contentDisposition optional,
1587
                    ContentEncoding contentEncoding optional,
1588
                    ContentEncoding contentEncoding optional,
1588
                    ContentLanguage contentLanguage optional,
1589
                    ContentLanguage contentLanguage optional,
1589
                    ContentLength contentLength optional,
1590
                    ContentLength contentLength optional,
1590
                    // optional in responses and all requests except ACK where mandatory
1591
                    // optional in responses and all requests except ACK where mandatory
1591
                    ContentType contentType optional,
1592
                    ContentType contentType optional,
1592
                    CSeq cSeq optional,
1593
                    CSeq cSeq optional,
1593
                    // optional only in Invalid test cases mandatory otherwise
1594
                    // optional only in Invalid test cases mandatory otherwise
1594
                    Date date optional,
1595
                    Date date optional,
1595
                    ErrorInfo errorInfo optional,
1596
                    ErrorInfo errorInfo optional,
1596
                    // only in responses
1597
                    // only in responses
1597
                    Event event optional,
1598
                    Event event optional,
1598
                    // 3265/7.2
1599
                    // 3265/7.2
1599
                    Expires expires optional,
1600
                    Expires expires optional,
1600
                    FeatureCaps featureCaps optional,  // 6809
1601
                    FeatureCaps featureCaps optional,  // 6809
1601
                    From fromField,
1602
                    From fromField,
1602
                    Geolocation geolocation optional,
1603
                    Geolocation geolocation optional,
1603
                    // 6442
1604
                    // 6442
1604
                    GeolocationRouting geolocationRouting optional,
1605
                    GeolocationRouting geolocationRouting optional,
1605
                    // 6442
1606
                    // 6442
1606
                    HistoryInfo historyInfo optional,
1607
                    HistoryInfo historyInfo optional,
1607
                    // 4244
1608
                    // 4244
1608
                    InfoPackage infoPackage optional,
1609
                    InfoPackage infoPackage optional,
1609
                    // 6086
1610
                    // 6086
1610
                    InReplyTo inReplyTo optional,
1611
                    InReplyTo inReplyTo optional,
1611
                    // only in requests
1612
                    // only in requests
1612
                    MaxForwards maxForwards optional,
1613
                    MaxForwards maxForwards optional,
1613
                    // mandatory in requests not required in responses!
1614
                    // mandatory in requests not required in responses!
1614
                    MimeVersion mimeVersion optional,
1615
                    MimeVersion mimeVersion optional,
1615
                    MinExpires minExpires optional,
1616
                    MinExpires minExpires optional,
1616
                    // only in responses
1617
                    // only in responses
1617
                    MinSE minSE optional,
1618
                    MinSE minSE optional,
1618
                    // 4028
1619
                    // 4028
1619
                    Organization organization optional,
1620
                    Organization organization optional,
1620
                    PAccessNetworkInfo pAccessNetworkInfo optional,
1621
                    PAccessNetworkInfo pAccessNetworkInfo optional,
1621
                    // 3455
1622
                    // 3455
1622
                    PAssertedID pAssertedID optional,
1623
                    PAssertedID pAssertedID optional,
1623
                    // 3325
1624
                    // 3325
1624
                    PAssertedService pAssertedService optional,
1625
                    PAssertedService pAssertedService optional,
1625
                    PAssociatedURI pAssociatedURI optional,
1626
                    PAssociatedURI pAssociatedURI optional,
1626
                    // 3455
1627
                    // 3455
1627
                    Path path optional,
1628
                    Path path optional,
1628
                    // 3327
1629
                    // 3327
1629
                    PCalledPartyID pCalledPartyID optional,
1630
                    PCalledPartyID pCalledPartyID optional,
1630
                    // 3455
1631
                    // 3455
1631
                    PChargingFunctionAddresses pChargingFunctionAddresses optional,
1632
                    PChargingFunctionAddresses pChargingFunctionAddresses optional,
1632
                    // 3455
1633
                    // 3455
1633
                    PChargingVector pChargingVector optional,
1634
                    PChargingVector pChargingVector optional,
1634
                    // 3455
1635
                    // 3455
1635
                    PEarlyMedia pEarlyMedia optional,
1636
                    PEarlyMedia pEarlyMedia optional,
1636
                    // 5009
1637
                    // 5009
1637
                    PMediaAuthorization pMediaAuthorization optional,
1638
                    PMediaAuthorization pMediaAuthorization optional,
1638
                    // 3313
1639
                    // 3313
1639
                    PPreferredID pPreferredID optional,
1640
                    PPreferredID pPreferredID optional,
1640
                    // 3325
1641
                    // 3325
1641
                    PPreferredService pPreferredService optional,
1642
                    PPreferredService pPreferredService optional,
1642
                    // draft-drage-sipping-service-identification-01 (July 2007)
1643
                    // draft-drage-sipping-service-identification-01 (July 2007)
1643
                    Priority priority optional,
1644
                    Priority priority optional,
1644
                    // only in requests
1645
                    // only in requests
1645
                    Privacy privacy optional,
1646
                    Privacy privacy optional,
1646
                    // 3323
1647
                    // 3323
1647
                    ProxyAuthenticate proxyAuthenticate optional,
1648
                    ProxyAuthenticate proxyAuthenticate optional,
1648
                    // only in responses
1649
                    // only in responses
1649
                    ProxyAuthorization proxyAuthorization optional,
1650
                    ProxyAuthorization proxyAuthorization optional,
1650
                    // only in requests
1651
                    // only in requests
1651
                    ProxyRequire proxyRequire optional,
1652
                    ProxyRequire proxyRequire optional,
1652
                    // only in requests
1653
                    // only in requests
1653
                    PVisitedNetworkID pVisitedNetworkID optional,
1654
                    PVisitedNetworkID pVisitedNetworkID optional,
1654
                    // 3455
1655
                    // 3455
1655
                    RAck rAck optional,
1656
                    RAck rAck optional,
1656
                    // 3262/7.1
1657
                    // 3262/7.1
1657
                    RSeq rSeq optional,
1658
                    RSeq rSeq optional,
1658
                    // 3262/7.1
1659
                    // 3262/7.1
1659
                    Reason reason optional,
1660
                    Reason reason optional,
1660
                    // 3326
1661
                    // 3326
1661
                    RecordRoute recordRoute optional,
1662
                    RecordRoute recordRoute optional,
1662
                    RecvInfo recvInfo optional,
1663
                    RecvInfo recvInfo optional,
1663
                    // 6086
1664
                    // 6086
1664
                    RequestDisposition requestDisposition optional,
1665
                    RequestDisposition requestDisposition optional,
1665
                    // 3841
1666
                    // 3841
1666
                    ReferredBy referredBy optional,
1667
                    ReferredBy referredBy optional,
1667
                    // 3892 - REFER method
1668
                    // 3892 - REFER method
1668
                    ReferTo referTo optional,
1669
                    ReferTo referTo optional,
1669
                    // 3515 - REFER method
1670
                    // 3515 - REFER method
1670
                    ReferSub referSub optional,
1671
                    ReferSub referSub optional,
1671
                    // 4488 - REFER method
1672
                    // 4488 - REFER method
1672
                    Replaces replaces optional,
1673
                    Replaces replaces optional,
1673
                    // 3891
1674
                    // 3891
1674
                    ReplyTo replyTo optional,
1675
                    ReplyTo replyTo optional,
1675
                    // optional in responses and INVITE requests
1676
                    // optional in responses and INVITE requests
1676
                    Require require optional,
1677
                    Require require optional,
1677
                    RetryAfter retryAfter optional,
1678
                    RetryAfter retryAfter optional,
1678
                    // only in responses
1679
                    // only in responses
1679
                    Route route optional,
1680
                    Route route optional,
1680
                    // only in requests
1681
                    // only in requests
1681
                    SecurityClient securityClient optional,
1682
                    SecurityClient securityClient optional,
1682
                    // 3329
1683
                    // 3329
1683
                    SecurityServer securityServer optional,
1684
                    SecurityServer securityServer optional,
1684
                    // 3329
1685
                    // 3329
1685
                    SecurityVerify securityVerify optional,
1686
                    SecurityVerify securityVerify optional,
1686
                    // 3329
1687
                    // 3329
1687
                    Server server optional,
1688
                    Server server optional,
1688
                    // only in responses
1689
                    // only in responses
1689
                    ServiceRoute serviceRoute optional,
1690
                    ServiceRoute serviceRoute optional,
1690
                    // 3608
1691
                    // 3608
1691
                    SessionExpires sessionExpires optional,
1692
                    SessionExpires sessionExpires optional,
1692
                    // 4028
1693
                    // 4028
1693
                    SessionId sessionId optional,
1694
                    SessionId sessionId optional,
1694
                    SIP_ETag sipETag optional,
1695
                    SIP_ETag sipETag optional,
1695
                    SIP_If_Match sipIfMatch optional,
1696
                    SIP_If_Match sipIfMatch optional,
1696
                    Subject subject optional,
1697
                    Subject subject optional,
1697
                    // only in requests
1698
                    // only in requests
1698
                    SubscriptionState subscriptionState optional,
1699
                    SubscriptionState subscriptionState optional,
1699
                    // 3265/7.2
1700
                    // 3265/7.2
1700
                    Supported supported optional,
1701
                    Supported supported optional,
1701
                    Timestamp timestamp optional,
1702
                    Timestamp timestamp optional,
1702
                    To toField,
1703
                    To toField,
1703
                    Unsupported unsupported optional,
1704
                    Unsupported unsupported optional,
1704
                    // only in responses
1705
                    // only in responses
1705
                    UserToUser userToUser optional,
1706
                    UserToUser userToUser optional,
1706
                    UserAgent userAgent optional,
1707
                    UserAgent userAgent optional,
1707
                    Via via,
1708
                    Via via,
1708
                    Warning warning optional,
1709
                    Warning warning optional,
1709
                    WwwAuthenticate wwwAuthenticate optional,
1710
                    WwwAuthenticate wwwAuthenticate optional,
1710
                    ResourcePriority resourcePriority optional,
1711
                    ResourcePriority resourcePriority optional,
1711
                    // RFC4412
1712
                    // RFC4412
1712
                    AnswerMode answerMode optional,
1713
                    AnswerMode answerMode optional,
1713
                    // RFC5373
1714
                    // RFC5373
1714
                    PrivAnswerMode privAnswerMode optional,
1715
                    PrivAnswerMode privAnswerMode optional,
1715
                    // RFC5373
1716
                    // RFC5373
1716
                    TargetDialog targetDialog optional,
1717
                    TargetDialog targetDialog optional,
1717
                    // RFC4538
1718
                    // RFC4538
1718
                    PAnswerState pAnswerState optional,
1719
                    PAnswerState pAnswerState optional,
1719
                    // RFC4964
1720
                    // RFC4964
1720
                    // only in responses
1721
                    // only in responses
1721
                    UndefinedHeader_List undefinedHeader_List optional
1722
                    UndefinedHeader_List undefinedHeader_List optional
1722
                }
1723
                }
1723
1724
1724
1725
1725
            } // end group MessageHeaderTypes
1726
            } // end group MessageHeaderTypes
1726
1727
1727
            group StartLineTypes {
1728
            group StartLineTypes {
1728
                // Request-Line [7.1 ]
1729
                // Request-Line [7.1 ]
1729
                type record RequestLine {
1730
                type record RequestLine {
1730
                    Method method,
1731
                    Method method,
1731
                    SipUrl requestUri,
1732
                    SipUrl requestUri,
1732
                    charstring sipVersion
1733
                    charstring sipVersion
1733
                }
1734
                }
1734
1735
1735
                // Status-Line [7.2 ]
1736
                // Status-Line [7.2 ]
1736
                type record StatusLine {
1737
                type record StatusLine {
1737
                    charstring sipVersion,
1738
                    charstring sipVersion,
1738
                    integer statusCode,
1739
                    integer statusCode,
1739
                    charstring reasonPhrase
1740
                    charstring reasonPhrase
1740
                }
1741
                }
1741
1742
1742
1743
1743
            } // end group StartLineTypes
1744
            } // end group StartLineTypes
1744
1745
1745
1746
1746
            group otherTypes {
1747
            group otherTypes {
1747
1748
1748
                type record SipUserProfile {
1749
                type record SipUserProfile {
1749
                    /**
1750
                    /**
1750
                     * @desc integer for the userprofile identifier
1751
                     * @desc integer for the userprofile identifier
1751
                     */
1752
                     */
1752
                    integer id,
1753
                    integer id,
1753
                    /**
1754
                    /**
1754
                     * @desc integer for Port number to exchange SIP messages
1755
                     * @desc integer for Port number to exchange SIP messages
1755
                     */
1756
                     */
1756
                    integer currPort,
1757
                    integer currPort,
1757
                    /**
1758
                    /**
1758
                     * @desc charstring for IP address to exchange SIP messages
1759
                     * @desc charstring for IP address to exchange SIP messages
1759
                     */
1760
                     */
1760
                    charstring currIpaddr,
1761
                    charstring currIpaddr,
1761
                    /**
1762
                    /**
1762
                     * @desc integer for Port number to exchange SIP messages
1763
                     * @desc integer for Port number to exchange SIP messages
1763
                     */
1764
                     */
1764
                    integer contactPort,
1765
                    integer contactPort,
1765
                    /**
1766
                    /**
1766
                     * @desc charstring for IP address to exchange SIP messages
1767
                     * @desc charstring for IP address to exchange SIP messages
1767
                     */
1768
                     */
1768
                    charstring contactIpaddr,
1769
                    charstring contactIpaddr,
1769
                    /**
1770
                    /**
1770
                     * @desc charstring for IP address used by the TS to exchange media streams
1771
                     * @desc charstring for IP address used by the TS to exchange media streams
1771
                     */
1772
                     */
1772
                    charstring bearerIpaddr,
1773
                    charstring bearerIpaddr,
1773
                    /**
1774
                    /**
1774
                     * @desc charstring for identity of the tester local domain
1775
                     * @desc charstring for identity of the tester local domain
1775
                     */
1776
                     */
1776
                    charstring homeDomain,
1777
                    charstring homeDomain,
1777
                    /**
1778
                    /**
1778
                     * @desc charstring for identity of the tester local user
1779
                     * @desc charstring for identity of the tester local user
1779
                     */
1780
                     */
1780
                    charstring publUsername,
1781
                    charstring publUsername,
1781
                    /**
1782
                    /**
1782
                     * @desc charstring for RFC 2617 3.2.1 qop options: Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
1783
                     * @desc charstring for RFC 2617 3.2.1 qop options: Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
1783
                     */
1784
                     */
1784
                    charstring qop,
1785
                    charstring qop,
1785
                    /**
1786
                    /**
1786
                     * @desc charstring for RFC 2617 3.2.2 username for authentication The name of user in the specified realm
1787
                     * @desc charstring for RFC 2617 3.2.2 username for authentication The name of user in the specified realm
1787
                     */
1788
                     */
1788
                    charstring privUsername,
1789
                    charstring privUsername,
1789
                    /**
1790
                    /**
1790
                     * @desc charstring for RFC 2617 3.2.2.2 passwd: A known shared secret, the password of user of the specified username
1791
                     * @desc charstring for RFC 2617 3.2.2.2 passwd: A known shared secret, the password of user of the specified username
1791
                     */
1792
                     */
1792
                    charstring passwd,
1793
                    charstring passwd,
1793
                    /**
1794
                    /**
1794
                     * @desc charstring for registrar domain for authentication and request line
1795
                     * @desc charstring for registrar domain for authentication and request line
1795
                     */
1796
                     */
1796
                    charstring registrarDomain
1797
                    charstring registrarDomain
1797
                }
1798
                }
1798
1799
1799
1800
1800
1801
1801
            } // end group otherTypes
1802
            } // end group otherTypes
1802
1803
1803
1804
1804
        } // end group Subtypes
1805
        } // end group Subtypes
1805
1806
1806
1807
1807
1808
1808
        group MSGtypes {
1809
        group MSGtypes {
1809
1810
1810
            group RequestTypes {
1811
            group RequestTypes {
1811
                // [7.1 ]
1812
                // [7.1 ]
1812
                /**
1813
                /**
1813
                 * @desc generic type of a SIP request message
1814
                 * @desc generic type of a SIP request message
1814
                 * @member statusLine contains a method name, a Request-URI, and the protocol version
1815
                 * @member statusLine contains a method name, a Request-URI, and the protocol version
1815
                 * @member msgHeader include all possible header fields that are allowed to be present according to RFCs and other standards
1816
                 * @member msgHeader include all possible header fields that are allowed to be present according to RFCs and other standards
1816
                 * @member messageBody depends on the request method, includes e.g. SDP message.
1817
                 * @member messageBody depends on the request method, includes e.g. SDP message.
1817
                 * @member payload contains the whole message as it has been received in its text format
1818
                 * @member payload contains the whole message as it has been received in its text format
1818
                 */
1819
                 */
1819
                type record Request {
1820
                type record Request {
1820
                    RequestLine requestLine,
1821
                    RequestLine requestLine,
1821
                    MessageHeader msgHeader,
1822
                    MessageHeader msgHeader,
1822
                    MessageBody messageBody optional,
1823
                    MessageBody messageBody optional,
1823
                    Payload payload optional
1824
                    Payload payload optional
1824
                }
1825
                }
1825
1826
1826
                // Note: the introduction of the following specific types is to enable better means for logging
1827
                // Note: the introduction of the following specific types is to enable better means for logging
1827
                // on the other side the generic type is useful for functions dealing with multiple SIP message types
1828
                // on the other side the generic type is useful for functions dealing with multiple SIP message types
1828
                type record REGISTER_Request {
1829
                type record REGISTER_Request {
1829
                    RequestLine requestLine,
1830
                    RequestLine requestLine,
1830
                    MessageHeader msgHeader,
1831
                    MessageHeader msgHeader,
1831
                    MessageBody messageBody optional,
1832
                    MessageBody messageBody optional,
1832
                    Payload payload optional
1833
                    Payload payload optional
1833
                }
1834
                }
1834
1835
1835
                type record INVITE_Request {
1836
                type record INVITE_Request {
1836
                    RequestLine requestLine,
1837
                    RequestLine requestLine,
1837
                    MessageHeader msgHeader,
1838
                    MessageHeader msgHeader,
1838
                    MessageBody messageBody optional,
1839
                    MessageBody messageBody optional,
1839
                    Payload payload optional
1840
                    Payload payload optional
1840
                }
1841
                }
1841
1842
1842
                type record OPTIONS_Request {
1843
                type record OPTIONS_Request {
1843
                    RequestLine requestLine,
1844
                    RequestLine requestLine,
1844
                    MessageHeader msgHeader,
1845
                    MessageHeader msgHeader,
1845
                    MessageBody messageBody optional,
1846
                    MessageBody messageBody optional,
1846
                    Payload payload optional
1847
                    Payload payload optional
1847
                }
1848
                }
1848
1849
1849
                type record BYE_Request {
1850
                type record BYE_Request {
1850
                    RequestLine requestLine,
1851
                    RequestLine requestLine,
1851
                    MessageHeader msgHeader,
1852
                    MessageHeader msgHeader,
1852
                    MessageBody messageBody optional,
1853
                    MessageBody messageBody optional,
1853
                    Payload payload optional
1854
                    Payload payload optional
1854
                }
1855
                }
1855
1856
1856
                type record CANCEL_Request {
1857
                type record CANCEL_Request {
1857
                    RequestLine requestLine,
1858
                    RequestLine requestLine,
1858
                    MessageHeader msgHeader,
1859
                    MessageHeader msgHeader,
1859
                    MessageBody messageBody optional,
1860
                    MessageBody messageBody optional,
1860
                    Payload payload optional
1861
                    Payload payload optional
1861
                }
1862
                }
1862
1863
1863
                type record ACK_Request {
1864
                type record ACK_Request {
1864
                    RequestLine requestLine,
1865
                    RequestLine requestLine,
1865
                    MessageHeader msgHeader,
1866
                    MessageHeader msgHeader,
1866
                    MessageBody messageBody optional,
1867
                    MessageBody messageBody optional,
1867
                    Payload payload optional
1868
                    Payload payload optional
1868
                }
1869
                }
1869
1870
1870
                // [3262/7.1 ]
1871
                // [3262/7.1 ]
1871
                type record PRACK_Request {
1872
                type record PRACK_Request {
1872
                    RequestLine requestLine,
1873
                    RequestLine requestLine,
1873
                    MessageHeader msgHeader,
1874
                    MessageHeader msgHeader,
1874
                    MessageBody messageBody optional,
1875
                    MessageBody messageBody optional,
1875
                    Payload payload optional
1876
                    Payload payload optional
1876
                }
1877
                }
1877
1878
1878
                // [3265/7.1 ]
1879
                // [3265/7.1 ]
1879
                type record NOTIFY_Request {
1880
                type record NOTIFY_Request {
1880
                    RequestLine requestLine,
1881
                    RequestLine requestLine,
1881
                    MessageHeader msgHeader,
1882
                    MessageHeader msgHeader,
1882
                    MessageBody messageBody optional,
1883
                    MessageBody messageBody optional,
1883
                    Payload payload optional
1884
                    Payload payload optional
1884
                }
1885
                }
1885
1886
1886
                // [3265/7.1 ]
1887
                // [3265/7.1 ]
1887
                type record SUBSCRIBE_Request {
1888
                type record SUBSCRIBE_Request {
1888
                    RequestLine requestLine,
1889
                    RequestLine requestLine,
1889
                    MessageHeader msgHeader,
1890
                    MessageHeader msgHeader,
1890
                    MessageBody messageBody optional,
1891
                    MessageBody messageBody optional,
1891
                    Payload payload optional
1892
                    Payload payload optional
1892
                }
1893
                }
1893
1894
1894
                // [3903/11.1 ]
1895
                // [3903/11.1 ]
1895
                type record PUBLISH_Request {
1896
                type record PUBLISH_Request {
1896
                    RequestLine requestLine,
1897
                    RequestLine requestLine,
1897
                    MessageHeader msgHeader,
1898
                    MessageHeader msgHeader,
1898
                    MessageBody messageBody optional,
1899
                    MessageBody messageBody optional,
1899
                    Payload payload optional
1900
                    Payload payload optional
1900
                }
1901
                }
1901
1902
1902
                // [3311/7 ]
1903
                // [3311/7 ]
1903
                type record UPDATE_Request {
1904
                type record UPDATE_Request {
1904
                    RequestLine requestLine,
1905
                    RequestLine requestLine,
1905
                    MessageHeader msgHeader,
1906
                    MessageHeader msgHeader,
1906
                    MessageBody messageBody optional,
1907
                    MessageBody messageBody optional,
1907
                    Payload payload optional
1908
                    Payload payload optional
1908
                }
1909
                }
1909
1910
1910
                type record REFER_Request {
1911
                type record REFER_Request {
1911
                    RequestLine requestLine,
1912
                    RequestLine requestLine,
1912
                    MessageHeader msgHeader,
1913
                    MessageHeader msgHeader,
1913
                    MessageBody messageBody optional,
1914
                    MessageBody messageBody optional,
1914
                    Payload payload optional
1915
                    Payload payload optional
1915
                }
1916
                }
1916
1917
1917
                type record MESSAGE_Request {
1918
                type record MESSAGE_Request {
1918
                    RequestLine requestLine,
1919
                    RequestLine requestLine,
1919
                    MessageHeader msgHeader,
1920
                    MessageHeader msgHeader,
1920
                    MessageBody messageBody optional,
1921
                    MessageBody messageBody optional,
1921
                    Payload payload optional
1922
                    Payload payload optional
1922
                }
1923
                }
1923
1924
1924
                type record INFO_Request {
1925
                type record INFO_Request {
1925
                    RequestLine requestLine,
1926
                    RequestLine requestLine,
1926
                    MessageHeader msgHeader,
1927
                    MessageHeader msgHeader,