Add a few packages and fix dissecton of a_codecs and handle the case when
authorAnders Broman <anders.broman@ericsson.com>
Fri, 6 Oct 2006 19:48:00 +0000 (19:48 -0000)
committerAnders Broman <anders.broman@ericsson.com>
Fri, 6 Oct 2006 19:48:00 +0000 (19:48 -0000)
hf_param = -1.

svn path=/trunk/; revision=19445

asn1/h248/packet-h248-template.c
epan/dissectors/packet-h248.c
epan/dissectors/packet-h248_annex_c.c
epan/dissectors/packet-h248_annex_e.c
epan/dissectors/packet-isup.c

index b4597a804d665b0d7554e748be5fba7d907324d2..3b6b86ca91d4d634a27e47c8dec0fe4a4fb157f5 100644 (file)
@@ -749,8 +749,9 @@ static int dissect_h248_PkgdName(gboolean implicit_tag, tvbuff_t *tvb, int offse
        
        if (! pkg ) pkg = &no_package;
 
-       hf_param = *(pkg->hfid_params);
-       proto_tree_add_uint(package_tree, hf_param, tvb, offset-2, 2, name_minor); 
+       if (hf_param > 0)
+               /* TODO: Will this ever happen now??*/
+               proto_tree_add_uint(package_tree, hf_param, tvb, offset-2, 2, name_minor); 
        
   } else {
          pkg = &no_package;
index 6591d9b5d0460a10cc829bf4345a07ca8fd72097..32b2c1dcd54c6edefb65a003509d6b0d0c6b14e9 100644 (file)
@@ -1161,8 +1161,9 @@ static int dissect_h248_PkgdName(gboolean implicit_tag, tvbuff_t *tvb, int offse
        
        if (! pkg ) pkg = &no_package;
 
-       hf_param = *(pkg->hfid_params);
-       proto_tree_add_uint(package_tree, hf_param, tvb, offset-2, 2, name_minor); 
+       if (hf_param > 0)
+               /* TODO: Will this ever happen now??*/
+               proto_tree_add_uint(package_tree, hf_param, tvb, offset-2, 2, name_minor); 
        
   } else {
          pkg = &no_package;
@@ -5868,7 +5869,7 @@ dissect_h248_MegacoMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
 
 
 /*--- End of included file: packet-h248-fn.c ---*/
-#line 1757 "packet-h248-template.c"
+#line 1758 "packet-h248-template.c"
 
 static void
 dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -7059,7 +7060,7 @@ void proto_register_h248(void) {
         "", HFILL }},
 
 /*--- End of included file: packet-h248-hfarr.c ---*/
-#line 1891 "packet-h248-template.c"
+#line 1892 "packet-h248-template.c"
 
   { &hf_h248_ctx, { "Context", "h248.ctx", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }},
   { &hf_h248_ctx_term, { "Termination", "h248.ctx.term", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }},
@@ -7219,7 +7220,7 @@ void proto_register_h248(void) {
     &ett_h248_Value,
 
 /*--- End of included file: packet-h248-ettarr.c ---*/
-#line 1916 "packet-h248-template.c"
+#line 1917 "packet-h248-template.c"
   };
 
   module_t *h248_module;
index 0d432b0e2e9f325555a76b930321ad1b1ca96c15..f7a8c1fd971909a03d401678cf62cb37a7bfc172 100644 (file)
-/*
- *  packet-h248-annex_c.c
- *  H.248 annex C
- *
- *  (c) 2006, Luis E. Garcia Ontanon <luis.ontanon@gmail.com>
- *
- * $Id: packet-h248-template.c 17587 2006-03-11 13:02:41Z sahlberg $
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-#include "packet-h248.h"
-#define PNAME  "H.248 Annex C"
-#define PSNAME "H248C"
-#define PFNAME "h248c"
-
-/* H.248 Annex C */
-static int proto_h248_pkg_annexc = -1;
-static int hf_h248_pkg_annexc_parameters = -1;
-
-static int hf_h248_pkg_annexc_media = -1;
-static int hf_h248_pkg_annexc_ACodec = -1;
-static int hf_h248_pkg_annexc_Mediatx = -1;
-static int hf_h248_pkg_annexc_NSAP = -1;
-static int hf_h248_pkg_annexc_BIR = -1;
-static int hf_h248_pkg_annexc_transmission_mode = -1;
-static int hf_h248_pkg_annexc_num_of_channels = -1;
-static int hf_h248_pkg_annexc_sampling_rate = -1;
-static int hf_h248_pkg_annexc_bit_rate = -1;
-static int hf_h248_pkg_annexc_samplepp = -1;
-static int hf_h248_pkg_annexc_silence_supp = -1;
-static int hf_h248_pkg_annexc_encrypt_type = -1;
-static int hf_h248_pkg_annexc_encrypt_key = -1;
-static int hf_h248_pkg_annexc_gain = -1;
-static int hf_h248_pkg_annexc_jitterbuf = -1;
-static int hf_h248_pkg_annexc_propdelay = -1;
-static int hf_h248_pkg_annexc_rtp_payload = -1;
-
-static int hf_h248_pkg_annexc_h222 = -1;
-static int hf_h248_pkg_annexc_h223 = -1;
-static int hf_h248_pkg_annexc_v76 = -1;
-static int hf_h248_pkg_annexc_h2250 = -1;
-
-static int hf_h248_pkg_annexc_aesa = -1;
-static int hf_h248_pkg_annexc_vp = -1;
-static int hf_h248_pkg_annexc_vc = -1;
-static int hf_h248_pkg_annexc_sc = -1;
-static int hf_h248_pkg_annexc_bcob = -1;
-static int hf_h248_pkg_annexc_bbtc = -1;
-static int hf_h248_pkg_annexc_atc = -1;
-static int hf_h248_pkg_annexc_stc = -1;
-static int hf_h248_pkg_annexc_uppc = -1;
-static int hf_h248_pkg_annexc_pcr0 = -1;
-static int hf_h248_pkg_annexc_scr0 = -1;
-static int hf_h248_pkg_annexc_mbs0 = -1;
-static int hf_h248_pkg_annexc_pcr1 = -1;
-static int hf_h248_pkg_annexc_scr1 = -1;
-static int hf_h248_pkg_annexc_mbs1 = -1;
-static int hf_h248_pkg_annexc_bei = -1;
-static int hf_h248_pkg_annexc_ti = -1;
-static int hf_h248_pkg_annexc_fd = -1;
-static int hf_h248_pkg_annexc_a2pcdv = -1;
-static int hf_h248_pkg_annexc_c2pcdv = -1;
-static int hf_h248_pkg_annexc_appcdv = -1;
-static int hf_h248_pkg_annexc_cppcdv = -1;
-static int hf_h248_pkg_annexc_aclr = -1;
-static int hf_h248_pkg_annexc_meetd = -1;
-static int hf_h248_pkg_annexc_ceetd = -1;
-static int hf_h248_pkg_annexc_QosClass = -1;
-static int hf_h248_pkg_annexc_AALtype = -1;
-
-static int hf_h248_pkg_annexc_dlci = -1;
-static int hf_h248_pkg_annexc_cid = -1;
-static int hf_h248_pkg_annexc_sid = -1;
-static int hf_h248_pkg_annexc_ppt = -1;
-
-static int hf_h248_pkg_annexc_ipv4 = -1;
-static int hf_h248_pkg_annexc_ipv6 = -1;
-static int hf_h248_pkg_annexc_port = -1;
-static int hf_h248_pkg_annexc_porttype = -1;
-
-static int hf_h248_pkg_annexc_alc = -1;
-static int hf_h248_pkg_annexc_sut = -1;
-static int hf_h248_pkg_annexc_tci = -1;
-static int hf_h248_pkg_annexc_timer_cu = -1;
-static int hf_h248_pkg_annexc_maxcpssdu = -1;
-
-static int hf_h248_pkg_annexc_aal1st = -1;
-static int hf_h248_pkg_annexc_cbrr = -1;
-static int hf_h248_pkg_annexc_scri = -1;
-static int hf_h248_pkg_annexc_ecm = -1;
-static int hf_h248_pkg_annexc_sdbt = -1;
-static int hf_h248_pkg_annexc_pfci = -1;
-
-static int hf_h248_pkg_annexc_tmr = -1;
-static int hf_h248_pkg_annexc_tmrsr = -1;
-static int hf_h248_pkg_annexc_contcheck = -1;
-static int hf_h248_pkg_annexc_itc = -1;
-static int hf_h248_pkg_annexc_transmode = -1;
-static int hf_h248_pkg_annexc_transrate = -1;
-static int hf_h248_pkg_annexc_mult = -1;
-static int hf_h248_pkg_annexc_syncasync = -1;
-static int hf_h248_pkg_annexc_negotiation = -1;
-static int hf_h248_pkg_annexc_userrate = -1;
-static int hf_h248_pkg_annexc_intrate = -1;
-static int hf_h248_pkg_annexc_nictx = -1;
-static int hf_h248_pkg_annexc_nicrx = -1;
-static int hf_h248_pkg_annexc_flowconttx = -1;
-static int hf_h248_pkg_annexc_flowcontrx = -1;
-static int hf_h248_pkg_annexc_rateadapthdr = -1;
-static int hf_h248_pkg_annexc_multiframe = -1;
-static int hf_h248_pkg_annexc_opmode = -1;
-static int hf_h248_pkg_annexc_llidnegot = -1;
-static int hf_h248_pkg_annexc_assign = -1;
-static int hf_h248_pkg_annexc_inbandneg = -1;
-static int hf_h248_pkg_annexc_stopbits = -1;
-static int hf_h248_pkg_annexc_databits = -1;
-static int hf_h248_pkg_annexc_parity = -1;
-static int hf_h248_pkg_annexc_duplexmode = -1;
-static int hf_h248_pkg_annexc_modem = -1;
-static int hf_h248_pkg_annexc_layer2prot = -1;
-static int hf_h248_pkg_annexc_layer3prot = -1;
-static int hf_h248_pkg_annexc_addlayer3prot = -1;
-static int hf_h248_pkg_annexc_dialedn = -1;
-static int hf_h248_pkg_annexc_dialingn = -1;
-static int hf_h248_pkg_annexc_echoci = -1;
-static int hf_h248_pkg_annexc_nci = -1;
-static int hf_h248_pkg_annexc_USI = -1;
-
-static int hf_h248_pkg_annexc_fmsdu = -1;
-static int hf_h248_pkg_annexc_bmsdu = -1;
-static int hf_h248_pkg_annexc_sscs = -1;
-
-static int hf_h248_pkg_annexc_sdp_v = -1;
-static int hf_h248_pkg_annexc_sdp_o = -1;
-static int hf_h248_pkg_annexc_sdp_s = -1;
-static int hf_h248_pkg_annexc_sdp_i = -1;
-static int hf_h248_pkg_annexc_sdp_u = -1;
-static int hf_h248_pkg_annexc_sdp_e = -1;
-static int hf_h248_pkg_annexc_sdp_p = -1;
-static int hf_h248_pkg_annexc_sdp_c = -1;
-static int hf_h248_pkg_annexc_sdp_b = -1;
-static int hf_h248_pkg_annexc_sdp_z = -1;
-static int hf_h248_pkg_annexc_sdp_k = -1;
-static int hf_h248_pkg_annexc_sdp_a = -1;
-static int hf_h248_pkg_annexc_sdp_t = -1;
-static int hf_h248_pkg_annexc_sdp_r = -1;
-
-static int hf_h248_pkg_annexc_olc = -1;
-static int hf_h248_pkg_annexc_olcack = -1;
-static int hf_h248_pkg_annexc_olccnf = -1;
-static int hf_h248_pkg_annexc_olcrej = -1;
-static int hf_h248_pkg_annexc_clc = -1;
-static int hf_h248_pkg_annexc_clcack = -1;
-
-
-
-static gint ett_annexc = -1;
-static gint ett_vpvc = -1;
-static gint ett_codec = -1;
-
-static int two = 2;
-static int three = 3;
-static int four = 4;
-static int twelve = 12;
-static int sixteen = 16;
-static int twenty = 20;
-static int thirty = 30;
-
-static value_string h248_annexc_package_properties_vals[] = {
-       { 0x1001, "media" },
-       { 0x1002, "transmission mode" },
-       { 0x1003, "num_of_channels" },
-       { 0x1004, "sampling_rate" },
-       { 0x1005, "bit_rate" },
-       { 0x1006, "ACodec" },
-       { 0x1007, "samplepp" },
-       { 0x1008, "silence_supp" },
-       { 0x1009, "encrypt_type" },
-       { 0x100A, "encrypt_key" },
-       { 0x100B, "echo canceller" },
-       { 0x100C, "gain" },
-       { 0x100D, "jitterbuf" },
-       { 0x100E, "propdelay" },
-       { 0x100F, "rtp_payload" },
-
-       { 0x2001, "h222" },
-       { 0x2002, "h223" },
-       { 0x2003, "v76" },
-       { 0x2004, "h2250" },
-
-       { 0x3001, "Mediatx" },
-       { 0x3002, "BIR" },
-       { 0x3003, "NSAP" },
-
-       { 0x4001, "aesa" },
-       { 0x4002, "vp" },
-       { 0x4003, "sc" },
-       { 0x4004, "bcob" },
-       { 0x4005, "bbtc" },
-       { 0x4006, "atc" },
-       { 0x4007, "stc" },
-       { 0x4008, "uppc" },
-       { 0x4009, "pcr0" },
-       { 0x400a, "scr0" },
-       { 0x400b, "mbs0" },
-       { 0x400c, "pcr1" },
-       { 0x400d, "scr1" },
-       { 0x400e, "mbs1" },
-       { 0x400f, "bei" },
-       { 0x4010, "ti" },
-       { 0x4011, "fd" },
-       { 0x4012, "a2pcdv" },
-       { 0x4013, "c2pcdv" },
-       { 0x4014, "appcdv" },
-       { 0x4015, "cppcdv" },
-       { 0x4016, "aclr" },
-       { 0x4017, "meetd" },
-       { 0x4018, "ceetd" },
-       { 0x4019, "QosClass" },
-       { 0x401a, "AALtype" },
-       
-       { 0x5001, "DLCI" },
-       { 0x5002, "CID" },
-       { 0x5003, "SID/Noiselevel" },
-       { 0x5004, "PPT" },
-
-       { 0x6001, "IPv4" },
-       { 0x6002, "IPv6" },
-       { 0x6003, "Port" },
-       { 0x6004, "Porttype" },
-
-       { 0x7001, "AESA" },
-       { 0x7002, "ALC" },
-       { 0x7003, "SSCS" },
-       { 0x7004, "SUT" },
-       { 0x7005, "TCI" },
-       { 0x7006, "Timer_CU" },
-       { 0x7007, "MaxCPSSDU" },
-       { 0x7008, "CID" },
-
-       { 0x8001, "AAL1ST" },
-       { 0x8002, "CBRR" },
-       { 0x8003, "SCRI" },
-       { 0x8004, "ECM" },
-       { 0x8005, "SDTB" },
-       { 0x8006, "PFCI" },
-
-       { 0x9001, "TMR" },
-       { 0x9008, "USI" },
-       { 0x9009, "syncasync" },
-       { 0x900a, "negotiation" },
-       { 0x900b, "userrate" },
-       { 0x900c, "intrate" },
-       { 0x900d, "nictx" },
-       { 0x900e, "nicrx" },
-       { 0x900f, "flowconttx" },
-       { 0x9010, "flowcontrx" },
-       { 0x9011, "rateadapthdr" },
-       { 0x9012, "multiframe" },
-       { 0x9013, "opmode" },
-       { 0x9014, "llnegot" },
-       { 0x9015, "assign" },
-       { 0x9016, "inbandneg" },
-       { 0x9017, "stopbits" },
-       { 0x9018, "databits" },
-       { 0x9019, "parity" },
-       { 0x901a, "duplexmode" },
-       { 0x901b, "modem" },
-       { 0x901c, "layer2prot" },
-       { 0x901d, "layer3prot" },
-       { 0x901e, "addlayer3prot" },
-       { 0x901f, "DialledN" },
-       { 0x9020, "DiallingN" },
-       { 0x9021, "ECHOCI" },
-       { 0x9022, "NCI" },
-       { 0x9023, "USI" },
-
-       { 0xA001, "FMSDU" },
-       { 0xA002, "BMSDU" },
-
-       { 0xB001, "SDP_V (Protocol Version)" },
-       { 0xB002, "SDP_O (Owner/creator)" },
-       { 0xB003, "SDP_S (Session Name)" },
-       { 0xB004, "SDP_I (Session Identifier)" },
-       { 0xB005, "SDP_U (URI)" },
-       { 0xB006, "SDP_E (email address)" },
-       { 0xB007, "SDP_P (phone number)" },
-       { 0xB008, "SDP_C (connection)" },
-       { 0xB009, "SDP_B (bandwidth info)" },
-       { 0xB00A, "SDP_Z (TZ adjustement)" },
-       { 0xB00B, "SDP_K (encryption key)" },
-       { 0xB00C, "SDP_A (Session attributes)" },
-       { 0xB00D, "SDP_T (Active Session Time)" },
-       { 0xB00E, "SDP_R (Repeat times)" },
-       { 0xB00F, "SDP_M (Media type, portm transport and format)" },
-
-       { 0xC001, "OLC" },
-       { 0xC002, "OLCack" },
-       { 0xC003, "OLCcnf" },
-       { 0xC004, "OLCrej" },
-       { 0xC005, "CLC" },
-       { 0xC006, "CLCack" },
-       
-{ 0, NULL }
-};
-
-
-
-static const value_string h248_annexc_media_vals[] = {
-       {   0, "Audio" },
-       {   1, "Video" },
-       {   2, "Data" },
-       {   0, NULL }
-};
-
-static const value_string h248_pkg_annexc_Mediatx_vals[] = {
-       {   0x0000, "TDM Circuit" },
-       {   0x0001, "ATM" },
-       {   0x0002, "FR" },
-       {   0x0003, "Ipv4" },
-       {   0x0004, "Ipv6" },
-       {0,     NULL}
-};
-
-static const value_string h248_annexc_transmission_mode[] = {
-    {0,"Send"},
-    {1,"Receive"},
-    {2,"Send&Receive"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_sc[] = {
-    {0,"CBR"},
-    {1,"nrt-VBR1"},
-    {2,"nrt-VBR2"},
-    {3,"nrt-VBR3"},
-    {4,"rt-VBR1"},
-    {5,"rt-VBR2"},
-    {6,"rt-VBR3"},
-    {7,"UBR1"},
-    {8,"UBR2"},
-    {9,"ABR"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_atc_values[] = {
-    {0,"DBR"},
-    {1,"SBR1"},
-    {2,"SBR2"},
-    {3,"SBR3"},
-    {4,"ABT/IT"},
-    {5,"ABT/DT"},
-    {6,"ABR"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_stc_values[] = {
-    {0,"Not Susceptible to clipping"},
-    {1,"Susceptible to clipping"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_uppc_values[] = {
-    {0,"point-to-point"},
-    {1,"point-to-multipoint"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_syncasync_values[] = {
-       {0, "Syncronous Data"},
-       {1, "Asyncronous Data"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_negotiation_values[] = {
-       {0, "In-Band negotiation possible"},
-       {1, "In-Band negotiation not possible"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_userrate_values[] = {
-       {0x0,"E-Bit specified I.460 or higher negotiated in-band"},
-       {0x1,"0.6 kbps (X.1)"},
-       {0x2,"1.2 kbps"},
-       {0x3,"2.4 kbps (X.1)"},
-       {0x4,"3.6 kbps"},
-       {0x5,"4.8 kbps (X.1)"},
-       {0x6,"7.2 kbps"},
-       {0x7,"8 kbps (I.460)"},
-       {0x8,"9.6 kbps (X.1)"},
-       {0x9,"14.4 kbps"},
-       {0xa,"16 kbps (I.460)"},
-       {0xb,"19.2 kbps"},
-       {0xc,"32 kbps (I.460)"},
-       {0xd,"38.4 kbps (V.110)"},
-       {0xe,"48 kbps (X.1)"},
-       {0xf,"56 kbps"},
-       
-       {0x12,"57.6 kbps (V.14 extended)"},
-       {0x13,"28.8 kbps (V.110)"},
-       {0x14,"24 kbps (V.110)"},
-       {0x15,"0.1345 kbps (X.1)"},
-       {0x16,"0.100 kbps (X.1)"},
-       {0x17,"0.075/1.2 kbps (X.1)"},
-       {0x18,"1.2/0.075 kbps (X.1)"},
-       {0x19,"0.050 kbps (X.1)"},
-       {0x1a,"0.075 kbps (X.1)"},
-       {0x1b,"0.110 kbps (X.1)"},
-       {0x1c,"0.150 kbps (X.1)"},
-       {0x1d,"0.200 kbps (X.1)"},
-       {0x1e,"0.300 kbps (X.1)"},
-       {0x1f,"12 kbps (X.1)"},
-       
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_intrate_values[] = {
-       {0x0,"Not Used"},
-       {0x1,"8 kbps"},
-       {0x2,"16 kbps"},
-       {0x3,"32 kbps"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_nictx_values[] = {
-       {0,"Not required to transmit with NIC"},
-       {1,"Required to transmit with NIC"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_nicrx_values[] = {
-       {0,"Cannot accept data with NIC"},
-       {1,"Can accept data with NIC"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_flowconttx_values[] = {
-       {0,"Not Required"},
-       {1,"Required"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_flowcontrx_values[] = {
-       {0,"Cannot accept data with flow control mechanism"},
-       {1,"Can accept data with flow control mechanism"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_rateadapthdr_values[] = {
-       {0,"not included"},
-       {1,"included"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_multiframe_values[] = {
-       {0,"not supported"},
-       {1,"supported"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_opmode_values[] = {
-       {0,"bit transparent"},
-       {1,"protocol sensitive"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_llidnegot_values[] = {
-       {0,"Default, LLI=256 only"},
-       {1,"Full protocol negotiation"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_assign_values[] = {
-       {0,"Originatior is default asignee"},
-       {1,"Originatior is asignor only"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_inbandneg_values[] = {
-       {0,"negotiation on temporary signalling connection"},
-       {1,"negotiation in-band"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_stopbits_values[] = {
-       {0,"none"},
-       {1,"1 bit"},
-       {2,"1.5 bits"},
-       {3,"2 bits"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_databits_values[] = {
-       {0,"Not Used"},
-       {1,"5 bits"},
-       {2,"7 bits"},
-       {3,"8 bits"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_parity_values[] = {
-       {0,"Odd"},
-       {2,"Even"},
-       {3,"None"},
-       {4,"Forced to 0"},
-       {5,"Forced to 1"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_duplexmode_values[] = {
-       {0,"Half Duplex"},
-       {1,"Full Duplex"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_modem_values[] = {
-       {0x00,"National Use"},
-       {0x01,"National Use"},
-       {0x02,"National Use"},
-       {0x03,"National Use"},
-       {0x04,"National Use"},
-       {0x05,"National Use"},
-       
-       {0x11,"V.21"},
-       {0x12,"V.22"},
-       {0x13,"V.22bis"},
-       {0x14,"V.23"},
-       {0x15,"V.26"},
-       {0x16,"V.26bis"},
-       {0x17,"V.26ter"},
-       {0x18,"V.27"},
-       {0x19,"V.27bis"},
-       {0x1A,"V.27ter"},
-       {0x1B,"V.29"},
-       {0x1D,"V.32"},
-       {0x1E,"V.34"},
-       
-       {0x20,"National Use"},
-       {0x21,"National Use"},
-       {0x22,"National Use"},
-       {0x23,"National Use"},
-       {0x24,"National Use"},
-       {0x25,"National Use"},
-       {0x26,"National Use"},
-       {0x27,"National Use"},
-       {0x28,"National Use"},
-       {0x29,"National Use"},
-       {0x2a,"National Use"},
-       {0x2b,"National Use"},
-       {0x2c,"National Use"},
-       {0x2d,"National Use"},
-       {0x2e,"National Use"},
-       {0x2f,"National Use"},
-       
-       {0x30,"User Specified"},
-       {0x31,"User Specified"},
-       {0x32,"User Specified"},
-       {0x33,"User Specified"},
-       {0x34,"User Specified"},
-       {0x35,"User Specified"},
-       {0x36,"User Specified"},
-       {0x37,"User Specified"},
-       {0x38,"User Specified"},
-       {0x39,"User Specified"},
-       {0x3a,"User Specified"},
-       {0x3b,"User Specified"},
-       {0x3c,"User Specified"},
-       {0x3d,"User Specified"},
-       {0x3e,"User Specified"},
-       {0x3f,"User Specified"},
-       
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_layer2prot_values[] = {
-       {0x2,"Q.921/I.441"},
-       {0x6,"X.25, link layer"},
-       {0xC,"LLC (ISO/IEC 8802-2)"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_layer3prot_values[] = {
-       {0x2,"Q.921/I.441"},
-       {0x6,"X.25, packet layer"},
-       {0xC,"IP, ISO/IEC TR 9577"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_addlayer3prot_values[] = {
-       {0xCC,"IP (RFC 791)"},
-       {0xCF,"PPP (RFC 1661)"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_nci_satelite_values[] = {
-       {0x0,"no satelite circuit"},
-       {0x1,"one satellite circuit"},
-       {0x2,"two satelite circiuts"},
-       {0x3,"spare"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_nci_continuity_values[] = {
-       {0x0,"continuity check not required"},
-       {0x1,"continuity check required on this circuit"},
-       {0x2,"continuity check performed on a previous circuit"},
-       {0x3,"spare"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_nci_echoctl_values[] = {
-       {0x0,"outgoing echo control device not included"},
-       {0x1,"outgoing echo control device included"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_QosClass_values[] = {
-       {0x0,"Default"},
-       {0x1,"Stringent"},
-       {0x2,"Tolerant"},
-       {0x3,"Bi-Level"},
-       {0x4,"Unbounded"},
-       {0x5,"Stringent Bi-level"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_AALtype_values[] = {
-       {0x0,"AAL for Voice"},
-       {0x1,"AAL1"},
-       {0x2,"AAL2"},
-       {0x3,"AAL3/4"},
-       {0x5,"AAL5"},
-       {0x10,"User Defined"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_porttype_values[] = {
-       {0x0,"TCP"},
-       {0x1,"UDP"},
-       {0x2,"SCTP"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_aal1st_values[] = {
-       {0x0,"null"},
-       {0x1,"voiceband signall transport on 64kbps"},
-       {0x2,"circuit transport"},
-       {0x4,"high quality audio signal transport"},
-       {0x5,"video signal transport"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_cbrr_values[] = {
-       {0x01,"64 kbps"},
-       {0x04,"1544 kbps"},
-       {0x05,"6312 kbps"},
-       {0x06,"32064 kbps"},
-       {0x07,"44736 kbps"},
-       {0x08,"44736 kbps"},
-       {0x10,"2048 kbps"},
-       {0x11,"8448 kbps"},
-       {0x12,"34368 kbps"},
-       {0x13,"139264 kbps"},
-       {0x40,"n * 64 kbps"},
-       {0x41,"n * 8 kbps"},
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_scri_values[] = {
-       {0x0,"null"},
-       {0x1,"SRTS"},
-       {0x2,"ACM"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_ecm_values[] = {
-       {0x0,"null"},
-       {0x1,"FEC - Loss"},
-       {0x2,"FEC - Delay"},
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_tmrsr_values[] = {
-       /* TO DO */
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_contcheck_values[] = {
-       /* TO DO */
-    {0,NULL}
-};
-
-static const value_string h248_pkg_annexc_itc_values[] = {
-       /* TO DO */
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_transmode_values[] = {
-       /* TO DO */
-    {0,NULL}
-};
-
-
-static const value_string h248_pkg_annexc_transrate_values[] = {
-       /* TO DO */
-    {0,NULL}
-};
-
-
-
-static void dissect_h248_annexc_acodec(proto_tree* tree,
-                                                                               tvbuff_t* tvb,
-                                                                               packet_info* pinfo,
-                                                                               int hfid,
-                                                                               h248_curr_info_t* h248_info _U_,
-                                                                               void* implicit_p ) {
-       int len;
-       tvbuff_t* new_tvb;
-       
-       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);
-       
-       tree = proto_item_add_subtree(get_ber_last_created_item(),ett_codec);
-       len = tvb_get_guint8(new_tvb,0);
-       dissect_codec_mode(tree,new_tvb,1,len);
-}
-
-static void dissect_h248_annexc_BIR(proto_tree* tree,
-                                                                        tvbuff_t* tvb,
-                                                                        packet_info* pinfo,
-                                                                        int hfid,
-                                                                        h248_curr_info_t* h248_info,
-                                                                        void* implicit_p ) {
-       tvbuff_t* new_tvb = NULL;
-       
-       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);
-       
-       if ( new_tvb && h248_info->term && ! h248_info->term->bir ) {
-               h248_info->term->bir = se_strdup(tvb_bytes_to_str(new_tvb,0,tvb_length(new_tvb)));
-       }
-}
-
-static void dissect_h248_annexc_NSAP(proto_tree* tree,
-                                                                         tvbuff_t* tvb,
-                                                                         packet_info* pinfo,
-                                                                         int hfid,
-                                                                         h248_curr_info_t* h248_info,
-                                                                         void* implicit_p ) {
-       tvbuff_t* new_tvb = NULL;
-       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);
-       if (new_tvb) {
-               dissect_nsap(new_tvb, 0,tvb_length_remaining(new_tvb, 0), tree);
-               if ( h248_info->term && ! h248_info->term->nsap) {
-                       h248_info->term->nsap = se_strdup(tvb_bytes_to_str(new_tvb,0,tvb_length(new_tvb)));
-               }
-       }
-}
-
-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_) {
-       proto_item* pi = proto_tree_add_item(tree,hfid,tvb,0,2,FALSE);
-       proto_tree* pt = proto_item_add_subtree(pi,ett_vpvc);
-       proto_tree_add_item(pt,hf_h248_pkg_annexc_vp,tvb,0,2,FALSE);
-       proto_tree_add_item(pt,hf_h248_pkg_annexc_vc,tvb,2,2,FALSE);
-}
-
-static void dissect_byte_param(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_, int hfid, h248_curr_info_t* h248_info _U_, void* unused _U_) {
-       proto_tree_add_item(tree,hfid,tvb,0,1,FALSE);
-}
-
-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) {
-       tvbuff_t* new_tvb = NULL;
-       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);
-       if (new_tvb)
-               dissect_q931_bearer_capability_ie(new_tvb, 0, 3, tree);
-}
-
-static h248_pkg_param_t h248_annexc_package_properties[] = {
-       { 0x1001, &hf_h248_pkg_annexc_media, h248_param_ber_integer, NULL },
-       { 0x1002, &hf_h248_pkg_annexc_transmission_mode, h248_param_ber_integer, NULL },
-       { 0x1003, &hf_h248_pkg_annexc_num_of_channels, h248_param_ber_integer, NULL },
-       { 0x1004, &hf_h248_pkg_annexc_sampling_rate, h248_param_ber_integer, NULL },
-       { 0x1005, &hf_h248_pkg_annexc_bit_rate, h248_param_ber_integer, NULL },
-       { 0x1006, &hf_h248_pkg_annexc_ACodec, dissect_h248_annexc_acodec, NULL },
-       { 0x1007, &hf_h248_pkg_annexc_samplepp, h248_param_ber_integer, NULL },
-       { 0x1008, &hf_h248_pkg_annexc_silence_supp, h248_param_ber_boolean, NULL },
-       { 0x1009, &hf_h248_pkg_annexc_encrypt_type, h248_param_ber_octetstring, NULL }, /* XXX Hand over to what in H.245? */
-       { 0x100A, &hf_h248_pkg_annexc_encrypt_key, h248_param_ber_integer, NULL },
-       { 0x100C, &hf_h248_pkg_annexc_gain, h248_param_ber_integer, NULL },
-       { 0x100D, &hf_h248_pkg_annexc_jitterbuf, h248_param_ber_integer, NULL },
-       { 0x100E, &hf_h248_pkg_annexc_propdelay, h248_param_ber_integer, NULL },
-       { 0x100F, &hf_h248_pkg_annexc_rtp_payload, h248_param_ber_integer, NULL },
-       
-       { 0x2001, &hf_h248_pkg_annexc_h222, h248_param_ber_octetstring, NULL },
-       { 0x2002, &hf_h248_pkg_annexc_h223, h248_param_ber_octetstring, NULL },
-       { 0x2003, &hf_h248_pkg_annexc_v76, h248_param_ber_octetstring, NULL },
-       { 0x2004, &hf_h248_pkg_annexc_h2250, h248_param_ber_octetstring, NULL },
-       
-       { 0x3001, &hf_h248_pkg_annexc_Mediatx, h248_param_ber_integer, NULL },
-       { 0x3002, &hf_h248_pkg_annexc_BIR, dissect_h248_annexc_BIR, NULL },
-       { 0x3003, &hf_h248_pkg_annexc_NSAP, dissect_h248_annexc_NSAP, NULL },
-       
-       { 0x4001, &hf_h248_pkg_annexc_aesa, h248_param_item, &twenty },
-       { 0x4002, &hf_h248_pkg_annexc_vp, dissect_h248_annexc_vpvc, NULL },
-       { 0x4003, &hf_h248_pkg_annexc_sc, h248_param_ber_integer, NULL },
-       { 0x4004, &hf_h248_pkg_annexc_bcob, dissect_byte_param, NULL },
-       { 0x4005, &hf_h248_pkg_annexc_bbtc, dissect_byte_param, NULL },
-       { 0x4006, &hf_h248_pkg_annexc_atc, h248_param_ber_integer, NULL },
-       { 0x4007, &hf_h248_pkg_annexc_stc, dissect_byte_param, NULL },
-       { 0x4008, &hf_h248_pkg_annexc_uppc, dissect_byte_param, NULL },
-       { 0x4009, &hf_h248_pkg_annexc_pcr0, h248_param_item, &three },
-       { 0x400a, &hf_h248_pkg_annexc_scr0, h248_param_item, &three },
-       { 0x400b, &hf_h248_pkg_annexc_mbs0, h248_param_item, &three },
-       { 0x400c, &hf_h248_pkg_annexc_pcr1, h248_param_item, &three },
-       { 0x400d, &hf_h248_pkg_annexc_scr1, h248_param_item, &three },
-       { 0x400e, &hf_h248_pkg_annexc_mbs1, h248_param_item, &three },
-       { 0x400f, &hf_h248_pkg_annexc_bei, h248_param_ber_boolean, NULL },
-       { 0x4010, &hf_h248_pkg_annexc_ti, h248_param_ber_boolean, NULL },
-       { 0x4011, &hf_h248_pkg_annexc_fd, h248_param_ber_boolean, NULL },
-       { 0x4012, &hf_h248_pkg_annexc_a2pcdv, h248_param_item, &three },
-       { 0x4013, &hf_h248_pkg_annexc_c2pcdv, h248_param_item, &three },
-       { 0x4014, &hf_h248_pkg_annexc_appcdv, h248_param_item, &three },
-       { 0x4015, &hf_h248_pkg_annexc_cppcdv, h248_param_item, &three },
-       { 0x4016, &hf_h248_pkg_annexc_aclr, dissect_byte_param, NULL },
-       { 0x4017, &hf_h248_pkg_annexc_meetd, h248_param_item, &two },
-       { 0x4018, &hf_h248_pkg_annexc_ceetd, h248_param_item, &two },
-       { 0x4019, &hf_h248_pkg_annexc_QosClass, h248_param_ber_integer, NULL },
-       { 0x401A, &hf_h248_pkg_annexc_AALtype, dissect_byte_param, NULL },
-
-       { 0x5001, &hf_h248_pkg_annexc_dlci, h248_param_ber_integer, NULL },
-       { 0x5002, &hf_h248_pkg_annexc_cid, h248_param_ber_integer, NULL },
-       { 0x5003, &hf_h248_pkg_annexc_sid, h248_param_ber_integer, NULL },
-       { 0x5004, &hf_h248_pkg_annexc_ppt, h248_param_ber_integer, NULL },
-       
-       { 0x6001, &hf_h248_pkg_annexc_ipv4, h248_param_item, &four },
-       { 0x6002, &hf_h248_pkg_annexc_ipv6, h248_param_item, &sixteen },
-       { 0x6003, &hf_h248_pkg_annexc_port, h248_param_ber_integer, NULL },
-       { 0x6004, &hf_h248_pkg_annexc_porttype, h248_param_ber_integer, NULL },
-       
-       { 0x7001, &hf_h248_pkg_annexc_aesa, h248_param_item, &twenty },
-       { 0x7002, &hf_h248_pkg_annexc_alc, h248_param_item, &twelve }, /* from ALCAP */
-       { 0x7003, &hf_h248_pkg_annexc_sscs, h248_param_item, NULL }, 
-       { 0x7004, &hf_h248_pkg_annexc_sut, h248_param_item, NULL }, 
-       { 0x7005, &hf_h248_pkg_annexc_tci, h248_param_ber_boolean, NULL }, 
-       { 0x7006, &hf_h248_pkg_annexc_timer_cu, h248_param_item, &four }, 
-       { 0x7007, &hf_h248_pkg_annexc_maxcpssdu, dissect_byte_param, NULL }, 
-       { 0x7008, &hf_h248_pkg_annexc_cid, dissect_byte_param, NULL }, 
-       
-       { 0x8001, &hf_h248_pkg_annexc_aal1st, dissect_byte_param, NULL },
-       { 0x8002, &hf_h248_pkg_annexc_cbrr, dissect_byte_param, NULL },
-       { 0x8003, &hf_h248_pkg_annexc_scri, dissect_byte_param, NULL }, 
-       { 0x8004, &hf_h248_pkg_annexc_ecm, dissect_byte_param, NULL }, 
-       { 0x8005, &hf_h248_pkg_annexc_sdbt, h248_param_item, &two }, 
-       { 0x8006, &hf_h248_pkg_annexc_pfci, dissect_byte_param, NULL }, 
-
-       { 0x9001, &hf_h248_pkg_annexc_tmr, dissect_byte_param, NULL },
-       { 0x9002, &hf_h248_pkg_annexc_tmrsr, dissect_byte_param, NULL },
-       { 0x9003, &hf_h248_pkg_annexc_contcheck, dissect_byte_param, NULL },
-       { 0x9004, &hf_h248_pkg_annexc_itc, dissect_byte_param, NULL },
-       { 0x9005, &hf_h248_pkg_annexc_transmode, dissect_byte_param, NULL },
-       { 0x9006, &hf_h248_pkg_annexc_transrate, dissect_byte_param, NULL },
-       { 0x9007, &hf_h248_pkg_annexc_mult, dissect_byte_param, NULL },
-       { 0x9008, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },
-       { 0x9009, &hf_h248_pkg_annexc_syncasync, dissect_byte_param, NULL },
-       { 0x900A, &hf_h248_pkg_annexc_negotiation, dissect_byte_param, NULL },
-       { 0x900B, &hf_h248_pkg_annexc_userrate, dissect_byte_param, NULL },
-       { 0x900C, &hf_h248_pkg_annexc_intrate, dissect_byte_param, NULL },
-       { 0x900D, &hf_h248_pkg_annexc_nictx, h248_param_ber_boolean, NULL },
-       { 0x900E, &hf_h248_pkg_annexc_nicrx, h248_param_ber_boolean, NULL },
-       { 0x900F, &hf_h248_pkg_annexc_flowconttx, h248_param_ber_boolean, NULL },
-       { 0x9010, &hf_h248_pkg_annexc_flowcontrx, h248_param_ber_boolean, NULL },
-       { 0x9011, &hf_h248_pkg_annexc_rateadapthdr, h248_param_ber_boolean, NULL },
-       { 0x9012, &hf_h248_pkg_annexc_multiframe, h248_param_ber_boolean, NULL },
-       { 0x9013, &hf_h248_pkg_annexc_opmode, h248_param_ber_boolean, NULL },
-       { 0x9014, &hf_h248_pkg_annexc_llidnegot, h248_param_ber_boolean, NULL },
-       { 0x9015, &hf_h248_pkg_annexc_assign, h248_param_ber_boolean, NULL },
-       { 0x9016, &hf_h248_pkg_annexc_inbandneg, h248_param_ber_boolean, NULL },
-       { 0x9017, &hf_h248_pkg_annexc_stopbits, dissect_byte_param, NULL },
-       { 0x9018, &hf_h248_pkg_annexc_databits, dissect_byte_param, NULL },
-       { 0x9019, &hf_h248_pkg_annexc_parity, dissect_byte_param, NULL },
-       { 0x901a, &hf_h248_pkg_annexc_duplexmode, dissect_byte_param, NULL },
-       { 0x901b, &hf_h248_pkg_annexc_modem, dissect_byte_param, NULL },
-       { 0x901c, &hf_h248_pkg_annexc_layer2prot, dissect_byte_param, NULL },
-       { 0x901d, &hf_h248_pkg_annexc_layer3prot, dissect_byte_param, NULL },
-       { 0x901e, &hf_h248_pkg_annexc_addlayer3prot, dissect_byte_param, NULL },
-       { 0x901f, &hf_h248_pkg_annexc_dialedn, h248_param_item, &thirty },
-       { 0x9020, &hf_h248_pkg_annexc_dialingn, h248_param_item, &thirty },
-       { 0x9021, &hf_h248_pkg_annexc_echoci, h248_param_ber_integer, NULL },
-       { 0x9022, &hf_h248_pkg_annexc_nci, dissect_byte_param, NULL },
-       { 0x9023, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },
-       
-       { 0xA001, &hf_h248_pkg_annexc_fmsdu, h248_param_item, &four },
-       { 0xA002, &hf_h248_pkg_annexc_bmsdu, h248_param_item, &four },
-       { 0xA003, &hf_h248_pkg_annexc_sscs, NULL, NULL },
-
-       { 0xB001, &hf_h248_pkg_annexc_sdp_v, h248_param_ber_octetstring, NULL },
-       { 0xB002, &hf_h248_pkg_annexc_sdp_o, h248_param_ber_octetstring, NULL },
-       { 0xB003, &hf_h248_pkg_annexc_sdp_s, h248_param_ber_octetstring, NULL },
-       { 0xB004, &hf_h248_pkg_annexc_sdp_i, h248_param_ber_octetstring, NULL },
-       { 0xB005, &hf_h248_pkg_annexc_sdp_u, h248_param_ber_octetstring, NULL },
-       { 0xB006, &hf_h248_pkg_annexc_sdp_e, h248_param_ber_octetstring, NULL },
-       { 0xB007, &hf_h248_pkg_annexc_sdp_p, h248_param_ber_octetstring, NULL },
-       { 0xB008, &hf_h248_pkg_annexc_sdp_c, h248_param_ber_octetstring, NULL },
-       { 0xB009, &hf_h248_pkg_annexc_sdp_b, h248_param_ber_octetstring, NULL },
-       { 0xB00a, &hf_h248_pkg_annexc_sdp_z, h248_param_ber_octetstring, NULL },
-       { 0xB00b, &hf_h248_pkg_annexc_sdp_k, h248_param_ber_octetstring, NULL },
-       { 0xB00c, &hf_h248_pkg_annexc_sdp_a, h248_param_ber_octetstring, NULL },
-       { 0xB00d, &hf_h248_pkg_annexc_sdp_t, h248_param_ber_octetstring, NULL },
-       { 0xB00e, &hf_h248_pkg_annexc_sdp_r, h248_param_ber_octetstring, NULL },
-       
-       { 0xC001, &hf_h248_pkg_annexc_olc, h248_param_ber_octetstring, NULL },
-       { 0xC002, &hf_h248_pkg_annexc_olcack, h248_param_ber_octetstring, NULL },
-       { 0xC003, &hf_h248_pkg_annexc_olccnf, h248_param_ber_octetstring, NULL },
-       { 0xC004, &hf_h248_pkg_annexc_olcrej, h248_param_ber_octetstring, NULL },
-       { 0xC005, &hf_h248_pkg_annexc_clc, h248_param_ber_octetstring, NULL },
-       { 0xC006, &hf_h248_pkg_annexc_clcack, h248_param_ber_octetstring, NULL },
-       
-       { 0, NULL, NULL, NULL }
-};
-
-static h248_package_t h248_annexc_package = {
-       0x0000,
-       &proto_h248_pkg_annexc,
-       &hf_h248_pkg_annexc_parameters,
-       &ett_annexc,
-       h248_annexc_package_properties,
+/*\r
+ *  packet-h248-annex_c.c\r
+ *  H.248 annex C\r
+ *\r
+ *  (c) 2006, Luis E. Garcia Ontanon <luis.ontanon@gmail.com>\r
+ *\r
+ * $Id: packet-h248-template.c 17587 2006-03-11 13:02:41Z sahlberg $\r
+ *\r
+ * Ethereal - Network traffic analyzer\r
+ * By Gerald Combs <gerald@ethereal.com>\r
+ * Copyright 1998 Gerald Combs\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\r
+ */\r
+\r
+#include "packet-h248.h"\r
+#define PNAME  "H.248 Annex C"\r
+#define PSNAME "H248C"\r
+#define PFNAME "h248c"\r
+\r
+/* H.248 Annex C */\r
+static int proto_h248_pkg_annexc = -1;\r
+static int hf_h248_pkg_annexc_parameters = -1;\r
+\r
+static int hf_h248_pkg_annexc_media = -1;\r
+static int hf_h248_pkg_annexc_ACodec = -1;\r
+static int hf_h248_pkg_annexc_Mediatx = -1;\r
+static int hf_h248_pkg_annexc_NSAP = -1;\r
+static int hf_h248_pkg_annexc_BIR = -1;\r
+static int hf_h248_pkg_annexc_transmission_mode = -1;\r
+static int hf_h248_pkg_annexc_num_of_channels = -1;\r
+static int hf_h248_pkg_annexc_sampling_rate = -1;\r
+static int hf_h248_pkg_annexc_bit_rate = -1;\r
+static int hf_h248_pkg_annexc_samplepp = -1;\r
+static int hf_h248_pkg_annexc_silence_supp = -1;\r
+static int hf_h248_pkg_annexc_encrypt_type = -1;\r
+static int hf_h248_pkg_annexc_encrypt_key = -1;\r
+static int hf_h248_pkg_annexc_gain = -1;\r
+static int hf_h248_pkg_annexc_jitterbuf = -1;\r
+static int hf_h248_pkg_annexc_propdelay = -1;\r
+static int hf_h248_pkg_annexc_rtp_payload = -1;\r
+\r
+static int hf_h248_pkg_annexc_h222 = -1;\r
+static int hf_h248_pkg_annexc_h223 = -1;\r
+static int hf_h248_pkg_annexc_v76 = -1;\r
+static int hf_h248_pkg_annexc_h2250 = -1;\r
+\r
+static int hf_h248_pkg_annexc_aesa = -1;\r
+static int hf_h248_pkg_annexc_vp = -1;\r
+static int hf_h248_pkg_annexc_vc = -1;\r
+static int hf_h248_pkg_annexc_sc = -1;\r
+static int hf_h248_pkg_annexc_bcob = -1;\r
+static int hf_h248_pkg_annexc_bbtc = -1;\r
+static int hf_h248_pkg_annexc_atc = -1;\r
+static int hf_h248_pkg_annexc_stc = -1;\r
+static int hf_h248_pkg_annexc_uppc = -1;\r
+static int hf_h248_pkg_annexc_pcr0 = -1;\r
+static int hf_h248_pkg_annexc_scr0 = -1;\r
+static int hf_h248_pkg_annexc_mbs0 = -1;\r
+static int hf_h248_pkg_annexc_pcr1 = -1;\r
+static int hf_h248_pkg_annexc_scr1 = -1;\r
+static int hf_h248_pkg_annexc_mbs1 = -1;\r
+static int hf_h248_pkg_annexc_bei = -1;\r
+static int hf_h248_pkg_annexc_ti = -1;\r
+static int hf_h248_pkg_annexc_fd = -1;\r
+static int hf_h248_pkg_annexc_a2pcdv = -1;\r
+static int hf_h248_pkg_annexc_c2pcdv = -1;\r
+static int hf_h248_pkg_annexc_appcdv = -1;\r
+static int hf_h248_pkg_annexc_cppcdv = -1;\r
+static int hf_h248_pkg_annexc_aclr = -1;\r
+static int hf_h248_pkg_annexc_meetd = -1;\r
+static int hf_h248_pkg_annexc_ceetd = -1;\r
+static int hf_h248_pkg_annexc_QosClass = -1;\r
+static int hf_h248_pkg_annexc_AALtype = -1;\r
+\r
+static int hf_h248_pkg_annexc_dlci = -1;\r
+static int hf_h248_pkg_annexc_cid = -1;\r
+static int hf_h248_pkg_annexc_sid = -1;\r
+static int hf_h248_pkg_annexc_ppt = -1;\r
+\r
+static int hf_h248_pkg_annexc_ipv4 = -1;\r
+static int hf_h248_pkg_annexc_ipv6 = -1;\r
+static int hf_h248_pkg_annexc_port = -1;\r
+static int hf_h248_pkg_annexc_porttype = -1;\r
+\r
+static int hf_h248_pkg_annexc_alc = -1;\r
+static int hf_h248_pkg_annexc_sut = -1;\r
+static int hf_h248_pkg_annexc_tci = -1;\r
+static int hf_h248_pkg_annexc_timer_cu = -1;\r
+static int hf_h248_pkg_annexc_maxcpssdu = -1;\r
+\r
+static int hf_h248_pkg_annexc_aal1st = -1;\r
+static int hf_h248_pkg_annexc_cbrr = -1;\r
+static int hf_h248_pkg_annexc_scri = -1;\r
+static int hf_h248_pkg_annexc_ecm = -1;\r
+static int hf_h248_pkg_annexc_sdbt = -1;\r
+static int hf_h248_pkg_annexc_pfci = -1;\r
+\r
+static int hf_h248_pkg_annexc_tmr = -1;\r
+static int hf_h248_pkg_annexc_tmrsr = -1;\r
+static int hf_h248_pkg_annexc_contcheck = -1;\r
+static int hf_h248_pkg_annexc_itc = -1;\r
+static int hf_h248_pkg_annexc_transmode = -1;\r
+static int hf_h248_pkg_annexc_transrate = -1;\r
+static int hf_h248_pkg_annexc_mult = -1;\r
+static int hf_h248_pkg_annexc_syncasync = -1;\r
+static int hf_h248_pkg_annexc_negotiation = -1;\r
+static int hf_h248_pkg_annexc_userrate = -1;\r
+static int hf_h248_pkg_annexc_intrate = -1;\r
+static int hf_h248_pkg_annexc_nictx = -1;\r
+static int hf_h248_pkg_annexc_nicrx = -1;\r
+static int hf_h248_pkg_annexc_flowconttx = -1;\r
+static int hf_h248_pkg_annexc_flowcontrx = -1;\r
+static int hf_h248_pkg_annexc_rateadapthdr = -1;\r
+static int hf_h248_pkg_annexc_multiframe = -1;\r
+static int hf_h248_pkg_annexc_opmode = -1;\r
+static int hf_h248_pkg_annexc_llidnegot = -1;\r
+static int hf_h248_pkg_annexc_assign = -1;\r
+static int hf_h248_pkg_annexc_inbandneg = -1;\r
+static int hf_h248_pkg_annexc_stopbits = -1;\r
+static int hf_h248_pkg_annexc_databits = -1;\r
+static int hf_h248_pkg_annexc_parity = -1;\r
+static int hf_h248_pkg_annexc_duplexmode = -1;\r
+static int hf_h248_pkg_annexc_modem = -1;\r
+static int hf_h248_pkg_annexc_layer2prot = -1;\r
+static int hf_h248_pkg_annexc_layer3prot = -1;\r
+static int hf_h248_pkg_annexc_addlayer3prot = -1;\r
+static int hf_h248_pkg_annexc_dialedn = -1;\r
+static int hf_h248_pkg_annexc_dialingn = -1;\r
+static int hf_h248_pkg_annexc_echoci = -1;\r
+static int hf_h248_pkg_annexc_nci = -1;\r
+static int hf_h248_pkg_annexc_USI = -1;\r
+\r
+static int hf_h248_pkg_annexc_fmsdu = -1;\r
+static int hf_h248_pkg_annexc_bmsdu = -1;\r
+static int hf_h248_pkg_annexc_sscs = -1;\r
+\r
+static int hf_h248_pkg_annexc_sdp_v = -1;\r
+static int hf_h248_pkg_annexc_sdp_o = -1;\r
+static int hf_h248_pkg_annexc_sdp_s = -1;\r
+static int hf_h248_pkg_annexc_sdp_i = -1;\r
+static int hf_h248_pkg_annexc_sdp_u = -1;\r
+static int hf_h248_pkg_annexc_sdp_e = -1;\r
+static int hf_h248_pkg_annexc_sdp_p = -1;\r
+static int hf_h248_pkg_annexc_sdp_c = -1;\r
+static int hf_h248_pkg_annexc_sdp_b = -1;\r
+static int hf_h248_pkg_annexc_sdp_z = -1;\r
+static int hf_h248_pkg_annexc_sdp_k = -1;\r
+static int hf_h248_pkg_annexc_sdp_a = -1;\r
+static int hf_h248_pkg_annexc_sdp_t = -1;\r
+static int hf_h248_pkg_annexc_sdp_r = -1;\r
+static int hf_h248_pkg_annexc_sdp_m = -1;\r
+\r
+static int hf_h248_pkg_annexc_olc = -1;\r
+static int hf_h248_pkg_annexc_olcack = -1;\r
+static int hf_h248_pkg_annexc_olccnf = -1;\r
+static int hf_h248_pkg_annexc_olcrej = -1;\r
+static int hf_h248_pkg_annexc_clc = -1;\r
+static int hf_h248_pkg_annexc_clcack = -1;\r
+\r
+\r
+\r
+static gint ett_annexc = -1;\r
+static gint ett_vpvc = -1;\r
+static gint ett_codec = -1;\r
+\r
+static int two = 2;\r
+static int three = 3;\r
+static int four = 4;\r
+static int twelve = 12;\r
+static int sixteen = 16;\r
+static int twenty = 20;\r
+static int thirty = 30;\r
+\r
+static value_string h248_annexc_package_properties_vals[] = {\r
+       { 0x1001, "media" },\r
+       { 0x1002, "transmission mode" },\r
+       { 0x1003, "num_of_channels" },\r
+       { 0x1004, "sampling_rate" },\r
+       { 0x1005, "bit_rate" },\r
+       { 0x1006, "ACodec" },\r
+       { 0x1007, "samplepp" },\r
+       { 0x1008, "silence_supp" },\r
+       { 0x1009, "encrypt_type" },\r
+       { 0x100A, "encrypt_key" },\r
+       { 0x100B, "echo canceller" },\r
+       { 0x100C, "gain" },\r
+       { 0x100D, "jitterbuf" },\r
+       { 0x100E, "propdelay" },\r
+       { 0x100F, "rtp_payload" },\r
+\r
+       { 0x2001, "h222" },\r
+       { 0x2002, "h223" },\r
+       { 0x2003, "v76" },\r
+       { 0x2004, "h2250" },\r
+\r
+       { 0x3001, "Mediatx" },\r
+       { 0x3002, "BIR" },\r
+       { 0x3003, "NSAP" },\r
+\r
+       { 0x4001, "aesa" },\r
+       { 0x4002, "vp" },\r
+       { 0x4003, "sc" },\r
+       { 0x4004, "bcob" },\r
+       { 0x4005, "bbtc" },\r
+       { 0x4006, "atc" },\r
+       { 0x4007, "stc" },\r
+       { 0x4008, "uppc" },\r
+       { 0x4009, "pcr0" },\r
+       { 0x400a, "scr0" },\r
+       { 0x400b, "mbs0" },\r
+       { 0x400c, "pcr1" },\r
+       { 0x400d, "scr1" },\r
+       { 0x400e, "mbs1" },\r
+       { 0x400f, "bei" },\r
+       { 0x4010, "ti" },\r
+       { 0x4011, "fd" },\r
+       { 0x4012, "a2pcdv" },\r
+       { 0x4013, "c2pcdv" },\r
+       { 0x4014, "appcdv" },\r
+       { 0x4015, "cppcdv" },\r
+       { 0x4016, "aclr" },\r
+       { 0x4017, "meetd" },\r
+       { 0x4018, "ceetd" },\r
+       { 0x4019, "QosClass" },\r
+       { 0x401a, "AALtype" },\r
+       \r
+       { 0x5001, "DLCI" },\r
+       { 0x5002, "CID" },\r
+       { 0x5003, "SID/Noiselevel" },\r
+       { 0x5004, "PPT" },\r
+\r
+       { 0x6001, "IPv4" },\r
+       { 0x6002, "IPv6" },\r
+       { 0x6003, "Port" },\r
+       { 0x6004, "Porttype" },\r
+\r
+       { 0x7001, "AESA" },\r
+       { 0x7002, "ALC" },\r
+       { 0x7003, "SSCS" },\r
+       { 0x7004, "SUT" },\r
+       { 0x7005, "TCI" },\r
+       { 0x7006, "Timer_CU" },\r
+       { 0x7007, "MaxCPSSDU" },\r
+       { 0x7008, "CID" },\r
+\r
+       { 0x8001, "AAL1ST" },\r
+       { 0x8002, "CBRR" },\r
+       { 0x8003, "SCRI" },\r
+       { 0x8004, "ECM" },\r
+       { 0x8005, "SDTB" },\r
+       { 0x8006, "PFCI" },\r
+\r
+       { 0x9001, "TMR" },\r
+       { 0x9008, "USI" },\r
+       { 0x9009, "syncasync" },\r
+       { 0x900a, "negotiation" },\r
+       { 0x900b, "userrate" },\r
+       { 0x900c, "intrate" },\r
+       { 0x900d, "nictx" },\r
+       { 0x900e, "nicrx" },\r
+       { 0x900f, "flowconttx" },\r
+       { 0x9010, "flowcontrx" },\r
+       { 0x9011, "rateadapthdr" },\r
+       { 0x9012, "multiframe" },\r
+       { 0x9013, "opmode" },\r
+       { 0x9014, "llnegot" },\r
+       { 0x9015, "assign" },\r
+       { 0x9016, "inbandneg" },\r
+       { 0x9017, "stopbits" },\r
+       { 0x9018, "databits" },\r
+       { 0x9019, "parity" },\r
+       { 0x901a, "duplexmode" },\r
+       { 0x901b, "modem" },\r
+       { 0x901c, "layer2prot" },\r
+       { 0x901d, "layer3prot" },\r
+       { 0x901e, "addlayer3prot" },\r
+       { 0x901f, "DialledN" },\r
+       { 0x9020, "DiallingN" },\r
+       { 0x9021, "ECHOCI" },\r
+       { 0x9022, "NCI" },\r
+       { 0x9023, "USI" },\r
+\r
+       { 0xA001, "FMSDU" },\r
+       { 0xA002, "BMSDU" },\r
+\r
+       { 0xB001, "SDP_V (Protocol Version)" },\r
+       { 0xB002, "SDP_O (Owner/creator)" },\r
+       { 0xB003, "SDP_S (Session Name)" },\r
+       { 0xB004, "SDP_I (Session Identifier)" },\r
+       { 0xB005, "SDP_U (URI)" },\r
+       { 0xB006, "SDP_E (email address)" },\r
+       { 0xB007, "SDP_P (phone number)" },\r
+       { 0xB008, "SDP_C (connection)" },\r
+       { 0xB009, "SDP_B (bandwidth info)" },\r
+       { 0xB00A, "SDP_Z (TZ adjustement)" },\r
+       { 0xB00B, "SDP_K (encryption key)" },\r
+       { 0xB00C, "SDP_A (Session attributes)" },\r
+       { 0xB00D, "SDP_T (Active Session Time)" },\r
+       { 0xB00E, "SDP_R (Repeat times)" },\r
+       { 0xB00F, "SDP_M (Media type, portm transport and format)" },\r
+\r
+       { 0xC001, "OLC" },\r
+       { 0xC002, "OLCack" },\r
+       { 0xC003, "OLCcnf" },\r
+       { 0xC004, "OLCrej" },\r
+       { 0xC005, "CLC" },\r
+       { 0xC006, "CLCack" },\r
+       \r
+{ 0, NULL }\r
+};\r
+\r
+\r
+\r
+static const value_string h248_annexc_media_vals[] = {\r
+       {   0, "Audio" },\r
+       {   1, "Video" },\r
+       {   2, "Data" },\r
+       {   0, NULL }\r
+};\r
+\r
+static const value_string h248_pkg_annexc_Mediatx_vals[] = {\r
+       {   0x0000, "TDM Circuit" },\r
+       {   0x0001, "ATM" },\r
+       {   0x0002, "FR" },\r
+       {   0x0003, "Ipv4" },\r
+       {   0x0004, "Ipv6" },\r
+       {0,     NULL}\r
+};\r
+\r
+static const value_string h248_annexc_transmission_mode[] = {\r
+    {0,"Send"},\r
+    {1,"Receive"},\r
+    {2,"Send&Receive"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_sc[] = {\r
+    {0,"CBR"},\r
+    {1,"nrt-VBR1"},\r
+    {2,"nrt-VBR2"},\r
+    {3,"nrt-VBR3"},\r
+    {4,"rt-VBR1"},\r
+    {5,"rt-VBR2"},\r
+    {6,"rt-VBR3"},\r
+    {7,"UBR1"},\r
+    {8,"UBR2"},\r
+    {9,"ABR"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_atc_values[] = {\r
+    {0,"DBR"},\r
+    {1,"SBR1"},\r
+    {2,"SBR2"},\r
+    {3,"SBR3"},\r
+    {4,"ABT/IT"},\r
+    {5,"ABT/DT"},\r
+    {6,"ABR"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_stc_values[] = {\r
+    {0,"Not Susceptible to clipping"},\r
+    {1,"Susceptible to clipping"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_uppc_values[] = {\r
+    {0,"point-to-point"},\r
+    {1,"point-to-multipoint"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_syncasync_values[] = {\r
+       {0, "Syncronous Data"},\r
+       {1, "Asyncronous Data"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_negotiation_values[] = {\r
+       {0, "In-Band negotiation possible"},\r
+       {1, "In-Band negotiation not possible"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_userrate_values[] = {\r
+       {0x0,"E-Bit specified I.460 or higher negotiated in-band"},\r
+       {0x1,"0.6 kbps (X.1)"},\r
+       {0x2,"1.2 kbps"},\r
+       {0x3,"2.4 kbps (X.1)"},\r
+       {0x4,"3.6 kbps"},\r
+       {0x5,"4.8 kbps (X.1)"},\r
+       {0x6,"7.2 kbps"},\r
+       {0x7,"8 kbps (I.460)"},\r
+       {0x8,"9.6 kbps (X.1)"},\r
+       {0x9,"14.4 kbps"},\r
+       {0xa,"16 kbps (I.460)"},\r
+       {0xb,"19.2 kbps"},\r
+       {0xc,"32 kbps (I.460)"},\r
+       {0xd,"38.4 kbps (V.110)"},\r
+       {0xe,"48 kbps (X.1)"},\r
+       {0xf,"56 kbps"},\r
+       \r
+       {0x12,"57.6 kbps (V.14 extended)"},\r
+       {0x13,"28.8 kbps (V.110)"},\r
+       {0x14,"24 kbps (V.110)"},\r
+       {0x15,"0.1345 kbps (X.1)"},\r
+       {0x16,"0.100 kbps (X.1)"},\r
+       {0x17,"0.075/1.2 kbps (X.1)"},\r
+       {0x18,"1.2/0.075 kbps (X.1)"},\r
+       {0x19,"0.050 kbps (X.1)"},\r
+       {0x1a,"0.075 kbps (X.1)"},\r
+       {0x1b,"0.110 kbps (X.1)"},\r
+       {0x1c,"0.150 kbps (X.1)"},\r
+       {0x1d,"0.200 kbps (X.1)"},\r
+       {0x1e,"0.300 kbps (X.1)"},\r
+       {0x1f,"12 kbps (X.1)"},\r
+       \r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_intrate_values[] = {\r
+       {0x0,"Not Used"},\r
+       {0x1,"8 kbps"},\r
+       {0x2,"16 kbps"},\r
+       {0x3,"32 kbps"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_nictx_values[] = {\r
+       {0,"Not required to transmit with NIC"},\r
+       {1,"Required to transmit with NIC"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_nicrx_values[] = {\r
+       {0,"Cannot accept data with NIC"},\r
+       {1,"Can accept data with NIC"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_flowconttx_values[] = {\r
+       {0,"Not Required"},\r
+       {1,"Required"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_flowcontrx_values[] = {\r
+       {0,"Cannot accept data with flow control mechanism"},\r
+       {1,"Can accept data with flow control mechanism"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_rateadapthdr_values[] = {\r
+       {0,"not included"},\r
+       {1,"included"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_multiframe_values[] = {\r
+       {0,"not supported"},\r
+       {1,"supported"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_opmode_values[] = {\r
+       {0,"bit transparent"},\r
+       {1,"protocol sensitive"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_llidnegot_values[] = {\r
+       {0,"Default, LLI=256 only"},\r
+       {1,"Full protocol negotiation"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_assign_values[] = {\r
+       {0,"Originatior is default asignee"},\r
+       {1,"Originatior is asignor only"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_inbandneg_values[] = {\r
+       {0,"negotiation on temporary signalling connection"},\r
+       {1,"negotiation in-band"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_stopbits_values[] = {\r
+       {0,"none"},\r
+       {1,"1 bit"},\r
+       {2,"1.5 bits"},\r
+       {3,"2 bits"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_databits_values[] = {\r
+       {0,"Not Used"},\r
+       {1,"5 bits"},\r
+       {2,"7 bits"},\r
+       {3,"8 bits"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_parity_values[] = {\r
+       {0,"Odd"},\r
+       {2,"Even"},\r
+       {3,"None"},\r
+       {4,"Forced to 0"},\r
+       {5,"Forced to 1"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_duplexmode_values[] = {\r
+       {0,"Half Duplex"},\r
+       {1,"Full Duplex"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_modem_values[] = {\r
+       {0x00,"National Use"},\r
+       {0x01,"National Use"},\r
+       {0x02,"National Use"},\r
+       {0x03,"National Use"},\r
+       {0x04,"National Use"},\r
+       {0x05,"National Use"},\r
+       \r
+       {0x11,"V.21"},\r
+       {0x12,"V.22"},\r
+       {0x13,"V.22bis"},\r
+       {0x14,"V.23"},\r
+       {0x15,"V.26"},\r
+       {0x16,"V.26bis"},\r
+       {0x17,"V.26ter"},\r
+       {0x18,"V.27"},\r
+       {0x19,"V.27bis"},\r
+       {0x1A,"V.27ter"},\r
+       {0x1B,"V.29"},\r
+       {0x1D,"V.32"},\r
+       {0x1E,"V.34"},\r
+       \r
+       {0x20,"National Use"},\r
+       {0x21,"National Use"},\r
+       {0x22,"National Use"},\r
+       {0x23,"National Use"},\r
+       {0x24,"National Use"},\r
+       {0x25,"National Use"},\r
+       {0x26,"National Use"},\r
+       {0x27,"National Use"},\r
+       {0x28,"National Use"},\r
+       {0x29,"National Use"},\r
+       {0x2a,"National Use"},\r
+       {0x2b,"National Use"},\r
+       {0x2c,"National Use"},\r
+       {0x2d,"National Use"},\r
+       {0x2e,"National Use"},\r
+       {0x2f,"National Use"},\r
+       \r
+       {0x30,"User Specified"},\r
+       {0x31,"User Specified"},\r
+       {0x32,"User Specified"},\r
+       {0x33,"User Specified"},\r
+       {0x34,"User Specified"},\r
+       {0x35,"User Specified"},\r
+       {0x36,"User Specified"},\r
+       {0x37,"User Specified"},\r
+       {0x38,"User Specified"},\r
+       {0x39,"User Specified"},\r
+       {0x3a,"User Specified"},\r
+       {0x3b,"User Specified"},\r
+       {0x3c,"User Specified"},\r
+       {0x3d,"User Specified"},\r
+       {0x3e,"User Specified"},\r
+       {0x3f,"User Specified"},\r
+       \r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_layer2prot_values[] = {\r
+       {0x2,"Q.921/I.441"},\r
+       {0x6,"X.25, link layer"},\r
+       {0xC,"LLC (ISO/IEC 8802-2)"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_layer3prot_values[] = {\r
+       {0x2,"Q.921/I.441"},\r
+       {0x6,"X.25, packet layer"},\r
+       {0xC,"IP, ISO/IEC TR 9577"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_addlayer3prot_values[] = {\r
+       {0xCC,"IP (RFC 791)"},\r
+       {0xCF,"PPP (RFC 1661)"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_nci_satelite_values[] = {\r
+       {0x0,"no satelite circuit"},\r
+       {0x1,"one satellite circuit"},\r
+       {0x2,"two satelite circiuts"},\r
+       {0x3,"spare"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_nci_continuity_values[] = {\r
+       {0x0,"continuity check not required"},\r
+       {0x1,"continuity check required on this circuit"},\r
+       {0x2,"continuity check performed on a previous circuit"},\r
+       {0x3,"spare"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_nci_echoctl_values[] = {\r
+       {0x0,"outgoing echo control device not included"},\r
+       {0x1,"outgoing echo control device included"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_QosClass_values[] = {\r
+       {0x0,"Default"},\r
+       {0x1,"Stringent"},\r
+       {0x2,"Tolerant"},\r
+       {0x3,"Bi-Level"},\r
+       {0x4,"Unbounded"},\r
+       {0x5,"Stringent Bi-level"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_AALtype_values[] = {\r
+       {0x0,"AAL for Voice"},\r
+       {0x1,"AAL1"},\r
+       {0x2,"AAL2"},\r
+       {0x3,"AAL3/4"},\r
+       {0x5,"AAL5"},\r
+       {0x10,"User Defined"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_porttype_values[] = {\r
+       {0x0,"TCP"},\r
+       {0x1,"UDP"},\r
+       {0x2,"SCTP"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_aal1st_values[] = {\r
+       {0x0,"null"},\r
+       {0x1,"voiceband signall transport on 64kbps"},\r
+       {0x2,"circuit transport"},\r
+       {0x4,"high quality audio signal transport"},\r
+       {0x5,"video signal transport"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_cbrr_values[] = {\r
+       {0x01,"64 kbps"},\r
+       {0x04,"1544 kbps"},\r
+       {0x05,"6312 kbps"},\r
+       {0x06,"32064 kbps"},\r
+       {0x07,"44736 kbps"},\r
+       {0x08,"44736 kbps"},\r
+       {0x10,"2048 kbps"},\r
+       {0x11,"8448 kbps"},\r
+       {0x12,"34368 kbps"},\r
+       {0x13,"139264 kbps"},\r
+       {0x40,"n * 64 kbps"},\r
+       {0x41,"n * 8 kbps"},\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_scri_values[] = {\r
+       {0x0,"null"},\r
+       {0x1,"SRTS"},\r
+       {0x2,"ACM"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_ecm_values[] = {\r
+       {0x0,"null"},\r
+       {0x1,"FEC - Loss"},\r
+       {0x2,"FEC - Delay"},\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_tmrsr_values[] = {\r
+       /* TO DO */\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_contcheck_values[] = {\r
+       /* TO DO */\r
+    {0,NULL}\r
+};\r
+\r
+static const value_string h248_pkg_annexc_itc_values[] = {\r
+       /* TO DO */\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_transmode_values[] = {\r
+       /* TO DO */\r
+    {0,NULL}\r
+};\r
+\r
+\r
+static const value_string h248_pkg_annexc_transrate_values[] = {\r
+       /* TO DO */\r
+    {0,NULL}\r
+};\r
+\r
+\r
+\r
+static void dissect_h248_annexc_acodec(proto_tree* tree,\r
+                                                                               tvbuff_t* tvb,\r
+                                                                               packet_info* pinfo,\r
+                                                                               int hfid,\r
+                                                                               h248_curr_info_t* h248_info _U_,\r
+                                                                               void* implicit_p ) {\r
+       int len;\r
+       tvbuff_t* new_tvb;\r
+       \r
+       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);\r
+       \r
+       tree = proto_item_add_subtree(get_ber_last_created_item(),ett_codec);\r
+       len = tvb_length(new_tvb);\r
+       dissect_codec_mode(tree,new_tvb,0,len);\r
+}\r
+\r
+static void dissect_h248_annexc_BIR(proto_tree* tree,\r
+                                                                        tvbuff_t* tvb,\r
+                                                                        packet_info* pinfo,\r
+                                                                        int hfid,\r
+                                                                        h248_curr_info_t* h248_info,\r
+                                                                        void* implicit_p ) {\r
+       tvbuff_t* new_tvb = NULL;\r
+       \r
+       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);\r
+       \r
+       if ( new_tvb && h248_info->term && ! h248_info->term->bir ) {\r
+               h248_info->term->bir = se_strdup(tvb_bytes_to_str(new_tvb,0,tvb_length(new_tvb)));\r
+       }\r
+}\r
+\r
+static void dissect_h248_annexc_NSAP(proto_tree* tree,\r
+                                                                         tvbuff_t* tvb,\r
+                                                                         packet_info* pinfo,\r
+                                                                         int hfid,\r
+                                                                         h248_curr_info_t* h248_info,\r
+                                                                         void* implicit_p ) {\r
+       tvbuff_t* new_tvb = NULL;\r
+       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);\r
+       if (new_tvb) {\r
+               dissect_nsap(new_tvb, 0,tvb_length_remaining(new_tvb, 0), tree);\r
+               if ( h248_info->term && ! h248_info->term->nsap) {\r
+                       h248_info->term->nsap = se_strdup(tvb_bytes_to_str(new_tvb,0,tvb_length(new_tvb)));\r
+               }\r
+       }\r
+}\r
+\r
+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_) {\r
+       proto_item* pi = proto_tree_add_item(tree,hfid,tvb,0,2,FALSE);\r
+       proto_tree* pt = proto_item_add_subtree(pi,ett_vpvc);\r
+       proto_tree_add_item(pt,hf_h248_pkg_annexc_vp,tvb,0,2,FALSE);\r
+       proto_tree_add_item(pt,hf_h248_pkg_annexc_vc,tvb,2,2,FALSE);\r
+}\r
+\r
+static void dissect_byte_param(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_, int hfid, h248_curr_info_t* h248_info _U_, void* unused _U_) {\r
+       proto_tree_add_item(tree,hfid,tvb,0,1,FALSE);\r
+}\r
+\r
+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) {\r
+       tvbuff_t* new_tvb = NULL;\r
+       dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, pinfo, tree, tvb, 0, hfid, &new_tvb);\r
+       if (new_tvb)\r
+               dissect_q931_bearer_capability_ie(new_tvb, 0, 3, tree);\r
+}\r
+\r
+static h248_pkg_param_t h248_annexc_package_properties[] = {\r
+       { 0x1001, &hf_h248_pkg_annexc_media, h248_param_ber_integer, NULL },\r
+       { 0x1002, &hf_h248_pkg_annexc_transmission_mode, h248_param_ber_integer, NULL },\r
+       { 0x1003, &hf_h248_pkg_annexc_num_of_channels, h248_param_ber_integer, NULL },\r
+       { 0x1004, &hf_h248_pkg_annexc_sampling_rate, h248_param_ber_integer, NULL },\r
+       { 0x1005, &hf_h248_pkg_annexc_bit_rate, h248_param_ber_integer, NULL },\r
+       { 0x1006, &hf_h248_pkg_annexc_ACodec, dissect_h248_annexc_acodec, NULL },\r
+       { 0x1007, &hf_h248_pkg_annexc_samplepp, h248_param_ber_integer, NULL },\r
+       { 0x1008, &hf_h248_pkg_annexc_silence_supp, h248_param_ber_boolean, NULL },\r
+       { 0x1009, &hf_h248_pkg_annexc_encrypt_type, h248_param_ber_octetstring, NULL }, /* XXX Hand over to what in H.245? */\r
+       { 0x100A, &hf_h248_pkg_annexc_encrypt_key, h248_param_ber_integer, NULL },\r
+       { 0x100C, &hf_h248_pkg_annexc_gain, h248_param_ber_integer, NULL },\r
+       { 0x100D, &hf_h248_pkg_annexc_jitterbuf, h248_param_ber_integer, NULL },\r
+       { 0x100E, &hf_h248_pkg_annexc_propdelay, h248_param_ber_integer, NULL },\r
+       { 0x100F, &hf_h248_pkg_annexc_rtp_payload, h248_param_ber_integer, NULL },\r
+       \r
+       { 0x2001, &hf_h248_pkg_annexc_h222, h248_param_ber_octetstring, NULL },\r
+       { 0x2002, &hf_h248_pkg_annexc_h223, h248_param_ber_octetstring, NULL },\r
+       { 0x2003, &hf_h248_pkg_annexc_v76, h248_param_ber_octetstring, NULL },\r
+       { 0x2004, &hf_h248_pkg_annexc_h2250, h248_param_ber_octetstring, NULL },\r
+       \r
+       { 0x3001, &hf_h248_pkg_annexc_Mediatx, h248_param_ber_integer, NULL },\r
+       { 0x3002, &hf_h248_pkg_annexc_BIR, dissect_h248_annexc_BIR, NULL },\r
+       { 0x3003, &hf_h248_pkg_annexc_NSAP, dissect_h248_annexc_NSAP, NULL },\r
+       \r
+       { 0x4001, &hf_h248_pkg_annexc_aesa, h248_param_item, &twenty },\r
+       { 0x4002, &hf_h248_pkg_annexc_vp, dissect_h248_annexc_vpvc, NULL },\r
+       { 0x4003, &hf_h248_pkg_annexc_sc, h248_param_ber_integer, NULL },\r
+       { 0x4004, &hf_h248_pkg_annexc_bcob, dissect_byte_param, NULL },\r
+       { 0x4005, &hf_h248_pkg_annexc_bbtc, dissect_byte_param, NULL },\r
+       { 0x4006, &hf_h248_pkg_annexc_atc, h248_param_ber_integer, NULL },\r
+       { 0x4007, &hf_h248_pkg_annexc_stc, dissect_byte_param, NULL },\r
+       { 0x4008, &hf_h248_pkg_annexc_uppc, dissect_byte_param, NULL },\r
+       { 0x4009, &hf_h248_pkg_annexc_pcr0, h248_param_item, &three },\r
+       { 0x400a, &hf_h248_pkg_annexc_scr0, h248_param_item, &three },\r
+       { 0x400b, &hf_h248_pkg_annexc_mbs0, h248_param_item, &three },\r
+       { 0x400c, &hf_h248_pkg_annexc_pcr1, h248_param_item, &three },\r
+       { 0x400d, &hf_h248_pkg_annexc_scr1, h248_param_item, &three },\r
+       { 0x400e, &hf_h248_pkg_annexc_mbs1, h248_param_item, &three },\r
+       { 0x400f, &hf_h248_pkg_annexc_bei, h248_param_ber_boolean, NULL },\r
+       { 0x4010, &hf_h248_pkg_annexc_ti, h248_param_ber_boolean, NULL },\r
+       { 0x4011, &hf_h248_pkg_annexc_fd, h248_param_ber_boolean, NULL },\r
+       { 0x4012, &hf_h248_pkg_annexc_a2pcdv, h248_param_item, &three },\r
+       { 0x4013, &hf_h248_pkg_annexc_c2pcdv, h248_param_item, &three },\r
+       { 0x4014, &hf_h248_pkg_annexc_appcdv, h248_param_item, &three },\r
+       { 0x4015, &hf_h248_pkg_annexc_cppcdv, h248_param_item, &three },\r
+       { 0x4016, &hf_h248_pkg_annexc_aclr, dissect_byte_param, NULL },\r
+       { 0x4017, &hf_h248_pkg_annexc_meetd, h248_param_item, &two },\r
+       { 0x4018, &hf_h248_pkg_annexc_ceetd, h248_param_item, &two },\r
+       { 0x4019, &hf_h248_pkg_annexc_QosClass, h248_param_ber_integer, NULL },\r
+       { 0x401A, &hf_h248_pkg_annexc_AALtype, dissect_byte_param, NULL },\r
+\r
+       { 0x5001, &hf_h248_pkg_annexc_dlci, h248_param_ber_integer, NULL },\r
+       { 0x5002, &hf_h248_pkg_annexc_cid, h248_param_ber_integer, NULL },\r
+       { 0x5003, &hf_h248_pkg_annexc_sid, h248_param_ber_integer, NULL },\r
+       { 0x5004, &hf_h248_pkg_annexc_ppt, h248_param_ber_integer, NULL },\r
+       \r
+       { 0x6001, &hf_h248_pkg_annexc_ipv4, h248_param_item, &four },\r
+       { 0x6002, &hf_h248_pkg_annexc_ipv6, h248_param_item, &sixteen },\r
+       { 0x6003, &hf_h248_pkg_annexc_port, h248_param_ber_integer, NULL },\r
+       { 0x6004, &hf_h248_pkg_annexc_porttype, h248_param_ber_integer, NULL },\r
+       \r
+       { 0x7001, &hf_h248_pkg_annexc_aesa, h248_param_item, &twenty },\r
+       { 0x7002, &hf_h248_pkg_annexc_alc, h248_param_item, &twelve }, /* from ALCAP */\r
+       { 0x7003, &hf_h248_pkg_annexc_sscs, h248_param_item, NULL }, \r
+       { 0x7004, &hf_h248_pkg_annexc_sut, h248_param_item, NULL }, \r
+       { 0x7005, &hf_h248_pkg_annexc_tci, h248_param_ber_boolean, NULL }, \r
+       { 0x7006, &hf_h248_pkg_annexc_timer_cu, h248_param_item, &four }, \r
+       { 0x7007, &hf_h248_pkg_annexc_maxcpssdu, dissect_byte_param, NULL }, \r
+       { 0x7008, &hf_h248_pkg_annexc_cid, dissect_byte_param, NULL }, \r
+       \r
+       { 0x8001, &hf_h248_pkg_annexc_aal1st, dissect_byte_param, NULL },\r
+       { 0x8002, &hf_h248_pkg_annexc_cbrr, dissect_byte_param, NULL },\r
+       { 0x8003, &hf_h248_pkg_annexc_scri, dissect_byte_param, NULL }, \r
+       { 0x8004, &hf_h248_pkg_annexc_ecm, dissect_byte_param, NULL }, \r
+       { 0x8005, &hf_h248_pkg_annexc_sdbt, h248_param_item, &two }, \r
+       { 0x8006, &hf_h248_pkg_annexc_pfci, dissect_byte_param, NULL }, \r
+\r
+       { 0x9001, &hf_h248_pkg_annexc_tmr, dissect_byte_param, NULL },\r
+       { 0x9002, &hf_h248_pkg_annexc_tmrsr, dissect_byte_param, NULL },\r
+       { 0x9003, &hf_h248_pkg_annexc_contcheck, dissect_byte_param, NULL },\r
+       { 0x9004, &hf_h248_pkg_annexc_itc, dissect_byte_param, NULL },\r
+       { 0x9005, &hf_h248_pkg_annexc_transmode, dissect_byte_param, NULL },\r
+       { 0x9006, &hf_h248_pkg_annexc_transrate, dissect_byte_param, NULL },\r
+       { 0x9007, &hf_h248_pkg_annexc_mult, dissect_byte_param, NULL },\r
+       { 0x9008, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },\r
+       { 0x9009, &hf_h248_pkg_annexc_syncasync, dissect_byte_param, NULL },\r
+       { 0x900A, &hf_h248_pkg_annexc_negotiation, dissect_byte_param, NULL },\r
+       { 0x900B, &hf_h248_pkg_annexc_userrate, dissect_byte_param, NULL },\r
+       { 0x900C, &hf_h248_pkg_annexc_intrate, dissect_byte_param, NULL },\r
+       { 0x900D, &hf_h248_pkg_annexc_nictx, h248_param_ber_boolean, NULL },\r
+       { 0x900E, &hf_h248_pkg_annexc_nicrx, h248_param_ber_boolean, NULL },\r
+       { 0x900F, &hf_h248_pkg_annexc_flowconttx, h248_param_ber_boolean, NULL },\r
+       { 0x9010, &hf_h248_pkg_annexc_flowcontrx, h248_param_ber_boolean, NULL },\r
+       { 0x9011, &hf_h248_pkg_annexc_rateadapthdr, h248_param_ber_boolean, NULL },\r
+       { 0x9012, &hf_h248_pkg_annexc_multiframe, h248_param_ber_boolean, NULL },\r
+       { 0x9013, &hf_h248_pkg_annexc_opmode, h248_param_ber_boolean, NULL },\r
+       { 0x9014, &hf_h248_pkg_annexc_llidnegot, h248_param_ber_boolean, NULL },\r
+       { 0x9015, &hf_h248_pkg_annexc_assign, h248_param_ber_boolean, NULL },\r
+       { 0x9016, &hf_h248_pkg_annexc_inbandneg, h248_param_ber_boolean, NULL },\r
+       { 0x9017, &hf_h248_pkg_annexc_stopbits, dissect_byte_param, NULL },\r
+       { 0x9018, &hf_h248_pkg_annexc_databits, dissect_byte_param, NULL },\r
+       { 0x9019, &hf_h248_pkg_annexc_parity, dissect_byte_param, NULL },\r
+       { 0x901a, &hf_h248_pkg_annexc_duplexmode, dissect_byte_param, NULL },\r
+       { 0x901b, &hf_h248_pkg_annexc_modem, dissect_byte_param, NULL },\r
+       { 0x901c, &hf_h248_pkg_annexc_layer2prot, dissect_byte_param, NULL },\r
+       { 0x901d, &hf_h248_pkg_annexc_layer3prot, dissect_byte_param, NULL },\r
+       { 0x901e, &hf_h248_pkg_annexc_addlayer3prot, dissect_byte_param, NULL },\r
+       { 0x901f, &hf_h248_pkg_annexc_dialedn, h248_param_item, &thirty },\r
+       { 0x9020, &hf_h248_pkg_annexc_dialingn, h248_param_item, &thirty },\r
+       { 0x9021, &hf_h248_pkg_annexc_echoci, h248_param_ber_integer, NULL },\r
+       { 0x9022, &hf_h248_pkg_annexc_nci, dissect_byte_param, NULL },\r
+       { 0x9023, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },\r
+       \r
+       { 0xA001, &hf_h248_pkg_annexc_fmsdu, h248_param_item, &four },\r
+       { 0xA002, &hf_h248_pkg_annexc_bmsdu, h248_param_item, &four },\r
+       { 0xA003, &hf_h248_pkg_annexc_sscs, NULL, NULL },\r
+\r
+       { 0xB001, &hf_h248_pkg_annexc_sdp_v, h248_param_ber_octetstring, NULL },\r
+       { 0xB002, &hf_h248_pkg_annexc_sdp_o, h248_param_ber_octetstring, NULL },\r
+       { 0xB003, &hf_h248_pkg_annexc_sdp_s, h248_param_ber_octetstring, NULL },\r
+       { 0xB004, &hf_h248_pkg_annexc_sdp_i, h248_param_ber_octetstring, NULL },\r
+       { 0xB005, &hf_h248_pkg_annexc_sdp_u, h248_param_ber_octetstring, NULL },\r
+       { 0xB006, &hf_h248_pkg_annexc_sdp_e, h248_param_ber_octetstring, NULL },\r
+       { 0xB007, &hf_h248_pkg_annexc_sdp_p, h248_param_ber_octetstring, NULL },\r
+       { 0xB008, &hf_h248_pkg_annexc_sdp_c, h248_param_ber_octetstring, NULL },\r
+       { 0xB009, &hf_h248_pkg_annexc_sdp_b, h248_param_ber_octetstring, NULL },\r
+       { 0xB00a, &hf_h248_pkg_annexc_sdp_z, h248_param_ber_octetstring, NULL },\r
+       { 0xB00b, &hf_h248_pkg_annexc_sdp_k, h248_param_ber_octetstring, NULL },\r
+       { 0xB00c, &hf_h248_pkg_annexc_sdp_a, h248_param_ber_octetstring, NULL },\r
+       { 0xB00d, &hf_h248_pkg_annexc_sdp_t, h248_param_ber_octetstring, NULL },\r
+       { 0xB00e, &hf_h248_pkg_annexc_sdp_r, h248_param_ber_octetstring, NULL },\r
+       { 0xB00f, &hf_h248_pkg_annexc_sdp_m, h248_param_ber_octetstring, NULL },\r
+       \r
+       { 0xC001, &hf_h248_pkg_annexc_olc, h248_param_ber_octetstring, NULL },\r
+       { 0xC002, &hf_h248_pkg_annexc_olcack, h248_param_ber_octetstring, NULL },\r
+       { 0xC003, &hf_h248_pkg_annexc_olccnf, h248_param_ber_octetstring, NULL },\r
+       { 0xC004, &hf_h248_pkg_annexc_olcrej, h248_param_ber_octetstring, NULL },\r
+       { 0xC005, &hf_h248_pkg_annexc_clc, h248_param_ber_octetstring, NULL },\r
+       { 0xC006, &hf_h248_pkg_annexc_clcack, h248_param_ber_octetstring, NULL },\r
+       \r
+       { 0, NULL, NULL, NULL }\r
+};\r
+\r
+static h248_package_t h248_annexc_package = {\r
+       0x0000,\r
+       &proto_h248_pkg_annexc,\r
+       &hf_h248_pkg_annexc_parameters,\r
+       &ett_annexc,\r
+       h248_annexc_package_properties,\r
        NULL,\r
        NULL,\r
-       NULL
-};
-
-
-void proto_register_h248_annex_c(void) {
-       static hf_register_info hf[] = {
-               { &hf_h248_pkg_annexc_parameters,
-                       { "Parameter", "h248.pkg.annexc.parameter", FT_UINT16, BASE_HEX, VALS(h248_annexc_package_properties_vals), 0, "Annex-C Parameter ID", HFILL }},
-               { &hf_h248_pkg_annexc_media,
-                       { "Media", "h248.pkg.annexc.media", FT_UINT32, BASE_HEX, VALS(h248_annexc_media_vals), 0, "Media Type", HFILL }},
-               { &hf_h248_pkg_annexc_ACodec,
-               { "ACodec", "h248.pkg.annexc.ACodec",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "ACodec", HFILL }},
-               { &hf_h248_pkg_annexc_Mediatx,
-               { "Mediatx", "h248.pkg.annexc.Mediatx",
-                       FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_Mediatx_vals), 0,
-                       "Mediatx", HFILL }},
-               { &hf_h248_pkg_annexc_BIR,
-               { "BIR", "h248.pkg.annexc.BIR",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "BIR", HFILL }},
-               { &hf_h248_pkg_annexc_NSAP,
-               { "NSAP", "h248.pkg.annexc.NSAP",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "NSAP", HFILL }},
-               { &hf_h248_pkg_annexc_transmission_mode,
-               { "Transmission Mode", "h248.pkg.annexc.transmission_mode",
-                       FT_UINT32, BASE_DEC, VALS(h248_annexc_transmission_mode), 0,
-                       "Transmission Mode", HFILL }},
-               { &hf_h248_pkg_annexc_num_of_channels,
-               { "Number of Channels", "h248.pkg.annexc.num_of_channels",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Number of Channels", HFILL }},
-               { &hf_h248_pkg_annexc_sampling_rate,
-               { "Sampling Rate", "h248.pkg.annexc.sampling_rate",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Sampling Rate", HFILL }},
-               { &hf_h248_pkg_annexc_bit_rate,
-               { "Bit Rate", "h248.pkg.annexc.bit_rate",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Bit Rate", HFILL }},
-               { &hf_h248_pkg_annexc_samplepp,
-               { "Samplepp", "h248.pkg.annexc.samplepp",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Samplepp", HFILL }},
-               { &hf_h248_pkg_annexc_silence_supp,
-               { "SilenceSupp", "h248.pkg.annexc.silence_supp",
-                       FT_BOOLEAN, BASE_NONE, NULL, 0,
-                       "Silence Suppression", HFILL }},
-               { &hf_h248_pkg_annexc_encrypt_type,
-               { "Encrypttype", "h248.pkg.annexc.encrypt_type",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "Encryption Type", HFILL }},
-               { &hf_h248_pkg_annexc_gain,
-               { "Gain", "h248.pkg.annexc.gain",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Gain (dB)", HFILL }},
-               { &hf_h248_pkg_annexc_jitterbuf,
-               { "JitterBuff", "h248.pkg.annexc.jitterbuf",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Jitter Buffer Size (ms)", HFILL }},
-               { &hf_h248_pkg_annexc_propdelay,
-               { "Propagation Delay", "h248.pkg.annexc.encrypt_type",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Propagation Delay (ms)", HFILL }},
-               { &hf_h248_pkg_annexc_rtp_payload,
-               { "RTP Payload type", "h248.pkg.annexc.rtp_payload",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Payload type in RTP Profile", HFILL }},
-               { &hf_h248_pkg_annexc_h222,
-               { "H222LogicalChannelParameters", "h248.pkg.annexc.h222",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "H222LogicalChannelParameters", HFILL }},
-               { &hf_h248_pkg_annexc_h223,
-               { "H223LogicalChannelParameters", "h248.pkg.annexc.h223",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "H223LogicalChannelParameters", HFILL }},
-               { &hf_h248_pkg_annexc_v76,
-               { "V76LogicalChannelParameters", "h248.pkg.annexc.v76",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "V76LogicalChannelParameters", HFILL }},
-               { &hf_h248_pkg_annexc_h2250,
-               { "H2250LogicalChannelParameters", "h248.pkg.annexc.h2250",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "H2250LogicalChannelParameters", HFILL }},
-               { &hf_h248_pkg_annexc_aesa,
-               { "AESA", "h248.pkg.annexc.aesa",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "ATM End System Address", HFILL }},
-               { &hf_h248_pkg_annexc_vp,
-               { "VPI", "h248.pkg.annexc.vpi",
-                       FT_UINT16, BASE_DEC, NULL, 0,
-                       "Virtual Path Identifier", HFILL }},
-               { &hf_h248_pkg_annexc_vc,
-               { "VCI", "h248.pkg.annexc.vci",
-                       FT_UINT16, BASE_DEC, NULL, 0,
-                       "Virtual Circuit Identifier", HFILL }},
-               { &hf_h248_pkg_annexc_sc,
-               { "Service Class", "h248.pkg.annexc.sc",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Service Class", HFILL }},
-               { &hf_h248_pkg_annexc_bcob,
-               { "BCOB", "h248.pkg.annexc.bcob",
-                       FT_UINT8, BASE_DEC, NULL, 0x1F,
-                       "Broadband Bearer Class", HFILL }},
-               { &hf_h248_pkg_annexc_bbtc,
-               { "BBTC", "h248.pkg.annexc.bbtc",
-                       FT_UINT8, BASE_DEC, NULL, 0x3F,
-                       "Broadband Transfer Capability", HFILL }},
-               { &hf_h248_pkg_annexc_atc,
-               { "ATC", "h248.pkg.annexc.atc",
-                       FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_atc_values), 0x0,
-                       "ATM Traffic Capability", HFILL }},
-               { &hf_h248_pkg_annexc_stc,
-               { "STC", "h248.pkg.annexc.stc",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_stc_values), 0x03,
-                       "Susceptibility to Clipping", HFILL }},
-               { &hf_h248_pkg_annexc_uppc,
-               { "UPPC", "h248.pkg.annexc.uppc",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_uppc_values), 0x03,
-                       "User Plane Connection Configuration", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_pcr0,
-               { "PCR0", "h248.pkg.annexc.pcr0",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Peak Cell Rate for CLP=0", HFILL }},
-               { &hf_h248_pkg_annexc_scr0,
-               { "SCR0", "h248.pkg.annexc.scr0",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Sustained Cell Rate for CLP=0", HFILL }},
-               { &hf_h248_pkg_annexc_mbs0,
-               { "MBS0", "h248.pkg.annexc.mbs0",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Maximum Burst Size for CLP=0", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_pcr1,
-               { "PCR1", "h248.pkg.annexc.pcr1",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Peak Cell Rate for CLP=1", HFILL }},
-               { &hf_h248_pkg_annexc_scr1,
-               { "SCR1", "h248.pkg.annexc.scr1",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Sustained Cell Rate for CLP=1", HFILL }},
-               { &hf_h248_pkg_annexc_mbs1,
-               { "MBS1", "h248.pkg.annexc.mbs1",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Maximum Burst Size for CLP=1", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_bei,
-               { "BEI", "h248.pkg.annexc.bei",
-                       FT_BOOLEAN, BASE_NONE, NULL, 0,
-                       "Best Effort Indicator", HFILL }},
-               { &hf_h248_pkg_annexc_ti,
-               { "TI", "h248.pkg.annexc.ti",
-                       FT_BOOLEAN, BASE_NONE, NULL, 0,
-                       "Tagging Indicator", HFILL }},
-               { &hf_h248_pkg_annexc_fd,
-               { "FD", "h248.pkg.annexc.fd",
-                       FT_BOOLEAN, BASE_NONE, NULL, 0,
-                       "Frame Discard", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_a2pcdv,
-               { "A2PCDV", "h248.pkg.annexc.a2pcdv",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Acceptable 2 point CDV", HFILL }},
-               { &hf_h248_pkg_annexc_c2pcdv,
-               { "C2PCDV", "h248.pkg.annexc.c2pcdv",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Cummulative 2 point CDV", HFILL }},
-               { &hf_h248_pkg_annexc_appcdv,
-               { "APPCDV", "h248.pkg.annexc.appcdv",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Acceptable Point to Point CDV", HFILL }},
-               { &hf_h248_pkg_annexc_cppcdv,
-               { "CPPCDV", "h248.pkg.annexc.cppcdv",
-                       FT_UINT24, BASE_DEC, NULL, 0,
-                       "Cummulative Point to Point CDV", HFILL }},
-               { &hf_h248_pkg_annexc_aclr,
-               { "ACLR", "h248.pkg.annexc.aclr",
-                       FT_UINT8, BASE_DEC, NULL, 0,
-                       "Acceptable Cell Loss Ratio (Q.2965.2 ATMF UNI 4.0)", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_meetd,
-               { "MEETD", "h248.pkg.annexc.meetd",
-                       FT_UINT16, BASE_DEC, NULL, 0,
-                       "Maximum End-to-End Transit Delay (Q.2965.2 ATMF UNI 4.0)", HFILL }},
-               { &hf_h248_pkg_annexc_ceetd,
-               { "CEETD", "h248.pkg.annexc.ceetd",
-                       FT_UINT16, BASE_DEC, NULL, 0,
-                       "Cummulative End-to-End Transit Delay (Q.2965.2 ATMF UNI 4.0)", HFILL }},
-               { &hf_h248_pkg_annexc_QosClass,
-               { "QosClass", "h248.pkg.annexc.qosclass",
-                       FT_UINT16, BASE_DEC, VALS(h248_pkg_annexc_QosClass_values), 0,
-                       "QoS Class (Q.2965.1)", HFILL }},
-               { &hf_h248_pkg_annexc_AALtype,
-               { "AALtype", "h248.pkg.annexc.aaltype",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_AALtype_values), 0,
-                       "AAL Type", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_dlci,
-               { "DLCI", "h248.pkg.annexc.dlci",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Data Link Connection ID (FR)", HFILL }},
-               { &hf_h248_pkg_annexc_cid,
-               { "CID", "h248.pkg.annexc.cid",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Channel-Id", HFILL }},
-               { &hf_h248_pkg_annexc_sid,
-               { "SID", "h248.pkg.annexc.sid",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Silence Insertion Descriptor", HFILL }},
-               { &hf_h248_pkg_annexc_ppt,
-               { "PPT", "h248.pkg.annexc.ppt",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Primary Payload Type", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_ipv4,
-               { "IPv4", "h248.pkg.annexc.ipv4",
-                       FT_IPv4, BASE_NONE, NULL, 0,
-                       "IPv4 Address", HFILL }},
-               { &hf_h248_pkg_annexc_ipv6,
-               { "IPv6", "h248.pkg.annexc.ipv6",
-                       FT_IPv6, BASE_NONE, NULL, 0,
-                       "IPv6 Address", HFILL }},
-               { &hf_h248_pkg_annexc_port,
-               { "Port", "h248.pkg.annexc.port",
-                       FT_UINT16, BASE_DEC, NULL, 0,
-                       "Port", HFILL }},
-               { &hf_h248_pkg_annexc_porttype,
-               { "PortType", "h248.pkg.annexc.porttype",
-                       FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_porttype_values), 0,
-                       "Port Type", HFILL }},
-                                       
-               { &hf_h248_pkg_annexc_alc,
-               { "ALC", "h248.pkg.annexc.alc",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "AAL2 Link Characteristics", HFILL }},
-               { &hf_h248_pkg_annexc_sut,
-               { "SUT", "h248.pkg.annexc.sut",
-                       FT_BYTES, BASE_NONE, NULL, 0,
-                       "Served User Transport", HFILL }},
-               { &hf_h248_pkg_annexc_tci,
-               { "TCI", "h248.pkg.annexc.tci",
-                       FT_BOOLEAN, BASE_DEC, NULL, 0,
-                       "Test Connection Indicator", HFILL }},
-               { &hf_h248_pkg_annexc_timer_cu,
-               { "Timer CU", "h248.pkg.annexc.timer_cu",
-                       FT_UINT32, BASE_DEC, NULL, 0,
-                       "Milliseconds to hold the  patially filled cell before sending", HFILL }},
-               { &hf_h248_pkg_annexc_maxcpssdu,
-               { "Max CPS SDU", "h248.pkg.annexc.maxcpssdu",
-                       FT_UINT8, BASE_DEC, NULL, 0,
-                       "Maximum Common Part Sublayer Service Data Unit size", HFILL }},
-
-               { &hf_h248_pkg_annexc_aal1st,
-               { "AAL1ST", "h248.pkg.annexc.aal1st",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_aal1st_values), 0,
-                       "AAL1 subtype", HFILL }},
-               { &hf_h248_pkg_annexc_cbrr,
-               { "CBRR", "h248.pkg.annexc.cbrr",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_cbrr_values), 0,
-                       "CBR rate", HFILL }},
-               { &hf_h248_pkg_annexc_scri,
-               { "SCRI", "h248.pkg.annexc.scri",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_scri_values), 0,
-                       "Source Clock frequency Recovery method", HFILL }},
-               { &hf_h248_pkg_annexc_ecm,
-               { "ECM", "h248.pkg.annexc.ecm",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_ecm_values), 0,
-                       "Error Correction Method", HFILL }},
-               { &hf_h248_pkg_annexc_sdbt,
-               { "SDBT", "h248.pkg.annexc.sdbt",
-                       FT_UINT16, BASE_DEC, NULL, 0,
-                       "Structured Data Transfer Blocksize", HFILL }},
-               { &hf_h248_pkg_annexc_pfci,
-               { "PFCI", "h248.pkg.annexc.pfci",
-                       FT_UINT8, BASE_DEC, NULL, 0,
-                       "Partially Filled Cells Identifier", HFILL }},
-
-               { &hf_h248_pkg_annexc_tmr,
-               { "TMR", "h248.pkg.annexc.tmr",
-                       FT_UINT8, BASE_HEX, VALS(isup_transmission_medium_requirement_value), 0,
-                       "Transmission Medium Requirement", HFILL }},
-               { &hf_h248_pkg_annexc_tmrsr,
-               { "TMSR", "h248.pkg.annexc.tmsr",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_tmrsr_values), 0,
-                       "Transmission Medium Requirement Subrate", HFILL }},
-               { &hf_h248_pkg_annexc_contcheck,
-               { "Continuity Check", "h248.pkg.annexc.tmsr",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_contcheck_values), 0x0C,
-                       "", HFILL }},
-               
-               { &hf_h248_pkg_annexc_itc,
-               { "ITC", "h248.pkg.annexc.itc",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_itc_values), 0x1f,
-                       "Information Transfer Capability", HFILL }},
-               { &hf_h248_pkg_annexc_transmode,
-               { "TransMode", "h248.pkg.annexc.transmode",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_transmode_values), 0x60,
-                       "Transfer Mode", HFILL }},
-               { &hf_h248_pkg_annexc_transrate,
-               { "TransRate", "h248.pkg.annexc.transrate",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_transrate_values), 0x1f,
-                       "Transfer Rate", HFILL }},
-               { &hf_h248_pkg_annexc_mult,
-               { "Rate Multiplier", "h248.pkg.annexc.mult",
-                       FT_UINT8, BASE_DEC, NULL, 0,
-                       "Rate Multiplier", HFILL }},
-               { &hf_h248_pkg_annexc_syncasync,
-               { "SyncAsync", "h248.pkg.annexc.syncasync",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_syncasync_values), 0x80,
-                       "Syncronous/Asyncronous", HFILL }},
-               { &hf_h248_pkg_annexc_negotiation,
-               { "UPPC", "h248.pkg.annexc.negotiation",
-                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_negotiation_values), 0x40,
-                       "Negotiation", HFILL }},
-               
-               { &hf_h248_pkg_annexc_userrate,
-               { "Userrate", "h248.pkg.annexc.userrate",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_userrate_values), 0x1f,
-                       "User Rate", HFILL }},
-               { &hf_h248_pkg_annexc_intrate,
-               { "UPPC", "h248.pkg.annexc.intrate",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_intrate_values), 0xc0,
-                       "Intermediare Rate", HFILL }},
-               { &hf_h248_pkg_annexc_nictx,
-               { "nictx", "h248.pkg.annexc.nictx",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_nictx_values), 0xc0,
-                       "Intermediare Network indipendent clock in transmission", HFILL }},
-               { &hf_h248_pkg_annexc_nicrx,
-               { "nicrx", "h248.pkg.annexc.nicrx",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_nicrx_values), 0xc0,
-                       "Intermediare Rate", HFILL }},
-               { &hf_h248_pkg_annexc_flowcontrx,
-               { "flowcontrx", "h248.pkg.annexc.flowcontrx",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_flowcontrx_values), 0xc0,
-                       "Flow Control on Reception", HFILL }},
-               { &hf_h248_pkg_annexc_rateadapthdr,
-               { "rateadapthdr", "h248.pkg.annexc.rateadapthdr",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_rateadapthdr_values), 0xc0,
-                       "Rate Adaptation Header/No-Header", HFILL }},
-               { &hf_h248_pkg_annexc_multiframe,
-               { "multiframe", "h248.pkg.annexc.multiframe",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_multiframe_values), 0xc0,
-                       "Multiple Frame establishment support in datalink", HFILL }},
-               { &hf_h248_pkg_annexc_opmode,
-               { "OPMODE", "h248.pkg.annexc.opmode",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_opmode_values), 0xc0,
-                       "Mode of operation", HFILL }},
-               { &hf_h248_pkg_annexc_llidnegot,
-               { "llidnegot", "h248.pkg.annexc.llidnegot",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_llidnegot_values), 0xc0,
-                       "Intermediare Rate", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_assign,
-               { "llidnegot", "h248.pkg.annexc.assign",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_assign_values), 0xc0,
-                       "Assignor/Asignee", HFILL }},
-               { &hf_h248_pkg_annexc_inbandneg,
-               { "inbandneg", "h248.pkg.annexc.inbandneg",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_inbandneg_values), 0xc0,
-                       "In-band/Out-band negotiation", HFILL }},
-               { &hf_h248_pkg_annexc_stopbits,
-               { "stopbits", "h248.pkg.annexc.stopbits",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_stopbits_values), 0xc0,
-                       "Number of stop bits", HFILL }},
-               { &hf_h248_pkg_annexc_databits,
-               { "databits", "h248.pkg.annexc.databits",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_databits_values), 0xc0,
-                       "Number of stop bits", HFILL }},
-               { &hf_h248_pkg_annexc_parity,
-               { "parity", "h248.pkg.annexc.parity",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_parity_values), 0xe0,
-                       "Parity Information Bits", HFILL }},
-               { &hf_h248_pkg_annexc_duplexmode,
-               { "duplexmode", "h248.pkg.annexc.duplexmode",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_duplexmode_values), 0x80,
-                       "Mode Duplex", HFILL }},
-
-               { &hf_h248_pkg_annexc_modem,
-               { "modem", "h248.pkg.annexc.modem",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_modem_values), 0xfc,
-                       "Modem Type", HFILL }},
-               { &hf_h248_pkg_annexc_layer2prot,
-               { "layer2prot", "h248.pkg.annexc.layer2prot",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_layer2prot_values), 0x80,
-                       "Layer 2 protocol", HFILL }},
-               { &hf_h248_pkg_annexc_layer3prot,
-               { "layer3prot", "h248.pkg.annexc.layer3prot",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_layer3prot_values), 0x80,
-                       "Layer 3 protocol", HFILL }},
-               { &hf_h248_pkg_annexc_addlayer3prot,
-               { "addlayer3prot", "h248.pkg.annexc.addlayer3prot",
-                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_addlayer3prot_values), 0x80,
-                       "Additional User Information Layer 3 protocol", HFILL }},
-               { &hf_h248_pkg_annexc_dialedn,
-               { "Dialed Number", "h248.pkg.annexc.dialedn",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Dialed Number", HFILL }},
-               { &hf_h248_pkg_annexc_echoci,
-               { "ECHOCI", "h248.pkg.annexc.echoci",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Not used", HFILL }},
-               { &hf_h248_pkg_annexc_nci,
-               { "NCI", "h248.pkg.annexc.nci",
-                       FT_UINT8, BASE_HEX, NULL, 0xff,
-                       "Nature of Connection Indicator", HFILL }},
-                       
-                       
-               { &hf_h248_pkg_annexc_USI,
-               { "USI", "h248.pkg.annexc.USI",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "User Service Information", HFILL }},
-                       
-
-               { &hf_h248_pkg_annexc_fmsdu,
-               { "fmsdu", "h248.pkg.annexc.fmsdu",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "FMSDU", HFILL }},
-               { &hf_h248_pkg_annexc_bmsdu,
-               { "bmsdu", "h248.pkg.annexc.bmsdu",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "bmsdu", HFILL }},
-               { &hf_h248_pkg_annexc_sscs,
-               { "sscs", "h248.pkg.annexc.sscs",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "sscs", HFILL }},
-                       
-                       
-               { &hf_h248_pkg_annexc_sdp_v,
-               { "sdp_v", "h248.pkg.annexc.sdp_v",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP V", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_o,
-               { "sdp_o", "h248.pkg.annexc.sdp_o",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP O", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_s,
-               { "sdp_s", "h248.pkg.annexc.sdp_s",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP S", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_u,
-               { "sdp_u", "h248.pkg.annexc.sdp_u",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP U", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_e,
-               { "sdp_e", "h248.pkg.annexc.sdp_e",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP E", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_p,
-               { "sdp_p", "h248.pkg.annexc.sdp_p",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP P", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_c,
-               { "sdp_c", "h248.pkg.annexc.sdp_c",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP C", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_b,
-               { "sdp_b", "h248.pkg.annexc.sdp_b",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP B", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_z,
-               { "sdp_z", "h248.pkg.annexc.sdp_z",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP Z", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_k,
-               { "sdp_k", "h248.pkg.annexc.sdp_k",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP K", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_a,
-               { "sdp_a", "h248.pkg.annexc.sdp_a",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP A", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_t,
-               { "sdp_t", "h248.pkg.annexc.sdp_t",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP T", HFILL }},
-               { &hf_h248_pkg_annexc_sdp_r,
-               { "sdp_r", "h248.pkg.annexc.sdp_r",
-                       FT_STRING, BASE_HEX, NULL, 0,
-                       "SDP R", HFILL }},
-                       
-               { &hf_h248_pkg_annexc_olc,
-               { "OLC", "h248.pkg.annexc.olc",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Open Logical Channel", HFILL }},
-               { &hf_h248_pkg_annexc_olcack,
-               { "OLCack", "h248.pkg.annexc.olcack",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Open Logical Channel Acknowledge", HFILL }},
-               { &hf_h248_pkg_annexc_olccnf,
-               { "OLCcnf", "h248.pkg.annexc.olccnf",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Open Logical Channel CNF", HFILL }},
-               { &hf_h248_pkg_annexc_olcrej,
-               { "OLCrej", "h248.pkg.annexc.olcrej",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Open Logical Channel Reject", HFILL }},
-               { &hf_h248_pkg_annexc_clc,
-               { "CLC", "h248.pkg.annexc.clc",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Close Logical Channel", HFILL }},
-               { &hf_h248_pkg_annexc_clcack,
-               { "CLCack", "h248.pkg.annexc.clcack",
-                       FT_BYTES, BASE_HEX, NULL, 0,
-                       "Close Logical Channel Acknowledge", HFILL }},
-               
-       };
-       
-       static gint *ett[] = {
-               &ett_annexc,
-               &ett_vpvc,
-               &ett_codec
-       };
-       
-       proto_h248_pkg_annexc = proto_register_protocol(PNAME, PSNAME, PFNAME);
-       
-       proto_register_field_array(proto_h248_pkg_annexc, hf, array_length(hf));
-       
-       proto_register_subtree_array(ett, array_length(ett));
-       
-       h248_register_package(&h248_annexc_package);
-       
-}
+       NULL\r
+};\r
+\r
+\r
+void proto_register_h248_annex_c(void) {\r
+       static hf_register_info hf[] = {\r
+               { &hf_h248_pkg_annexc_parameters,\r
+                       { "Parameter", "h248.pkg.annexc.parameter", FT_UINT16, BASE_HEX, VALS(h248_annexc_package_properties_vals), 0, "Annex-C Parameter ID", HFILL }},\r
+               { &hf_h248_pkg_annexc_media,\r
+                       { "Media", "h248.pkg.annexc.media", FT_UINT32, BASE_HEX, VALS(h248_annexc_media_vals), 0, "Media Type", HFILL }},\r
+               { &hf_h248_pkg_annexc_ACodec,\r
+               { "ACodec", "h248.pkg.annexc.ACodec",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "ACodec", HFILL }},\r
+               { &hf_h248_pkg_annexc_Mediatx,\r
+               { "Mediatx", "h248.pkg.annexc.Mediatx",\r
+                       FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_Mediatx_vals), 0,\r
+                       "Mediatx", HFILL }},\r
+               { &hf_h248_pkg_annexc_BIR,\r
+               { "BIR", "h248.pkg.annexc.BIR",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "BIR", HFILL }},\r
+               { &hf_h248_pkg_annexc_NSAP,\r
+               { "NSAP", "h248.pkg.annexc.NSAP",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "NSAP", HFILL }},\r
+               { &hf_h248_pkg_annexc_transmission_mode,\r
+               { "Transmission Mode", "h248.pkg.annexc.transmission_mode",\r
+                       FT_UINT32, BASE_DEC, VALS(h248_annexc_transmission_mode), 0,\r
+                       "Transmission Mode", HFILL }},\r
+               { &hf_h248_pkg_annexc_num_of_channels,\r
+               { "Number of Channels", "h248.pkg.annexc.num_of_channels",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Number of Channels", HFILL }},\r
+               { &hf_h248_pkg_annexc_sampling_rate,\r
+               { "Sampling Rate", "h248.pkg.annexc.sampling_rate",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Sampling Rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_bit_rate,\r
+               { "Bit Rate", "h248.pkg.annexc.bit_rate",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Bit Rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_samplepp,\r
+               { "Samplepp", "h248.pkg.annexc.samplepp",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Samplepp", HFILL }},\r
+               { &hf_h248_pkg_annexc_silence_supp,\r
+               { "SilenceSupp", "h248.pkg.annexc.silence_supp",\r
+                       FT_BOOLEAN, BASE_NONE, NULL, 0,\r
+                       "Silence Suppression", HFILL }},\r
+               { &hf_h248_pkg_annexc_encrypt_type,\r
+               { "Encrypttype", "h248.pkg.annexc.encrypt_type",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "Encryption Type", HFILL }},\r
+               { &hf_h248_pkg_annexc_gain,\r
+               { "Gain", "h248.pkg.annexc.gain",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Gain (dB)", HFILL }},\r
+               { &hf_h248_pkg_annexc_jitterbuf,\r
+               { "JitterBuff", "h248.pkg.annexc.jitterbuf",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Jitter Buffer Size (ms)", HFILL }},\r
+               { &hf_h248_pkg_annexc_propdelay,\r
+               { "Propagation Delay", "h248.pkg.annexc.encrypt_type",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Propagation Delay (ms)", HFILL }},\r
+               { &hf_h248_pkg_annexc_rtp_payload,\r
+               { "RTP Payload type", "h248.pkg.annexc.rtp_payload",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Payload type in RTP Profile", HFILL }},\r
+               { &hf_h248_pkg_annexc_h222,\r
+               { "H222LogicalChannelParameters", "h248.pkg.annexc.h222",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "H222LogicalChannelParameters", HFILL }},\r
+               { &hf_h248_pkg_annexc_h223,\r
+               { "H223LogicalChannelParameters", "h248.pkg.annexc.h223",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "H223LogicalChannelParameters", HFILL }},\r
+               { &hf_h248_pkg_annexc_v76,\r
+               { "V76LogicalChannelParameters", "h248.pkg.annexc.v76",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "V76LogicalChannelParameters", HFILL }},\r
+               { &hf_h248_pkg_annexc_h2250,\r
+               { "H2250LogicalChannelParameters", "h248.pkg.annexc.h2250",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "H2250LogicalChannelParameters", HFILL }},\r
+               { &hf_h248_pkg_annexc_aesa,\r
+               { "AESA", "h248.pkg.annexc.aesa",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "ATM End System Address", HFILL }},\r
+               { &hf_h248_pkg_annexc_vp,\r
+               { "VPI", "h248.pkg.annexc.vpi",\r
+                       FT_UINT16, BASE_DEC, NULL, 0,\r
+                       "Virtual Path Identifier", HFILL }},\r
+               { &hf_h248_pkg_annexc_vc,\r
+               { "VCI", "h248.pkg.annexc.vci",\r
+                       FT_UINT16, BASE_DEC, NULL, 0,\r
+                       "Virtual Circuit Identifier", HFILL }},\r
+               { &hf_h248_pkg_annexc_sc,\r
+               { "Service Class", "h248.pkg.annexc.sc",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Service Class", HFILL }},\r
+               { &hf_h248_pkg_annexc_bcob,\r
+               { "BCOB", "h248.pkg.annexc.bcob",\r
+                       FT_UINT8, BASE_DEC, NULL, 0x1F,\r
+                       "Broadband Bearer Class", HFILL }},\r
+               { &hf_h248_pkg_annexc_bbtc,\r
+               { "BBTC", "h248.pkg.annexc.bbtc",\r
+                       FT_UINT8, BASE_DEC, NULL, 0x3F,\r
+                       "Broadband Transfer Capability", HFILL }},\r
+               { &hf_h248_pkg_annexc_atc,\r
+               { "ATC", "h248.pkg.annexc.atc",\r
+                       FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_atc_values), 0x0,\r
+                       "ATM Traffic Capability", HFILL }},\r
+               { &hf_h248_pkg_annexc_stc,\r
+               { "STC", "h248.pkg.annexc.stc",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_stc_values), 0x03,\r
+                       "Susceptibility to Clipping", HFILL }},\r
+               { &hf_h248_pkg_annexc_uppc,\r
+               { "UPPC", "h248.pkg.annexc.uppc",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_uppc_values), 0x03,\r
+                       "User Plane Connection Configuration", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_pcr0,\r
+               { "PCR0", "h248.pkg.annexc.pcr0",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Peak Cell Rate for CLP=0", HFILL }},\r
+               { &hf_h248_pkg_annexc_scr0,\r
+               { "SCR0", "h248.pkg.annexc.scr0",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Sustained Cell Rate for CLP=0", HFILL }},\r
+               { &hf_h248_pkg_annexc_mbs0,\r
+               { "MBS0", "h248.pkg.annexc.mbs0",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Maximum Burst Size for CLP=0", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_pcr1,\r
+               { "PCR1", "h248.pkg.annexc.pcr1",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Peak Cell Rate for CLP=1", HFILL }},\r
+               { &hf_h248_pkg_annexc_scr1,\r
+               { "SCR1", "h248.pkg.annexc.scr1",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Sustained Cell Rate for CLP=1", HFILL }},\r
+               { &hf_h248_pkg_annexc_mbs1,\r
+               { "MBS1", "h248.pkg.annexc.mbs1",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Maximum Burst Size for CLP=1", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_bei,\r
+               { "BEI", "h248.pkg.annexc.bei",\r
+                       FT_BOOLEAN, BASE_NONE, NULL, 0,\r
+                       "Best Effort Indicator", HFILL }},\r
+               { &hf_h248_pkg_annexc_ti,\r
+               { "TI", "h248.pkg.annexc.ti",\r
+                       FT_BOOLEAN, BASE_NONE, NULL, 0,\r
+                       "Tagging Indicator", HFILL }},\r
+               { &hf_h248_pkg_annexc_fd,\r
+               { "FD", "h248.pkg.annexc.fd",\r
+                       FT_BOOLEAN, BASE_NONE, NULL, 0,\r
+                       "Frame Discard", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_a2pcdv,\r
+               { "A2PCDV", "h248.pkg.annexc.a2pcdv",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Acceptable 2 point CDV", HFILL }},\r
+               { &hf_h248_pkg_annexc_c2pcdv,\r
+               { "C2PCDV", "h248.pkg.annexc.c2pcdv",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Cummulative 2 point CDV", HFILL }},\r
+               { &hf_h248_pkg_annexc_appcdv,\r
+               { "APPCDV", "h248.pkg.annexc.appcdv",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Acceptable Point to Point CDV", HFILL }},\r
+               { &hf_h248_pkg_annexc_cppcdv,\r
+               { "CPPCDV", "h248.pkg.annexc.cppcdv",\r
+                       FT_UINT24, BASE_DEC, NULL, 0,\r
+                       "Cummulative Point to Point CDV", HFILL }},\r
+               { &hf_h248_pkg_annexc_aclr,\r
+               { "ACLR", "h248.pkg.annexc.aclr",\r
+                       FT_UINT8, BASE_DEC, NULL, 0,\r
+                       "Acceptable Cell Loss Ratio (Q.2965.2 ATMF UNI 4.0)", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_meetd,\r
+               { "MEETD", "h248.pkg.annexc.meetd",\r
+                       FT_UINT16, BASE_DEC, NULL, 0,\r
+                       "Maximum End-to-End Transit Delay (Q.2965.2 ATMF UNI 4.0)", HFILL }},\r
+               { &hf_h248_pkg_annexc_ceetd,\r
+               { "CEETD", "h248.pkg.annexc.ceetd",\r
+                       FT_UINT16, BASE_DEC, NULL, 0,\r
+                       "Cummulative End-to-End Transit Delay (Q.2965.2 ATMF UNI 4.0)", HFILL }},\r
+               { &hf_h248_pkg_annexc_QosClass,\r
+               { "QosClass", "h248.pkg.annexc.qosclass",\r
+                       FT_UINT16, BASE_DEC, VALS(h248_pkg_annexc_QosClass_values), 0,\r
+                       "QoS Class (Q.2965.1)", HFILL }},\r
+               { &hf_h248_pkg_annexc_AALtype,\r
+               { "AALtype", "h248.pkg.annexc.aaltype",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_AALtype_values), 0,\r
+                       "AAL Type", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_dlci,\r
+               { "DLCI", "h248.pkg.annexc.dlci",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Data Link Connection ID (FR)", HFILL }},\r
+               { &hf_h248_pkg_annexc_cid,\r
+               { "CID", "h248.pkg.annexc.cid",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Channel-Id", HFILL }},\r
+               { &hf_h248_pkg_annexc_sid,\r
+               { "SID", "h248.pkg.annexc.sid",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Silence Insertion Descriptor", HFILL }},\r
+               { &hf_h248_pkg_annexc_ppt,\r
+               { "PPT", "h248.pkg.annexc.ppt",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Primary Payload Type", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_ipv4,\r
+               { "IPv4", "h248.pkg.annexc.ipv4",\r
+                       FT_IPv4, BASE_NONE, NULL, 0,\r
+                       "IPv4 Address", HFILL }},\r
+               { &hf_h248_pkg_annexc_ipv6,\r
+               { "IPv6", "h248.pkg.annexc.ipv6",\r
+                       FT_IPv6, BASE_NONE, NULL, 0,\r
+                       "IPv6 Address", HFILL }},\r
+               { &hf_h248_pkg_annexc_port,\r
+               { "Port", "h248.pkg.annexc.port",\r
+                       FT_UINT16, BASE_DEC, NULL, 0,\r
+                       "Port", HFILL }},\r
+               { &hf_h248_pkg_annexc_porttype,\r
+               { "PortType", "h248.pkg.annexc.porttype",\r
+                       FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_porttype_values), 0,\r
+                       "Port Type", HFILL }},\r
+                                       \r
+               { &hf_h248_pkg_annexc_alc,\r
+               { "ALC", "h248.pkg.annexc.alc",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "AAL2 Link Characteristics", HFILL }},\r
+               { &hf_h248_pkg_annexc_sut,\r
+               { "SUT", "h248.pkg.annexc.sut",\r
+                       FT_BYTES, BASE_NONE, NULL, 0,\r
+                       "Served User Transport", HFILL }},\r
+               { &hf_h248_pkg_annexc_tci,\r
+               { "TCI", "h248.pkg.annexc.tci",\r
+                       FT_BOOLEAN, BASE_DEC, NULL, 0,\r
+                       "Test Connection Indicator", HFILL }},\r
+               { &hf_h248_pkg_annexc_timer_cu,\r
+               { "Timer CU", "h248.pkg.annexc.timer_cu",\r
+                       FT_UINT32, BASE_DEC, NULL, 0,\r
+                       "Milliseconds to hold the  patially filled cell before sending", HFILL }},\r
+               { &hf_h248_pkg_annexc_maxcpssdu,\r
+               { "Max CPS SDU", "h248.pkg.annexc.maxcpssdu",\r
+                       FT_UINT8, BASE_DEC, NULL, 0,\r
+                       "Maximum Common Part Sublayer Service Data Unit size", HFILL }},\r
+\r
+               { &hf_h248_pkg_annexc_aal1st,\r
+               { "AAL1ST", "h248.pkg.annexc.aal1st",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_aal1st_values), 0,\r
+                       "AAL1 subtype", HFILL }},\r
+               { &hf_h248_pkg_annexc_cbrr,\r
+               { "CBRR", "h248.pkg.annexc.cbrr",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_cbrr_values), 0,\r
+                       "CBR rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_scri,\r
+               { "SCRI", "h248.pkg.annexc.scri",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_scri_values), 0,\r
+                       "Source Clock frequency Recovery method", HFILL }},\r
+               { &hf_h248_pkg_annexc_ecm,\r
+               { "ECM", "h248.pkg.annexc.ecm",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_ecm_values), 0,\r
+                       "Error Correction Method", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdbt,\r
+               { "SDBT", "h248.pkg.annexc.sdbt",\r
+                       FT_UINT16, BASE_DEC, NULL, 0,\r
+                       "Structured Data Transfer Blocksize", HFILL }},\r
+               { &hf_h248_pkg_annexc_pfci,\r
+               { "PFCI", "h248.pkg.annexc.pfci",\r
+                       FT_UINT8, BASE_DEC, NULL, 0,\r
+                       "Partially Filled Cells Identifier", HFILL }},\r
+\r
+               { &hf_h248_pkg_annexc_tmr,\r
+               { "TMR", "h248.pkg.annexc.tmr",\r
+                       FT_UINT8, BASE_HEX, VALS(isup_transmission_medium_requirement_value), 0,\r
+                       "Transmission Medium Requirement", HFILL }},\r
+               { &hf_h248_pkg_annexc_tmrsr,\r
+               { "TMSR", "h248.pkg.annexc.tmsr",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_tmrsr_values), 0,\r
+                       "Transmission Medium Requirement Subrate", HFILL }},\r
+               { &hf_h248_pkg_annexc_contcheck,\r
+               { "Continuity Check", "h248.pkg.annexc.tmsr",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_contcheck_values), 0x0C,\r
+                       "", HFILL }},\r
+               \r
+               { &hf_h248_pkg_annexc_itc,\r
+               { "ITC", "h248.pkg.annexc.itc",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_itc_values), 0x1f,\r
+                       "Information Transfer Capability", HFILL }},\r
+               { &hf_h248_pkg_annexc_transmode,\r
+               { "TransMode", "h248.pkg.annexc.transmode",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_transmode_values), 0x60,\r
+                       "Transfer Mode", HFILL }},\r
+               { &hf_h248_pkg_annexc_transrate,\r
+               { "TransRate", "h248.pkg.annexc.transrate",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_transrate_values), 0x1f,\r
+                       "Transfer Rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_mult,\r
+               { "Rate Multiplier", "h248.pkg.annexc.mult",\r
+                       FT_UINT8, BASE_DEC, NULL, 0,\r
+                       "Rate Multiplier", HFILL }},\r
+               { &hf_h248_pkg_annexc_syncasync,\r
+               { "SyncAsync", "h248.pkg.annexc.syncasync",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_syncasync_values), 0x80,\r
+                       "Syncronous/Asyncronous", HFILL }},\r
+               { &hf_h248_pkg_annexc_negotiation,\r
+               { "UPPC", "h248.pkg.annexc.negotiation",\r
+                       FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_negotiation_values), 0x40,\r
+                       "Negotiation", HFILL }},\r
+               \r
+               { &hf_h248_pkg_annexc_userrate,\r
+               { "Userrate", "h248.pkg.annexc.userrate",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_userrate_values), 0x1f,\r
+                       "User Rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_intrate,\r
+               { "UPPC", "h248.pkg.annexc.intrate",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_intrate_values), 0xc0,\r
+                       "Intermediare Rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_nictx,\r
+               { "nictx", "h248.pkg.annexc.nictx",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_nictx_values), 0xc0,\r
+                       "Intermediare Network indipendent clock in transmission", HFILL }},\r
+               { &hf_h248_pkg_annexc_nicrx,\r
+               { "nicrx", "h248.pkg.annexc.nicrx",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_nicrx_values), 0xc0,\r
+                       "Intermediare Rate", HFILL }},\r
+               { &hf_h248_pkg_annexc_flowcontrx,\r
+               { "flowcontrx", "h248.pkg.annexc.flowcontrx",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_flowcontrx_values), 0xc0,\r
+                       "Flow Control on Reception", HFILL }},\r
+               { &hf_h248_pkg_annexc_rateadapthdr,\r
+               { "rateadapthdr", "h248.pkg.annexc.rateadapthdr",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_rateadapthdr_values), 0xc0,\r
+                       "Rate Adaptation Header/No-Header", HFILL }},\r
+               { &hf_h248_pkg_annexc_multiframe,\r
+               { "multiframe", "h248.pkg.annexc.multiframe",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_multiframe_values), 0xc0,\r
+                       "Multiple Frame establishment support in datalink", HFILL }},\r
+               { &hf_h248_pkg_annexc_opmode,\r
+               { "OPMODE", "h248.pkg.annexc.opmode",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_opmode_values), 0xc0,\r
+                       "Mode of operation", HFILL }},\r
+               { &hf_h248_pkg_annexc_llidnegot,\r
+               { "llidnegot", "h248.pkg.annexc.llidnegot",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_llidnegot_values), 0xc0,\r
+                       "Intermediare Rate", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_assign,\r
+               { "llidnegot", "h248.pkg.annexc.assign",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_assign_values), 0xc0,\r
+                       "Assignor/Asignee", HFILL }},\r
+               { &hf_h248_pkg_annexc_inbandneg,\r
+               { "inbandneg", "h248.pkg.annexc.inbandneg",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_inbandneg_values), 0xc0,\r
+                       "In-band/Out-band negotiation", HFILL }},\r
+               { &hf_h248_pkg_annexc_stopbits,\r
+               { "stopbits", "h248.pkg.annexc.stopbits",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_stopbits_values), 0xc0,\r
+                       "Number of stop bits", HFILL }},\r
+               { &hf_h248_pkg_annexc_databits,\r
+               { "databits", "h248.pkg.annexc.databits",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_databits_values), 0xc0,\r
+                       "Number of stop bits", HFILL }},\r
+               { &hf_h248_pkg_annexc_parity,\r
+               { "parity", "h248.pkg.annexc.parity",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_parity_values), 0xe0,\r
+                       "Parity Information Bits", HFILL }},\r
+               { &hf_h248_pkg_annexc_duplexmode,\r
+               { "duplexmode", "h248.pkg.annexc.duplexmode",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_duplexmode_values), 0x80,\r
+                       "Mode Duplex", HFILL }},\r
+\r
+               { &hf_h248_pkg_annexc_modem,\r
+               { "modem", "h248.pkg.annexc.modem",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_modem_values), 0xfc,\r
+                       "Modem Type", HFILL }},\r
+               { &hf_h248_pkg_annexc_layer2prot,\r
+               { "layer2prot", "h248.pkg.annexc.layer2prot",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_layer2prot_values), 0x80,\r
+                       "Layer 2 protocol", HFILL }},\r
+               { &hf_h248_pkg_annexc_layer3prot,\r
+               { "layer3prot", "h248.pkg.annexc.layer3prot",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_layer3prot_values), 0x80,\r
+                       "Layer 3 protocol", HFILL }},\r
+               { &hf_h248_pkg_annexc_addlayer3prot,\r
+               { "addlayer3prot", "h248.pkg.annexc.addlayer3prot",\r
+                       FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_addlayer3prot_values), 0x80,\r
+                       "Additional User Information Layer 3 protocol", HFILL }},\r
+               { &hf_h248_pkg_annexc_dialedn,\r
+               { "Dialed Number", "h248.pkg.annexc.dialedn",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Dialed Number", HFILL }},\r
+               { &hf_h248_pkg_annexc_echoci,\r
+               { "ECHOCI", "h248.pkg.annexc.echoci",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Not used", HFILL }},\r
+               { &hf_h248_pkg_annexc_nci,\r
+               { "NCI", "h248.pkg.annexc.nci",\r
+                       FT_UINT8, BASE_HEX, NULL, 0xff,\r
+                       "Nature of Connection Indicator", HFILL }},\r
+                       \r
+                       \r
+               { &hf_h248_pkg_annexc_USI,\r
+               { "USI", "h248.pkg.annexc.USI",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "User Service Information", HFILL }},\r
+                       \r
+\r
+               { &hf_h248_pkg_annexc_fmsdu,\r
+               { "fmsdu", "h248.pkg.annexc.fmsdu",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "FMSDU", HFILL }},\r
+               { &hf_h248_pkg_annexc_bmsdu,\r
+               { "bmsdu", "h248.pkg.annexc.bmsdu",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "bmsdu", HFILL }},\r
+               { &hf_h248_pkg_annexc_sscs,\r
+               { "sscs", "h248.pkg.annexc.sscs",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "sscs", HFILL }},\r
+                       \r
+                       \r
+               { &hf_h248_pkg_annexc_sdp_v,\r
+               { "sdp_v", "h248.pkg.annexc.sdp_v",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP V", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_o,\r
+               { "sdp_o", "h248.pkg.annexc.sdp_o",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP O", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_s,\r
+               { "sdp_s", "h248.pkg.annexc.sdp_s",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP S", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_u,\r
+               { "sdp_u", "h248.pkg.annexc.sdp_u",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP U", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_e,\r
+               { "sdp_e", "h248.pkg.annexc.sdp_e",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP E", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_p,\r
+               { "sdp_p", "h248.pkg.annexc.sdp_p",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP P", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_c,\r
+               { "sdp_c", "h248.pkg.annexc.sdp_c",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP C", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_b,\r
+               { "sdp_b", "h248.pkg.annexc.sdp_b",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP B", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_z,\r
+               { "sdp_z", "h248.pkg.annexc.sdp_z",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP Z", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_k,\r
+               { "sdp_k", "h248.pkg.annexc.sdp_k",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP K", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_a,\r
+               { "sdp_a", "h248.pkg.annexc.sdp_a",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP A", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_t,\r
+               { "sdp_t", "h248.pkg.annexc.sdp_t",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP T", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_r,\r
+               { "sdp_r", "h248.pkg.annexc.sdp_r",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP R", HFILL }},\r
+               { &hf_h248_pkg_annexc_sdp_m,\r
+               { "sdp_m", "h248.pkg.annexc.sdp_m",\r
+                       FT_STRING, BASE_HEX, NULL, 0,\r
+                       "SDP M", HFILL }},\r
+                       \r
+               { &hf_h248_pkg_annexc_olc,\r
+               { "OLC", "h248.pkg.annexc.olc",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Open Logical Channel", HFILL }},\r
+               { &hf_h248_pkg_annexc_olcack,\r
+               { "OLCack", "h248.pkg.annexc.olcack",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Open Logical Channel Acknowledge", HFILL }},\r
+               { &hf_h248_pkg_annexc_olccnf,\r
+               { "OLCcnf", "h248.pkg.annexc.olccnf",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Open Logical Channel CNF", HFILL }},\r
+               { &hf_h248_pkg_annexc_olcrej,\r
+               { "OLCrej", "h248.pkg.annexc.olcrej",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Open Logical Channel Reject", HFILL }},\r
+               { &hf_h248_pkg_annexc_clc,\r
+               { "CLC", "h248.pkg.annexc.clc",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Close Logical Channel", HFILL }},\r
+               { &hf_h248_pkg_annexc_clcack,\r
+               { "CLCack", "h248.pkg.annexc.clcack",\r
+                       FT_BYTES, BASE_HEX, NULL, 0,\r
+                       "Close Logical Channel Acknowledge", HFILL }},\r
+               \r
+       };\r
+       \r
+       static gint *ett[] = {\r
+               &ett_annexc,\r
+               &ett_vpvc,\r
+               &ett_codec\r
+       };\r
+       \r
+       proto_h248_pkg_annexc = proto_register_protocol(PNAME, PSNAME, PFNAME);\r
+       \r
+       proto_register_field_array(proto_h248_pkg_annexc, hf, array_length(hf));\r
+       \r
+       proto_register_subtree_array(ett, array_length(ett));\r
+       \r
+       h248_register_package(&h248_annexc_package);\r
+       \r
+}\r
index 663c92062fd0d47069d123543ffaeef919840e54..ef040e02319987d8a63d3ebd2bcfea4fb7385a11 100644 (file)
@@ -54,6 +54,7 @@ static h248_pkg_param_t h248_pkg_generic_cause_evt_params[] = {
 
 static h248_pkg_evt_t h248_pkg_generic_cause_evts[] = {
        { 0x0001, &hf_h248_pkg_generic_cause_evt, &ett_h248_pkg_generic_cause_evt, h248_pkg_generic_cause_evt_params},
+       { 0, NULL, NULL, NULL}\r
 };
 
 
@@ -136,6 +137,91 @@ static int hf_h248_pkg_tonedet_evt_std = -1;
 static int hf_h248_pkg_tonedet_evt_etd = -1;
 static int hf_h248_pkg_tonedet_evt_ltd = -1;
 */
+\r
+/* H.248.1 E.9 Analog Line Supervision Package */\r
+static int hf_h248_pkg_al = -1;\r
+static int hf_h248_pkg_al_param = -1;\r
+static int hf_h248_pkg_al_evt_onhook = -1;\r
+static int hf_h248_pkg_al_evt_offhook = -1;\r
+static int hf_h248_pkg_al_evt_flashhook = -1;\r
+static int hf_h248_pkg_al_evt_onhook_par_strict = -1;\r
+static int hf_h248_pkg_al_evt_onhook_par_init = -1;\r
+static int hf_h248_pkg_al_evt_flashhook_par_mindur = -1;\r
+\r
+static gint ett_h248_pkg_al = -1;\r
+static gint ett_h248_pkg_al_evt_onhook = -1;\r
+static gint ett_h248_pkg_al_evt_offhook = -1;\r
+static gint ett_h248_pkg_al_evt_flashhook = -1;\r
+\r
+/* Events defenitions */\r
+static const value_string h248_pkg_al_evt_onhook_strict_vals[] = {\r
+       { 0, "exact"},\r
+       { 1, "state"},\r
+       { 2, "failWrong"},\r
+       { 0, NULL }\r
+};\r
+\r
+static const true_false_string h248_pkg_al_evt_onhook_par_init_vals = {\r
+       "already off-hook",\r
+       "actual state transition to off-hook"\r
+};\r
+\r
+static h248_pkg_param_t  h248_pkg_al_evt_onhook_params[] = {\r
+       { 0x0001, &hf_h248_pkg_al_evt_onhook_par_strict, h248_param_ber_integer, NULL },\r
+       { 0x0002, &hf_h248_pkg_al_evt_onhook_par_init, h248_param_ber_boolean, NULL },\r
+       { 0, NULL, NULL, NULL}\r
+};\r
+\r
+static h248_pkg_param_t  h248_pkg_al_evt_flashhook_params[] = {\r
+       { 0x0001, &hf_h248_pkg_al_evt_flashhook_par_mindur, h248_param_ber_integer, NULL },\r
+       { 0, NULL, NULL, NULL}\r
+};\r
+\r
+static h248_pkg_evt_t h248_pkg_al_evts[] = {\r
+       { 0x0004, &hf_h248_pkg_al_evt_onhook, &ett_h248_pkg_al_evt_onhook, h248_pkg_al_evt_onhook_params },\r
+       { 0x0005, &hf_h248_pkg_al_evt_offhook, &ett_h248_pkg_al_evt_offhook, h248_pkg_al_evt_onhook_params },\r
+\r
+       { 0x0006, &hf_h248_pkg_al_evt_flashhook, &ett_h248_pkg_al_evt_flashhook, h248_pkg_al_evt_flashhook_params },\r
+\r
+       { 0, NULL, NULL, NULL}\r
+};\r
+\r
+/* Packet defenitions */\r
+\r
+static h248_package_t h248_pkg_al = {\r
+       0x0009,\r
+       &hf_h248_pkg_al,\r
+       &hf_h248_pkg_al_param,\r
+       &ett_h248_pkg_al,\r
+       NULL,                                           /* Properties */\r
+       NULL,                                           /* signals */\r
+       h248_pkg_al_evts,                       /* events */\r
+       NULL                                            /* statistics */\r
+};\r
+\r
+/* H.248.1 E.12 RTP package */\r
+static int hf_h248_pkg_rtp = -1;\r
+static int hf_h248_pkg_rtp_param = -1;\r
+static int hf_h248_pkg_rtp_stat_ps = -1;\r
+\r
+static int ett_h248_pkg_rtp = -1;\r
+\r
+static h248_pkg_stat_t h248_pkg_rtp_stat[] = {\r
+       { 0x0004, &hf_h248_pkg_rtp_stat_ps, h248_param_ber_integer, NULL },\r
+       { 0, NULL, NULL, NULL}\r
+};\r
+\r
+/* Packet defenitions */\r
+static h248_package_t h248_pkg_rtp = {\r
+       0x000c,\r
+       &hf_h248_pkg_rtp,\r
+       &hf_h248_pkg_rtp_param,\r
+       &ett_h248_pkg_rtp,\r
+       NULL,                                           /* Properties */\r
+       NULL,                                           /* signals */\r
+       NULL,                                           /* events */\r
+       h248_pkg_rtp_stat                       /* statistics */\r
+};\r
 
 /* H.248.1 E.13 TDM Circuit Package */
 static int hf_h248_pkg_tdmc = -1;
@@ -154,6 +240,7 @@ static const true_false_string h248_tdmc_ec_vals = {
 static h248_pkg_param_t h248_pkg_tdmc_props[] = {
        { 0x0008, &hf_h248_pkg_tdmc_ec, h248_param_ber_boolean, NULL },
        { 0x000a, &hf_h248_pkg_tdmc_gain, h248_param_ber_integer, NULL },
+       { 0, NULL, NULL, NULL}\r
 };
 
 static h248_package_t h248_pkg_tdmc = {
@@ -161,22 +248,34 @@ static h248_package_t h248_pkg_tdmc = {
        &hf_h248_pkg_tdmc,
        &hf_h248_pkg_tdmc_param,
        &ett_h248_pkg_tdmc,
-       h248_pkg_tdmc_props,
-       NULL,
-       NULL,\r
-       NULL\r
+       h248_pkg_tdmc_props,            /* Properties */
+       NULL,                                           /* signals */
+       NULL,                                           /* events */\r
+       NULL                                            /* statistics */\r
 };
 
 
 
 void proto_register_h248_annex_e(void) {
-       static hf_register_info hf[] = {
+       static hf_register_info hf[] = {\r
+               /* H.248.1 E.1  Generic Package */
                { &hf_h248_pkg_generic, { "Generic Package", "h248.pkg.generic", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
                { &hf_h248_pkg_generic_cause_evt, { "Cause Event", "h248.pkg.generic.cause", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
                { &hf_h248_pkg_generic_cause_gencause, { "Generic Cause", "h248.pkg.generic.cause.gencause", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, 
                { &hf_h248_pkg_generic_cause_failurecause, { "Generic Cause", "h248.pkg.generic.cause.failurecause", FT_STRING, BASE_HEX, NULL, 0, "", HFILL }},
-               
-               { &hf_h248_pkg_tdmc_ec, { "Echo Cancellation", "h248.pkg.tdmc.ec", FT_BOOLEAN, 8, TFS(&h248_tdmc_ec_vals), 0, "Echo Cancellation", HFILL }},
+               /* H.248.1 E.9 Analog Line Supervision Package */\r
+               { &hf_h248_pkg_al, { "Analog Line Supervision Package", "h248.pkg.al", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},\r
+               { &hf_h248_pkg_al_evt_onhook, { "onhook", "h248.pkg.al.onhook", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},\r
+               { &hf_h248_pkg_al_evt_offhook, { "offhook", "h248.pkg.al.offhook", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},\r
+               { &hf_h248_pkg_al_evt_flashhook, { "flashhook", "h248.pkg.al.flashhook", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},\r
+               { &hf_h248_pkg_al_evt_onhook_par_strict, { "strict", "h248.pkg.al.ev.onhook.strict", FT_UINT8, BASE_DEC, VALS(h248_pkg_al_evt_onhook_strict_vals), 0, "", HFILL }},\r
+               { &hf_h248_pkg_al_evt_flashhook_par_mindur, { "Minimum duration in ms", "h248.pkg.al.ev.flashhook.mindur", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},\r
+               /* H.248.1 E.12 RTP package */\r
+               { &hf_h248_pkg_rtp, { "RTP package", "h248.pkg.rtp", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},\r
+               { &hf_h248_pkg_rtp_stat_ps, { "Packets Sent", "h248.pkg.rtp.stat.ps", FT_UINT64, BASE_DEC, NULL, 0, "Packets Sent", HFILL }},\r
+               /* H.248.1 E.13 TDM Circuit Package */
+               { &hf_h248_pkg_tdmc, { "TDM Circuit Package", "h248.pkg.tdmc", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},\r
+               { &hf_h248_pkg_tdmc_ec, { "Echo Cancellation", "h248.pkg.tdmc.ec", FT_BOOLEAN, 8, TFS(&h248_tdmc_ec_vals), 0, "Echo Cancellation", HFILL }},\r
                { &hf_h248_pkg_tdmc_gain, { "Gain", "h248.pkg.tdmc.gain", FT_UINT32, BASE_HEX, NULL, 0, "Gain", HFILL }},
        };
        
@@ -184,7 +283,10 @@ void proto_register_h248_annex_e(void) {
                &ett_h248_pkg_generic_cause_evt,
                &ett_h248_pkg_generic,
 
-               
+               &ett_h248_pkg_al,\r
+               &ett_h248_pkg_al_evt_onhook,\r
+               \r
+               &ett_h248_pkg_rtp,
                &ett_tdmc
        };
 
@@ -195,7 +297,9 @@ void proto_register_h248_annex_e(void) {
        proto_register_subtree_array(ett, array_length(ett));
        
        h248_register_package(&h248_pkg_generic);
-       h248_register_package(&h248_pkg_tdmc);
+       h248_register_package(&h248_pkg_al);\r
+       h248_register_package(&h248_pkg_rtp);\r
+       h248_register_package(&h248_pkg_tdmc);\r
 }
 
 void proto_reg_handoff_h248_annex_e(void) {
index d5c0e965f07504f0717614d7a89d49d868870858..904ca9416537b0932dc0068aa5027860d6608c33 100644 (file)
@@ -2859,14 +2859,15 @@ static const value_string BAT_ASE_Report_Reason_vals[] = {
        { 0x02, "BICC data with unrecognized information element, discarded"},
        { 0,    NULL }
 };
-
+/* This routine should bve called with offset at Organization_Identifier not the lengh indicator
+ * because of use from other disectors.
+ */
 extern int dissect_codec_mode(proto_tree *tree, tvbuff_t *tvb, int offset, int len) {
        guint8 tempdata;
        proto_tree *scs_item, *acs_item;
        proto_tree *scs_tree, *acs_tree;
        
        
-       offset = offset + 1;
        tempdata = tvb_get_guint8(tvb, offset);
        proto_tree_add_uint(tree, hf_Organization_Identifier , tvb, offset, 1, tempdata );
        switch ( tempdata ){
@@ -2980,7 +2981,7 @@ guint8 compatibility_info;
        proto_tree_add_boolean(bat_ase_element_tree, hf_Send_notification_ind_for_pass_on_not_possible , parameter_tvb, offset, 1, compatibility_info );
        proto_tree_add_boolean(bat_ase_element_tree, hf_isup_extension_ind , parameter_tvb, offset, 1, compatibility_info );
 
-       offset = dissect_codec_mode(bat_ase_element_tree, parameter_tvb, offset,length_indicator-1);
+       offset = dissect_codec_mode(bat_ase_element_tree, parameter_tvb, offset+1,length_indicator-1);
 return offset;
 }