From c5e0d27e84ce413917c4440f55da3c7cbbbd986a Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Mon, 16 Jan 2006 06:05:25 +0000 Subject: From Alejandro Vaquero: patch to add t38 setup info for h245 packets. - Me add /y to makefiles. svn path=/trunk/; revision=17036 --- asn1/h245/Makefile.nmake | 4 +- asn1/h245/h245.cnf | 99 +++++++++++++++++++++++++--------------- asn1/h245/packet-h245-template.c | 3 ++ 3 files changed, 68 insertions(+), 38 deletions(-) (limited to 'asn1/h245') 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 #include "packet-rtp.h" #include "packet-rtcp.h" +#include "packet-t38.h" #include "packet-ber.h" #include @@ -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"); -- cgit v1.2.3