aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/h245
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2006-01-16 06:05:25 +0000
committerAnders Broman <anders.broman@ericsson.com>2006-01-16 06:05:25 +0000
commitc5e0d27e84ce413917c4440f55da3c7cbbbd986a (patch)
tree365fd65df5cfeedcb66e44611d2ac2c638e42661 /asn1/h245
parentd9b0082c9125693dcebb4698ca2206cb5e91bbe2 (diff)
From Alejandro Vaquero:
patch to add t38 setup info for h245 packets. - Me add /y to makefiles. svn path=/trunk/; revision=17036
Diffstat (limited to 'asn1/h245')
-rw-r--r--asn1/h245/Makefile.nmake4
-rw-r--r--asn1/h245/h245.cnf99
-rw-r--r--asn1/h245/packet-h245-template.c3
3 files changed, 68 insertions, 38 deletions
diff --git a/asn1/h245/Makefile.nmake b/asn1/h245/Makefile.nmake
index 70c9516ea4..400f472d6c 100644
--- a/asn1/h245/Makefile.nmake
+++ b/asn1/h245/Makefile.nmake
@@ -37,6 +37,6 @@ fix_eol: generate_dissector
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
- xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d
- xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d
+ xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
+ xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y
diff --git a/asn1/h245/h245.cnf b/asn1/h245/h245.cnf
index 14ca9a9610..48ece0c3e6 100644
--- a/asn1/h245/h245.cnf
+++ b/asn1/h245/h245.cnf
@@ -576,25 +576,38 @@ OpenLogicalChannel
#----------------------------------------------------------------------------------------
#.FN_FTR OpenLogicalChannelAck/forwardMultiplexAckParameters
- if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
- address src_addr;
-
- src_addr.type=AT_IPv4;
- src_addr.len=4;
- src_addr.data=(guint8*)&ipv4_address;
-
- rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, NULL);
- }
- if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){
- address src_addr;
-
- src_addr.type=AT_IPv4;
- src_addr.len=4;
- src_addr.data=(guint8*)&rtcp_ipv4_address;
-
- rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num);
+ if (!pinfo->fd->flags.visited) {
+ if (codec_type && strcmp(codec_type, "t38fax")==0) {
+ if(ipv4_address!=0 && ipv4_port!=0 && t38_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(guint8*)&ipv4_address;
+
+ t38_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num);
+ }
+ } else {
+ if(ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(guint8*)&ipv4_address;
+
+ rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, NULL);
+ }
+ if(rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(guint8*)&rtcp_ipv4_address;
+
+ rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num);
+ }
+ }
}
-
#.END
#----------------------------------------------------------------------------------------
#.FN_HDR OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters
@@ -606,25 +619,39 @@ OpenLogicalChannel
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters
- if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
- address src_addr;
-
- src_addr.type=AT_IPv4;
- src_addr.len=4;
- src_addr.data=(guint8*)&ipv4_address;
-
- rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, NULL);
- }
- if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){
- address src_addr;
-
- src_addr.type=AT_IPv4;
- src_addr.len=4;
- src_addr.data=(guint8*)&rtcp_ipv4_address;
-
- rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num);
+
+ if (!pinfo->fd->flags.visited) {
+ if (codec_type && (strcmp(codec_type, "t38fax")==0)) {
+ if(ipv4_address!=0 && ipv4_port!=0 && t38_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(guint8*)&ipv4_address;
+
+ t38_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num);
+ }
+ } else {
+ if(ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(guint8*)&ipv4_address;
+
+ rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, NULL);
+ }
+ if(rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(guint8*)&rtcp_ipv4_address;
+
+ rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num);
+ }
+ }
}
-
#.END
#--- NonStandardParameter ---------------------------------------------------------------
diff --git a/asn1/h245/packet-h245-template.c b/asn1/h245/packet-h245-template.c
index c8f29afe94..14e932dc9e 100644
--- a/asn1/h245/packet-h245-template.c
+++ b/asn1/h245/packet-h245-template.c
@@ -52,6 +52,7 @@
#include <epan/emem.h>
#include "packet-rtp.h"
#include "packet-rtcp.h"
+#include "packet-t38.h"
#include "packet-ber.h"
#include <epan/emem.h>
@@ -61,6 +62,7 @@
static dissector_handle_t rtp_handle=NULL;
static dissector_handle_t rtcp_handle=NULL;
+static dissector_handle_t t38_handle=NULL;
static dissector_table_t nsp_object_dissector_table;
static dissector_table_t nsp_h221_dissector_table;
static dissector_handle_t nsp_handle;
@@ -403,6 +405,7 @@ void proto_register_h245(void) {
void proto_reg_handoff_h245(void) {
rtp_handle = find_dissector("rtp");
rtcp_handle = find_dissector("rtcp");
+ t38_handle = find_dissector("t38");
data_handle = find_dissector("data");
h263_handle = find_dissector("h263data");
amr_handle = find_dissector("amr_if2");