diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/h460 | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/h460')
-rw-r--r-- | epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn | 23 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/CALL-PRIORITY.asn | 55 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn | 36 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/CMakeLists.txt | 50 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn | 30 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn | 50 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/MLPP.asn | 62 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn | 62 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn | 70 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn | 99 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn | 56 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn | 28 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/h460.cnf | 64 | ||||
-rw-r--r-- | epan/dissectors/asn1/h460/packet-h460-template.c | 284 |
14 files changed, 969 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn b/epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn new file mode 100644 index 00000000..2bddb586 --- /dev/null +++ b/epan/dissectors/asn1/h460/CALL-PARTY-CATEGORY.asn @@ -0,0 +1,23 @@ +-- CALL-PARTY-CATEGORY.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/CALL-PRIORITY.asn b/epan/dissectors/asn1/h460/CALL-PRIORITY.asn new file mode 100644 index 00000000..e8301459 --- /dev/null +++ b/epan/dissectors/asn1/h460/CALL-PRIORITY.asn @@ -0,0 +1,55 @@ +-- CALL-PRIORITY.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn b/epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn new file mode 100644 index 00000000..27b03781 --- /dev/null +++ b/epan/dissectors/asn1/h460/CIRCUIT-STATUS-MAP.asn @@ -0,0 +1,36 @@ +-- CIRCUIT-STATUS-MAP.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/CMakeLists.txt b/epan/dissectors/asn1/h460/CMakeLists.txt new file mode 100644 index 00000000..7e214db6 --- /dev/null +++ b/epan/dissectors/asn1/h460/CMakeLists.txt @@ -0,0 +1,50 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# SPDX-License-Identifier: GPL-2.0-or-later +# + +set( PROTOCOL_NAME h460 ) + +set( PROTO_OPT _EMPTY_ ) + +set( EXT_ASN_FILE_LIST +) + +set( 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 +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS ) + +set( EXTRA_CNF + "${CMAKE_CURRENT_BINARY_DIR}/../h225/h225-exp.cnf" + "${CMAKE_CURRENT_BINARY_DIR}/../h235/h235-exp.cnf" + "${CMAKE_CURRENT_BINARY_DIR}/../h245/h245-exp.cnf" +) + +ASN2WRS() diff --git a/epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn b/epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn new file mode 100644 index 00000000..39648dd3 --- /dev/null +++ b/epan/dissectors/asn1/h460/MEDIA-TRAVERSAL.asn @@ -0,0 +1,30 @@ +-- MEDIA-TRAVERSAL.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn b/epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn new file mode 100644 index 00000000..ec2e761d --- /dev/null +++ b/epan/dissectors/asn1/h460/MESSAGE-BROADCAST.asn @@ -0,0 +1,50 @@ +-- MESSAGE-BROADCAST.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/MLPP.asn b/epan/dissectors/asn1/h460/MLPP.asn new file mode 100644 index 00000000..e3b84c67 --- /dev/null +++ b/epan/dissectors/asn1/h460/MLPP.asn @@ -0,0 +1,62 @@ +-- MLPP.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn b/epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn new file mode 100644 index 00000000..892813fb --- /dev/null +++ b/epan/dissectors/asn1/h460/NUMBER-PORTABILITY.asn @@ -0,0 +1,62 @@ +-- NUMBER-PORTABILITY.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn b/epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn new file mode 100644 index 00000000..bcbf3f8b --- /dev/null +++ b/epan/dissectors/asn1/h460/QOS-MONITORING-EXTENDED-VOIP-REPORT.asn @@ -0,0 +1,70 @@ +-- QOS-MONITORING-EXTENDED-VOIP-REPORT.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn b/epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn new file mode 100644 index 00000000..d5bd5023 --- /dev/null +++ b/epan/dissectors/asn1/h460/QOS-MONITORING-REPORT.asn @@ -0,0 +1,99 @@ +-- QOS-MONITORING-REPORT.asn +-- +-- Taken from ITU ASN.1 database +-- 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/epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn b/epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn new file mode 100644 index 00000000..aa85572f --- /dev/null +++ b/epan/dissectors/asn1/h460/SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn @@ -0,0 +1,56 @@ +-- 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 +-- + +-- 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/epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn b/epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn new file mode 100644 index 00000000..33fbbab5 --- /dev/null +++ b/epan/dissectors/asn1/h460/SIGNALLING-TRAVERSAL.asn @@ -0,0 +1,28 @@ +-- 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 +-- + +-- 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/epan/dissectors/asn1/h460/h460.cnf b/epan/dissectors/asn1/h460/h460.cnf new file mode 100644 index 00000000..2d8c8793 --- /dev/null +++ b/epan/dissectors/asn1/h460/h460.cnf @@ -0,0 +1,64 @@ +# h460.cnf +# H.460.x conformation file +# 2007 Tomas Kukosa + +#.INCLUDE ../h225/h225-exp.cnf +#.INCLUDE ../h235/h235-exp.cnf +#.INCLUDE ../h245/h245-exp.cnf + +#.OPT +PER +ALIGNED +GROUP_BY_PROT +-o h460 +#.END + +#.OMIT_ASSIGNMENT +MessageBroadcastGroups +GroupAttributes +#.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 +# 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 diff --git a/epan/dissectors/asn1/h460/packet-h460-template.c b/epan/dissectors/asn1/h460/packet-h460-template.c new file mode 100644 index 00000000..896427c1 --- /dev/null +++ b/epan/dissectors/asn1/h460/packet-h460-template.c @@ -0,0 +1,284 @@ +/* packet-h460.c + * Routines for H.460.x packet dissection + * 2007 Tomas Kukosa + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/oids.h> +#include <epan/asn1.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" + +void proto_register_h460(void); +void proto_reg_handoff_h460(void); + +/* Initialize the protocol and registered fields */ +static int proto_h460 = -1; +#include "packet-h460-hf.c" + +/* Initialize the subtree pointers */ +#include "packet-h460-ett.c" + +/* Main dissector handle */ +static dissector_handle_t h460_name_handle; + +/* 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, void *data _U_) { + int offset = 0; + + if (q931_ie_handle) { + call_dissector(q931_ie_handle, tvb, pinfo, tree); + offset += tvb_reported_length_remaining(tvb, offset); + } + return offset; +} + +static int +dissect_ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { + int offset = 0; + + if (h225_ras_handle) { + call_dissector(h225_ras_handle, tvb, pinfo, tree); + offset += tvb_reported_length_remaining(tvb, offset); + } + return offset; +} + +typedef struct _h460_feature_t { + guint32 opt; + const gchar *id; + const gchar *name; + 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; + +/* Fill in the items after content_pdu */ +#define FFILL NULL, NULL, NULL, NULL, NULL + +/* 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, FFILL }, + { GD|FD, "2/1", "NumberPortabilityData", dissect_h460_2_NumberPortabilityInfo_PDU, FFILL }, + /* H.460.3 */ + { GD|FD, "3", "Circuit Status", NULL, FFILL }, + { GD|FD, "3/1", "Circuit Status Map", dissect_h460_3_CircuitStatus_PDU, FFILL }, + /* H.460.4 */ + { GD|FD, "4", "CallPriorityDesignation", NULL, FFILL }, + { GD|FD, "4/1", "CallPriorityRequest", dissect_h460_4_CallPriorityInfo_PDU, FFILL }, + { GD|FD, "4/2", "CallPriorityConfirm", dissect_h460_4_CallPriorityInfo_PDU, FFILL }, + { GD|FD, "4/3", "Country/InternationalNetworkCallOriginationRequest", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL }, + { GD|FD, "4/4", "Country/InternationalNetworkCallOriginationConfirm", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL }, + /* H.460.5 */ + { GD|FD, "5", "DuplicateIEs", NULL, FFILL }, + { GD|FD, "5/1", "IEsString", dissect_ies, FFILL }, + /* H.460.6 */ + { GD|FD, "6", "Extended Fast Connect", NULL, FFILL }, + { GD|FD, "6/1", "EFC Proposal", NULL, FFILL }, + { GD|FD, "6/2", "EFC Close All Media Channels", NULL, FFILL }, + { GD|FD, "6/3", "EFC Request New Proposals", NULL, FFILL }, + { GD|FD, "6/4", "EFC Require Symmetric Operation", NULL, FFILL }, + /* H.460.7 */ + { GD|FD, "7", "Digit Maps", NULL, FFILL }, + { FD, "7/1", "Digit Maps Length", NULL, FFILL }, + { FD, "7/2", "Digit Map Length for Overlapped Sending", NULL, FFILL }, + { FD, "7/3", "HTTP Digit Maps Download Capability", NULL, FFILL }, + { GD , "7/1", "Start Timer", NULL, FFILL }, + { GD , "7/2", "Short Timer", NULL, FFILL }, + { GD , "7/3", "Long Timer", NULL, FFILL }, + { GD , "7/4", "Digit Map String", NULL, FFILL }, + { GD , "7/5", "ToN Associated Digit Map", NULL, FFILL }, + { GD , "7/5/1", "Type of Number", NULL, FFILL }, + { GD , "7/5/2", "Digit Map Strings for ToN", NULL, FFILL }, + { GD , "7/6", "Digit Map URL", NULL, FFILL }, + /* H.460.8 */ + { GD|FD, "8", "Querying for Alternate Routes", NULL, FFILL }, + { GD|FD, "8/1", "Query Count", NULL, FFILL }, + { GD|FD, "8/2", "Call Termination Cause", NULL, FFILL }, + /* H.460.9 */ + { GD|FD, "9", "QoS-monitoring Reporting", NULL, FFILL }, + { GD|FD, "9/0", "qosMonitoringFinalOnly", NULL, FFILL }, + { GD|FD, "9/1", "qosMonitoringReportData", dissect_h460_9_QosMonitoringReportData_PDU, FFILL }, + { GD|FD, "9/2", "qosMonitoringExtendedRTPMetrics", dissect_h460_9_ExtendedRTPMetrics_PDU, FFILL }, + /* H.460.10 */ + { GD|FD, "10", "Call Party Category", NULL, FFILL }, + { GD|FD, "10/1", "Call party category info", dissect_h460_10_CallPartyCategoryInfo_PDU, FFILL }, + /* H.460.11 */ + { GD|FD, "11", "Delayed Call Establishment", NULL, FFILL }, + { GD|FD, "11/1", "Delay Point Indicator", NULL, FFILL }, + { GD|FD, "11/2", "Implicit DCE Release", NULL, FFILL }, + { GD|FD, "11/3", "Delay Point Reached", NULL, FFILL }, + { GD|FD, "11/4", "DCE Release", NULL, FFILL }, + /* H.460.12 */ + { GD|FD, "12", "Glare Control Indicator", NULL, FFILL }, + { GD|FD, "12/1", "Glare Control Indicator Parameter", NULL, FFILL }, + /* H.460.13 */ + { GD|FD, "13", "Called User Release Control", NULL, FFILL }, + { GD|FD, "13/1", "Called User Release Control", NULL, FFILL }, + /* H.460.14 */ + { GD|FD, "14", "Multi-Level Precedence and Preemption", NULL, FFILL }, + { GD|FD, "14/1", "MLPP Information", dissect_h460_14_MLPPInfo_PDU, FFILL }, + /* H.460.15 */ + { GD|FD, "15", "Call signalling transport channel suspension and redirection", NULL, FFILL }, + { GD|FD, "15/1", "Signalling channel suspend and redirect", dissect_h460_15_SignallingChannelData_PDU, FFILL }, + /* H.460.16 */ + { GD|FD, "16", "Multiple-message Release Sequence", NULL, FFILL }, + { GD|FD, "16/1", "MMRS use required", NULL, FFILL }, + { GD|FD, "16/2", "MMRS procedure", NULL, FFILL }, + { GD|FD, "16/3", "MMRS additional IEs", dissect_ies, FFILL }, + /* H.460.17 */ + { GD|FD, "17", "RAS over H.225.0", NULL, FFILL }, + { GD|FD, "17/1", "RAS message", dissect_ras, FFILL }, + /* H.460.18 */ + { GD|FD , "18", "Signalling Traversal", NULL, FFILL }, + { GD|FD , "18/1", "IncomingCallIndication", dissect_h460_18_IncomingCallIndication_PDU, FFILL }, + { GD|FD , "18/2", "LRQKeepAliveData", dissect_h460_18_LRQKeepAliveData_PDU, FFILL }, + { GM, "0.0.8.460.18.0.1", "Signalling Traversal", NULL, FFILL }, + { GM, "0.0.8.460.18.0.1-1", "connectionCorrelation", NULL, FFILL }, + { GM, "0.0.8.460.18.0.1-1/1", "callIdentifier", NULL, FFILL }, + { GM, "0.0.8.460.18.0.1-1/2", "answerCall", NULL, FFILL }, + /* H.460.19 */ + { GD|FD , "19", "mediaNATFWTraversal", NULL, FFILL }, + { GD|FD , "19/1", "supportTransmitMultiplexedMedia", NULL, FFILL }, + { GD|FD , "19/2", "mediaTraversalServer", NULL, FFILL }, + { GI, "0.0.8.460.19.0.1", "mediaNATFWTraversal", NULL, FFILL }, + { GI, "0.0.8.460.19.0.1/1", "Traversal Parameters", dissect_h460_19_TraversalParameters_PDU, FFILL }, + /* H.460.20 */ + { GD|FD, "20", "LocationSourceAddress", NULL, FFILL }, + { GD|FD, "20/1", "LocationSourceAddress", dissect_h225_ExtendedAliasAddress_PDU, FFILL }, + /* H.460.21 */ + { GD|FD, "21", "Message Broadcast", NULL, FFILL }, + { GD|FD, "21/1", "MessageBroadcastParameter", dissect_h460_21_CapabilityAdvertisement_PDU, FFILL }, + /* H.460.22 */ + { GD|FD, "22", "securityProtocolNegotiation", NULL, FFILL }, + { GD|FD, "22/1", "tlsSecurityProtocol", NULL, FFILL }, + { GD|FD, "22/1/1", "priority", NULL, FFILL }, + { GD|FD, "22/1/2", "connectionAddress", NULL, FFILL }, + { GD|FD, "22/2", "ipsecSecurityProtocol", NULL, FFILL }, + { GD|FD, "22/2/1", "priority", NULL, FFILL }, + { 0, NULL, NULL, NULL, FFILL }, +}; + +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 _U_, packet_info *pinfo, proto_tree *tree, void *data) { + int offset = 0; + asn1_ctx_t *actx; + h460_feature_t *ftr; + + /* Reject the packet if data is NULL */ + if (data == NULL) + return 0; + actx = get_asn1_ctx(data); + DISSECTOR_ASSERT(actx); + + if (tree) { + ftr = find_ftr(pinfo->match_string); + 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)); + + h460_name_handle = register_dissector(PFNAME, dissect_h460_name, proto_h460); + for (ftr=h460_feature_tab; ftr->id; ftr++) { + if (ftr->opt & GD) ftr->key_gd = wmem_strdup_printf(wmem_epan_scope(), "GenericData/%s", ftr->id); + if (ftr->opt & FD) ftr->key_fd = wmem_strdup_printf(wmem_epan_scope(), "FeatureDescriptor/%s", ftr->id); + if (ftr->opt & GM) ftr->key_gm = wmem_strdup_printf(wmem_epan_scope(), "GenericMessage/%s", ftr->id); + if (ftr->opt & GI) ftr->key_gi = wmem_strdup_printf(wmem_epan_scope(), "GenericInformation/%s", ftr->id); + if (ftr->content_pdu) ftr->content_hnd = create_dissector_handle(ftr->content_pdu, proto_h460); + } +} + +/*--- proto_reg_handoff_h460 -------------------------------------------*/ +void proto_reg_handoff_h460(void) +{ + h460_feature_t *ftr; + + q931_ie_handle = find_dissector_add_dependency("q931.ie", proto_h460); + h225_ras_handle = find_dissector_add_dependency("h225.ras", 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); + } + } + +} |