aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/h450
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-07-30 08:01:59 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-07-30 08:01:59 +0000
commit5a46ea46b5d79e119f902d52ce714f4a2466deed (patch)
treed28654291f462760aca4ef6985e6ea5946ec91c1 /asn1/h450
parent4142a2b90f1e248997f3979346c550373561981c (diff)
H.450 regenerated from original ASN.1 sources
svn path=/trunk/; revision=22417
Diffstat (limited to 'asn1/h450')
-rw-r--r--asn1/h450/Addressing-Data-Elements.asn127
-rw-r--r--asn1/h450/Call-Completion-Operations.asn156
-rw-r--r--asn1/h450/Call-Diversion-Operations.asn325
-rw-r--r--asn1/h450/Call-Hold-Operations.asn133
-rw-r--r--asn1/h450/Call-Intrusion-Operations.asn211
-rw-r--r--asn1/h450/Call-Offer-Operations.asn73
-rw-r--r--asn1/h450/Call-Park-Pickup-Operations.asn304
-rw-r--r--asn1/h450/Call-Transfer-Operations.asn246
-rw-r--r--asn1/h450/Call-Waiting-Operations.asn47
-rw-r--r--asn1/h450/Common-Information-Operations.asn151
-rw-r--r--asn1/h450/H225-generic-parameters-definition.asn19
-rw-r--r--asn1/h450/H4501-General-Error-List.asn102
-rw-r--r--asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn74
-rw-r--r--asn1/h450/Makefile13
-rw-r--r--asn1/h450/Makefile.nmake30
-rw-r--r--asn1/h450/Manufacturer-specific-service-extension-definition.asn33
-rw-r--r--asn1/h450/Message-Waiting-Indication-Operations.asn171
-rw-r--r--asn1/h450/Name-Operations.asn99
-rw-r--r--asn1/h450/Remote-Operations-Apdus.asn152
-rw-r--r--asn1/h450/h450-ros-exp.cnf14
-rw-r--r--asn1/h450/h450-ros.cnf192
-rw-r--r--asn1/h450/h450.cnf111
-rw-r--r--asn1/h450/h4501.asn1899
-rw-r--r--asn1/h450/packet-h450-ros-template.c107
-rw-r--r--asn1/h450/packet-h450-ros-template.h (renamed from asn1/h450/packet-h450-template.h)17
-rw-r--r--asn1/h450/packet-h450-template.c1171
26 files changed, 3047 insertions, 2930 deletions
diff --git a/asn1/h450/Addressing-Data-Elements.asn b/asn1/h450/Addressing-Data-Elements.asn
new file mode 100644
index 0000000000..bab8dbaf04
--- /dev/null
+++ b/asn1/h450/Addressing-Data-Elements.asn
@@ -0,0 +1,127 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Completion-Operations.asn b/asn1/h450/Call-Completion-Operations.asn
new file mode 100644
index 0000000000..62e8187264
--- /dev/null
+++ b/asn1/h450/Call-Completion-Operations.asn
@@ -0,0 +1,156 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Diversion-Operations.asn b/asn1/h450/Call-Diversion-Operations.asn
new file mode 100644
index 0000000000..e5f7233ec7
--- /dev/null
+++ b/asn1/h450/Call-Diversion-Operations.asn
@@ -0,0 +1,325 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Hold-Operations.asn b/asn1/h450/Call-Hold-Operations.asn
new file mode 100644
index 0000000000..764119d0ff
--- /dev/null
+++ b/asn1/h450/Call-Hold-Operations.asn
@@ -0,0 +1,133 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Intrusion-Operations.asn b/asn1/h450/Call-Intrusion-Operations.asn
new file mode 100644
index 0000000000..b5b1620dc1
--- /dev/null
+++ b/asn1/h450/Call-Intrusion-Operations.asn
@@ -0,0 +1,211 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Offer-Operations.asn b/asn1/h450/Call-Offer-Operations.asn
new file mode 100644
index 0000000000..356332a966
--- /dev/null
+++ b/asn1/h450/Call-Offer-Operations.asn
@@ -0,0 +1,73 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Park-Pickup-Operations.asn b/asn1/h450/Call-Park-Pickup-Operations.asn
new file mode 100644
index 0000000000..18f6c76f30
--- /dev/null
+++ b/asn1/h450/Call-Park-Pickup-Operations.asn
@@ -0,0 +1,304 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Transfer-Operations.asn b/asn1/h450/Call-Transfer-Operations.asn
new file mode 100644
index 0000000000..5302f146f3
--- /dev/null
+++ b/asn1/h450/Call-Transfer-Operations.asn
@@ -0,0 +1,246 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Call-Waiting-Operations.asn b/asn1/h450/Call-Waiting-Operations.asn
new file mode 100644
index 0000000000..3f7920f496
--- /dev/null
+++ b/asn1/h450/Call-Waiting-Operations.asn
@@ -0,0 +1,47 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Common-Information-Operations.asn b/asn1/h450/Common-Information-Operations.asn
new file mode 100644
index 0000000000..d4e5901fb7
--- /dev/null
+++ b/asn1/h450/Common-Information-Operations.asn
@@ -0,0 +1,151 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/H225-generic-parameters-definition.asn b/asn1/h450/H225-generic-parameters-definition.asn
new file mode 100644
index 0000000000..84c3e0e756
--- /dev/null
+++ b/asn1/h450/H225-generic-parameters-definition.asn
@@ -0,0 +1,19 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/H4501-General-Error-List.asn b/asn1/h450/H4501-General-Error-List.asn
new file mode 100644
index 0000000000..b14511e467
--- /dev/null
+++ b/asn1/h450/H4501-General-Error-List.asn
@@ -0,0 +1,102 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn b/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn
new file mode 100644
index 0000000000..ad7284dca2
--- /dev/null
+++ b/asn1/h450/H4501-Supplementary-ServiceAPDU-Structure.asn
@@ -0,0 +1,74 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Makefile b/asn1/h450/Makefile
index c7d8051288..08029d5bbf 100644
--- a/asn1/h450/Makefile
+++ b/asn1/h450/Makefile
@@ -1,14 +1,21 @@
# $Id$
-DISSECTOR_FILES=packet-h450.c packet-h450.h
+H450_FILES=packet-$(PROTOCOL_NAME).c
+H450_ROS_FILES=packet-$(PROTOCOL_NAME)-ros.c packet-$(PROTOCOL_NAME)-ros.h
+DISSECTOR_FILES=$(H450_FILES) $(H450_ROS_FILES)
+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
+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
+H450_ROS_ASN=../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
-$(DISSECTOR_FILES): ../../tools/asn2wrs.py h4501.asn packet-h450-template.c packet-h450-template.h h450.cnf
- python ../../tools/asn2wrs.py -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn
+$(H450_FILES): ../../tools/asn2wrs.py $(H450_ASN) $(H450_OP_ASN) packet-h450-template.c packet-h450-template.h h450.cnf
+ python ../../tools/asn2wrs.py -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(H450_ASN) $(H450_OP_ASN)
+$(H450_ROS_FILES): ../../tools/asn2wrs.py $(H450_ROS_ASN) packet-$(PROTOCOL_NAME)-ros-template.c $(PROTOCOL_NAME)-ros.cnf
+ python ../../tools/asn2wrs.py -e -p $(PROTOCOL_NAME).ros -c $(PROTOCOL_NAME)-ros.cnf -o $(PROTOCOL_NAME)-ros -s packet-$(PROTOCOL_NAME)-ros-template $(H450_ROS_ASN)
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
diff --git a/asn1/h450/Makefile.nmake b/asn1/h450/Makefile.nmake
index 25377f8d6d..4cd8aff7cd 100644
--- a/asn1/h450/Makefile.nmake
+++ b/asn1/h450/Makefile.nmake
@@ -7,15 +7,28 @@ include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=h450
-DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
+H450_FILES=packet-$(PROTOCOL_NAME).c
+H450_ROS_FILES=packet-$(PROTOCOL_NAME)-ros.c packet-$(PROTOCOL_NAME)-ros.h
+DISSECTOR_FILES=$(H450_FILES) $(H450_ROS_FILES)
+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
+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
+H450_ROS_ASN=../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
-$(DISSECTOR_FILES): ../../tools/asn2wrs.py h4501.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
+$(H450_FILES): ../../tools/asn2wrs.py $(H450_ASN) $(H450_OP_ASN) packet-$(PROTOCOL_NAME)-template.c $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
- $(PYTHON) "../../tools/asn2wrs.py" -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn
+ $(PYTHON) "../../tools/asn2wrs.py" -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(H450_ASN) $(H450_OP_ASN)
+!ELSE
+ @echo Error: You need Python to use asn2wrs.py
+ @exit 1
+!ENDIF
+
+$(H450_ROS_FILES): ../../tools/asn2wrs.py $(H450_ROS_ASN) packet-$(PROTOCOL_NAME)-ros-template.c $(PROTOCOL_NAME)-ros.cnf
+!IFDEF PYTHON
+ $(PYTHON) "../../tools/asn2wrs.py" -e -p $(PROTOCOL_NAME).ros -c $(PROTOCOL_NAME)-ros.cnf -o $(PROTOCOL_NAME)-ros -s packet-$(PROTOCOL_NAME)-ros-template $(H450_ROS_ASN)
!ELSE
@echo Error: You need Python to use asn2wrs.py
@exit 1
@@ -35,11 +48,14 @@ maintainer-clean: distclean
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
- move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
+ move packet-$(PROTOCOL_NAME)-ros.c packet-$(PROTOCOL_NAME)-ros.c.tmp
+ move packet-$(PROTOCOL_NAME)-ros.h packet-$(PROTOCOL_NAME)-ros.h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
- $(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
- del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
+ $(UNIX2DOS) < packet-$(PROTOCOL_NAME)-ros.c.tmp > packet-$(PROTOCOL_NAME)-ros.c
+ $(UNIX2DOS) < packet-$(PROTOCOL_NAME)-ros.h.tmp > packet-$(PROTOCOL_NAME)-ros.h
+ del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME)-ros.c.tmp packet-$(PROTOCOL_NAME)-ros.h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
- xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y
+ xcopy packet-$(PROTOCOL_NAME)-ros.c ..\..\epan\dissectors /d /y
+ xcopy packet-$(PROTOCOL_NAME)-ros.h ..\..\epan\dissectors /d /y
diff --git a/asn1/h450/Manufacturer-specific-service-extension-definition.asn b/asn1/h450/Manufacturer-specific-service-extension-definition.asn
new file mode 100644
index 0000000000..3d7abae1bd
--- /dev/null
+++ b/asn1/h450/Manufacturer-specific-service-extension-definition.asn
@@ -0,0 +1,33 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Message-Waiting-Indication-Operations.asn b/asn1/h450/Message-Waiting-Indication-Operations.asn
new file mode 100644
index 0000000000..8cd0e94fdb
--- /dev/null
+++ b/asn1/h450/Message-Waiting-Indication-Operations.asn
@@ -0,0 +1,171 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Name-Operations.asn b/asn1/h450/Name-Operations.asn
new file mode 100644
index 0000000000..0f8cef7f4a
--- /dev/null
+++ b/asn1/h450/Name-Operations.asn
@@ -0,0 +1,99 @@
+-- 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
+--
+-- $Id$
+--
+
+-- 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/asn1/h450/Remote-Operations-Apdus.asn b/asn1/h450/Remote-Operations-Apdus.asn
new file mode 100644
index 0000000000..72a90352c2
--- /dev/null
+++ b/asn1/h450/Remote-Operations-Apdus.asn
@@ -0,0 +1,152 @@
+-- Remote-Operations-Apdus.asn
+--
+-- Taken from ITU ASN.1 database
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Remote-Operations-Apdus.asn
+--
+-- $Id$
+--
+
+-- Module Remote-Operations-Apdus (H.450.1:02/1998)
+Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
+ remote-operations-apdus(11)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous -- } !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ InvokeId
+ (CONSTRAINED BY {-- must identify an outstanding operation -- } !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations-- } !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+--(
+-- WITH COMPONENTS
+-- {
+-- ...,
+-- linkedId ABSENT
+-- }
+-- WITH COMPONENTS {
+-- ...,
+-- linkedId PRESENT,
+-- opcode (CONSTRAINED BY {
+-- must be in the &Linked field of the associated operation
+-- } ! RejectProblem : invoke-unexpectedLinkedOperation)
+-- }
+--)
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation -- } !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result -- } !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY {-- identified by invokeId -- } !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation -- } !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error -- } !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY {--must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general GeneralProblem,
+ invoke InvokeProblem,
+ returnResult ReturnResultProblem,
+ returnError ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedComponent(0), mistypedComponent(1), badlyStructuredComponent(2)
+}
+
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= INTEGER
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+END -- end of Remote-Operations-Apdus definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/h450/h450-ros-exp.cnf b/asn1/h450/h450-ros-exp.cnf
new file mode 100644
index 0000000000..d379db5e5c
--- /dev/null
+++ b/asn1/h450/h450-ros-exp.cnf
@@ -0,0 +1,14 @@
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\h450-ros-exp.cnf
+# ../../tools/asn2wrs.py -e -p h450.ros -c h450-ros.cnf -o h450-ros -s packet-h450-ros-template ../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn
+
+#.MODULE
+Remote-Operations-Information-Objects h450.ros
+Remote-Operations-Apdus h450.ros
+#.END
+
+#.TYPE_ATTR
+ROS TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(h450_ros_ROS_vals) BITMASK = 0
+#.END
+
diff --git a/asn1/h450/h450-ros.cnf b/asn1/h450/h450-ros.cnf
new file mode 100644
index 0000000000..ce7f484676
--- /dev/null
+++ b/asn1/h450/h450-ros.cnf
@@ -0,0 +1,192 @@
+
+#.EXPORTS
+
+ROS
+
+#.OMIT_ASSIGNMENT
+
+Priority
+RejectProblem
+
+#.TYPE_RENAME
+
+Invoke/argument InvokeArgument
+ReturnResult/result/result ResultArgument
+
+#.FIELD_RENAME
+
+Invoke/invokeId invokeIdConstrained
+
+Reject/problem/invoke invokeProblem
+Reject/problem/returnError returnErrorProblem
+Reject/problem/returnResult returnResultProblem
+
+ReturnResult/result/result resultArgument
+
+#--- ROS ---
+
+#.FN_HDR ROS
+ DISSECTOR_ASSERT(actx->rose_ctx);
+ rose_ctx_clean_data(actx->rose_ctx);
+#.END
+
+#--- Code ---
+
+#.FN_PARS
+Code VAL_PTR = &%(ACTX)s->rose_ctx->d.code
+Code/local VAL_PTR = &%(ACTX)s->rose_ctx->d.code_local
+Code/global FN_VARIANT = _str VAL_PTR = &%(ACTX)s->rose_ctx->d.code_global
+#.FN_FTR Code
+ actx->rose_ctx->d.code_item = actx->created_item;
+#.END
+
+#--- Problem ---
+
+#.FN_PARS
+GeneralProblem VAL_PTR = &problem_val
+InvokeProblem VAL_PTR = &problem_val
+ReturnResultProblem VAL_PTR = &problem_val
+ReturnErrorProblem VAL_PTR = &problem_val
+#.FN_FTR GeneralProblem
+ strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_GeneralProblem_vals), ""));
+#.FN_FTR InvokeProblem
+ strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_InvokeProblem_vals), ""));
+#.FN_FTR ReturnResultProblem
+ strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnResultProblem_vals), ""));
+#.FN_FTR ReturnErrorProblem
+ strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnErrorProblem_vals), ""));
+#.END
+
+#--- INVOKE ---
+
+# body is impleneted manually as asn2wrs is not able to handle subtype constraint event passed through parameter
+#.FN_BODY Invoke/invokeId
+ offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
+ 0U, 65535U, %(VAL_PTR)s, TRUE);
+#.END
+
+#.FIELD_ATTR
+Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_HEX
+
+#.FN_PARS Invoke/argument
+FN_VARIANT = _pdu
+TYPE_REF_FN = argument_cb
+
+#.FN_HDR Invoke
+ dissector_handle_t arg_handle = NULL;
+
+ arg_next_tvb = NULL;
+#.FN_FTR Invoke
+ actx->rose_ctx->d.pdu = 1;
+
+ if (actx->rose_ctx->d.code == 0) {
+ arg_handle = dissector_get_port_handle(actx->rose_ctx->arg_local_dissector_table, actx->rose_ctx->d.code_local);
+ } else if (actx->rose_ctx->d.code == 1) {
+ arg_handle = dissector_get_string_handle(actx->rose_ctx->arg_global_dissector_table, actx->rose_ctx->d.code_global);
+ } else {
+ arg_handle = NULL;
+ }
+
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " INV:");
+ if (!arg_handle ||
+ !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(arg_handle)))) {
+ if (actx->rose_ctx->d.code == 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %d", actx->rose_ctx->d.code_local);
+ else if (actx->rose_ctx->d.code == 1)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
+ }
+ if (!arg_next_tvb) { /* empty argument */
+ arg_next_tvb = tvb_new_subset(tvb, offset>>3, 0, 0);
+ }
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree);
+#.END
+
+
+#--- RETURN RESULT ---
+
+#.FIELD_ATTR
+ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_HEX
+
+#.FN_PARS ReturnResult/result/result
+FN_VARIANT = _pdu
+TYPE_REF_FN = result_cb
+
+#.FN_HDR ReturnResult
+ dissector_handle_t res_handle = NULL;
+
+ res_next_tvb = NULL;
+#.FN_FTR ReturnResult
+ actx->rose_ctx->d.pdu = 2;
+
+ if (actx->rose_ctx->d.code == 0) {
+ res_handle = dissector_get_port_handle(actx->rose_ctx->res_local_dissector_table, actx->rose_ctx->d.code_local);
+ } else if (actx->rose_ctx->d.code == 1) {
+ res_handle = dissector_get_string_handle(actx->rose_ctx->res_global_dissector_table, actx->rose_ctx->d.code_global);
+ } else {
+ res_handle = NULL;
+ }
+
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " RES:");
+ if (!res_handle ||
+ !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(res_handle)))) {
+ if (actx->rose_ctx->d.code == 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %d", actx->rose_ctx->d.code_local);
+ else if (actx->rose_ctx->d.code == 1)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
+ else if (actx->rose_ctx->d.code == -1) /* Code not available */
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " -");
+ }
+ if (!res_next_tvb) { /* empty result */
+ res_next_tvb = tvb_new_subset(tvb, offset>>3, 0, 0);
+ }
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree);
+#.END
+
+#--- RETURN ERROR ---
+
+#.FIELD_ATTR
+ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_HEX
+
+#.FN_PARS ReturnError/parameter
+FN_VARIANT = _pdu
+TYPE_REF_FN = error_cb
+
+#.FN_HDR ReturnError
+ dissector_handle_t err_handle = NULL;
+
+ err_next_tvb = NULL;
+#.FN_FTR ReturnError
+ actx->rose_ctx->d.pdu = 3;
+
+ if (actx->rose_ctx->d.code == 0) {
+ err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);
+ } else if (actx->rose_ctx->d.code == 1) {
+ err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);
+ } else {
+ err_handle = NULL;
+ }
+
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " ERR:");
+ if (!err_handle ||
+ !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(err_handle)))) {
+ if (actx->rose_ctx->d.code == 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %d", actx->rose_ctx->d.code_local);
+ else if (actx->rose_ctx->d.code == 1)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
+ }
+ if (!err_next_tvb) { /* empty error */
+ err_next_tvb = tvb_new_subset(tvb, offset>>3, 0, 0);
+ }
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree);
+#.END
+
+#--- REJECT ---
+
+#.FN_HDR Reject
+ problem_str[0] = '\0';
+#.FN_FTR Reject
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " REJ: %s", problem_str);
+#.END
diff --git a/asn1/h450/h450.cnf b/asn1/h450/h450.cnf
index 2f3ef90bdb..2daf6fef43 100644
--- a/asn1/h450/h450.cnf
+++ b/asn1/h450/h450.cnf
@@ -3,39 +3,61 @@
# Copyright 2004 Anders Broman
# $Id$
+#.OPT
+PER
+ALIGNED
+GROUP_BY_PROT
+-o h450
+#.END
+
#.INCLUDE ../h225/h225-exp.cnf
+#.INCLUDE h450-ros-exp.cnf
#.MODULE
-Remote-Operations-Apdus ros
+
+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
+
+#.PDU_NEW
+H4501SupplementaryService
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+ERROR.&ParameterType
+
+#.FN_HDR H4501SupplementaryService
+ proto_tree_add_item_hidden(tree, proto_h450, tvb, offset, -1, FALSE);
#.END
-#----------------------------------------------------------------------------------------
-#.PDU
-CallTransferIdentify
-CallTransferAbandon
-CallTransferInitiate
-CallTransferSetup
-CallTransferUpdate
-SubaddressTransfer
-CallTransferComplete
-CallTransferActive
-ActivateDiversionQArg
-ActivateDiversionQRes
-DeactivateDiversionQRes
-InterrogateDiversionQRes
-CheckRestrictionRes
-CallReroutingRes
+#.FN_HDR ServiceApdus/rosApdus/_item
+ h450_rose_ctx.apdu_depth = 1;
+ actx->rose_ctx = &h450_rose_ctx;
+#.END
#.TYPE_RENAME
-ActivateDiversionQArg/extension ActivateDiversionQArg_extension
-DeactivateDiversionQArg/extension DeactivateDiversionQArg_extension
-InterrogateDiversionQ/extension InterrogateDiversionQ_extension
-CheckRestrictionArg/extension CheckRestrictionArg_extension
-CallReroutingArg/extension CallReroutingArg_extension
-DivertingLegInformation1Arg/extension DivertingLegInformation1Arg_extension
-DivertingLegInformation2Arg/extension DivertingLegInformation2Arg_extension
-DivertingLegInformation3Arg/extension DivertingLegInformation3Arg_extension
-DivertingLegInformation4Arg/extension DivertingLegInformation4Arg_extension
+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
@@ -57,9 +79,10 @@ SubaddressTransferArg/argumentExtension subaddressTransferArg_argumentExtension
CTCompleteArg/argumentExtension cTCompleteArg_argumentExtension
CTActiveArg/argumentExtension cTActiveArg_argumentExtension
MixedExtension/extension mixedExtension_extension
-Unspecified/extension unspecified_extension
-CheckRestrictionArg/extension checkRestrictionArg_extension
-DivertingLegInformation1Arg/extension divertingLegInformation1Arg_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
@@ -68,12 +91,12 @@ CoReqOptArg/extension coReqOptArg_extension
RUAlertOptArg/extension rUAlertOptArg_extension
CfbOvrOptArg/extension cfbOvrOptArg_extension
CmnArg/extension cmnArg_extension
-ActivateDiversionQArg/extension activateDiversionQArg_extension
-InterrogateDiversionQ/extension interrogateDiversionQ_extension
-CallReroutingArg/extension callReroutingArg_extension
-DivertingLegInformation4Arg/extension divertingLegInformation4Arg_extension
-DivertingLegInformation3Arg/extension divertingLegInformation3Arg_extension
-DeactivateDiversionQArg/extension deactivateDiversionQArg_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
@@ -96,8 +119,6 @@ PickExeArg/extensionArg pickExeArg_extensionArg
CpNotifyArg/extensionArg cpNotifyArg_extensionArg
CpickupNotifyArg/extensionArg cpickupNotifyArg_extensionArg
CallWaitingArg/extensionArg callWaitingArg_extensionArg
-NameArg/extensionArg nameArg_extensionArg
-CmnRequestArg/extensionArg cmnRequestArg_extensionArg
CIRequestArg/argumentExtension cIRequestArg_argumentExtension
CIGetCIPLOptArg/argumentExtension cIGetCIPLOptArg_argumentExtension
CIIsOptArg/argumentExtension cIIsOptArg_argumentExtension
@@ -112,3 +133,19 @@ 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/asn1/h450/h4501.asn b/asn1/h450/h4501.asn
deleted file mode 100644
index 387793b43c..0000000000
--- a/asn1/h450/h4501.asn
+++ /dev/null
@@ -1,1899 +0,0 @@
--- 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, PartyNumber, PresentationIndicator, ScreeningIndicator, NonStandardParameter, CallIdentifier
- 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 OF
- ROS{x--{InvokeIdSet}, {OperationSet}, {OperationSet}--},
- -- see 8.3; other alternatives may be defined in future versions
- ...
-}
-
-Notassignedlocalopcode ::= OCTET STRING -- Dummy assigment used
-
--- actual values are defined by individual supplementary service specifications
--- (e.g. H.450.x or manufacturer specific)
---
--- END of H4501- Supplementary-ServiceAPDU-Structure
--- Imported :
--- 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 ::=
-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
-
--- 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 ::=
--- Edited for Wireshark purposes
-
-CallTransferIdentify ::= DummyArg
-CallTransferAbandon ::= DummyArg
-CallTransferInitiate ::= CTInitiateArg
-CallTransferSetup ::= CTSetupArg
-CallTransferUpdate ::= CTUpdateArg
-SubaddressTransfer ::= SubaddressTransferArg
-CallTransferComplete ::= CTCompleteArg
-CallTransferActive ::= CTActiveArg
-
-DummyArg ::= CHOICE {
- extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter
-}
-DummyRes ::= CHOICE {
- extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter
-}
-
-CTInitiateArg ::= SEQUENCE {
- callIdentity CallIdentity,
- reroutingNumber EndpointAddress,
- argumentExtension ArgumentExtension OPTIONAL,
- ...
-}
-ArgumentExtension ::= CHOICE {extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter}
-
-CTSetupArg ::= SEQUENCE {
- callIdentity CallIdentity,
- transferringNumber EndpointAddress OPTIONAL,
- argumentExtension ArgumentExtension 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 ArgumentExtension OPTIONAL,
- ...
-}
-
-SubaddressTransferArg ::= SEQUENCE {
- redirectionSubaddress PartySubaddress,
- argumentExtension ArgumentExtension 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 ArgumentExtension 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 ArgumentExtension OPTIONAL,
- ...
-}
-
-CallIdentity ::= NumericString(SIZE (0..4))
--- size 0 means 'empty'
-
-ExtensionSeq ::= SEQUENCE OF Extension
---END
--- of Call-Transfer-Operations
-
--- 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)};
--- activateDiversionQ OPERATION ::=
--- { sent from the activating h.323-endpoint to the served h.323-endpoint
--- ARGUMENT
-ActivateDiversionQArg ::= SEQUENCE {procedure Procedure,
- basicService BasicService,
- divertedToAddress EndpointAddress,
- servedUserNr EndpointAddress,
- activatingUserNr EndpointAddress,
- extension
- CHOICE {extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter} OPTIONAL,
- ...}
--- RESULT
-ActivateDiversionQRes ::=
- CHOICE {extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter}
-
--- deactivateDiversionQ OPERATION ::=
--- { sent from the deactivating h.323-endpoint to the served h.323-endpoint
--- ARGUMENT
-DeactivateDiversionQArg ::=
- SEQUENCE {procedure Procedure,
- basicService BasicService,
- servedUserNr EndpointAddress,
- deactivatingUserNr EndpointAddress,
- extension
- CHOICE {extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter} OPTIONAL,
- ...}
--- RESULT
-DeactivateDiversionQRes ::=
- 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
-InterrogateDiversionQ ::= SEQUENCE {procedure Procedure,
- basicService BasicService DEFAULT allServices,
- servedUserNr EndpointAddress,
- interrogatingUserNr EndpointAddress,
- extension
- CHOICE {extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter} OPTIONAL,
- ...}
--- RESULT IntResultList
-InterrogateDiversionQRes ::= 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
-CheckRestrictionArg ::=
- SEQUENCE {servedUserNr EndpointAddress,
- basicService BasicService,
- divertedToNr EndpointAddress,
- extension
- CHOICE {extensionSeq ExtensionSeq,
- nonStandardData NonStandardParameter} OPTIONAL,
- ...}
- -- RESULT
-CheckRestrictionRes ::= 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
-CallReroutingArg ::=
- 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
-CallReroutingRes ::= 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
-DivertingLegInformation1Arg ::=
- 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
-DivertingLegInformation2Arg ::=
- 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
-DivertingLegInformation3Arg ::=
- 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
-DivertingLegInformation4Arg ::= 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
-CfnrDivertedLegFailedArg ::=
- 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,
--- nonStandard NonStandardParameter}
--- CODE local:1008
--- }
--- BasicService defined for MWI should do for Wireshark purposes
- -- 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.
--- Defined elsewhere for Wireshark
--- ExtensionSeq ::= SEQUENCE OF Extension
---
--- ExtensionSet EXTENSION ::=
--- {...}
-
--- Actual values defined by individual manufacturers
--- END
--- of Call-Diversion-Operations
-
--- 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,
- 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
-
-
-
--- 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
-
--- 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
-
-
--- 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 ::=
---H323-MWI-Operations OPERATION ::=
--- {mwiActivate | mwiDeactivate | mwiInterrogate}
-
-MwiActivate ::= MWIActivateArg
-MwiDeactivate ::= MWIDeactivateArg
-
-MwiInterrogate ::= MWIInterrogateArg
-
-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 ExtensionArg OPTIONAL,
- ...
-}
-
-MwiDummyRes ::= SEQUENCE SIZE (0..255) OF MixedExtension
-
-MWIDeactivateArg ::= SEQUENCE {
- servedUserNr EndpointAddress,
- basicService BasicService,
- msgCentreId MsgCentreId OPTIONAL,
- callbackReq BOOLEAN OPTIONAL,
- extensionArg ExtensionArg OPTIONAL,
- ...
-}
-
-MWIInterrogateArg ::= SEQUENCE {
- servedUserNr EndpointAddress,
- basicService BasicService,
- msgCentreId MsgCentreId OPTIONAL,
- callbackReq BOOLEAN OPTIONAL,
- extensionArg ExtensionArg 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 ExtensionArg OPTIONAL,
- ...
-}
-
-MsgCentreId ::= CHOICE {
- -- only partyNumber provides a callable identification
- integer INTEGER(0..65535),
- mwipartyNumber EndpointAddress,
- numericString NumericString(SIZE (1..10))
-}
-
-NbOfMessages ::= INTEGER(0..65535)
-
-TimeStamp ::= GeneralizedTime(SIZE (12..19))
-
-ExtensionArg ::= SEQUENCE SIZE (0..255) OF MixedExtension
-
--- 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
-
--- 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
--- }
--- It all translates to NameArg doesn't it ?
-
-NameArg ::= SEQUENCE {name Name,
- extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
- ...}
-
-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
--- 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
-
--- 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
--- 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
-
--- 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 used as CmnRequestArg ( Wireshark )
--- 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,
- ...
-}
-
-CmnRequestArg ::= 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
-
-
-
-
---
--- 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
-
--- Actual values defined by individual manufacturers
-Unspecified ::=
- CHOICE {extension Extension,
- nonStandard NonStandardParameter}
-
--- 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
--- 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 ::=
-
-H225InformationElement ::= OCTET STRING
-
---END
--- of H225 Generic parameters definition
--- 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})
---}
--- Wireshark adaptation NEEDS VERIFICATION !
- Extension ::= SEQUENCE {
- extensionId OBJECT IDENTIFIER,
- extensionArgument ExtensionArgument
- }
-ExtensionArgument ::= OCTET STRING
-
--- 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
-
-END -- of H4501- Supplementary-ServiceAPDU-Structure
-
--- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
-
diff --git a/asn1/h450/packet-h450-ros-template.c b/asn1/h450/packet-h450-ros-template.c
new file mode 100644
index 0000000000..8b0f00e4d8
--- /dev/null
+++ b/asn1/h450/packet-h450-ros-template.c
@@ -0,0 +1,107 @@
+/* packet-h450-ros.c
+ * Routines for H.450 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <string.h>
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/strutil.h>
+#include <epan/emem.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+
+#define PNAME "H.450 Remote Operations Apdus"
+#define PSNAME "H450.ROS"
+#define PFNAME "h450.ros"
+
+/* Initialize the protocol and registered fields */
+int proto_h450_ros = -1;
+#include "packet-h450-ros-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h450-ros-ett.c"
+
+/* Preferences */
+
+/* Subdissectors */
+static dissector_handle_t data_handle = NULL;
+
+/* Gloabl variables */
+static rose_ctx_t *rose_ctx_tmp;
+
+static guint32 problem_val;
+static gchar problem_str[64];
+static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
+
+static void
+argument_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ arg_next_tvb = tvb;
+}
+
+static void
+result_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ res_next_tvb = tvb;
+}
+
+static void
+error_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ err_next_tvb = tvb;
+}
+
+#include "packet-h450-ros-fn.c"
+
+/*--- proto_register_h450_ros -----------------------------------------------*/
+void proto_register_h450_ros(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h450-ros-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-h450-ros-ettarr.c"
+ };
+
+ /* Register protocol and dissector */
+ proto_h450_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ proto_set_cant_toggle(proto_h450_ros);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h450_ros, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+/*--- proto_reg_handoff_h450_ros --------------------------------------------*/
+void proto_reg_handoff_h450_ros(void) {
+ data_handle = find_dissector("data");
+}
+
+/*---------------------------------------------------------------------------*/
diff --git a/asn1/h450/packet-h450-template.h b/asn1/h450/packet-h450-ros-template.h
index d5ef3020be..47c2e66dee 100644
--- a/asn1/h450/packet-h450-template.h
+++ b/asn1/h450/packet-h450-ros-template.h
@@ -1,6 +1,6 @@
-/* packet-h450.h
- * Routines for h450 packet dissection
- * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+/* packet-h450-ros.h
+ * Routines for H.450 packet dissection
+ * 2007 Tomas Kukosa
*
* $Id$
*
@@ -23,13 +23,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#ifndef PACKET_H450_H
-#define PACKET_H450_H
+#ifndef PACKET_H450_ROS_H
+#define PACKET_H450_ROS_H
+#include "packet-h450-ros-exp.h"
-
-/*#include "packet-H450-exp.h" */
-
-#endif /* PACKET_H450_H */
-
+#endif /* PACKET_H450_ROS_H */
diff --git a/asn1/h450/packet-h450-template.c b/asn1/h450/packet-h450-template.c
index 1776b2da63..fa3b73e5fe 100644
--- a/asn1/h450/packet-h450-template.c
+++ b/asn1/h450/packet-h450-template.c
@@ -38,1042 +38,265 @@
#include <stdio.h>
#include <string.h>
-
#include <epan/asn1.h>
-#include "packet-h450.h"
-#include "packet-ber.h"
#include "packet-per.h"
#include "packet-h225.h"
-#define PNAME "h450"
-#define PSNAME "h450"
-#define PFNAME "h450"
-/* H.450.2 Call Transfer constants */
-#define CallTransferIdentify 7
-#define CallTransferAbandon 8
-#define CallTransferInitiate 9
-#define CallTransferSetup 10
-#define CallTransferUpdate 13
-#define SubaddressTransfer 14
-#define CallTransferComplete 12
-#define CallTransferActive 11
-
-/* H.450.3 Call Diversion constants */
-#define ActivateDiversionQ 15
-#define DeactivateDiversionQ 16
-#define InterrogateDiversionQ 17
-#define CheckRestriction 18
-#define CallRerouting 19
-#define DivertingLegInformation1 20
-#define DivertingLegInformation2 21
-#define DivertingLegInformation3 22
-#define DivertingLegInformation4 100
-#define CfnrDivertedLegFailed 23
-
-/* H.450.4 Call Hold constants */
-#define HoldNotific 101
-#define RetrieveNotific 102
-#define RemoteHold 103
-#define RemoteRetrieve 104
-
-/* H.450.5 Call Park and Pickup constants */
-#define CpRequest 106
-#define CpSetup 107
-#define GroupIndicationOn 108
-#define GroupIndicationOff 109
-#define Pickrequ 110
-#define Pickup 111
-#define PickExe 112
-#define CpNotify 113
-#define CpickupNotify 114
-
-/* H.450.6 Call Waiting constants */
-#define CallWaiting 105
-
-/* H.450.7 Message Waiting Indication constants */
-#define MWIActivate 80
-#define MWIDeactivate 81
-#define MWIInterrogate 82
-
-/* H.450.8 Name Identification constants */
-#define NIcallingName 0
-#define NIalertingName 1
-#define NIconnectedName 2
-#define NIbusyName 3
-
-/* H.450.9 Call Completion constants */
-#define CCBSRequest 40
-#define CCNRRequest 27
-#define CCCancel 28
-#define CCExecPossible 29
-#define CCRingout 31
-#define CCSuspend 32
-#define CCResume 33
-
-/* H.450.10 Call Offer constants */
-#define CallOfferRequest 34
-#define RemoteUserAlerting 115
-#define CFBOverride 49
+#include "packet-h450-ros.h"
-/* H.450.11 Call Intrusion constants */
-#define CallIntrusionRequest 43
-#define CallIntrusionGetCIPL 44
-#define CallIntrusionIsolate 45
-#define CallIntrusionForcedRelease 46
-#define CallIntrusionWOBRequest 47
-#define CallIntrusionSilentMonitor 116
-#define CallIntrusionNotification 117
-
-/* H.450.12 Common Information Operations constants */
-#define CmnRequest 84
-#define CmnInform 85
-
-/* TODO - define other H.450.x constants here */
-static dissector_handle_t h4501_handle=NULL;
+#define PNAME "H.450 Supplementary Services"
+#define PSNAME "H450"
+#define PFNAME "h450"
/* Initialize the protocol and registered fields */
-static int proto_h4501 = -1;
-
-static int hf_h4501 = -1;
-static int hf_h4501_dummy = -1;
-static int hf_h4501_constrained_invokeId = -1;
-static int hf_h4501_invokeId = -1;
-static int hf_h4501_localOpcode = -1;
-static int hf_h4501_globalCode = -1;
-static int hf_h4501_globalargument = -1;
-static int hf_h4501_opcode = -1;
-static int hf_h4501_ReturnResult_result = -1;
-static int hf_h4501_result = -1;
-static int hf_h4501_ReturnResult = -1;
-static int hf_h4501_localErrorCode = -1;
-static int hf_h4501_errorCode = -1;
-static int hf_h4501_parameter = -1;
-static int hf_h4501_ReturnError = -1;
-static int hf_h4501_GeneralProblem = -1;
-static int hf_h4501_InvokeProblem = -1;
-static int hf_h4501_ReturnResultProblem = -1;
-static int hf_h4501_ReturnErrorProblem = -1;
-static int hf_h4501_problem = -1;
-static int hf_h4501_Reject = -1;
-
-static int hf_h4502_CTIdentifyRes = -1;
-static int hf_h4502_DummyRes = -1;
-static int hf_h4502_DummyArg = -1;
-
-static int hf_h4503DeactivateDiversionQArg = -1;
-static int hf_h4503InterrogateDiversionQ = -1;
-static int hf_h4503CheckRestrictionArg = -1;
-static int hf_h4503CallReroutingArg = -1;
-static int hf_h4503DivertingLegInformation1Arg = -1;
-static int hf_h4503DivertingLegInformation2Arg = -1;
-static int hf_h4503DivertingLegInformation3Arg = -1;
-static int hf_h4503DivertingLegInformation4Arg = -1;
-static int hf_h4503CfnrDivertedLegFailedArg = -1;
-
-static int hf_h4504_HoldNotificArg = -1;
-static int hf_h4504_RetrieveNotificArg = -1;
-static int hf_h4504_RemoteHoldArg = -1;
-static int hf_h4504_RemoteRetrieveArg = -1;
-static int hf_h4504_RemoteRetrieveRes = -1;
-
-static int hf_h4507_MWIActivateArg = -1;
-static int hf_h4507_MWIDeactivateArg = -1;
-static int hf_h4507_MwiDummyRes = -1;
-static int hf_h4507_MWIInterrogateArg = -1;
-static int hf_h4507_MWIInterrogateRes = -1;
-
-static int hf_h4508_CallingNameArg = -1;
-static int hf_h4508_AlertingNameArg = -1;
-static int hf_h4508_ConnectedNameArg = -1;
-static int hf_h4508_BusyNameArg = -1;
-static int hf_h45012_CmnRequest = -1;
-static int hf_h45012_CmnInform = -1;
-
-static int hf_h4501_Invoke = -1;
-static int hf_h4501_ROS = -1;
-
+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 */
-static gint ett_h4501 = -1;
-static gint ett_h4501_opcode = -1;
-static gint ett_h4501_result = -1;
-static gint ett_h4501_errorCode = -1;
-
-static gint ett_h4501_problem = -1;
-static gint ett_h4501_Reject = -1;
-static gint ett_h4501_ReturnError = -1;
-static gint ett_h4501_ReturnResult = -1;
-static gint ett_h4501_Invoke = -1;
-static gint ett_h4501_ROS = -1;
-
#include "packet-h450-ett.c"
-/* Global variables */
-static guint32 localOpcode;
-static guint32 localErrorCode;
-static const char *globalcode_oid_str;
-static gboolean is_globalcode;
-
-static const value_string localOpcode_vals[] = {
- /* H.450.2 Call Transfer opcodes */
- { CallTransferIdentify, "callTransferIdentify"},
- { CallTransferAbandon, "callTransferAbandon"},
- { CallTransferInitiate, "callTransferInitiate"},
- { CallTransferSetup, "callTransferSetup"},
- { CallTransferUpdate, "callTransferUpdate"},
- { SubaddressTransfer, "subaddressTransfer"},
- { CallTransferComplete, "callTransferComplete"},
- { CallTransferActive, "callTransferActive"},
-
- /* H.450.3 Call Diversion opcodes */
- { ActivateDiversionQ, "activateDiversionQ"},
- { DeactivateDiversionQ, "deactivateDiversionQ"},
- { InterrogateDiversionQ, "interrogateDiversionQ"},
- { CheckRestriction, "checkRestriction"},
- { CallRerouting, "callRerouting"},
- { DivertingLegInformation1,"divertingLegInformation1"},
- { DivertingLegInformation2,"divertingLegInformation2"},
- { DivertingLegInformation3,"divertingLegInformation3"},
- { DivertingLegInformation4,"divertingLegInformation4"},
- { CfnrDivertedLegFailed, "cfnrDivertedLegFailed"},
-
- /* H.450.4 Call Hold opcodes */
- { HoldNotific, "holdNotific"},
- { RetrieveNotific, "retrieveNotific"},
- { RemoteHold, "remoteHold"},
- { RemoteRetrieve, "remoteRetrieve"},
-
- /* H.450.5 Call Park and Pickup opcodes */
- { CpRequest, "cpRequest"},
- { CpSetup, "cpSetup"},
- { GroupIndicationOn, "groupIndicationOn"},
- { GroupIndicationOff, "groupIndicationOff"},
- { Pickrequ, "pickrequ"},
- { Pickup, "pickup"},
- { PickExe, "pickExe"},
- { CpNotify, "cpNotify"},
- { CpickupNotify, "cpickupNotify"},
-
- /* H.450.6 Call Waiting opcodes */
- { CallWaiting, "callWaiting"},
-
- /* H.450.7 Message Waiting Indication constants */
- { MWIActivate, "mwiActivate"},
- { MWIDeactivate, "mwiDeactivate"},
- { MWIInterrogate, "mwiInterrogate"},
-
- /* H.450.8 Name Identification constants */
- { NIcallingName, "niCallingName"},
- { NIalertingName, "niAlertingName"},
- { NIconnectedName, "niConnectedName"},
- { NIbusyName, "niBusyName"},
-
- /* H.450.9 Call Completion constants */
- { CCBSRequest, "ccbsRequest"},
- { CCNRRequest, "ccnrRequest"},
- { CCCancel, "ccCancel"},
- { CCExecPossible, "ccExecPossible"},
- { CCRingout, "ccRingout"},
- { CCSuspend, "ccSuspend"},
- { CCResume, "ccResume"},
-
- /* H.450.10 Call Offer constants */
- { CallOfferRequest, "callOfferRequest"},
- { RemoteUserAlerting, "remoteUserAlerting"},
- { CFBOverride, "cfbOverride"},
-
- /* H.450.11 Call Intrusion constants */
- { CallIntrusionRequest, "callIntrusionRequest"},
- { CallIntrusionGetCIPL, "callIntrusionGetCIPL"},
- { CallIntrusionIsolate, "callIntrusionIsolate"},
- { CallIntrusionForcedRelease,"callIntrusionForcedRelease"},
- { CallIntrusionWOBRequest, "callIntrusionWOBRequest"},
- { CallIntrusionSilentMonitor,"callIntrusionSilentMonitor"},
- { CallIntrusionNotification, "callIntrusionNotification"},
-
- /* TODO - add other H.450.x invoke opcodes here */
-/* H.450.12 Common Information Operations constants */
- { CmnRequest, "CmnRequest"},
- { CmnInform, "CmnInform"},
- { 0, NULL }
+static const value_string h450_str_operation[] = {
+#include "packet-h450-table10.c"
+ { 0, NULL}
};
-static int dissect_h4501_Argument(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
-static int dissect_ros_ROS(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_ind _U_);
-
-
-
-#include "packet-h450-fn.c"
-
-static const value_string InvokeProblem_vals[] = {
- { 0, "duplicateInvocation"},
- { 1, "unrecognizedOperation"},
- { 2, "mistypedArgument"},
- { 3, "resourceLimitation"},
- { 4, "releaseInProgress"},
- { 5, "unrecognizedLinkedId"},
- { 6, "linkedResponseUnexpected"},
- { 7, "unexpectedLinkedOperation"},
- { 0, NULL }
-};
-static int
-dissect_h4501_InvokeProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 7, NULL, FALSE);
- return offset;
-}
-
-
-static const value_string ReturnResultProblem_vals[] = {
- { 0, "unrecognizedInvocation"},
- { 1, "resultResponseUnexpected"},
- { 2, "mistypedResult"},
- { 0, NULL }
+static const value_string h450_str_error[] = {
+#include "packet-h450-table20.c"
+ { 0, NULL}
};
-static int
-dissect_h4501_ReturnResultProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 2, NULL, FALSE);
- return offset;
-}
-
-
-static const value_string ReturnErrorProblem_vals[] = {
- { 0, "unrecognizedInvocation"},
- { 1, "errorResponseUnexpected"},
- { 2, "unrecognizedError"},
- { 3, "unexpectedError"},
- { 4, "mistypedParameter"},
- { 0, NULL }
-};
-static int
-dissect_h4501_ReturnErrorProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 4, NULL, FALSE);
- return offset;
-}
-
-static const value_string GeneralProblem_vals[] = {
- { 0, "unrecognizedCompenent"},
- { 1, "mistypedCompenent"},
- { 2, "badlyStructuredCompenent"},
- { 0, NULL }
-};
-static int
-dissect_h4501_GeneralProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 2, NULL, FALSE);
- return offset;
-}
-static int
-dissect_h4501_ReturnResult_result(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- tvbuff_t *result_tvb = NULL;
- offset=dissect_per_octet_string(tvb, offset, actx, tree, -1, NO_BOUND, NO_BOUND, &result_tvb);
+/* ROSE context */
+static rose_ctx_t h450_rose_ctx;
- if(tvb_length(result_tvb)){
- switch (localOpcode) {
- case CallTransferIdentify:
- dissect_h450_CTIdentifyRes(result_tvb, 0, actx, tree, hf_h4502_CTIdentifyRes);
- break;
+/* Subdissectors */
+static dissector_handle_t data_handle = NULL;
- case CallTransferInitiate:
- case CallTransferSetup:
- dissect_h450_DummyRes(result_tvb, 0, actx , tree, hf_h4502_DummyRes);
- break;
-
- case ActivateDiversionQ:
- dissect_ActivateDiversionQRes_PDU(result_tvb, actx->pinfo, tree);
- break;
- case DeactivateDiversionQ:
- dissect_DeactivateDiversionQRes_PDU(result_tvb, actx->pinfo, tree);
- break;
- case InterrogateDiversionQ:
- dissect_InterrogateDiversionQRes_PDU(result_tvb, actx->pinfo, tree);
- break;
- case CheckRestriction:
- dissect_CheckRestrictionRes_PDU(result_tvb, actx->pinfo, tree);
- break;
- case CallRerouting:
- dissect_CallReroutingRes_PDU(result_tvb, actx->pinfo, tree);
- break;
-
- case RemoteRetrieve:
- dissect_h450_RemoteRetrieveRes(result_tvb, 0, actx , tree, hf_h4504_RemoteRetrieveRes);
- break;
- case MWIActivate:
- dissect_h450_MwiDummyRes(result_tvb, 0, actx , tree, hf_h4507_MwiDummyRes);
- break;
- case MWIDeactivate:
- dissect_h450_MwiDummyRes(result_tvb, 0, actx , tree, hf_h4507_MwiDummyRes);
- break;
- case MWIInterrogate:
- dissect_h450_MWIInterrogateRes(result_tvb, 0, actx , tree, hf_h4507_MWIInterrogateRes);
- break;
-
- default:
-PER_NOT_DECODED_YET("Unrecognized H.450.x return result");
- break;
- }
- }
-
- return offset;
-}
-
-static int
-dissect_h4501_LocalOpcode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_integer(tvb, offset, actx, tree, hf_index, &localOpcode);
- is_globalcode = FALSE;
- return offset;
-}
-
-
-static int
-dissect_h4501_GlobalCode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &globalcode_oid_str);
- is_globalcode = TRUE;
- return offset;
-}
-
-
-static const value_string opcode_vals[] = {
- { 0, "local" },
- { 1, "global" },
- { 0, NULL}
-};
-static const per_choice_t opcode_choice[] = {
- { 0, &hf_h4501_localOpcode, ASN1_NO_EXTENSIONS,
- dissect_h4501_LocalOpcode },
- { 1, &hf_h4501_globalCode, ASN1_NO_EXTENSIONS,
- dissect_h4501_GlobalCode },
- { 0, NULL, 0, NULL }
-};
-static int
-dissect_h4501_Opcode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h4501_opcode, opcode_choice, NULL);
- return offset;
-}
-
-static const per_sequence_t result_sequence[] = {
- { &hf_h4501_opcode, ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
- dissect_h4501_Opcode },
- { &hf_h4501_dummy, ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
- dissect_h4501_ReturnResult_result },
- { NULL, 0, 0, NULL }
-};
-static int
-dissect_h4501_Result(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_result, result_sequence);
- return offset;
-}
-
-static int
-dissect_h4501_Parameter(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- /* TODO - decode return error parameter based on localErrorCode */
- offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, NULL);
- return offset;
-}
-static const value_string localErrorCode_vals[] = {
- /* H.450.1 general error list */
- { 0, "userNotSubscribed"},
- { 1, "RejectedByNetwork"},
- { 2, "RejectedByUser"},
- { 3, "NotAvailable"},
- { 5, "InsufficientInformation"},
- { 6, "InvalidServedUserNumber"},
- { 7, "InvalidCallState"},
- { 8, "BasicServiceNotProvided"},
- { 9, "NotIncomingCall"},
- { 10, "SupplementaryServiceInteractionNotAllowed"},
- { 11, "ResourceUnavailable"},
- { 25, "CallFailure"},
- { 43, "ProceduralError"},
-
- /* H.450.2 Call Transfer return errors */
- { 1004, "invalidReroutingNumber"},
- { 1005, "unrecognizedCallIdentity"},
- { 1006, "establishmentFailure"},
- { 1008, "unspecified"},
-
- /* H.450.4 Call Hold return errors */
- { 2002, "undefined"},
-
- /* H.450.5 Call Park and Pickup return errors */
- { 2000, "callPickupIdInvalid"},
- { 2001, "callAlreadyPickedUp"},
-
- /* H.450.7 Message Waiting Indication return errors */
- { 1018, "invalidMsgCentreId"},
- { 31, "notActivated"},
-
- /* H.450.9 Call Completion return errors */
- { 1010, "shortTermRejection"},
- { 1011, "longTermRejection"},
- { 1012, "remoteUserBusyAgain"},
- { 1013, "failureToMatch"},
-
- /* H.450.11 Call Intrusion return errors */
- { 1009, "notBusy"},
- { 1000, "temporarilyUnavailable"},
- { 1007, "notAuthorized"},
-
- /* TODO - add other H.450.x error codes here */
-
- { 0, NULL }
-};
-static int
-dissect_h4501_LocalErrorCode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_integer(tvb, offset, actx, tree, hf_index, &localErrorCode);
- return offset;
-}
-
-
-static const value_string errorCode_vals[] = {
- { 0, "local" },
- { 1, "global" },
- { 0, NULL}
-};
-static const per_choice_t errorCode_choice[] = {
- { 0, &hf_h4501_localErrorCode, ASN1_NO_EXTENSIONS,
- dissect_h4501_LocalErrorCode },
- { 1, &hf_h4501_globalCode, ASN1_NO_EXTENSIONS,
- dissect_h4501_GlobalCode },
- { 0, NULL, 0, NULL }
-};
-static int
-dissect_h4501_ErrorCode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h4501_errorCode, errorCode_choice, NULL);
- return offset;
-}
-
-static const value_string problem_vals[] = {
- { 0, "general" },
- { 1, "invoke" },
- { 2, "returnResult" },
- { 3, "returnError" },
- { 0, NULL}
-};
-static const per_choice_t problem_choice[] = {
- { 0, &hf_h4501_GeneralProblem, ASN1_NO_EXTENSIONS,
- dissect_h4501_GeneralProblem },
- { 1, &hf_h4501_InvokeProblem, ASN1_NO_EXTENSIONS,
- dissect_h4501_InvokeProblem },
- { 2, &hf_h4501_ReturnResultProblem, ASN1_NO_EXTENSIONS,
- dissect_h4501_ReturnResultProblem },
- { 3, &hf_h4501_ReturnErrorProblem, ASN1_NO_EXTENSIONS,
- dissect_h4501_ReturnErrorProblem },
- { 0, NULL, 0, NULL }
-};
-static int
-dissect_h4501_Problem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h4501_problem, problem_choice, NULL);
- return offset;
-}
-static int
-dissect_h4501_Constrained_invokeId(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 65535, NULL, FALSE);
- return offset;
-}
+/* Global variables */
+#include "packet-h450-fn.c"
-static int
-dissect_h4501_InvokeId(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
- return offset;
+typedef struct _h450_op_t {
+ gint32 opcode;
+ new_dissector_t arg_pdu;
+ new_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;
+ new_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 occurence 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 per_sequence_t Reject_sequence[] = {
- { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_InvokeId },
- { &hf_h4501_problem, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_Problem },
- { NULL, 0, 0, NULL }
-};
-static int
-dissect_h4501_Reject(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_Reject, Reject_sequence);
- return offset;
-}
+static const h450_err_t *get_err(gint32 errcode) {
+ int i;
-static const per_sequence_t ReturnError_sequence[] = {
- { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_InvokeId },
- { &hf_h4501_errorCode, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_ErrorCode },
- { &hf_h4501_parameter, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
- dissect_h4501_Parameter },
- { NULL, 0, 0, NULL }
-};
-static int
-dissect_h4501_ReturnError(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_ReturnError, ReturnError_sequence);
- return offset;
+ /* search from the end to get the last occurence 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;
}
-static const per_sequence_t ReturnResult_sequence[] = {
- { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_InvokeId },
- { &hf_h4501_result, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
- dissect_h4501_Result },
- { NULL, 0, 0, NULL }
-};
-static int
-dissect_h4501_ReturnResult(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_ReturnResult, ReturnResult_sequence);
- return offset;
-}
+/*--- dissect_h450_arg ------------------------------------------------------*/
+static int
+dissect_h450_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset;
+ rose_ctx_t *rctx;
+ gint32 opcode;
+ const h450_op_t *op_ptr;
+ const gchar *p;
+
+ offset = 0;
+ rctx = get_rose_ctx(pinfo->private_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;
+
+ proto_tree_add_uint_hidden(tree, hf_h450_operation, tvb, 0, 0, opcode);
+ p = match_strval(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);
+ }
-static const per_sequence_t Invoke_sequence[] = {
- { &hf_h4501_constrained_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_Constrained_invokeId },
- { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
- dissect_h4501_InvokeId },
- { &hf_h4501_opcode, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
- dissect_h4501_Opcode },
- { &hf_h4501_dummy, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
- dissect_h4501_Argument },
- { NULL, 0, 0, NULL }
-};
-static int
-dissect_h4501_Invoke(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_Invoke, Invoke_sequence);
- return offset;
-}
+ if (op_ptr->arg_pdu && (tvb_length_remaining(tvb, offset) > 0))
+ offset = op_ptr->arg_pdu(tvb, pinfo, tree);
+ else
+ if (tvb_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_text(tree, tvb, offset, -1, "UNSUPPORTED ARGUMENT TYPE (H.450)");
+ offset += tvb_length_remaining(tvb, offset);
+ }
-static const value_string ROS_vals[] = {
- { 1, "invoke" },
- { 2, "returnResult" },
- { 3, "returnError" },
- { 4, "reject" },
- { 0, NULL}
-};
-static const per_choice_t ROS_choice[] = {
- { 1, &hf_h4501_Invoke, ASN1_NO_EXTENSIONS,
- dissect_h4501_Invoke },
- { 2, &hf_h4501_ReturnResult, ASN1_NO_EXTENSIONS,
- dissect_h4501_ReturnResult },
- { 3, &hf_h4501_ReturnError, ASN1_NO_EXTENSIONS,
- dissect_h4501_ReturnError },
- { 4, &hf_h4501_Reject, ASN1_NO_EXTENSIONS,
- dissect_h4501_Reject },
- { 0, NULL, 0, NULL }
-};
-static int
-dissect_h4501_ROS(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree)
-{
- offset=dissect_per_choice(tvb, offset, actx, tree, hf_h4501_ROS, ett_h4501_ROS, ROS_choice, NULL);
- return offset;
+ return offset;
}
-static int
-dissect_h4501_Argument(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
-{
- tvbuff_t *argument_tvb = NULL;
-
- if ( is_globalcode ){
- /* TODO call oid dissector
- * call_ber_oid_callback isn't realy apropriate ?
- */
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_h4501_globalargument, NO_BOUND, NO_BOUND, NULL);
- is_globalcode = FALSE;
- return offset;
-
+/*--- dissect_h450_res ------------------------------------------------------*/
+static int
+dissect_h450_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset;
+ rose_ctx_t *rctx;
+ gint32 opcode;
+ const h450_op_t *op_ptr;
+ const gchar *p;
+
+ offset = 0;
+ rctx = get_rose_ctx(pinfo->private_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;
+
+ proto_tree_add_uint_hidden(tree, hf_h450_operation, tvb, 0, 0, opcode);
+ p = match_strval(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);
}
- offset=dissect_per_octet_string(tvb, offset, actx, tree, -1, NO_BOUND, NO_BOUND, &argument_tvb);
-
- if(tvb_length(argument_tvb)){
- switch (localOpcode) {
- /* h450.2 */
- case CallTransferIdentify: /* Localvalue 7 */
- dissect_CallTransferIdentify_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case CallTransferAbandon: /* Localvalue 8 */
- dissect_CallTransferAbandon_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case CallTransferInitiate: /* Localvalue 9 */
- dissect_CallTransferInitiate_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case CallTransferSetup: /* Localvalue 10 */
- dissect_CallTransferSetup_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case CallTransferUpdate: /* Localvalue 13 */
- dissect_CallTransferUpdate_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case SubaddressTransfer: /* Localvalue 14 */
- dissect_SubaddressTransfer_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case CallTransferComplete: /* Localvalue 12 */
- dissect_CallTransferComplete_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case CallTransferActive: /* Localvalue 11 */
- dissect_CallTransferActive_PDU(argument_tvb, actx->pinfo, tree);
- break;
- /* h450.3*/
- case ActivateDiversionQ: /* Localvalue 15 */
- dissect_ActivateDiversionQArg_PDU(argument_tvb, actx->pinfo, tree);
- break;
- case DeactivateDiversionQ: /* Localvalue 16 */
- dissect_h450_DeactivateDiversionQArg(argument_tvb, 0, actx , tree, hf_h4503DeactivateDiversionQArg);
- break;
- case InterrogateDiversionQ: /* Localvalue 17 */
- dissect_h450_InterrogateDiversionQ(argument_tvb, 0, actx , tree, hf_h4503InterrogateDiversionQ);
- break;
- case CheckRestriction: /* Localvalue 18 */
- dissect_h450_CheckRestrictionArg(argument_tvb, 0, actx , tree, hf_h4503CheckRestrictionArg);
- break;
- case CallRerouting: /* Localvalue 19 */
- dissect_h450_CallReroutingArg(argument_tvb, 0, actx , tree, hf_h4503CallReroutingArg);
- break;
- case DivertingLegInformation1: /* Localvalue 20 */
- dissect_h450_DivertingLegInformation1Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation1Arg);
- break;
- case DivertingLegInformation2: /* Localvalue 21 */
- dissect_h450_DivertingLegInformation2Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation2Arg);
- break;
- case DivertingLegInformation3: /* Localvalue 22 */
- dissect_h450_DivertingLegInformation3Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation3Arg);
- break;
- case DivertingLegInformation4: /* Localvalue 100 */
- dissect_h450_DivertingLegInformation4Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation4Arg);
- break;
- case CfnrDivertedLegFailed: /* Localvalue 23 */
- dissect_h450_CfnrDivertedLegFailedArg(argument_tvb, 0, actx , tree, hf_h4503CfnrDivertedLegFailedArg);
- break;
- /* H.450.4 Call Hold */
- case HoldNotific: /* Localvalue 101 */
- dissect_h450_HoldNotificArg(argument_tvb, 0, actx , tree, hf_h4504_HoldNotificArg);
- break;
- case RetrieveNotific: /* Localvalue 102 */
- dissect_h450_RetrieveNotificArg(argument_tvb, 0, actx , tree, hf_h4504_RetrieveNotificArg);
- break;
- case RemoteHold: /* Localvalue 103 */
- dissect_h450_RemoteHoldArg(argument_tvb, 0, actx , tree, hf_h4504_RemoteHoldArg);
- break;
- case RemoteRetrieve: /* Localvalue 104 */
- dissect_h450_RemoteRetrieveArg(argument_tvb, 0, actx , tree, hf_h4504_RemoteRetrieveArg);
- break;
-
-/* H.450.5 Call Park and Pickup constants */
- case CpRequest: /* Localvalue 106 */
- case CpSetup: /* Localvalue 107 */
- case GroupIndicationOn: /* Localvalue 108 */
- case GroupIndicationOff: /* Localvalue 109 */
- case Pickrequ: /* Localvalue 110 */
- case Pickup: /* Localvalue 111 */
- case PickExe: /* Localvalue 112 */
- case CpNotify: /* Localvalue 113 */
- case CpickupNotify: /* Localvalue 114 */
-
-/* H.450.6 Call Waiting constants */
- case CallWaiting: /* Localvalue 105 */
-PER_NOT_DECODED_YET("Unrecognized H.450.x operation");
- break;
-
- /* H.450.7 Message Waiting Indication */
- case MWIActivate: /* Localvalue 80 */
- dissect_h450_MWIActivateArg(argument_tvb, 0, actx , tree, hf_h4507_MWIActivateArg);
- break;
- case MWIDeactivate: /* Localvalue 81 */
- dissect_h450_MWIDeactivateArg(argument_tvb, 0, actx , tree, hf_h4507_MWIDeactivateArg);
- break;
- case MWIInterrogate: /* Localvalue 82 */
- dissect_h450_MWIInterrogateArg(argument_tvb, 0, actx , tree, hf_h4507_MWIInterrogateArg);
- break;
+ if (op_ptr->res_pdu && (tvb_length_remaining(tvb, offset) > 0))
+ offset = op_ptr->res_pdu(tvb, pinfo, tree);
+ else
+ if (tvb_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_text(tree, tvb, offset, -1, "UNSUPPORTED RESULT TYPE (H.450)");
+ offset += tvb_length_remaining(tvb, offset);
+ }
- /* H.450.8 Name Identification */
- case NIcallingName: /* Localvalue 0 */
- dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_CallingNameArg);
- break;
- case NIalertingName: /* Localvalue 1 */
- dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_AlertingNameArg);
- break;
- case NIconnectedName: /* Localvalue 2 */
- dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_ConnectedNameArg);
- break;
- case NIbusyName: /* Localvalue 3 */
- dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_BusyNameArg);
- break;
-
-/* H.450.9 Call Completion constants */
- case CCBSRequest: /* Localvalue 40 */
- case CCNRRequest: /* Localvalue 27 */
- case CCCancel: /* Localvalue 28 */
- case CCExecPossible: /* Localvalue 29 */
- case CCRingout: /* Localvalue 31 */
- case CCSuspend: /* Localvalue 32 */
- case CCResume: /* Localvalue 33 */
-
-/* H.450.10 Call Offer constants */
- case CallOfferRequest: /* Localvalue 34 */
- case RemoteUserAlerting: /* Localvalue 115 */
- case CFBOverride: /* Localvalue 49 */
-
-/* H.450.11 Call Intrusion constants */
- case CallIntrusionRequest: /* Localvalue 43 */
- case CallIntrusionGetCIPL: /* Localvalue 44 */
- case CallIntrusionIsolate: /* Localvalue 45 */
- case CallIntrusionForcedRelease: /* Localvalue 46 */
- case CallIntrusionWOBRequest: /* Localvalue 47 */
- case CallIntrusionSilentMonitor: /* Localvalue 116 */
- case CallIntrusionNotification: /* Localvalue 117 */
-PER_NOT_DECODED_YET("Unrecognized H.450.x operation");
-break;
-/* H.450.12 Common Information Operations constants */
- case CmnRequest: /* Localvalue 84 */
- dissect_h450_CmnRequestArg(argument_tvb, 0, actx , tree, hf_h45012_CmnRequest);
- break;
- case CmnInform: /* Localvalue 85 */
- dissect_h450_CmnArg(argument_tvb, 0, actx , tree, hf_h45012_CmnInform);
- break;
-
- /* TODO - decode other H.450.x invoke arguments here */
- default:
-PER_NOT_DECODED_YET("Unrecognized H.450.x operation");
- break;
- }
- }
- return offset;
+ return offset;
}
-static int
-dissect_ros_ROS(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_ind _U_){
- offset = dissect_h4501_ROS(tvb, offset, actx, tree);
- return offset;
-
-}
-static void
-dissect_h4501(tvbuff_t *tvb, packet_info *pinfo, proto_tree* tree)
-{
- proto_item *it;
- proto_tree *tr;
- guint32 offset=0;
- asn1_ctx_t asn1_ctx;
+/*--- dissect_h450_err ------------------------------------------------------*/
+static int
+dissect_h450_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset;
+ rose_ctx_t *rctx;
+ gint32 errcode;
+ const h450_err_t *err_ptr;
+ const gchar *p;
+
+ offset = 0;
+ rctx = get_rose_ctx(pinfo->private_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;
+
+ proto_tree_add_uint_hidden(tree, hf_h450_error, tvb, 0, 0, errcode);
+ p = match_strval(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);
+ }
- it=proto_tree_add_protocol_format(tree, proto_h4501, tvb, 0, -1, "H.450.1");
- tr=proto_item_add_subtree(it, ett_h4501);
+ if (err_ptr->err_pdu && (tvb_length_remaining(tvb, offset) > 0))
+ offset = err_ptr->err_pdu(tvb, pinfo, tree);
+ else
+ if (tvb_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_text(tree, tvb, offset, -1, "UNSUPPORTED ERROR TYPE (H.450)");
+ offset += tvb_length_remaining(tvb, offset);
+ }
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
- dissect_h450_H4501SupplementaryService(tvb, offset, &asn1_ctx, tr, hf_h4501);
+ return offset;
}
/*--- proto_register_h450 -------------------------------------------*/
void proto_register_h450(void) {
/* List of fields */
- static hf_register_info hf[] = {
- { &hf_h4501,
- { "SupplementaryService", "h4501.SupplementaryService", FT_NONE, BASE_NONE,
- NULL, 0, "SupplementaryService sequence", HFILL }},
- { &hf_h4501_dummy,
- { "dummy", "h4501.dummy", FT_NONE, BASE_NONE,
- NULL, 0, "Dummy", HFILL }},
- { &hf_h4501_constrained_invokeId,
- { "invokeId", "h4501.invokeId", FT_UINT32, BASE_DEC,
- NULL, 0, "constrained_invokeId", HFILL }},
- { &hf_h4501_invokeId,
- { "invokeId", "h4501.invokeId", FT_INT32, BASE_DEC,
- NULL, 0, "invokeId", HFILL }},
- { &hf_h4501_localOpcode,
- { "localOpcode", "h4501.localOpcode", FT_INT32, BASE_DEC,
- VALS(localOpcode_vals), 0, "local", HFILL }},
- { &hf_h4501_globalCode,
- { "globalCode", "h4501.globalCode", FT_STRING, BASE_HEX,
- NULL, 0, "global", HFILL }},
- { &hf_h4501_globalargument,
- { "argumentArgument", "h4501.globalArgument", FT_BYTES, BASE_HEX,
- NULL, 0, "argument", HFILL }},
- { &hf_h4501_opcode,
- { "opcode", "h4501.opcode", FT_UINT32, BASE_DEC,
- VALS(opcode_vals), 0, "opcode choice", HFILL }},
- { &hf_h4501_ReturnResult_result,
- { "ReturnResult_result", "h4501.ReturnResult.result", FT_BYTES, BASE_HEX,
- NULL, 0, "result", HFILL }},
- { &hf_h4501_result,
- { "result", "h4501.result", FT_NONE, BASE_NONE,
- NULL, 0, "result sequence of", HFILL }},
- { &hf_h4501_ReturnResult,
- { "ReturnResult", "h4501.ReturnResult", FT_NONE, BASE_NONE,
- NULL, 0, "ReturnResult sequence of", HFILL }},
- { &hf_h4501_localErrorCode,
- { "localErrorCode", "h4501.localErrorCode", FT_INT32, BASE_DEC,
- VALS(localErrorCode_vals), 0, "local", HFILL }},
- { &hf_h4501_errorCode,
- { "errorCode", "h4501.errorCode", FT_UINT32, BASE_DEC,
- VALS(errorCode_vals), 0, "errorCode", HFILL }},
- { &hf_h4501_parameter,
- { "parameter", "h4501.parameter", FT_BYTES, BASE_HEX,
- NULL, 0, "parameter", HFILL }},
- { &hf_h4501_ReturnError,
- { "ReturnError", "h4501.ReturnError", FT_NONE, BASE_NONE,
- NULL, 0, "ReturnError sequence of", HFILL }},
- { &hf_h4501_GeneralProblem,
- { "GeneralProblem", "h4501.GeneralProblem", FT_UINT32, BASE_DEC,
- VALS(GeneralProblem_vals), 0, "GeneralProblem", HFILL }},
- { &hf_h4501_InvokeProblem,
- { "InvokeProblem", "h4501.InvokeProblem", FT_UINT32, BASE_DEC,
- VALS(InvokeProblem_vals), 0, "InvokeProblem", HFILL }},
- { &hf_h4501_ReturnResultProblem,
- { "ReturnResultProblem", "h4501.ReturnResultProblem", FT_UINT32, BASE_DEC,
- VALS(ReturnResultProblem_vals), 0, "ReturnResultProblem", HFILL }},
- { &hf_h4501_ReturnErrorProblem,
- { "ReturnErrorProblem", "h4501.ReturnErrorProblem", FT_UINT32, BASE_DEC,
- VALS(ReturnErrorProblem_vals), 0, "ReturnErrorProblem", HFILL }},
- { &hf_h4501_problem,
- { "problem", "h4501.problem", FT_UINT32, BASE_DEC,
- VALS(problem_vals), 0, "problem choice", HFILL }},
- { &hf_h4501_Reject,
- { "Reject", "h4501.Reject", FT_NONE, BASE_NONE,
- NULL, 0, "Reject sequence of", HFILL }},
- { &hf_h4501_ROS,
- { "ROS", "h4501.ROS", FT_UINT32, BASE_DEC,
- VALS(ROS_vals), 0, "ROS choice", HFILL }},
- { &hf_h4501_Invoke,
- { "Invoke", "h4501.Invoke", FT_NONE, BASE_NONE,
- NULL, 0, "Invoke sequence of", HFILL }},
- { &hf_h4502_CTIdentifyRes,
- { "CTIdentifyRes", "h4502.CTIdentifyRes", FT_NONE, BASE_NONE,
- NULL, 0, "CTIdentifyRes sequence of", HFILL }},
- { &hf_h4502_DummyRes,
- { "DummyRes", "h4502.DummyRes", FT_UINT32, BASE_DEC,
- VALS(h450_DummyRes_vals), 0, "DummyRes Choice", HFILL }},
- { &hf_h4502_DummyArg,
- { "DummyArg", "h4502.DummyArg", FT_UINT32, BASE_DEC,
- VALS(h450_DummyArg_vals), 0, "DummyArg choice", HFILL }},
- { &hf_h4503DeactivateDiversionQArg,
- { "DeactivateDiversionQArg", "h4503.DeactivateDiversionQArg", FT_NONE, BASE_NONE,
- NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
- { &hf_h4503InterrogateDiversionQ,
- { "InterrogateDiversionQ", "h4503.InterrogateDiversionQ", FT_NONE, BASE_NONE,
- NULL, 0, "InterrogateDiversionQ sequence of", HFILL }},
- { &hf_h4503CheckRestrictionArg,
- { "CheckRestrictionArg", "h4503.CheckRestrictionArg", FT_NONE, BASE_NONE,
- NULL, 0, "CheckRestrictionArg sequence of", HFILL }},
- { &hf_h4503CallReroutingArg,
- { "CallReroutingArg", "h4503.CallReroutingArg", FT_NONE, BASE_NONE,
- NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
- { &hf_h4503DivertingLegInformation1Arg,
- { "DivertingLegInformation1Arg", "h4503.DivertingLegInformation1Arg", FT_NONE, BASE_NONE,
- NULL, 0, "DivertingLegInformation1Arg sequence of", HFILL }},
- { &hf_h4503DivertingLegInformation2Arg,
- { "DivertingLegInformation2Arg", "h4503.DivertingLegInformation2Arg", FT_NONE, BASE_NONE,
- NULL, 0, "DivertingLegInformation1Arg sequence of", HFILL }},
- { &hf_h4503DivertingLegInformation3Arg,
- { "DivertingLegInformation3Arg", "h4503.DivertingLegInformation3Arg", FT_NONE, BASE_NONE,
- NULL, 0, "DivertingLegInformation1Arg sequence of", HFILL }},
- { &hf_h4503DivertingLegInformation4Arg,
- { "DivertingLegInformation4Arg", "h4503.DivertingLegInformation4Arg", FT_NONE, BASE_NONE,
- NULL, 0, "DivertingLegInformation4Arg sequence of", HFILL }},
- { &hf_h4503CfnrDivertedLegFailedArg,
- { "CfnrDivertedLegFailedArg", "h4503.CfnrDivertedLegFailedArg", FT_NONE, BASE_NONE,
- NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
-
- { &hf_h4504_HoldNotificArg,
- { "HoldNotificArg", "h4504.HoldNotificArg", FT_NONE, BASE_NONE,
- NULL, 0, "HoldNotificArg sequence of", HFILL }},
- { &hf_h4504_RetrieveNotificArg,
- { "RetrieveNotificArg", "h4504.RetrieveNotificArg", FT_NONE, BASE_NONE,
- NULL, 0, "RetrieveNotificArg sequence of", HFILL }},
- { &hf_h4504_RemoteHoldArg,
- { "RemoteHoldArg", "h4504.RemoteHoldArg", FT_NONE, BASE_NONE,
- NULL, 0, "RemoteHoldArg sequence of", HFILL }},
- { &hf_h4504_RemoteRetrieveArg,
- { "RemoteRetrieveArg", "h4504.RemoteRetrieveArg", FT_NONE, BASE_NONE,
- NULL, 0, "RemoteRetrieveArg sequence of", HFILL }},
- { &hf_h4504_RemoteRetrieveRes,
- { "RemoteRetrieveRes", "h4504.RemoteRetrieveRes", FT_NONE, BASE_NONE,
- NULL, 0, "RemoteRetrieveRes sequence of", HFILL }},
-
- { &hf_h4507_MWIActivateArg,
- { "MWIActivateArg", "h4507.MWIActivateArg", FT_NONE, BASE_NONE,
- NULL, 0, "MWIActivateArg sequence of", HFILL }},
- { &hf_h4507_MwiDummyRes,
- { "MwiDummyRes", "h4507.MwiDummyRes", FT_NONE, BASE_NONE,
- NULL, 0, "MwiDummyRes sequence of", HFILL }},
- { &hf_h4507_MWIDeactivateArg,
- { "MWIDeactivateArg", "h4507.MWIDeactivateArg", FT_NONE, BASE_NONE,
- NULL, 0, "MWIDeactivateArg sequence of", HFILL }},
- { &hf_h4507_MWIInterrogateArg,
- { "MWIInterrogateArg", "h4507.MWIInterrogateArg", FT_NONE, BASE_NONE,
- NULL, 0, "MWIInterrogateArg sequence of", HFILL }},
- { &hf_h4507_MWIInterrogateRes,
- { "MWIInterrogateRes", "h4507.MWIInterrogateRes", FT_NONE, BASE_NONE,
- NULL, 0, "MWIInterrogateRes sequence of", HFILL }},
-
- { &hf_h4508_CallingNameArg,
- { "CallingNameArg", "h4508.CallingNameArg", FT_NONE, BASE_NONE,
- NULL, 0, "CallingNameArg sequence of", HFILL }},
- { &hf_h4508_AlertingNameArg,
- { "AlertingNameArg", "h4508.AlertingNameArg", FT_NONE, BASE_NONE,
- NULL, 0, "AlertingNameArg sequence of", HFILL }},
- { &hf_h4508_ConnectedNameArg,
- { "ConnectedNameArg", "h4508.ConnectedNameArg", FT_NONE, BASE_NONE,
- NULL, 0, "ConnectedNameArg sequence of", HFILL }},
- { &hf_h4508_BusyNameArg,
- { "BusyNameArg", "h4508.BusyNameArg", FT_NONE, BASE_NONE,
- NULL, 0, "BusyNameArg sequence of", HFILL }},
- { &hf_h45012_CmnRequest,
- { "CmnRequest", "h4508.CmnRequest", FT_NONE, BASE_NONE,
- NULL, 0, "CmnRequest sequence of", HFILL }},
- { &hf_h45012_CmnInform,
- { "CmnRequest", "h4508.CmnRequest", FT_NONE, BASE_NONE,
- NULL, 0, "CmnRequest sequence of", HFILL }},
-
+ static hf_register_info hf[] = {
+ { &hf_h450_operation, { "Operation", "h450.operation",
+ FT_UINT8, BASE_DEC, VALS(h450_str_operation), 0x0,
+ "Operation", HFILL }},
+ { &hf_h450_error, { "Error", "h450.error",
+ FT_UINT8, BASE_DEC, VALS(h450_str_error), 0x0,
+ "Error", HFILL }},
#include "packet-h450-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
- &ett_h4501,
- &ett_h4501_opcode,
- &ett_h4501_result,
- &ett_h4501_errorCode,
-
- &ett_h4501_problem,
- &ett_h4501_Reject,
- &ett_h4501_ReturnError,
- &ett_h4501_ReturnResult,
- &ett_h4501_Invoke,
- &ett_h4501_ROS,
#include "packet-h450-ettarr.c"
};
/* Register protocol */
- proto_h4501 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ proto_h450 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ new_register_dissector("h4501", dissect_h450_H4501SupplementaryService_PDU, proto_h450);
/* Register fields and subtrees */
- proto_register_field_array(proto_h4501, hf, array_length(hf));
+ proto_register_field_array(proto_h450, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- register_dissector("h4501", dissect_h4501, proto_h4501);
+ rose_ctx_init(&h450_rose_ctx);
+ /* Register dissector tables */
+ h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", FT_STRING, BASE_NONE);
+ h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", FT_STRING, BASE_NONE);
+ h450_rose_ctx.arg_local_dissector_table = register_dissector_table("h450.ros.local.arg", "H.450 Operation Argument (local opcode)", FT_UINT32, BASE_HEX);
+ h450_rose_ctx.res_local_dissector_table = register_dissector_table("h450.ros.local.res", "H.450 Operation Result (local opcode)", FT_UINT32, BASE_HEX);
+ h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", FT_STRING, BASE_NONE);
+ h450_rose_ctx.err_local_dissector_table = register_dissector_table("h450.ros.local.err", "H.450 Error (local opcode)", FT_UINT32, BASE_HEX);
}
-/*--- proto_reg_handoff_h4501 ---------------------------------------*/
+/*--- proto_reg_handoff_h450 ---------------------------------------*/
void
-proto_reg_handoff_h4501(void)
+proto_reg_handoff_h450(void)
{
-
- h4501_handle = find_dissector("h4501");
+ int i;
+ dissector_handle_t h450_arg_handle;
+ dissector_handle_t h450_res_handle;
+ dissector_handle_t h450_err_handle;
+
+ data_handle = find_dissector("data");
+
+ h450_arg_handle = new_create_dissector_handle(dissect_h450_arg, proto_h450);
+ h450_res_handle = new_create_dissector_handle(dissect_h450_res, proto_h450);
+ for (i=0; i<(int)array_length(h450_op_tab); i++) {
+ dissector_add("h450.ros.local.arg", h450_op_tab[i].opcode, h450_arg_handle);
+ dissector_add("h450.ros.local.res", h450_op_tab[i].opcode, h450_res_handle);
+ }
+ h450_err_handle = new_create_dissector_handle(dissect_h450_err, proto_h450);
+ for (i=0; i<(int)array_length(h450_err_tab); i++) {
+ dissector_add("h450.ros.local.err", h450_err_tab[i].errcode, h450_err_handle);
+ }
}