diff options
author | kukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-10-18 13:35:57 +0000 |
---|---|---|
committer | kukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-10-18 13:35:57 +0000 |
commit | 38f90f2527d8df18581bf310043109da84bc2d41 (patch) | |
tree | ab278f89b7cf9026c3776fdc91e63b9f91885207 /asn1/h460 | |
parent | 1df242739c05ba40e84d91f9e63300abae3dcc34 (diff) |
H.460 new dissector implemented (H.460.2-H.460.22)
H.225
- change RysMessage_vals to h225_Rasmessage_vals
- use #.PDU directive for H323-UserInformation and RasMessage instead of implementing it by hands
- register RasMessage_PDU as "h225.ras" dissector for calling it from H.460
asn2wrs make PDUs exportable
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@23226 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'asn1/h460')
-rw-r--r-- | asn1/h460/CALL-PARTY-CATEGORY.asn | 26 | ||||
-rw-r--r-- | asn1/h460/CALL-PRIORITY.asn | 58 | ||||
-rw-r--r-- | asn1/h460/CIRCUIT-STATUS-MAP.asn | 39 | ||||
-rw-r--r-- | asn1/h460/MEDIA-TRAVERSAL.asn | 33 | ||||
-rw-r--r-- | asn1/h460/MESSAGE-BROADCAST.asn | 53 | ||||
-rw-r--r-- | asn1/h460/MLPP.asn | 65 | ||||
-rw-r--r-- | asn1/h460/Makefile.am | 26 | ||||
-rw-r--r-- | asn1/h460/Makefile.common | 69 | ||||
-rw-r--r-- | asn1/h460/Makefile.nmake | 29 | ||||
-rw-r--r-- | asn1/h460/NUMBER-PORTABILITY.asn | 65 | ||||
-rw-r--r-- | asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn | 73 | ||||
-rw-r--r-- | asn1/h460/QOS-MONITORING-REPORT.asn | 102 | ||||
-rw-r--r-- | asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn | 59 | ||||
-rw-r--r-- | asn1/h460/SIGNALLING-TRAVERSAL.asn | 31 | ||||
-rw-r--r-- | asn1/h460/h460.cnf | 61 | ||||
-rw-r--r-- | asn1/h460/packet-h460-template.c | 294 |
16 files changed, 1083 insertions, 0 deletions
diff --git a/asn1/h460/CALL-PARTY-CATEGORY.asn b/asn1/h460/CALL-PARTY-CATEGORY.asn new file mode 100644 index 0000000000..cc69c97aff --- /dev/null +++ b/asn1/h460/CALL-PARTY-CATEGORY.asn @@ -0,0 +1,26 @@ +-- CALL-PARTY-CATEGORY.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.10/2004/CALL-PARTY-CATEGORY.asn +-- + +-- Module CALL-PARTY-CATEGORY (H.460.10:03/2004) +CALL-PARTY-CATEGORY DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +CallPartyCategoryInfo ::= SEQUENCE { + callPartyCategory CallPartyCategory OPTIONAL, + originatingLineInfo OriginatingLineInfo OPTIONAL, + ... +} + +CallPartyCategory ::= INTEGER(0..255) + +OriginatingLineInfo ::= INTEGER(0..255) + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/CALL-PRIORITY.asn b/asn1/h460/CALL-PRIORITY.asn new file mode 100644 index 0000000000..74a20ed83d --- /dev/null +++ b/asn1/h460/CALL-PRIORITY.asn @@ -0,0 +1,58 @@ +-- CALL-PRIORITY.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn
+--
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.4/2007/CALL-PRIORITY.asn
+--
+
+-- Module CALL-PRIORITY (H.460.4:01/2007)
+CALL-PRIORITY {itu-t(0) recommendation(0) h(8) 460 4 version(1)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS ClearToken, CryptoToken
+ FROM H235-SECURITY-MESSAGES;
+
+CallPriorityInfo ::= SEQUENCE -- root for Call Priority related asn.1
+ {
+ priorityValue
+ CHOICE {emergencyAuthorized NULL,
+ emergencyPublic NULL,
+ high NULL,
+ normal NULL,
+ ...},
+ priorityExtension INTEGER(0..255) OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoToken OPTIONAL,
+ rejectReason
+ CHOICE {priorityUnavailable NULL,
+ priorityUnauthorized NULL,
+ priorityValueUnknown NULL,
+ ...} OPTIONAL, -- Only used in CallPriorityConfirm
+ ...
+}
+
+CountryInternationalNetworkCallOriginationIdentification ::=
+ SEQUENCE
+ -- root for Country/International Network
+ -- of Call Origination Identification related asn.1
+ {
+ numberingPlan
+ CHOICE {x121
+ SEQUENCE {countryCode IA5String(SIZE (3))(FROM ("0123456789")),
+ ...},
+ e164
+ SEQUENCE {countryCode
+ IA5String(SIZE (3))(FROM ("0123456789")),
+ identificationCode
+ IA5String(SIZE (1..4))(FROM ("0123456789")),
+ ...},
+ ...},
+ ...
+}
+
+END -- of ASN.1
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/h460/CIRCUIT-STATUS-MAP.asn b/asn1/h460/CIRCUIT-STATUS-MAP.asn new file mode 100644 index 0000000000..0bab3205da --- /dev/null +++ b/asn1/h460/CIRCUIT-STATUS-MAP.asn @@ -0,0 +1,39 @@ +-- CIRCUIT-STATUS-MAP.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.3/2002/CIRCUIT-STATUS-MAP.asn +-- + +-- Module CIRCUIT-STATUS-MAP (H.460.3:11/2002) +CIRCUIT-STATUS-MAP DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS CircuitIdentifier + FROM H323-MESSAGES; + +CircuitStatus ::= SEQUENCE -- root for Circuit Status Map ASN.1 + { + circuitStatusMap SEQUENCE OF CircuitStatusMap OPTIONAL, + ... +} + +CircuitStatusMap ::= SEQUENCE { + statusType CircuitStatusType, + baseCircuitID CircuitIdentifier, + range INTEGER(0..4095), + status OCTET STRING, + ... +} + +CircuitStatusType ::= CHOICE { + serviceStatus NULL, -- status: 0 = out-of-service, 1 = in-service + busyStatus NULL, -- status: 0 = free, 1 = in-use + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/MEDIA-TRAVERSAL.asn b/asn1/h460/MEDIA-TRAVERSAL.asn new file mode 100644 index 0000000000..860c38502a --- /dev/null +++ b/asn1/h460/MEDIA-TRAVERSAL.asn @@ -0,0 +1,33 @@ +-- MEDIA-TRAVERSAL.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.19/2005/MEDIA-TRAVERSAL.asn +-- + +-- Module MEDIA-TRAVERSAL (H.460.19:09/2005) +MEDIA-TRAVERSAL {itu-t(0) recommendation(0) h(8) 460 19 version(0) 1} +DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS + TimeToLive + FROM H323-MESSAGES + TransportAddress + FROM MULTIMEDIA-SYSTEM-CONTROL; + +TraversalParameters ::= SEQUENCE { + multiplexedMediaChannel TransportAddress OPTIONAL, + multiplexedMediaControlChannel TransportAddress OPTIONAL, + multiplexID INTEGER(0..4294967295) OPTIONAL, + keepAliveChannel TransportAddress OPTIONAL, + keepAlivePayloadType INTEGER(0..127) OPTIONAL, + keepAliveInterval TimeToLive OPTIONAL, + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/MESSAGE-BROADCAST.asn b/asn1/h460/MESSAGE-BROADCAST.asn new file mode 100644 index 0000000000..d6378ad73a --- /dev/null +++ b/asn1/h460/MESSAGE-BROADCAST.asn @@ -0,0 +1,53 @@ +-- MESSAGE-BROADCAST.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.21/2006/MESSAGE-BROADCAST.asn +-- + +-- Module MESSAGE-BROADCAST (H.460.21:05/2006) +MESSAGE-BROADCAST DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS + MulticastAddress, UnicastAddress, Capability + FROM MULTIMEDIA-SYSTEM-CONTROL; + +CapabilityAdvertisement ::= SEQUENCE { + receiveCapabilities ReceiveCapabilities OPTIONAL, + transmitCapabilities SEQUENCE SIZE (1..256) OF TransmitCapabilities OPTIONAL, + ... +} + +ReceiveCapabilities ::= SEQUENCE { + capabilities SEQUENCE SIZE (1..256) OF Capability, + maxGroups INTEGER(1..65535), + ... +} + +GloballyUniqueID ::= OCTET STRING(SIZE (16)) + +TransmitCapabilities ::= SEQUENCE { + groupIdentifer GloballyUniqueID, + capability Capability, + sourceAddress UnicastAddress, + ... +} + +MessageBroadcastGroups ::= SEQUENCE SIZE (1..256) OF GroupAttributes + +GroupAttributes ::= SEQUENCE { + priority INTEGER(0..255), -- 0 = high, 255 = low + groupIdentifer GloballyUniqueID OPTIONAL, + capability Capability, + groupAddress MulticastAddress, + sourceAddress UnicastAddress OPTIONAL, + alertUser BOOLEAN, + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/MLPP.asn b/asn1/h460/MLPP.asn new file mode 100644 index 0000000000..2f8ea03d6d --- /dev/null +++ b/asn1/h460/MLPP.asn @@ -0,0 +1,65 @@ +-- MLPP.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.14/2004/MLPP.asn +-- + +-- Module MLPP (H.460.14:03/2004) +MLPP DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS + CallIdentifier, AliasAddress + FROM H323-MESSAGES; -- defined in H.225.0, Annex H + +MLPPInfo ::= SEQUENCE -- root for MLPP data ASN.1 + { + precedence MlppPrecedence OPTIONAL, + mlppReason MlppReason OPTIONAL, + mlppNotification MlppNotification OPTIONAL, + alternateParty AlternateParty OPTIONAL, + releaseCall ReleaseCall OPTIONAL, + ... +} + +MlppPrecedence ::= ENUMERATED { + flashOveride(0), flash(1), immediate(2), priority(3), routine(4), ... + } + +MlppReason ::= + ENUMERATED -- Indicates reasons that call is refused or released. + {preemptionNoReservation(8), preemptionReservation(9), callBlocked(46), ... + } + +MlppNotification ::= + CHOICE + -- Provides various notification events in Call Signalling messages + { + preemptionPending NULL, + preemptionInProgress NULL, + preemptionEnd NULL, + preemptionComplete NULL, + ... +} + +AlternateParty ::= SEQUENCE { + altID AliasAddress, + altTimer INTEGER(0..255) OPTIONAL, --seconds + ... +} + +ReleaseCall ::= SEQUENCE + -- Identifies other call to be preempted first + { + preemptCallID CallIdentifier, + releaseReason MlppReason, + releaseDelay INTEGER(0..255) OPTIONAL, --seconds to wait + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/Makefile.am b/asn1/h460/Makefile.am new file mode 100644 index 0000000000..0b7ca0ada3 --- /dev/null +++ b/asn1/h460/Makefile.am @@ -0,0 +1,26 @@ +# $Id: Makefile.am 23085 2007-10-07 21:07:33Z jmayer $
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/asn1/h460/Makefile.common b/asn1/h460/Makefile.common new file mode 100644 index 0000000000..26ecffe427 --- /dev/null +++ b/asn1/h460/Makefile.common @@ -0,0 +1,69 @@ +# $Id: Makefile.common 22951 2007-09-25 11:58:35Z kukosa $
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+PROTOCOL_NAME = h460
+
+DISSECTOR_FILES = \
+ packet-$(PROTOCOL_NAME).c
+
+# NEED_PACKET_PROTO_H =
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ NUMBER-PORTABILITY.asn \
+ CIRCUIT-STATUS-MAP.asn \
+ CALL-PRIORITY.asn \
+ QOS-MONITORING-REPORT.asn \
+ QOS-MONITORING-EXTENDED-VOIP-REPORT.asn \
+ CALL-PARTY-CATEGORY.asn MLPP.asn \
+ SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn \
+ SIGNALLING-TRAVERSAL.asn \
+ MEDIA-TRAVERSAL.asn \
+ MESSAGE-BROADCAST.asn
+
+EXTRA_DIST = \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+# need empty -p <proto> option, default is -p $(PROTOCOL_NAME)
+PROTO_OPT =
+A2W_FLAGS =
+
+EXTRA_CNF = \
+ ../h225/h225-exp.cnf \
+ ../h235/h235-exp.cnf \
+ ../h245/h245-exp.cnf
+
+../h225/h225-exp.cnf:
+ (cd ../h225 && $(MAKE_CNF_EXPORT))
+
+../h235/h235-exp.cnf:
+ (cd ../h235 && $(MAKE_CNF_EXPORT))
+
+../h245/h245-exp.cnf:
+ (cd ../h245 && $(MAKE_CNF_EXPORT))
diff --git a/asn1/h460/Makefile.nmake b/asn1/h460/Makefile.nmake new file mode 100644 index 0000000000..d8dc2a43eb --- /dev/null +++ b/asn1/h460/Makefile.nmake @@ -0,0 +1,29 @@ +## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# $Id: Makefile.nmake 23085 2007-10-07 21:07:33Z jmayer $
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/asn1/h460/NUMBER-PORTABILITY.asn b/asn1/h460/NUMBER-PORTABILITY.asn new file mode 100644 index 0000000000..1607249510 --- /dev/null +++ b/asn1/h460/NUMBER-PORTABILITY.asn @@ -0,0 +1,65 @@ +-- NUMBER-PORTABILITY.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.2/2001/NUMBER-PORTABILITY.asn +-- + +-- Module NUMBER-PORTABILITY (H.460.2:07/2001) +NUMBER-PORTABILITY DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS + PublicTypeOfNumber, PrivateTypeOfNumber, AliasAddress + FROM H323-MESSAGES; + +NumberPortabilityInfo ::= CHOICE { + numberPortabilityRejectReason NumberPortabilityRejectReason, + nUMBERPORTABILITYDATA + SEQUENCE {addressTranslated NULL OPTIONAL, + portedAddress PortabilityAddress OPTIONAL, + routingAddress PortabilityAddress OPTIONAL, + regionalParams RegionalParameters OPTIONAL, + ...}, + ... +} + +NumberPortabilityRejectReason ::= CHOICE { + unspecified NULL, + qorPortedNumber NULL, + ... +} + +PortabilityAddress ::= SEQUENCE { + aliasAddress AliasAddress, + typeOfAddress NumberPortabilityTypeOfNumber OPTIONAL, + ... +} + +NumberPortabilityTypeOfNumber ::= CHOICE { + publicTypeOfNumber PublicTypeOfNumber, + privateTypeOfNumber PrivateTypeOfNumber, + portabilityTypeOfNumber PortabilityTypeOfNumber, + ... +} + +PortabilityTypeOfNumber ::= CHOICE { + portedNumber NULL, + routingNumber NULL, + concatenatedNumber NULL, + ... +} + +RegionalParameters ::= SEQUENCE { + t35CountryCode INTEGER(0..255), + t35Extension INTEGER(0..255), + variantIdentifier INTEGER(1..255) OPTIONAL, + regionalData OCTET STRING, + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn b/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn new file mode 100644 index 0000000000..50784279b9 --- /dev/null +++ b/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn @@ -0,0 +1,73 @@ +-- QOS-MONITORING-EXTENDED-VOIP-REPORT.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.9/2002/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn +-- + +-- Module QOS-MONITORING-EXTENDED-VOIP-REPORT (H.460.9:11/2002) +QOS-MONITORING-EXTENDED-VOIP-REPORT DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS GenericIdentifier + FROM H323-MESSAGES; + +ExtendedRTPMetrics ::= SEQUENCE { + networkPacketLossRate INTEGER(0..255) OPTIONAL, + jitterBufferDiscardRate INTEGER(0..255) OPTIONAL, + burstMetrics BurstMetrics OPTIONAL, + rtcpRoundTripDelay INTEGER(0..65535) OPTIONAL, + endSystemDelay INTEGER(0..65535) OPTIONAL, + signalLevel INTEGER(-127..10) OPTIONAL, + noiseLevel INTEGER(-127..0) OPTIONAL, + residualEchoReturnLoss INTEGER(0..127) OPTIONAL, + rFactor INTEGER(0..100) OPTIONAL, + extRFactor INTEGER(0..100) OPTIONAL, + estimatedMOSLQ INTEGER(10..50) OPTIONAL, + estimatedMOSCQ INTEGER(10..50) OPTIONAL, + plcType PLCtypes OPTIONAL, + jitterBufferParms JitterBufferParms OPTIONAL, + ... +} + +BurstMetrics ::= SEQUENCE { + gmin INTEGER(0..255) OPTIONAL, + burstLossDensity INTEGER(0..255) OPTIONAL, + gapLossDensity INTEGER(0..255) OPTIONAL, + burstDuration INTEGER(0..65535) OPTIONAL, + gapDuration INTEGER(0..65535) OPTIONAL, + ... +} + +PLCtypes ::= CHOICE { + unspecified NULL, + disabled NULL, + enhanced NULL, + standard NULL, + ... +} + +JitterBufferParms ::= SEQUENCE { + jitterBufferType JitterBufferTypes OPTIONAL, + jitterBufferAdaptRate INTEGER(0..15) OPTIONAL, + jitterBufferNominalSize INTEGER(0..65535) OPTIONAL, + jitterBufferMaxSize INTEGER(0..65535) OPTIONAL, + jitterBufferAbsoluteMax INTEGER(0..65535) OPTIONAL, + ... +} + +JitterBufferTypes ::= CHOICE { + unknown NULL, + reserved NULL, + nonadaptive NULL, + adaptive NULL, + ... +} + +qosMonitoringExtendedRTPMetrics GenericIdentifier ::= standard:2 + +END -- of QOS-MONITORING-EXTENDED-VOIP-REPORT + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/QOS-MONITORING-REPORT.asn b/asn1/h460/QOS-MONITORING-REPORT.asn new file mode 100644 index 0000000000..a3f7cd54cd --- /dev/null +++ b/asn1/h460/QOS-MONITORING-REPORT.asn @@ -0,0 +1,102 @@ +-- QOS-MONITORING-REPORT.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.9/2002/QOS-MONITORING-REPORT.asn +-- + +-- Module QOS-MONITORING-REPORT (H.460.9:11/2002) +QOS-MONITORING-REPORT DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS + NonStandardParameter, TransportChannelInfo, CallIdentifier, + CallReferenceValue, ConferenceIdentifier, BandWidth, GenericIdentifier + FROM H323-MESSAGES; + +EstimatedEnd2EndDelay ::= INTEGER(0..4294967295) + +-- middle 32 bits of 64 bit NTP timestamp +CalculatedJitter ::= INTEGER(0..4294967295) + +-- measured in timestamp units +Extension ::= SEQUENCE { + extensionId GenericIdentifier, + extensionContent OCTET STRING OPTIONAL, + ... +} + +RTCPMeasures ::= SEQUENCE { + rtpAddress TransportChannelInfo, + rtcpAddress TransportChannelInfo, + sessionId INTEGER(1..255), + nonStandardData NonStandardParameter OPTIONAL, + mediaSenderMeasures + SEQUENCE {worstEstimatedEnd2EndDelay EstimatedEnd2EndDelay OPTIONAL, + meanEstimatedEnd2EndDelay EstimatedEnd2EndDelay OPTIONAL, + ...} OPTIONAL, + mediaReceiverMeasures + SEQUENCE {cumulativeNumberOfPacketsLost INTEGER(0..4294967295) OPTIONAL, + packetLostRate INTEGER(0..65535) OPTIONAL, + worstJitter CalculatedJitter OPTIONAL, + estimatedThroughput BandWidth OPTIONAL, -- in 100s of bits-- + fractionLostRate INTEGER(0..65535) OPTIONAL, + meanJitter CalculatedJitter OPTIONAL, + ...} OPTIONAL, + extensions SEQUENCE OF Extension OPTIONAL, + ... +} + +PerCallQoSReport ::= SEQUENCE { + nonStandardData NonStandardParameter OPTIONAL, + callReferenceValue CallReferenceValue, + conferenceID ConferenceIdentifier, + callIdentifier CallIdentifier, + mediaChannelsQoS SEQUENCE OF RTCPMeasures OPTIONAL, + -- one element per media channel + extensions SEQUENCE OF Extension OPTIONAL, + ... +} + +QosMonitoringReportData ::= CHOICE { + periodic PeriodicQoSMonReport, -- included in IRR messages + final FinalQosMonReport, -- included in DRQ/DCF message + interGK InterGKQosMonReport, -- included in usageIndication message + ... +} + +PeriodicQoSMonReport ::= SEQUENCE { + perCallInfo SEQUENCE OF PerCallQoSReport, -- one element per call + extensions SEQUENCE OF Extension OPTIONAL, + ... +} + +FinalQosMonReport ::= SEQUENCE { + mediaInfo SEQUENCE OF RTCPMeasures, -- one element per channel + nonStandardData NonStandardParameter OPTIONAL, + extensions SEQUENCE OF Extension OPTIONAL, + ... +} + +InterGKQosMonReport ::= SEQUENCE { + mediaInfo SEQUENCE OF RTCPMeasures, -- one element per channel + nonStandardData NonStandardParameter OPTIONAL, + extensions SEQUENCE OF Extension OPTIONAL, + ... +} + +-- +-- H.460.9 Identifiers: +-- +qosMonitoringReportID GenericIdentifier ::= + standard:9 + +qosMonitoringFinalOnly GenericIdentifier ::= standard:0 + +qosMonitoringReportData GenericIdentifier ::= standard:1 + +END -- of ASN.1 + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn b/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn new file mode 100644 index 0000000000..ebd2a6123b --- /dev/null +++ b/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn @@ -0,0 +1,59 @@ +-- SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.15/2004/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn +-- +-- $Id: H323-MESSAGES.asn 20807 2007-02-14 08:08:44Z kukosa $ +-- + +-- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT (H.460.15:03/2004) +SIGNALLING-CHANNEL-SUSPEND-REDIRECT DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS TransportAddress + FROM H323-MESSAGES; + +SignallingChannelData ::= SEQUENCE { + signallingChannelData + CHOICE {channelSuspendRequest ChannelSuspendRequest, + channelSuspendResponse ChannelSuspendResponse, + channelSuspendConfirm ChannelSuspendConfirm, + channelSuspendCancel ChannelSuspendCancel, + channelResumeRequest ChannelResumeRequest, + channelResumeResponse ChannelResumeResponse, + ...}, + ... +} + +ChannelSuspendRequest ::= SEQUENCE { + channelResumeAddress SEQUENCE OF TransportAddress, + immediateResume BOOLEAN, + resetH245 NULL OPTIONAL, + ... +} + +ChannelSuspendResponse ::= SEQUENCE { + okToSuspend BOOLEAN, + channelResumeAddress SEQUENCE OF TransportAddress, + ... +} + +ChannelSuspendConfirm ::= SEQUENCE {... +} + +ChannelSuspendCancel ::= SEQUENCE {... +} + +ChannelResumeRequest ::= SEQUENCE { + randomNumber INTEGER(0..4294967295), + resetH245 NULL OPTIONAL, + ... +} + +ChannelResumeResponse ::= SEQUENCE {... +} + +END -- of ASN.1 + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/SIGNALLING-TRAVERSAL.asn b/asn1/h460/SIGNALLING-TRAVERSAL.asn new file mode 100644 index 0000000000..9550fb5f8e --- /dev/null +++ b/asn1/h460/SIGNALLING-TRAVERSAL.asn @@ -0,0 +1,31 @@ +-- SIGNALLING-TRAVERSAL.asn +-- +-- Taken from ITU ASN.1 database +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h460.18/2005/SIGNALLING-TRAVERSAL.asn +-- +-- $Id: H323-MESSAGES.asn 20807 2007-02-14 08:08:44Z kukosa $ +-- + +-- Module SIGNALLING-TRAVERSAL (H.460.18:09/2005) +SIGNALLING-TRAVERSAL {itu-t(0) recommendation(0) h(8) 460 18 version(0) 1} +DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +IMPORTS CallIdentifier, TimeToLive, TransportAddress + FROM H323-MESSAGES; + +IncomingCallIndication ::= SEQUENCE { + callSignallingAddress TransportAddress, + callID CallIdentifier, + ... +} + +LRQKeepAliveData ::= SEQUENCE { + lrqKeepAliveInterval TimeToLive, -- keep-alive interval (seconds) + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h460/h460.cnf b/asn1/h460/h460.cnf new file mode 100644 index 0000000000..861025acbe --- /dev/null +++ b/asn1/h460/h460.cnf @@ -0,0 +1,61 @@ +# h460.cnf
+# H.460.x conformation file
+# 2007 Tomas Kukosa
+
+# $Id$
+
+#.INCLUDE ../h225/h225-exp.cnf
+#.INCLUDE ../h235/h235-exp.cnf
+#.INCLUDE ../h245/h245-exp.cnf
+
+#.OPT
+PER
+ALIGNED
+GROUP_BY_PROT
+-o h460
+#.END
+
+#.MODULE
+NUMBER-PORTABILITY h460.2
+CIRCUIT-STATUS-MAP h460.3
+CALL-PRIORITY h460.4
+QOS-MONITORING-REPORT h460.9
+QOS-MONITORING-EXTENDED-VOIP-REPORT h460.9
+CALL-PARTY-CATEGORY h460.10
+MLPP h460.14
+SIGNALLING-CHANNEL-SUSPEND-REDIRECT h460.15
+SIGNALLING-TRAVERSAL h460.18
+MEDIA-TRAVERSAL h460.19
+MESSAGE-BROADCAST h460.21
+#.END
+
+#.PDU_NEW
+# H.460.2
+NumberPortabilityInfo
+# H.460.3
+CircuitStatus
+# H.460.4
+CallPriorityInfo
+CountryInternationalNetworkCallOriginationIdentification
+# H.460.9
+QosMonitoringReportData
+ExtendedRTPMetrics
+# H.460.10
+CallPartyCategoryInfo
+# H.460.14
+MLPPInfo
+# H.460.15
+SignallingChannelData
+# H.460.18
+IncomingCallIndication
+LRQKeepAliveData
+# H.460.19
+TraversalParameters
+# H.460.21
+CapabilityAdvertisement
+#.END
+
+#.TF_RENAME
+CountryInternationalNetworkCallOriginationIdentification/numberingPlan/x121/countryCode x121CountryCode
+CountryInternationalNetworkCallOriginationIdentification/numberingPlan/e164/countryCode e164CountryCode
+#.END
\ No newline at end of file diff --git a/asn1/h460/packet-h460-template.c b/asn1/h460/packet-h460-template.c new file mode 100644 index 0000000000..3792e2091f --- /dev/null +++ b/asn1/h460/packet-h460-template.c @@ -0,0 +1,294 @@ +/* packet-h460.c
+ * Routines for H.460.x packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-per.h"
+#include "packet-h225.h"
+#include "packet-h235.h"
+#include "packet-h245.h"
+
+#define PNAME "H.460 Supplementary Services"
+#define PSNAME "H.460"
+#define PFNAME "h460"
+
+/* Initialize the protocol and registered fields */
+int proto_h460 = -1;
+#include "packet-h460-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h460-ett.c"
+
+/* Subdissectors */
+static dissector_handle_t q931_ie_handle = NULL;
+static dissector_handle_t h225_ras_handle = NULL;
+
+#include "packet-h460-fn.c"
+
+static int
+dissect_ies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset = 0;
+
+ if (q931_ie_handle) {
+ call_dissector(q931_ie_handle, tvb, pinfo, tree);
+ offset += tvb_length_remaining(tvb, offset);
+ }
+ return offset;
+}
+
+static int
+dissect_ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset = 0;
+
+ if (h225_ras_handle) {
+ call_dissector(h225_ras_handle, tvb, pinfo, tree);
+ offset += tvb_length_remaining(tvb, offset);
+ }
+ return offset;
+}
+
+typedef struct _h460_feature_t {
+ guint32 opt;
+ const gchar *id;
+ const gchar *name;
+ new_dissector_t content_pdu;
+ /*---*/
+ const gchar *key_gd;
+ const gchar *key_fd;
+ const gchar *key_gm;
+ const gchar *key_gi;
+ dissector_handle_t content_hnd;
+} h460_feature_t;
+
+/* options */
+#define GD 0x01 /* present in H.225 GenericData */
+#define FD 0x02 /* present in H.225 FeatureDescriptor */
+#define GM 0x04 /* present in H.245 GenericMessage */
+#define GI 0x08 /* present in H.245 GenericInformation */
+
+static h460_feature_t h460_feature_tab[] = {
+ /* H.460.3 */
+ { GD|FD, "2", "Number Portability", NULL },
+ { GD|FD, "2/1", "NumberPortabilityData", dissect_h460_2_NumberPortabilityInfo_PDU },
+ /* H.460.3 */
+ { GD|FD, "3", "Circuit Status", NULL },
+ { GD|FD, "3/1", "Circuit Status Map", dissect_h460_3_CircuitStatus_PDU },
+ /* H.460.4 */
+ { GD|FD, "4", "CallPriorityDesignation", NULL },
+ { GD|FD, "4/1", "CallPriorityRequest", dissect_h460_4_CallPriorityInfo_PDU },
+ { GD|FD, "4/2", "CallPriorityConfirm", dissect_h460_4_CallPriorityInfo_PDU },
+ { GD|FD, "4/3", "Country/InternationalNetworkCallOriginationRequest", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU },
+ { GD|FD, "4/4", "Country/InternationalNetworkCallOriginationConfirm", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU },
+ /* H.460.5 */
+ { GD|FD, "5", "DuplicateIEs", NULL },
+ { GD|FD, "5/1", "IEsString", dissect_ies },
+ /* H.460.6 */
+ { GD|FD, "6", "Extended Fast Connect", NULL },
+ { GD|FD, "6/1", "EFC Proposal", NULL },
+ { GD|FD, "6/2", "EFC Close All Media Channels", NULL },
+ { GD|FD, "6/3", "EFC Request New Proposals", NULL },
+ { GD|FD, "6/4", "EFC Require Symmetric Operation", NULL },
+ /* H.460.7 */
+ { GD|FD, "7", "Digit Maps", NULL },
+ { FD, "7/1", "Digit Maps Length", NULL },
+ { FD, "7/2", "Digit Map Length for Overlapped Sending", NULL },
+ { FD, "7/3", "HTTP Digit Maps Download Capability", NULL },
+ { GD , "7/1", "Start Timer", NULL },
+ { GD , "7/2", "Short Timer", NULL },
+ { GD , "7/3", "Long Timer", NULL },
+ { GD , "7/4", "Digit Map String", NULL },
+ { GD , "7/5", "ToN Associated Digit Map", NULL },
+ { GD , "7/5/1", "Type of Number", NULL },
+ { GD , "7/5/2", "Digit Map Strings for ToN", NULL },
+ { GD , "7/6", "Digit Map URL", NULL },
+ /* H.460.8 */
+ { GD|FD, "8", "Querying for Alternate Routes", NULL },
+ { GD|FD, "8/1", "Query Count", NULL },
+ { GD|FD, "8/2", "Call Termination Cause", NULL },
+ /* H.460.9 */
+ { GD|FD, "9", "QoS-monitoring Reporting", NULL },
+ { GD|FD, "9/1", "qosMonitoringFinalOnly", NULL },
+ { GD|FD, "9/2", "qosMonitoringReportData", dissect_h460_9_QosMonitoringReportData_PDU },
+ { GD|FD, "9/3", "qosMonitoringExtendedRTPMetrics", dissect_h460_9_ExtendedRTPMetrics_PDU },
+ /* H.460.10 */
+ { GD|FD, "10", "Call Party Category", NULL },
+ { GD|FD, "10/1", "Call party category info", dissect_h460_10_CallPartyCategoryInfo_PDU },
+ /* H.460.11 */
+ { GD|FD, "11", "Delayed Call Establishment", NULL },
+ { GD|FD, "11/1", "Delay Point Indicator", NULL },
+ { GD|FD, "11/2", "Implicit DCE Release", NULL },
+ { GD|FD, "11/3", "Delay Point Reached", NULL },
+ { GD|FD, "11/4", "DCE Release", NULL },
+ /* H.460.12 */
+ { GD|FD, "12", "Glare Control Indicator", NULL },
+ { GD|FD, "12/1", "Glare Control Indicator Parameter", NULL },
+ /* H.460.13 */
+ { GD|FD, "13", "Called User Release Control", NULL },
+ { GD|FD, "13/1", "Called User Release Control", NULL },
+ /* H.460.14 */
+ { GD|FD, "14", "Multi-Level Precedence and Preemption", NULL },
+ { GD|FD, "14/1", "MLPP Information", dissect_h460_14_MLPPInfo_PDU },
+ /* H.460.15 */
+ { GD|FD, "15", "Call signalling transport channel suspension and redirection", NULL },
+ { GD|FD, "15/1", "Signalling channel suspend and redirect", dissect_h460_15_SignallingChannelData_PDU },
+ /* H.460.16 */
+ { GD|FD, "16", "Multiple-message Release Sequence", NULL },
+ { GD|FD, "16/1", "MMRS use required", NULL },
+ { GD|FD, "16/2", "MMRS procedure", NULL },
+ { GD|FD, "16/3", "MMRS additional IEs", dissect_ies },
+ /* H.460.17 */
+ { GD|FD, "17", "RAS over H.225.0", NULL },
+ { GD|FD, "17/1", "RAS message", dissect_ras },
+ /* H.460.18 */
+ { GD|FD|GM, "18", "Signalling Traversal", NULL },
+ { GD|FD , "18/1", "IncomingCallIndication", dissect_h460_18_IncomingCallIndication_PDU },
+ { GD|FD , "18/2", "LRQKeepAliveData", dissect_h460_18_LRQKeepAliveData_PDU },
+ { GM, "18-1", "connectionCorrelation", NULL },
+ { GM, "18-1/1", "callIdentifier", NULL },
+ { GM, "18-1/2", "answerCall", NULL },
+ /* H.460.19 */
+ { GD|FD|GI, "19", "mediaNATFWTraversal", NULL },
+ { GD|FD , "19/1", "supportTransmitMultiplexedMedia", NULL },
+ { GD|FD , "19/2", "mediaTraversalServer", NULL },
+ { GI, "19/1", "Traversal Parameters", dissect_h460_19_TraversalParameters_PDU },
+ /* H.460.20 */
+ { GD|FD, "20", "LocationSourceAddress", NULL },
+ { GD|FD, "20/1", "LocationSourceAddress", dissect_h225_ExtendedAliasAddress_PDU },
+ /* H.460.21 */
+ { GD|FD, "21", "Message Broadcast", NULL },
+ { GD|FD, "21/1", "MessageBroadcastParameter", dissect_h460_21_CapabilityAdvertisement_PDU },
+ /* H.460.22 */
+ { GD|FD, "22", "securityProtocolNegotiation", NULL },
+ { GD|FD, "22/1", "tlsSecurityProtocol", NULL },
+ { GD|FD, "22/1/1", "priority", NULL },
+ { GD|FD, "22/1/2", "connectionAddress", NULL },
+ { GD|FD, "22/2", "ipsecSecurityProtocol", NULL },
+ { GD|FD, "22/2/1", "priority", NULL },
+ { 0, NULL, NULL, NULL },
+};
+
+static h460_feature_t *find_ftr(const gchar *key) {
+ h460_feature_t *ftr = NULL;
+ h460_feature_t *f;
+
+ for (f=h460_feature_tab; f->id; f++) {
+ if (f->key_gd && !strcmp(key, f->key_gd)) { ftr = f; break; }
+ if (f->key_fd && !strcmp(key, f->key_fd)) { ftr = f; break; }
+ if (f->key_gm && !strcmp(key, f->key_gm)) { ftr = f; break; }
+ if (f->key_gi && !strcmp(key, f->key_gi)) { ftr = f; break; }
+ }
+ return ftr;
+}
+
+/*--- dissect_h460_name -------------------------------------------*/
+static int
+dissect_h460_name(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset = 0;
+ asn1_ctx_t *actx;
+ h460_feature_t *ftr;
+
+ actx = get_asn1_ctx(pinfo->private_data);
+ DISSECTOR_ASSERT(actx);
+ if (tree) {
+ /* DEBUG */ /*proto_tree_add_text(tree, tvb, 0, 0, "*** DEBUG dissect_h460_name: %s", pinfo->match_string);*/
+ ftr = find_ftr(pinfo->match_string);
+ /* DEBUG */ /*proto_tree_add_text(tree, tvb, 0, 0, "*** DEBUG dissect_h460_name: ftr %s", (ftr)?ftr->name:"-none-");*/
+ if (ftr) {
+ proto_item_append_text(actx->created_item, " - %s", ftr->name);
+ proto_item_append_text(proto_item_get_parent(proto_tree_get_parent(tree)), ": %s", ftr->name);
+ } else {
+ proto_item_append_text(actx->created_item, " - unknown(%s)", pinfo->match_string);
+ }
+ }
+
+ return offset;
+}
+
+/*--- proto_register_h460 ----------------------------------------------*/
+void proto_register_h460(void) {
+ h460_feature_t *ftr;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h460-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h460-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h460 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h460, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ for (ftr=h460_feature_tab; ftr->id; ftr++) {
+ if (ftr->opt & GD) ftr->key_gd = ep_strdup_printf("GenericData/%s", ftr->id);
+ if (ftr->opt & FD) ftr->key_fd = ep_strdup_printf("FeatureDescriptor/%s", ftr->id);
+ if (ftr->opt & GM) ftr->key_gm = ep_strdup_printf("GenericMessage/%s", ftr->id);
+ if (ftr->opt & GI) ftr->key_gi = ep_strdup_printf("GenericInformation/%s", ftr->id);
+ if (ftr->content_pdu) ftr->content_hnd = new_create_dissector_handle(ftr->content_pdu, proto_h460);
+ }
+}
+
+/*--- proto_reg_handoff_h460 -------------------------------------------*/
+void proto_reg_handoff_h460(void)
+{
+ h460_feature_t *ftr;
+ dissector_handle_t h460_name_handle;
+
+ q931_ie_handle = find_dissector("q931.ie");
+ h225_ras_handle = find_dissector("h225.ras");
+
+ h460_name_handle = new_create_dissector_handle(dissect_h460_name, proto_h460);
+ for (ftr=h460_feature_tab; ftr->id; ftr++) {
+ if (ftr->key_gd) dissector_add_string("h225.gef.name", ftr->key_gd, h460_name_handle);
+ if (ftr->key_fd) dissector_add_string("h225.gef.name", ftr->key_fd, h460_name_handle);
+/* if (ftr->key_gm) dissector_add_string("h245.gef.name", ftr->key_gm, h460_name_handle);
+ if (ftr->key_gi) dissector_add_string("h245.gef.name", ftr->key_gi, h460_name_handle);*/
+ if (ftr->content_hnd) {
+ if (ftr->key_gd) dissector_add_string("h225.gef.content", ftr->key_gd, ftr->content_hnd);
+ if (ftr->key_fd) dissector_add_string("h225.gef.content", ftr->key_fd, ftr->content_hnd);
+ if (ftr->key_gm) dissector_add_string("h245.gef.content", ftr->key_gm, ftr->content_hnd);
+ if (ftr->key_gi) dissector_add_string("h245.gef.content", ftr->key_gi, ftr->content_hnd);
+ }
+ }
+
+}
+
|