diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-10-17 10:25:21 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-10-17 10:25:21 +0000 |
commit | 286f231eb9237bd800aa339aff2413f147300552 (patch) | |
tree | dc35a85051ba45f75c10bf12071155666b5d1f96 /asn1/h225/h225.cnf | |
parent | 5fa636334baa7c78115a6626f140c6c386725197 (diff) |
new H.323 dissector
- Generic Extensible Framework helper
- Annex M1 (QSIG over H.323)
- Annex M4
- Annex R
H.225/H.245 support for Generic Extensible Framework (GEF)
H.235 register MIKEY into new H.225/H.245 GEF tables
regenerate H.225,H.245,H.235,H.450,H.450-ROS,T.35 from new makefiles
svn path=/trunk/; revision=23216
Diffstat (limited to 'asn1/h225/h225.cnf')
-rw-r--r-- | asn1/h225/h225.cnf | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/asn1/h225/h225.cnf b/asn1/h225/h225.cnf index 146f7b5742..0f59a08ea3 100644 --- a/asn1/h225/h225.cnf +++ b/asn1/h225/h225.cnf @@ -620,6 +620,75 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode } #.END +#=== Generic Extensible Framework ======================================================= + +#.FN_HDR GenericData + void *priv_data = actx->private_data; + gef_ctx_t *gefx; + + /* check if not inherited from FeatureDescriptor */ + gefx = gef_ctx_get(actx->private_data); + if (!gefx) { + gefx = gef_ctx_alloc(NULL, "GenericData"); + actx->private_data = gefx; + } +#.FN_FTR + actx->private_data = priv_data; +#.END + +#.FN_HDR GenericData/parameters/_item + gef_ctx_t *parent_gefx; + + parent_gefx = gef_ctx_get(actx->private_data); + actx->private_data = gef_ctx_alloc(parent_gefx, NULL); +#.FN_FTR + actx->private_data = parent_gefx; +#.END + +#---------------------------------------------------------------------------------------- +#.FN_HDR FeatureDescriptor + void *priv_data = actx->private_data; + actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor"); +#.FN_FTR + actx->private_data = priv_data; +#.END +#---------------------------------------------------------------------------------------- + +#.FN_HDR GenericIdentifier + gef_ctx_t *gefx; +#.FN_FTR + gef_ctx_update_key(gef_ctx_get(actx->private_data)); + /* DEBUG */ /*proto_tree_add_text(tree, tvb, offset>>3, 0, "*** DEBUG GenericIdentifier: %s", gef_ctx_get(actx->private_data)->key);*/ + gefx = gef_ctx_get(actx->private_data); + if (gefx) { + /* DEBUG */ /*proto_tree_add_text(tree, tvb, offset>>3, 0, "*** DEBUG dissector_try_string: %s", gefx->key);*/ + actx->pinfo->private_data = actx; + dissector_try_string(gef_name_dissector_table, gefx->key, tvb_new_subset(tvb, offset>>3, 0, 0), actx->pinfo, tree); + } + actx->private_data = gefx; /* subdissector could overwrite it */ +#.END + +#.FN_BODY GenericIdentifier/standard VAL_PTR = &value_int + gint32 value_int = -1; + gef_ctx_t *gefx; + +%(DEFAULT_BODY)s + gefx = gef_ctx_get(actx->private_data); + if (gefx) gefx->id = ep_strdup_printf("%%d", value_int); +#.END + +#.FN_BODY GenericIdentifier/oid FN_VARIANT = _str VAL_PTR = &oid_str + const gchar *oid_str = NULL; + gef_ctx_t *gefx; + +%(DEFAULT_BODY)s + gefx = gef_ctx_get(actx->private_data); + if (gefx) gefx->id = oid_str; +#.END + + +#=== end of GEF ========================================================================= + #.TYPE_ATTR H221NonStandard/t35CountryCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(T35CountryCode_vals) TransportAddress/ipAddress/ip TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL |