diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-09-19 08:06:25 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-09-19 08:06:25 +0000 |
commit | eba5b5b225c0c307bb20285b2bcd5a7fda64650f (patch) | |
tree | c5b7e28079e4bbe3240542d7a86977e4758b9231 /asn1/h248 | |
parent | ee8d53adf5c00841618722e01480bde653454bfc (diff) |
sometimes it seems that we have the text based h248/megaco running ontop of
m3ua and not the binary one.
make the binary dissector check if it is really the text based one to be used and if so
call that dissector instead.
svn path=/trunk/; revision=15862
Diffstat (limited to 'asn1/h248')
-rw-r--r-- | asn1/h248/packet-h248-template.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/asn1/h248/packet-h248-template.c b/asn1/h248/packet-h248-template.c index cfec0b3d0d..59a319ab35 100644 --- a/asn1/h248/packet-h248-template.c +++ b/asn1/h248/packet-h248-template.c @@ -713,6 +713,22 @@ dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *h248_item; proto_tree *h248_tree = NULL; + /* Check if it is actually a text based h248 encoding, which we call + megaco in ehtereal. + */ + if(tvb_length(tvb)>=6){ + if(!tvb_strneql(tvb, 0, "MEGACO", 6)){ + static dissector_handle_t megaco_handle=NULL; + if(!megaco_handle){ + megaco_handle = find_dissector("megaco"); + } + if(megaco_handle){ + call_dissector(megaco_handle, tvb, pinfo, tree); + return; + } + } + } + /* Make entry in the Protocol column on summary display */ if (check_col(pinfo->cinfo, COL_PROTOCOL)) col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.248"); |