summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/h450
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/h450')
-rw-r--r--epan/dissectors/asn1/h450/Addressing-Data-Elements.asn125
-rw-r--r--epan/dissectors/asn1/h450/CMakeLists.txt62
-rw-r--r--epan/dissectors/asn1/h450/Call-Completion-Operations.asn154
-rw-r--r--epan/dissectors/asn1/h450/Call-Diversion-Operations.asn323
-rw-r--r--epan/dissectors/asn1/h450/Call-Hold-Operations.asn131
-rw-r--r--epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn209
-rw-r--r--epan/dissectors/asn1/h450/Call-Offer-Operations.asn71
-rw-r--r--epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn302
-rw-r--r--epan/dissectors/asn1/h450/Call-Transfer-Operations.asn244
-rw-r--r--epan/dissectors/asn1/h450/Call-Waiting-Operations.asn45
-rw-r--r--epan/dissectors/asn1/h450/Common-Information-Operations.asn149
-rw-r--r--epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn17
-rw-r--r--epan/dissectors/asn1/h450/H4501-General-Error-List.asn100
-rw-r--r--epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn72
-rw-r--r--epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn31
-rw-r--r--epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn169
-rw-r--r--epan/dissectors/asn1/h450/Name-Operations.asn97
-rw-r--r--epan/dissectors/asn1/h450/h450.cnf165
-rw-r--r--epan/dissectors/asn1/h450/packet-h450-template.c312
19 files changed, 2778 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h450/Addressing-Data-Elements.asn b/epan/dissectors/asn1/h450/Addressing-Data-Elements.asn
new file mode 100644
index 00000000..809f8997
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Addressing-Data-Elements.asn
@@ -0,0 +1,125 @@
+-- Addressing-Data-Elements.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Addressing-Data-Elements.asn
+--
+
+-- Module Addressing-Data-Elements (H.450.1:02/1998)
+Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ AliasAddress, PartyNumber, PresentationIndicator, ScreeningIndicator
+ FROM H323-MESSAGES; -- see H.225.0
+
+PresentedAddressScreened ::= CHOICE {
+ presentationAllowedAddress AddressScreened,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress AddressScreened,
+ ...
+}
+
+PresentedAddressUnscreened ::= CHOICE {
+ presentationAllowedAddress Address,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress Address,
+ ...
+}
+
+PresentedNumberScreened ::= CHOICE {
+ presentationAllowedAddress NumberScreened,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress NumberScreened,
+ ...
+}
+
+PresentedNumberUnscreened ::= CHOICE {
+ presentationAllowedAddress PartyNumber,
+ presentationRestricted NULL,
+ numberNotAvailableDueToInterworking NULL,
+ presentationRestrictedAddress PartyNumber,
+ ...
+}
+
+AddressScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator,
+ partySubaddress PartySubaddress OPTIONAL,
+ ...
+}
+
+NumberScreened ::= SEQUENCE {
+ partyNumber PartyNumber,
+ screeningIndicator ScreeningIndicator,
+ ...
+}
+
+Address ::= SEQUENCE {
+ partyNumber PartyNumber,
+ partySubaddress PartySubaddress OPTIONAL,
+ ...
+}
+
+-- PartyNumber defined in Recommendation H.225.0
+-- PublicPartyNumber defined in Recommendation H.225.0
+-- PrivatePartyNumber defined in Recommendation H.225.0
+-- NumberDigits defined in Recommendation H.225.0
+-- PublicTypeOfNumber defined in Recommendation H.225.0
+-- PrivateTypeOfNumber defined in Recommendation H.225.0
+-- PresentationIndicator defined in Recommendation H.225.0 (v3 and beyond)
+-- ScreeningIndicator defined in Recommendation H.225.0 (v3 and beyond)
+EndpointAddress ::= SEQUENCE {
+ destinationAddress SEQUENCE OF AliasAddress,
+ -- multiple alias addresses may be used to address the same H.323 endpoint
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ ...,
+ destinationAddressPresentationIndicator
+ PresentationIndicator OPTIONAL,
+ -- Note 1, 2
+ destinationAddressScreeningIndicator ScreeningIndicator OPTIONAL,
+ remoteExtensionAddressPresentationIndicator
+ PresentationIndicator OPTIONAL,
+ -- Note 1, 2
+ remoteExtensionAddressScreeningIndicator ScreeningIndicator OPTIONAL
+}
+
+-- Note 1: If this element is not available, presentation allowed shall be assumed.
+-- Note 2: If an H.450 APDU that carries this element EndpointAddress also
+-- contains an element PresentationAllowedIndicator, then the setting of the
+-- element PresentationAllowedIndicator shall take precedence in case of
+-- conflicting presentation information.
+PartySubaddress ::= CHOICE {
+ userSpecifiedSubaddress UserSpecifiedSubaddress,
+ -- not recommended.
+ nsapSubaddress NSAPSubaddress,
+ -- according to Recommendation X.213.
+ ...
+}
+
+UserSpecifiedSubaddress ::= SEQUENCE {
+ subaddressInformation SubaddressInformation,
+ oddCountIndicator BOOLEAN OPTIONAL,
+ -- used when the coding of subaddress is BCD
+ ...
+}
+
+NSAPSubaddress ::= OCTET STRING(SIZE (1..20))
+
+-- specified according to X.213. Some networks may
+-- limit the subaddress value to some other length
+-- e.g. 4 octets
+SubaddressInformation ::= OCTET STRING(SIZE (1..20))
+
+-- coded according to user requirements. Some networks
+-- may limit the subaddress value to some other length
+-- e.g. 4 octets
+PresentationAllowedIndicator ::= BOOLEAN
+
+END -- of Addressing-Data-Elements
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/CMakeLists.txt b/epan/dissectors/asn1/h450/CMakeLists.txt
new file mode 100644
index 00000000..93a60135
--- /dev/null
+++ b/epan/dissectors/asn1/h450/CMakeLists.txt
@@ -0,0 +1,62 @@
+# 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 h450 )
+
+set( PROTO_OPT _EMPTY_ )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( H450_ASN
+ H4501-Supplementary-ServiceAPDU-Structure.asn
+ Addressing-Data-Elements.asn
+ H225-generic-parameters-definition.asn
+ Manufacturer-specific-service-extension-definition.asn
+ H4501-General-Error-List.asn
+)
+
+set( H450_OP_ASN
+ Call-Transfer-Operations.asn
+ Call-Diversion-Operations.asn
+ Call-Hold-Operations.asn
+ Call-Park-Pickup-Operations.asn
+ Call-Waiting-Operations.asn
+ Message-Waiting-Indication-Operations.asn
+ Name-Operations.asn
+ Call-Completion-Operations.asn
+ Call-Offer-Operations.asn
+ Call-Intrusion-Operations.asn
+ Common-Information-Operations.asn
+)
+
+set( ASN_FILE_LIST
+ ${H450_ASN}
+ ${H450_OP_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}/../h450-ros/h450-ros-exp.cnf"
+)
+
+ASN2WRS()
diff --git a/epan/dissectors/asn1/h450/Call-Completion-Operations.asn b/epan/dissectors/asn1/h450/Call-Completion-Operations.asn
new file mode 100644
index 00000000..855934d3
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Completion-Operations.asn
@@ -0,0 +1,154 @@
+-- Call-Completion-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.9/2000/Call-Completion-Operations.asn
+--
+
+-- Module Call-Completion-Operations (H.450.9:11/2000)
+Call-Completion-Operations {itu-t recommendation h 450 9 version1(0)
+ call-completion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ CallIdentifier
+ FROM H323-MESSAGES -- see ITU-T H.225.0
+
+ EndpointAddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ MixedExtension, undefined
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ BasicService
+ FROM Message-Waiting-Indication-Operations {itu-t recommendation h
+ 450 7 version1(0) message-waiting-operations(0)};
+
+H323CallCompletionOperations OPERATION ::=
+ {ccbsRequest | ccnrRequest | ccCancel | ccExecPossible | ccRingout |
+ ccSuspend | ccResume}
+
+ccbsRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS
+ {shortTermRejection | longTermRejection | undefined |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local:40
+}
+
+ccnrRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS
+ {shortTermRejection | longTermRejection | undefined |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local:27
+}
+
+ccCancel OPERATION ::= {
+ ARGUMENT CcArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:28
+}
+
+ccExecPossible OPERATION ::= {
+ ARGUMENT CcArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:29
+}
+
+ccRingout OPERATION ::= {
+ ARGUMENT CcShortArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ERRORS {remoteUserBusyAgain | failureToMatch | undefined}
+ CODE local:31
+}
+
+ccSuspend OPERATION ::= {
+ ARGUMENT CcShortArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:32
+}
+
+ccResume OPERATION ::= {
+ ARGUMENT CcArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:33
+}
+
+CcRequestArg ::= SEQUENCE {
+ numberA EndpointAddress,
+ numberB EndpointAddress,
+ ccIdentifier CallIdentifier OPTIONAL,
+ -- If present, it shall be used as the prime mechanism for associating
+ -- the unsuccessful call, the CC Request and the CC Call.
+ service BasicService,
+ can-retain-service BOOLEAN,
+ retain-sig-connection BOOLEAN OPTIONAL,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CcRequestRes ::= SEQUENCE {
+ retain-service BOOLEAN,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CcArg ::= CHOICE {
+ shortArg CcShortArg, -- if signalling conection is retained
+ longArg CcLongArg, -- if connection release option applies
+ ...
+}
+
+CcShortArg ::= SEQUENCE {
+ ccIdentifier CallIdentifier OPTIONAL,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CcLongArg ::= SEQUENCE {
+ numberA EndpointAddress OPTIONAL,
+ numberB EndpointAddress OPTIONAL,
+ ccIdentifier CallIdentifier OPTIONAL,
+ service BasicService OPTIONAL,
+ -- these elements are used to identify the proper CC Request.
+ -- The ccIdentifier if present shall be the prime mechanism for this purpose.
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+shortTermRejection ERROR ::= {CODE local:1010
+}
+
+longTermRejection ERROR ::= {CODE local:1011
+}
+
+remoteUserBusyAgain ERROR ::= {CODE local:1012
+}
+
+failureToMatch ERROR ::= {CODE local:1013
+}
+
+END -- of Call-Completion-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Diversion-Operations.asn b/epan/dissectors/asn1/h450/Call-Diversion-Operations.asn
new file mode 100644
index 00000000..90430820
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Diversion-Operations.asn
@@ -0,0 +1,323 @@
+-- Call-Diversion-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.3/1998/Call-Diversion-Operations.asn
+--
+
+-- Module Call-Diversion-Operations (H.450.3:02/1998)
+Call-Diversion-Operations {itu-t recommendation h 450 3 version1(0)
+ call-diversion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ H225InformationElement
+ FROM H225-generic-parameters-definition {itu-t recommendation h 450
+ 1 version1(0) h225-generic-parameters(6)}
+ NonStandardParameter
+ FROM H323-MESSAGES
+ EndpointAddress, PartySubaddress, PresentationAllowedIndicator
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ userNotSubscribed, notAvailable, invalidServedUserNumber,
+ basicServiceNotProvided, resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)};
+
+H323CallDiversionOperations OPERATION ::=
+ {activateDiversionQ | deactivateDiversionQ | interrogateDiversionQ |
+ checkRestriction | callRerouting | divertingLegInformation1 |
+ divertingLegInformation2 | divertingLegInformation3 |
+ divertingLegInformation4 | cfnrDivertedLegFailed}
+
+activateDiversionQ OPERATION ::=
+ { -- sent from the activating h.323-endpoint to the served h.323-endpoint
+ ARGUMENT
+ SEQUENCE {procedure Procedure,
+ basicService BasicService,
+ divertedToAddress EndpointAddress,
+ servedUserNr EndpointAddress,
+ activatingUserNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {userNotSubscribed | notAvailable | invalidServedUserNumber |
+ basicServiceNotProvided | resourceUnavailable | invalidDivertedNumber |
+ specialServiceNumber | diversionToServedUserNumber |
+ temporarilyUnavailable | notAuthorized | unspecified}
+ CODE local:15
+}
+
+deactivateDiversionQ OPERATION ::=
+ { -- sent from the deactivating h.323-endpoint to the served h.323-endpoint
+ ARGUMENT
+ SEQUENCE {procedure Procedure,
+ basicService BasicService,
+ servedUserNr EndpointAddress,
+ deactivatingUserNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {userNotSubscribed | notAvailable | invalidServedUserNumber |
+ temporarilyUnavailable | notAuthorized | unspecified}
+ CODE local:16
+}
+
+interrogateDiversionQ OPERATION ::=
+ { -- sent from the interrogating h.323-endpoint to the served h.323-endpoint
+ ARGUMENT
+ SEQUENCE {procedure Procedure,
+ basicService BasicService DEFAULT allServices,
+ servedUserNr EndpointAddress,
+ interrogatingUserNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT IntResultList
+ ERRORS
+ {userNotSubscribed | notAvailable | invalidServedUserNumber |
+ temporarilyUnavailable | notAuthorized | unspecified}
+ CODE local:17
+}
+
+checkRestriction OPERATION ::=
+ { -- sent from the served h.323-endpoint to the diverted-to h.323-endpoint
+ ARGUMENT
+ SEQUENCE {servedUserNr EndpointAddress,
+ basicService BasicService,
+ divertedToNr EndpointAddress,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | invalidServedUserNumber | invalidDivertedNumber |
+ specialServiceNumber | unspecified}
+ CODE local:18
+}
+
+callRerouting OPERATION ::=
+ { -- sent from the served h.323-endpoint to the rerouting h.323-endpoint
+ ARGUMENT
+ SEQUENCE {reroutingReason DiversionReason,
+ originalReroutingReason DiversionReason OPTIONAL,
+ calledAddress EndpointAddress,
+ diversionCounter INTEGER(1..15),
+ h225InfoElement H225InformationElement,
+ -- The H.225 information elements Bearer capability,
+ -- High layer compatibility, Low layer compatibility and
+ -- Progress Indicator information element may be embedded
+ -- in the h225InfoElement in accordance with H.450.1.
+ lastReroutingNr EndpointAddress,
+ subscriptionOption SubscriptionOption,
+ callingPartySubaddress PartySubaddress OPTIONAL,
+ callingNumber EndpointAddress,
+ callingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ originalCalledNr EndpointAddress OPTIONAL,
+ redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ originalCalledInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RESULT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ ERRORS
+ {userNotSubscribed | notAvailable | resourceUnavailable |
+ invalidDivertedNumber | specialServiceNumber |
+ diversionToServedUserNumber | numberOfDiversionsExceeded |
+ supplementaryServiceInteractionNotAllowed | unspecified}
+ CODE local:19
+}
+
+divertingLegInformation1 OPERATION ::=
+ { -- sent from the re-routing h.323-endpoint to the originating h.323-endpoint
+ -- if the re-routing endpoint equals the originating endpoint, this operation
+
+ -- is not applicable; may also be sent from the rerouting endpoint to other
+ -- members of a conference, if subscription option allows.
+ ARGUMENT
+ SEQUENCE {diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ nominatedNr EndpointAddress,
+ nominatedInfo BMPString(SIZE (1..128)) OPTIONAL,
+ redirectingNr EndpointAddress OPTIONAL,
+ redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:20
+}
+
+divertingLegInformation2 OPERATION ::=
+ { --sent from the re-routing h.323-endpoint to the diverted-to h.323-endpoint
+ ARGUMENT
+ SEQUENCE {diversionCounter INTEGER(1..15),
+ diversionReason DiversionReason,
+ originalDiversionReason DiversionReason OPTIONAL,
+ divertingNr EndpointAddress OPTIONAL,
+ originalCalledNr EndpointAddress OPTIONAL,
+ redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ originalCalledInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ -- The divertingNr element is mandatory except in the case of interworking
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:21
+}
+
+divertingLegInformation3 OPERATION ::= {
+ --sent from the diverted-to h.323-endpoint to the originating h.323-endpoint
+ ARGUMENT
+ SEQUENCE {presentationAllowedIndicator PresentationAllowedIndicator,
+ redirectionNr EndpointAddress OPTIONAL,
+ redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:22
+}
+
+divertingLegInformation4 OPERATION ::= {
+ -- If call diversion in not performed by the forwarding terminal but by a
+ -- gatekeeper, the gatekeeper may send divertingLegInformation4 apdu to the
+ -- forwarding terminal.
+ ARGUMENT
+ SEQUENCE {diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ callingNr EndpointAddress,
+ callingInfo BMPString(SIZE (1..128)) OPTIONAL,
+ nominatedNr EndpointAddress,
+ nominatedInfo BMPString(SIZE (1..128)) OPTIONAL,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:100
+}
+
+cfnrDivertedLegFailed OPERATION ::=
+ { -- sent from the rerouting h.323-terminal to the served h.323-endpoint
+ ARGUMENT
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter}
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:23
+}
+
+-- This indicates that the diverted-to leg has been cleared during SS-CFNR execution.
+-- Definitions of general used data types:
+DiversionReason ::= ENUMERATED {unknown(0), cfu(1), cfb(2), cfnr(3), ...
+ }
+
+-- The value unknown is only used if received from another network when interworking.
+IntResultList ::= SET SIZE (0..29) OF IntResult
+
+IntResult ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ procedure Procedure,
+ divertedToAddress EndpointAddress,
+ remoteEnabled BOOLEAN DEFAULT FALSE,
+ extension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+Procedure ::= ENUMERATED {cfu(0), cfb(1), cfnr(2), ...
+ }
+
+SubscriptionOption ::= ENUMERATED {
+ noNotification(0), notificationWithoutDivertedToNr(1),
+ notificationWithDivertedToNr(2), ...
+ }
+
+invalidDivertedNumber ERROR ::= {CODE local:12
+}
+
+specialServiceNumber ERROR ::= {CODE local:14
+}
+
+diversionToServedUserNumber ERROR ::= {CODE local:15
+}
+
+numberOfDiversionsExceeded ERROR ::= {CODE local:24
+}
+
+temporarilyUnavailable ERROR ::= {CODE local:1000
+}
+
+notAuthorized ERROR ::= {CODE local:1007
+}
+
+unspecified ERROR ::= {
+ PARAMETER
+ CHOICE {extension Extension{{ExtensionSet}},
+ nonStandard NonStandardParameter}
+ CODE local:1008
+}
+
+BasicService ::= ENUMERATED {
+ allServices(0),
+ -- speech (1),
+ -- unrestrictedDigitalInformation (2),
+ -- audio3.1KHz (3),
+ -- telephony (32),
+ -- teletex (33),
+ -- telefaxGroup4Class1 (34),
+ -- videotexSyntaxBased (35),
+ -- videotelephony (36),
+ ...
+ }
+
+-- For multimedia calls the value "allServices" shall be used only.
+-- The usage of the other codepoints for multimedia calls is for further study.
+ExtensionSeq ::= SEQUENCE OF Extension{{ExtensionSet}}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+-- Actual values defined by individual manufacturers
+END -- of Call-Diversion-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Hold-Operations.asn b/epan/dissectors/asn1/h450/Call-Hold-Operations.asn
new file mode 100644
index 00000000..ed59f8a6
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Hold-Operations.asn
@@ -0,0 +1,131 @@
+-- Call-Hold-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.4/1999/Call-Hold-Operations.asn
+--
+
+-- Module Call-Hold-Operations (H.450.4:05/1999)
+Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ notAvailable, invalidCallState, resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ NonStandardParameter
+ FROM H323-MESSAGES; -- see H.225.0
+
+CallHoldOperations OPERATION ::=
+ {holdNotific | retrieveNotific | remoteHold | remoteRetrieve}
+
+holdNotific OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke near-end call hold feature
+
+ ARGUMENT HoldNotificArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:101
+}
+
+HoldNotificArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+retrieveNotific OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke retrieval of near-end call hold feature
+
+ ARGUMENT RetrieveNotificArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:102
+}
+
+RetrieveNotificArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+remoteHold OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke remote-end call hold feature
+
+ ARGUMENT RemoteHoldArg
+ OPTIONAL TRUE
+ RESULT RemoteHoldRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable
+ | -- feature not available in combination with the basic service
+ invalidCallState | --hold not possible in current call state
+ resourceUnavailable | -- maximum number of calls on hold reached
+ supplementaryServiceInteractionNotAllowed |
+
+ -- other supplementary service prohibits hold
+ undefined -- undefined reason--}
+ CODE local:103
+}
+
+RemoteHoldArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+RemoteHoldRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+remoteRetrieve OPERATION ::=
+ { -- sent from holding to held H.323 endpoint to invoke retrieval of remote-end call hold feature
+
+ ARGUMENT RemoteRetrieveArg
+ OPTIONAL TRUE
+ RESULT RemoteRetrieveRes
+ OPTIONAL TRUE
+ ERRORS
+ {invalidCallState |
+
+ -- Call to which retrieve request applies is not in state Hold_RE_Held
+ undefined -- undefined reason--}
+ CODE local:104
+}
+
+RemoteRetrieveArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+RemoteRetrieveRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MixedExtension ::= CHOICE {
+ extension Extension{{ExtensionSet}},
+ nonStandardData NonStandardParameter
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+-- Actual values defined by individual manufacturers
+undefined ERROR ::= {
+ PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
+ OPTIONAL TRUE
+ CODE local:2002
+}
+
+END -- of Call-Hold-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn b/epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn
new file mode 100644
index 00000000..8107615c
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Intrusion-Operations.asn
@@ -0,0 +1,209 @@
+-- Call-Intrusion-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.11/2001/Call-Intrusion-Operations.asn
+--
+
+-- Module Call-Intrusion-Operations (H.450.11:03/2001)
+Call-Intrusion-Operations {itu-t recommendation h 450 11 version1(0)
+ call-intrusion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ CallIdentifier
+ FROM H323-MESSAGES -- see H.225.0
+
+ MixedExtension, undefined
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ callWaiting
+ FROM Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
+ call-waiting-operations(0)}
+ cfbOverride, remoteUserAlerting
+ FROM Call-Offer-Operations {itu-t recommendation h 450 10 version1(0)
+ call-offer-operations(0)};
+
+H323CallIntrusionOperations OPERATION ::=
+ {callIntrusionRequest | callIntrusionGetCIPL | callIntrusionIsolate |
+ callIntrusionForcedRelease | callIntrusionWOBRequest |
+ callIntrusionSilentMonitor | callIntrusionNotification | cfbOverride |
+ remoteUserAlerting | callWaiting}
+
+-- callWaiting is only used for interaction with Call Transfer
+callIntrusionRequest OPERATION ::= {
+ ARGUMENT CIRequestArg
+ RESULT CIRequestRes
+ ERRORS
+ {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:43
+}
+
+callIntrusionGetCIPL OPERATION ::= {
+ ARGUMENT CIGetCIPLOptArg
+ OPTIONAL TRUE
+ RESULT CIGetCIPLRes
+ ALWAYS RESPONDS FALSE
+ CODE local:44
+}
+
+callIntrusionIsolate OPERATION ::= {
+ ARGUMENT CIIsOptArg
+ OPTIONAL TRUE
+ RESULT CIIsOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:45
+}
+
+callIntrusionForcedRelease OPERATION ::= {
+ ARGUMENT CIFrcRelArg
+ OPTIONAL TRUE
+ RESULT CIFrcRelOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:46
+}
+
+callIntrusionWOBRequest OPERATION ::= {
+ ARGUMENT CIWobOptArg
+ OPTIONAL TRUE
+ RESULT CIWobOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:47
+}
+
+callIntrusionSilentMonitor OPERATION ::= {
+ ARGUMENT CISilentArg
+ RESULT CISilentOptRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ undefined | supplementaryServiceInteractionNotAllowed}
+ CODE local:116
+}
+
+callIntrusionNotification OPERATION ::= {
+ ARGUMENT CINotificationArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:117
+}
+
+CIRequestArg ::= SEQUENCE {
+ ciCapabilityLevel CICapabilityLevel,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIRequestRes ::= SEQUENCE {
+ ciStatusInformation CIStatusInformation,
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIGetCIPLOptArg ::= SEQUENCE {
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIGetCIPLRes ::= SEQUENCE {
+ ciProtectionLevel CIProtectionLevel,
+ silentMonitoringPermitted NULL OPTIONAL,
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIIsOptArg ::= SEQUENCE {
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIIsOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIFrcRelArg ::= SEQUENCE {
+ ciCapabilityLevel CICapabilityLevel,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIFrcRelOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIWobOptArg ::= SEQUENCE {
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CIWobOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CISilentArg ::= SEQUENCE {
+ ciCapabilityLevel CICapabilityLevel,
+ specificCall CallIdentifier OPTIONAL,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CISilentOptRes ::= SEQUENCE {
+ resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CINotificationArg ::= SEQUENCE {
+ ciStatusInformation CIStatusInformation,
+ argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CICapabilityLevel ::= INTEGER {
+ intrusionLowCap(1), intrusionMediumCap(2), intrusionHighCap(3)}(1..3)
+
+CIProtectionLevel ::= INTEGER {
+ lowProtection(0), mediumProtection(1), highProtection(2), fullProtection(3)
+}(0..3)
+
+CIStatusInformation ::= CHOICE {
+ callIntrusionImpending NULL,
+ callIntruded NULL,
+ callIsolated NULL,
+ callForceReleased NULL,
+ callIntrusionComplete NULL,
+ callIntrusionEnd NULL,
+ ...
+}
+
+notBusy ERROR ::= {CODE local:1009
+} -- used when the called user is not busy
+
+temporarilyUnavailable ERROR ::= {CODE local:1000
+} -- used when conditions for invocation of SS-CI
+
+-- are momentarily not met
+notAuthorized ERROR ::= {CODE local:1007
+} -- used when a SS-CI request is rejected
+
+-- because of insufficient CICL or if silent
+-- monitoring is not permitted
+END -- of Call-Intrusion-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Offer-Operations.asn b/epan/dissectors/asn1/h450/Call-Offer-Operations.asn
new file mode 100644
index 00000000..af3aa516
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Offer-Operations.asn
@@ -0,0 +1,71 @@
+-- Call-Offer-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.10/2001/Call-Offer-Operations.asn
+--
+
+-- Module Call-Offer-Operations (H.450.10:03/2001)
+Call-Offer-Operations {itu-t recommendation h 450 10 version1(0)
+ call-offer-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ callWaiting
+ FROM Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
+ call-waiting-operations(0)};
+
+H323CallOfferOperations OPERATION ::=
+ {callOfferRequest | callWaiting | remoteUserAlerting | cfbOverride}
+
+callOfferRequest OPERATION ::= -- sent from calling to called endpoint
+ {
+ ARGUMENT CoReqOptArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:34
+}
+
+remoteUserAlerting OPERATION ::= -- sent from called to calling endpoint
+ {
+ ARGUMENT RUAlertOptArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:115
+}
+
+cfbOverride OPERATION ::= -- sent from calling to called endpoint
+ {
+ ARGUMENT CfbOvrOptArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:49
+}
+
+CoReqOptArg ::= SEQUENCE {
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+RUAlertOptArg ::= SEQUENCE {
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CfbOvrOptArg ::= SEQUENCE {
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+END -- of Call-Offer-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn b/epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn
new file mode 100644
index 00000000..d8a0f9a5
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Park-Pickup-Operations.asn
@@ -0,0 +1,302 @@
+-- Call-Park-Pickup-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.5/1999/Call-Park-Pickup-Operations.asn
+--
+
+-- Module Call-Park-Pickup-Operations (H.450.5:05/1999)
+Call-Park-Pickup-Operations {itu-t recommendation h 450 5 version1(0)
+ call-park-pickup-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ notAvailable, invalidCallState, resourceUnavailable,
+ supplementaryServiceInteractionNotAllowed
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ EndpointAddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)}
+ NonStandardParameter, CallIdentifier
+ FROM H323-MESSAGES; -- see H.225.0
+
+CallParkPickupOperations OPERATION ::=
+ {cpRequest | cpSetup | groupIndicationOn | groupIndicationOff | pickrequ |
+ pickup | pickExe | cpNotify | cpickupNotify}
+
+cpRequest OPERATION ::=
+ { -- sent from parking endpoint to the parked endpoint to invoke SS-PARK
+ ARGUMENT CpRequestArg
+ RESULT CpRequestRes
+ ERRORS
+ {notAvailable |
+
+ -- feature not available in combination with the basic service
+ invalidCallState | -- call park not possible in current call state
+ resourceUnavailable | -- maximum number of parked calls reached
+ supplementaryServiceInteractionNotAllowed |
+
+ -- other supplementary service prohibits call park invocation
+ undefined -- undefined reason--}
+ CODE local:106
+}
+
+CpRequestArg ::= SEQUENCE {
+ parkingNumber EndpointAddress,
+ parkedNumber EndpointAddress,
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CpRequestRes ::= SEQUENCE {
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ parkCondition ParkCondition,
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+cpSetup OPERATION ::= { -- sent from parked endpoint to the parked-to endpoint
+ ARGUMENT CpSetupArg
+ RESULT CpSetupRes
+ ERRORS
+ {notAvailable |
+
+ -- feature not available in combination with the basic service
+ invalidCallState | -- call park not possible in current call state
+ resourceUnavailable | -- maximum number of parked calls reached
+ supplementaryServiceInteractionNotAllowed |
+
+ -- other supplementary service prohibits call park invocation
+ undefined -- undefined reason --}
+ CODE local:107
+}
+
+CpSetupArg ::= SEQUENCE {
+ parkingNumber EndpointAddress,
+ parkedNumber EndpointAddress,
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+CpSetupRes ::= SEQUENCE {
+ parkedToNumber EndpointAddress,
+ parkedToPosition ParkedToPosition OPTIONAL,
+ parkCondition ParkCondition,
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+groupIndicationOn OPERATION ::=
+ { -- sent from the parked-to endpoint/alerting endpoint to the group members
+ ARGUMENT GroupIndicationOnArg
+ RESULT GroupIndicationOnRes
+ ERRORS {undefined -- undefined reason--}
+ CODE local:108
+}
+
+GroupIndicationOnArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the call to be retrieved (parked or alerting call);
+ -- its value equals the value of the CallIdentifier as assigned for the parked/
+ -- alerting call within Setup-UUIE
+ groupMemberUserNr EndpointAddress,
+ retrieveCallType CallType,
+ partyToRetrieve EndpointAddress, -- Parked or Calling User
+ retrieveAddress EndpointAddress, -- parked-to or alerting entity address
+
+ -- (may also be a GK, see 9.2)
+ parkPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+GroupIndicationOnRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+groupIndicationOff OPERATION ::=
+ { -- sent from the parked-to endpoint/alerting endpoint to the group members
+ ARGUMENT GroupIndicationOffArg
+ RESULT GroupIndicationOffRes
+ ERRORS
+ {invalidCallState | -- group indication is not on
+ undefined -- undefined reason--}
+ CODE local:109
+}
+
+GroupIndicationOffArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the call that has been picked up (parked or alerting call)
+ groupMemberUserNr EndpointAddress,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+GroupIndicationOffRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+pickrequ OPERATION ::= { -- sent from the picking-up user to the parked-to/
+ -- alerting endpoint as part of the SS-PICKUP invocation
+ ARGUMENT PickrequArg
+ RESULT PickrequRes
+ ERRORS
+ {undefined | -- undefined reason
+
+ callAlreadyPickedUp -- call has already been picked up by another user --}
+ CODE local:110
+}
+
+PickrequArg ::= SEQUENCE {
+ picking-upNumber EndpointAddress,
+ callPickupId CallIdentifier OPTIONAL,
+ -- identification of the call to be picked up (parked or alerting call), if known
+ partyToRetrieve EndpointAddress OPTIONAL, -- Parked or Calling User
+ retrieveAddress EndpointAddress, -- parked-to or alerting entity address
+ parkPosition ParkedToPosition OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+PickrequRes ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the call that is being picked up (parked or alerting call),
+ -- if not sent in pickrequ invoke, it is assigned at the parked-to/alerting
+ -- endpoint and reflects the CallIdentification of the parked/alerting call for
+ -- later association with the pickExe invoke APDU.
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+pickup OPERATION ::=
+ { -- sent from the parked-to/alerting endpoint to the parked/calling endpoint
+ -- after the picking-up user has invoked SS-PICKUP. The picking-up user may
+ -- be local (i.e. parked-to/alerting endpoint equals picking-up
+ -- endpoint) or may be remote (i.e. picking-up user is located at a
+ -- remote picking-up endpoint having sent pickrequ invoke APDU to the
+ -- parked-to/alerting endpoint).
+ ARGUMENT PickupArg
+ RESULT PickupRes
+ ERRORS
+ {undefined | -- undefined reason
+
+ callAlreadyPickedUp -- call has already been picked up by another user --}
+ CODE local:111
+}
+
+PickupArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of this call to be picked up (parked or alerting call);
+ -- equals the CallIdentifier value that was assigned to this call in Setup-UUIE
+ picking-upNumber EndpointAddress,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+PickupRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+pickExe OPERATION ::=
+ { -- sent from the parked/calling endpoint to the picking-up endpoint
+ ARGUMENT PickExeArg
+ RESULT PickExeRes
+ ERRORS
+ {undefined | -- undefined reason
+
+ callPickupIdInvalid
+ -- value not matching with the previous SS-PICKUP request
+ }
+ CODE local:112
+}
+
+PickExeArg ::= SEQUENCE {
+ callPickupId CallIdentifier,
+ -- identification of the parked/alerting call to be picked-up;
+ -- required at picking-up endpoint to associate the SS-PICKUP invoked with this
+ -- incoming setup message carrying the pickExe invoke APDU.
+ picking-upNumber EndpointAddress,
+ partyToRetrieve EndpointAddress, -- Parked or Calling User
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+PickExeRes ::= SEQUENCE {
+ extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+cpNotify OPERATION ::=
+ { -- sent from the parking-to to parked endpoint in case of local park.
+ ARGUMENT CpNotifyArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:113
+}
+
+CpNotifyArg ::= SEQUENCE {
+ parkingNumber EndpointAddress OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+cpickupNotify OPERATION ::=
+ { -- sent from parked-to to parked endpoint in case of SS-PICKUP from local park
+
+ ARGUMENT CpickupNotifyArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:114
+}
+
+CpickupNotifyArg ::= SEQUENCE {
+ picking-upNumber EndpointAddress OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+ParkedToPosition ::= INTEGER(0..65535)
+
+ParkCondition ::= ENUMERATED {
+ unspecified(0), parkedToUserIdle(1), parkedToUserBusy(2), parkedToGroup(3),
+ ...
+ }
+
+CallType ::= ENUMERATED {parkedCall(0), alertingCall(1), ...
+ }
+
+callPickupIdInvalid ERROR ::= {CODE local:2000
+}
+
+callAlreadyPickedUp ERROR ::= {CODE local:2001
+}
+
+undefined ERROR ::= {
+ PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
+ OPTIONAL TRUE
+ CODE local:2002
+}
+
+END -- of Call-Park-Pickup-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Transfer-Operations.asn b/epan/dissectors/asn1/h450/Call-Transfer-Operations.asn
new file mode 100644
index 00000000..cbe7cd67
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Transfer-Operations.asn
@@ -0,0 +1,244 @@
+-- Call-Transfer-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.2/1998/Call-Transfer-Operations.asn
+--
+
+-- Module Call-Transfer-Operations (H.450.2:02/1998)
+Call-Transfer-Operations {itu-t recommendation h 450 2 version1(0)
+ call-transfer-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ notAvailable, supplementaryServiceInteractionNotAllowed, invalidCallState
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ EndpointAddress, PartySubaddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ NonStandardParameter
+ FROM H323-MESSAGES -- see H.225.0
+
+ H225InformationElement
+ FROM H225-generic-parameters-definition {itu-t recommendation h 450
+ 1 version1(0) h225-generic-parameters(6)};
+
+H323CallTransferOperations OPERATION ::=
+ {callTransferIdentify | callTransferAbandon | callTransferInitiate |
+ callTransferSetup | callTransferUpdate | subaddressTransfer |
+ callTransferComplete | callTransferActive}
+
+callTransferIdentify OPERATION ::= {
+ -- sent from transferring endpoint to transferred-to endpoint
+ ARGUMENT DummyArg
+ OPTIONAL TRUE
+ RESULT CTIdentifyRes
+ ERRORS
+ {notAvailable | invalidCallState |
+ supplementaryServiceInteractionNotAllowed | unspecified}
+ CODE local:7
+}
+
+callTransferAbandon OPERATION ::= {
+ -- sent from transferring to transferred-to endpoint
+ ARGUMENT DummyArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:8
+}
+
+callTransferInitiate OPERATION ::= {
+ -- sent from transfering to transferred endpoint
+ ARGUMENT CTInitiateArg
+ RESULT DummyRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | invalidCallState | invalidReroutingNumber |
+ unrecognizedCallIdentity | establishmentFailure |
+ supplementaryServiceInteractionNotAllowed | unspecified}
+ CODE local:9
+}
+
+callTransferSetup OPERATION ::= {
+ -- sent from transferred to transferred-to endpoint
+ ARGUMENT CTSetupArg
+ RESULT DummyRes
+ OPTIONAL TRUE
+ ERRORS
+ {notAvailable | invalidCallState | invalidReroutingNumber |
+ unrecognizedCallIdentity | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local:10
+}
+
+callTransferUpdate OPERATION ::= {
+ -- may be sent from transferred to transferred-to endpoint (in SETUP) and
+ -- vice versa (in CONNECT)
+ ARGUMENT CTUpdateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:13
+}
+
+subaddressTransfer OPERATION ::= {
+ -- may be sent from transferred to the transferred-to endpoint and vice versa
+ ARGUMENT SubaddressTransferArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:14
+}
+
+callTransferComplete OPERATION ::= {
+ -- sent from GK to the transferred endpoint, if GK performs call transfer
+ -- (see 10.6.1).
+ ARGUMENT CTCompleteArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:12
+}
+
+callTransferActive OPERATION ::= {
+ -- sent from gatekeeper to the transferred endpoint, in case of transfer ringing
+ -- after transferred-to endpoint has answered the call (only in case of
+ -- transfer performed by gatekeeper)
+ ARGUMENT CTActiveArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:11
+}
+
+DummyArg ::= CHOICE {
+ extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter
+}
+
+DummyRes ::= CHOICE {
+ extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter
+}
+
+CTInitiateArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ reroutingNumber EndpointAddress,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTSetupArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ transferringNumber EndpointAddress OPTIONAL,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTIdentifyRes ::= SEQUENCE {
+ callIdentity CallIdentity,
+ reroutingNumber EndpointAddress,
+ resultExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTUpdateArg ::= SEQUENCE {
+ redirectionNumber EndpointAddress,
+ redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
+ basicCallInfoElements H225InformationElement OPTIONAL,
+ -- Information element
+ -- Progress indicator may be conveyed
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+SubaddressTransferArg ::= SEQUENCE {
+ redirectionSubaddress PartySubaddress,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CTCompleteArg ::= SEQUENCE {
+ endDesignation EndDesignation,
+ redirectionNumber EndpointAddress,
+ -- number of new connected user
+ basicCallInfoElements H225InformationElement OPTIONAL,
+ -- Information element Progress indicator may be conveyed
+ redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
+ callStatus CallStatus DEFAULT answered,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+EndDesignation ::= ENUMERATED {primaryEnd(0), secondaryEnd(1), ...
+ }
+
+CallStatus ::= ENUMERATED {answered(0), alerting(1), ...
+ }
+
+CTActiveArg ::= SEQUENCE {
+ connectedAddress EndpointAddress,
+ -- number of new connected user
+ basicCallInfoElements H225InformationElement OPTIONAL,
+ -- Information element Progress indicator may be conveyed
+ connectedInfo BMPString(SIZE (1..128)) OPTIONAL,
+ argumentExtension
+ CHOICE {extensionSeq ExtensionSeq,
+ nonStandardData NonStandardParameter} OPTIONAL,
+ ...
+}
+
+CallIdentity ::= NumericString(SIZE (0..4))
+
+-- size 0 means 'empty'
+ExtensionSeq ::= SEQUENCE OF Extension{{ExtensionSet}}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+-- Actual values defined by individual manufacturers
+unspecified ERROR ::= {
+ PARAMETER
+ CHOICE {extension Extension{{ExtensionSet}},
+ nonStandard NonStandardParameter}
+ CODE local:1008
+}
+
+invalidReroutingNumber ERROR ::= {
+ -- used when establishment of the new connection fails
+ -- because the reroutingNumber is not a valid alias address
+ CODE local:1004
+}
+
+unrecognizedCallIdentity ERROR ::= {
+ -- used when establishment of the new connection fails because it
+ -- could not be associated with a SS-CT entity at the
+ -- transferred-to endpoint
+ CODE local:1005
+}
+
+establishmentFailure ERROR ::= {
+ -- used when establishment of the new connection fails and
+ -- no other error applies
+ CODE local:1006
+}
+
+END -- of Call-Transfer-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Call-Waiting-Operations.asn b/epan/dissectors/asn1/h450/Call-Waiting-Operations.asn
new file mode 100644
index 00000000..fa2e1de7
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Call-Waiting-Operations.asn
@@ -0,0 +1,45 @@
+-- Call-Waiting-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.6/1999/Call-Waiting-Operations.asn
+--
+
+-- Module Call-Waiting-Operations (H.450.6:05/1999)
+Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
+ call-waiting-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+CallWaitingOperations OPERATION ::= {callWaiting}
+
+callWaiting OPERATION ::=
+ { -- sent from served endpoint to the calling endpoint in ALERTING message
+ ARGUMENT CallWaitingArg
+ OPTIONAL TRUE
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:105
+}
+
+CallWaitingArg ::= SEQUENCE {
+ nbOfAddWaitingCalls INTEGER(0..255) OPTIONAL,
+ -- indicates the number of waiting calls at the served user
+ -- in addition to the call to which this operation applies.
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+END -- of Call-Waiting-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Common-Information-Operations.asn b/epan/dissectors/asn1/h450/Common-Information-Operations.asn
new file mode 100644
index 00000000..8fb8e35e
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Common-Information-Operations.asn
@@ -0,0 +1,149 @@
+-- Common-Information-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.12/2001/Common-Information-Operations.asn
+--
+
+-- Module Common-Information-Operations (H.450.12:07/2001)
+Common-Information-Operations {itu-t recommendation h 450 12 version1(0)
+ common-information-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ MixedExtension, undefined
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+H323CommonInformationOperations OPERATION ::= {cmnRequest | cmnInform}
+
+cmnRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ OPTIONAL TRUE
+ RESULT CmnArg
+ ERRORS {undefined}
+ CODE local:84
+}
+
+cmnInform OPERATION ::= {
+ ARGUMENT CmnArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:85
+}
+
+CmnArg ::= SEQUENCE {
+ featureList FeatureList OPTIONAL,
+ featureValues FeatureValues OPTIONAL,
+ featureControl FeatureControl OPTIONAL,
+ extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+DummyArg ::= SEQUENCE {
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL
+}
+
+FeatureList ::= SEQUENCE {
+ -- indicates capabilities of the endpoint sending the FeatureList
+ ssCFreRoutingSupported NULL OPTIONAL, -- Call Forwarding rerouting
+
+ -- supported meaningful only in
+ -- forward direction during call
+ -- establishment
+ ssCTreRoutingSupported NULL OPTIONAL, -- Call Transfer rerouting
+
+ -- supported meaningful both in
+ -- forward & backward direction
+ -- during call establishment
+ ssCCBSPossible NULL OPTIONAL, -- CCBS possible meaningful only
+
+ -- in backward direction before
+ -- receipt of ALERTING/CONNECT
+ ssCCNRPossible NULL OPTIONAL, -- CCNR possible meaningful only
+
+ -- in backward direction before
+ -- receipt of CONNECT
+ ssCOSupported NULL OPTIONAL, -- Call Offer supported
+
+ -- meaningful only in backward
+ -- direction during call
+ -- establishment
+ -- Call Intrusion
+ ssCIForcedReleaseSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCIIsolationSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCIWaitOnBusySupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCISilentMonitoringSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ ssCIConferenceSupported NULL OPTIONAL, -- meaningful only in
+
+ -- backward direction
+ -- Call Hold
+ ssCHFarHoldSupported NULL OPTIONAL, -- meaningful in both
+
+ -- directions
+ -- Message Waiting Callback
+ ssMWICallbackSupported NULL OPTIONAL, -- meaningful in backward
+
+ -- direction
+ -- meaningful both in
+ -- forward & backward
+ -- direction during call
+ -- establishment
+ -- Call Park
+ ssCPCallParkSupported NULL OPTIONAL, -- meaningful in both
+
+ -- directions
+ ...
+}
+
+FeatureValues ::= SEQUENCE {
+ partyCategory PartyCategory OPTIONAL,
+ ssCIprotectionLevel SSCIProtectionLevel OPTIONAL,
+ -- Supplementary Service Call Intrusion Protection level
+ -- meaningful both in forward and backward direction; inclusion
+ -- indicates support of SS-CI as an unwanted endpoint (forward
+ -- direction) or as a Terminating Endpoint (backward direction),
+ -- as well as the applicable protection level.
+ ...
+}
+
+PartyCategory ::= ENUMERATED {unknown, extension, attendant, emergExt, ...
+ }
+
+SSCIProtectionLevel ::= INTEGER(0..3)
+
+FeatureControl ::= SEQUENCE {
+ ssCHDoNotHold NULL OPTIONAL, -- meaningful in both directions
+
+ -- Sending endpoint shall not be held
+ ssCTDoNotTransfer NULL OPTIONAL, -- meaningful in both directions
+
+ -- sending endpoint shall not be transferred
+ ssMWICallbackCall NULL OPTIONAL, -- meaningful only in SETUP
+
+ -- indicating a callback call
+ ssCISilentMonitorPermitted NULL OPTIONAL, -- unwanted endpoint
+
+ -- allows for
+ -- silent monitoring
+ -- meaningful in forward and backward direction
+ ...
+}
+
+END -- of Common-Information-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn b/epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn
new file mode 100644
index 00000000..adb22cda
--- /dev/null
+++ b/epan/dissectors/asn1/h450/H225-generic-parameters-definition.asn
@@ -0,0 +1,17 @@
+-- H225-generic-parameters-definition.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H225-generic-parameters-definition.asn
+--
+
+-- Module H225-generic-parameters-definition (H.450.1:02/1998)
+H225-generic-parameters-definition {itu-t recommendation h 450 1 version1(0)
+ h225-generic-parameters(6)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+H225InformationElement ::= OCTET STRING
+
+END -- of H225 Generic parameters definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/H4501-General-Error-List.asn b/epan/dissectors/asn1/h450/H4501-General-Error-List.asn
new file mode 100644
index 00000000..2e9f9ec3
--- /dev/null
+++ b/epan/dissectors/asn1/h450/H4501-General-Error-List.asn
@@ -0,0 +1,100 @@
+-- H4501-General-Error-List.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H4501-General-Error-List.asn
+--
+
+-- Module H4501-General-Error-List (H.450.1:02/1998)
+H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- The following errors are based on the error definitions of Recommendation Q.950.
+userNotSubscribed ERROR ::= {CODE local:0
+}
+
+-- is an indication that the user has not subscribed to this service.
+rejectedByNetwork ERROR ::= {CODE local:1
+}
+
+-- is an indication that the requested service is rejected by the network
+-- (e.g. gatekeeper).
+rejectedByUser ERROR ::= {CODE local:2
+}
+
+-- is an indication that the requested service is provided by the
+-- network but that the remote user has rejected this service request.
+notAvailable ERROR ::= {CODE local:3
+}
+
+-- is an indication that the user has subscribed to this service but the
+-- requested service is not available combined with the basic service or
+-- the other services (e.g. operation).
+insufficientInformation ERROR ::= {CODE local:5
+}
+
+-- is an indication that the content of operation argument is
+-- incomplete, or absent entirely.
+invalidServedUserNumber ERROR ::= {CODE local:6
+}
+
+-- is an indication that the requested service cannot be performed
+-- because of the usage of an invalid served user number.
+invalidCallState ERROR ::= {CODE local:7
+}
+
+-- is an indication that no match exists between the service request and
+-- the valid H.225.0 call state, this applies also to invalid
+-- auxiliary states or an invalid combination of H.225.0 call states and
+-- auxiliary states.
+basicServiceNotProvided ERROR ::= {CODE local:8
+}
+
+-- is an indication that the service request is directed to a Basic
+-- Service which is not provided (e.g. this return error value is used
+-- in cases where a supplementary service is to be invoked with a SETUP
+-- message but indicating the wrong Basic Service).
+notIncomingCall ERROR ::= {CODE local:9
+}
+
+-- is an indication that the service request has been invoked for an
+-- outgoing call, which is not permitted for that service.
+supplementaryServiceInteractionNotAllowed ERROR ::= {CODE local:10
+}
+
+-- is an indication that the Service request is not permitted in
+-- combination with either a further requested or active supplementary
+-- service.
+resourceUnavailable ERROR ::= {CODE local:11
+}
+
+-- is an indication that the service provider has temporarily no
+-- resource available for the provision of the requested service.
+callFailure ERROR ::= {CODE local:25
+}
+
+-- is an indication that the requested supplementary service was not executable by virtue
+-- of a Basic Call Failure. The parameter is included under circumstances where the
+-- call failure was remote from the local gatekeeper interface over which the error is to
+-- be sent. For example when:
+-- a) no H.225.0 RELEASE COMPLETE message is provided locally, or
+-- b) the cause information element included in the RELEASE COMPLETE
+-- message represents only the reason for local basic call clearing.
+-- In these cases the parameter value represents the clearing cause included in the
+-- remote clearing procedure.
+proceduralError ERROR ::= {CODE local:43
+}
+
+-- is an indication that a transport message (e.g. SETUP)
+-- is received which has one or more operation APDUs which have a valid
+-- content but which are not specified as valid information content of
+-- the transport message used.
+END -- of H4501-General-Error-List
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn b/epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn
new file mode 100644
index 00000000..85904389
--- /dev/null
+++ b/epan/dissectors/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn
@@ -0,0 +1,72 @@
+-- H4501-Supplementary-ServiceAPDU-Structure.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H4501-Supplementary-ServiceAPDU-Structure.asn
+--
+
+-- Module H4501-Supplementary-ServiceAPDU-Structure (H.450.1:02/1998)
+H4501-Supplementary-ServiceAPDU-Structure {itu-t recommendation h 450
+ 1 version1(0) h4501-facility-information-structure(2)} DEFINITIONS AUTOMATIC
+TAGS ::=
+BEGIN
+
+IMPORTS
+ AliasAddress
+ FROM H323-MESSAGES -- see H.225.0 V2
+
+ OPERATION, ROS{}, InvokeId
+ FROM Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+ remote-operations-apdus(11)};
+
+H4501SupplementaryService ::= SEQUENCE {
+ networkFacilityExtension NetworkFacilityExtension OPTIONAL, -- see 8.1
+ interpretationApdu InterpretationApdu OPTIONAL, -- see 8.2
+ serviceApdu ServiceApdus, -- H.450.x supplementary services
+ ...
+}
+
+NetworkFacilityExtension ::= SEQUENCE {
+ sourceEntity EntityType,
+ sourceEntityAddress AddressInformation OPTIONAL,
+ destinationEntity EntityType,
+ destinationEntityAddress AddressInformation OPTIONAL,
+ ...
+}
+
+EntityType ::= CHOICE {endpoint NULL,
+ anyEntity NULL,
+ ...
+}
+
+AddressInformation ::= AliasAddress
+
+InterpretationApdu ::= CHOICE {
+ discardAnyUnrecognizedInvokePdu NULL,
+ clearCallIfAnyInvokePduNotRecognized NULL,
+ -- this value also applies to Call independent signalling connections
+ rejectAnyUnrecognizedInvokePdu NULL,
+ -- this coding is implied by the absence of an interpretation APDU.
+ ...
+}
+
+ServiceApdus ::= CHOICE {
+ rosApdus
+ SEQUENCE SIZE (1..MAX) OF
+ ROS{{InvokeIdSet}, {OperationSet}, {OperationSet}},
+ -- see 8.3; other alternatives may be defined in future versions
+ ...
+}
+
+InvokeIdSet INTEGER ::= {InvokeIDs, ...}
+
+InvokeIDs ::= INTEGER(0..65535)
+
+OperationSet OPERATION ::=
+ {...}
+
+-- actual values are defined by individual supplementary service specifications
+-- (e.g. H.450.x or manufacturer specific)
+END -- of H4501- Supplementary-ServiceAPDU-Structure
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn b/epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn
new file mode 100644
index 00000000..80a591d4
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Manufacturer-specific-service-extension-definition.asn
@@ -0,0 +1,31 @@
+-- Manufacturer-specific-service-extension-definition.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Manufacturer-specific-service-extension-definition.asn
+--
+
+-- Module Manufacturer-specific-service-extension-definition (H.450.1:02/1998)
+Manufacturer-specific-service-extension-definition {itu-t recommendation
+ h 450 1 version1(0) msi-definition(18)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXTENSION ::= CLASS {&ArgumentType ,
+ &extensionId OBJECT IDENTIFIER
+}WITH SYNTAX {ARGUMENT &ArgumentType
+ IDENTIFIER &extensionId
+}
+
+Extension{EXTENSION:ExtensionSet} ::= SEQUENCE {
+ extensionId EXTENSION.&extensionId({ExtensionSet}),
+ extensionArgument EXTENSION.&ArgumentType({ExtensionSet}{@extensionId})
+}
+
+-- ExtensionSet is a set of objects of class EXTENSION.
+-- Actual values of ExtensionSet are defined by the individual manufacturers.
+-- Element extensionId is constrained to be the identifier of an object from that set.
+-- Element extensionArgument is constrained to be the argument type for that particular
+-- object.
+END -- of Manufacturer-specific-service-extension-definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn b/epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn
new file mode 100644
index 00000000..89d3d20a
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Message-Waiting-Indication-Operations.asn
@@ -0,0 +1,169 @@
+-- Message-Waiting-Indication-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.7/1999/Message-Waiting-Indication-Operations.asn
+--
+
+-- Module Message-Waiting-Indication-Operations (H.450.7:05/1999)
+Message-Waiting-Indication-Operations {itu-t recommendation h 450 7 version1(0)
+ message-waiting-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ userNotSubscribed, invalidServedUserNumber, basicServiceNotProvided
+ FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
+ general-error-list(1)}
+ EndpointAddress
+ FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
+ addressing-data-elements(9)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+H323-MWI-Operations OPERATION ::=
+ {mwiActivate | mwiDeactivate | mwiInterrogate}
+
+mwiActivate OPERATION ::= {
+ ARGUMENT MWIActivateArg
+ RESULT DummyRes
+ ERRORS
+ {userNotSubscribed | invalidServedUserNumber | basicServiceNotProvided |
+ undefined}
+ CODE local:80
+}
+
+mwiDeactivate OPERATION ::= {
+ ARGUMENT MWIDeactivateArg
+ RESULT DummyRes
+ ERRORS
+ {userNotSubscribed | invalidServedUserNumber | basicServiceNotProvided |
+ undefined}
+ CODE local:81
+}
+
+mwiInterrogate OPERATION ::= {
+ ARGUMENT MWIInterrogateArg
+ RESULT MWIInterrogateRes
+ ERRORS
+ {userNotSubscribed | invalidServedUserNumber | notActivated |
+ invalidMsgCentreId | undefined}
+ CODE local:82
+}
+
+MWIActivateArg ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ nbOfMessages NbOfMessages OPTIONAL,
+ originatingNr EndpointAddress OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority INTEGER(0..9) OPTIONAL,
+ -- the value 0 means the highest priority and 9 the lowest
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+DummyRes ::= SEQUENCE SIZE (0..255) OF MixedExtension
+
+MWIDeactivateArg ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ callbackReq BOOLEAN OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MWIInterrogateArg ::= SEQUENCE {
+ servedUserNr EndpointAddress,
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ callbackReq BOOLEAN OPTIONAL,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MWIInterrogateRes ::= SEQUENCE SIZE (1..64) OF MWIInterrogateResElt
+
+MWIInterrogateResElt ::= SEQUENCE {
+ basicService BasicService,
+ msgCentreId MsgCentreId OPTIONAL,
+ nbOfMessages NbOfMessages OPTIONAL,
+ originatingNr EndpointAddress OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority INTEGER(0..9) OPTIONAL,
+ -- the value 0 means the highest priority and 9 the lowest
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...
+}
+
+MsgCentreId ::= CHOICE {
+ -- only partyNumber provides a callable identification
+ integer INTEGER(0..65535),
+ partyNumber EndpointAddress,
+ numericString NumericString(SIZE (1..10))
+}
+
+NbOfMessages ::= INTEGER(0..65535)
+
+TimeStamp ::= GeneralizedTime(SIZE (12..19))
+
+-- a VisibleString representation of date and time following ISO 8601
+-- containing:
+-- - the (local) date in 8 digits (YYYYMMDD),
+-- - followed by (local) time of day in 4 or 6 digits [HHMM(SS)],
+-- - optionally followed by the letter "Z" or by a local time differential
+-- from UTC time in 5 digits ("+"HHMM or "-"HHMM);
+-- Examples:
+-- 1) 19970621194530, meaning 21 June 1997, 19:45:30;
+-- 2) 19970621194530Z, meaning the same as 1);
+-- 3) 19970621194530-0500, meaning the same as 1),
+-- 5 hours retarded in relation to UTC time
+undefined ERROR ::= {
+ PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
+ OPTIONAL TRUE
+ CODE local:2002
+}
+
+invalidMsgCentreId ERROR ::=
+ { -- returned by a Message Centre endpoint when an unknown Message
+ -- Centre Identifier is specified in a mwiInterrogate invoke
+ CODE local:1018
+}
+
+BasicService ::= ENUMERATED {
+ -- MWI Services:
+ -- for compatibility among vendors, speech is recommended for voice mail
+ -- indications
+ allServices(0), speech(1), unrestrictedDigitalInformation(2), audio3100Hz(3),
+ telephony(32), teletex(33), telefaxGroup4Class1(34), videotexSyntaxBased(35),
+ videotelephony(36), telefaxGroup2-3(37), reservedNotUsed1(38),
+ reservedNotUsed2(39), reservedNotUsed3(40), reservedNotUsed4(41),
+ reservedNotUsed5(42),
+ --
+ -- MWI Service Classes:
+ email(51), video(52), fileTransfer(53), shortMessageService(54),
+ speechAndVideo(55), speechAndFax(56), speechAndEmail(57), videoAndFax(58),
+ videoAndEmail(59), faxAndEmail(60), speechVideoAndFax(61),
+ speechVideoAndEmail(62), speechFaxAndEmail(63), videoFaxAndEmail(64),
+ speechVideoFaxAndEmail(65), multimediaUnknown(66),
+ serviceUnknown(67),
+ --
+ -- Reserved for future additions:
+ futureReserve1(68), futureReserve2(69), futureReserve3(70),
+ futureReserve4(71), futureReserve5(72), futureReserve6(73),
+ futureReserve7(74), futureReserve8(75)}
+
+notActivated ERROR ::= {CODE local:31
+}
+
+END -- of Message-Waiting-Indication-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/Name-Operations.asn b/epan/dissectors/asn1/h450/Name-Operations.asn
new file mode 100644
index 00000000..efb21d16
--- /dev/null
+++ b/epan/dissectors/asn1/h450/Name-Operations.asn
@@ -0,0 +1,97 @@
+-- Name-Operations.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.8/2000/Name-Operations.asn
+--
+
+-- Module Name-Operations (H.450.8:02/2000)
+Name-Operations {itu-t recommendation h 450 8 version1(0) name-operations(0)}
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-definition {itu-t
+ recommendation h 450 1 version1(0) msi-definition(18)}
+ MixedExtension
+ FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
+ call-hold-operations(0)};
+
+NameOperations OPERATION ::=
+ {callingName | alertingName | connectedName | busyName}
+
+callingName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:0
+}
+
+alertingName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:1
+}
+
+connectedName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:2
+}
+
+busyName OPERATION ::= {
+ ARGUMENT
+ SEQUENCE {name Name,
+ extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
+ ...}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local:3
+}
+
+Name ::= CHOICE {
+ namePresentationAllowed NamePresentationAllowed,
+ namePresentationRestricted NamePresentationRestricted,
+ nameNotAvailable NULL,
+ ...
+}
+
+NamePresentationAllowed ::= CHOICE {
+ simpleName SimpleName,
+ extendedName ExtendedName,
+ ...
+}
+
+NamePresentationRestricted ::= CHOICE {
+ simpleName SimpleName,
+ extendedName ExtendedName,
+ restrictedNull NULL, -- only used in case of interworking where other network
+
+ -- provides indication that the name is restricted without
+ -- the name itself
+ ...
+}
+
+SimpleName ::= OCTET STRING(SIZE (1..50))
+
+ExtendedName ::= BMPString(SIZE (1..256)) -- Basic ISO/IEC 10646-1 (Unicode)
+
+
+END -- of Name-Operations
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h450/h450.cnf b/epan/dissectors/asn1/h450/h450.cnf
new file mode 100644
index 00000000..e58630c1
--- /dev/null
+++ b/epan/dissectors/asn1/h450/h450.cnf
@@ -0,0 +1,165 @@
+# h450.cnf
+# H.450 conformation file
+# Copyright 2004 Anders Broman
+
+#.OPT
+PER
+ALIGNED
+GROUP_BY_PROT
+-o h450
+#.END
+
+#.IMPORT ../h225/h225-exp.cnf
+#.IMPORT ../h450-ros/h450-ros-exp.cnf
+
+#.MODULE
+
+H4501-Supplementary-ServiceAPDU-Structure h450
+Addressing-Data-Elements h450
+H225-generic-parameters-definition h450
+Manufacturer-specific-service-extension-definition h450
+H4501-General-Error-List h450
+
+Call-Transfer-Operations h450.2
+Call-Diversion-Operations h450.3
+Call-Hold-Operations h450.4
+Call-Park-Pickup-Operations h450.5
+Call-Waiting-Operations h450.6
+Message-Waiting-Indication-Operations h450.7
+Name-Operations h450.8
+Call-Completion-Operations h450.9
+Call-Offer-Operations h450.10
+Call-Intrusion-Operations h450.11
+Common-Information-Operations h450.12
+
+#.OMIT_ASSIGNMENT
+PresentedAddressScreened
+PresentedAddressUnscreened
+PresentedNumberScreened
+PresentedNumberUnscreened
+AddressScreened
+NumberScreened
+Address
+# implemented manually in h450-ros as asn2wrs is not able to handle subtype constraint event passed through parameter
+InvokeIDs
+#.END
+
+#.PDU
+H4501SupplementaryService
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+ERROR.&ParameterType
+
+#.FN_HDR H4501SupplementaryService
+ proto_item *hidden_item;
+
+ hidden_item = proto_tree_add_item(tree, proto_h450, tvb, offset, -1, ENC_NA);
+ proto_item_set_hidden(hidden_item);
+#.END
+
+#.FN_HDR ServiceApdus/rosApdus/_item
+ h450_rose_ctx.apdu_depth = 1;
+ actx->rose_ctx = &h450_rose_ctx;
+#.END
+
+#.TYPE_RENAME
+ARG-activateDiversionQ/extension ActivateDiversionQArg_extension
+ARG-deactivateDiversionQ/extension DeactivateDiversionQArg_extension
+ARG-interrogateDiversionQ/extension InterrogateDiversionQ_extension
+ARG-checkRestriction/extension CheckRestrictionArg_extension
+ARG-callRerouting/extension CallReroutingArg_extension
+ARG-divertingLegInformation1/extension DivertingLegInformation1Arg_extension
+ARG-divertingLegInformation2/extension DivertingLegInformation2Arg_extension
+ARG-divertingLegInformation3/extension DivertingLegInformation3Arg_extension
+ARG-divertingLegInformation4/extension DivertingLegInformation4Arg_extension
+IntResult/extension IntResult_extension
+
+#.FIELD_RENAME
+
+#PresentedAddressScreened/presentationAllowedAddress addressScreened_presentationAllowedAddress
+#PresentedNumberScreened/presentationAllowedAddress numberScreened_presentationAllowedAddress
+#PresentedNumberUnscreened/presentationAllowedAddress numberUnscreened_presentationAllowedAddress
+#PresentedAddressUnscreened/presentationAllowedAddress addressUnscreened_presentationAllowedAddress
+
+#PresentedAddressScreened/presentationRestrictedAddress addressScreened_presentationRestrictedAddress
+#PresentedNumberScreened/presentationRestrictedAddress numberScreened_presentationRestrictedAddress
+#PresentedNumberUnscreened/presentationRestrictedAddress numberUnscreened_presentationRestrictedAddress
+#PresentedAddressUnscreened/presentationRestrictedAddress addressUnscreened_presentationRestrictedAddress
+
+CTInitiateArg/argumentExtension cTInitiateArg_argumentExtension
+CTSetupArg/argumentExtension cTSetupArg_argumentExtension
+CTUpdateArg/argumentExtension cTUpdateArg_argumentExtension
+SubaddressTransferArg/argumentExtension subaddressTransferArg_argumentExtension
+CTCompleteArg/argumentExtension cTCompleteArg_argumentExtension
+CTActiveArg/argumentExtension cTActiveArg_argumentExtension
+MixedExtension/extension mixedExtension_extension
+PAR-unspecified/extension unspecified_extension
+ARG-checkRestriction/extension checkRestrictionArg_extension
+ARG-divertingLegInformation1/extension divertingLegInformation1Arg_extension
+ARG-divertingLegInformation2/extension divertingLegInformation2Arg_extension
+CcRequestArg/extension ccRequestArg_extension
+CcRequestRes/extension ccRequestRes_extension
+CcShortArg/extension ccShortArg_extension
+CcLongArg/extension ccLongArg_extension
+CoReqOptArg/extension coReqOptArg_extension
+RUAlertOptArg/extension rUAlertOptArg_extension
+CfbOvrOptArg/extension cfbOvrOptArg_extension
+CmnArg/extension cmnArg_extension
+ARG-activateDiversionQ/extension activateDiversionQArg_extension
+ARG-interrogateDiversionQ/extension interrogateDiversionQ_extension
+ARG-callRerouting/extension callReroutingArg_extension
+ARG-divertingLegInformation4/extension divertingLegInformation4Arg_extension
+ARG-divertingLegInformation3/extension divertingLegInformation3Arg_extension
+ARG-deactivateDiversionQ/extension deactivateDiversionQArg_extension
+IntResult/extension intResult_extension
+
+MWIActivateArg/extensionArg mWIActivateArg_extensionArg
+MWIDeactivateArg/extensionArg mWIDeactivateArg_extensionArg
+MWIInterrogateArg/extensionArg mWIInterrogateArg_extensionArg
+MWIInterrogateResElt/extensionArg mWIInterrogateResElt_extensionArg
+
+HoldNotificArg/extensionArg holdNotificArg_extensionArg
+RetrieveNotificArg/extensionArg retrieveNotificArg_extensionArg
+
+RemoteHoldArg/extensionArg remoteHoldArg_extensionArg
+RemoteRetrieveArg/extensionArg remoteRetrieveArg_extensionArg
+CpRequestArg/extensionArg cpRequestArg_extensionArg
+CpSetupArg/extensionArg cpSetupArg_extensionArg
+GroupIndicationOnArg/extensionArg groupIndicationOnArg_extensionArg
+GroupIndicationOffArg/extensionArg groupIndicationOffArg_extensionArg
+PickrequArg/extensionArg pickrequArg_extensionArg
+PickupArg/extensionArg pickupArg_extensionArg
+PickExeArg/extensionArg pickExeArg_extensionArg
+CpNotifyArg/extensionArg cpNotifyArg_extensionArg
+CpickupNotifyArg/extensionArg cpickupNotifyArg_extensionArg
+CallWaitingArg/extensionArg callWaitingArg_extensionArg
+CIRequestArg/argumentExtension cIRequestArg_argumentExtension
+CIGetCIPLOptArg/argumentExtension cIGetCIPLOptArg_argumentExtension
+CIIsOptArg/argumentExtension cIIsOptArg_argumentExtension
+CIFrcRelArg/argumentExtension cIFrcRelArg_argumentExtension
+CIWobOptArg/argumentExtension cIWobOptArg_argumentExtension
+CISilentArg/argumentExtension cISilentArg_argumentExtension
+CINotificationArg/argumentExtension cINotificationArg_argumentExtension
+
+CIRequestRes/resultExtension cIRequestRes_resultExtension
+CIGetCIPLRes/resultExtension cIGetCIPLRes_resultExtension
+CIIsOptRes/resultExtension cIIsOptRes_resultExtension
+CIFrcRelOptRes/resultExtension cIFrcRelOptRes_resultExtension
+CIWobOptRes/resultExtension cIWobOptRes_resultExtension
+CISilentOptRes/resultExtension cISilentOptRes_resultExtension
+
+#.TABLE10_BODY OPERATION
+ { %(&operationCode)3s, "%(_name)s" },
+#.END
+
+#.TABLE11_BODY OPERATION
+ /* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
+#.END
+
+#.TABLE20_BODY ERROR
+ { %(&errorCode)4s, "%(_name)s" },
+#.END
+
+#.TABLE21_BODY ERROR
+ /* %(_name)-24s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.END
diff --git a/epan/dissectors/asn1/h450/packet-h450-template.c b/epan/dissectors/asn1/h450/packet-h450-template.c
new file mode 100644
index 00000000..b9a72714
--- /dev/null
+++ b/epan/dissectors/asn1/h450/packet-h450-template.c
@@ -0,0 +1,312 @@
+/* packet-h450.c
+ * Routines for h450 packet dissection
+ * Based on the previous h450 dissector by:
+ * 2003 Graeme Reid (graeme.reid@norwoodsystems.com)
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Credit to Tomas Kukosa for developing the asn2wrs compiler.
+ *
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/expert.h>
+
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+#include "packet-h225.h"
+
+#include "packet-h450-ros.h"
+
+#define PNAME "H.450 Supplementary Services"
+#define PSNAME "H.450"
+#define PFNAME "h450"
+
+void proto_register_h450(void);
+void proto_reg_handoff_h450(void);
+
+static dissector_handle_t h450_arg_handle;
+static dissector_handle_t h450_res_handle;
+static dissector_handle_t h450_err_handle;
+
+/* Initialize the protocol and registered fields */
+static int proto_h450 = -1;
+static int hf_h450_operation = -1;
+static int hf_h450_error = -1;
+#include "packet-h450-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h450-ett.c"
+
+static expert_field ei_h450_unsupported_arg_type = EI_INIT;
+static expert_field ei_h450_unsupported_result_type = EI_INIT;
+static expert_field ei_h450_unsupported_error_type = EI_INIT;
+
+static const value_string h450_str_operation[] = {
+#include "packet-h450-table10.c"
+ { 0, NULL}
+};
+
+static const value_string h450_str_error[] = {
+#include "packet-h450-table20.c"
+ { 0, NULL}
+};
+
+/* ROSE context */
+static rose_ctx_t h450_rose_ctx;
+
+/* Global variables */
+
+#include "packet-h450-fn.c"
+
+typedef struct _h450_op_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} h450_op_t;
+
+static const h450_op_t h450_op_tab[] = {
+#include "packet-h450-table11.c"
+};
+
+typedef struct _h450_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} h450_err_t;
+
+static const h450_err_t h450_err_tab[] = {
+#include "packet-h450-table21.c"
+};
+
+static const h450_op_t *get_op(gint32 opcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(h450_op_tab) - 1; i >= 0; i--)
+ if (h450_op_tab[i].opcode == opcode)
+ return &h450_op_tab[i];
+ return NULL;
+}
+
+static const h450_err_t *get_err(gint32 errcode) {
+ int i;
+
+ /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
+ for (i = array_length(h450_err_tab) - 1; i >= 0; i--)
+ if (h450_err_tab[i].errcode == errcode)
+ return &h450_err_tab[i];
+ return NULL;
+}
+
+/*--- dissect_h450_arg ------------------------------------------------------*/
+static int
+dissect_h450_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ proto_item *hidden_item;
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode;
+ const h450_op_t *op_ptr;
+ const gchar *p;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 1) /* invoke */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+
+ hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
+ proto_item_set_hidden(hidden_item);
+ p = try_val_to_str(opcode, VALS(h450_str_operation));
+ if (p) {
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (op_ptr->arg_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
+ offset = op_ptr->arg_pdu(tvb, pinfo, tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_arg_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_h450_res ------------------------------------------------------*/
+static int
+dissect_h450_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ proto_item *hidden_item;
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 opcode;
+ const h450_op_t *op_ptr;
+ const gchar *p;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 2) /* returnResult */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ opcode = rctx->d.code_local;
+ op_ptr = get_op(opcode);
+ if (!op_ptr)
+ return offset;
+
+ hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
+ proto_item_set_hidden(hidden_item);
+ p = try_val_to_str(opcode, VALS(h450_str_operation));
+ if (p) {
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (op_ptr->res_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
+ offset = op_ptr->res_pdu(tvb, pinfo, tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_result_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- dissect_h450_err ------------------------------------------------------*/
+static int
+dissect_h450_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ proto_item *hidden_item;
+ int offset = 0;
+ rose_ctx_t *rctx;
+ gint32 errcode;
+ const h450_err_t *err_ptr;
+ const gchar *p;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ rctx = get_rose_ctx(data);
+ DISSECTOR_ASSERT(rctx);
+
+ if (rctx->d.pdu != 3) /* returnError */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ errcode = rctx->d.code_local;
+ err_ptr = get_err(errcode);
+ if (!err_ptr)
+ return offset;
+
+ hidden_item = proto_tree_add_uint(tree, hf_h450_error, tvb, 0, 0, errcode);
+ proto_item_set_hidden(hidden_item);
+ p = try_val_to_str(errcode, VALS(h450_str_error));
+ if (p) {
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (err_ptr->err_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
+ offset = err_ptr->err_pdu(tvb, pinfo, tree, NULL);
+ else
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_error_type, tvb, offset, -1);
+ offset += tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/*--- proto_register_h450 -------------------------------------------*/
+void proto_register_h450(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_h450_operation, { "Operation", "h450.operation",
+ FT_UINT8, BASE_DEC, VALS(h450_str_operation), 0x0,
+ NULL, HFILL }},
+ { &hf_h450_error, { "Error", "h450.error",
+ FT_UINT16, BASE_DEC, VALS(h450_str_error), 0x0,
+ NULL, HFILL }},
+#include "packet-h450-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h450-ettarr.c"
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_h450_unsupported_arg_type, { "h450.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (H.450)", EXPFILL }},
+ { &ei_h450_unsupported_result_type, { "h450.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (H.450)", EXPFILL }},
+ { &ei_h450_unsupported_error_type, { "h450.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (H.450)", EXPFILL }},
+ };
+
+ expert_module_t* expert_h450;
+
+ /* Register protocol */
+ proto_h450 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("h4501", dissect_h450_H4501SupplementaryService_PDU, proto_h450);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h450, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_h450 = expert_register_protocol(proto_h450);
+ expert_register_field_array(expert_h450, ei, array_length(ei));
+
+ rose_ctx_init(&h450_rose_ctx);
+
+ /* Register dissectors */
+ h450_arg_handle = register_dissector("h4501_arg", dissect_h450_arg, proto_h450);
+ h450_res_handle = register_dissector("h4501_res", dissect_h450_res, proto_h450);
+ h450_err_handle = register_dissector("h4501_err", dissect_h450_err, proto_h450);
+
+ /* Register dissector tables */
+ h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE);
+ h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE);
+ h450_rose_ctx.arg_local_dissector_table = register_dissector_table("h450.ros.local.arg", "H.450 Operation Argument (local opcode)", proto_h450, FT_UINT32, BASE_HEX);
+ h450_rose_ctx.res_local_dissector_table = register_dissector_table("h450.ros.local.res", "H.450 Operation Result (local opcode)", proto_h450, FT_UINT32, BASE_HEX);
+ h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE);
+ h450_rose_ctx.err_local_dissector_table = register_dissector_table("h450.ros.local.err", "H.450 Error (local opcode)", proto_h450, FT_UINT32, BASE_HEX);
+
+}
+
+
+/*--- proto_reg_handoff_h450 ---------------------------------------*/
+void
+proto_reg_handoff_h450(void)
+{
+ int i;
+
+ for (i=0; i<(int)array_length(h450_op_tab); i++) {
+ dissector_add_uint("h450.ros.local.arg", h450_op_tab[i].opcode, h450_arg_handle);
+ dissector_add_uint("h450.ros.local.res", h450_op_tab[i].opcode, h450_res_handle);
+ }
+ for (i=0; i<(int)array_length(h450_err_tab); i++) {
+ dissector_add_uint("h450.ros.local.err", h450_err_tab[i].errcode, h450_err_handle);
+ }
+
+}