aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtp.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2006-01-29 00:40:40 +0000
committerGuy Harris <guy@alum.mit.edu>2006-01-29 00:40:40 +0000
commitf9eaba6d69948dd1a71a973b98c2ea6636f15a91 (patch)
tree9b055bbc752c83cf45fea8dc3f6ae50d55bd101b /epan/dissectors/packet-rtp.c
parentb0a28a80800ad7bca85dcb271bbd4952fb043a64 (diff)
Add an option to dissect purported RTP packets with a version number of
0 as T.38 rather than STUN. svn path=/trunk/; revision=17116
Diffstat (limited to 'epan/dissectors/packet-rtp.c')
-rw-r--r--epan/dissectors/packet-rtp.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 66eeea0c0f..6549f49bbd 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -71,6 +71,7 @@
static dissector_handle_t rtp_handle;
static dissector_handle_t stun_handle;
+static dissector_handle_t t38_handle;
static int rtp_tap = -1;
@@ -112,10 +113,12 @@ static gint ett_rtp_setup = -1;
#define RTP0_INVALID 0
#define RTP0_STUN 1
+#define RTP0_T38 2
static enum_val_t rtp_version0_types[] = {
{ "invalid", "Invalid RTP packets", RTP0_INVALID },
{ "stun", "STUN packets", RTP0_STUN },
+ { "t38", "T.38 packets", RTP0_T38 },
{ NULL, NULL, 0 }
};
static guint global_rtp_version0_type = 0;
@@ -337,6 +340,10 @@ dissect_rtp_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
call_dissector(stun_handle, tvb, pinfo, tree);
return TRUE;
+ case RTP0_T38:
+ call_dissector(t38_handle, tvb, pinfo, tree);
+ return TRUE;
+
case RTP0_INVALID:
default:
return FALSE; /* Unknown or unsupported version */
@@ -438,6 +445,10 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
call_dissector(stun_handle, tvb, pinfo, tree);
return;
+ case RTP0_T38:
+ call_dissector(t38_handle, tvb, pinfo, tree);
+ return;
+
case RTP0_INVALID:
default:
; /* Unknown or unsupported version (let it fall through */
@@ -1092,6 +1103,7 @@ proto_reg_handoff_rtp(void)
{
data_handle = find_dissector("data");
stun_handle = find_dissector("stun");
+ t38_handle = find_dissector("t38");
/*
* Register this dissector as one that can be selected by a
* UDP port number.