Rev

Rev 553 | Details | Compare with Previous | Last modification | View Log | SVN | Bug Tracker

Rev Author Line No. Line
33 schulzs 1
/**
599 tepelmann 2
 * @author STF 346, STF366, STF368, STF369, STF450, STF471
3
 * @version $Id: LibSip_SDPTypes.ttcn 599 2014-02-25 17:53:39Z tepelmann $
4
 * @desc This module defines message, attribute, structured and simple
5
 *             SDP types as well constants used by LipSip constructs. <br>
6
 *             Note that any changes made to the definitions in this module
7
 *             may be overwritten by future releases of this library
8
 *             End users are encouraged to contact the distributers of this
9
 *             module regarding their modifications or additions
10
 *             This module is part of LibSipV3.
11
 * @remark Adding of new attributes types is ok; Adding of new optional attributes in @see SDP_attribute type is ok; Existing attribute types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org
9 rennoch 12
 */
599 tepelmann 13
module LibSip_SDPTypes {
14
    group Constants {
15
        group SimpleConstants {
16
            // SDP net_type
17
            const charstring c_in := "IN";
9 rennoch 18
 
599 tepelmann 19
            // SDP addr_type
20
            const charstring c_ip4 := "IP4";
21
            const charstring c_ip6 := "IP6";
9 rennoch 22
 
599 tepelmann 23
            // SDP_media_desc: media
24
            const charstring c_audio := "audio";
25
            const charstring c_image := "image";
26
            const charstring c_video := "video";
27
            const charstring c_text := "text";
28
            const charstring c_msrp := "msrp";
530 rennoch 29
 
599 tepelmann 30
            // SDP_media_desc: transport
31
            const charstring c_rtpAvp := "RTP/AVP";
32
            const charstring c_rtpAvpf := "RTP/AVPF";
33
            const charstring c_msrpTcp := "TCP/MSRP";
34
            const charstring c_udptl := "Udptl";
530 rennoch 35
 
599 tepelmann 36
            // SDP_attribute_list constants:
37
            const charstring c_local := "local";
38
            const charstring c_mandatory := "mandatory";
39
            const charstring c_optional := "optional";
40
            const charstring c_none := "none";
41
            const charstring c_qos := "qos";
42
            const charstring c_remote := "remote";
43
            const charstring c_sendrecv := "sendrecv";
44
            const charstring c_sendonly := "sendonly";
45
            const charstring c_inactive := "inactive";
46
            const charstring c_send := "send";
47
            const charstring c_recv := "recv";
48
            const charstring c_e2e := "e2e";
49
        }
530 rennoch 50
    }
599 tepelmann 51
    group Types {
52
        group SubTypes {
53
            group AttributeTypes {
54
                type record SDP_attribute_cat {
55
                    charstring attr_value
56
                }
9 rennoch 57
 
599 tepelmann 58
                type record SDP_attribute_keywds {
59
                    charstring attr_value
60
                }
9 rennoch 61
 
599 tepelmann 62
                type record SDP_attribute_tool {
63
                    charstring attr_value
64
                }
9 rennoch 65
 
599 tepelmann 66
                type record SDP_attribute_ptime {
67
                    charstring attr_value
68
                }
9 rennoch 69
 
599 tepelmann 70
                type record SDP_attribute_recvonly {
71
                }
9 rennoch 72
 
599 tepelmann 73
                type record SDP_attribute_sendrecv {
74
                }
9 rennoch 75
 
599 tepelmann 76
                type record SDP_attribute_sendonly {
77
                }
9 rennoch 78
 
599 tepelmann 79
                type record SDP_attribute_inactive {
80
                }
9 rennoch 81
 
599 tepelmann 82
                type record SDP_attribute_orient {
83
                    charstring attr_value
84
                }
9 rennoch 85
 
599 tepelmann 86
                type record SDP_attribute_type {
87
                    charstring attr_value
88
                }
9 rennoch 89
 
599 tepelmann 90
                type record SDP_attribute_charset {
91
                    charstring attr_value
92
                }
9 rennoch 93
 
599 tepelmann 94
                type record SDP_attribute_sdplang {
95
                    charstring attr_value
96
                }
9 rennoch 97
 
599 tepelmann 98
                type record SDP_attribute_lang {
99
                    charstring attr_value
100
                }
9 rennoch 101
 
599 tepelmann 102
                type record SDP_attribute_framerate {
103
                    charstring attr_value
104
                }
9 rennoch 105
 
599 tepelmann 106
                type record SDP_attribute_quality {
107
                    charstring attr_value
108
                }
9 rennoch 109
 
599 tepelmann 110
                type record SDP_attribute_fmtp {
111
                    charstring attr_value
112
                }
9 rennoch 113
 
599 tepelmann 114
                type record SDP_attribute_curr {
115
                    charstring preconditionType,
116
                    charstring statusType,
117
                    charstring direction
118
                }
9 rennoch 119
 
599 tepelmann 120
                type record SDP_attribute_des {
121
                    charstring preconditionType,
122
                    charstring strength,
123
                    charstring statusType,
124
                    charstring direction
125
                }
9 rennoch 126
 
599 tepelmann 127
                type record SDP_attribute_conf {
128
                    charstring preconditionType,
129
                    charstring statusType,
130
                    charstring direction
131
                }
9 rennoch 132
 
599 tepelmann 133
                type record SDP_attribute_rtpmap {
134
                    charstring attr_value
135
                }
9 rennoch 136
 
599 tepelmann 137
                type record SDP_attribute_rtcp {
138
                    charstring attr_value
139
                }
513 garciay 140
 
599 tepelmann 141
                type record SDP_attribute_msrp {
142
                    charstring attr_value
143
                }
9 rennoch 144
 
599 tepelmann 145
                type record SDP_attribute_unknown {
146
                    charstring name,
147
                    charstring attr_value optional
148
                }
9 rennoch 149
 
150
 
599 tepelmann 151
                type union SDP_attribute {
152
                    SDP_attribute_cat cat,
153
                    SDP_attribute_keywds keywds,
154
                    SDP_attribute_tool tool,
155
                    SDP_attribute_ptime ptime,
156
                    SDP_attribute_recvonly recvonly,
157
                    SDP_attribute_sendrecv sendrecv,
158
                    SDP_attribute_sendonly sendonly,
159
                    SDP_attribute_inactive inactive,
160
                    SDP_attribute_orient orient,
161
                    SDP_attribute_type sdp_type,
162
                    SDP_attribute_charset charset,
163
                    SDP_attribute_sdplang sdplang,
164
                    SDP_attribute_lang lang,
165
                    SDP_attribute_framerate framerate,
166
                    SDP_attribute_quality quality,
167
                    SDP_attribute_fmtp fmtp,
168
                    SDP_attribute_curr curr,
169
                    SDP_attribute_des des,
170
                    SDP_attribute_conf conf,
171
                    SDP_attribute_rtpmap rtpmap,
172
                    SDP_attribute_rtcp rtcp,
173
                    SDP_attribute_msrp msrp,
174
                    //*     unknown has to be the last else encoding/decoding won't work!
175
                    SDP_attribute_unknown unknown
176
                }
177
 
178
            } //*     group AttributeTypes
179
 
180
            type set of SDP_attribute SDP_attribute_list;
181
 
182
            type record SDP_bandwidth {
183
                charstring modifier,
184
                integer bandwidth
9 rennoch 185
            }
186
 
599 tepelmann 187
            type set of SDP_bandwidth SDP_bandwidth_list;
9 rennoch 188
 
599 tepelmann 189
            type record SDP_connection {
190
                charstring net_type,
191
                charstring addr_type,
192
                SDP_conn_addr conn_addr
193
            }
9 rennoch 194
 
599 tepelmann 195
            type record SDP_conn_addr {
196
                charstring addr,
197
                integer ttl optional,
198
                integer num_of_addr optional
199
            }
9 rennoch 200
 
599 tepelmann 201
            type set of SDP_connection SDP_connection_list;
9 rennoch 202
 
599 tepelmann 203
            type record SDP_contact {
204
                charstring addr_or_phone,
205
                charstring disp_name optional
206
            }
9 rennoch 207
 
599 tepelmann 208
            type SDP_contact SDP_contact_tel;
9 rennoch 209
 
599 tepelmann 210
            type SDP_contact SDP_contact_email;
9 rennoch 211
 
599 tepelmann 212
            type set of SDP_contact_email SDP_email_list;
9 rennoch 213
 
599 tepelmann 214
            type record of charstring SDP_fmt_list;
9 rennoch 215
 
599 tepelmann 216
            type record SDP_key {
217
                charstring method,
218
                charstring key optional
219
            }
9 rennoch 220
 
599 tepelmann 221
            type record SDP_media_desc {
222
                SDP_media_field media_field,
223
                charstring information optional,
224
                SDP_connection_list connections optional,
225
                SDP_bandwidth_list bandwidth optional,
226
                SDP_key key optional,
227
                SDP_attribute_list attributes optional
228
            }
9 rennoch 229
 
599 tepelmann 230
            type set of SDP_media_desc SDP_media_desc_list;
9 rennoch 231
 
599 tepelmann 232
            type record SDP_media_port {
233
                integer port_number,
234
                integer num_of_ports optional
235
            }
9 rennoch 236
 
599 tepelmann 237
            type record SDP_media_field {
238
                charstring media,
239
                SDP_media_port ports,
240
                charstring transport,
241
                SDP_fmt_list fmts
242
            }
9 rennoch 243
 
599 tepelmann 244
            type record SDP_time {
245
                SDP_time_field time_field,
246
                SDP_repeat_list time_repeat optional
247
            }
9 rennoch 248
 
599 tepelmann 249
            type record SDP_time_field {
250
                charstring start_time,
251
                //*     field is numeric strings that may not fit into 32-bit signed int
252
                charstring
253
                stop_time //*     field is numeric strings that may not fit into 32-bit signed int
254
            }
9 rennoch 255
 
599 tepelmann 256
            type record SDP_repeat {
257
                SDP_typed_time repeat_interval,
258
                SDP_typed_time active,
259
                SDP_typed_time_list offsets
260
            }
9 rennoch 261
 
599 tepelmann 262
            type set of SDP_repeat SDP_repeat_list;
9 rennoch 263
 
599 tepelmann 264
            type record SDP_typed_time {
265
                integer time,
266
                charstring unit optional
267
            }
9 rennoch 268
 
599 tepelmann 269
            type set of SDP_typed_time SDP_typed_time_list;
9 rennoch 270
 
599 tepelmann 271
            type set of SDP_time SDP_time_list;
9 rennoch 272
 
599 tepelmann 273
            type record SDP_timezone {
274
                charstring adjustment_time,
275
                SDP_typed_time offset
276
            }
9 rennoch 277
 
599 tepelmann 278
            type set of SDP_timezone SDP_timezone_list;
9 rennoch 279
 
599 tepelmann 280
            type record SDP_Origin {
281
                charstring user_name,
282
                charstring session_id,
283
                //*     field is numeric strings that may not fit into 32-bit signed int
284
                charstring session_version,
285
                //*     field is numeric strings that may not fit into 32-bit signed int
286
                charstring net_type,
287
                charstring addr_type,
288
                charstring addr
289
            }
9 rennoch 290
 
599 tepelmann 291
            type set of SDP_contact_tel SDP_phone_list;
9 rennoch 292
 
599 tepelmann 293
        } //*     group SubTypes
9 rennoch 294
 
295
 
599 tepelmann 296
        group MessageTypes {
297
            type record SDP_Message {
298
                integer protocol_version,
299
                SDP_Origin origin,
300
                charstring session_name,
301
                charstring information optional,
302
                charstring uri optional,
303
                SDP_email_list emails optional,
304
                SDP_phone_list phone_numbers optional,
305
                SDP_connection connection optional,
306
                SDP_bandwidth_list bandwidth optional,
307
                SDP_time_list times,
308
                SDP_timezone_list timezone_adjustments optional,
309
                SDP_key key optional,
310
                SDP_attribute_list attributes optional,
311
                SDP_media_desc_list media_list optional
312
            }
313
            with {
314
                encode "SDPCodec";
315
            }
9 rennoch 316
 
599 tepelmann 317
        } // group MessageTypes
318
 
319
    } // group Types
33 schulzs 320
} // end module LibSip_SDPTypes