diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-10-06 19:48:00 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-10-06 19:48:00 +0000 |
commit | 1a76d131bbd401daaea6811d785589ccd12bd707 (patch) | |
tree | 40c06b94c5c1903b3860fa5c1ed54146011b52f1 /epan/dissectors/packet-h248_annex_e.c | |
parent | f11ae60022c64a693aaf4e1961253fa223e2afdd (diff) |
Add a few packages and fix dissecton of a_codecs and handle the case when
hf_param = -1.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@19445 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-h248_annex_e.c')
-rw-r--r-- | epan/dissectors/packet-h248_annex_e.c | 122 |
1 files changed, 113 insertions, 9 deletions
diff --git a/epan/dissectors/packet-h248_annex_e.c b/epan/dissectors/packet-h248_annex_e.c index 663c92062f..ef040e0231 100644 --- a/epan/dissectors/packet-h248_annex_e.c +++ b/epan/dissectors/packet-h248_annex_e.c @@ -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}
}; @@ -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; */ +
+/* H.248.1 E.9 Analog Line Supervision Package */
+static int hf_h248_pkg_al = -1;
+static int hf_h248_pkg_al_param = -1;
+static int hf_h248_pkg_al_evt_onhook = -1;
+static int hf_h248_pkg_al_evt_offhook = -1;
+static int hf_h248_pkg_al_evt_flashhook = -1;
+static int hf_h248_pkg_al_evt_onhook_par_strict = -1;
+static int hf_h248_pkg_al_evt_onhook_par_init = -1;
+static int hf_h248_pkg_al_evt_flashhook_par_mindur = -1;
+
+static gint ett_h248_pkg_al = -1;
+static gint ett_h248_pkg_al_evt_onhook = -1;
+static gint ett_h248_pkg_al_evt_offhook = -1;
+static gint ett_h248_pkg_al_evt_flashhook = -1;
+
+/* Events defenitions */
+static const value_string h248_pkg_al_evt_onhook_strict_vals[] = {
+ { 0, "exact"},
+ { 1, "state"},
+ { 2, "failWrong"},
+ { 0, NULL }
+};
+
+static const true_false_string h248_pkg_al_evt_onhook_par_init_vals = {
+ "already off-hook",
+ "actual state transition to off-hook"
+};
+
+static h248_pkg_param_t h248_pkg_al_evt_onhook_params[] = {
+ { 0x0001, &hf_h248_pkg_al_evt_onhook_par_strict, h248_param_ber_integer, NULL },
+ { 0x0002, &hf_h248_pkg_al_evt_onhook_par_init, h248_param_ber_boolean, NULL },
+ { 0, NULL, NULL, NULL}
+};
+
+static h248_pkg_param_t h248_pkg_al_evt_flashhook_params[] = {
+ { 0x0001, &hf_h248_pkg_al_evt_flashhook_par_mindur, h248_param_ber_integer, NULL },
+ { 0, NULL, NULL, NULL}
+};
+
+static h248_pkg_evt_t h248_pkg_al_evts[] = {
+ { 0x0004, &hf_h248_pkg_al_evt_onhook, &ett_h248_pkg_al_evt_onhook, h248_pkg_al_evt_onhook_params },
+ { 0x0005, &hf_h248_pkg_al_evt_offhook, &ett_h248_pkg_al_evt_offhook, h248_pkg_al_evt_onhook_params },
+
+ { 0x0006, &hf_h248_pkg_al_evt_flashhook, &ett_h248_pkg_al_evt_flashhook, h248_pkg_al_evt_flashhook_params },
+
+ { 0, NULL, NULL, NULL}
+};
+
+/* Packet defenitions */
+
+static h248_package_t h248_pkg_al = {
+ 0x0009,
+ &hf_h248_pkg_al,
+ &hf_h248_pkg_al_param,
+ &ett_h248_pkg_al,
+ NULL, /* Properties */
+ NULL, /* signals */
+ h248_pkg_al_evts, /* events */
+ NULL /* statistics */
+};
+
+/* H.248.1 E.12 RTP package */
+static int hf_h248_pkg_rtp = -1;
+static int hf_h248_pkg_rtp_param = -1;
+static int hf_h248_pkg_rtp_stat_ps = -1;
+
+static int ett_h248_pkg_rtp = -1;
+
+static h248_pkg_stat_t h248_pkg_rtp_stat[] = {
+ { 0x0004, &hf_h248_pkg_rtp_stat_ps, h248_param_ber_integer, NULL },
+ { 0, NULL, NULL, NULL}
+};
+
+/* Packet defenitions */
+static h248_package_t h248_pkg_rtp = {
+ 0x000c,
+ &hf_h248_pkg_rtp,
+ &hf_h248_pkg_rtp_param,
+ &ett_h248_pkg_rtp,
+ NULL, /* Properties */
+ NULL, /* signals */
+ NULL, /* events */
+ h248_pkg_rtp_stat /* statistics */
+};
/* 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}
}; 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,
- NULL
+ h248_pkg_tdmc_props, /* Properties */ + NULL, /* signals */ + NULL, /* events */
+ NULL /* statistics */
}; void proto_register_h248_annex_e(void) { - static hf_register_info hf[] = { + static hf_register_info hf[] = {
+ /* 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 */
+ { &hf_h248_pkg_al, { "Analog Line Supervision Package", "h248.pkg.al", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
+ { &hf_h248_pkg_al_evt_onhook, { "onhook", "h248.pkg.al.onhook", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
+ { &hf_h248_pkg_al_evt_offhook, { "offhook", "h248.pkg.al.offhook", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
+ { &hf_h248_pkg_al_evt_flashhook, { "flashhook", "h248.pkg.al.flashhook", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
+ { &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 }},
+ { &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 }},
+ /* H.248.1 E.12 RTP package */
+ { &hf_h248_pkg_rtp, { "RTP package", "h248.pkg.rtp", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }},
+ { &hf_h248_pkg_rtp_stat_ps, { "Packets Sent", "h248.pkg.rtp.stat.ps", FT_UINT64, BASE_DEC, NULL, 0, "Packets Sent", HFILL }},
+ /* 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 }},
+ { &hf_h248_pkg_tdmc_ec, { "Echo Cancellation", "h248.pkg.tdmc.ec", FT_BOOLEAN, 8, TFS(&h248_tdmc_ec_vals), 0, "Echo Cancellation", HFILL }},
{ &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,
+ &ett_h248_pkg_al_evt_onhook,
+
+ &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);
+ h248_register_package(&h248_pkg_rtp);
+ h248_register_package(&h248_pkg_tdmc);
} void proto_reg_handoff_h248_annex_e(void) { |