* packet-h248-annex_c.c
* H.248 annex C
*
- * (c) 2006, Luis E. Garcia Ontanon <luis.ontanon@gmail.com>
+ * (c) 2006, Luis E. Garcia Ontanon <luis@ontanon.org>
*
* $Id$
*
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "packet-h248.h"
#define PNAME "H.248 Annex C"
#define PSNAME "H248C"
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[] = {
+static const value_string h248_annexc_package_properties_vals[] = {
{ 0x1001, "media" },
{ 0x1002, "transmission mode" },
{ 0x1003, "num_of_channels" },
{ 0x4018, "ceetd" },
{ 0x4019, "QosClass" },
{ 0x401a, "AALtype" },
-
+
{ 0x5001, "DLCI" },
{ 0x5002, "CID" },
{ 0x5003, "SID/Noiselevel" },
{ 0xB007, "SDP_P (phone number)" },
{ 0xB008, "SDP_C (connection)" },
{ 0xB009, "SDP_B (bandwidth info)" },
- { 0xB00A, "SDP_Z (TZ adjustement)" },
+ { 0xB00A, "SDP_Z (TZ adjustment)" },
{ 0xB00B, "SDP_K (encryption key)" },
{ 0xB00C, "SDP_A (Session attributes)" },
{ 0xB00D, "SDP_T (Active Session Time)" },
{ 0xC004, "OLCrej" },
{ 0xC005, "CLC" },
{ 0xC006, "CLCack" },
-
+
{ 0, NULL }
};
{0,NULL}
};
-static const value_string h248_pkg_annexc_sc[] = {
+static const value_string h248_pkg_annexc_sc[] _U_ = {
{0,"CBR"},
{1,"nrt-VBR1"},
{2,"nrt-VBR2"},
};
static const value_string h248_pkg_annexc_syncasync_values[] = {
- {0, "Syncronous Data"},
- {1, "Asyncronous Data"},
+ {0, "Synchronous Data"},
+ {1, "Asynchronous Data"},
{0,NULL}
};
{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)"},
{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_assign_values[] = {
- {0,"Originatior is default asignee"},
- {1,"Originatior is asignor only"},
+ {0,"Originator is default assignee"},
+ {1,"Originator is assignor only"},
{0,NULL}
};
{0x03,"National Use"},
{0x04,"National Use"},
{0x05,"National Use"},
-
+
{0x11,"V.21"},
{0x12,"V.22"},
{0x13,"V.22bis"},
{0x1B,"V.29"},
{0x1D,"V.32"},
{0x1E,"V.34"},
-
+
{0x20,"National Use"},
{0x21,"National Use"},
{0x22,"National Use"},
{0x2d,"National Use"},
{0x2e,"National Use"},
{0x2f,"National Use"},
-
+
{0x30,"User Specified"},
{0x31,"User Specified"},
{0x32,"User Specified"},
{0x3d,"User Specified"},
{0x3e,"User Specified"},
{0x3f,"User Specified"},
-
+
{0,NULL}
};
{0,NULL}
};
-static const value_string h248_pkg_annexc_nci_satelite_values[] = {
- {0x0,"no satelite circuit"},
+static const value_string h248_pkg_annexc_nci_satellite_values[] _U_ = {
+ {0x0,"no satellite circuit"},
{0x1,"one satellite circuit"},
- {0x2,"two satelite circiuts"},
+ {0x2,"two satellite circuits"},
{0x3,"spare"},
{0,NULL}
};
-static const value_string h248_pkg_annexc_nci_continuity_values[] = {
+static const value_string h248_pkg_annexc_nci_continuity_values[] _U_ = {
{0x0,"continuity check not required"},
{0x1,"continuity check required on this circuit"},
{0x2,"continuity check performed on a previous circuit"},
{0,NULL}
};
-static const value_string h248_pkg_annexc_nci_echoctl_values[] = {
+static const value_string h248_pkg_annexc_nci_echoctl_values[] _U_ = {
{0x0,"outgoing echo control device not included"},
{0x1,"outgoing echo control device included"},
{0,NULL}
static const value_string h248_pkg_annexc_aal1st_values[] = {
{0x0,"null"},
- {0x1,"voiceband signall transport on 64kbps"},
+ {0x1,"voiceband signal transport on 64kbps"},
{0x2,"circuit transport"},
{0x4,"high quality audio signal transport"},
{0x5,"video signal transport"},
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);
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
+
+ tree = proto_item_add_subtree(asn1_ctx.created_item,ett_codec);
len = tvb_length(new_tvb);
dissect_codec_mode(tree,new_tvb,0,len);
}
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);
-
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, 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)));
}
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);
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
if (new_tvb) {
- dissect_nsap(new_tvb, 0,tvb_length_remaining(new_tvb, 0), tree);
+ dissect_nsap(new_tvb, 0,tvb_length(new_tvb), 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_item* pi = proto_tree_add_item(tree,hfid,tvb,0,2,ENC_BIG_ENDIAN);
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);
+ proto_tree_add_item(pt,hf_h248_pkg_annexc_vp,tvb,0,2,ENC_BIG_ENDIAN);
+ proto_tree_add_item(pt,hf_h248_pkg_annexc_vc,tvb,2,2,ENC_BIG_ENDIAN);
}
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);
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_octet_string(implicit_p ? *((gboolean*)implicit_p) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, &new_tvb);
if (new_tvb)
- dissect_q931_bearer_capability_ie(new_tvb, 0, 3, tree);
+ dissect_q931_bearer_capability_ie(new_tvb, 0, tvb_length(new_tvb), tree);
+}
+
+static void dissect_h248_annexc_SDP(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* h248_info _U_, void* implicit_p _U_) {
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_ber_restricted_string( FALSE, BER_UNI_TAG_IA5String,
+ &asn1_ctx, tree, tvb, 0, hfid,
+ NULL);
}
gboolean h248_c_implicit = TRUE;
{ 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_ber_octetstring, NULL },
{ 0x4002, &hf_h248_pkg_annexc_vp, dissect_h248_annexc_vpvc, NULL },
{ 0x4003, &hf_h248_pkg_annexc_sc, 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_ber_octetstring, NULL },
{ 0x6002, &hf_h248_pkg_annexc_ipv6, h248_param_ber_octetstring,NULL },
{ 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_ber_octetstring, NULL },
{ 0x7002, &hf_h248_pkg_annexc_alc, h248_param_ber_octetstring,NULL }, /* from ALCAP */
- { 0x7003, &hf_h248_pkg_annexc_sscs, h248_param_ber_octetstring, NULL },
- { 0x7004, &hf_h248_pkg_annexc_sut, h248_param_ber_octetstring, NULL },
- { 0x7005, &hf_h248_pkg_annexc_tci, h248_param_ber_boolean, NULL },
- { 0x7006, &hf_h248_pkg_annexc_timer_cu, h248_param_ber_octetstring, NULL },
- { 0x7007, &hf_h248_pkg_annexc_maxcpssdu, h248_param_ber_integer, NULL },
- { 0x7008, &hf_h248_pkg_annexc_cid, h248_param_ber_integer, NULL },
-
+ { 0x7003, &hf_h248_pkg_annexc_sscs, h248_param_ber_octetstring, NULL },
+ { 0x7004, &hf_h248_pkg_annexc_sut, h248_param_ber_octetstring, NULL },
+ { 0x7005, &hf_h248_pkg_annexc_tci, h248_param_ber_boolean, NULL },
+ { 0x7006, &hf_h248_pkg_annexc_timer_cu, h248_param_ber_octetstring, NULL },
+ { 0x7007, &hf_h248_pkg_annexc_maxcpssdu, h248_param_ber_integer, NULL },
+ { 0x7008, &hf_h248_pkg_annexc_cid, h248_param_ber_integer, NULL },
+
{ 0x8001, &hf_h248_pkg_annexc_aal1st, h248_param_ber_integer, NULL },
{ 0x8002, &hf_h248_pkg_annexc_cbrr, h248_param_ber_integer, NULL },
- { 0x8003, &hf_h248_pkg_annexc_scri, h248_param_ber_integer, NULL },
- { 0x8004, &hf_h248_pkg_annexc_ecm, h248_param_ber_integer, NULL },
- { 0x8005, &hf_h248_pkg_annexc_sdbt, h248_param_ber_octetstring,NULL },
- { 0x8006, &hf_h248_pkg_annexc_pfci, h248_param_ber_integer, NULL },
+ { 0x8003, &hf_h248_pkg_annexc_scri, h248_param_ber_integer, NULL },
+ { 0x8004, &hf_h248_pkg_annexc_ecm, h248_param_ber_integer, NULL },
+ { 0x8005, &hf_h248_pkg_annexc_sdbt, h248_param_ber_octetstring,NULL },
+ { 0x8006, &hf_h248_pkg_annexc_pfci, h248_param_ber_integer, NULL },
{ 0x9001, &hf_h248_pkg_annexc_tmr, h248_param_ber_integer, NULL },
{ 0x9002, &hf_h248_pkg_annexc_tmrsr, h248_param_ber_integer, NULL },
{ 0x9021, &hf_h248_pkg_annexc_echoci, h248_param_ber_integer, NULL },
{ 0x9022, &hf_h248_pkg_annexc_nci, h248_param_ber_integer, NULL },
{ 0x9023, &hf_h248_pkg_annexc_USI, dissect_h248_annexc_USI, NULL },
-
+
{ 0xA001, &hf_h248_pkg_annexc_fmsdu, h248_param_ber_octetstring, NULL },
{ 0xA002, &hf_h248_pkg_annexc_bmsdu, h248_param_ber_octetstring, NULL },
{ 0xA003, &hf_h248_pkg_annexc_sscs, NULL, NULL },
- { 0xB001, &hf_h248_pkg_annexc_sdp_v, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB002, &hf_h248_pkg_annexc_sdp_o, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB003, &hf_h248_pkg_annexc_sdp_s, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB004, &hf_h248_pkg_annexc_sdp_i, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB005, &hf_h248_pkg_annexc_sdp_u, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB006, &hf_h248_pkg_annexc_sdp_e, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB007, &hf_h248_pkg_annexc_sdp_p, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB008, &hf_h248_pkg_annexc_sdp_c, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB009, &hf_h248_pkg_annexc_sdp_b, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB00a, &hf_h248_pkg_annexc_sdp_z, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB00b, &hf_h248_pkg_annexc_sdp_k, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB00c, &hf_h248_pkg_annexc_sdp_a, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB00d, &hf_h248_pkg_annexc_sdp_t, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB00e, &hf_h248_pkg_annexc_sdp_r, h248_param_ber_octetstring, &h248_c_implicit },
- { 0xB00f, &hf_h248_pkg_annexc_sdp_m, h248_param_ber_octetstring, &h248_c_implicit },
-
+ { 0xB001, &hf_h248_pkg_annexc_sdp_v, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB002, &hf_h248_pkg_annexc_sdp_o, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB003, &hf_h248_pkg_annexc_sdp_s, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB004, &hf_h248_pkg_annexc_sdp_i, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB005, &hf_h248_pkg_annexc_sdp_u, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB006, &hf_h248_pkg_annexc_sdp_e, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB007, &hf_h248_pkg_annexc_sdp_p, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB008, &hf_h248_pkg_annexc_sdp_c, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB009, &hf_h248_pkg_annexc_sdp_b, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB00a, &hf_h248_pkg_annexc_sdp_z, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB00b, &hf_h248_pkg_annexc_sdp_k, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB00c, &hf_h248_pkg_annexc_sdp_a, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB00d, &hf_h248_pkg_annexc_sdp_t, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB00e, &hf_h248_pkg_annexc_sdp_r, dissect_h248_annexc_SDP, &h248_c_implicit },
+ { 0xB00f, &hf_h248_pkg_annexc_sdp_m, dissect_h248_annexc_SDP, &h248_c_implicit },
+
{ 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 }
};
{ "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 }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_Mediatx,
{ "Mediatx", "h248.pkg.annexc.Mediatx",
FT_UINT32, BASE_DEC, VALS(h248_pkg_annexc_Mediatx_vals), 0,
- "Mediatx", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_BIR,
{ "BIR", "h248.pkg.annexc.BIR",
- FT_BYTES, BASE_HEX, NULL, 0,
- "BIR", HFILL }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_NSAP,
{ "NSAP", "h248.pkg.annexc.NSAP",
- FT_BYTES, BASE_HEX, NULL, 0,
- "NSAP", HFILL }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, 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 }},
+ NULL, 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 }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_sampling_rate,
{ "Sampling Rate", "h248.pkg.annexc.sampling_rate",
FT_UINT32, BASE_DEC, NULL, 0,
- "Sampling Rate", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_bit_rate,
{ "Bit Rate", "h248.pkg.annexc.bit_rate",
FT_UINT32, BASE_DEC, NULL, 0,
- "Bit Rate", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_samplepp,
{ "Samplepp", "h248.pkg.annexc.samplepp",
FT_UINT32, BASE_DEC, NULL, 0,
- "Samplepp", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_silence_supp,
{ "SilenceSupp", "h248.pkg.annexc.silence_supp",
- FT_BOOLEAN, BASE_NONE, NULL, 0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"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_encrypt_key,
+ { "Encrypt Key", "h248.pkg.annexc.encrypt_key",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Encryption Key", HFILL }},
{ &hf_h248_pkg_annexc_gain,
{ "Gain", "h248.pkg.annexc.gain",
FT_UINT32, BASE_DEC, NULL, 0,
{ &hf_h248_pkg_annexc_h222,
{ "H222LogicalChannelParameters", "h248.pkg.annexc.h222",
FT_BYTES, BASE_NONE, NULL, 0,
- "H222LogicalChannelParameters", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_h223,
{ "H223LogicalChannelParameters", "h248.pkg.annexc.h223",
FT_BYTES, BASE_NONE, NULL, 0,
- "H223LogicalChannelParameters", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_v76,
{ "V76LogicalChannelParameters", "h248.pkg.annexc.v76",
FT_BYTES, BASE_NONE, NULL, 0,
- "V76LogicalChannelParameters", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_h2250,
{ "H2250LogicalChannelParameters", "h248.pkg.annexc.h2250",
FT_BYTES, BASE_NONE, NULL, 0,
- "H2250LogicalChannelParameters", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_aesa,
{ "AESA", "h248.pkg.annexc.aesa",
FT_BYTES, BASE_NONE, NULL, 0,
{ &hf_h248_pkg_annexc_sc,
{ "Service Class", "h248.pkg.annexc.sc",
FT_UINT32, BASE_DEC, NULL, 0,
- "Service Class", HFILL }},
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_bcob,
{ "BCOB", "h248.pkg.annexc.bcob",
FT_UINT8, BASE_DEC, NULL, 0x1F,
{ "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,
{ "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,
{ "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,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"Best Effort Indicator", HFILL }},
{ &hf_h248_pkg_annexc_ti,
{ "TI", "h248.pkg.annexc.ti",
- FT_BOOLEAN, BASE_NONE, NULL, 0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"Tagging Indicator", HFILL }},
{ &hf_h248_pkg_annexc_fd,
{ "FD", "h248.pkg.annexc.fd",
- FT_BOOLEAN, BASE_NONE, NULL, 0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"Frame Discard", HFILL }},
-
+
{ &hf_h248_pkg_annexc_a2pcdv,
{ "A2PCDV", "h248.pkg.annexc.a2pcdv",
FT_UINT24, BASE_DEC, NULL, 0,
{ &hf_h248_pkg_annexc_c2pcdv,
{ "C2PCDV", "h248.pkg.annexc.c2pcdv",
FT_UINT24, BASE_DEC, NULL, 0,
- "Cummulative 2 point CDV", HFILL }},
+ "Cumulative 2 point CDV", HFILL }},
{ &hf_h248_pkg_annexc_appcdv,
{ "APPCDV", "h248.pkg.annexc.appcdv",
FT_UINT24, BASE_DEC, NULL, 0,
{ &hf_h248_pkg_annexc_cppcdv,
{ "CPPCDV", "h248.pkg.annexc.cppcdv",
FT_UINT24, BASE_DEC, NULL, 0,
- "Cummulative Point to Point CDV", HFILL }},
+ "Cumulative 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,
{ &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 }},
+ "Cumulative 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,
{ "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,
{ "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,
{ &hf_h248_pkg_annexc_port,
{ "Port", "h248.pkg.annexc.port",
FT_UINT16, BASE_DEC, NULL, 0,
- "Port", HFILL }},
+ NULL, 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,
"Served User Transport", HFILL }},
{ &hf_h248_pkg_annexc_tci,
{ "TCI", "h248.pkg.annexc.tci",
- FT_BOOLEAN, BASE_DEC, NULL, 0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"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 }},
+ "Milliseconds to hold the partially filled cell before sending", HFILL }},
{ &hf_h248_pkg_annexc_maxcpssdu,
{ "Max CPS SDU", "h248.pkg.annexc.maxcpssdu",
FT_UINT8, BASE_DEC, NULL, 0,
{ &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 }},
+ "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,
{ &hf_h248_pkg_annexc_tmr,
{ "TMR", "h248.pkg.annexc.tmr",
- FT_UINT8, BASE_HEX, VALS(isup_transmission_medium_requirement_value), 0,
+ FT_UINT8, BASE_HEX|BASE_EXT_STRING, &isup_transmission_medium_requirement_value_ext, 0,
"Transmission Medium Requirement", HFILL }},
{ &hf_h248_pkg_annexc_tmrsr,
{ "TMSR", "h248.pkg.annexc.tmsr",
{ &hf_h248_pkg_annexc_contcheck,
{ "Continuity Check", "h248.pkg.annexc.tmsr",
FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_contcheck_values), 0x0C,
- "", HFILL }},
-
+ NULL, HFILL }},
+
{ &hf_h248_pkg_annexc_itc,
{ "ITC", "h248.pkg.annexc.itc",
FT_UINT8, BASE_DEC, VALS(h248_pkg_annexc_itc_values), 0x1f,
{ &hf_h248_pkg_annexc_mult,
{ "Rate Multiplier", "h248.pkg.annexc.mult",
FT_UINT8, BASE_DEC, NULL, 0,
- "Rate Multiplier", HFILL }},
+ NULL, 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 }},
+ "Synchronous/Asynchronous", 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,
{ &hf_h248_pkg_annexc_intrate,
{ "UPPC", "h248.pkg.annexc.intrate",
FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_intrate_values), 0xc0,
- "Intermediare Rate", HFILL }},
+ "Intermediate 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 }},
+ "Network independent clock on 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 }},
+ "Network independent clock on reception", HFILL }},
+ { &hf_h248_pkg_annexc_flowconttx,
+ { "flowconttx", "h248.pkg.annexc.flowconttx",
+ FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_flowconttx_values), 0xc0,
+ "Flow Control on Transmission", HFILL }},
{ &hf_h248_pkg_annexc_flowcontrx,
{ "flowcontrx", "h248.pkg.annexc.flowcontrx",
FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_flowcontrx_values), 0xc0,
{ &hf_h248_pkg_annexc_llidnegot,
{ "llidnegot", "h248.pkg.annexc.llidnegot",
FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_llidnegot_values), 0xc0,
- "Intermediare Rate", HFILL }},
-
+ "Logical Link Identifier negotiation", 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 }},
+ "Assignor/Assignee", HFILL }},
{ &hf_h248_pkg_annexc_inbandneg,
{ "inbandneg", "h248.pkg.annexc.inbandneg",
FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_inbandneg_values), 0xc0,
{ &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 }},
+ "Number of data bits", HFILL }},
{ &hf_h248_pkg_annexc_parity,
{ "parity", "h248.pkg.annexc.parity",
FT_UINT8, BASE_HEX, VALS(h248_pkg_annexc_parity_values), 0xe0,
"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 }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_h248_pkg_annexc_dialingn,
+ { "Dialing Number", "h248.pkg.annexc.dialingn",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_echoci,
{ "ECHOCI", "h248.pkg.annexc.echoci",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_BYTES, BASE_NONE, 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,
+ FT_BYTES, BASE_NONE, NULL, 0,
"User Service Information", HFILL }},
-
+
{ &hf_h248_pkg_annexc_fmsdu,
{ "fmsdu", "h248.pkg.annexc.fmsdu",
- FT_BYTES, BASE_HEX, NULL, 0,
- "FMSDU", HFILL }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_bmsdu,
{ "bmsdu", "h248.pkg.annexc.bmsdu",
- FT_BYTES, BASE_HEX, NULL, 0,
- "bmsdu", HFILL }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_h248_pkg_annexc_sscs,
{ "sscs", "h248.pkg.annexc.sscs",
- FT_BYTES, BASE_HEX, NULL, 0,
- "sscs", HFILL }},
-
-
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+
{ &hf_h248_pkg_annexc_sdp_v,
{ "sdp_v", "h248.pkg.annexc.sdp_v",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP V", HFILL }},
{ &hf_h248_pkg_annexc_sdp_o,
{ "sdp_o", "h248.pkg.annexc.sdp_o",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP O", HFILL }},
{ &hf_h248_pkg_annexc_sdp_s,
{ "sdp_s", "h248.pkg.annexc.sdp_s",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP S", HFILL }},
+ { &hf_h248_pkg_annexc_sdp_i,
+ { "sdp_i", "h248.pkg.annexc.sdp_i",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SDP I", HFILL }},
{ &hf_h248_pkg_annexc_sdp_u,
{ "sdp_u", "h248.pkg.annexc.sdp_u",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP U", HFILL }},
{ &hf_h248_pkg_annexc_sdp_e,
{ "sdp_e", "h248.pkg.annexc.sdp_e",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP E", HFILL }},
{ &hf_h248_pkg_annexc_sdp_p,
{ "sdp_p", "h248.pkg.annexc.sdp_p",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP P", HFILL }},
{ &hf_h248_pkg_annexc_sdp_c,
{ "sdp_c", "h248.pkg.annexc.sdp_c",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP C", HFILL }},
{ &hf_h248_pkg_annexc_sdp_b,
{ "sdp_b", "h248.pkg.annexc.sdp_b",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP B", HFILL }},
{ &hf_h248_pkg_annexc_sdp_z,
{ "sdp_z", "h248.pkg.annexc.sdp_z",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP Z", HFILL }},
{ &hf_h248_pkg_annexc_sdp_k,
{ "sdp_k", "h248.pkg.annexc.sdp_k",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP K", HFILL }},
{ &hf_h248_pkg_annexc_sdp_a,
{ "sdp_a", "h248.pkg.annexc.sdp_a",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP A", HFILL }},
{ &hf_h248_pkg_annexc_sdp_t,
{ "sdp_t", "h248.pkg.annexc.sdp_t",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP T", HFILL }},
{ &hf_h248_pkg_annexc_sdp_r,
{ "sdp_r", "h248.pkg.annexc.sdp_r",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP R", HFILL }},
{ &hf_h248_pkg_annexc_sdp_m,
{ "sdp_m", "h248.pkg.annexc.sdp_m",
- FT_STRING, BASE_HEX, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"SDP M", HFILL }},
-
+
{ &hf_h248_pkg_annexc_olc,
{ "OLC", "h248.pkg.annexc.olc",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_BYTES, BASE_NONE, NULL, 0,
"Open Logical Channel", HFILL }},
{ &hf_h248_pkg_annexc_olcack,
{ "OLCack", "h248.pkg.annexc.olcack",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_BYTES, BASE_NONE, NULL, 0,
"Open Logical Channel Acknowledge", HFILL }},
{ &hf_h248_pkg_annexc_olccnf,
{ "OLCcnf", "h248.pkg.annexc.olccnf",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_BYTES, BASE_NONE, NULL, 0,
"Open Logical Channel CNF", HFILL }},
{ &hf_h248_pkg_annexc_olcrej,
{ "OLCrej", "h248.pkg.annexc.olcrej",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_BYTES, BASE_NONE, NULL, 0,
"Open Logical Channel Reject", HFILL }},
{ &hf_h248_pkg_annexc_clc,
{ "CLC", "h248.pkg.annexc.clc",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_BYTES, BASE_NONE, 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 }},
-
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, 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);
-
+
}