Fix a number of proto_tree_add_item() encoding args.
[obnox/wireshark/wip.git] / epan / dissectors / packet-h248_annex_c.c
1 /*
2  *  packet-h248-annex_c.c
3  *  H.248 annex C
4  *
5  *  (c) 2006, Luis E. Garcia Ontanon <luis@ontanon.org>
6  *
7  * $Id$
8  *
9  * Wireshark - Network traffic analyzer
10  * By Gerald Combs <gerald@wireshark.org>
11  * Copyright 1998 Gerald Combs
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
26  */
27
28 #ifdef HAVE_CONFIG_H
29 # include "config.h"
30 #endif
31
32 #include "packet-h248.h"
33 #define PNAME  "H.248 Annex C"
34 #define PSNAME "H248C"
35 #define PFNAME "h248c"
36
37 /* H.248 Annex C */
38 static int proto_h248_pkg_annexc = -1;
39
40 static int hf_h248_pkg_annexc_media = -1;
41 static int hf_h248_pkg_annexc_ACodec = -1;
42 static int hf_h248_pkg_annexc_Mediatx = -1;
43 static int hf_h248_pkg_annexc_NSAP = -1;
44 static int hf_h248_pkg_annexc_BIR = -1;
45 static int hf_h248_pkg_annexc_transmission_mode = -1;
46 static int hf_h248_pkg_annexc_num_of_channels = -1;
47 static int hf_h248_pkg_annexc_sampling_rate = -1;
48 static int hf_h248_pkg_annexc_bit_rate = -1;
49 static int hf_h248_pkg_annexc_samplepp = -1;
50 static int hf_h248_pkg_annexc_silence_supp = -1;
51 static int hf_h248_pkg_annexc_encrypt_type = -1;
52 static int hf_h248_pkg_annexc_encrypt_key = -1;
53 static int hf_h248_pkg_annexc_gain = -1;
54 static int hf_h248_pkg_annexc_jitterbuf = -1;
55 static int hf_h248_pkg_annexc_propdelay = -1;
56 static int hf_h248_pkg_annexc_rtp_payload = -1;
57
58 static int hf_h248_pkg_annexc_h222 = -1;
59 static int hf_h248_pkg_annexc_h223 = -1;
60 static int hf_h248_pkg_annexc_v76 = -1;
61 static int hf_h248_pkg_annexc_h2250 = -1;
62
63 static int hf_h248_pkg_annexc_aesa = -1;
64 static int hf_h248_pkg_annexc_vp = -1;
65 static int hf_h248_pkg_annexc_vc = -1;
66 static int hf_h248_pkg_annexc_sc = -1;
67 static int hf_h248_pkg_annexc_bcob = -1;
68 static int hf_h248_pkg_annexc_bbtc = -1;
69 static int hf_h248_pkg_annexc_atc = -1;
70 static int hf_h248_pkg_annexc_stc = -1;
71 static int hf_h248_pkg_annexc_uppc = -1;
72 static int hf_h248_pkg_annexc_pcr0 = -1;
73 static int hf_h248_pkg_annexc_scr0 = -1;
74 static int hf_h248_pkg_annexc_mbs0 = -1;
75 static int hf_h248_pkg_annexc_pcr1 = -1;
76 static int hf_h248_pkg_annexc_scr1 = -1;
77 static int hf_h248_pkg_annexc_mbs1 = -1;
78 static int hf_h248_pkg_annexc_bei = -1;
79 static int hf_h248_pkg_annexc_ti = -1;
80 static int hf_h248_pkg_annexc_fd = -1;
81 static int hf_h248_pkg_annexc_a2pcdv = -1;
82 static int hf_h248_pkg_annexc_c2pcdv = -1;
83 static int hf_h248_pkg_annexc_appcdv = -1;
84 static int hf_h248_pkg_annexc_cppcdv = -1;
85 static int hf_h248_pkg_annexc_aclr = -1;
86 static int hf_h248_pkg_annexc_meetd = -1;
87 static int hf_h248_pkg_annexc_ceetd = -1;
88 static int hf_h248_pkg_annexc_QosClass = -1;
89 static int hf_h248_pkg_annexc_AALtype = -1;
90
91 static int hf_h248_pkg_annexc_dlci = -1;
92 static int hf_h248_pkg_annexc_cid = -1;
93 static int hf_h248_pkg_annexc_sid = -1;
94 static int hf_h248_pkg_annexc_ppt = -1;
95
96 static int hf_h248_pkg_annexc_ipv4 = -1;
97 static int hf_h248_pkg_annexc_ipv6 = -1;
98 static int hf_h248_pkg_annexc_port = -1;
99 static int hf_h248_pkg_annexc_porttype = -1;
100
101 static int hf_h248_pkg_annexc_alc = -1;
102 static int hf_h248_pkg_annexc_sut = -1;
103 static int hf_h248_pkg_annexc_tci = -1;
104 static int hf_h248_pkg_annexc_timer_cu = -1;
105 static int hf_h248_pkg_annexc_maxcpssdu = -1;
106
107 static int hf_h248_pkg_annexc_aal1st = -1;
108 static int hf_h248_pkg_annexc_cbrr = -1;
109 static int hf_h248_pkg_annexc_scri = -1;
110 static int hf_h248_pkg_annexc_ecm = -1;
111 static int hf_h248_pkg_annexc_sdbt = -1;
112 static int hf_h248_pkg_annexc_pfci = -1;
113
114 static int hf_h248_pkg_annexc_tmr = -1;
115 static int hf_h248_pkg_annexc_tmrsr = -1;
116 static int hf_h248_pkg_annexc_contcheck = -1;
117 static int hf_h248_pkg_annexc_itc = -1;
118 static int hf_h248_pkg_annexc_transmode = -1;
119 static int hf_h248_pkg_annexc_transrate = -1;
120 static int hf_h248_pkg_annexc_mult = -1;
121 static int hf_h248_pkg_annexc_syncasync = -1;
122 static int hf_h248_pkg_annexc_negotiation = -1;
123 static int hf_h248_pkg_annexc_userrate = -1;
124 static int hf_h248_pkg_annexc_intrate = -1;
125 static int hf_h248_pkg_annexc_nictx = -1;
126 static int hf_h248_pkg_annexc_nicrx = -1;
127 static int hf_h248_pkg_annexc_flowconttx = -1;
128 static int hf_h248_pkg_annexc_flowcontrx = -1;
129 static int hf_h248_pkg_annexc_rateadapthdr = -1;
130 static int hf_h248_pkg_annexc_multiframe = -1;
131 static int hf_h248_pkg_annexc_opmode = -1;
132 static int hf_h248_pkg_annexc_llidnegot = -1;
133 static int hf_h248_pkg_annexc_assign = -1;
134 static int hf_h248_pkg_annexc_inbandneg = -1;
135 static int hf_h248_pkg_annexc_stopbits = -1;
136 static int hf_h248_pkg_annexc_databits = -1;
137 static int hf_h248_pkg_annexc_parity = -1;
138 static int hf_h248_pkg_annexc_duplexmode = -1;
139 static int hf_h248_pkg_annexc_modem = -1;
140 static int hf_h248_pkg_annexc_layer2prot = -1;
141 static int hf_h248_pkg_annexc_layer3prot = -1;
142 static int hf_h248_pkg_annexc_addlayer3prot = -1;
143 static int hf_h248_pkg_annexc_dialedn = -1;
144 static int hf_h248_pkg_annexc_dialingn = -1;
145 static int hf_h248_pkg_annexc_echoci = -1;
146 static int hf_h248_pkg_annexc_nci = -1;
147 static int hf_h248_pkg_annexc_USI = -1;
148
149 static int hf_h248_pkg_annexc_fmsdu = -1;
150 static int hf_h248_pkg_annexc_bmsdu = -1;
151 static int hf_h248_pkg_annexc_sscs = -1;
152
153 static int hf_h248_pkg_annexc_sdp_v = -1;
154 static int hf_h248_pkg_annexc_sdp_o = -1;
155 static int hf_h248_pkg_annexc_sdp_s = -1;
156 static int hf_h248_pkg_annexc_sdp_i = -1;
157 static int hf_h248_pkg_annexc_sdp_u = -1;
158 static int hf_h248_pkg_annexc_sdp_e = -1;
159 static int hf_h248_pkg_annexc_sdp_p = -1;
160 static int hf_h248_pkg_annexc_sdp_c = -1;
161 static int hf_h248_pkg_annexc_sdp_b = -1;
162 static int hf_h248_pkg_annexc_sdp_z = -1;
163 static int hf_h248_pkg_annexc_sdp_k = -1;
164 static int hf_h248_pkg_annexc_sdp_a = -1;
165 static int hf_h248_pkg_annexc_sdp_t = -1;
166 static int hf_h248_pkg_annexc_sdp_r = -1;
167 static int hf_h248_pkg_annexc_sdp_m = -1;
168
169 static int hf_h248_pkg_annexc_olc = -1;
170 static int hf_h248_pkg_annexc_olcack = -1;
171 static int hf_h248_pkg_annexc_olccnf = -1;
172 static int hf_h248_pkg_annexc_olcrej = -1;
173 static int hf_h248_pkg_annexc_clc = -1;
174 static int hf_h248_pkg_annexc_clcack = -1;
175
176
177
178 static gint ett_annexc = -1;
179 static gint ett_vpvc = -1;
180 static gint ett_codec = -1;
181
182 static const value_string h248_annexc_package_properties_vals[] = {
183         { 0x1001, "media" },
184         { 0x1002, "transmission mode" },
185         { 0x1003, "num_of_channels" },
186         { 0x1004, "sampling_rate" },
187         { 0x1005, "bit_rate" },
188         { 0x1006, "ACodec" },
189         { 0x1007, "samplepp" },
190         { 0x1008, "silence_supp" },
191         { 0x1009, "encrypt_type" },
192         { 0x100A, "encrypt_key" },
193         { 0x100B, "echo canceller" },
194         { 0x100C, "gain" },
195         { 0x100D, "jitterbuf" },
196         { 0x100E, "propdelay" },
197         { 0x100F, "rtp_payload" },
198
199         { 0x2001, "h222" },
200         { 0x2002, "h223" },
201         { 0x2003, "v76" },
202         { 0x2004, "h2250" },
203
204         { 0x3001, "Mediatx" },
205         { 0x3002, "BIR" },
206         { 0x3003, "NSAP" },
207
208         { 0x4001, "aesa" },
209         { 0x4002, "vp" },
210         { 0x4003, "sc" },
211         { 0x4004, "bcob" },
212         { 0x4005, "bbtc" },
213         { 0x4006, "atc" },
214         { 0x4007, "stc" },
215         { 0x4008, "uppc" },
216         { 0x4009, "pcr0" },
217         { 0x400a, "scr0" },
218         { 0x400b, "mbs0" },
219         { 0x400c, "pcr1" },
220         { 0x400d, "scr1" },
221         { 0x400e, "mbs1" },
222         { 0x400f, "bei" },
223         { 0x4010, "ti" },
224         { 0x4011, "fd" },
225         { 0x4012, "a2pcdv" },
226         { 0x4013, "c2pcdv" },
227         { 0x4014, "appcdv" },
228         { 0x4015, "cppcdv" },
229         { 0x4016, "aclr" },
230         { 0x4017, "meetd" },
231         { 0x4018, "ceetd" },
232         { 0x4019, "QosClass" },
233         { 0x401a, "AALtype" },
234
235         { 0x5001, "DLCI" },
236         { 0x5002, "CID" },
237         { 0x5003, "SID/Noiselevel" },
238         { 0x5004, "PPT" },
239
240         { 0x6001, "IPv4" },
241         { 0x6002, "IPv6" },
242         { 0x6003, "Port" },
243         { 0x6004, "Porttype" },
244
245         { 0x7001, "AESA" },
246         { 0x7002, "ALC" },
247         { 0x7003, "SSCS" },
248         { 0x7004, "SUT" },
249         { 0x7005, "TCI" },
250         { 0x7006, "Timer_CU" },
251         { 0x7007, "MaxCPSSDU" },
252         { 0x7008, "CID" },
253
254         { 0x8001, "AAL1ST" },
255         { 0x8002, "CBRR" },
256         { 0x8003, "SCRI" },
257         { 0x8004, "ECM" },
258         { 0x8005, "SDTB" },
259         { 0x8006, "PFCI" },
260
261         { 0x9001, "TMR" },
262         { 0x9008, "USI" },
263         { 0x9009, "syncasync" },
264         { 0x900a, "negotiation" },
265         { 0x900b, "userrate" },
266         { 0x900c, "intrate" },
267         { 0x900d, "nictx" },
268         { 0x900e, "nicrx" },
269         { 0x900f, "flowconttx" },
270         { 0x9010, "flowcontrx" },
271         { 0x9011, "rateadapthdr" },
272         { 0x9012, "multiframe" },
273         { 0x9013, "opmode" },
274         { 0x9014, "llnegot" },
275         { 0x9015, "assign" },
276         { 0x9016, "inbandneg" },
277         { 0x9017, "stopbits" },
278         { 0x9018, "databits" },
279         { 0x9019, "parity" },
280         { 0x901a, "duplexmode" },
281         { 0x901b, "modem" },
282         { 0x901c, "layer2prot" },
283         { 0x901d, "layer3prot" },
284         { 0x901e, "addlayer3prot" },
285         { 0x901f, "DialledN" },
286         { 0x9020, "DiallingN" },
287         { 0x9021, "ECHOCI" },
288         { 0x9022, "NCI" },
289         { 0x9023, "USI" },
290
291         { 0xA001, "FMSDU" },
292         { 0xA002, "BMSDU" },
293
294         { 0xB001, "SDP_V (Protocol Version)" },
295         { 0xB002, "SDP_O (Owner/creator)" },
296         { 0xB003, "SDP_S (Session Name)" },
297         { 0xB004, "SDP_I (Session Identifier)" },
298         { 0xB005, "SDP_U (URI)" },
299         { 0xB006, "SDP_E (email address)" },
300         { 0xB007, "SDP_P (phone number)" },
301         { 0xB008, "SDP_C (connection)" },
302         { 0xB009, "SDP_B (bandwidth info)" },
303         { 0xB00A, "SDP_Z (TZ adjustment)" },
304         { 0xB00B, "SDP_K (encryption key)" },
305         { 0xB00C, "SDP_A (Session attributes)" },
306         { 0xB00D, "SDP_T (Active Session Time)" },
307         { 0xB00E, "SDP_R (Repeat times)" },
308         { 0xB00F, "SDP_M (Media type, portm transport and format)" },
309
310         { 0xC001, "OLC" },
311         { 0xC002, "OLCack" },
312         { 0xC003, "OLCcnf" },
313         { 0xC004, "OLCrej" },
314         { 0xC005, "CLC" },
315         { 0xC006, "CLCack" },
316
317 { 0, NULL }
318 };
319
320
321
322 static const value_string h248_annexc_media_vals[] = {
323         {   0, "Audio" },
324         {   1, "Video" },
325         {   2, "Data" },
326         {   0, NULL }
327 };
328
329 static const value_string h248_pkg_annexc_Mediatx_vals[] = {
330         {   0x0000, "TDM Circuit" },
331         {   0x0001, "ATM" },
332         {   0x0002, "FR" },
333         {   0x0003, "Ipv4" },
334         {   0x0004, "Ipv6" },
335         {0,     NULL}
336 };
337
338 static const value_string h248_annexc_transmission_mode[] = {
339     {0,"Send"},
340     {1,"Receive"},
341     {2,"Send&Receive"},
342     {0,NULL}
343 };
344
345 static const value_string h248_pkg_annexc_sc[] _U_ = {
346     {0,"CBR"},
347     {1,"nrt-VBR1"},
348     {2,"nrt-VBR2"},
349     {3,"nrt-VBR3"},
350     {4,"rt-VBR1"},
351     {5,"rt-VBR2"},
352     {6,"rt-VBR3"},
353     {7,"UBR1"},
354     {8,"UBR2"},
355     {9,"ABR"},
356     {0,NULL}
357 };
358
359 static const value_string h248_pkg_annexc_atc_values[] = {
360     {0,"DBR"},
361     {1,"SBR1"},
362     {2,"SBR2"},
363     {3,"SBR3"},
364     {4,"ABT/IT"},
365     {5,"ABT/DT"},
366     {6,"ABR"},
367     {0,NULL}
368 };
369
370 static const value_string h248_pkg_annexc_stc_values[] = {
371     {0,"Not Susceptible to clipping"},
372     {1,"Susceptible to clipping"},
373     {0,NULL}
374 };
375
376 static const value_string h248_pkg_annexc_uppc_values[] = {
377     {0,"point-to-point"},
378     {1,"point-to-multipoint"},
379     {0,NULL}
380 };
381
382 static const value_string h248_pkg_annexc_syncasync_values[] = {
383         {0, "Synchronous Data"},
384         {1, "Asynchronous Data"},
385     {0,NULL}
386 };
387
388 static const value_string h248_pkg_annexc_negotiation_values[] = {
389         {0, "In-Band negotiation possible"},
390         {1, "In-Band negotiation not possible"},
391     {0,NULL}
392 };
393
394 static const value_string h248_pkg_annexc_userrate_values[] = {
395         {0x0,"E-Bit specified I.460 or higher negotiated in-band"},
396         {0x1,"0.6 kbps (X.1)"},
397         {0x2,"1.2 kbps"},
398         {0x3,"2.4 kbps (X.1)"},
399         {0x4,"3.6 kbps"},
400         {0x5,"4.8 kbps (X.1)"},
401         {0x6,"7.2 kbps"},
402         {0x7,"8 kbps (I.460)"},
403         {0x8,"9.6 kbps (X.1)"},
404         {0x9,"14.4 kbps"},
405         {0xa,"16 kbps (I.460)"},
406         {0xb,"19.2 kbps"},
407         {0xc,"32 kbps (I.460)"},
408         {0xd,"38.4 kbps (V.110)"},
409         {0xe,"48 kbps (X.1)"},
410         {0xf,"56 kbps"},
411
412         {0x12,"57.6 kbps (V.14 extended)"},
413         {0x13,"28.8 kbps (V.110)"},
414         {0x14,"24 kbps (V.110)"},
415         {0x15,"0.1345 kbps (X.1)"},
416         {0x16,"0.100 kbps (X.1)"},
417         {0x17,"0.075/1.2 kbps (X.1)"},
418         {0x18,"1.2/0.075 kbps (X.1)"},
419         {0x19,"0.050 kbps (X.1)"},
420         {0x1a,"0.075 kbps (X.1)"},
421         {0x1b,"0.110 kbps (X.1)"},
422         {0x1c,"0.150 kbps (X.1)"},
423         {0x1d,"0.200 kbps (X.1)"},
424         {0x1e,"0.300 kbps (X.1)"},
425         {0x1f,"12 kbps (X.1)"},
426
427     {0,NULL}
428 };
429
430 static const value_string h248_pkg_annexc_intrate_values[] = {
431         {0x0,"Not Used"},
432         {0x1,"8 kbps"},
433         {0x2,"16 kbps"},
434         {0x3,"32 kbps"},
435     {0,NULL}
436 };
437
438
439 static const value_string h248_pkg_annexc_nictx_values[] = {
440         {0,"Not required to transmit with NIC"},
441         {1,"Required to transmit with NIC"},
442     {0,NULL}
443 };
444
445 static const value_string h248_pkg_annexc_nicrx_values[] = {
446         {0,"Cannot accept data with NIC"},
447         {1,"Can accept data with NIC"},
448     {0,NULL}
449 };
450
451
452 static const value_string h248_pkg_annexc_flowconttx_values[] = {
453         {0,"Not Required"},
454         {1,"Required"},
455     {0,NULL}
456 };
457
458 static const value_string h248_pkg_annexc_flowcontrx_values[] = {
459         {0,"Cannot accept data with flow control mechanism"},
460         {1,"Can accept data with flow control mechanism"},
461     {0,NULL}
462 };
463
464 static const value_string h248_pkg_annexc_rateadapthdr_values[] = {
465         {0,"not included"},
466         {1,"included"},
467     {0,NULL}
468 };
469
470 static const value_string h248_pkg_annexc_multiframe_values[] = {
471         {0,"not supported"},
472         {1,"supported"},
473     {0,NULL}
474 };
475
476 static const value_string h248_pkg_annexc_opmode_values[] = {
477         {0,"bit transparent"},
478         {1,"protocol sensitive"},
479     {0,NULL}
480 };
481
482 static const value_string h248_pkg_annexc_llidnegot_values[] = {
483         {0,"Default, LLI=256 only"},
484         {1,"Full protocol negotiation"},
485     {0,NULL}
486 };
487
488 static const value_string h248_pkg_annexc_assign_values[] = {
489         {0,"Originator is default assignee"},
490         {1,"Originator is assignor only"},
491     {0,NULL}
492 };
493
494 static const value_string h248_pkg_annexc_inbandneg_values[] = {
495         {0,"negotiation on temporary signalling connection"},
496         {1,"negotiation in-band"},
497     {0,NULL}
498 };
499
500 static const value_string h248_pkg_annexc_stopbits_values[] = {
501         {0,"none"},
502         {1,"1 bit"},
503         {2,"1.5 bits"},
504         {3,"2 bits"},
505     {0,NULL}
506 };
507
508
509 static const value_string h248_pkg_annexc_databits_values[] = {
510         {0,"Not Used"},
511         {1,"5 bits"},
512         {2,"7 bits"},
513         {3,"8 bits"},
514     {0,NULL}
515 };
516
517
518 static const value_string h248_pkg_annexc_parity_values[] = {
519         {0,"Odd"},
520         {2,"Even"},
521         {3,"None"},
522         {4,"Forced to 0"},
523         {5,"Forced to 1"},
524     {0,NULL}
525 };
526
527
528 static const value_string h248_pkg_annexc_duplexmode_values[] = {
529         {0,"Half Duplex"},
530         {1,"Full Duplex"},
531     {0,NULL}
532 };
533
534
535 static const value_string h248_pkg_annexc_modem_values[] = {
536         {0x00,"National Use"},
537         {0x01,"National Use"},
538         {0x02,"National Use"},
539         {0x03,"National Use"},
540         {0x04,"National Use"},
541         {0x05,"National Use"},
542
543         {0x11,"V.21"},
544         {0x12,"V.22"},
545         {0x13,"V.22bis"},
546         {0x14,"V.23"},
547         {0x15,"V.26"},
548         {0x16,"V.26bis"},
549         {0x17,"V.26ter"},
550         {0x18,"V.27"},
551         {0x19,"V.27bis"},
552         {0x1A,"V.27ter"},
553         {0x1B,"V.29"},
554         {0x1D,"V.32"},
555         {0x1E,"V.34"},
556
557         {0x20,"National Use"},
558         {0x21,"National Use"},
559         {0x22,"National Use"},
560         {0x23,"National Use"},
561         {0x24,"National Use"},
562         {0x25,"National Use"},
563         {0x26,"National Use"},
564         {0x27,"National Use"},
565         {0x28,"National Use"},
566         {0x29,"National Use"},
567         {0x2a,"National Use"},
568         {0x2b,"National Use"},
569         {0x2c,"National Use"},
570         {0x2d,"National Use"},
571         {0x2e,"National Use"},
572         {0x2f,"National Use"},
573
574         {0x30,"User Specified"},
575         {0x31,"User Specified"},
576         {0x32,"User Specified"},
577         {0x33,"User Specified"},
578         {0x34,"User Specified"},
579         {0x35,"User Specified"},
580         {0x36,"User Specified"},
581         {0x37,"User Specified"},
582         {0x38,"User Specified"},
583         {0x39,"User Specified"},
584         {0x3a,"User Specified"},
585         {0x3b,"User Specified"},
586         {0x3c,"User Specified"},
587         {0x3d,"User Specified"},
588         {0x3e,"User Specified"},
589         {0x3f,"User Specified"},
590
591     {0,NULL}
592 };
593
594
595 static const value_string h248_pkg_annexc_layer2prot_values[] = {
596         {0x2,"Q.921/I.441"},
597         {0x6,"X.25, link layer"},
598         {0xC,"LLC (ISO/IEC 8802-2)"},
599     {0,NULL}
600 };
601
602 static const value_string h248_pkg_annexc_layer3prot_values[] = {
603         {0x2,"Q.921/I.441"},
604         {0x6,"X.25, packet layer"},
605         {0xC,"IP, ISO/IEC TR 9577"},
606     {0,NULL}
607 };
608
609 static const value_string h248_pkg_annexc_addlayer3prot_values[] = {
610         {0xCC,"IP (RFC 791)"},
611         {0xCF,"PPP (RFC 1661)"},
612     {0,NULL}
613 };
614
615 static const value_string h248_pkg_annexc_nci_satellite_values[] _U_ = {
616         {0x0,"no satellite circuit"},
617         {0x1,"one satellite circuit"},
618         {0x2,"two satellite circuits"},
619         {0x3,"spare"},
620     {0,NULL}
621 };
622
623 static const value_string h248_pkg_annexc_nci_continuity_values[] _U_ = {
624         {0x0,"continuity check not required"},
625         {0x1,"continuity check required on this circuit"},
626         {0x2,"continuity check performed on a previous circuit"},
627         {0x3,"spare"},
628     {0,NULL}
629 };
630
631 static const value_string h248_pkg_annexc_nci_echoctl_values[] _U_ = {
632         {0x0,"outgoing echo control device not included"},
633         {0x1,"outgoing echo control device included"},
634     {0,NULL}
635 };
636
637
638 static const value_string h248_pkg_annexc_QosClass_values[] = {
639         {0x0,"Default"},
640         {0x1,"Stringent"},
641         {0x2,"Tolerant"},
642         {0x3,"Bi-Level"},
643         {0x4,"Unbounded"},
644         {0x5,"Stringent Bi-level"},
645     {0,NULL}
646 };
647
648 static const value_string h248_pkg_annexc_AALtype_values[] = {
649         {0x0,"AAL for Voice"},
650         {0x1,"AAL1"},
651         {0x2,"AAL2"},
652         {0x3,"AAL3/4"},
653         {0x5,"AAL5"},
654         {0x10,"User Defined"},
655     {0,NULL}
656 };
657
658 static const value_string h248_pkg_annexc_porttype_values[] = {
659         {0x0,"TCP"},
660         {0x1,"UDP"},
661         {0x2,"SCTP"},
662     {0,NULL}
663 };
664
665 static const value_string h248_pkg_annexc_aal1st_values[] = {
666         {0x0,"null"},
667         {0x1,"voiceband signal transport on 64kbps"},
668         {0x2,"circuit transport"},
669         {0x4,"high quality audio signal transport"},
670         {0x5,"video signal transport"},
671     {0,NULL}
672 };
673
674 static const value_string h248_pkg_annexc_cbrr_values[] = {
675         {0x01,"64 kbps"},
676         {0x04,"1544 kbps"},
677         {0x05,"6312 kbps"},
678         {0x06,"32064 kbps"},
679         {0x07,"44736 kbps"},
680         {0x08,"44736 kbps"},
681         {0x10,"2048 kbps"},
682         {0x11,"8448 kbps"},
683         {0x12,"34368 kbps"},
684         {0x13,"139264 kbps"},
685         {0x40,"n * 64 kbps"},
686         {0x41,"n * 8 kbps"},
687     {0,NULL}
688 };
689
690 static const value_string h248_pkg_annexc_scri_values[] = {
691         {0x0,"null"},
692         {0x1,"SRTS"},
693         {0x2,"ACM"},
694     {0,NULL}
695 };
696
697
698 static const value_string h248_pkg_annexc_ecm_values[] = {
699         {0x0,"null"},
700         {0x1,"FEC - Loss"},
701         {0x2,"FEC - Delay"},
702     {0,NULL}
703 };
704
705
706 static const value_string h248_pkg_annexc_tmrsr_values[] = {
707         /* TO DO */
708     {0,NULL}
709 };
710
711
712 static const value_string h248_pkg_annexc_contcheck_values[] = {
713         /* TO DO */
714     {0,NULL}
715 };
716
717 static const value_string h248_pkg_annexc_itc_values[] = {
718         /* TO DO */
719     {0,NULL}
720 };
721
722
723 static const value_string h248_pkg_annexc_transmode_values[] = {
724         /* TO DO */
725     {0,NULL}
726 };
727
728
729 static const value_string h248_pkg_annexc_transrate_values[] = {
730         /* TO DO */
731     {0,NULL}
732 };
733
734
735
736 static void dissect_h248_annexc_acodec(proto_tree* tree,
737                                                                                 tvbuff_t* tvb,
738                                                                                 packet_info* pinfo,
739                                                                                 int hfid,
740                                                                                 h248_curr_info_t* h248_info _U_,
741                                                                                 void* implicit_p ) {
742         int len;
743         tvbuff_t* new_tvb;
744         asn1_ctx_t asn1_ctx;
745
746         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
747         dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
748
749         tree = proto_item_add_subtree(asn1_ctx.created_item,ett_codec);
750         len = tvb_length(new_tvb);
751         dissect_codec_mode(tree,new_tvb,0,len);
752 }
753
754 static void dissect_h248_annexc_BIR(proto_tree* tree,
755                                                                          tvbuff_t* tvb,
756                                                                          packet_info* pinfo,
757                                                                          int hfid,
758                                                                          h248_curr_info_t* h248_info,
759                                                                          void* implicit_p ) {
760         tvbuff_t* new_tvb = NULL;
761         asn1_ctx_t asn1_ctx;
762
763         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
764         dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
765
766         if ( new_tvb && h248_info->term && ! h248_info->term->bir ) {
767                 h248_info->term->bir = se_strdup(tvb_bytes_to_str(new_tvb,0,tvb_length(new_tvb)));
768         }
769 }
770
771 static void dissect_h248_annexc_NSAP(proto_tree* tree,
772                                                                           tvbuff_t* tvb,
773                                                                           packet_info* pinfo,
774                                                                           int hfid,
775                                                                           h248_curr_info_t* h248_info,
776                                                                           void* implicit_p ) {
777         tvbuff_t* new_tvb = NULL;
778         asn1_ctx_t asn1_ctx;
779
780         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
781         dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
782         if (new_tvb) {
783                 dissect_nsap(new_tvb, 0,tvb_length(new_tvb), tree);
784                 if ( h248_info->term && ! h248_info->term->nsap) {
785                         h248_info->term->nsap = se_strdup(tvb_bytes_to_str(new_tvb,0,tvb_length(new_tvb)));
786                 }
787         }
788 }
789
790 static void dissect_h248_annexc_vpvc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_, int hfid, h248_curr_info_t* h248_info _U_, void* unused _U_) {
791         proto_item* pi = proto_tree_add_item(tree,hfid,tvb,0,2,ENC_BIG_ENDIAN);
792         proto_tree* pt = proto_item_add_subtree(pi,ett_vpvc);
793         proto_tree_add_item(pt,hf_h248_pkg_annexc_vp,tvb,0,2,ENC_BIG_ENDIAN);
794         proto_tree_add_item(pt,hf_h248_pkg_annexc_vc,tvb,2,2,ENC_BIG_ENDIAN);
795 }
796
797 static void dissect_h248_annexc_USI(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* h248_info _U_, void* implicit_p) {
798         tvbuff_t* new_tvb = NULL;
799         asn1_ctx_t asn1_ctx;
800
801         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
802         dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
803         if (new_tvb)
804                 dissect_q931_bearer_capability_ie(new_tvb, 0, tvb_length(new_tvb), tree);
805 }
806
807 static void dissect_h248_annexc_SDP(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* h248_info _U_, void* implicit_p _U_) {
808         asn1_ctx_t asn1_ctx;
809
810         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
811         dissect_ber_restricted_string( FALSE, BER_UNI_TAG_IA5String,
812                                             &asn1_ctx, tree, tvb, 0, hfid,
813                                             NULL);
814 }
815
816 gboolean h248_c_implicit = TRUE;
817
818 static h248_pkg_param_t h248_annexc_package_properties[] = {
819         { 0x1001, &hf_h248_pkg_annexc_media, h248_param_ber_integer, NULL },
820         { 0x1002, &hf_h248_pkg_annexc_transmission_mode, h248_param_ber_integer, NULL },
821         { 0x1003, &hf_h248_pkg_annexc_num_of_channels, h248_param_ber_integer, NULL },
822         { 0x1004, &hf_h248_pkg_annexc_sampling_rate, h248_param_ber_integer, NULL },
823         { 0x1005, &hf_h248_pkg_annexc_bit_rate, h248_param_ber_integer, NULL },
824         { 0x1006, &hf_h248_pkg_annexc_ACodec, dissect_h248_annexc_acodec, NULL },
825         { 0x1007, &hf_h248_pkg_annexc_samplepp, h248_param_ber_integer, NULL },
826         { 0x1008, &hf_h248_pkg_annexc_silence_supp, h248_param_ber_boolean, NULL },
827         { 0x1009, &hf_h248_pkg_annexc_encrypt_type, h248_param_ber_octetstring, NULL }, /* XXX Hand over to what in H.245? */
828         { 0x100A, &hf_h248_pkg_annexc_encrypt_key, h248_param_ber_integer, NULL },
829         { 0x100C, &hf_h248_pkg_annexc_gain, h248_param_ber_integer, NULL },
830         { 0x100D, &hf_h248_pkg_annexc_jitterbuf, h248_param_ber_integer, NULL },
831         { 0x100E, &hf_h248_pkg_annexc_propdelay, h248_param_ber_integer, NULL },
832         { 0x100F, &hf_h248_pkg_annexc_rtp_payload, h248_param_ber_integer, NULL },
833
834         { 0x2001, &hf_h248_pkg_annexc_h222, h248_param_ber_octetstring, NULL },
835         { 0x2002, &hf_h248_pkg_annexc_h223, h248_param_ber_octetstring, NULL },
836         { 0x2003, &hf_h248_pkg_annexc_v76, h248_param_ber_octetstring, NULL },
837         { 0x2004, &hf_h248_pkg_annexc_h2250, h248_param_ber_octetstring, NULL },
838
839         { 0x3001, &hf_h248_pkg_annexc_Mediatx, h248_param_ber_integer, NULL },
840         { 0x3002, &hf_h248_pkg_annexc_BIR, dissect_h248_annexc_BIR, NULL },
841         { 0x3003, &hf_h248_pkg_annexc_NSAP, dissect_h248_annexc_NSAP, NULL },
842
843         { 0x4001, &hf_h248_pkg_annexc_aesa, h248_param_ber_octetstring, NULL },
844         { 0x4002, &hf_h248_pkg_annexc_vp, dissect_h248_annexc_vpvc, NULL },
845         { 0x4003, &hf_h248_pkg_annexc_sc, h248_param_ber_integer, NULL },
846         { 0x4004, &hf_h248_pkg_annexc_bcob, h248_param_ber_integer, NULL },
847         { 0x4005, &hf_h248_pkg_annexc_bbtc, h248_param_ber_integer, NULL },
848         { 0x4006, &hf_h248_pkg_annexc_atc, h248_param_ber_integer, NULL },
849         { 0x4007, &hf_h248_pkg_annexc_stc, h248_param_ber_integer, NULL },
850         { 0x4008, &hf_h248_pkg_annexc_uppc, h248_param_ber_integer, NULL },
851         { 0x4009, &hf_h248_pkg_annexc_pcr0, h248_param_ber_octetstring, NULL },
852         { 0x400a, &hf_h248_pkg_annexc_scr0, h248_param_ber_octetstring, NULL },
853         { 0x400b, &hf_h248_pkg_annexc_mbs0, h248_param_ber_octetstring, NULL },
854         { 0x400c, &hf_h248_pkg_annexc_pcr1, h248_param_ber_octetstring, NULL },
855         { 0x400d, &hf_h248_pkg_annexc_scr1, h248_param_ber_octetstring, NULL },
856         { 0x400e, &hf_h248_pkg_annexc_mbs1, h248_param_ber_octetstring, NULL },
857         { 0x400f, &hf_h248_pkg_annexc_bei, h248_param_ber_boolean, NULL },
858         { 0x4010, &hf_h248_pkg_annexc_ti, h248_param_ber_boolean, NULL },
859         { 0x4011, &hf_h248_pkg_annexc_fd, h248_param_ber_boolean, NULL },
860         { 0x4012, &hf_h248_pkg_annexc_a2pcdv, h248_param_ber_octetstring, NULL },
861         { 0x4013, &hf_h248_pkg_annexc_c2pcdv, h248_param_ber_octetstring, NULL },
862         { 0x4014, &hf_h248_pkg_annexc_appcdv, h248_param_ber_octetstring, NULL },
863         { 0x4015, &hf_h248_pkg_annexc_cppcdv, h248_param_ber_octetstring, NULL },
864         { 0x4016, &hf_h248_pkg_annexc_aclr, h248_param_ber_integer, NULL },
865         { 0x4017, &hf_h248_pkg_annexc_meetd, h248_param_ber_octetstring,NULL },
866         { 0x4018, &hf_h248_pkg_annexc_ceetd, h248_param_ber_octetstring,NULL },
867         { 0x4019, &hf_h248_pkg_annexc_QosClass, h248_param_ber_integer, NULL },
868         { 0x401A, &hf_h248_pkg_annexc_AALtype, h248_param_ber_integer, NULL },
869
870         { 0x5001, &hf_h248_pkg_annexc_dlci, h248_param_ber_integer, NULL },
871         { 0x5002, &hf_h248_pkg_annexc_cid, h248_param_ber_integer, NULL },
872         { 0x5003, &hf_h248_pkg_annexc_sid, h248_param_ber_integer, NULL },
873         { 0x5004, &hf_h248_pkg_annexc_ppt, h248_param_ber_integer, NULL },
874
875         { 0x6001, &hf_h248_pkg_annexc_ipv4, h248_param_ber_octetstring, NULL },
876         { 0x6002, &hf_h248_pkg_annexc_ipv6, h248_param_ber_octetstring,NULL },
877         { 0x6003, &hf_h248_pkg_annexc_port, h248_param_ber_integer, NULL },
878         { 0x6004, &hf_h248_pkg_annexc_porttype, h248_param_ber_integer, NULL },
879
880         { 0x7001, &hf_h248_pkg_annexc_aesa, h248_param_ber_octetstring, NULL },
881         { 0x7002, &hf_h248_pkg_annexc_alc, h248_param_ber_octetstring,NULL }, /* from ALCAP */
882         { 0x7003, &hf_h248_pkg_annexc_sscs, h248_param_ber_octetstring, NULL },
883         { 0x7004, &hf_h248_pkg_annexc_sut, h248_param_ber_octetstring, NULL },
884         { 0x7005, &hf_h248_pkg_annexc_tci, h248_param_ber_boolean, NULL },
885         { 0x7006, &hf_h248_pkg_annexc_timer_cu, h248_param_ber_octetstring, NULL },
886         { 0x7007, &hf_h248_pkg_annexc_maxcpssdu, h248_param_ber_integer, NULL },
887         { 0x7008, &hf_h248_pkg_annexc_cid, h248_param_ber_integer, NULL },
888
889         { 0x8001, &hf_h248_pkg_annexc_aal1st, h248_param_ber_integer, NULL },
890         { 0x8002, &hf_h248_pkg_annexc_cbrr, h248_param_ber_integer, NULL },
891         { 0x8003, &hf_h248_pkg_annexc_scri, h248_param_ber_integer, NULL },
892         { 0x8004, &hf_h248_pkg_annexc_ecm, h248_param_ber_integer, NULL },
893         { 0x8005, &hf_h248_pkg_annexc_sdbt, h248_param_ber_octetstring,NULL },
894         { 0x8006, &hf_h248_pkg_annexc_pfci, h248_param_ber_integer, NULL },
895
896         { 0x9001, &hf_h248_pkg_annexc_tmr, h248_param_ber_integer, NULL },
897         { 0x9002, &hf_h248_pkg_annexc_tmrsr, h248_param_ber_integer, NULL },
898         { 0x9003, &hf_h248_pkg_annexc_contcheck, h248_param_ber_integer, NULL },
899         { 0x9004, &hf_h248_pkg_annexc_itc, h248_param_ber_integer, NULL },
900         { 0x9005, &hf_h248_pkg_annexc_transmode, h248_param_ber_integer, NULL },
901         { 0x9006, &hf_h248_pkg_annexc_transrate, h248_param_ber_integer, NULL },
902         { 0x9007, &hf_h248_pkg_annexc_mult, h248_param_ber_integer, NULL },
903         { 0x9008, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },
904         { 0x9009, &hf_h248_pkg_annexc_syncasync, h248_param_ber_integer, NULL },
905         { 0x900A, &hf_h248_pkg_annexc_negotiation, h248_param_ber_integer, NULL },
906         { 0x900B, &hf_h248_pkg_annexc_userrate, h248_param_ber_integer, NULL },
907         { 0x900C, &hf_h248_pkg_annexc_intrate, h248_param_ber_integer, NULL },
908         { 0x900D, &hf_h248_pkg_annexc_nictx, h248_param_ber_boolean, NULL },
909         { 0x900E, &hf_h248_pkg_annexc_nicrx, h248_param_ber_boolean, NULL },
910         { 0x900F, &hf_h248_pkg_annexc_flowconttx, h248_param_ber_boolean, NULL },
911         { 0x9010, &hf_h248_pkg_annexc_flowcontrx, h248_param_ber_boolean, NULL },
912         { 0x9011, &hf_h248_pkg_annexc_rateadapthdr, h248_param_ber_boolean, NULL },
913         { 0x9012, &hf_h248_pkg_annexc_multiframe, h248_param_ber_boolean, NULL },
914         { 0x9013, &hf_h248_pkg_annexc_opmode, h248_param_ber_boolean, NULL },
915         { 0x9014, &hf_h248_pkg_annexc_llidnegot, h248_param_ber_boolean, NULL },
916         { 0x9015, &hf_h248_pkg_annexc_assign, h248_param_ber_boolean, NULL },
917         { 0x9016, &hf_h248_pkg_annexc_inbandneg, h248_param_ber_boolean, NULL },
918         { 0x9017, &hf_h248_pkg_annexc_stopbits, h248_param_ber_integer, NULL },
919         { 0x9018, &hf_h248_pkg_annexc_databits, h248_param_ber_integer, NULL },
920         { 0x9019, &hf_h248_pkg_annexc_parity, h248_param_ber_integer, NULL },
921         { 0x901a, &hf_h248_pkg_annexc_duplexmode, h248_param_ber_integer, NULL },
922         { 0x901b, &hf_h248_pkg_annexc_modem, h248_param_ber_integer, NULL },
923         { 0x901c, &hf_h248_pkg_annexc_layer2prot, h248_param_ber_integer, NULL },
924         { 0x901d, &hf_h248_pkg_annexc_layer3prot, h248_param_ber_integer, NULL },
925         { 0x901e, &hf_h248_pkg_annexc_addlayer3prot, h248_param_ber_integer, NULL },
926         { 0x901f, &hf_h248_pkg_annexc_dialedn, h248_param_ber_octetstring, NULL },
927         { 0x9020, &hf_h248_pkg_annexc_dialingn, h248_param_ber_octetstring, NULL },
928         { 0x9021, &hf_h248_pkg_annexc_echoci, h248_param_ber_integer, NULL },
929         { 0x9022, &hf_h248_pkg_annexc_nci, h248_param_ber_integer, NULL },
930         { 0x9023, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },
931
932         { 0xA001, &hf_h248_pkg_annexc_fmsdu, h248_param_ber_octetstring, NULL },
933         { 0xA002, &hf_h248_pkg_annexc_bmsdu, h248_param_ber_octetstring, NULL },
934         { 0xA003, &hf_h248_pkg_annexc_sscs, NULL, NULL },
935
936         { 0xB001, &hf_h248_pkg_annexc_sdp_v, dissect_h248_annexc_SDP, &h248_c_implicit },
937         { 0xB002, &hf_h248_pkg_annexc_sdp_o, dissect_h248_annexc_SDP, &h248_c_implicit },
938         { 0xB003, &hf_h248_pkg_annexc_sdp_s, dissect_h248_annexc_SDP, &h248_c_implicit },
939         { 0xB004, &hf_h248_pkg_annexc_sdp_i, dissect_h248_annexc_SDP, &h248_c_implicit },
940         { 0xB005, &hf_h248_pkg_annexc_sdp_u, dissect_h248_annexc_SDP, &h248_c_implicit },
941         { 0xB006, &hf_h248_pkg_annexc_sdp_e, dissect_h248_annexc_SDP, &h248_c_implicit },
942         { 0xB007, &hf_h248_pkg_annexc_sdp_p, dissect_h248_annexc_SDP, &h248_c_implicit },
943         { 0xB008, &hf_h248_pkg_annexc_sdp_c, dissect_h248_annexc_SDP, &h248_c_implicit },
944         { 0xB009, &hf_h248_pkg_annexc_sdp_b, dissect_h248_annexc_SDP, &h248_c_implicit },
945         { 0xB00a, &hf_h248_pkg_annexc_sdp_z, dissect_h248_annexc_SDP, &h248_c_implicit },
946         { 0xB00b, &hf_h248_pkg_annexc_sdp_k, dissect_h248_annexc_SDP, &h248_c_implicit },
947         { 0xB00c, &hf_h248_pkg_annexc_sdp_a, dissect_h248_annexc_SDP, &h248_c_implicit },
948         { 0xB00d, &hf_h248_pkg_annexc_sdp_t, dissect_h248_annexc_SDP, &h248_c_implicit },
949         { 0xB00e, &hf_h248_pkg_annexc_sdp_r, dissect_h248_annexc_SDP, &h248_c_implicit },
950         { 0xB00f, &hf_h248_pkg_annexc_sdp_m, dissect_h248_annexc_SDP, &h248_c_implicit },
951
952         { 0xC001, &hf_h248_pkg_annexc_olc, h248_param_ber_octetstring, NULL },
953         { 0xC002, &hf_h248_pkg_annexc_olcack, h248_param_ber_octetstring, NULL },
954         { 0xC003, &hf_h248_pkg_annexc_olccnf, h248_param_ber_octetstring, NULL },
955         { 0xC004, &hf_h248_pkg_annexc_olcrej, h248_param_ber_octetstring, NULL },
956         { 0xC005, &hf_h248_pkg_annexc_clc, h248_param_ber_octetstring, NULL },
957         { 0xC006, &hf_h248_pkg_annexc_clcack, h248_param_ber_octetstring, NULL },
958
959         { 0, NULL, NULL, NULL }
960 };
961
962 static h248_package_t h248_annexc_package = {
963         0x0000,
964         &proto_h248_pkg_annexc,
965         &ett_annexc,
966         h248_annexc_package_properties_vals,
967         NULL,
968         NULL,
969         NULL,
970         h248_annexc_package_properties, /* properties */
971         NULL,                                                   /* signals */
972         NULL,                                                   /* events */
973         NULL                                                    /* statistics */
974 };
975
976
977 void proto_register_h248_annex_c(void) {
978         static hf_register_info hf[] = {
979                 { &hf_h248_pkg_annexc_media,
980                         { "Media", "h248.pkg.annexc.media", FT_UINT32, BASE_HEX, VALS(h248_annexc_media_vals), 0, "Media Type", HFILL }},
981                 { &hf_h248_pkg_annexc_ACodec,
982                 { "ACodec", "h248.pkg.annexc.ACodec",
983                         FT_BYTES, BASE_NONE, NULL, 0,
984                         NULL, HFILL }},
985                 { &hf_h248_pkg_annexc_Mediatx,
986                 { "Mediatx", "h248.pkg.annexc.Mediatx",
987                         FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_Mediatx_vals), 0,
988                         NULL, HFILL }},
989                 { &hf_h248_pkg_annexc_BIR,
990                 { "BIR", "h248.pkg.annexc.BIR",
991                         FT_BYTES, BASE_NONE, NULL, 0,
992                         NULL, HFILL }},
993                 { &hf_h248_pkg_annexc_NSAP,
994                 { "NSAP", "h248.pkg.annexc.NSAP",
995                         FT_BYTES, BASE_NONE, NULL, 0,
996                         NULL, HFILL }},
997                 { &hf_h248_pkg_annexc_transmission_mode,
998                 { "Transmission Mode", "h248.pkg.annexc.transmission_mode",
999                         FT_UINT32, BASE_DEC, VALS(h248_annexc_transmission_mode), 0,
1000                         NULL, HFILL }},
1001                 { &hf_h248_pkg_annexc_num_of_channels,
1002                 { "Number of Channels", "h248.pkg.annexc.num_of_channels",
1003                         FT_UINT32, BASE_DEC, NULL, 0,
1004                         NULL, HFILL }},
1005                 { &hf_h248_pkg_annexc_sampling_rate,
1006                 { "Sampling Rate", "h248.pkg.annexc.sampling_rate",
1007                         FT_UINT32, BASE_DEC, NULL, 0,
1008                         NULL, HFILL }},
1009                 { &hf_h248_pkg_annexc_bit_rate,
1010                 { "Bit Rate", "h248.pkg.annexc.bit_rate",
1011                         FT_UINT32, BASE_DEC, NULL, 0,
1012                         NULL, HFILL }},
1013                 { &hf_h248_pkg_annexc_samplepp,
1014                 { "Samplepp", "h248.pkg.annexc.samplepp",
1015                         FT_UINT32, BASE_DEC, NULL, 0,
1016                         NULL, HFILL }},
1017                 { &hf_h248_pkg_annexc_silence_supp,
1018                 { "SilenceSupp", "h248.pkg.annexc.silence_supp",
1019                         FT_BOOLEAN, BASE_NONE, NULL, 0x0,
1020                         "Silence Suppression", HFILL }},
1021                 { &hf_h248_pkg_annexc_encrypt_type,
1022                 { "Encrypttype", "h248.pkg.annexc.encrypt_type",
1023                         FT_BYTES, BASE_NONE, NULL, 0,
1024                         "Encryption Type", HFILL }},
1025                 { &hf_h248_pkg_annexc_encrypt_key,
1026                 { "Encrypt Key", "h248.pkg.annexc.encrypt_key",
1027                         FT_UINT32, BASE_DEC, NULL, 0,
1028                         "Encryption Key", HFILL }},
1029                 { &hf_h248_pkg_annexc_gain,
1030                 { "Gain", "h248.pkg.annexc.gain",
1031                         FT_UINT32, BASE_DEC, NULL, 0,
1032                         "Gain (dB)", HFILL }},
1033                 { &hf_h248_pkg_annexc_jitterbuf,
1034                 { "JitterBuff", "h248.pkg.annexc.jitterbuf",
1035                         FT_UINT32, BASE_DEC, NULL, 0,
1036                         "Jitter Buffer Size (ms)", HFILL }},
1037                 { &hf_h248_pkg_annexc_propdelay,
1038                 { "Propagation Delay", "h248.pkg.annexc.encrypt_type",
1039                         FT_UINT32, BASE_DEC, NULL, 0,
1040                         "Propagation Delay (ms)", HFILL }},
1041                 { &hf_h248_pkg_annexc_rtp_payload,
1042                 { "RTP Payload type", "h248.pkg.annexc.rtp_payload",
1043                         FT_UINT32, BASE_DEC, NULL, 0,
1044                         "Payload type in RTP Profile", HFILL }},
1045                 { &hf_h248_pkg_annexc_h222,
1046                 { "H222LogicalChannelParameters", "h248.pkg.annexc.h222",
1047                         FT_BYTES, BASE_NONE, NULL, 0,
1048                         NULL, HFILL }},
1049                 { &hf_h248_pkg_annexc_h223,
1050                 { "H223LogicalChannelParameters", "h248.pkg.annexc.h223",
1051                         FT_BYTES, BASE_NONE, NULL, 0,
1052                         NULL, HFILL }},
1053                 { &hf_h248_pkg_annexc_v76,
1054                 { "V76LogicalChannelParameters", "h248.pkg.annexc.v76",
1055                         FT_BYTES, BASE_NONE, NULL, 0,
1056                         NULL, HFILL }},
1057                 { &hf_h248_pkg_annexc_h2250,
1058                 { "H2250LogicalChannelParameters", "h248.pkg.annexc.h2250",
1059                         FT_BYTES, BASE_NONE, NULL, 0,
1060                         NULL, HFILL }},
1061                 { &hf_h248_pkg_annexc_aesa,
1062                 { "AESA", "h248.pkg.annexc.aesa",
1063                         FT_BYTES, BASE_NONE, NULL, 0,
1064                         "ATM End System Address", HFILL }},
1065                 { &hf_h248_pkg_annexc_vp,
1066                 { "VPI", "h248.pkg.annexc.vpi",
1067                         FT_UINT16, BASE_DEC, NULL, 0,
1068                         "Virtual Path Identifier", HFILL }},
1069                 { &hf_h248_pkg_annexc_vc,
1070                 { "VCI", "h248.pkg.annexc.vci",
1071                         FT_UINT16, BASE_DEC, NULL, 0,
1072                         "Virtual Circuit Identifier", HFILL }},
1073                 { &hf_h248_pkg_annexc_sc,
1074                 { "Service Class", "h248.pkg.annexc.sc",
1075                         FT_UINT32, BASE_DEC, NULL, 0,
1076                         NULL, HFILL }},
1077                 { &hf_h248_pkg_annexc_bcob,
1078                 { "BCOB", "h248.pkg.annexc.bcob",
1079                         FT_UINT8, BASE_DEC, NULL, 0x1F,
1080                         "Broadband Bearer Class", HFILL }},
1081                 { &hf_h248_pkg_annexc_bbtc,
1082                 { "BBTC", "h248.pkg.annexc.bbtc",
1083                         FT_UINT8, BASE_DEC, NULL, 0x3F,
1084                         "Broadband Transfer Capability", HFILL }},
1085                 { &hf_h248_pkg_annexc_atc,
1086                 { "ATC", "h248.pkg.annexc.atc",
1087                         FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_atc_values), 0x0,
1088                         "ATM Traffic Capability", HFILL }},
1089                 { &hf_h248_pkg_annexc_stc,
1090                 { "STC", "h248.pkg.annexc.stc",
1091                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_stc_values), 0x03,
1092                         "Susceptibility to Clipping", HFILL }},
1093                 { &hf_h248_pkg_annexc_uppc,
1094                 { "UPPC", "h248.pkg.annexc.uppc",
1095                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_uppc_values), 0x03,
1096                         "User Plane Connection Configuration", HFILL }},
1097
1098                 { &hf_h248_pkg_annexc_pcr0,
1099                 { "PCR0", "h248.pkg.annexc.pcr0",
1100                         FT_UINT24, BASE_DEC, NULL, 0,
1101                         "Peak Cell Rate for CLP=0", HFILL }},
1102                 { &hf_h248_pkg_annexc_scr0,
1103                 { "SCR0", "h248.pkg.annexc.scr0",
1104                         FT_UINT24, BASE_DEC, NULL, 0,
1105                         "Sustained Cell Rate for CLP=0", HFILL }},
1106                 { &hf_h248_pkg_annexc_mbs0,
1107                 { "MBS0", "h248.pkg.annexc.mbs0",
1108                         FT_UINT24, BASE_DEC, NULL, 0,
1109                         "Maximum Burst Size for CLP=0", HFILL }},
1110
1111                 { &hf_h248_pkg_annexc_pcr1,
1112                 { "PCR1", "h248.pkg.annexc.pcr1",
1113                         FT_UINT24, BASE_DEC, NULL, 0,
1114                         "Peak Cell Rate for CLP=1", HFILL }},
1115                 { &hf_h248_pkg_annexc_scr1,
1116                 { "SCR1", "h248.pkg.annexc.scr1",
1117                         FT_UINT24, BASE_DEC, NULL, 0,
1118                         "Sustained Cell Rate for CLP=1", HFILL }},
1119                 { &hf_h248_pkg_annexc_mbs1,
1120                 { "MBS1", "h248.pkg.annexc.mbs1",
1121                         FT_UINT24, BASE_DEC, NULL, 0,
1122                         "Maximum Burst Size for CLP=1", HFILL }},
1123
1124                 { &hf_h248_pkg_annexc_bei,
1125                 { "BEI", "h248.pkg.annexc.bei",
1126                         FT_BOOLEAN, BASE_NONE, NULL, 0x0,
1127                         "Best Effort Indicator", HFILL }},
1128                 { &hf_h248_pkg_annexc_ti,
1129                 { "TI", "h248.pkg.annexc.ti",
1130                         FT_BOOLEAN, BASE_NONE, NULL, 0x0,
1131                         "Tagging Indicator", HFILL }},
1132                 { &hf_h248_pkg_annexc_fd,
1133                 { "FD", "h248.pkg.annexc.fd",
1134                         FT_BOOLEAN, BASE_NONE, NULL, 0x0,
1135                         "Frame Discard", HFILL }},
1136
1137                 { &hf_h248_pkg_annexc_a2pcdv,
1138                 { "A2PCDV", "h248.pkg.annexc.a2pcdv",
1139                         FT_UINT24, BASE_DEC, NULL, 0,
1140                         "Acceptable 2 point CDV", HFILL }},
1141                 { &hf_h248_pkg_annexc_c2pcdv,
1142                 { "C2PCDV", "h248.pkg.annexc.c2pcdv",
1143                         FT_UINT24, BASE_DEC, NULL, 0,
1144                         "Cumulative 2 point CDV", HFILL }},
1145                 { &hf_h248_pkg_annexc_appcdv,
1146                 { "APPCDV", "h248.pkg.annexc.appcdv",
1147                         FT_UINT24, BASE_DEC, NULL, 0,
1148                         "Acceptable Point to Point CDV", HFILL }},
1149                 { &hf_h248_pkg_annexc_cppcdv,
1150                 { "CPPCDV", "h248.pkg.annexc.cppcdv",
1151                         FT_UINT24, BASE_DEC, NULL, 0,
1152                         "Cumulative Point to Point CDV", HFILL }},
1153                 { &hf_h248_pkg_annexc_aclr,
1154                 { "ACLR", "h248.pkg.annexc.aclr",
1155                         FT_UINT8, BASE_DEC, NULL, 0,
1156                         "Acceptable Cell Loss Ratio (Q.2965.2 ATMF UNI 4.0)", HFILL }},
1157
1158                 { &hf_h248_pkg_annexc_meetd,
1159                 { "MEETD", "h248.pkg.annexc.meetd",
1160                         FT_UINT16, BASE_DEC, NULL, 0,
1161                         "Maximum End-to-End Transit Delay (Q.2965.2 ATMF UNI 4.0)", HFILL }},
1162                 { &hf_h248_pkg_annexc_ceetd,
1163                 { "CEETD", "h248.pkg.annexc.ceetd",
1164                         FT_UINT16, BASE_DEC, NULL, 0,
1165                         "Cumulative End-to-End Transit Delay (Q.2965.2 ATMF UNI 4.0)", HFILL }},
1166                 { &hf_h248_pkg_annexc_QosClass,
1167                 { "QosClass", "h248.pkg.annexc.qosclass",
1168                         FT_UINT16, BASE_DEC, VALS(h248_pkg_annexc_QosClass_values), 0,
1169                         "QoS Class (Q.2965.1)", HFILL }},
1170                 { &hf_h248_pkg_annexc_AALtype,
1171                 { "AALtype", "h248.pkg.annexc.aaltype",
1172                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_AALtype_values), 0,
1173                         "AAL Type", HFILL }},
1174
1175                 { &hf_h248_pkg_annexc_dlci,
1176                 { "DLCI", "h248.pkg.annexc.dlci",
1177                         FT_UINT32, BASE_DEC, NULL, 0,
1178                         "Data Link Connection ID (FR)", HFILL }},
1179                 { &hf_h248_pkg_annexc_cid,
1180                 { "CID", "h248.pkg.annexc.cid",
1181                         FT_UINT32, BASE_DEC, NULL, 0,
1182                         "Channel-Id", HFILL }},
1183                 { &hf_h248_pkg_annexc_sid,
1184                 { "SID", "h248.pkg.annexc.sid",
1185                         FT_UINT32, BASE_DEC, NULL, 0,
1186                         "Silence Insertion Descriptor", HFILL }},
1187                 { &hf_h248_pkg_annexc_ppt,
1188                 { "PPT", "h248.pkg.annexc.ppt",
1189                         FT_UINT32, BASE_DEC, NULL, 0,
1190                         "Primary Payload Type", HFILL }},
1191
1192                 { &hf_h248_pkg_annexc_ipv4,
1193                 { "IPv4", "h248.pkg.annexc.ipv4",
1194                         FT_IPv4, BASE_NONE, NULL, 0,
1195                         "IPv4 Address", HFILL }},
1196                 { &hf_h248_pkg_annexc_ipv6,
1197                 { "IPv6", "h248.pkg.annexc.ipv6",
1198                         FT_IPv6, BASE_NONE, NULL, 0,
1199                         "IPv6 Address", HFILL }},
1200                 { &hf_h248_pkg_annexc_port,
1201                 { "Port", "h248.pkg.annexc.port",
1202                         FT_UINT16, BASE_DEC, NULL, 0,
1203                         NULL, HFILL }},
1204                 { &hf_h248_pkg_annexc_porttype,
1205                 { "PortType", "h248.pkg.annexc.porttype",
1206                         FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_porttype_values), 0,
1207                         "Port Type", HFILL }},
1208
1209                 { &hf_h248_pkg_annexc_alc,
1210                 { "ALC", "h248.pkg.annexc.alc",
1211                         FT_BYTES, BASE_NONE, NULL, 0,
1212                         "AAL2 Link Characteristics", HFILL }},
1213                 { &hf_h248_pkg_annexc_sut,
1214                 { "SUT", "h248.pkg.annexc.sut",
1215                         FT_BYTES, BASE_NONE, NULL, 0,
1216                         "Served User Transport", HFILL }},
1217                 { &hf_h248_pkg_annexc_tci,
1218                 { "TCI", "h248.pkg.annexc.tci",
1219                         FT_BOOLEAN, BASE_NONE, NULL, 0x0,
1220                         "Test Connection Indicator", HFILL }},
1221                 { &hf_h248_pkg_annexc_timer_cu,
1222                 { "Timer CU", "h248.pkg.annexc.timer_cu",
1223                         FT_UINT32, BASE_DEC, NULL, 0,
1224                         "Milliseconds to hold the  partially filled cell before sending", HFILL }},
1225                 { &hf_h248_pkg_annexc_maxcpssdu,
1226                 { "Max CPS SDU", "h248.pkg.annexc.maxcpssdu",
1227                         FT_UINT8, BASE_DEC, NULL, 0,
1228                         "Maximum Common Part Sublayer Service Data Unit size", HFILL }},
1229
1230                 { &hf_h248_pkg_annexc_aal1st,
1231                 { "AAL1ST", "h248.pkg.annexc.aal1st",
1232                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_aal1st_values), 0,
1233                         "AAL1 subtype", HFILL }},
1234                 { &hf_h248_pkg_annexc_cbrr,
1235                 { "CBRR", "h248.pkg.annexc.cbrr",
1236                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_cbrr_values), 0,
1237                         "CBR rate", HFILL }},
1238                 { &hf_h248_pkg_annexc_scri,
1239                 { "SCRI", "h248.pkg.annexc.scri",
1240                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_scri_values), 0,
1241                         "Source Clock frequency Recovery Method", HFILL }},
1242                 { &hf_h248_pkg_annexc_ecm,
1243                 { "ECM", "h248.pkg.annexc.ecm",
1244                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_ecm_values), 0,
1245                         "Error Correction Method", HFILL }},
1246                 { &hf_h248_pkg_annexc_sdbt,
1247                 { "SDBT", "h248.pkg.annexc.sdbt",
1248                         FT_UINT16, BASE_DEC, NULL, 0,
1249                         "Structured Data Transfer Blocksize", HFILL }},
1250                 { &hf_h248_pkg_annexc_pfci,
1251                 { "PFCI", "h248.pkg.annexc.pfci",
1252                         FT_UINT8, BASE_DEC, NULL, 0,
1253                         "Partially Filled Cells Identifier", HFILL }},
1254
1255                 { &hf_h248_pkg_annexc_tmr,
1256                 { "TMR", "h248.pkg.annexc.tmr",
1257                         FT_UINT8, BASE_HEX|BASE_EXT_STRING, &isup_transmission_medium_requirement_value_ext, 0,
1258                         "Transmission Medium Requirement", HFILL }},
1259                 { &hf_h248_pkg_annexc_tmrsr,
1260                 { "TMSR", "h248.pkg.annexc.tmsr",
1261                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_tmrsr_values), 0,
1262                         "Transmission Medium Requirement Subrate", HFILL }},
1263                 { &hf_h248_pkg_annexc_contcheck,
1264                 { "Continuity Check", "h248.pkg.annexc.tmsr",
1265                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_contcheck_values), 0x0C,
1266                         NULL, HFILL }},
1267
1268                 { &hf_h248_pkg_annexc_itc,
1269                 { "ITC", "h248.pkg.annexc.itc",
1270                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_itc_values), 0x1f,
1271                         "Information Transfer Capability", HFILL }},
1272                 { &hf_h248_pkg_annexc_transmode,
1273                 { "TransMode", "h248.pkg.annexc.transmode",
1274                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_transmode_values), 0x60,
1275                         "Transfer Mode", HFILL }},
1276                 { &hf_h248_pkg_annexc_transrate,
1277                 { "TransRate", "h248.pkg.annexc.transrate",
1278                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_transrate_values), 0x1f,
1279                         "Transfer Rate", HFILL }},
1280                 { &hf_h248_pkg_annexc_mult,
1281                 { "Rate Multiplier", "h248.pkg.annexc.mult",
1282                         FT_UINT8, BASE_DEC, NULL, 0,
1283                         NULL, HFILL }},
1284                 { &hf_h248_pkg_annexc_syncasync,
1285                 { "SyncAsync", "h248.pkg.annexc.syncasync",
1286                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_syncasync_values), 0x80,
1287                         "Synchronous/Asynchronous", HFILL }},
1288                 { &hf_h248_pkg_annexc_negotiation,
1289                 { "UPPC", "h248.pkg.annexc.negotiation",
1290                         FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_negotiation_values), 0x40,
1291                         "Negotiation", HFILL }},
1292
1293                 { &hf_h248_pkg_annexc_userrate,
1294                 { "Userrate", "h248.pkg.annexc.userrate",
1295                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_userrate_values), 0x1f,
1296                         "User Rate", HFILL }},
1297                 { &hf_h248_pkg_annexc_intrate,
1298                 { "UPPC", "h248.pkg.annexc.intrate",
1299                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_intrate_values), 0xc0,
1300                         "Intermediate Rate", HFILL }},
1301                 { &hf_h248_pkg_annexc_nictx,
1302                 { "nictx", "h248.pkg.annexc.nictx",
1303                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_nictx_values), 0xc0,
1304                         "Network independent clock on transmission", HFILL }},
1305                 { &hf_h248_pkg_annexc_nicrx,
1306                 { "nicrx", "h248.pkg.annexc.nicrx",
1307                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_nicrx_values), 0xc0,
1308                         "Network independent clock on reception", HFILL }},
1309                 { &hf_h248_pkg_annexc_flowconttx,
1310                 { "flowconttx", "h248.pkg.annexc.flowconttx",
1311                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_flowconttx_values), 0xc0,
1312                         "Flow Control on Transmission", HFILL }},
1313                 { &hf_h248_pkg_annexc_flowcontrx,
1314                 { "flowcontrx", "h248.pkg.annexc.flowcontrx",
1315                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_flowcontrx_values), 0xc0,
1316                         "Flow Control on Reception", HFILL }},
1317                 { &hf_h248_pkg_annexc_rateadapthdr,
1318                 { "rateadapthdr", "h248.pkg.annexc.rateadapthdr",
1319                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_rateadapthdr_values), 0xc0,
1320                         "Rate Adaptation Header/No-Header", HFILL }},
1321                 { &hf_h248_pkg_annexc_multiframe,
1322                 { "multiframe", "h248.pkg.annexc.multiframe",
1323                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_multiframe_values), 0xc0,
1324                         "Multiple Frame establishment support in datalink", HFILL }},
1325                 { &hf_h248_pkg_annexc_opmode,
1326                 { "OPMODE", "h248.pkg.annexc.opmode",
1327                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_opmode_values), 0xc0,
1328                         "Mode of operation", HFILL }},
1329                 { &hf_h248_pkg_annexc_llidnegot,
1330                 { "llidnegot", "h248.pkg.annexc.llidnegot",
1331                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_llidnegot_values), 0xc0,
1332                         "Logical Link Identifier negotiation", HFILL }},
1333
1334                 { &hf_h248_pkg_annexc_assign,
1335                 { "llidnegot", "h248.pkg.annexc.assign",
1336                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_assign_values), 0xc0,
1337                         "Assignor/Assignee", HFILL }},
1338                 { &hf_h248_pkg_annexc_inbandneg,
1339                 { "inbandneg", "h248.pkg.annexc.inbandneg",
1340                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_inbandneg_values), 0xc0,
1341                         "In-band/Out-band negotiation", HFILL }},
1342                 { &hf_h248_pkg_annexc_stopbits,
1343                 { "stopbits", "h248.pkg.annexc.stopbits",
1344                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_stopbits_values), 0xc0,
1345                         "Number of stop bits", HFILL }},
1346                 { &hf_h248_pkg_annexc_databits,
1347                 { "databits", "h248.pkg.annexc.databits",
1348                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_databits_values), 0xc0,
1349                         "Number of data bits", HFILL }},
1350                 { &hf_h248_pkg_annexc_parity,
1351                 { "parity", "h248.pkg.annexc.parity",
1352                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_parity_values), 0xe0,
1353                         "Parity Information Bits", HFILL }},
1354                 { &hf_h248_pkg_annexc_duplexmode,
1355                 { "duplexmode", "h248.pkg.annexc.duplexmode",
1356                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_duplexmode_values), 0x80,
1357                         "Mode Duplex", HFILL }},
1358
1359                 { &hf_h248_pkg_annexc_modem,
1360                 { "modem", "h248.pkg.annexc.modem",
1361                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_modem_values), 0xfc,
1362                         "Modem Type", HFILL }},
1363                 { &hf_h248_pkg_annexc_layer2prot,
1364                 { "layer2prot", "h248.pkg.annexc.layer2prot",
1365                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_layer2prot_values), 0x80,
1366                         "Layer 2 protocol", HFILL }},
1367                 { &hf_h248_pkg_annexc_layer3prot,
1368                 { "layer3prot", "h248.pkg.annexc.layer3prot",
1369                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_layer3prot_values), 0x80,
1370                         "Layer 3 protocol", HFILL }},
1371                 { &hf_h248_pkg_annexc_addlayer3prot,
1372                 { "addlayer3prot", "h248.pkg.annexc.addlayer3prot",
1373                         FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_addlayer3prot_values), 0x80,
1374                         "Additional User Information Layer 3 protocol", HFILL }},
1375                 { &hf_h248_pkg_annexc_dialedn,
1376                 { "Dialed Number", "h248.pkg.annexc.dialedn",
1377                         FT_BYTES, BASE_NONE, NULL, 0,
1378                         NULL, HFILL }},
1379                 { &hf_h248_pkg_annexc_dialingn,
1380                 { "Dialing Number", "h248.pkg.annexc.dialingn",
1381                         FT_BYTES, BASE_NONE, NULL, 0,
1382                         NULL, HFILL }},
1383                 { &hf_h248_pkg_annexc_echoci,
1384                 { "ECHOCI", "h248.pkg.annexc.echoci",
1385                         FT_BYTES, BASE_NONE, NULL, 0,
1386                         "Not used", HFILL }},
1387                 { &hf_h248_pkg_annexc_nci,
1388                 { "NCI", "h248.pkg.annexc.nci",
1389                         FT_UINT8, BASE_HEX, NULL, 0xff,
1390                         "Nature of Connection Indicator", HFILL }},
1391
1392
1393                 { &hf_h248_pkg_annexc_USI,
1394                 { "USI", "h248.pkg.annexc.USI",
1395                         FT_BYTES, BASE_NONE, NULL, 0,
1396                         "User Service Information", HFILL }},
1397
1398
1399                 { &hf_h248_pkg_annexc_fmsdu,
1400                 { "fmsdu", "h248.pkg.annexc.fmsdu",
1401                         FT_BYTES, BASE_NONE, NULL, 0,
1402                         NULL, HFILL }},
1403                 { &hf_h248_pkg_annexc_bmsdu,
1404                 { "bmsdu", "h248.pkg.annexc.bmsdu",
1405                         FT_BYTES, BASE_NONE, NULL, 0,
1406                         NULL, HFILL }},
1407                 { &hf_h248_pkg_annexc_sscs,
1408                 { "sscs", "h248.pkg.annexc.sscs",
1409                         FT_BYTES, BASE_NONE, NULL, 0,
1410                         NULL, HFILL }},
1411
1412
1413                 { &hf_h248_pkg_annexc_sdp_v,
1414                 { "sdp_v", "h248.pkg.annexc.sdp_v",
1415                         FT_STRING, BASE_NONE, NULL, 0,
1416                         "SDP V", HFILL }},
1417                 { &hf_h248_pkg_annexc_sdp_o,
1418                 { "sdp_o", "h248.pkg.annexc.sdp_o",
1419                         FT_STRING, BASE_NONE, NULL, 0,
1420                         "SDP O", HFILL }},
1421                 { &hf_h248_pkg_annexc_sdp_s,
1422                 { "sdp_s", "h248.pkg.annexc.sdp_s",
1423                         FT_STRING, BASE_NONE, NULL, 0,
1424                         "SDP S", HFILL }},
1425                 { &hf_h248_pkg_annexc_sdp_i,
1426                 { "sdp_i", "h248.pkg.annexc.sdp_i",
1427                         FT_STRING, BASE_NONE, NULL, 0,
1428                         "SDP I", HFILL }},
1429                 { &hf_h248_pkg_annexc_sdp_u,
1430                 { "sdp_u", "h248.pkg.annexc.sdp_u",
1431                         FT_STRING, BASE_NONE, NULL, 0,
1432                         "SDP U", HFILL }},
1433                 { &hf_h248_pkg_annexc_sdp_e,
1434                 { "sdp_e", "h248.pkg.annexc.sdp_e",
1435                         FT_STRING, BASE_NONE, NULL, 0,
1436                         "SDP E", HFILL }},
1437                 { &hf_h248_pkg_annexc_sdp_p,
1438                 { "sdp_p", "h248.pkg.annexc.sdp_p",
1439                         FT_STRING, BASE_NONE, NULL, 0,
1440                         "SDP P", HFILL }},
1441                 { &hf_h248_pkg_annexc_sdp_c,
1442                 { "sdp_c", "h248.pkg.annexc.sdp_c",
1443                         FT_STRING, BASE_NONE, NULL, 0,
1444                         "SDP C", HFILL }},
1445                 { &hf_h248_pkg_annexc_sdp_b,
1446                 { "sdp_b", "h248.pkg.annexc.sdp_b",
1447                         FT_STRING, BASE_NONE, NULL, 0,
1448                         "SDP B", HFILL }},
1449                 { &hf_h248_pkg_annexc_sdp_z,
1450                 { "sdp_z", "h248.pkg.annexc.sdp_z",
1451                         FT_STRING, BASE_NONE, NULL, 0,
1452                         "SDP Z", HFILL }},
1453                 { &hf_h248_pkg_annexc_sdp_k,
1454                 { "sdp_k", "h248.pkg.annexc.sdp_k",
1455                         FT_STRING, BASE_NONE, NULL, 0,
1456                         "SDP K", HFILL }},
1457                 { &hf_h248_pkg_annexc_sdp_a,
1458                 { "sdp_a", "h248.pkg.annexc.sdp_a",
1459                         FT_STRING, BASE_NONE, NULL, 0,
1460                         "SDP A", HFILL }},
1461                 { &hf_h248_pkg_annexc_sdp_t,
1462                 { "sdp_t", "h248.pkg.annexc.sdp_t",
1463                         FT_STRING, BASE_NONE, NULL, 0,
1464                         "SDP T", HFILL }},
1465                 { &hf_h248_pkg_annexc_sdp_r,
1466                 { "sdp_r", "h248.pkg.annexc.sdp_r",
1467                         FT_STRING, BASE_NONE, NULL, 0,
1468                         "SDP R", HFILL }},
1469                 { &hf_h248_pkg_annexc_sdp_m,
1470                 { "sdp_m", "h248.pkg.annexc.sdp_m",
1471                         FT_STRING, BASE_NONE, NULL, 0,
1472                         "SDP M", HFILL }},
1473
1474                 { &hf_h248_pkg_annexc_olc,
1475                 { "OLC", "h248.pkg.annexc.olc",
1476                         FT_BYTES, BASE_NONE, NULL, 0,
1477                         "Open Logical Channel", HFILL }},
1478                 { &hf_h248_pkg_annexc_olcack,
1479                 { "OLCack", "h248.pkg.annexc.olcack",
1480                         FT_BYTES, BASE_NONE, NULL, 0,
1481                         "Open Logical Channel Acknowledge", HFILL }},
1482                 { &hf_h248_pkg_annexc_olccnf,
1483                 { "OLCcnf", "h248.pkg.annexc.olccnf",
1484                         FT_BYTES, BASE_NONE, NULL, 0,
1485                         "Open Logical Channel CNF", HFILL }},
1486                 { &hf_h248_pkg_annexc_olcrej,
1487                 { "OLCrej", "h248.pkg.annexc.olcrej",
1488                         FT_BYTES, BASE_NONE, NULL, 0,
1489                         "Open Logical Channel Reject", HFILL }},
1490                 { &hf_h248_pkg_annexc_clc,
1491                 { "CLC", "h248.pkg.annexc.clc",
1492                         FT_BYTES, BASE_NONE, NULL, 0,
1493                         "Close Logical Channel", HFILL }},
1494                 { &hf_h248_pkg_annexc_clcack,
1495                 { "CLCack", "h248.pkg.annexc.clcack",
1496                         FT_BYTES, BASE_NONE, NULL, 0,
1497                         NULL, HFILL }},
1498         };
1499
1500         static gint *ett[] = {
1501                 &ett_annexc,
1502                 &ett_vpvc,
1503                 &ett_codec
1504         };
1505
1506         proto_h248_pkg_annexc = proto_register_protocol(PNAME, PSNAME, PFNAME);
1507
1508         proto_register_field_array(proto_h248_pkg_annexc, hf, array_length(hf));
1509
1510         proto_register_subtree_array(ett, array_length(ett));
1511
1512         h248_register_package(&h248_annexc_package);
1513
1514 }