diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-07-30 08:01:59 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-07-30 08:01:59 +0000 |
commit | 5a46ea46b5d79e119f902d52ce714f4a2466deed (patch) | |
tree | d28654291f462760aca4ef6985e6ea5946ec91c1 | |
parent | 4142a2b90f1e248997f3979346c550373561981c (diff) |
H.450 regenerated from original ASN.1 sources
svn path=/trunk/; revision=22417
32 files changed, 7425 insertions, 6138 deletions
diff --git a/asn1/Makefile.am b/asn1/Makefile.am index 7b8dfce740..2b208751ee 100644 --- a/asn1/Makefile.am +++ b/asn1/Makefile.am @@ -154,12 +154,30 @@ EXTRA_DIST = \ h248/MEGACO.asn \ h248/packet-h248-template.c \ h248/packet-h248-template.h \ - h450/h4501.asn \ + h450/H4501-Supplementary-ServiceAPDU-Structure.asn \ + h450/Addressing-Data-Elements.asn \ + h450/H225-generic-parameters-definition.asn \ + h450/Manufacturer-specific-service-extension-definition.asn \ + h450/H4501-General-Error-List.asn \ + h450/Call-Transfer-Operations.asn \ + h450/Call-Diversion-Operations.asn \ + h450/Call-Hold-Operations.asn \ + h450/Call-Park-Pickup-Operations.asn \ + h450/Call-Waiting-Operations.asn \ + h450/Message-Waiting-Indication-Operations.asn \ + h450/Name-Operations.asn \ + h450/Call-Completion-Operations.asn \ + h450/Call-Offer-Operations.asn \ + h450/Call-Intrusion-Operations.asn \ + h450/Common-Information-Operations.asn \ + h450/Remote-Operations-Apdus.asn \ h450/h450.cnf \ + h450/h450-ros.cnf \ h450/Makefile \ h450/Makefile.nmake \ h450/packet-h450-template.c \ - h450/packet-h450-template.h \ + h450/packet-h450-ros-template.c \ + h450/packet-h450-ros-template.h \ inap/inap.asn \ inap/inap.cnf \ inap/Makefile \ 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); + } } diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common index 83e085ab0a..299b927a64 100644 --- a/epan/dissectors/Makefile.common +++ b/epan/dissectors/Makefile.common @@ -101,6 +101,7 @@ ASN_DISSECTOR_SRC = \ packet-h245.c \ packet-h248.c \ packet-h450.c \ + packet-h450-ros.c \ packet-imf.c \ packet-inap.c \ packet-ldap.c \ @@ -868,7 +869,7 @@ DISSECTOR_INCLUDES = \ packet-h235.h \ packet-h245.h \ packet-h248.h \ - packet-h450.h \ + packet-h450-ros.h \ packet-hci_h4.h \ packet-hclnfsd.h \ packet-hpext.h \ diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c index c3bb1e8f3d..05db2fc411 100644 --- a/epan/dissectors/packet-h450.c +++ b/epan/dissectors/packet-h450.c @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Wireshark dissector compiler */ /* .\packet-h450.c */ -/* ../../tools/asn2wrs.py -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn */ +/* ../../tools/asn2wrs.py -c h450.cnf -s packet-h450-template 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 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 */ /* Input file: packet-h450-template.c */ @@ -46,178 +46,28 @@ #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" +#include "packet-h450-ros.h" + +#define PNAME "H.450 Supplementary Services" +#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 - -/* 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; /* 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; /*--- Included file: packet-h450-hf.c ---*/ #line 1 "packet-h450-hf.c" -static int hf_h450_CallTransferIdentify_PDU = -1; /* CallTransferIdentify */ -static int hf_h450_CallTransferAbandon_PDU = -1; /* CallTransferAbandon */ -static int hf_h450_CallTransferInitiate_PDU = -1; /* CallTransferInitiate */ -static int hf_h450_CallTransferSetup_PDU = -1; /* CallTransferSetup */ -static int hf_h450_CallTransferUpdate_PDU = -1; /* CallTransferUpdate */ -static int hf_h450_SubaddressTransfer_PDU = -1; /* SubaddressTransfer */ -static int hf_h450_CallTransferComplete_PDU = -1; /* CallTransferComplete */ -static int hf_h450_CallTransferActive_PDU = -1; /* CallTransferActive */ -static int hf_h450_ActivateDiversionQArg_PDU = -1; /* ActivateDiversionQArg */ -static int hf_h450_ActivateDiversionQRes_PDU = -1; /* ActivateDiversionQRes */ -static int hf_h450_DeactivateDiversionQRes_PDU = -1; /* DeactivateDiversionQRes */ -static int hf_h450_InterrogateDiversionQRes_PDU = -1; /* InterrogateDiversionQRes */ -static int hf_h450_CheckRestrictionRes_PDU = -1; /* CheckRestrictionRes */ -static int hf_h450_CallReroutingRes_PDU = -1; /* CallReroutingRes */ + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + +static int hf_h450_h450_H4501SupplementaryService_PDU = -1; /* H4501SupplementaryService */ static int hf_h450_networkFacilityExtension = -1; /* NetworkFacilityExtension */ static int hf_h450_interpretationApdu = -1; /* InterpretationApdu */ static int hf_h450_serviceApdu = -1; /* ServiceApdus */ @@ -230,8 +80,8 @@ static int hf_h450_anyEntity = -1; /* NULL */ static int hf_h450_discardAnyUnrecognizedInvokePdu = -1; /* NULL */ static int hf_h450_clearCallIfAnyInvokePduNotRecognized = -1; /* NULL */ static int hf_h450_rejectAnyUnrecognizedInvokePdu = -1; /* NULL */ -static int hf_h450_rosApdus = -1; /* SEQUENCE_OF_ROS */ -static int hf_h450_rosApdus_item = -1; /* ROS */ +static int hf_h450_rosApdus = -1; /* SEQUENCE_SIZE_1_MAX_OF_ROS */ +static int hf_h450_rosApdus_item = -1; /* T_rosApdus_item */ static int hf_h450_addressScreened_presentationAllowedAddress = -1; /* AddressScreened */ static int hf_h450_presentationRestricted = -1; /* NULL */ static int hf_h450_numberNotAvailableDueToInterworking = -1; /* NULL */ @@ -256,254 +106,378 @@ static int hf_h450_userSpecifiedSubaddress = -1; /* UserSpecifiedSubaddress */ static int hf_h450_nsapSubaddress = -1; /* NSAPSubaddress */ static int hf_h450_subaddressInformation = -1; /* SubaddressInformation */ static int hf_h450_oddCountIndicator = -1; /* BOOLEAN */ -static int hf_h450_extensionSeq = -1; /* ExtensionSeq */ -static int hf_h450_nonStandardData = -1; /* NonStandardParameter */ -static int hf_h450_callIdentity = -1; /* CallIdentity */ -static int hf_h450_reroutingNumber = -1; /* EndpointAddress */ -static int hf_h450_cTInitiateArg_argumentExtension = -1; /* ArgumentExtension */ -static int hf_h450_transferringNumber = -1; /* EndpointAddress */ -static int hf_h450_cTSetupArg_argumentExtension = -1; /* ArgumentExtension */ -static int hf_h450_resultExtension = -1; /* T_resultExtension */ -static int hf_h450_redirectionNumber = -1; /* EndpointAddress */ -static int hf_h450_redirectionInfo = -1; /* BMPString_SIZE_1_128 */ -static int hf_h450_basicCallInfoElements = -1; /* H225InformationElement */ -static int hf_h450_cTUpdateArg_argumentExtension = -1; /* ArgumentExtension */ -static int hf_h450_redirectionSubaddress = -1; /* PartySubaddress */ -static int hf_h450_subaddressTransferArg_argumentExtension = -1; /* ArgumentExtension */ -static int hf_h450_endDesignation = -1; /* EndDesignation */ -static int hf_h450_callStatus = -1; /* CallStatus */ -static int hf_h450_cTCompleteArg_argumentExtension = -1; /* ArgumentExtension */ -static int hf_h450_connectedAddress = -1; /* EndpointAddress */ -static int hf_h450_connectedInfo = -1; /* BMPString_SIZE_1_128 */ -static int hf_h450_cTActiveArg_argumentExtension = -1; /* ArgumentExtension */ -static int hf_h450_ExtensionSeq_item = -1; /* Extension */ -static int hf_h450_procedure = -1; /* Procedure */ -static int hf_h450_basicService = -1; /* BasicService */ -static int hf_h450_divertedToAddress = -1; /* EndpointAddress */ -static int hf_h450_servedUserNr = -1; /* EndpointAddress */ -static int hf_h450_activatingUserNr = -1; /* EndpointAddress */ -static int hf_h450_activateDiversionQArg_extension = -1; /* ActivateDiversionQArg_extension */ -static int hf_h450_deactivatingUserNr = -1; /* EndpointAddress */ -static int hf_h450_deactivateDiversionQArg_extension = -1; /* DeactivateDiversionQArg_extension */ -static int hf_h450_interrogatingUserNr = -1; /* EndpointAddress */ -static int hf_h450_interrogateDiversionQ_extension = -1; /* InterrogateDiversionQ_extension */ -static int hf_h450_divertedToNr = -1; /* EndpointAddress */ -static int hf_h450_checkRestrictionArg_extension = -1; /* CheckRestrictionArg_extension */ -static int hf_h450_reroutingReason = -1; /* DiversionReason */ -static int hf_h450_originalReroutingReason = -1; /* DiversionReason */ -static int hf_h450_calledAddress = -1; /* EndpointAddress */ -static int hf_h450_diversionCounter = -1; /* INTEGER_1_15 */ -static int hf_h450_h225InfoElement = -1; /* H225InformationElement */ -static int hf_h450_lastReroutingNr = -1; /* EndpointAddress */ -static int hf_h450_subscriptionOption = -1; /* SubscriptionOption */ -static int hf_h450_callingPartySubaddress = -1; /* PartySubaddress */ -static int hf_h450_callingNumber = -1; /* EndpointAddress */ -static int hf_h450_callingInfo = -1; /* BMPString_SIZE_1_128 */ -static int hf_h450_originalCalledNr = -1; /* EndpointAddress */ -static int hf_h450_redirectingInfo = -1; /* BMPString_SIZE_1_128 */ -static int hf_h450_originalCalledInfo = -1; /* BMPString_SIZE_1_128 */ -static int hf_h450_callReroutingArg_extension = -1; /* CallReroutingArg_extension */ -static int hf_h450_diversionReason = -1; /* DiversionReason */ -static int hf_h450_nominatedNr = -1; /* EndpointAddress */ -static int hf_h450_nominatedInfo = -1; /* BMPString_SIZE_1_128 */ -static int hf_h450_redirectingNr = -1; /* EndpointAddress */ -static int hf_h450_divertingLegInformation1Arg_extension = -1; /* DivertingLegInformation1Arg_extension */ -static int hf_h450_originalDiversionReason = -1; /* DiversionReason */ -static int hf_h450_divertingNr = -1; /* EndpointAddress */ -static int hf_h450_extension = -1; /* DivertingLegInformation2Arg_extension */ -static int hf_h450_presentationAllowedIndicator = -1; /* PresentationAllowedIndicator */ -static int hf_h450_redirectionNr = -1; /* EndpointAddress */ -static int hf_h450_divertingLegInformation3Arg_extension = -1; /* DivertingLegInformation3Arg_extension */ -static int hf_h450_callingNr = -1; /* EndpointAddress */ -static int hf_h450_divertingLegInformation4Arg_extension = -1; /* DivertingLegInformation4Arg_extension */ -static int hf_h450_IntResultList_item = -1; /* IntResult */ -static int hf_h450_remoteEnabled = -1; /* BOOLEAN */ -static int hf_h450_intResult_extension = -1; /* IntResult_extension */ -static int hf_h450_holdNotificArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_holdNotificArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_retrieveNotificArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_retrieveNotificArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_remoteHoldArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_remoteHoldArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_extensionRes = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_extensionRes_item = -1; /* MixedExtension */ -static int hf_h450_remoteRetrieveArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_remoteRetrieveArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_mixedExtension_extension = -1; /* Extension */ -static int hf_h450_parkingNumber = -1; /* EndpointAddress */ -static int hf_h450_parkedNumber = -1; /* EndpointAddress */ -static int hf_h450_parkedToNumber = -1; /* EndpointAddress */ -static int hf_h450_parkedToPosition = -1; /* ParkedToPosition */ -static int hf_h450_cpRequestArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cpRequestArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_parkCondition = -1; /* ParkCondition */ -static int hf_h450_cpSetupArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cpSetupArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_callPickupId = -1; /* CallIdentifier */ -static int hf_h450_groupMemberUserNr = -1; /* EndpointAddress */ -static int hf_h450_retrieveCallType = -1; /* CallType */ -static int hf_h450_partyToRetrieve = -1; /* EndpointAddress */ -static int hf_h450_retrieveAddress = -1; /* EndpointAddress */ -static int hf_h450_parkPosition = -1; /* ParkedToPosition */ -static int hf_h450_groupIndicationOnArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_groupIndicationOnArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_groupIndicationOffArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_groupIndicationOffArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_picking_upNumber = -1; /* EndpointAddress */ -static int hf_h450_pickrequArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_pickrequArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_pickupArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_pickupArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_pickExeArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_pickExeArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_cpNotifyArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cpNotifyArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_cpickupNotifyArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cpickupNotifyArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_nbOfAddWaitingCalls = -1; /* INTEGER_0_255 */ -static int hf_h450_callWaitingArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_callWaitingArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_msgCentreId = -1; /* MsgCentreId */ -static int hf_h450_nbOfMessages = -1; /* NbOfMessages */ -static int hf_h450_originatingNr = -1; /* EndpointAddress */ -static int hf_h450_timestamp = -1; /* TimeStamp */ -static int hf_h450_priority = -1; /* INTEGER_0_9 */ -static int hf_h450_mWIActivateArg_extensionArg = -1; /* ExtensionArg */ -static int hf_h450_MwiDummyRes_item = -1; /* MixedExtension */ -static int hf_h450_callbackReq = -1; /* BOOLEAN */ -static int hf_h450_mWIDeactivateArg_extensionArg = -1; /* ExtensionArg */ -static int hf_h450_mWIInterrogateArg_extensionArg = -1; /* ExtensionArg */ -static int hf_h450_MWIInterrogateRes_item = -1; /* MWIInterrogateResElt */ -static int hf_h450_mWIInterrogateResElt_extensionArg = -1; /* ExtensionArg */ -static int hf_h450_integer = -1; /* INTEGER_0_65535 */ -static int hf_h450_mwipartyNumber = -1; /* EndpointAddress */ -static int hf_h450_numericString = -1; /* NumericString_SIZE_1_10 */ -static int hf_h450_ExtensionArg_item = -1; /* MixedExtension */ -static int hf_h450_name = -1; /* Name */ -static int hf_h450_nameArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_nameArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_namePresentationAllowed = -1; /* NamePresentationAllowed */ -static int hf_h450_namePresentationRestricted = -1; /* NamePresentationRestricted */ -static int hf_h450_nameNotAvailable = -1; /* NULL */ -static int hf_h450_simpleName = -1; /* SimpleName */ -static int hf_h450_extendedName = -1; /* ExtendedName */ -static int hf_h450_restrictedNull = -1; /* NULL */ -static int hf_h450_numberA = -1; /* EndpointAddress */ -static int hf_h450_numberB = -1; /* EndpointAddress */ -static int hf_h450_ccIdentifier = -1; /* CallIdentifier */ -static int hf_h450_service = -1; /* BasicService */ -static int hf_h450_can_retain_service = -1; /* BOOLEAN */ -static int hf_h450_retain_sig_connection = -1; /* BOOLEAN */ -static int hf_h450_ccRequestArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_ccRequestArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_retain_service = -1; /* BOOLEAN */ -static int hf_h450_ccRequestRes_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_ccRequestRes_extension_item = -1; /* MixedExtension */ -static int hf_h450_shortArg = -1; /* CcShortArg */ -static int hf_h450_longArg = -1; /* CcLongArg */ -static int hf_h450_ccShortArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_ccShortArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_ccLongArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_ccLongArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_coReqOptArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_coReqOptArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_rUAlertOptArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_rUAlertOptArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_cfbOvrOptArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cfbOvrOptArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_ciCapabilityLevel = -1; /* CICapabilityLevel */ -static int hf_h450_cIRequestArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIRequestArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_ciStatusInformation = -1; /* CIStatusInformation */ -static int hf_h450_cIRequestRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIRequestRes_resultExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIGetCIPLOptArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIGetCIPLOptArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_ciProtectionLevel = -1; /* CIProtectionLevel */ -static int hf_h450_silentMonitoringPermitted = -1; /* NULL */ -static int hf_h450_cIGetCIPLRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIGetCIPLRes_resultExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIIsOptArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIIsOptArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIIsOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIIsOptRes_resultExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIFrcRelArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIFrcRelArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIFrcRelOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIFrcRelOptRes_resultExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIWobOptArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIWobOptArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_cIWobOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cIWobOptRes_resultExtension_item = -1; /* MixedExtension */ -static int hf_h450_specificCall = -1; /* CallIdentifier */ -static int hf_h450_cISilentArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cISilentArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_cISilentOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cISilentOptRes_resultExtension_item = -1; /* MixedExtension */ -static int hf_h450_cINotificationArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cINotificationArg_argumentExtension_item = -1; /* MixedExtension */ -static int hf_h450_callIntrusionImpending = -1; /* NULL */ -static int hf_h450_callIntruded = -1; /* NULL */ -static int hf_h450_callIsolated = -1; /* NULL */ -static int hf_h450_callForceReleased = -1; /* NULL */ -static int hf_h450_callIntrusionComplete = -1; /* NULL */ -static int hf_h450_callIntrusionEnd = -1; /* NULL */ -static int hf_h450_featureList = -1; /* FeatureList */ -static int hf_h450_featureValues = -1; /* FeatureValues */ -static int hf_h450_featureControl = -1; /* FeatureControl */ -static int hf_h450_cmnArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cmnArg_extension_item = -1; /* MixedExtension */ -static int hf_h450_cmnRequestArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ -static int hf_h450_cmnRequestArg_extensionArg_item = -1; /* MixedExtension */ -static int hf_h450_ssCFreRoutingSupported = -1; /* NULL */ -static int hf_h450_ssCTreRoutingSupported = -1; /* NULL */ -static int hf_h450_ssCCBSPossible = -1; /* NULL */ -static int hf_h450_ssCCNRPossible = -1; /* NULL */ -static int hf_h450_ssCOSupported = -1; /* NULL */ -static int hf_h450_ssCIForcedReleaseSupported = -1; /* NULL */ -static int hf_h450_ssCIIsolationSupported = -1; /* NULL */ -static int hf_h450_ssCIWaitOnBusySupported = -1; /* NULL */ -static int hf_h450_ssCISilentMonitoringSupported = -1; /* NULL */ -static int hf_h450_ssCIConferenceSupported = -1; /* NULL */ -static int hf_h450_ssCHFarHoldSupported = -1; /* NULL */ -static int hf_h450_ssMWICallbackSupported = -1; /* NULL */ -static int hf_h450_ssCPCallParkSupported = -1; /* NULL */ -static int hf_h450_partyCategory = -1; /* PartyCategory */ -static int hf_h450_ssCIprotectionLevel = -1; /* SSCIProtectionLevel */ -static int hf_h450_ssCHDoNotHold = -1; /* NULL */ -static int hf_h450_ssCTDoNotTransfer = -1; /* NULL */ -static int hf_h450_ssMWICallbackCall = -1; /* NULL */ -static int hf_h450_ssCISilentMonitorPermitted = -1; /* NULL */ -static int hf_h450_unspecified_extension = -1; /* Extension */ -static int hf_h450_nonStandard = -1; /* NonStandardParameter */ static int hf_h450_extensionId = -1; /* OBJECT_IDENTIFIER */ -static int hf_h450_extensionArgument = -1; /* ExtensionArgument */ +static int hf_h450_extensionArgument = -1; /* T_extensionArgument */ + +/* --- Module Call-Transfer-Operations --- --- --- */ + +static int hf_h450_2_h450_2_DummyArg_PDU = -1; /* DummyArg */ +static int hf_h450_2_h450_2_CTIdentifyRes_PDU = -1; /* CTIdentifyRes */ +static int hf_h450_2_h450_2_CTInitiateArg_PDU = -1; /* CTInitiateArg */ +static int hf_h450_2_h450_2_DummyRes_PDU = -1; /* DummyRes */ +static int hf_h450_2_h450_2_CTSetupArg_PDU = -1; /* CTSetupArg */ +static int hf_h450_2_h450_2_CTUpdateArg_PDU = -1; /* CTUpdateArg */ +static int hf_h450_2_h450_2_SubaddressTransferArg_PDU = -1; /* SubaddressTransferArg */ +static int hf_h450_2_h450_2_CTCompleteArg_PDU = -1; /* CTCompleteArg */ +static int hf_h450_2_h450_2_CTActiveArg_PDU = -1; /* CTActiveArg */ +static int hf_h450_2_h450_2_PAR_unspecified_PDU = -1; /* PAR_unspecified */ +static int hf_h450_2_extensionSeq = -1; /* ExtensionSeq */ +static int hf_h450_2_nonStandardData = -1; /* NonStandardParameter */ +static int hf_h450_2_callIdentity = -1; /* CallIdentity */ +static int hf_h450_2_reroutingNumber = -1; /* EndpointAddress */ +static int hf_h450_2_cTInitiateArg_argumentExtension = -1; /* T_cTInitiateArg_argumentExtension */ +static int hf_h450_2_transferringNumber = -1; /* EndpointAddress */ +static int hf_h450_2_cTSetupArg_argumentExtension = -1; /* T_cTSetupArg_argumentExtension */ +static int hf_h450_2_resultExtension = -1; /* T_resultExtension */ +static int hf_h450_2_redirectionNumber = -1; /* EndpointAddress */ +static int hf_h450_2_redirectionInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_2_basicCallInfoElements = -1; /* H225InformationElement */ +static int hf_h450_2_cTUpdateArg_argumentExtension = -1; /* T_cTUpdateArg_argumentExtension */ +static int hf_h450_2_redirectionSubaddress = -1; /* PartySubaddress */ +static int hf_h450_2_subaddressTransferArg_argumentExtension = -1; /* T_subaddressTransferArg_argumentExtension */ +static int hf_h450_2_endDesignation = -1; /* EndDesignation */ +static int hf_h450_2_callStatus = -1; /* CallStatus */ +static int hf_h450_2_cTCompleteArg_argumentExtension = -1; /* T_cTCompleteArg_argumentExtension */ +static int hf_h450_2_connectedAddress = -1; /* EndpointAddress */ +static int hf_h450_2_connectedInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_2_cTActiveArg_argumentExtension = -1; /* T_cTActiveArg_argumentExtension */ +static int hf_h450_2_ExtensionSeq_item = -1; /* Extension */ +static int hf_h450_2_unspecified_extension = -1; /* Extension */ +static int hf_h450_2_nonStandard = -1; /* NonStandardParameter */ + +/* --- Module Call-Diversion-Operations --- --- --- */ + +static int hf_h450_3_h450_3_ARG_activateDiversionQ_PDU = -1; /* ARG_activateDiversionQ */ +static int hf_h450_3_h450_3_RES_activateDiversionQ_PDU = -1; /* RES_activateDiversionQ */ +static int hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU = -1; /* ARG_deactivateDiversionQ */ +static int hf_h450_3_h450_3_RES_deactivateDiversionQ_PDU = -1; /* RES_deactivateDiversionQ */ +static int hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU = -1; /* ARG_interrogateDiversionQ */ +static int hf_h450_3_h450_3_IntResultList_PDU = -1; /* IntResultList */ +static int hf_h450_3_h450_3_ARG_checkRestriction_PDU = -1; /* ARG_checkRestriction */ +static int hf_h450_3_h450_3_RES_checkRestriction_PDU = -1; /* RES_checkRestriction */ +static int hf_h450_3_h450_3_ARG_callRerouting_PDU = -1; /* ARG_callRerouting */ +static int hf_h450_3_h450_3_RES_callRerouting_PDU = -1; /* RES_callRerouting */ +static int hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU = -1; /* ARG_divertingLegInformation1 */ +static int hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU = -1; /* ARG_divertingLegInformation2 */ +static int hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU = -1; /* ARG_divertingLegInformation3 */ +static int hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU = -1; /* ARG_divertingLegInformation4 */ +static int hf_h450_3_h450_3_ARG_cfnrDivertedLegFailed_PDU = -1; /* ARG_cfnrDivertedLegFailed */ +static int hf_h450_3_h450_3_PAR_unspecified_PDU = -1; /* PAR_unspecified */ +static int hf_h450_3_procedure = -1; /* Procedure */ +static int hf_h450_3_basicService = -1; /* BasicService */ +static int hf_h450_3_divertedToAddress = -1; /* EndpointAddress */ +static int hf_h450_3_servedUserNr = -1; /* EndpointAddress */ +static int hf_h450_3_activatingUserNr = -1; /* EndpointAddress */ +static int hf_h450_3_activateDiversionQArg_extension = -1; /* ActivateDiversionQArg_extension */ +static int hf_h450_3_extensionSeq = -1; /* ExtensionSeq */ +static int hf_h450_3_nonStandardData = -1; /* NonStandardParameter */ +static int hf_h450_3_deactivatingUserNr = -1; /* EndpointAddress */ +static int hf_h450_3_deactivateDiversionQArg_extension = -1; /* DeactivateDiversionQArg_extension */ +static int hf_h450_3_interrogatingUserNr = -1; /* EndpointAddress */ +static int hf_h450_3_interrogateDiversionQ_extension = -1; /* InterrogateDiversionQ_extension */ +static int hf_h450_3_divertedToNr = -1; /* EndpointAddress */ +static int hf_h450_3_checkRestrictionArg_extension = -1; /* CheckRestrictionArg_extension */ +static int hf_h450_3_reroutingReason = -1; /* DiversionReason */ +static int hf_h450_3_originalReroutingReason = -1; /* DiversionReason */ +static int hf_h450_3_calledAddress = -1; /* EndpointAddress */ +static int hf_h450_3_diversionCounter = -1; /* INTEGER_1_15 */ +static int hf_h450_3_h225InfoElement = -1; /* H225InformationElement */ +static int hf_h450_3_lastReroutingNr = -1; /* EndpointAddress */ +static int hf_h450_3_subscriptionOption = -1; /* SubscriptionOption */ +static int hf_h450_3_callingPartySubaddress = -1; /* PartySubaddress */ +static int hf_h450_3_callingNumber = -1; /* EndpointAddress */ +static int hf_h450_3_callingInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_3_originalCalledNr = -1; /* EndpointAddress */ +static int hf_h450_3_redirectingInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_3_originalCalledInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_3_callReroutingArg_extension = -1; /* CallReroutingArg_extension */ +static int hf_h450_3_diversionReason = -1; /* DiversionReason */ +static int hf_h450_3_nominatedNr = -1; /* EndpointAddress */ +static int hf_h450_3_nominatedInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_3_redirectingNr = -1; /* EndpointAddress */ +static int hf_h450_3_divertingLegInformation1Arg_extension = -1; /* DivertingLegInformation1Arg_extension */ +static int hf_h450_3_originalDiversionReason = -1; /* DiversionReason */ +static int hf_h450_3_divertingNr = -1; /* EndpointAddress */ +static int hf_h450_3_divertingLegInformation2Arg_extension = -1; /* DivertingLegInformation2Arg_extension */ +static int hf_h450_3_presentationAllowedIndicator = -1; /* PresentationAllowedIndicator */ +static int hf_h450_3_redirectionNr = -1; /* EndpointAddress */ +static int hf_h450_3_redirectionInfo = -1; /* BMPString_SIZE_1_128 */ +static int hf_h450_3_divertingLegInformation3Arg_extension = -1; /* DivertingLegInformation3Arg_extension */ +static int hf_h450_3_callingNr = -1; /* EndpointAddress */ +static int hf_h450_3_divertingLegInformation4Arg_extension = -1; /* DivertingLegInformation4Arg_extension */ +static int hf_h450_3_IntResultList_item = -1; /* IntResult */ +static int hf_h450_3_remoteEnabled = -1; /* BOOLEAN */ +static int hf_h450_3_intResult_extension = -1; /* IntResult_extension */ +static int hf_h450_3_unspecified_extension = -1; /* Extension */ +static int hf_h450_3_nonStandard = -1; /* NonStandardParameter */ +static int hf_h450_3_ExtensionSeq_item = -1; /* Extension */ + +/* --- Module Call-Hold-Operations --- --- --- */ + +static int hf_h450_4_h450_4_HoldNotificArg_PDU = -1; /* HoldNotificArg */ +static int hf_h450_4_h450_4_RetrieveNotificArg_PDU = -1; /* RetrieveNotificArg */ +static int hf_h450_4_h450_4_RemoteHoldArg_PDU = -1; /* RemoteHoldArg */ +static int hf_h450_4_h450_4_RemoteHoldRes_PDU = -1; /* RemoteHoldRes */ +static int hf_h450_4_h450_4_RemoteRetrieveArg_PDU = -1; /* RemoteRetrieveArg */ +static int hf_h450_4_h450_4_RemoteRetrieveRes_PDU = -1; /* RemoteRetrieveRes */ +static int hf_h450_4_h450_4_PAR_undefined_PDU = -1; /* PAR_undefined */ +static int hf_h450_4_holdNotificArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_4_holdNotificArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_4_retrieveNotificArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_4_retrieveNotificArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_4_remoteHoldArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_4_remoteHoldArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_4_extensionRes = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_4_extensionRes_item = -1; /* MixedExtension */ +static int hf_h450_4_remoteRetrieveArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_4_remoteRetrieveArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_4_mixedExtension_extension = -1; /* Extension */ +static int hf_h450_4_nonStandardData = -1; /* NonStandardParameter */ +static int hf_h450_4_PAR_undefined_item = -1; /* MixedExtension */ + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + +static int hf_h450_5_h450_5_CpRequestArg_PDU = -1; /* CpRequestArg */ +static int hf_h450_5_h450_5_CpRequestRes_PDU = -1; /* CpRequestRes */ +static int hf_h450_5_h450_5_CpSetupArg_PDU = -1; /* CpSetupArg */ +static int hf_h450_5_h450_5_CpSetupRes_PDU = -1; /* CpSetupRes */ +static int hf_h450_5_h450_5_GroupIndicationOnArg_PDU = -1; /* GroupIndicationOnArg */ +static int hf_h450_5_h450_5_GroupIndicationOnRes_PDU = -1; /* GroupIndicationOnRes */ +static int hf_h450_5_h450_5_GroupIndicationOffArg_PDU = -1; /* GroupIndicationOffArg */ +static int hf_h450_5_h450_5_GroupIndicationOffRes_PDU = -1; /* GroupIndicationOffRes */ +static int hf_h450_5_h450_5_PickrequArg_PDU = -1; /* PickrequArg */ +static int hf_h450_5_h450_5_PickrequRes_PDU = -1; /* PickrequRes */ +static int hf_h450_5_h450_5_PickupArg_PDU = -1; /* PickupArg */ +static int hf_h450_5_h450_5_PickupRes_PDU = -1; /* PickupRes */ +static int hf_h450_5_h450_5_PickExeArg_PDU = -1; /* PickExeArg */ +static int hf_h450_5_h450_5_PickExeRes_PDU = -1; /* PickExeRes */ +static int hf_h450_5_h450_5_CpNotifyArg_PDU = -1; /* CpNotifyArg */ +static int hf_h450_5_h450_5_CpickupNotifyArg_PDU = -1; /* CpickupNotifyArg */ +static int hf_h450_5_h450_5_PAR_undefined_PDU = -1; /* PAR_undefined */ +static int hf_h450_5_parkingNumber = -1; /* EndpointAddress */ +static int hf_h450_5_parkedNumber = -1; /* EndpointAddress */ +static int hf_h450_5_parkedToNumber = -1; /* EndpointAddress */ +static int hf_h450_5_parkedToPosition = -1; /* ParkedToPosition */ +static int hf_h450_5_cpRequestArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_cpRequestArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_parkCondition = -1; /* ParkCondition */ +static int hf_h450_5_extensionRes = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_extensionRes_item = -1; /* MixedExtension */ +static int hf_h450_5_cpSetupArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_cpSetupArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_callPickupId = -1; /* CallIdentifier */ +static int hf_h450_5_groupMemberUserNr = -1; /* EndpointAddress */ +static int hf_h450_5_retrieveCallType = -1; /* CallType */ +static int hf_h450_5_partyToRetrieve = -1; /* EndpointAddress */ +static int hf_h450_5_retrieveAddress = -1; /* EndpointAddress */ +static int hf_h450_5_parkPosition = -1; /* ParkedToPosition */ +static int hf_h450_5_groupIndicationOnArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_groupIndicationOnArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_groupIndicationOffArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_groupIndicationOffArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_picking_upNumber = -1; /* EndpointAddress */ +static int hf_h450_5_pickrequArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_pickrequArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_pickupArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_pickupArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_pickExeArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_pickExeArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_cpNotifyArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_cpNotifyArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_cpickupNotifyArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_5_cpickupNotifyArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_5_PAR_undefined_item = -1; /* MixedExtension */ + +/* --- Module Call-Waiting-Operations --- --- --- */ + +static int hf_h450_6_h450_6_CallWaitingArg_PDU = -1; /* CallWaitingArg */ +static int hf_h450_6_nbOfAddWaitingCalls = -1; /* INTEGER_0_255 */ +static int hf_h450_6_callWaitingArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_6_callWaitingArg_extensionArg_item = -1; /* MixedExtension */ + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + +static int hf_h450_7_h450_7_MWIActivateArg_PDU = -1; /* MWIActivateArg */ +static int hf_h450_7_h450_7_DummyRes_PDU = -1; /* DummyRes */ +static int hf_h450_7_h450_7_MWIDeactivateArg_PDU = -1; /* MWIDeactivateArg */ +static int hf_h450_7_h450_7_MWIInterrogateArg_PDU = -1; /* MWIInterrogateArg */ +static int hf_h450_7_h450_7_MWIInterrogateRes_PDU = -1; /* MWIInterrogateRes */ +static int hf_h450_7_h450_7_PAR_undefined_PDU = -1; /* PAR_undefined */ +static int hf_h450_7_servedUserNr = -1; /* EndpointAddress */ +static int hf_h450_7_basicService = -1; /* BasicService */ +static int hf_h450_7_msgCentreId = -1; /* MsgCentreId */ +static int hf_h450_7_nbOfMessages = -1; /* NbOfMessages */ +static int hf_h450_7_originatingNr = -1; /* EndpointAddress */ +static int hf_h450_7_timestamp = -1; /* TimeStamp */ +static int hf_h450_7_priority = -1; /* INTEGER_0_9 */ +static int hf_h450_7_mWIActivateArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_7_mWIActivateArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_7_DummyRes_item = -1; /* MixedExtension */ +static int hf_h450_7_callbackReq = -1; /* BOOLEAN */ +static int hf_h450_7_mWIDeactivateArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_7_mWIDeactivateArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_7_mWIInterrogateArg_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_7_mWIInterrogateArg_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_7_MWIInterrogateRes_item = -1; /* MWIInterrogateResElt */ +static int hf_h450_7_mWIInterrogateResElt_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_7_mWIInterrogateResElt_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_7_integer = -1; /* INTEGER_0_65535 */ +static int hf_h450_7_partyNumber = -1; /* EndpointAddress */ +static int hf_h450_7_numericString = -1; /* NumericString_SIZE_1_10 */ +static int hf_h450_7_PAR_undefined_item = -1; /* MixedExtension */ + +/* --- Module Name-Operations --- --- --- */ + +static int hf_h450_8_h450_8_ARG_callingName_PDU = -1; /* ARG_callingName */ +static int hf_h450_8_h450_8_ARG_alertingName_PDU = -1; /* ARG_alertingName */ +static int hf_h450_8_h450_8_ARG_connectedName_PDU = -1; /* ARG_connectedName */ +static int hf_h450_8_h450_8_ARG_busyName_PDU = -1; /* ARG_busyName */ +static int hf_h450_8_name = -1; /* Name */ +static int hf_h450_8_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_8_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_8_namePresentationAllowed = -1; /* NamePresentationAllowed */ +static int hf_h450_8_namePresentationRestricted = -1; /* NamePresentationRestricted */ +static int hf_h450_8_nameNotAvailable = -1; /* NULL */ +static int hf_h450_8_simpleName = -1; /* SimpleName */ +static int hf_h450_8_extendedName = -1; /* ExtendedName */ +static int hf_h450_8_restrictedNull = -1; /* NULL */ + +/* --- Module Call-Completion-Operations --- --- --- */ + +static int hf_h450_9_h450_9_CcRequestArg_PDU = -1; /* CcRequestArg */ +static int hf_h450_9_h450_9_CcRequestRes_PDU = -1; /* CcRequestRes */ +static int hf_h450_9_h450_9_CcArg_PDU = -1; /* CcArg */ +static int hf_h450_9_h450_9_CcShortArg_PDU = -1; /* CcShortArg */ +static int hf_h450_9_numberA = -1; /* EndpointAddress */ +static int hf_h450_9_numberB = -1; /* EndpointAddress */ +static int hf_h450_9_ccIdentifier = -1; /* CallIdentifier */ +static int hf_h450_9_service = -1; /* BasicService */ +static int hf_h450_9_can_retain_service = -1; /* BOOLEAN */ +static int hf_h450_9_retain_sig_connection = -1; /* BOOLEAN */ +static int hf_h450_9_ccRequestArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_9_ccRequestArg_extension_item = -1; /* MixedExtension */ +static int hf_h450_9_retain_service = -1; /* BOOLEAN */ +static int hf_h450_9_ccRequestRes_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_9_ccRequestRes_extension_item = -1; /* MixedExtension */ +static int hf_h450_9_shortArg = -1; /* CcShortArg */ +static int hf_h450_9_longArg = -1; /* CcLongArg */ +static int hf_h450_9_ccShortArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_9_ccShortArg_extension_item = -1; /* MixedExtension */ +static int hf_h450_9_ccLongArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_9_ccLongArg_extension_item = -1; /* MixedExtension */ + +/* --- Module Call-Offer-Operations --- --- --- */ + +static int hf_h450_10_h450_10_CoReqOptArg_PDU = -1; /* CoReqOptArg */ +static int hf_h450_10_h450_10_RUAlertOptArg_PDU = -1; /* RUAlertOptArg */ +static int hf_h450_10_h450_10_CfbOvrOptArg_PDU = -1; /* CfbOvrOptArg */ +static int hf_h450_10_coReqOptArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_10_coReqOptArg_extension_item = -1; /* MixedExtension */ +static int hf_h450_10_rUAlertOptArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_10_rUAlertOptArg_extension_item = -1; /* MixedExtension */ +static int hf_h450_10_cfbOvrOptArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_10_cfbOvrOptArg_extension_item = -1; /* MixedExtension */ + +/* --- Module Call-Intrusion-Operations --- --- --- */ + +static int hf_h450_11_h450_11_CIRequestArg_PDU = -1; /* CIRequestArg */ +static int hf_h450_11_h450_11_CIRequestRes_PDU = -1; /* CIRequestRes */ +static int hf_h450_11_h450_11_CIGetCIPLOptArg_PDU = -1; /* CIGetCIPLOptArg */ +static int hf_h450_11_h450_11_CIGetCIPLRes_PDU = -1; /* CIGetCIPLRes */ +static int hf_h450_11_h450_11_CIIsOptArg_PDU = -1; /* CIIsOptArg */ +static int hf_h450_11_h450_11_CIIsOptRes_PDU = -1; /* CIIsOptRes */ +static int hf_h450_11_h450_11_CIFrcRelArg_PDU = -1; /* CIFrcRelArg */ +static int hf_h450_11_h450_11_CIFrcRelOptRes_PDU = -1; /* CIFrcRelOptRes */ +static int hf_h450_11_h450_11_CIWobOptArg_PDU = -1; /* CIWobOptArg */ +static int hf_h450_11_h450_11_CIWobOptRes_PDU = -1; /* CIWobOptRes */ +static int hf_h450_11_h450_11_CISilentArg_PDU = -1; /* CISilentArg */ +static int hf_h450_11_h450_11_CISilentOptRes_PDU = -1; /* CISilentOptRes */ +static int hf_h450_11_h450_11_CINotificationArg_PDU = -1; /* CINotificationArg */ +static int hf_h450_11_ciCapabilityLevel = -1; /* CICapabilityLevel */ +static int hf_h450_11_cIRequestArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIRequestArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_ciStatusInformation = -1; /* CIStatusInformation */ +static int hf_h450_11_cIRequestRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIRequestRes_resultExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIGetCIPLOptArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIGetCIPLOptArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_ciProtectionLevel = -1; /* CIProtectionLevel */ +static int hf_h450_11_silentMonitoringPermitted = -1; /* NULL */ +static int hf_h450_11_cIGetCIPLRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIGetCIPLRes_resultExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIIsOptArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIIsOptArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIIsOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIIsOptRes_resultExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIFrcRelArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIFrcRelArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIFrcRelOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIFrcRelOptRes_resultExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIWobOptArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIWobOptArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cIWobOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cIWobOptRes_resultExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_specificCall = -1; /* CallIdentifier */ +static int hf_h450_11_cISilentArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cISilentArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cISilentOptRes_resultExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cISilentOptRes_resultExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_cINotificationArg_argumentExtension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_11_cINotificationArg_argumentExtension_item = -1; /* MixedExtension */ +static int hf_h450_11_callIntrusionImpending = -1; /* NULL */ +static int hf_h450_11_callIntruded = -1; /* NULL */ +static int hf_h450_11_callIsolated = -1; /* NULL */ +static int hf_h450_11_callForceReleased = -1; /* NULL */ +static int hf_h450_11_callIntrusionComplete = -1; /* NULL */ +static int hf_h450_11_callIntrusionEnd = -1; /* NULL */ + +/* --- Module Common-Information-Operations --- --- --- */ + +static int hf_h450_12_h450_12_DummyArg_PDU = -1; /* DummyArg */ +static int hf_h450_12_h450_12_CmnArg_PDU = -1; /* CmnArg */ +static int hf_h450_12_featureList = -1; /* FeatureList */ +static int hf_h450_12_featureValues = -1; /* FeatureValues */ +static int hf_h450_12_featureControl = -1; /* FeatureControl */ +static int hf_h450_12_cmnArg_extension = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_12_cmnArg_extension_item = -1; /* MixedExtension */ +static int hf_h450_12_extensionArg = -1; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */ +static int hf_h450_12_extensionArg_item = -1; /* MixedExtension */ +static int hf_h450_12_ssCFreRoutingSupported = -1; /* NULL */ +static int hf_h450_12_ssCTreRoutingSupported = -1; /* NULL */ +static int hf_h450_12_ssCCBSPossible = -1; /* NULL */ +static int hf_h450_12_ssCCNRPossible = -1; /* NULL */ +static int hf_h450_12_ssCOSupported = -1; /* NULL */ +static int hf_h450_12_ssCIForcedReleaseSupported = -1; /* NULL */ +static int hf_h450_12_ssCIIsolationSupported = -1; /* NULL */ +static int hf_h450_12_ssCIWaitOnBusySupported = -1; /* NULL */ +static int hf_h450_12_ssCISilentMonitoringSupported = -1; /* NULL */ +static int hf_h450_12_ssCIConferenceSupported = -1; /* NULL */ +static int hf_h450_12_ssCHFarHoldSupported = -1; /* NULL */ +static int hf_h450_12_ssMWICallbackSupported = -1; /* NULL */ +static int hf_h450_12_ssCPCallParkSupported = -1; /* NULL */ +static int hf_h450_12_partyCategory = -1; /* PartyCategory */ +static int hf_h450_12_ssCIprotectionLevel = -1; /* SSCIProtectionLevel */ +static int hf_h450_12_ssCHDoNotHold = -1; /* NULL */ +static int hf_h450_12_ssCTDoNotTransfer = -1; /* NULL */ +static int hf_h450_12_ssMWICallbackCall = -1; /* NULL */ +static int hf_h450_12_ssCISilentMonitorPermitted = -1; /* NULL */ /*--- End of included file: packet-h450-hf.c ---*/ -#line 197 "packet-h450-template.c" +#line 57 "packet-h450-template.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; - /*--- Included file: packet-h450-ett.c ---*/ #line 1 "packet-h450-ett.c" + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + static gint ett_h450_H4501SupplementaryService = -1; static gint ett_h450_NetworkFacilityExtension = -1; static gint ett_h450_EntityType = -1; static gint ett_h450_InterpretationApdu = -1; static gint ett_h450_ServiceApdus = -1; -static gint ett_h450_SEQUENCE_OF_ROS = -1; +static gint ett_h450_SEQUENCE_SIZE_1_MAX_OF_ROS = -1; static gint ett_h450_PresentedAddressScreened = -1; static gint ett_h450_PresentedAddressUnscreened = -1; static gint ett_h450_PresentedNumberScreened = -1; @@ -515,213 +489,375 @@ static gint ett_h450_EndpointAddress = -1; static gint ett_h450_SEQUENCE_OF_AliasAddress = -1; static gint ett_h450_PartySubaddress = -1; static gint ett_h450_UserSpecifiedSubaddress = -1; -static gint ett_h450_DummyArg = -1; -static gint ett_h450_DummyRes = -1; -static gint ett_h450_CTInitiateArg = -1; -static gint ett_h450_ArgumentExtension = -1; -static gint ett_h450_CTSetupArg = -1; -static gint ett_h450_CTIdentifyRes = -1; -static gint ett_h450_T_resultExtension = -1; -static gint ett_h450_CTUpdateArg = -1; -static gint ett_h450_SubaddressTransferArg = -1; -static gint ett_h450_CTCompleteArg = -1; -static gint ett_h450_CTActiveArg = -1; -static gint ett_h450_ExtensionSeq = -1; -static gint ett_h450_ActivateDiversionQArg = -1; -static gint ett_h450_ActivateDiversionQArg_extension = -1; -static gint ett_h450_ActivateDiversionQRes = -1; -static gint ett_h450_DeactivateDiversionQArg = -1; -static gint ett_h450_DeactivateDiversionQArg_extension = -1; -static gint ett_h450_DeactivateDiversionQRes = -1; -static gint ett_h450_InterrogateDiversionQ = -1; -static gint ett_h450_InterrogateDiversionQ_extension = -1; -static gint ett_h450_CheckRestrictionArg = -1; -static gint ett_h450_CheckRestrictionArg_extension = -1; -static gint ett_h450_CheckRestrictionRes = -1; -static gint ett_h450_CallReroutingArg = -1; -static gint ett_h450_CallReroutingArg_extension = -1; -static gint ett_h450_CallReroutingRes = -1; -static gint ett_h450_DivertingLegInformation1Arg = -1; -static gint ett_h450_DivertingLegInformation1Arg_extension = -1; -static gint ett_h450_DivertingLegInformation2Arg = -1; -static gint ett_h450_DivertingLegInformation2Arg_extension = -1; -static gint ett_h450_DivertingLegInformation3Arg = -1; -static gint ett_h450_DivertingLegInformation3Arg_extension = -1; -static gint ett_h450_DivertingLegInformation4Arg = -1; -static gint ett_h450_DivertingLegInformation4Arg_extension = -1; -static gint ett_h450_CfnrDivertedLegFailedArg = -1; -static gint ett_h450_IntResultList = -1; -static gint ett_h450_IntResult = -1; -static gint ett_h450_IntResult_extension = -1; -static gint ett_h450_HoldNotificArg = -1; -static gint ett_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; -static gint ett_h450_RetrieveNotificArg = -1; -static gint ett_h450_RemoteHoldArg = -1; -static gint ett_h450_RemoteHoldRes = -1; -static gint ett_h450_RemoteRetrieveArg = -1; -static gint ett_h450_RemoteRetrieveRes = -1; -static gint ett_h450_MixedExtension = -1; -static gint ett_h450_CpRequestArg = -1; -static gint ett_h450_CpRequestRes = -1; -static gint ett_h450_CpSetupArg = -1; -static gint ett_h450_CpSetupRes = -1; -static gint ett_h450_GroupIndicationOnArg = -1; -static gint ett_h450_GroupIndicationOnRes = -1; -static gint ett_h450_GroupIndicationOffArg = -1; -static gint ett_h450_GroupIndicationOffRes = -1; -static gint ett_h450_PickrequArg = -1; -static gint ett_h450_PickrequRes = -1; -static gint ett_h450_PickupArg = -1; -static gint ett_h450_PickupRes = -1; -static gint ett_h450_PickExeArg = -1; -static gint ett_h450_PickExeRes = -1; -static gint ett_h450_CpNotifyArg = -1; -static gint ett_h450_CpickupNotifyArg = -1; -static gint ett_h450_CallWaitingArg = -1; -static gint ett_h450_MWIActivateArg = -1; -static gint ett_h450_MwiDummyRes = -1; -static gint ett_h450_MWIDeactivateArg = -1; -static gint ett_h450_MWIInterrogateArg = -1; -static gint ett_h450_MWIInterrogateRes = -1; -static gint ett_h450_MWIInterrogateResElt = -1; -static gint ett_h450_MsgCentreId = -1; -static gint ett_h450_ExtensionArg = -1; -static gint ett_h450_NameArg = -1; -static gint ett_h450_Name = -1; -static gint ett_h450_NamePresentationAllowed = -1; -static gint ett_h450_NamePresentationRestricted = -1; -static gint ett_h450_CcRequestArg = -1; -static gint ett_h450_CcRequestRes = -1; -static gint ett_h450_CcArg = -1; -static gint ett_h450_CcShortArg = -1; -static gint ett_h450_CcLongArg = -1; -static gint ett_h450_CoReqOptArg = -1; -static gint ett_h450_RUAlertOptArg = -1; -static gint ett_h450_CfbOvrOptArg = -1; -static gint ett_h450_CIRequestArg = -1; -static gint ett_h450_CIRequestRes = -1; -static gint ett_h450_CIGetCIPLOptArg = -1; -static gint ett_h450_CIGetCIPLRes = -1; -static gint ett_h450_CIIsOptArg = -1; -static gint ett_h450_CIIsOptRes = -1; -static gint ett_h450_CIFrcRelArg = -1; -static gint ett_h450_CIFrcRelOptRes = -1; -static gint ett_h450_CIWobOptArg = -1; -static gint ett_h450_CIWobOptRes = -1; -static gint ett_h450_CISilentArg = -1; -static gint ett_h450_CISilentOptRes = -1; -static gint ett_h450_CINotificationArg = -1; -static gint ett_h450_CIStatusInformation = -1; -static gint ett_h450_CmnArg = -1; -static gint ett_h450_CmnRequestArg = -1; -static gint ett_h450_FeatureList = -1; -static gint ett_h450_FeatureValues = -1; -static gint ett_h450_FeatureControl = -1; -static gint ett_h450_Unspecified = -1; static gint ett_h450_Extension = -1; +/* --- Module Call-Transfer-Operations --- --- --- */ + +static gint ett_h450_2_DummyArg = -1; +static gint ett_h450_2_DummyRes = -1; +static gint ett_h450_2_CTInitiateArg = -1; +static gint ett_h450_2_T_cTInitiateArg_argumentExtension = -1; +static gint ett_h450_2_CTSetupArg = -1; +static gint ett_h450_2_T_cTSetupArg_argumentExtension = -1; +static gint ett_h450_2_CTIdentifyRes = -1; +static gint ett_h450_2_T_resultExtension = -1; +static gint ett_h450_2_CTUpdateArg = -1; +static gint ett_h450_2_T_cTUpdateArg_argumentExtension = -1; +static gint ett_h450_2_SubaddressTransferArg = -1; +static gint ett_h450_2_T_subaddressTransferArg_argumentExtension = -1; +static gint ett_h450_2_CTCompleteArg = -1; +static gint ett_h450_2_T_cTCompleteArg_argumentExtension = -1; +static gint ett_h450_2_CTActiveArg = -1; +static gint ett_h450_2_T_cTActiveArg_argumentExtension = -1; +static gint ett_h450_2_ExtensionSeq = -1; +static gint ett_h450_2_PAR_unspecified = -1; + +/* --- Module Call-Diversion-Operations --- --- --- */ + +static gint ett_h450_3_ARG_activateDiversionQ = -1; +static gint ett_h450_3_ActivateDiversionQArg_extension = -1; +static gint ett_h450_3_RES_activateDiversionQ = -1; +static gint ett_h450_3_ARG_deactivateDiversionQ = -1; +static gint ett_h450_3_DeactivateDiversionQArg_extension = -1; +static gint ett_h450_3_RES_deactivateDiversionQ = -1; +static gint ett_h450_3_ARG_interrogateDiversionQ = -1; +static gint ett_h450_3_InterrogateDiversionQ_extension = -1; +static gint ett_h450_3_ARG_checkRestriction = -1; +static gint ett_h450_3_CheckRestrictionArg_extension = -1; +static gint ett_h450_3_RES_checkRestriction = -1; +static gint ett_h450_3_ARG_callRerouting = -1; +static gint ett_h450_3_CallReroutingArg_extension = -1; +static gint ett_h450_3_RES_callRerouting = -1; +static gint ett_h450_3_ARG_divertingLegInformation1 = -1; +static gint ett_h450_3_DivertingLegInformation1Arg_extension = -1; +static gint ett_h450_3_ARG_divertingLegInformation2 = -1; +static gint ett_h450_3_DivertingLegInformation2Arg_extension = -1; +static gint ett_h450_3_ARG_divertingLegInformation3 = -1; +static gint ett_h450_3_DivertingLegInformation3Arg_extension = -1; +static gint ett_h450_3_ARG_divertingLegInformation4 = -1; +static gint ett_h450_3_DivertingLegInformation4Arg_extension = -1; +static gint ett_h450_3_ARG_cfnrDivertedLegFailed = -1; +static gint ett_h450_3_IntResultList = -1; +static gint ett_h450_3_IntResult = -1; +static gint ett_h450_3_IntResult_extension = -1; +static gint ett_h450_3_PAR_unspecified = -1; +static gint ett_h450_3_ExtensionSeq = -1; + +/* --- Module Call-Hold-Operations --- --- --- */ + +static gint ett_h450_4_HoldNotificArg = -1; +static gint ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_4_RetrieveNotificArg = -1; +static gint ett_h450_4_RemoteHoldArg = -1; +static gint ett_h450_4_RemoteHoldRes = -1; +static gint ett_h450_4_RemoteRetrieveArg = -1; +static gint ett_h450_4_RemoteRetrieveRes = -1; +static gint ett_h450_4_MixedExtension = -1; +static gint ett_h450_4_PAR_undefined = -1; + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + +static gint ett_h450_5_CpRequestArg = -1; +static gint ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_5_CpRequestRes = -1; +static gint ett_h450_5_CpSetupArg = -1; +static gint ett_h450_5_CpSetupRes = -1; +static gint ett_h450_5_GroupIndicationOnArg = -1; +static gint ett_h450_5_GroupIndicationOnRes = -1; +static gint ett_h450_5_GroupIndicationOffArg = -1; +static gint ett_h450_5_GroupIndicationOffRes = -1; +static gint ett_h450_5_PickrequArg = -1; +static gint ett_h450_5_PickrequRes = -1; +static gint ett_h450_5_PickupArg = -1; +static gint ett_h450_5_PickupRes = -1; +static gint ett_h450_5_PickExeArg = -1; +static gint ett_h450_5_PickExeRes = -1; +static gint ett_h450_5_CpNotifyArg = -1; +static gint ett_h450_5_CpickupNotifyArg = -1; +static gint ett_h450_5_PAR_undefined = -1; + +/* --- Module Call-Waiting-Operations --- --- --- */ + +static gint ett_h450_6_CallWaitingArg = -1; +static gint ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + +static gint ett_h450_7_MWIActivateArg = -1; +static gint ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_7_DummyRes = -1; +static gint ett_h450_7_MWIDeactivateArg = -1; +static gint ett_h450_7_MWIInterrogateArg = -1; +static gint ett_h450_7_MWIInterrogateRes = -1; +static gint ett_h450_7_MWIInterrogateResElt = -1; +static gint ett_h450_7_MsgCentreId = -1; +static gint ett_h450_7_PAR_undefined = -1; + +/* --- Module Name-Operations --- --- --- */ + +static gint ett_h450_8_ARG_callingName = -1; +static gint ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_8_ARG_alertingName = -1; +static gint ett_h450_8_ARG_connectedName = -1; +static gint ett_h450_8_ARG_busyName = -1; +static gint ett_h450_8_Name = -1; +static gint ett_h450_8_NamePresentationAllowed = -1; +static gint ett_h450_8_NamePresentationRestricted = -1; + +/* --- Module Call-Completion-Operations --- --- --- */ + +static gint ett_h450_9_CcRequestArg = -1; +static gint ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_9_CcRequestRes = -1; +static gint ett_h450_9_CcArg = -1; +static gint ett_h450_9_CcShortArg = -1; +static gint ett_h450_9_CcLongArg = -1; + +/* --- Module Call-Offer-Operations --- --- --- */ + +static gint ett_h450_10_CoReqOptArg = -1; +static gint ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_10_RUAlertOptArg = -1; +static gint ett_h450_10_CfbOvrOptArg = -1; + +/* --- Module Call-Intrusion-Operations --- --- --- */ + +static gint ett_h450_11_CIRequestArg = -1; +static gint ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_11_CIRequestRes = -1; +static gint ett_h450_11_CIGetCIPLOptArg = -1; +static gint ett_h450_11_CIGetCIPLRes = -1; +static gint ett_h450_11_CIIsOptArg = -1; +static gint ett_h450_11_CIIsOptRes = -1; +static gint ett_h450_11_CIFrcRelArg = -1; +static gint ett_h450_11_CIFrcRelOptRes = -1; +static gint ett_h450_11_CIWobOptArg = -1; +static gint ett_h450_11_CIWobOptRes = -1; +static gint ett_h450_11_CISilentArg = -1; +static gint ett_h450_11_CISilentOptRes = -1; +static gint ett_h450_11_CINotificationArg = -1; +static gint ett_h450_11_CIStatusInformation = -1; + +/* --- Module Common-Information-Operations --- --- --- */ + +static gint ett_h450_12_CmnArg = -1; +static gint ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1; +static gint ett_h450_12_DummyArg = -1; +static gint ett_h450_12_FeatureList = -1; +static gint ett_h450_12_FeatureValues = -1; +static gint ett_h450_12_FeatureControl = -1; + /*--- End of included file: packet-h450-ett.c ---*/ -#line 212 "packet-h450-template.c" +#line 60 "packet-h450-template.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 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_); +static const value_string h450_str_operation[] = { + +/*--- Included file: packet-h450-table10.c ---*/ +#line 1 "packet-h450-table10.c" + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + +/* Unknown or empty loop list OPERATION */ + +/* --- Module Call-Transfer-Operations --- --- --- */ + + { 7, "callTransferIdentify" }, + { 8, "callTransferAbandon" }, + { 9, "callTransferInitiate" }, + { 10, "callTransferSetup" }, + { 13, "callTransferUpdate" }, + { 14, "subaddressTransfer" }, + { 12, "callTransferComplete" }, + { 11, "callTransferActive" }, + +/* --- Module Call-Diversion-Operations --- --- --- */ + + { 15, "activateDiversionQ" }, + { 16, "deactivateDiversionQ" }, + { 17, "interrogateDiversionQ" }, + { 18, "checkRestriction" }, + { 19, "callRerouting" }, + { 20, "divertingLegInformation1" }, + { 21, "divertingLegInformation2" }, + { 22, "divertingLegInformation3" }, + { 100, "divertingLegInformation4" }, + { 23, "cfnrDivertedLegFailed" }, + +/* --- Module Call-Hold-Operations --- --- --- */ + + { 101, "holdNotific" }, + { 102, "retrieveNotific" }, + { 103, "remoteHold" }, + { 104, "remoteRetrieve" }, + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + { 106, "cpRequest" }, + { 107, "cpSetup" }, + { 108, "groupIndicationOn" }, + { 109, "groupIndicationOff" }, + { 110, "pickrequ" }, + { 111, "pickup" }, + { 112, "pickExe" }, + { 113, "cpNotify" }, + { 114, "cpickupNotify" }, + +/* --- Module Call-Waiting-Operations --- --- --- */ + + { 105, "callWaiting" }, + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + { 80, "mwiActivate" }, + { 81, "mwiDeactivate" }, + { 82, "mwiInterrogate" }, + +/* --- Module Name-Operations --- --- --- */ + + { 0, "callingName" }, + { 1, "alertingName" }, + { 2, "connectedName" }, + { 3, "busyName" }, + +/* --- Module Call-Completion-Operations --- --- --- */ + + { 40, "ccbsRequest" }, + { 27, "ccnrRequest" }, + { 28, "ccCancel" }, + { 29, "ccExecPossible" }, + { 31, "ccRingout" }, + { 32, "ccSuspend" }, + { 33, "ccResume" }, + +/* --- Module Call-Offer-Operations --- --- --- */ + + { 34, "callOfferRequest" }, + { 115, "remoteUserAlerting" }, + { 49, "cfbOverride" }, + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + { 43, "callIntrusionRequest" }, + { 44, "callIntrusionGetCIPL" }, + { 45, "callIntrusionIsolate" }, + { 46, "callIntrusionForcedRelease" }, + { 47, "callIntrusionWOBRequest" }, + { 116, "callIntrusionSilentMonitor" }, + { 117, "callIntrusionNotification" }, + +/* --- Module Common-Information-Operations --- --- --- */ + + { 84, "cmnRequest" }, + { 85, "cmnInform" }, + +/*--- End of included file: packet-h450-table10.c ---*/ +#line 63 "packet-h450-template.c" + { 0, NULL} +}; + +static const value_string h450_str_error[] = { + +/*--- Included file: packet-h450-table20.c ---*/ +#line 1 "packet-h450-table20.c" +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-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" }, + +/* --- Module Call-Transfer-Operations --- --- --- */ + + { 1008, "unspecified" }, + { 1004, "invalidReroutingNumber" }, + { 1005, "unrecognizedCallIdentity" }, + { 1006, "establishmentFailure" }, + +/* --- Module Call-Diversion-Operations --- --- --- */ + + { 12, "invalidDivertedNumber" }, + { 14, "specialServiceNumber" }, + { 15, "diversionToServedUserNumber" }, + { 24, "numberOfDiversionsExceeded" }, + { 1000, "temporarilyUnavailable" }, + { 1007, "notAuthorized" }, + { 1008, "unspecified" }, + +/* --- Module Call-Hold-Operations --- --- --- */ + + { 2002, "undefined" }, + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + { 2000, "callPickupIdInvalid" }, + { 2001, "callAlreadyPickedUp" }, + { 2002, "undefined" }, + +/* --- Module Call-Waiting-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + { 2002, "undefined" }, + { 1018, "invalidMsgCentreId" }, + { 31, "notActivated" }, + +/* --- Module Name-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/* --- Module Call-Completion-Operations --- --- --- */ + + { 1010, "shortTermRejection" }, + { 1011, "longTermRejection" }, + { 1012, "remoteUserBusyAgain" }, + { 1013, "failureToMatch" }, + +/* --- Module Call-Offer-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + { 1009, "notBusy" }, + { 1000, "temporarilyUnavailable" }, + { 1007, "notAuthorized" }, + +/* --- Module Common-Information-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/*--- End of included file: packet-h450-table20.c ---*/ +#line 68 "packet-h450-template.c" + { 0, NULL} +}; + +/* ROSE context */ +static rose_ctx_t h450_rose_ctx; + +/* Subdissectors */ +static dissector_handle_t data_handle = NULL; + +/* Global variables */ /*--- Included file: packet-h450-fn.c ---*/ #line 1 "packet-h450-fn.c" +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + + static int dissect_h450_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -737,7 +873,7 @@ static const value_string h450_EntityType_vals[] = { { 0, NULL } }; -static const per_choice_t EntityType_choice[] = { +static const per_choice_t h450_EntityType_choice[] = { { 0, &hf_h450_endpoint , ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 1, &hf_h450_anyEntity , ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 0, NULL, 0, NULL } @@ -746,7 +882,7 @@ static const per_choice_t EntityType_choice[] = { static int dissect_h450_EntityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_EntityType, EntityType_choice, + ett_h450_EntityType, h450_EntityType_choice, NULL); return offset; @@ -762,7 +898,7 @@ dissect_h450_AddressInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const per_sequence_t NetworkFacilityExtension_sequence[] = { +static const per_sequence_t h450_NetworkFacilityExtension_sequence[] = { { &hf_h450_sourceEntity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EntityType }, { &hf_h450_sourceEntityAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_AddressInformation }, { &hf_h450_destinationEntity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EntityType }, @@ -773,7 +909,7 @@ static const per_sequence_t NetworkFacilityExtension_sequence[] = { static int dissect_h450_NetworkFacilityExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_NetworkFacilityExtension, NetworkFacilityExtension_sequence); + ett_h450_NetworkFacilityExtension, h450_NetworkFacilityExtension_sequence); return offset; } @@ -786,7 +922,7 @@ static const value_string h450_InterpretationApdu_vals[] = { { 0, NULL } }; -static const per_choice_t InterpretationApdu_choice[] = { +static const per_choice_t h450_InterpretationApdu_choice[] = { { 0, &hf_h450_discardAnyUnrecognizedInvokePdu, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 1, &hf_h450_clearCallIfAnyInvokePduNotRecognized, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 2, &hf_h450_rejectAnyUnrecognizedInvokePdu, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, @@ -796,21 +932,35 @@ static const per_choice_t InterpretationApdu_choice[] = { static int dissect_h450_InterpretationApdu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_InterpretationApdu, InterpretationApdu_choice, + ett_h450_InterpretationApdu, h450_InterpretationApdu_choice, NULL); return offset; } -static const per_sequence_t SEQUENCE_OF_ROS_sequence_of[1] = { - { &hf_h450_rosApdus_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ros_ROS }, + +static int +dissect_h450_T_rosApdus_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 47 "h450.cnf" + h450_rose_ctx.apdu_depth = 1; + actx->rose_ctx = &h450_rose_ctx; + + offset = dissect_h450_ros_ROS(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const per_sequence_t h450_SEQUENCE_SIZE_1_MAX_OF_ROS_sequence_of[1] = { + { &hf_h450_rosApdus_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_T_rosApdus_item }, }; static int -dissect_h450_SEQUENCE_OF_ROS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_SEQUENCE_OF_ROS, SEQUENCE_OF_ROS_sequence_of); +dissect_h450_SEQUENCE_SIZE_1_MAX_OF_ROS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_SEQUENCE_SIZE_1_MAX_OF_ROS, h450_SEQUENCE_SIZE_1_MAX_OF_ROS_sequence_of, + 1, NO_BOUND); return offset; } @@ -821,22 +971,22 @@ static const value_string h450_ServiceApdus_vals[] = { { 0, NULL } }; -static const per_choice_t ServiceApdus_choice[] = { - { 0, &hf_h450_rosApdus , ASN1_EXTENSION_ROOT , dissect_h450_SEQUENCE_OF_ROS }, +static const per_choice_t h450_ServiceApdus_choice[] = { + { 0, &hf_h450_rosApdus , ASN1_EXTENSION_ROOT , dissect_h450_SEQUENCE_SIZE_1_MAX_OF_ROS }, { 0, NULL, 0, NULL } }; static int dissect_h450_ServiceApdus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_ServiceApdus, ServiceApdus_choice, + ett_h450_ServiceApdus, h450_ServiceApdus_choice, NULL); return offset; } -static const per_sequence_t H4501SupplementaryService_sequence[] = { +static const per_sequence_t h450_H4501SupplementaryService_sequence[] = { { &hf_h450_networkFacilityExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NetworkFacilityExtension }, { &hf_h450_interpretationApdu, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_InterpretationApdu }, { &hf_h450_serviceApdu , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_ServiceApdus }, @@ -845,8 +995,11 @@ static const per_sequence_t H4501SupplementaryService_sequence[] = { static int dissect_h450_H4501SupplementaryService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 43 "h450.cnf" + proto_tree_add_item_hidden(tree, proto_h450, tvb, offset, -1, FALSE); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_H4501SupplementaryService, H4501SupplementaryService_sequence); + ett_h450_H4501SupplementaryService, h450_H4501SupplementaryService_sequence); return offset; } @@ -854,9 +1007,9 @@ dissect_h450_H4501SupplementaryService(tvbuff_t *tvb _U_, int offset _U_, asn1_c static int -dissect_h450_Notassignedlocalopcode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, NULL); +dissect_h450_InvokeIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 65535U, NULL, FALSE); return offset; } @@ -881,7 +1034,7 @@ dissect_h450_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr } -static const per_sequence_t UserSpecifiedSubaddress_sequence[] = { +static const per_sequence_t h450_UserSpecifiedSubaddress_sequence[] = { { &hf_h450_subaddressInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SubaddressInformation }, { &hf_h450_oddCountIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BOOLEAN }, { NULL, 0, 0, NULL } @@ -890,7 +1043,7 @@ static const per_sequence_t UserSpecifiedSubaddress_sequence[] = { static int dissect_h450_UserSpecifiedSubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_UserSpecifiedSubaddress, UserSpecifiedSubaddress_sequence); + ett_h450_UserSpecifiedSubaddress, h450_UserSpecifiedSubaddress_sequence); return offset; } @@ -912,7 +1065,7 @@ static const value_string h450_PartySubaddress_vals[] = { { 0, NULL } }; -static const per_choice_t PartySubaddress_choice[] = { +static const per_choice_t h450_PartySubaddress_choice[] = { { 0, &hf_h450_userSpecifiedSubaddress, ASN1_EXTENSION_ROOT , dissect_h450_UserSpecifiedSubaddress }, { 1, &hf_h450_nsapSubaddress , ASN1_EXTENSION_ROOT , dissect_h450_NSAPSubaddress }, { 0, NULL, 0, NULL } @@ -921,14 +1074,14 @@ static const per_choice_t PartySubaddress_choice[] = { static int dissect_h450_PartySubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_PartySubaddress, PartySubaddress_choice, + ett_h450_PartySubaddress, h450_PartySubaddress_choice, NULL); return offset; } -static const per_sequence_t AddressScreened_sequence[] = { +static const per_sequence_t h450_AddressScreened_sequence[] = { { &hf_h450_partyNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber }, { &hf_h450_screeningIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ScreeningIndicator }, { &hf_h450_partySubaddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_PartySubaddress }, @@ -938,7 +1091,7 @@ static const per_sequence_t AddressScreened_sequence[] = { static int dissect_h450_AddressScreened(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_AddressScreened, AddressScreened_sequence); + ett_h450_AddressScreened, h450_AddressScreened_sequence); return offset; } @@ -952,7 +1105,7 @@ static const value_string h450_PresentedAddressScreened_vals[] = { { 0, NULL } }; -static const per_choice_t PresentedAddressScreened_choice[] = { +static const per_choice_t h450_PresentedAddressScreened_choice[] = { { 0, &hf_h450_addressScreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT , dissect_h450_AddressScreened }, { 1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, @@ -963,14 +1116,14 @@ static const per_choice_t PresentedAddressScreened_choice[] = { static int dissect_h450_PresentedAddressScreened(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_PresentedAddressScreened, PresentedAddressScreened_choice, + ett_h450_PresentedAddressScreened, h450_PresentedAddressScreened_choice, NULL); return offset; } -static const per_sequence_t Address_sequence[] = { +static const per_sequence_t h450_Address_sequence[] = { { &hf_h450_partyNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber }, { &hf_h450_partySubaddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_PartySubaddress }, { NULL, 0, 0, NULL } @@ -979,7 +1132,7 @@ static const per_sequence_t Address_sequence[] = { static int dissect_h450_Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_Address, Address_sequence); + ett_h450_Address, h450_Address_sequence); return offset; } @@ -993,7 +1146,7 @@ static const value_string h450_PresentedAddressUnscreened_vals[] = { { 0, NULL } }; -static const per_choice_t PresentedAddressUnscreened_choice[] = { +static const per_choice_t h450_PresentedAddressUnscreened_choice[] = { { 0, &hf_h450_addressUnscreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT , dissect_h450_Address }, { 1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, @@ -1004,14 +1157,14 @@ static const per_choice_t PresentedAddressUnscreened_choice[] = { static int dissect_h450_PresentedAddressUnscreened(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_PresentedAddressUnscreened, PresentedAddressUnscreened_choice, + ett_h450_PresentedAddressUnscreened, h450_PresentedAddressUnscreened_choice, NULL); return offset; } -static const per_sequence_t NumberScreened_sequence[] = { +static const per_sequence_t h450_NumberScreened_sequence[] = { { &hf_h450_partyNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber }, { &hf_h450_screeningIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ScreeningIndicator }, { NULL, 0, 0, NULL } @@ -1020,7 +1173,7 @@ static const per_sequence_t NumberScreened_sequence[] = { static int dissect_h450_NumberScreened(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_NumberScreened, NumberScreened_sequence); + ett_h450_NumberScreened, h450_NumberScreened_sequence); return offset; } @@ -1034,7 +1187,7 @@ static const value_string h450_PresentedNumberScreened_vals[] = { { 0, NULL } }; -static const per_choice_t PresentedNumberScreened_choice[] = { +static const per_choice_t h450_PresentedNumberScreened_choice[] = { { 0, &hf_h450_numberScreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT , dissect_h450_NumberScreened }, { 1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, @@ -1045,7 +1198,7 @@ static const per_choice_t PresentedNumberScreened_choice[] = { static int dissect_h450_PresentedNumberScreened(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_PresentedNumberScreened, PresentedNumberScreened_choice, + ett_h450_PresentedNumberScreened, h450_PresentedNumberScreened_choice, NULL); return offset; @@ -1060,7 +1213,7 @@ static const value_string h450_PresentedNumberUnscreened_vals[] = { { 0, NULL } }; -static const per_choice_t PresentedNumberUnscreened_choice[] = { +static const per_choice_t h450_PresentedNumberUnscreened_choice[] = { { 0, &hf_h450_numberUnscreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT , dissect_h225_PartyNumber }, { 1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, { 2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, @@ -1071,27 +1224,27 @@ static const per_choice_t PresentedNumberUnscreened_choice[] = { static int dissect_h450_PresentedNumberUnscreened(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_PresentedNumberUnscreened, PresentedNumberUnscreened_choice, + ett_h450_PresentedNumberUnscreened, h450_PresentedNumberUnscreened_choice, NULL); return offset; } -static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = { +static const per_sequence_t h450_SEQUENCE_OF_AliasAddress_sequence_of[1] = { { &hf_h450_destinationAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress }, }; static int dissect_h450_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of); + ett_h450_SEQUENCE_OF_AliasAddress, h450_SEQUENCE_OF_AliasAddress_sequence_of); return offset; } -static const per_sequence_t EndpointAddress_sequence[] = { +static const per_sequence_t h450_EndpointAddress_sequence[] = { { &hf_h450_destinationAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SEQUENCE_OF_AliasAddress }, { &hf_h450_remoteExtensionAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress }, { &hf_h450_destinationAddressPresentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator }, @@ -1104,7 +1257,7 @@ static const per_sequence_t EndpointAddress_sequence[] = { static int dissect_h450_EndpointAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_EndpointAddress, EndpointAddress_sequence); + ett_h450_EndpointAddress, h450_EndpointAddress_sequence); return offset; } @@ -1121,6 +1274,16 @@ dissect_h450_PresentationAllowedIndicator(tvbuff_t *tvb _U_, int offset _U_, asn static int +dissect_h450_H225InformationElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, NULL); + + return offset; +} + + + +static int dissect_h450_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL); @@ -1130,77 +1293,94 @@ dissect_h450_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int -dissect_h450_ExtensionArgument(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, NULL); +dissect_h450_T_extensionArgument(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL); return offset; } -static const per_sequence_t Extension_sequence[] = { +static const per_sequence_t h450_Extension_sequence[] = { { &hf_h450_extensionId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_OBJECT_IDENTIFIER }, - { &hf_h450_extensionArgument, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_ExtensionArgument }, + { &hf_h450_extensionArgument, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_T_extensionArgument }, { NULL, 0, 0, NULL } }; static int dissect_h450_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_Extension, Extension_sequence); + ett_h450_Extension, h450_Extension_sequence); + + return offset; +} +/*--- PDUs ---*/ + +static int dissect_h450_H4501SupplementaryService_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_H4501SupplementaryService(tvb, offset, &asn1_ctx, tree, hf_h450_h450_H4501SupplementaryService_PDU); + offset += 7; offset >>= 3; return offset; } -static const per_sequence_t ExtensionSeq_sequence_of[1] = { - { &hf_h450_ExtensionSeq_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_Extension }, +/* --- Module Call-Transfer-Operations --- --- --- */ + + +static const per_sequence_t h450_2_ExtensionSeq_sequence_of[1] = { + { &hf_h450_2_ExtensionSeq_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_Extension }, }; static int -dissect_h450_ExtensionSeq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_ExtensionSeq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_ExtensionSeq, ExtensionSeq_sequence_of); + ett_h450_2_ExtensionSeq, h450_2_ExtensionSeq_sequence_of); return offset; } -static const value_string h450_DummyArg_vals[] = { +static const value_string h450_2_DummyArg_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DummyArg_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_2_DummyArg_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DummyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_DummyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DummyArg, DummyArg_choice, + ett_h450_2_DummyArg, h450_2_DummyArg_choice, NULL); return offset; } +static const value_string h450_2_DummyRes_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } +}; -static int -dissect_h450_CallTransferIdentify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_DummyArg(tvb, offset, actx, tree, hf_index); - - return offset; -} - - +static const per_choice_t h450_2_DummyRes_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } +}; static int -dissect_h450_CallTransferAbandon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_DummyArg(tvb, offset, actx, tree, hf_index); +dissect_h450_2_DummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_2_DummyRes, h450_2_DummyRes_choice, + NULL); return offset; } @@ -1208,7 +1388,7 @@ dissect_h450_CallTransferAbandon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int -dissect_h450_CallIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_CallIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index, 0, 4); @@ -1216,83 +1396,115 @@ dissect_h450_CallIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const value_string h450_ArgumentExtension_vals[] = { +static const value_string h450_2_T_cTInitiateArg_argumentExtension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t ArgumentExtension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_2_T_cTInitiateArg_argumentExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_ArgumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_T_cTInitiateArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_ArgumentExtension, ArgumentExtension_choice, + ett_h450_2_T_cTInitiateArg_argumentExtension, h450_2_T_cTInitiateArg_argumentExtension_choice, NULL); return offset; } -static const per_sequence_t CTInitiateArg_sequence[] = { - { &hf_h450_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CallIdentity }, - { &hf_h450_reroutingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_cTInitiateArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ArgumentExtension }, +static const per_sequence_t h450_2_CTInitiateArg_sequence[] = { + { &hf_h450_2_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_CallIdentity }, + { &hf_h450_2_reroutingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_2_cTInitiateArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTInitiateArg_argumentExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CTInitiateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_CTInitiateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CTInitiateArg, CTInitiateArg_sequence); + ett_h450_2_CTInitiateArg, h450_2_CTInitiateArg_sequence); return offset; } +static const value_string h450_2_T_cTSetupArg_argumentExtension_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } +}; + +static const per_choice_t h450_2_T_cTSetupArg_argumentExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } +}; static int -dissect_h450_CallTransferInitiate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_CTInitiateArg(tvb, offset, actx, tree, hf_index); +dissect_h450_2_T_cTSetupArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_2_T_cTSetupArg_argumentExtension, h450_2_T_cTSetupArg_argumentExtension_choice, + NULL); return offset; } -static const per_sequence_t CTSetupArg_sequence[] = { - { &hf_h450_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CallIdentity }, - { &hf_h450_transferringNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_cTSetupArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ArgumentExtension }, +static const per_sequence_t h450_2_CTSetupArg_sequence[] = { + { &hf_h450_2_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_CallIdentity }, + { &hf_h450_2_transferringNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_2_cTSetupArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTSetupArg_argumentExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CTSetupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_CTSetupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CTSetupArg, CTSetupArg_sequence); + ett_h450_2_CTSetupArg, h450_2_CTSetupArg_sequence); return offset; } +static const value_string h450_2_T_resultExtension_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } +}; + +static const per_choice_t h450_2_T_resultExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } +}; static int -dissect_h450_CallTransferSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_CTSetupArg(tvb, offset, actx, tree, hf_index); +dissect_h450_2_T_resultExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_2_T_resultExtension, h450_2_T_resultExtension_choice, + NULL); return offset; } +static const per_sequence_t h450_2_CTIdentifyRes_sequence[] = { + { &hf_h450_2_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_CallIdentity }, + { &hf_h450_2_reroutingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_2_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_resultExtension }, + { NULL, 0, 0, NULL } +}; static int -dissect_h450_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index, - 1, 128); +dissect_h450_2_CTIdentifyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_2_CTIdentifyRes, h450_2_CTIdentifyRes_sequence); return offset; } @@ -1300,65 +1512,91 @@ dissect_h450_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int -dissect_h450_H225InformationElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, NULL); +dissect_h450_2_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index, + 1, 128); return offset; } -static const per_sequence_t CTUpdateArg_sequence[] = { - { &hf_h450_redirectionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement }, - { &hf_h450_cTUpdateArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ArgumentExtension }, - { NULL, 0, 0, NULL } +static const value_string h450_2_T_cTUpdateArg_argumentExtension_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } +}; + +static const per_choice_t h450_2_T_cTUpdateArg_argumentExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } }; static int -dissect_h450_CTUpdateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CTUpdateArg, CTUpdateArg_sequence); +dissect_h450_2_T_cTUpdateArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_2_T_cTUpdateArg_argumentExtension, h450_2_T_cTUpdateArg_argumentExtension_choice, + NULL); return offset; } +static const per_sequence_t h450_2_CTUpdateArg_sequence[] = { + { &hf_h450_2_redirectionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_2_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_BMPString_SIZE_1_128 }, + { &hf_h450_2_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement }, + { &hf_h450_2_cTUpdateArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTUpdateArg_argumentExtension }, + { NULL, 0, 0, NULL } +}; static int -dissect_h450_CallTransferUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_CTUpdateArg(tvb, offset, actx, tree, hf_index); +dissect_h450_2_CTUpdateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_2_CTUpdateArg, h450_2_CTUpdateArg_sequence); return offset; } -static const per_sequence_t SubaddressTransferArg_sequence[] = { - { &hf_h450_redirectionSubaddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_PartySubaddress }, - { &hf_h450_subaddressTransferArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ArgumentExtension }, - { NULL, 0, 0, NULL } +static const value_string h450_2_T_subaddressTransferArg_argumentExtension_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } +}; + +static const per_choice_t h450_2_T_subaddressTransferArg_argumentExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } }; static int -dissect_h450_SubaddressTransferArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_SubaddressTransferArg, SubaddressTransferArg_sequence); +dissect_h450_2_T_subaddressTransferArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_2_T_subaddressTransferArg_argumentExtension, h450_2_T_subaddressTransferArg_argumentExtension_choice, + NULL); return offset; } +static const per_sequence_t h450_2_SubaddressTransferArg_sequence[] = { + { &hf_h450_2_redirectionSubaddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_PartySubaddress }, + { &hf_h450_2_subaddressTransferArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_subaddressTransferArg_argumentExtension }, + { NULL, 0, 0, NULL } +}; static int -dissect_h450_SubaddressTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_SubaddressTransferArg(tvb, offset, actx, tree, hf_index); +dissect_h450_2_SubaddressTransferArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_2_SubaddressTransferArg, h450_2_SubaddressTransferArg_sequence); return offset; } -static const value_string h450_EndDesignation_vals[] = { +static const value_string h450_2_EndDesignation_vals[] = { { 0, "primaryEnd" }, { 1, "secondaryEnd" }, { 0, NULL } @@ -1366,7 +1604,7 @@ static const value_string h450_EndDesignation_vals[] = { static int -dissect_h450_EndDesignation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_EndDesignation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, NULL, TRUE, 0, NULL); @@ -1374,7 +1612,7 @@ dissect_h450_EndDesignation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string h450_CallStatus_vals[] = { +static const value_string h450_2_CallStatus_vals[] = { { 0, "answered" }, { 1, "alerting" }, { 0, NULL } @@ -1382,7 +1620,7 @@ static const value_string h450_CallStatus_vals[] = { static int -dissect_h450_CallStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_CallStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, NULL, TRUE, 0, NULL); @@ -1390,121 +1628,195 @@ dissect_h450_CallStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } -static const per_sequence_t CTCompleteArg_sequence[] = { - { &hf_h450_endDesignation , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndDesignation }, - { &hf_h450_redirectionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement }, - { &hf_h450_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_callStatus , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_CallStatus }, - { &hf_h450_cTCompleteArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ArgumentExtension }, - { NULL, 0, 0, NULL } +static const value_string h450_2_T_cTCompleteArg_argumentExtension_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } }; -static int -dissect_h450_CTCompleteArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CTCompleteArg, CTCompleteArg_sequence); - - return offset; -} - - +static const per_choice_t h450_2_T_cTCompleteArg_argumentExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } +}; static int -dissect_h450_CallTransferComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_CTCompleteArg(tvb, offset, actx, tree, hf_index); +dissect_h450_2_T_cTCompleteArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_2_T_cTCompleteArg_argumentExtension, h450_2_T_cTCompleteArg_argumentExtension_choice, + NULL); return offset; } -static const per_sequence_t CTActiveArg_sequence[] = { - { &hf_h450_connectedAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement }, - { &hf_h450_connectedInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_cTActiveArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ArgumentExtension }, +static const per_sequence_t h450_2_CTCompleteArg_sequence[] = { + { &hf_h450_2_endDesignation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_EndDesignation }, + { &hf_h450_2_redirectionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_2_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement }, + { &hf_h450_2_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_BMPString_SIZE_1_128 }, + { &hf_h450_2_callStatus , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_CallStatus }, + { &hf_h450_2_cTCompleteArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTCompleteArg_argumentExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CTActiveArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_CTCompleteArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CTActiveArg, CTActiveArg_sequence); - - return offset; -} - - - -static int -dissect_h450_CallTransferActive(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_CTActiveArg(tvb, offset, actx, tree, hf_index); + ett_h450_2_CTCompleteArg, h450_2_CTCompleteArg_sequence); return offset; } -static const value_string h450_DummyRes_vals[] = { +static const value_string h450_2_T_cTActiveArg_argumentExtension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DummyRes_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_2_T_cTActiveArg_argumentExtension_choice[] = { + { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq }, + { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_T_cTActiveArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DummyRes, DummyRes_choice, + ett_h450_2_T_cTActiveArg_argumentExtension, h450_2_T_cTActiveArg_argumentExtension_choice, NULL); return offset; } -static const value_string h450_T_resultExtension_vals[] = { - { 0, "extensionSeq" }, - { 1, "nonStandardData" }, +static const per_sequence_t h450_2_CTActiveArg_sequence[] = { + { &hf_h450_2_connectedAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_2_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement }, + { &hf_h450_2_connectedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_BMPString_SIZE_1_128 }, + { &hf_h450_2_cTActiveArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTActiveArg_argumentExtension }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h450_2_CTActiveArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_2_CTActiveArg, h450_2_CTActiveArg_sequence); + + return offset; +} + + +static const value_string h450_2_PAR_unspecified_vals[] = { + { 0, "extension" }, + { 1, "nonStandard" }, { 0, NULL } }; -static const per_choice_t T_resultExtension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_2_PAR_unspecified_choice[] = { + { 0, &hf_h450_2_unspecified_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension }, + { 1, &hf_h450_2_nonStandard , ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_T_resultExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_2_PAR_unspecified(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_T_resultExtension, T_resultExtension_choice, + ett_h450_2_PAR_unspecified, h450_2_PAR_unspecified_choice, NULL); return offset; } +/*--- PDUs ---*/ -static const per_sequence_t CTIdentifyRes_sequence[] = { - { &hf_h450_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CallIdentity }, - { &hf_h450_reroutingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_T_resultExtension }, - { NULL, 0, 0, NULL } -}; - -static int -dissect_h450_CTIdentifyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CTIdentifyRes, CTIdentifyRes_sequence); - +static int dissect_h450_2_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_DummyArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_DummyArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_CTIdentifyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_CTIdentifyRes(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTIdentifyRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_CTInitiateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_CTInitiateArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTInitiateArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_DummyRes(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_DummyRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_CTSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_CTSetupArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTSetupArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_CTUpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_CTUpdateArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTUpdateArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_SubaddressTransferArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_SubaddressTransferArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_SubaddressTransferArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_CTCompleteArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_CTCompleteArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTCompleteArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_CTActiveArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_CTActiveArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTActiveArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_2_PAR_unspecified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_2_PAR_unspecified(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_PAR_unspecified_PDU); + offset += 7; offset >>= 3; return offset; } -static const value_string h450_Procedure_vals[] = { +/* --- Module Call-Diversion-Operations --- --- --- */ + + +static const value_string h450_3_Procedure_vals[] = { { 0, "cfu" }, { 1, "cfb" }, { 2, "cfnr" }, @@ -1513,7 +1825,7 @@ static const value_string h450_Procedure_vals[] = { static int -dissect_h450_Procedure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_Procedure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 3, NULL, TRUE, 0, NULL); @@ -1521,778 +1833,993 @@ dissect_h450_Procedure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } -static const value_string h450_BasicService_vals[] = { +static const value_string h450_3_BasicService_vals[] = { { 0, "allServices" }, - { 1, "speech" }, - { 2, "unrestrictedDigitalInformation" }, - { 3, "audio3100Hz" }, - { 32, "telephony" }, - { 33, "teletex" }, - { 34, "telefaxGroup4Class1" }, - { 35, "videotexSyntaxBased" }, - { 36, "videotelephony" }, - { 37, "telefaxGroup2-3" }, - { 38, "reservedNotUsed1" }, - { 39, "reservedNotUsed2" }, - { 40, "reservedNotUsed3" }, - { 41, "reservedNotUsed4" }, - { 42, "reservedNotUsed5" }, - { 51, "email" }, - { 52, "video" }, - { 53, "fileTransfer" }, - { 54, "shortMessageService" }, - { 55, "speechAndVideo" }, - { 56, "speechAndFax" }, - { 57, "speechAndEmail" }, - { 58, "videoAndFax" }, - { 59, "videoAndEmail" }, - { 60, "faxAndEmail" }, - { 61, "speechVideoAndFax" }, - { 62, "speechVideoAndEmail" }, - { 63, "speechFaxAndEmail" }, - { 64, "videoFaxAndEmail" }, - { 65, "speechVideoFaxAndEmail" }, - { 66, "multimediaUnknown" }, - { 67, "serviceUnknown" }, - { 68, "futureReserve1" }, - { 69, "futureReserve2" }, - { 70, "futureReserve3" }, - { 71, "futureReserve4" }, - { 72, "futureReserve5" }, - { 73, "futureReserve6" }, - { 74, "futureReserve7" }, - { 75, "futureReserve8" }, { 0, NULL } }; -static guint32 BasicService_value_map[40+0] = {0, 1, 2, 3, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75}; static int -dissect_h450_BasicService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_BasicService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 40, NULL, FALSE, 0, BasicService_value_map); + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t h450_3_ExtensionSeq_sequence_of[1] = { + { &hf_h450_3_ExtensionSeq_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_Extension }, +}; + +static int +dissect_h450_3_ExtensionSeq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_3_ExtensionSeq, h450_3_ExtensionSeq_sequence_of); return offset; } -static const value_string h450_ActivateDiversionQArg_extension_vals[] = { +static const value_string h450_3_ActivateDiversionQArg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t ActivateDiversionQArg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_ActivateDiversionQArg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_ActivateDiversionQArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ActivateDiversionQArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_ActivateDiversionQArg_extension, ActivateDiversionQArg_extension_choice, + ett_h450_3_ActivateDiversionQArg_extension, h450_3_ActivateDiversionQArg_extension_choice, NULL); return offset; } -static const per_sequence_t ActivateDiversionQArg_sequence[] = { - { &hf_h450_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_Procedure }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_divertedToAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_activatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_activateDiversionQArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ActivateDiversionQArg_extension }, +static const per_sequence_t h450_3_ARG_activateDiversionQ_sequence[] = { + { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure }, + { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService }, + { &hf_h450_3_divertedToAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_activatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_activateDiversionQArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_ActivateDiversionQArg_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_ActivateDiversionQArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_activateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_ActivateDiversionQArg, ActivateDiversionQArg_sequence); + ett_h450_3_ARG_activateDiversionQ, h450_3_ARG_activateDiversionQ_sequence); return offset; } -static const value_string h450_ActivateDiversionQRes_vals[] = { +static const value_string h450_3_RES_activateDiversionQ_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t ActivateDiversionQRes_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_RES_activateDiversionQ_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_ActivateDiversionQRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_RES_activateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_ActivateDiversionQRes, ActivateDiversionQRes_choice, + ett_h450_3_RES_activateDiversionQ, h450_3_RES_activateDiversionQ_choice, NULL); return offset; } -static const value_string h450_DeactivateDiversionQArg_extension_vals[] = { +static const value_string h450_3_DeactivateDiversionQArg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DeactivateDiversionQArg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_DeactivateDiversionQArg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DeactivateDiversionQArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_DeactivateDiversionQArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DeactivateDiversionQArg_extension, DeactivateDiversionQArg_extension_choice, + ett_h450_3_DeactivateDiversionQArg_extension, h450_3_DeactivateDiversionQArg_extension_choice, NULL); return offset; } -static const per_sequence_t DeactivateDiversionQArg_sequence[] = { - { &hf_h450_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_Procedure }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_deactivatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_deactivateDiversionQArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DeactivateDiversionQArg_extension }, +static const per_sequence_t h450_3_ARG_deactivateDiversionQ_sequence[] = { + { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure }, + { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService }, + { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_deactivatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_deactivateDiversionQArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DeactivateDiversionQArg_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_DeactivateDiversionQArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_deactivateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_DeactivateDiversionQArg, DeactivateDiversionQArg_sequence); + ett_h450_3_ARG_deactivateDiversionQ, h450_3_ARG_deactivateDiversionQ_sequence); return offset; } -static const value_string h450_DeactivateDiversionQRes_vals[] = { +static const value_string h450_3_RES_deactivateDiversionQ_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DeactivateDiversionQRes_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_RES_deactivateDiversionQ_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DeactivateDiversionQRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_RES_deactivateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DeactivateDiversionQRes, DeactivateDiversionQRes_choice, + ett_h450_3_RES_deactivateDiversionQ, h450_3_RES_deactivateDiversionQ_choice, NULL); return offset; } -static const value_string h450_InterrogateDiversionQ_extension_vals[] = { +static const value_string h450_3_InterrogateDiversionQ_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t InterrogateDiversionQ_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_InterrogateDiversionQ_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_InterrogateDiversionQ_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_InterrogateDiversionQ_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_InterrogateDiversionQ_extension, InterrogateDiversionQ_extension_choice, + ett_h450_3_InterrogateDiversionQ_extension, h450_3_InterrogateDiversionQ_extension_choice, NULL); return offset; } -static const per_sequence_t InterrogateDiversionQ_sequence[] = { - { &hf_h450_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_Procedure }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BasicService }, - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_interrogatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_interrogateDiversionQ_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_InterrogateDiversionQ_extension }, +static const per_sequence_t h450_3_ARG_interrogateDiversionQ_sequence[] = { + { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure }, + { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BasicService }, + { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_interrogatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_interrogateDiversionQ_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_InterrogateDiversionQ_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_InterrogateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_interrogateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_InterrogateDiversionQ, InterrogateDiversionQ_sequence); + ett_h450_3_ARG_interrogateDiversionQ, h450_3_ARG_interrogateDiversionQ_sequence); return offset; } -static const value_string h450_IntResult_extension_vals[] = { +static const value_string h450_3_CheckRestrictionArg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t IntResult_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_CheckRestrictionArg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_IntResult_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_CheckRestrictionArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_IntResult_extension, IntResult_extension_choice, + ett_h450_3_CheckRestrictionArg_extension, h450_3_CheckRestrictionArg_extension_choice, NULL); return offset; } -static const per_sequence_t IntResult_sequence[] = { - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_Procedure }, - { &hf_h450_divertedToAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_remoteEnabled , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BOOLEAN }, - { &hf_h450_intResult_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_IntResult_extension }, +static const per_sequence_t h450_3_ARG_checkRestriction_sequence[] = { + { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService }, + { &hf_h450_3_divertedToNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_checkRestrictionArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_CheckRestrictionArg_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_IntResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_checkRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_IntResult, IntResult_sequence); + ett_h450_3_ARG_checkRestriction, h450_3_ARG_checkRestriction_sequence); return offset; } -static const per_sequence_t IntResultList_set_of[1] = { - { &hf_h450_IntResultList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_IntResult }, +static const value_string h450_3_RES_checkRestriction_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, + { 0, NULL } +}; + +static const per_choice_t h450_3_RES_checkRestriction_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } }; static int -dissect_h450_IntResultList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index, - ett_h450_IntResultList, IntResultList_set_of, - 0, 29); +dissect_h450_3_RES_checkRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_3_RES_checkRestriction, h450_3_RES_checkRestriction_choice, + NULL); return offset; } +static const value_string h450_3_DiversionReason_vals[] = { + { 0, "unknown" }, + { 1, "cfu" }, + { 2, "cfb" }, + { 3, "cfnr" }, + { 0, NULL } +}; + static int -dissect_h450_InterrogateDiversionQRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_IntResultList(tvb, offset, actx, tree, hf_index); +dissect_h450_3_DiversionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, TRUE, 0, NULL); return offset; } -static const value_string h450_CheckRestrictionArg_extension_vals[] = { - { 0, "extensionSeq" }, - { 1, "nonStandardData" }, + +static int +dissect_h450_3_INTEGER_1_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 15U, NULL, FALSE); + + return offset; +} + + +static const value_string h450_3_SubscriptionOption_vals[] = { + { 0, "noNotification" }, + { 1, "notificationWithoutDivertedToNr" }, + { 2, "notificationWithDivertedToNr" }, { 0, NULL } }; -static const per_choice_t CheckRestrictionArg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, - { 0, NULL, 0, NULL } -}; static int -dissect_h450_CheckRestrictionArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CheckRestrictionArg_extension, CheckRestrictionArg_extension_choice, - NULL); +dissect_h450_3_SubscriptionOption(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); return offset; } -static const per_sequence_t CheckRestrictionArg_sequence[] = { - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_divertedToNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_checkRestrictionArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_CheckRestrictionArg_extension }, - { NULL, 0, 0, NULL } -}; static int -dissect_h450_CheckRestrictionArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CheckRestrictionArg, CheckRestrictionArg_sequence); +dissect_h450_3_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index, + 1, 128); return offset; } -static const value_string h450_CheckRestrictionRes_vals[] = { +static const value_string h450_3_CallReroutingArg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t CheckRestrictionRes_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_CallReroutingArg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_CheckRestrictionRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_CallReroutingArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CheckRestrictionRes, CheckRestrictionRes_choice, + ett_h450_3_CallReroutingArg_extension, h450_3_CallReroutingArg_extension_choice, NULL); return offset; } -static const value_string h450_DiversionReason_vals[] = { - { 0, "unknown" }, - { 1, "cfu" }, - { 2, "cfb" }, - { 3, "cfnr" }, - { 0, NULL } +static const per_sequence_t h450_3_ARG_callRerouting_sequence[] = { + { &hf_h450_3_reroutingReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason }, + { &hf_h450_3_originalReroutingReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DiversionReason }, + { &hf_h450_3_calledAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_diversionCounter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_INTEGER_1_15 }, + { &hf_h450_3_h225InfoElement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_H225InformationElement }, + { &hf_h450_3_lastReroutingNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_SubscriptionOption }, + { &hf_h450_3_callingPartySubaddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_PartySubaddress }, + { &hf_h450_3_callingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_callingInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_originalCalledNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_3_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_originalCalledInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_callReroutingArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_CallReroutingArg_extension }, + { NULL, 0, 0, NULL } }; - -static int -dissect_h450_DiversionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 4, NULL, TRUE, 0, NULL); - - return offset; -} - - - static int -dissect_h450_INTEGER_1_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, 15U, NULL, FALSE); +dissect_h450_3_ARG_callRerouting(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_3_ARG_callRerouting, h450_3_ARG_callRerouting_sequence); return offset; } -static const value_string h450_SubscriptionOption_vals[] = { - { 0, "noNotification" }, - { 1, "notificationWithoutDivertedToNr" }, - { 2, "notificationWithDivertedToNr" }, +static const value_string h450_3_RES_callRerouting_vals[] = { + { 0, "extensionSeq" }, + { 1, "nonStandardData" }, { 0, NULL } }; +static const per_choice_t h450_3_RES_callRerouting_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, + { 0, NULL, 0, NULL } +}; static int -dissect_h450_SubscriptionOption(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 3, NULL, TRUE, 0, NULL); +dissect_h450_3_RES_callRerouting(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_3_RES_callRerouting, h450_3_RES_callRerouting_choice, + NULL); return offset; } -static const value_string h450_CallReroutingArg_extension_vals[] = { +static const value_string h450_3_DivertingLegInformation1Arg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t CallReroutingArg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_DivertingLegInformation1Arg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_CallReroutingArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_DivertingLegInformation1Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CallReroutingArg_extension, CallReroutingArg_extension_choice, + ett_h450_3_DivertingLegInformation1Arg_extension, h450_3_DivertingLegInformation1Arg_extension_choice, NULL); return offset; } -static const per_sequence_t CallReroutingArg_sequence[] = { - { &hf_h450_reroutingReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason }, - { &hf_h450_originalReroutingReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DiversionReason }, - { &hf_h450_calledAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_diversionCounter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_INTEGER_1_15 }, - { &hf_h450_h225InfoElement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_H225InformationElement }, - { &hf_h450_lastReroutingNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SubscriptionOption }, - { &hf_h450_callingPartySubaddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_PartySubaddress }, - { &hf_h450_callingNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_callingInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_originalCalledNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_originalCalledInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_callReroutingArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_CallReroutingArg_extension }, +static const per_sequence_t h450_3_ARG_divertingLegInformation1_sequence[] = { + { &hf_h450_3_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason }, + { &hf_h450_3_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_SubscriptionOption }, + { &hf_h450_3_nominatedNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_nominatedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_redirectingNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_3_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_divertingLegInformation1Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation1Arg_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CallReroutingArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_divertingLegInformation1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CallReroutingArg, CallReroutingArg_sequence); + ett_h450_3_ARG_divertingLegInformation1, h450_3_ARG_divertingLegInformation1_sequence); return offset; } -static const value_string h450_CallReroutingRes_vals[] = { +static const value_string h450_3_DivertingLegInformation2Arg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t CallReroutingRes_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_DivertingLegInformation2Arg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_CallReroutingRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_DivertingLegInformation2Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CallReroutingRes, CallReroutingRes_choice, + ett_h450_3_DivertingLegInformation2Arg_extension, h450_3_DivertingLegInformation2Arg_extension_choice, NULL); return offset; } -static const value_string h450_DivertingLegInformation1Arg_extension_vals[] = { +static const per_sequence_t h450_3_ARG_divertingLegInformation2_sequence[] = { + { &hf_h450_3_diversionCounter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_INTEGER_1_15 }, + { &hf_h450_3_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason }, + { &hf_h450_3_originalDiversionReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DiversionReason }, + { &hf_h450_3_divertingNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_3_originalCalledNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_3_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_originalCalledInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_divertingLegInformation2Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation2Arg_extension }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h450_3_ARG_divertingLegInformation2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_3_ARG_divertingLegInformation2, h450_3_ARG_divertingLegInformation2_sequence); + + return offset; +} + + +static const value_string h450_3_DivertingLegInformation3Arg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DivertingLegInformation1Arg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_DivertingLegInformation3Arg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DivertingLegInformation1Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_DivertingLegInformation3Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation1Arg_extension, DivertingLegInformation1Arg_extension_choice, + ett_h450_3_DivertingLegInformation3Arg_extension, h450_3_DivertingLegInformation3Arg_extension_choice, NULL); return offset; } -static const per_sequence_t DivertingLegInformation1Arg_sequence[] = { - { &hf_h450_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason }, - { &hf_h450_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SubscriptionOption }, - { &hf_h450_nominatedNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_nominatedInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_redirectingNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_divertingLegInformation1Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DivertingLegInformation1Arg_extension }, +static const per_sequence_t h450_3_ARG_divertingLegInformation3_sequence[] = { + { &hf_h450_3_presentationAllowedIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_PresentationAllowedIndicator }, + { &hf_h450_3_redirectionNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_3_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_divertingLegInformation3Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation3Arg_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_DivertingLegInformation1Arg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_divertingLegInformation3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation1Arg, DivertingLegInformation1Arg_sequence); + ett_h450_3_ARG_divertingLegInformation3, h450_3_ARG_divertingLegInformation3_sequence); return offset; } -static const value_string h450_DivertingLegInformation2Arg_extension_vals[] = { +static const value_string h450_3_DivertingLegInformation4Arg_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DivertingLegInformation2Arg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_DivertingLegInformation4Arg_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DivertingLegInformation2Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_DivertingLegInformation4Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation2Arg_extension, DivertingLegInformation2Arg_extension_choice, + ett_h450_3_DivertingLegInformation4Arg_extension, h450_3_DivertingLegInformation4Arg_extension_choice, NULL); return offset; } -static const per_sequence_t DivertingLegInformation2Arg_sequence[] = { - { &hf_h450_diversionCounter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_INTEGER_1_15 }, - { &hf_h450_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason }, - { &hf_h450_originalDiversionReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DiversionReason }, - { &hf_h450_divertingNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_originalCalledNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_originalCalledInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DivertingLegInformation2Arg_extension }, +static const per_sequence_t h450_3_ARG_divertingLegInformation4_sequence[] = { + { &hf_h450_3_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason }, + { &hf_h450_3_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_SubscriptionOption }, + { &hf_h450_3_callingNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_callingInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_nominatedNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_nominatedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 }, + { &hf_h450_3_divertingLegInformation4Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation4Arg_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_DivertingLegInformation2Arg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_divertingLegInformation4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation2Arg, DivertingLegInformation2Arg_sequence); + ett_h450_3_ARG_divertingLegInformation4, h450_3_ARG_divertingLegInformation4_sequence); return offset; } -static const value_string h450_DivertingLegInformation3Arg_extension_vals[] = { +static const value_string h450_3_ARG_cfnrDivertedLegFailed_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DivertingLegInformation3Arg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_ARG_cfnrDivertedLegFailed_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DivertingLegInformation3Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_ARG_cfnrDivertedLegFailed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation3Arg_extension, DivertingLegInformation3Arg_extension_choice, + ett_h450_3_ARG_cfnrDivertedLegFailed, h450_3_ARG_cfnrDivertedLegFailed_choice, NULL); return offset; } -static const per_sequence_t DivertingLegInformation3Arg_sequence[] = { - { &hf_h450_presentationAllowedIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_PresentationAllowedIndicator }, - { &hf_h450_redirectionNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_divertingLegInformation3Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DivertingLegInformation3Arg_extension }, - { NULL, 0, 0, NULL } -}; static int -dissect_h450_DivertingLegInformation3Arg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation3Arg, DivertingLegInformation3Arg_sequence); +dissect_h450_3_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); return offset; } -static const value_string h450_DivertingLegInformation4Arg_extension_vals[] = { +static const value_string h450_3_IntResult_extension_vals[] = { { 0, "extensionSeq" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t DivertingLegInformation4Arg_extension_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_IntResult_extension_choice[] = { + { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq }, + { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_DivertingLegInformation4Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_IntResult_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation4Arg_extension, DivertingLegInformation4Arg_extension_choice, + ett_h450_3_IntResult_extension, h450_3_IntResult_extension_choice, NULL); return offset; } -static const per_sequence_t DivertingLegInformation4Arg_sequence[] = { - { &hf_h450_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason }, - { &hf_h450_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SubscriptionOption }, - { &hf_h450_callingNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_callingInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_nominatedNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_nominatedInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BMPString_SIZE_1_128 }, - { &hf_h450_divertingLegInformation4Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_DivertingLegInformation4Arg_extension }, +static const per_sequence_t h450_3_IntResult_sequence[] = { + { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService }, + { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure }, + { &hf_h450_3_divertedToAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_3_remoteEnabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BOOLEAN }, + { &hf_h450_3_intResult_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_IntResult_extension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_DivertingLegInformation4Arg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_IntResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_DivertingLegInformation4Arg, DivertingLegInformation4Arg_sequence); + ett_h450_3_IntResult, h450_3_IntResult_sequence); return offset; } -static const value_string h450_CfnrDivertedLegFailedArg_vals[] = { - { 0, "extensionSeq" }, - { 1, "nonStandardData" }, +static const per_sequence_t h450_3_IntResultList_set_of[1] = { + { &hf_h450_3_IntResultList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_3_IntResult }, +}; + +static int +dissect_h450_3_IntResultList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index, + ett_h450_3_IntResultList, h450_3_IntResultList_set_of, + 0, 29); + + return offset; +} + + +static const value_string h450_3_PAR_unspecified_vals[] = { + { 0, "extension" }, + { 1, "nonStandard" }, { 0, NULL } }; -static const per_choice_t CfnrDivertedLegFailedArg_choice[] = { - { 0, &hf_h450_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_ExtensionSeq }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_3_PAR_unspecified_choice[] = { + { 0, &hf_h450_3_unspecified_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension }, + { 1, &hf_h450_3_nonStandard , ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_CfnrDivertedLegFailedArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_3_PAR_unspecified(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CfnrDivertedLegFailedArg, CfnrDivertedLegFailedArg_choice, + ett_h450_3_PAR_unspecified, h450_3_PAR_unspecified_choice, NULL); return offset; } +/*--- PDUs ---*/ + +static int dissect_h450_3_ARG_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_activateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_activateDiversionQ_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_RES_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_RES_activateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_activateDiversionQ_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_deactivateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_RES_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_RES_deactivateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_deactivateDiversionQ_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_interrogateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_interrogateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_IntResultList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_IntResultList(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_IntResultList_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_checkRestriction(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_checkRestriction_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_RES_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_RES_checkRestriction(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_checkRestriction_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_callRerouting_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_callRerouting(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_callRerouting_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_RES_callRerouting_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_RES_callRerouting(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_callRerouting_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_divertingLegInformation1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_divertingLegInformation1(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_divertingLegInformation2_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_divertingLegInformation2(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_divertingLegInformation3_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_divertingLegInformation3(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_divertingLegInformation4_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_divertingLegInformation4(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_ARG_cfnrDivertedLegFailed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_ARG_cfnrDivertedLegFailed(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_cfnrDivertedLegFailed_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_3_PAR_unspecified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_3_PAR_unspecified(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_PAR_unspecified_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Call-Hold-Operations --- --- --- */ -static const value_string h450_MixedExtension_vals[] = { + +static const value_string h450_4_MixedExtension_vals[] = { { 0, "extension" }, { 1, "nonStandardData" }, { 0, NULL } }; -static const per_choice_t MixedExtension_choice[] = { - { 0, &hf_h450_mixedExtension_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension }, - { 1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, +static const per_choice_t h450_4_MixedExtension_choice[] = { + { 0, &hf_h450_4_mixedExtension_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension }, + { 1, &hf_h450_4_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, { 0, NULL, 0, NULL } }; static int -dissect_h450_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_MixedExtension, MixedExtension_choice, + ett_h450_4_MixedExtension, h450_4_MixedExtension_choice, NULL); return offset; } -static const per_sequence_t SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { - { &hf_h450_holdNotificArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_MixedExtension }, +static const per_sequence_t h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_4_holdNotificArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension, SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, 0, 255); return offset; } -static const per_sequence_t HoldNotificArg_sequence[] = { - { &hf_h450_holdNotificArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_4_HoldNotificArg_sequence[] = { + { &hf_h450_4_holdNotificArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_HoldNotificArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_HoldNotificArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_HoldNotificArg, HoldNotificArg_sequence); + ett_h450_4_HoldNotificArg, h450_4_HoldNotificArg_sequence); return offset; } -static const per_sequence_t RetrieveNotificArg_sequence[] = { - { &hf_h450_retrieveNotificArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_4_RetrieveNotificArg_sequence[] = { + { &hf_h450_4_retrieveNotificArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_RetrieveNotificArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_RetrieveNotificArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_RetrieveNotificArg, RetrieveNotificArg_sequence); + ett_h450_4_RetrieveNotificArg, h450_4_RetrieveNotificArg_sequence); return offset; } -static const per_sequence_t RemoteHoldArg_sequence[] = { - { &hf_h450_remoteHoldArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_4_RemoteHoldArg_sequence[] = { + { &hf_h450_4_remoteHoldArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_RemoteHoldArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_RemoteHoldArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_RemoteHoldArg, RemoteHoldArg_sequence); + ett_h450_4_RemoteHoldArg, h450_4_RemoteHoldArg_sequence); return offset; } -static const per_sequence_t RemoteHoldRes_sequence[] = { - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_4_RemoteHoldRes_sequence[] = { + { &hf_h450_4_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_RemoteHoldRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_RemoteHoldRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_RemoteHoldRes, RemoteHoldRes_sequence); + ett_h450_4_RemoteHoldRes, h450_4_RemoteHoldRes_sequence); return offset; } -static const per_sequence_t RemoteRetrieveArg_sequence[] = { - { &hf_h450_remoteRetrieveArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_4_RemoteRetrieveArg_sequence[] = { + { &hf_h450_4_remoteRetrieveArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_RemoteRetrieveArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_RemoteRetrieveArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_RemoteRetrieveArg, RemoteRetrieveArg_sequence); + ett_h450_4_RemoteRetrieveArg, h450_4_RemoteRetrieveArg_sequence); return offset; } -static const per_sequence_t RemoteRetrieveRes_sequence[] = { - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_4_RemoteRetrieveRes_sequence[] = { + { &hf_h450_4_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_RemoteRetrieveRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_RemoteRetrieveRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_RemoteRetrieveRes, RemoteRetrieveRes_sequence); + ett_h450_4_RemoteRetrieveRes, h450_4_RemoteRetrieveRes_sequence); return offset; } +static const per_sequence_t h450_4_PAR_undefined_sequence_of[1] = { + { &hf_h450_4_PAR_undefined_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, +}; static int -dissect_h450_ParkedToPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_4_PAR_undefined(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_4_PAR_undefined, h450_4_PAR_undefined_sequence_of, + 0, 255); + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_h450_4_HoldNotificArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_HoldNotificArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_HoldNotificArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_4_RetrieveNotificArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_RetrieveNotificArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RetrieveNotificArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_4_RemoteHoldArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_RemoteHoldArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteHoldArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_4_RemoteHoldRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_RemoteHoldRes(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteHoldRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_4_RemoteRetrieveArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_RemoteRetrieveArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteRetrieveArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_4_RemoteRetrieveRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_RemoteRetrieveRes(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteRetrieveRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_4_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_4_PAR_undefined(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_PAR_undefined_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + + +static int +dissect_h450_5_ParkedToPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, NULL, FALSE); @@ -2300,25 +2827,39 @@ dissect_h450_ParkedToPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const per_sequence_t CpRequestArg_sequence[] = { - { &hf_h450_parkingNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ParkedToPosition }, - { &hf_h450_cpRequestArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_5_cpRequestArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, +}; + +static int +dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); + + return offset; +} + + +static const per_sequence_t h450_5_CpRequestArg_sequence[] = { + { &hf_h450_5_parkingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition }, + { &hf_h450_5_cpRequestArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CpRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CpRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CpRequestArg, CpRequestArg_sequence); + ett_h450_5_CpRequestArg, h450_5_CpRequestArg_sequence); return offset; } -static const value_string h450_ParkCondition_vals[] = { +static const value_string h450_5_ParkCondition_vals[] = { { 0, "unspecified" }, { 1, "parkedToUserIdle" }, { 2, "parkedToUserBusy" }, @@ -2328,7 +2869,7 @@ static const value_string h450_ParkCondition_vals[] = { static int -dissect_h450_ParkCondition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_ParkCondition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, NULL, TRUE, 0, NULL); @@ -2336,59 +2877,59 @@ dissect_h450_ParkCondition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } -static const per_sequence_t CpRequestRes_sequence[] = { - { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ParkedToPosition }, - { &hf_h450_parkCondition , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_ParkCondition }, - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_CpRequestRes_sequence[] = { + { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition }, + { &hf_h450_5_parkCondition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_5_ParkCondition }, + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CpRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CpRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CpRequestRes, CpRequestRes_sequence); + ett_h450_5_CpRequestRes, h450_5_CpRequestRes_sequence); return offset; } -static const per_sequence_t CpSetupArg_sequence[] = { - { &hf_h450_parkingNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ParkedToPosition }, - { &hf_h450_cpSetupArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_CpSetupArg_sequence[] = { + { &hf_h450_5_parkingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition }, + { &hf_h450_5_cpSetupArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CpSetupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CpSetupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CpSetupArg, CpSetupArg_sequence); + ett_h450_5_CpSetupArg, h450_5_CpSetupArg_sequence); return offset; } -static const per_sequence_t CpSetupRes_sequence[] = { - { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ParkedToPosition }, - { &hf_h450_parkCondition , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_ParkCondition }, - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_CpSetupRes_sequence[] = { + { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition }, + { &hf_h450_5_parkCondition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_5_ParkCondition }, + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CpSetupRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CpSetupRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CpSetupRes, CpSetupRes_sequence); + ett_h450_5_CpSetupRes, h450_5_CpSetupRes_sequence); return offset; } -static const value_string h450_CallType_vals[] = { +static const value_string h450_5_CallType_vals[] = { { 0, "parkedCall" }, { 1, "alertingCall" }, { 0, NULL } @@ -2396,7 +2937,7 @@ static const value_string h450_CallType_vals[] = { static int -dissect_h450_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, NULL, TRUE, 0, NULL); @@ -2404,198 +2945,354 @@ dissect_h450_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } -static const per_sequence_t GroupIndicationOnArg_sequence[] = { - { &hf_h450_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, - { &hf_h450_groupMemberUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_retrieveCallType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CallType }, - { &hf_h450_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_retrieveAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkPosition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ParkedToPosition }, - { &hf_h450_groupIndicationOnArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_GroupIndicationOnArg_sequence[] = { + { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, + { &hf_h450_5_groupMemberUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_retrieveCallType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_5_CallType }, + { &hf_h450_5_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_retrieveAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkPosition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition }, + { &hf_h450_5_groupIndicationOnArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_GroupIndicationOnArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_GroupIndicationOnArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_GroupIndicationOnArg, GroupIndicationOnArg_sequence); + ett_h450_5_GroupIndicationOnArg, h450_5_GroupIndicationOnArg_sequence); return offset; } -static const per_sequence_t GroupIndicationOnRes_sequence[] = { - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_GroupIndicationOnRes_sequence[] = { + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_GroupIndicationOnRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_GroupIndicationOnRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_GroupIndicationOnRes, GroupIndicationOnRes_sequence); + ett_h450_5_GroupIndicationOnRes, h450_5_GroupIndicationOnRes_sequence); return offset; } -static const per_sequence_t GroupIndicationOffArg_sequence[] = { - { &hf_h450_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, - { &hf_h450_groupMemberUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_groupIndicationOffArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_GroupIndicationOffArg_sequence[] = { + { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, + { &hf_h450_5_groupMemberUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_groupIndicationOffArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_GroupIndicationOffArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_GroupIndicationOffArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_GroupIndicationOffArg, GroupIndicationOffArg_sequence); + ett_h450_5_GroupIndicationOffArg, h450_5_GroupIndicationOffArg_sequence); return offset; } -static const per_sequence_t GroupIndicationOffRes_sequence[] = { - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_GroupIndicationOffRes_sequence[] = { + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_GroupIndicationOffRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_GroupIndicationOffRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_GroupIndicationOffRes, GroupIndicationOffRes_sequence); + ett_h450_5_GroupIndicationOffRes, h450_5_GroupIndicationOffRes_sequence); return offset; } -static const per_sequence_t PickrequArg_sequence[] = { - { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_callPickupId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, - { &hf_h450_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_retrieveAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_parkPosition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ParkedToPosition }, - { &hf_h450_pickrequArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_PickrequArg_sequence[] = { + { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, + { &hf_h450_5_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_5_retrieveAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_parkPosition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition }, + { &hf_h450_5_pickrequArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_PickrequArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PickrequArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_PickrequArg, PickrequArg_sequence); + ett_h450_5_PickrequArg, h450_5_PickrequArg_sequence); return offset; } -static const per_sequence_t PickrequRes_sequence[] = { - { &hf_h450_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_PickrequRes_sequence[] = { + { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_PickrequRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PickrequRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_PickrequRes, PickrequRes_sequence); + ett_h450_5_PickrequRes, h450_5_PickrequRes_sequence); return offset; } -static const per_sequence_t PickupArg_sequence[] = { - { &hf_h450_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, - { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_pickupArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_PickupArg_sequence[] = { + { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, + { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_pickupArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_PickupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PickupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_PickupArg, PickupArg_sequence); + ett_h450_5_PickupArg, h450_5_PickupArg_sequence); return offset; } -static const per_sequence_t PickupRes_sequence[] = { - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_PickupRes_sequence[] = { + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_PickupRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PickupRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_PickupRes, PickupRes_sequence); + ett_h450_5_PickupRes, h450_5_PickupRes_sequence); return offset; } -static const per_sequence_t PickExeArg_sequence[] = { - { &hf_h450_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, - { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_pickExeArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_PickExeArg_sequence[] = { + { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier }, + { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_5_pickExeArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_PickExeArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PickExeArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_PickExeArg, PickExeArg_sequence); + ett_h450_5_PickExeArg, h450_5_PickExeArg_sequence); return offset; } -static const per_sequence_t PickExeRes_sequence[] = { - { &hf_h450_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_PickExeRes_sequence[] = { + { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_PickExeRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PickExeRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_PickExeRes, PickExeRes_sequence); + ett_h450_5_PickExeRes, h450_5_PickExeRes_sequence); return offset; } -static const per_sequence_t CpNotifyArg_sequence[] = { - { &hf_h450_parkingNumber , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_cpNotifyArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_CpNotifyArg_sequence[] = { + { &hf_h450_5_parkingNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_5_cpNotifyArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CpNotifyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CpNotifyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CpNotifyArg, CpNotifyArg_sequence); + ett_h450_5_CpNotifyArg, h450_5_CpNotifyArg_sequence); return offset; } -static const per_sequence_t CpickupNotifyArg_sequence[] = { - { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_cpickupNotifyArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_5_CpickupNotifyArg_sequence[] = { + { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_5_cpickupNotifyArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CpickupNotifyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_CpickupNotifyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CpickupNotifyArg, CpickupNotifyArg_sequence); + ett_h450_5_CpickupNotifyArg, h450_5_CpickupNotifyArg_sequence); return offset; } +static const per_sequence_t h450_5_PAR_undefined_sequence_of[1] = { + { &hf_h450_5_PAR_undefined_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, +}; static int -dissect_h450_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_5_PAR_undefined(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_5_PAR_undefined, h450_5_PAR_undefined_sequence_of, + 0, 255); + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_h450_5_CpRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_CpRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpRequestArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_CpRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_CpRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpRequestRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_CpSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_CpSetupArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpSetupArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_CpSetupRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_CpSetupRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpSetupRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_GroupIndicationOnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_GroupIndicationOnArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOnArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_GroupIndicationOnRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_GroupIndicationOnRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOnRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_GroupIndicationOffArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_GroupIndicationOffArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOffArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_GroupIndicationOffRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_GroupIndicationOffRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOffRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PickrequArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PickrequArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickrequArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PickrequRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PickrequRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickrequRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PickupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PickupArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickupArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PickupRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PickupRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickupRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PickExeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PickExeArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickExeArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PickExeRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PickExeRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickExeRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_CpNotifyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_CpNotifyArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpNotifyArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_CpickupNotifyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_CpickupNotifyArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpickupNotifyArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_5_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_5_PAR_undefined(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PAR_undefined_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Call-Waiting-Operations --- --- --- */ + + + +static int +dissect_h450_6_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 255U, NULL, FALSE); @@ -2603,16 +3300,99 @@ dissect_h450_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } -static const per_sequence_t CallWaitingArg_sequence[] = { - { &hf_h450_nbOfAddWaitingCalls, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_INTEGER_0_255 }, - { &hf_h450_callWaitingArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_6_callWaitingArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, +}; + +static int +dissect_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); + + return offset; +} + + +static const per_sequence_t h450_6_CallWaitingArg_sequence[] = { + { &hf_h450_6_nbOfAddWaitingCalls, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_6_INTEGER_0_255 }, + { &hf_h450_6_callWaitingArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CallWaitingArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_6_CallWaitingArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CallWaitingArg, CallWaitingArg_sequence); + ett_h450_6_CallWaitingArg, h450_6_CallWaitingArg_sequence); + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_h450_6_CallWaitingArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_6_CallWaitingArg(tvb, offset, &asn1_ctx, tree, hf_h450_6_h450_6_CallWaitingArg_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + +static const value_string h450_7_BasicService_vals[] = { + { 0, "allServices" }, + { 1, "speech" }, + { 2, "unrestrictedDigitalInformation" }, + { 3, "audio3100Hz" }, + { 32, "telephony" }, + { 33, "teletex" }, + { 34, "telefaxGroup4Class1" }, + { 35, "videotexSyntaxBased" }, + { 36, "videotelephony" }, + { 37, "telefaxGroup2-3" }, + { 38, "reservedNotUsed1" }, + { 39, "reservedNotUsed2" }, + { 40, "reservedNotUsed3" }, + { 41, "reservedNotUsed4" }, + { 42, "reservedNotUsed5" }, + { 51, "email" }, + { 52, "video" }, + { 53, "fileTransfer" }, + { 54, "shortMessageService" }, + { 55, "speechAndVideo" }, + { 56, "speechAndFax" }, + { 57, "speechAndEmail" }, + { 58, "videoAndFax" }, + { 59, "videoAndEmail" }, + { 60, "faxAndEmail" }, + { 61, "speechVideoAndFax" }, + { 62, "speechVideoAndEmail" }, + { 63, "speechFaxAndEmail" }, + { 64, "videoFaxAndEmail" }, + { 65, "speechVideoFaxAndEmail" }, + { 66, "multimediaUnknown" }, + { 67, "serviceUnknown" }, + { 68, "futureReserve1" }, + { 69, "futureReserve2" }, + { 70, "futureReserve3" }, + { 71, "futureReserve4" }, + { 72, "futureReserve5" }, + { 73, "futureReserve6" }, + { 74, "futureReserve7" }, + { 75, "futureReserve8" }, + { 0, NULL } +}; + +static guint32 h450_7_BasicService_value_map[40+0] = {0, 1, 2, 3, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75}; + +static int +dissect_h450_7_BasicService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 40, NULL, FALSE, 0, h450_7_BasicService_value_map); return offset; } @@ -2620,7 +3400,7 @@ dissect_h450_CallWaitingArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int -dissect_h450_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, NULL, FALSE); @@ -2630,7 +3410,7 @@ dissect_h450_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int -dissect_h450_NumericString_SIZE_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_NumericString_SIZE_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index, 1, 10); @@ -2638,24 +3418,24 @@ dissect_h450_NumericString_SIZE_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const value_string h450_MsgCentreId_vals[] = { +static const value_string h450_7_MsgCentreId_vals[] = { { 0, "integer" }, - { 1, "mwipartyNumber" }, + { 1, "partyNumber" }, { 2, "numericString" }, { 0, NULL } }; -static const per_choice_t MsgCentreId_choice[] = { - { 0, &hf_h450_integer , ASN1_NO_EXTENSIONS , dissect_h450_INTEGER_0_65535 }, - { 1, &hf_h450_mwipartyNumber , ASN1_NO_EXTENSIONS , dissect_h450_EndpointAddress }, - { 2, &hf_h450_numericString , ASN1_NO_EXTENSIONS , dissect_h450_NumericString_SIZE_1_10 }, +static const per_choice_t h450_7_MsgCentreId_choice[] = { + { 0, &hf_h450_7_integer , ASN1_NO_EXTENSIONS , dissect_h450_7_INTEGER_0_65535 }, + { 1, &hf_h450_7_partyNumber , ASN1_NO_EXTENSIONS , dissect_h450_EndpointAddress }, + { 2, &hf_h450_7_numericString, ASN1_NO_EXTENSIONS , dissect_h450_7_NumericString_SIZE_1_10 }, { 0, NULL, 0, NULL } }; static int -dissect_h450_MsgCentreId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_MsgCentreId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_MsgCentreId, MsgCentreId_choice, + ett_h450_7_MsgCentreId, h450_7_MsgCentreId_choice, NULL); return offset; @@ -2664,7 +3444,7 @@ dissect_h450_MsgCentreId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int -dissect_h450_NbOfMessages(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_NbOfMessages(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, NULL, FALSE); @@ -2674,7 +3454,7 @@ dissect_h450_NbOfMessages(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int -dissect_h450_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index, 12, 19); @@ -2684,7 +3464,7 @@ dissect_h450_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int -dissect_h450_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 9U, NULL, FALSE); @@ -2692,155 +3472,205 @@ dissect_h450_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ } -static const per_sequence_t ExtensionArg_sequence_of[1] = { - { &hf_h450_ExtensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_MixedExtension }, +static const per_sequence_t h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_7_mWIActivateArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_ExtensionArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_ExtensionArg, ExtensionArg_sequence_of, + ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, 0, 255); return offset; } -static const per_sequence_t MWIActivateArg_sequence[] = { - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_MsgCentreId }, - { &hf_h450_nbOfMessages , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NbOfMessages }, - { &hf_h450_originatingNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_TimeStamp }, - { &hf_h450_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_INTEGER_0_9 }, - { &hf_h450_mWIActivateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ExtensionArg }, +static const per_sequence_t h450_7_MWIActivateArg_sequence[] = { + { &hf_h450_7_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService }, + { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId }, + { &hf_h450_7_nbOfMessages , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_NbOfMessages }, + { &hf_h450_7_originatingNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_7_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_TimeStamp }, + { &hf_h450_7_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_INTEGER_0_9 }, + { &hf_h450_7_mWIActivateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_MWIActivateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_MWIActivateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_MWIActivateArg, MWIActivateArg_sequence); + ett_h450_7_MWIActivateArg, h450_7_MWIActivateArg_sequence); return offset; } +static const per_sequence_t h450_7_DummyRes_sequence_of[1] = { + { &hf_h450_7_DummyRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, +}; static int -dissect_h450_MwiActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_MWIActivateArg(tvb, offset, actx, tree, hf_index); +dissect_h450_7_DummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_7_DummyRes, h450_7_DummyRes_sequence_of, + 0, 255); return offset; } -static const per_sequence_t MWIDeactivateArg_sequence[] = { - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_MsgCentreId }, - { &hf_h450_callbackReq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BOOLEAN }, - { &hf_h450_mWIDeactivateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ExtensionArg }, - { NULL, 0, 0, NULL } -}; static int -dissect_h450_MWIDeactivateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_MWIDeactivateArg, MWIDeactivateArg_sequence); +dissect_h450_7_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); return offset; } +static const per_sequence_t h450_7_MWIDeactivateArg_sequence[] = { + { &hf_h450_7_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService }, + { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId }, + { &hf_h450_7_callbackReq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_BOOLEAN }, + { &hf_h450_7_mWIDeactivateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } +}; static int -dissect_h450_MwiDeactivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_MWIDeactivateArg(tvb, offset, actx, tree, hf_index); +dissect_h450_7_MWIDeactivateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_7_MWIDeactivateArg, h450_7_MWIDeactivateArg_sequence); return offset; } -static const per_sequence_t MWIInterrogateArg_sequence[] = { - { &hf_h450_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_MsgCentreId }, - { &hf_h450_callbackReq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BOOLEAN }, - { &hf_h450_mWIInterrogateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ExtensionArg }, +static const per_sequence_t h450_7_MWIInterrogateArg_sequence[] = { + { &hf_h450_7_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService }, + { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId }, + { &hf_h450_7_callbackReq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_BOOLEAN }, + { &hf_h450_7_mWIInterrogateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_MWIInterrogateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_MWIInterrogateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_MWIInterrogateArg, MWIInterrogateArg_sequence); + ett_h450_7_MWIInterrogateArg, h450_7_MWIInterrogateArg_sequence); return offset; } +static const per_sequence_t h450_7_MWIInterrogateResElt_sequence[] = { + { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService }, + { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId }, + { &hf_h450_7_nbOfMessages , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_NbOfMessages }, + { &hf_h450_7_originatingNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_7_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_TimeStamp }, + { &hf_h450_7_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_INTEGER_0_9 }, + { &hf_h450_7_mWIInterrogateResElt_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } +}; static int -dissect_h450_MwiInterrogate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_h450_MWIInterrogateArg(tvb, offset, actx, tree, hf_index); +dissect_h450_7_MWIInterrogateResElt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_7_MWIInterrogateResElt, h450_7_MWIInterrogateResElt_sequence); return offset; } -static const per_sequence_t MwiDummyRes_sequence_of[1] = { - { &hf_h450_MwiDummyRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_MixedExtension }, +static const per_sequence_t h450_7_MWIInterrogateRes_sequence_of[1] = { + { &hf_h450_7_MWIInterrogateRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_7_MWIInterrogateResElt }, }; static int -dissect_h450_MwiDummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_7_MWIInterrogateRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_MwiDummyRes, MwiDummyRes_sequence_of, - 0, 255); + ett_h450_7_MWIInterrogateRes, h450_7_MWIInterrogateRes_sequence_of, + 1, 64); return offset; } -static const per_sequence_t MWIInterrogateResElt_sequence[] = { - { &hf_h450_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_MsgCentreId }, - { &hf_h450_nbOfMessages , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NbOfMessages }, - { &hf_h450_originatingNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_TimeStamp }, - { &hf_h450_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_INTEGER_0_9 }, - { &hf_h450_mWIInterrogateResElt_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_ExtensionArg }, - { NULL, 0, 0, NULL } +static const per_sequence_t h450_7_PAR_undefined_sequence_of[1] = { + { &hf_h450_7_PAR_undefined_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_MWIInterrogateResElt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_MWIInterrogateResElt, MWIInterrogateResElt_sequence); +dissect_h450_7_PAR_undefined(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_7_PAR_undefined, h450_7_PAR_undefined_sequence_of, + 0, 255); return offset; } +/*--- PDUs ---*/ -static const per_sequence_t MWIInterrogateRes_sequence_of[1] = { - { &hf_h450_MWIInterrogateRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_MWIInterrogateResElt }, -}; - -static int -dissect_h450_MWIInterrogateRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_h450_MWIInterrogateRes, MWIInterrogateRes_sequence_of, - 1, 64); - +static int dissect_h450_7_MWIActivateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_7_MWIActivateArg(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIActivateArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_7_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_7_DummyRes(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_DummyRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_7_MWIDeactivateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_7_MWIDeactivateArg(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIDeactivateArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_7_MWIInterrogateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_7_MWIInterrogateArg(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIInterrogateArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_7_MWIInterrogateRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_7_MWIInterrogateRes(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIInterrogateRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_7_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_7_PAR_undefined(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_PAR_undefined_PDU); + offset += 7; offset >>= 3; return offset; } +/* --- Module Name-Operations --- --- --- */ + + static int -dissect_h450_SimpleName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_SimpleName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 1, 50, NULL); @@ -2850,7 +3680,7 @@ dissect_h450_SimpleName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int -dissect_h450_ExtendedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_ExtendedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index, 1, 256); @@ -2858,1481 +3688,1347 @@ dissect_h450_ExtendedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const value_string h450_NamePresentationAllowed_vals[] = { +static const value_string h450_8_NamePresentationAllowed_vals[] = { { 0, "simpleName" }, { 1, "extendedName" }, { 0, NULL } }; -static const per_choice_t NamePresentationAllowed_choice[] = { - { 0, &hf_h450_simpleName , ASN1_EXTENSION_ROOT , dissect_h450_SimpleName }, - { 1, &hf_h450_extendedName , ASN1_EXTENSION_ROOT , dissect_h450_ExtendedName }, +static const per_choice_t h450_8_NamePresentationAllowed_choice[] = { + { 0, &hf_h450_8_simpleName , ASN1_EXTENSION_ROOT , dissect_h450_8_SimpleName }, + { 1, &hf_h450_8_extendedName , ASN1_EXTENSION_ROOT , dissect_h450_8_ExtendedName }, { 0, NULL, 0, NULL } }; static int -dissect_h450_NamePresentationAllowed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_NamePresentationAllowed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_NamePresentationAllowed, NamePresentationAllowed_choice, + ett_h450_8_NamePresentationAllowed, h450_8_NamePresentationAllowed_choice, NULL); return offset; } -static const value_string h450_NamePresentationRestricted_vals[] = { + +static int +dissect_h450_8_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_null(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const value_string h450_8_NamePresentationRestricted_vals[] = { { 0, "simpleName" }, { 1, "extendedName" }, { 2, "restrictedNull" }, { 0, NULL } }; -static const per_choice_t NamePresentationRestricted_choice[] = { - { 0, &hf_h450_simpleName , ASN1_EXTENSION_ROOT , dissect_h450_SimpleName }, - { 1, &hf_h450_extendedName , ASN1_EXTENSION_ROOT , dissect_h450_ExtendedName }, - { 2, &hf_h450_restrictedNull , ASN1_EXTENSION_ROOT , dissect_h450_NULL }, +static const per_choice_t h450_8_NamePresentationRestricted_choice[] = { + { 0, &hf_h450_8_simpleName , ASN1_EXTENSION_ROOT , dissect_h450_8_SimpleName }, + { 1, &hf_h450_8_extendedName , ASN1_EXTENSION_ROOT , dissect_h450_8_ExtendedName }, + { 2, &hf_h450_8_restrictedNull, ASN1_EXTENSION_ROOT , dissect_h450_8_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_h450_NamePresentationRestricted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_NamePresentationRestricted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_NamePresentationRestricted, NamePresentationRestricted_choice, + ett_h450_8_NamePresentationRestricted, h450_8_NamePresentationRestricted_choice, NULL); return offset; } -static const value_string h450_Name_vals[] = { +static const value_string h450_8_Name_vals[] = { { 0, "namePresentationAllowed" }, { 1, "namePresentationRestricted" }, { 2, "nameNotAvailable" }, { 0, NULL } }; -static const per_choice_t Name_choice[] = { - { 0, &hf_h450_namePresentationAllowed, ASN1_EXTENSION_ROOT , dissect_h450_NamePresentationAllowed }, - { 1, &hf_h450_namePresentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_NamePresentationRestricted }, - { 2, &hf_h450_nameNotAvailable, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, +static const per_choice_t h450_8_Name_choice[] = { + { 0, &hf_h450_8_namePresentationAllowed, ASN1_EXTENSION_ROOT , dissect_h450_8_NamePresentationAllowed }, + { 1, &hf_h450_8_namePresentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_8_NamePresentationRestricted }, + { 2, &hf_h450_8_nameNotAvailable, ASN1_EXTENSION_ROOT , dissect_h450_8_NULL }, { 0, NULL, 0, NULL } }; static int -dissect_h450_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_Name, Name_choice, + ett_h450_8_Name, h450_8_Name_choice, NULL); return offset; } -static const per_sequence_t NameArg_sequence[] = { - { &hf_h450_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_Name }, - { &hf_h450_nameArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } +static const per_sequence_t h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_8_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_NameArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_NameArg, NameArg_sequence); +dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); return offset; } -static const per_sequence_t CcRequestArg_sequence[] = { - { &hf_h450_numberA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_numberB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, - { &hf_h450_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, - { &hf_h450_service , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BasicService }, - { &hf_h450_can_retain_service, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BOOLEAN }, - { &hf_h450_retain_sig_connection, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BOOLEAN }, - { &hf_h450_ccRequestArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_8_ARG_callingName_sequence[] = { + { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name }, + { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CcRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_ARG_callingName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CcRequestArg, CcRequestArg_sequence); + ett_h450_8_ARG_callingName, h450_8_ARG_callingName_sequence); return offset; } -static const per_sequence_t CcRequestRes_sequence[] = { - { &hf_h450_retain_service , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_BOOLEAN }, - { &hf_h450_ccRequestRes_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_8_ARG_alertingName_sequence[] = { + { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name }, + { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CcRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_ARG_alertingName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CcRequestRes, CcRequestRes_sequence); + ett_h450_8_ARG_alertingName, h450_8_ARG_alertingName_sequence); return offset; } -static const per_sequence_t CcShortArg_sequence[] = { - { &hf_h450_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, - { &hf_h450_ccShortArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_8_ARG_connectedName_sequence[] = { + { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name }, + { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CcShortArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_ARG_connectedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CcShortArg, CcShortArg_sequence); + ett_h450_8_ARG_connectedName, h450_8_ARG_connectedName_sequence); return offset; } -static const per_sequence_t CcLongArg_sequence[] = { - { &hf_h450_numberA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_numberB , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, - { &hf_h450_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, - { &hf_h450_service , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BasicService }, - { &hf_h450_ccLongArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_8_ARG_busyName_sequence[] = { + { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name }, + { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CcLongArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_8_ARG_busyName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CcLongArg, CcLongArg_sequence); + ett_h450_8_ARG_busyName, h450_8_ARG_busyName_sequence); return offset; } +/*--- PDUs ---*/ + +static int dissect_h450_8_ARG_callingName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_8_ARG_callingName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_callingName_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_8_ARG_alertingName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_8_ARG_alertingName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_alertingName_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_8_ARG_connectedName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_8_ARG_connectedName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_connectedName_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_8_ARG_busyName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_8_ARG_busyName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_busyName_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Call-Completion-Operations --- --- --- */ -static const value_string h450_CcArg_vals[] = { - { 0, "shortArg" }, - { 1, "longArg" }, - { 0, NULL } -}; -static const per_choice_t CcArg_choice[] = { - { 0, &hf_h450_shortArg , ASN1_EXTENSION_ROOT , dissect_h450_CcShortArg }, - { 1, &hf_h450_longArg , ASN1_EXTENSION_ROOT , dissect_h450_CcLongArg }, - { 0, NULL, 0, NULL } -}; static int -dissect_h450_CcArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CcArg, CcArg_choice, - NULL); +dissect_h450_9_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); return offset; } -static const per_sequence_t CoReqOptArg_sequence[] = { - { &hf_h450_coReqOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } +static const per_sequence_t h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_9_ccRequestArg_extension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_CoReqOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CoReqOptArg, CoReqOptArg_sequence); +dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); return offset; } -static const per_sequence_t RUAlertOptArg_sequence[] = { - { &hf_h450_rUAlertOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_9_CcRequestArg_sequence[] = { + { &hf_h450_9_numberA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_9_numberB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress }, + { &hf_h450_9_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, + { &hf_h450_9_service , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService }, + { &hf_h450_9_can_retain_service, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_9_BOOLEAN }, + { &hf_h450_9_retain_sig_connection, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_BOOLEAN }, + { &hf_h450_9_ccRequestArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_RUAlertOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_9_CcRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_RUAlertOptArg, RUAlertOptArg_sequence); + ett_h450_9_CcRequestArg, h450_9_CcRequestArg_sequence); return offset; } -static const per_sequence_t CfbOvrOptArg_sequence[] = { - { &hf_h450_cfbOvrOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_9_CcRequestRes_sequence[] = { + { &hf_h450_9_retain_service, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_9_BOOLEAN }, + { &hf_h450_9_ccRequestRes_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CfbOvrOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_9_CcRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CfbOvrOptArg, CfbOvrOptArg_sequence); + ett_h450_9_CcRequestRes, h450_9_CcRequestRes_sequence); return offset; } -static const value_string h450_CICapabilityLevel_vals[] = { - { 1, "intrusionLowCap" }, - { 2, "intrusionMediumCap" }, - { 3, "intrusionHighCap" }, - { 0, NULL } +static const per_sequence_t h450_9_CcShortArg_sequence[] = { + { &hf_h450_9_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, + { &hf_h450_9_ccShortArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } }; - static int -dissect_h450_CICapabilityLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, 3U, NULL, FALSE); +dissect_h450_9_CcShortArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_9_CcShortArg, h450_9_CcShortArg_sequence); return offset; } -static const per_sequence_t CIRequestArg_sequence[] = { - { &hf_h450_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CICapabilityLevel }, - { &hf_h450_cIRequestArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_9_CcLongArg_sequence[] = { + { &hf_h450_9_numberA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_9_numberB , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress }, + { &hf_h450_9_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, + { &hf_h450_9_service , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_BasicService }, + { &hf_h450_9_ccLongArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CIRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_9_CcLongArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIRequestArg, CIRequestArg_sequence); + ett_h450_9_CcLongArg, h450_9_CcLongArg_sequence); return offset; } -static const value_string h450_CIStatusInformation_vals[] = { - { 0, "callIntrusionImpending" }, - { 1, "callIntruded" }, - { 2, "callIsolated" }, - { 3, "callForceReleased" }, - { 4, "callIntrusionComplete" }, - { 5, "callIntrusionEnd" }, +static const value_string h450_9_CcArg_vals[] = { + { 0, "shortArg" }, + { 1, "longArg" }, { 0, NULL } }; -static const per_choice_t CIStatusInformation_choice[] = { - { 0, &hf_h450_callIntrusionImpending, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, - { 1, &hf_h450_callIntruded , ASN1_EXTENSION_ROOT , dissect_h450_NULL }, - { 2, &hf_h450_callIsolated , ASN1_EXTENSION_ROOT , dissect_h450_NULL }, - { 3, &hf_h450_callForceReleased, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, - { 4, &hf_h450_callIntrusionComplete, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, - { 5, &hf_h450_callIntrusionEnd, ASN1_EXTENSION_ROOT , dissect_h450_NULL }, +static const per_choice_t h450_9_CcArg_choice[] = { + { 0, &hf_h450_9_shortArg , ASN1_EXTENSION_ROOT , dissect_h450_9_CcShortArg }, + { 1, &hf_h450_9_longArg , ASN1_EXTENSION_ROOT , dissect_h450_9_CcLongArg }, { 0, NULL, 0, NULL } }; static int -dissect_h450_CIStatusInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_9_CcArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_CIStatusInformation, CIStatusInformation_choice, + ett_h450_9_CcArg, h450_9_CcArg_choice, NULL); return offset; } +/*--- PDUs ---*/ -static const per_sequence_t CIRequestRes_sequence[] = { - { &hf_h450_ciStatusInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CIStatusInformation }, - { &hf_h450_cIRequestRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } +static int dissect_h450_9_CcRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_9_CcRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcRequestArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_9_CcRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_9_CcRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcRequestRes_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_9_CcArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_9_CcArg(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_9_CcShortArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_9_CcShortArg(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcShortArg_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Call-Offer-Operations --- --- --- */ + + +static const per_sequence_t h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_10_coReqOptArg_extension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_CIRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIRequestRes, CIRequestRes_sequence); +dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); return offset; } -static const per_sequence_t CIGetCIPLOptArg_sequence[] = { - { &hf_h450_cIGetCIPLOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_10_CoReqOptArg_sequence[] = { + { &hf_h450_10_coReqOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CIGetCIPLOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_10_CoReqOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIGetCIPLOptArg, CIGetCIPLOptArg_sequence); + ett_h450_10_CoReqOptArg, h450_10_CoReqOptArg_sequence); return offset; } -static const value_string h450_CIProtectionLevel_vals[] = { - { 0, "lowProtection" }, - { 1, "mediumProtection" }, - { 2, "highProtection" }, - { 3, "fullProtection" }, - { 0, NULL } +static const per_sequence_t h450_10_RUAlertOptArg_sequence[] = { + { &hf_h450_10_rUAlertOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } }; - static int -dissect_h450_CIProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 3U, NULL, FALSE); +dissect_h450_10_RUAlertOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_10_RUAlertOptArg, h450_10_RUAlertOptArg_sequence); return offset; } -static const per_sequence_t CIGetCIPLRes_sequence[] = { - { &hf_h450_ciProtectionLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CIProtectionLevel }, - { &hf_h450_silentMonitoringPermitted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_cIGetCIPLRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_10_CfbOvrOptArg_sequence[] = { + { &hf_h450_10_cfbOvrOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CIGetCIPLRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_10_CfbOvrOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIGetCIPLRes, CIGetCIPLRes_sequence); + ett_h450_10_CfbOvrOptArg, h450_10_CfbOvrOptArg_sequence); return offset; } +/*--- PDUs ---*/ -static const per_sequence_t CIIsOptArg_sequence[] = { - { &hf_h450_cIIsOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } +static int dissect_h450_10_CoReqOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_10_CoReqOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_10_h450_10_CoReqOptArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_10_RUAlertOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_10_RUAlertOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_10_h450_10_RUAlertOptArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_10_CfbOvrOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_10_CfbOvrOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_10_h450_10_CfbOvrOptArg_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + +static const value_string h450_11_CICapabilityLevel_vals[] = { + { 1, "intrusionLowCap" }, + { 2, "intrusionMediumCap" }, + { 3, "intrusionHighCap" }, + { 0, NULL } }; + static int -dissect_h450_CIIsOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIIsOptArg, CIIsOptArg_sequence); +dissect_h450_11_CICapabilityLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 3U, NULL, FALSE); return offset; } -static const per_sequence_t CIIsOptRes_sequence[] = { - { &hf_h450_cIIsOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } +static const per_sequence_t h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_11_cIRequestArg_argumentExtension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; static int -dissect_h450_CIIsOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIIsOptRes, CIIsOptRes_sequence); +dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); return offset; } -static const per_sequence_t CIFrcRelArg_sequence[] = { - { &hf_h450_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CICapabilityLevel }, - { &hf_h450_cIFrcRelArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CIRequestArg_sequence[] = { + { &hf_h450_11_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CICapabilityLevel }, + { &hf_h450_11_cIRequestArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CIFrcRelArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIFrcRelArg, CIFrcRelArg_sequence); + ett_h450_11_CIRequestArg, h450_11_CIRequestArg_sequence); return offset; } -static const per_sequence_t CIFrcRelOptRes_sequence[] = { - { &hf_h450_cIFrcRelOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } + +static int +dissect_h450_11_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_null(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const value_string h450_11_CIStatusInformation_vals[] = { + { 0, "callIntrusionImpending" }, + { 1, "callIntruded" }, + { 2, "callIsolated" }, + { 3, "callForceReleased" }, + { 4, "callIntrusionComplete" }, + { 5, "callIntrusionEnd" }, + { 0, NULL } +}; + +static const per_choice_t h450_11_CIStatusInformation_choice[] = { + { 0, &hf_h450_11_callIntrusionImpending, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL }, + { 1, &hf_h450_11_callIntruded, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL }, + { 2, &hf_h450_11_callIsolated, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL }, + { 3, &hf_h450_11_callForceReleased, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL }, + { 4, &hf_h450_11_callIntrusionComplete, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL }, + { 5, &hf_h450_11_callIntrusionEnd, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL }, + { 0, NULL, 0, NULL } }; static int -dissect_h450_CIFrcRelOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIFrcRelOptRes, CIFrcRelOptRes_sequence); +dissect_h450_11_CIStatusInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h450_11_CIStatusInformation, h450_11_CIStatusInformation_choice, + NULL); return offset; } -static const per_sequence_t CIWobOptArg_sequence[] = { - { &hf_h450_cIWobOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CIRequestRes_sequence[] = { + { &hf_h450_11_ciStatusInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CIStatusInformation }, + { &hf_h450_11_cIRequestRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CIWobOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIWobOptArg, CIWobOptArg_sequence); + ett_h450_11_CIRequestRes, h450_11_CIRequestRes_sequence); return offset; } -static const per_sequence_t CIWobOptRes_sequence[] = { - { &hf_h450_cIWobOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CIGetCIPLOptArg_sequence[] = { + { &hf_h450_11_cIGetCIPLOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CIWobOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIGetCIPLOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CIWobOptRes, CIWobOptRes_sequence); + ett_h450_11_CIGetCIPLOptArg, h450_11_CIGetCIPLOptArg_sequence); return offset; } -static const per_sequence_t CISilentArg_sequence[] = { - { &hf_h450_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CICapabilityLevel }, - { &hf_h450_specificCall , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, - { &hf_h450_cISilentArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, - { NULL, 0, 0, NULL } +static const value_string h450_11_CIProtectionLevel_vals[] = { + { 0, "lowProtection" }, + { 1, "mediumProtection" }, + { 2, "highProtection" }, + { 3, "fullProtection" }, + { 0, NULL } }; + static int -dissect_h450_CISilentArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CISilentArg, CISilentArg_sequence); +dissect_h450_11_CIProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3U, NULL, FALSE); return offset; } -static const per_sequence_t CISilentOptRes_sequence[] = { - { &hf_h450_cISilentOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CIGetCIPLRes_sequence[] = { + { &hf_h450_11_ciProtectionLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CIProtectionLevel }, + { &hf_h450_11_silentMonitoringPermitted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_NULL }, + { &hf_h450_11_cIGetCIPLRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CISilentOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIGetCIPLRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CISilentOptRes, CISilentOptRes_sequence); + ett_h450_11_CIGetCIPLRes, h450_11_CIGetCIPLRes_sequence); return offset; } -static const per_sequence_t CINotificationArg_sequence[] = { - { &hf_h450_ciStatusInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_CIStatusInformation }, - { &hf_h450_cINotificationArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CIIsOptArg_sequence[] = { + { &hf_h450_11_cIIsOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CINotificationArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIIsOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CINotificationArg, CINotificationArg_sequence); + ett_h450_11_CIIsOptArg, h450_11_CIIsOptArg_sequence); return offset; } -static const per_sequence_t FeatureList_sequence[] = { - { &hf_h450_ssCFreRoutingSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCTreRoutingSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCCBSPossible , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCCNRPossible , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCOSupported , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCIForcedReleaseSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCIIsolationSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCIWaitOnBusySupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCISilentMonitoringSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCIConferenceSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCHFarHoldSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssMWICallbackSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCPCallParkSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, +static const per_sequence_t h450_11_CIIsOptRes_sequence[] = { + { &hf_h450_11_cIIsOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_FeatureList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIIsOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_FeatureList, FeatureList_sequence); + ett_h450_11_CIIsOptRes, h450_11_CIIsOptRes_sequence); return offset; } -static const value_string h450_PartyCategory_vals[] = { - { 0, "unknown" }, - { 1, "extension" }, - { 2, "attendant" }, - { 3, "emergExt" }, - { 0, NULL } +static const per_sequence_t h450_11_CIFrcRelArg_sequence[] = { + { &hf_h450_11_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CICapabilityLevel }, + { &hf_h450_11_cIFrcRelArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } }; - static int -dissect_h450_PartyCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 4, NULL, TRUE, 0, NULL); +dissect_h450_11_CIFrcRelArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_11_CIFrcRelArg, h450_11_CIFrcRelArg_sequence); return offset; } +static const per_sequence_t h450_11_CIFrcRelOptRes_sequence[] = { + { &hf_h450_11_cIFrcRelOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } +}; static int -dissect_h450_SSCIProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 3U, NULL, FALSE); +dissect_h450_11_CIFrcRelOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_11_CIFrcRelOptRes, h450_11_CIFrcRelOptRes_sequence); return offset; } -static const per_sequence_t FeatureValues_sequence[] = { - { &hf_h450_partyCategory , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_PartyCategory }, - { &hf_h450_ssCIprotectionLevel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SSCIProtectionLevel }, +static const per_sequence_t h450_11_CIWobOptArg_sequence[] = { + { &hf_h450_11_cIWobOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_FeatureValues(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIWobOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_FeatureValues, FeatureValues_sequence); + ett_h450_11_CIWobOptArg, h450_11_CIWobOptArg_sequence); return offset; } -static const per_sequence_t FeatureControl_sequence[] = { - { &hf_h450_ssCHDoNotHold , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCTDoNotTransfer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssMWICallbackCall, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, - { &hf_h450_ssCISilentMonitorPermitted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NULL }, +static const per_sequence_t h450_11_CIWobOptRes_sequence[] = { + { &hf_h450_11_cIWobOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_FeatureControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CIWobOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_FeatureControl, FeatureControl_sequence); + ett_h450_11_CIWobOptRes, h450_11_CIWobOptRes_sequence); return offset; } -static const per_sequence_t CmnArg_sequence[] = { - { &hf_h450_featureList , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_FeatureList }, - { &hf_h450_featureValues , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_FeatureValues }, - { &hf_h450_featureControl , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_FeatureControl }, - { &hf_h450_cmnArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CISilentArg_sequence[] = { + { &hf_h450_11_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CICapabilityLevel }, + { &hf_h450_11_specificCall, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier }, + { &hf_h450_11_cISilentArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CmnArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CISilentArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CmnArg, CmnArg_sequence); + ett_h450_11_CISilentArg, h450_11_CISilentArg_sequence); return offset; } -static const per_sequence_t CmnRequestArg_sequence[] = { - { &hf_h450_cmnRequestArg_extensionArg, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension }, +static const per_sequence_t h450_11_CISilentOptRes_sequence[] = { + { &hf_h450_11_cISilentOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, { NULL, 0, 0, NULL } }; static int -dissect_h450_CmnRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_h450_11_CISilentOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h450_CmnRequestArg, CmnRequestArg_sequence); + ett_h450_11_CISilentOptRes, h450_11_CISilentOptRes_sequence); return offset; } -static const value_string h450_Unspecified_vals[] = { - { 0, "extension" }, - { 1, "nonStandard" }, - { 0, NULL } -}; - -static const per_choice_t Unspecified_choice[] = { - { 0, &hf_h450_unspecified_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension }, - { 1, &hf_h450_nonStandard , ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter }, - { 0, NULL, 0, NULL } +static const per_sequence_t h450_11_CINotificationArg_sequence[] = { + { &hf_h450_11_ciStatusInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CIStatusInformation }, + { &hf_h450_11_cINotificationArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } }; static int -dissect_h450_Unspecified(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h450_Unspecified, Unspecified_choice, - NULL); +dissect_h450_11_CINotificationArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_11_CINotificationArg, h450_11_CINotificationArg_sequence); return offset; } /*--- PDUs ---*/ -static void dissect_CallTransferIdentify_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { - asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferIdentify(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferIdentify_PDU); -} -static void dissect_CallTransferAbandon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferAbandon(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferAbandon_PDU); + offset = dissect_h450_11_CIRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIRequestArg_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CallTransferInitiate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferInitiate(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferInitiate_PDU); + offset = dissect_h450_11_CIRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIRequestRes_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CallTransferSetup_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIGetCIPLOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferSetup(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferSetup_PDU); + offset = dissect_h450_11_CIGetCIPLOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIGetCIPLOptArg_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CallTransferUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIGetCIPLRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferUpdate(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferUpdate_PDU); + offset = dissect_h450_11_CIGetCIPLRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIGetCIPLRes_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_SubaddressTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIIsOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_SubaddressTransfer(tvb, 0, &asn1_ctx, tree, hf_h450_SubaddressTransfer_PDU); + offset = dissect_h450_11_CIIsOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIIsOptArg_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CallTransferComplete_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIIsOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferComplete(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferComplete_PDU); + offset = dissect_h450_11_CIIsOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIIsOptRes_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CallTransferActive_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIFrcRelArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallTransferActive(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferActive_PDU); + offset = dissect_h450_11_CIFrcRelArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIFrcRelArg_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_ActivateDiversionQArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIFrcRelOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_ActivateDiversionQArg(tvb, 0, &asn1_ctx, tree, hf_h450_ActivateDiversionQArg_PDU); + offset = dissect_h450_11_CIFrcRelOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIFrcRelOptRes_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_ActivateDiversionQRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIWobOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_ActivateDiversionQRes(tvb, 0, &asn1_ctx, tree, hf_h450_ActivateDiversionQRes_PDU); + offset = dissect_h450_11_CIWobOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIWobOptArg_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_DeactivateDiversionQRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CIWobOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_DeactivateDiversionQRes(tvb, 0, &asn1_ctx, tree, hf_h450_DeactivateDiversionQRes_PDU); + offset = dissect_h450_11_CIWobOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIWobOptRes_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_InterrogateDiversionQRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CISilentArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_InterrogateDiversionQRes(tvb, 0, &asn1_ctx, tree, hf_h450_InterrogateDiversionQRes_PDU); + offset = dissect_h450_11_CISilentArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CISilentArg_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CheckRestrictionRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CISilentOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CheckRestrictionRes(tvb, 0, &asn1_ctx, tree, hf_h450_CheckRestrictionRes_PDU); + offset = dissect_h450_11_CISilentOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CISilentOptRes_PDU); + offset += 7; offset >>= 3; + return offset; } -static void dissect_CallReroutingRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_h450_11_CINotificationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - dissect_h450_CallReroutingRes(tvb, 0, &asn1_ctx, tree, hf_h450_CallReroutingRes_PDU); + offset = dissect_h450_11_CINotificationArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CINotificationArg_PDU); + offset += 7; offset >>= 3; + return offset; } -/*--- End of included file: packet-h450-fn.c ---*/ -#line 309 "packet-h450-template.c" +/* --- Module Common-Information-Operations --- --- --- */ -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 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; +dissect_h450_12_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_null(tvb, offset, actx, tree, hf_index); + + return offset; } -static const value_string ReturnErrorProblem_vals[] = { - { 0, "unrecognizedInvocation"}, - { 1, "errorResponseUnexpected"}, - { 2, "unrecognizedError"}, - { 3, "unexpectedError"}, - { 4, "mistypedParameter"}, - { 0, NULL } +static const per_sequence_t h450_12_FeatureList_sequence[] = { + { &hf_h450_12_ssCFreRoutingSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCTreRoutingSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCCBSPossible, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCCNRPossible, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCOSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCIForcedReleaseSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCIIsolationSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCIWaitOnBusySupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCISilentMonitoringSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCIConferenceSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCHFarHoldSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssMWICallbackSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCPCallParkSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { NULL, 0, 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; +dissect_h450_12_FeatureList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_12_FeatureList, h450_12_FeatureList_sequence); + + return offset; } -static const value_string GeneralProblem_vals[] = { - { 0, "unrecognizedCompenent"}, - { 1, "mistypedCompenent"}, - { 2, "badlyStructuredCompenent"}, - { 0, NULL } + +static const value_string h450_12_PartyCategory_vals[] = { + { 0, "unknown" }, + { 1, "extension" }, + { 2, "attendant" }, + { 3, "emergExt" }, + { 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); - - if(tvb_length(result_tvb)){ - switch (localOpcode) { - case CallTransferIdentify: - dissect_h450_CTIdentifyRes(result_tvb, 0, actx, tree, hf_h4502_CTIdentifyRes); - break; - - 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; +dissect_h450_12_PartyCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, TRUE, 0, NULL); + + 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; +dissect_h450_12_SSCIProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3U, NULL, FALSE); + + 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 const per_sequence_t h450_12_FeatureValues_sequence[] = { + { &hf_h450_12_partyCategory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_PartyCategory }, + { &hf_h450_12_ssCIprotectionLevel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_SSCIProtectionLevel }, + { NULL, 0, 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; +dissect_h450_12_FeatureValues(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_12_FeatureValues, h450_12_FeatureValues_sequence); + + 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 const per_sequence_t h450_12_FeatureControl_sequence[] = { + { &hf_h450_12_ssCHDoNotHold, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCTDoNotTransfer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssMWICallbackCall, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { &hf_h450_12_ssCISilentMonitorPermitted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL }, + { 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; +dissect_h450_12_FeatureControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_12_FeatureControl, h450_12_FeatureControl_sequence); + + 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 const per_sequence_t h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = { + { &hf_h450_12_cmnArg_extension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension }, }; + 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; +dissect_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of, + 0, 255); + + return offset; } +static const per_sequence_t h450_12_CmnArg_sequence[] = { + { &hf_h450_12_featureList , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_FeatureList }, + { &hf_h450_12_featureValues, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_FeatureValues }, + { &hf_h450_12_featureControl, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_FeatureControl }, + { &hf_h450_12_cmnArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { NULL, 0, 0, NULL } +}; + 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; +dissect_h450_12_CmnArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_12_CmnArg, h450_12_CmnArg_sequence); + + return offset; } -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 const per_sequence_t h450_12_DummyArg_sequence[] = { + { &hf_h450_12_extensionArg, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension }, + { 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; +dissect_h450_12_DummyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h450_12_DummyArg, h450_12_DummyArg_sequence); + + return offset; } -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; +/*--- PDUs ---*/ + +static int dissect_h450_12_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_12_DummyArg(tvb, offset, &asn1_ctx, tree, hf_h450_12_h450_12_DummyArg_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_h450_12_CmnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_h450_12_CmnArg(tvb, offset, &asn1_ctx, tree, hf_h450_12_h450_12_CmnArg_PDU); + offset += 7; offset >>= 3; + return offset; } -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; + +/*--- End of included file: packet-h450-fn.c ---*/ +#line 80 "packet-h450-template.c" + +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[] = { + +/*--- Included file: packet-h450-table11.c ---*/ +#line 1 "packet-h450-table11.c" + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + +/* Unknown or empty loop list OPERATION */ + +/* --- Module Call-Transfer-Operations --- --- --- */ + + /* callTransferIdentify */ { 7, dissect_h450_2_DummyArg_PDU, dissect_h450_2_CTIdentifyRes_PDU }, + /* callTransferAbandon */ { 8, dissect_h450_2_DummyArg_PDU, NULL }, + /* callTransferInitiate */ { 9, dissect_h450_2_CTInitiateArg_PDU, dissect_h450_2_DummyRes_PDU }, + /* callTransferSetup */ { 10, dissect_h450_2_CTSetupArg_PDU, dissect_h450_2_DummyRes_PDU }, + /* callTransferUpdate */ { 13, dissect_h450_2_CTUpdateArg_PDU, NULL }, + /* subaddressTransfer */ { 14, dissect_h450_2_SubaddressTransferArg_PDU, NULL }, + /* callTransferComplete */ { 12, dissect_h450_2_CTCompleteArg_PDU, NULL }, + /* callTransferActive */ { 11, dissect_h450_2_CTActiveArg_PDU, NULL }, + +/* --- Module Call-Diversion-Operations --- --- --- */ + + /* activateDiversionQ */ { 15, dissect_h450_3_ARG_activateDiversionQ_PDU, dissect_h450_3_RES_activateDiversionQ_PDU }, + /* deactivateDiversionQ */ { 16, dissect_h450_3_ARG_deactivateDiversionQ_PDU, dissect_h450_3_RES_deactivateDiversionQ_PDU }, + /* interrogateDiversionQ */ { 17, dissect_h450_3_ARG_interrogateDiversionQ_PDU, dissect_h450_3_IntResultList_PDU }, + /* checkRestriction */ { 18, dissect_h450_3_ARG_checkRestriction_PDU, dissect_h450_3_RES_checkRestriction_PDU }, + /* callRerouting */ { 19, dissect_h450_3_ARG_callRerouting_PDU, dissect_h450_3_RES_callRerouting_PDU }, + /* divertingLegInformation1 */ { 20, dissect_h450_3_ARG_divertingLegInformation1_PDU, NULL }, + /* divertingLegInformation2 */ { 21, dissect_h450_3_ARG_divertingLegInformation2_PDU, NULL }, + /* divertingLegInformation3 */ { 22, dissect_h450_3_ARG_divertingLegInformation3_PDU, NULL }, + /* divertingLegInformation4 */ { 100, dissect_h450_3_ARG_divertingLegInformation4_PDU, NULL }, + /* cfnrDivertedLegFailed */ { 23, dissect_h450_3_ARG_cfnrDivertedLegFailed_PDU, NULL }, + +/* --- Module Call-Hold-Operations --- --- --- */ + + /* holdNotific */ { 101, dissect_h450_4_HoldNotificArg_PDU, NULL }, + /* retrieveNotific */ { 102, dissect_h450_4_RetrieveNotificArg_PDU, NULL }, + /* remoteHold */ { 103, dissect_h450_4_RemoteHoldArg_PDU, dissect_h450_4_RemoteHoldRes_PDU }, + /* remoteRetrieve */ { 104, dissect_h450_4_RemoteRetrieveArg_PDU, dissect_h450_4_RemoteRetrieveRes_PDU }, + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + /* cpRequest */ { 106, dissect_h450_5_CpRequestArg_PDU, dissect_h450_5_CpRequestRes_PDU }, + /* cpSetup */ { 107, dissect_h450_5_CpSetupArg_PDU, dissect_h450_5_CpSetupRes_PDU }, + /* groupIndicationOn */ { 108, dissect_h450_5_GroupIndicationOnArg_PDU, dissect_h450_5_GroupIndicationOnRes_PDU }, + /* groupIndicationOff */ { 109, dissect_h450_5_GroupIndicationOffArg_PDU, dissect_h450_5_GroupIndicationOffRes_PDU }, + /* pickrequ */ { 110, dissect_h450_5_PickrequArg_PDU, dissect_h450_5_PickrequRes_PDU }, + /* pickup */ { 111, dissect_h450_5_PickupArg_PDU, dissect_h450_5_PickupRes_PDU }, + /* pickExe */ { 112, dissect_h450_5_PickExeArg_PDU, dissect_h450_5_PickExeRes_PDU }, + /* cpNotify */ { 113, dissect_h450_5_CpNotifyArg_PDU, NULL }, + /* cpickupNotify */ { 114, dissect_h450_5_CpickupNotifyArg_PDU, NULL }, + +/* --- Module Call-Waiting-Operations --- --- --- */ + + /* callWaiting */ { 105, dissect_h450_6_CallWaitingArg_PDU, NULL }, + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + /* mwiActivate */ { 80, dissect_h450_7_MWIActivateArg_PDU, dissect_h450_7_DummyRes_PDU }, + /* mwiDeactivate */ { 81, dissect_h450_7_MWIDeactivateArg_PDU, dissect_h450_7_DummyRes_PDU }, + /* mwiInterrogate */ { 82, dissect_h450_7_MWIInterrogateArg_PDU, dissect_h450_7_MWIInterrogateRes_PDU }, + +/* --- Module Name-Operations --- --- --- */ + + /* callingName */ { 0, dissect_h450_8_ARG_callingName_PDU, NULL }, + /* alertingName */ { 1, dissect_h450_8_ARG_alertingName_PDU, NULL }, + /* connectedName */ { 2, dissect_h450_8_ARG_connectedName_PDU, NULL }, + /* busyName */ { 3, dissect_h450_8_ARG_busyName_PDU, NULL }, + +/* --- Module Call-Completion-Operations --- --- --- */ + + /* ccbsRequest */ { 40, dissect_h450_9_CcRequestArg_PDU, dissect_h450_9_CcRequestRes_PDU }, + /* ccnrRequest */ { 27, dissect_h450_9_CcRequestArg_PDU, dissect_h450_9_CcRequestRes_PDU }, + /* ccCancel */ { 28, dissect_h450_9_CcArg_PDU, NULL }, + /* ccExecPossible */ { 29, dissect_h450_9_CcArg_PDU, NULL }, + /* ccRingout */ { 31, dissect_h450_9_CcShortArg_PDU, NULL }, + /* ccSuspend */ { 32, dissect_h450_9_CcShortArg_PDU, NULL }, + /* ccResume */ { 33, dissect_h450_9_CcArg_PDU, NULL }, + +/* --- Module Call-Offer-Operations --- --- --- */ + + /* callOfferRequest */ { 34, dissect_h450_10_CoReqOptArg_PDU, NULL }, + /* remoteUserAlerting */ { 115, dissect_h450_10_RUAlertOptArg_PDU, NULL }, + /* cfbOverride */ { 49, dissect_h450_10_CfbOvrOptArg_PDU, NULL }, + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + /* callIntrusionRequest */ { 43, dissect_h450_11_CIRequestArg_PDU, dissect_h450_11_CIRequestRes_PDU }, + /* callIntrusionGetCIPL */ { 44, dissect_h450_11_CIGetCIPLOptArg_PDU, dissect_h450_11_CIGetCIPLRes_PDU }, + /* callIntrusionIsolate */ { 45, dissect_h450_11_CIIsOptArg_PDU, dissect_h450_11_CIIsOptRes_PDU }, + /* callIntrusionForcedRelease */ { 46, dissect_h450_11_CIFrcRelArg_PDU, dissect_h450_11_CIFrcRelOptRes_PDU }, + /* callIntrusionWOBRequest */ { 47, dissect_h450_11_CIWobOptArg_PDU, dissect_h450_11_CIWobOptRes_PDU }, + /* callIntrusionSilentMonitor */ { 116, dissect_h450_11_CISilentArg_PDU, dissect_h450_11_CISilentOptRes_PDU }, + /* callIntrusionNotification */ { 117, dissect_h450_11_CINotificationArg_PDU, NULL }, + +/* --- Module Common-Information-Operations --- --- --- */ + + /* cmnRequest */ { 84, dissect_h450_12_DummyArg_PDU, dissect_h450_12_CmnArg_PDU }, + /* cmnInform */ { 85, dissect_h450_12_CmnArg_PDU, NULL }, + +/*--- End of included file: packet-h450-table11.c ---*/ +#line 89 "packet-h450-template.c" +}; + +typedef struct _h450_err_t { + gint32 errcode; + new_dissector_t err_pdu; +} h450_err_t; + +static const h450_err_t h450_err_tab[] = { + +/*--- Included file: packet-h450-table21.c ---*/ +#line 1 "packet-h450-table21.c" + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + + /* userNotSubscribed */ { 0, NULL }, + /* rejectedByNetwork */ { 1, NULL }, + /* rejectedByUser */ { 2, NULL }, + /* notAvailable */ { 3, NULL }, + /* insufficientInformation */ { 5, NULL }, + /* invalidServedUserNumber */ { 6, NULL }, + /* invalidCallState */ { 7, NULL }, + /* basicServiceNotProvided */ { 8, NULL }, + /* notIncomingCall */ { 9, NULL }, + /* supplementaryServiceInteractionNotAllowed */ { 10, NULL }, + /* resourceUnavailable */ { 11, NULL }, + /* callFailure */ { 25, NULL }, + /* proceduralError */ { 43, NULL }, + +/* --- Module Call-Transfer-Operations --- --- --- */ + + /* unspecified */ { 1008, dissect_h450_2_PAR_unspecified_PDU }, + /* invalidReroutingNumber */ { 1004, NULL }, + /* unrecognizedCallIdentity */ { 1005, NULL }, + /* establishmentFailure */ { 1006, NULL }, + +/* --- Module Call-Diversion-Operations --- --- --- */ + + /* invalidDivertedNumber */ { 12, NULL }, + /* specialServiceNumber */ { 14, NULL }, + /* diversionToServedUserNumber */ { 15, NULL }, + /* numberOfDiversionsExceeded */ { 24, NULL }, + /* temporarilyUnavailable */ { 1000, NULL }, + /* notAuthorized */ { 1007, NULL }, + /* unspecified */ { 1008, dissect_h450_3_PAR_unspecified_PDU }, + +/* --- Module Call-Hold-Operations --- --- --- */ + + /* undefined */ { 2002, dissect_h450_4_PAR_undefined_PDU }, + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + /* callPickupIdInvalid */ { 2000, NULL }, + /* callAlreadyPickedUp */ { 2001, NULL }, + /* undefined */ { 2002, dissect_h450_5_PAR_undefined_PDU }, + +/* --- Module Call-Waiting-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + /* undefined */ { 2002, dissect_h450_7_PAR_undefined_PDU }, + /* invalidMsgCentreId */ { 1018, NULL }, + /* notActivated */ { 31, NULL }, + +/* --- Module Name-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/* --- Module Call-Completion-Operations --- --- --- */ + + /* shortTermRejection */ { 1010, NULL }, + /* longTermRejection */ { 1011, NULL }, + /* remoteUserBusyAgain */ { 1012, NULL }, + /* failureToMatch */ { 1013, NULL }, + +/* --- Module Call-Offer-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + /* notBusy */ { 1009, NULL }, + /* temporarilyUnavailable */ { 1000, NULL }, + /* notAuthorized */ { 1007, NULL }, + +/* --- Module Common-Information-Operations --- --- --- */ + +/* Unknown or empty loop list ERROR */ + +/*--- End of included file: packet-h450-table21.c ---*/ +#line 98 "packet-h450-template.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 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; -} - -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; +static const h450_err_t *get_err(gint32 errcode) { + 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_err_tab) - 1; i >= 0; i--) + if (h450_err_tab[i].errcode == errcode) + return &h450_err_tab[i]; + return NULL; } -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; +/*--- 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; - 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; + 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); } - 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; - - /* 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; - } + 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); + } + + 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); } - 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; + 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); + } + + return offset; +} + +/*--- 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 }}, /*--- Included file: packet-h450-hfarr.c ---*/ #line 1 "packet-h450-hfarr.c" - { &hf_h450_CallTransferIdentify_PDU, - { "CallTransferIdentify", "h450.CallTransferIdentify", - FT_UINT32, BASE_DEC, VALS(h450_DummyArg_vals), 0, - "h450.CallTransferIdentify", HFILL }}, - { &hf_h450_CallTransferAbandon_PDU, - { "CallTransferAbandon", "h450.CallTransferAbandon", - FT_UINT32, BASE_DEC, VALS(h450_DummyArg_vals), 0, - "h450.CallTransferAbandon", HFILL }}, - { &hf_h450_CallTransferInitiate_PDU, - { "CallTransferInitiate", "h450.CallTransferInitiate", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CallTransferInitiate", HFILL }}, - { &hf_h450_CallTransferSetup_PDU, - { "CallTransferSetup", "h450.CallTransferSetup", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CallTransferSetup", HFILL }}, - { &hf_h450_CallTransferUpdate_PDU, - { "CallTransferUpdate", "h450.CallTransferUpdate", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CallTransferUpdate", HFILL }}, - { &hf_h450_SubaddressTransfer_PDU, - { "SubaddressTransfer", "h450.SubaddressTransfer", - FT_NONE, BASE_NONE, NULL, 0, - "h450.SubaddressTransfer", HFILL }}, - { &hf_h450_CallTransferComplete_PDU, - { "CallTransferComplete", "h450.CallTransferComplete", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CallTransferComplete", HFILL }}, - { &hf_h450_CallTransferActive_PDU, - { "CallTransferActive", "h450.CallTransferActive", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CallTransferActive", HFILL }}, - { &hf_h450_ActivateDiversionQArg_PDU, - { "ActivateDiversionQArg", "h450.ActivateDiversionQArg", - FT_NONE, BASE_NONE, NULL, 0, - "h450.ActivateDiversionQArg", HFILL }}, - { &hf_h450_ActivateDiversionQRes_PDU, - { "ActivateDiversionQRes", "h450.ActivateDiversionQRes", - FT_UINT32, BASE_DEC, VALS(h450_ActivateDiversionQRes_vals), 0, - "h450.ActivateDiversionQRes", HFILL }}, - { &hf_h450_DeactivateDiversionQRes_PDU, - { "DeactivateDiversionQRes", "h450.DeactivateDiversionQRes", - FT_UINT32, BASE_DEC, VALS(h450_DeactivateDiversionQRes_vals), 0, - "h450.DeactivateDiversionQRes", HFILL }}, - { &hf_h450_InterrogateDiversionQRes_PDU, - { "InterrogateDiversionQRes", "h450.InterrogateDiversionQRes", - FT_UINT32, BASE_DEC, NULL, 0, - "h450.InterrogateDiversionQRes", HFILL }}, - { &hf_h450_CheckRestrictionRes_PDU, - { "CheckRestrictionRes", "h450.CheckRestrictionRes", - FT_UINT32, BASE_DEC, VALS(h450_CheckRestrictionRes_vals), 0, - "h450.CheckRestrictionRes", HFILL }}, - { &hf_h450_CallReroutingRes_PDU, - { "CallReroutingRes", "h450.CallReroutingRes", - FT_UINT32, BASE_DEC, VALS(h450_CallReroutingRes_vals), 0, - "h450.CallReroutingRes", HFILL }}, + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + + { &hf_h450_h450_H4501SupplementaryService_PDU, + { "H4501SupplementaryService", "h450.H4501SupplementaryService", + FT_NONE, BASE_NONE, NULL, 0, + "h450.H4501SupplementaryService", HFILL }}, { &hf_h450_networkFacilityExtension, { "networkFacilityExtension", "h450.networkFacilityExtension", FT_NONE, BASE_NONE, NULL, 0, @@ -4384,11 +5080,11 @@ void proto_register_h450(void) { { &hf_h450_rosApdus, { "rosApdus", "h450.rosApdus", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_OF_ROS", HFILL }}, + "h450.SEQUENCE_SIZE_1_MAX_OF_ROS", HFILL }}, { &hf_h450_rosApdus_item, { "Item", "h450.rosApdus_item", - FT_NONE, BASE_NONE, NULL, 0, - "ros.ROS", HFILL }}, + FT_UINT32, BASE_DEC, VALS(h450_ros_ROS_vals), 0, + "h450.T_rosApdus_item", HFILL }}, { &hf_h450_addressScreened_presentationAllowedAddress, { "presentationAllowedAddress", "h450.presentationAllowedAddress", FT_NONE, BASE_NONE, NULL, 0, @@ -4485,921 +5181,1346 @@ void proto_register_h450(void) { { "oddCountIndicator", "h450.oddCountIndicator", FT_BOOLEAN, 8, NULL, 0, "h450.BOOLEAN", HFILL }}, - { &hf_h450_extensionSeq, - { "extensionSeq", "h450.extensionSeq", + { &hf_h450_extensionId, + { "extensionId", "h450.extensionId", + FT_OID, BASE_NONE, NULL, 0, + "h450.OBJECT_IDENTIFIER", HFILL }}, + { &hf_h450_extensionArgument, + { "extensionArgument", "h450.extensionArgument", + FT_NONE, BASE_NONE, NULL, 0, + "h450.T_extensionArgument", HFILL }}, + +/* --- Module Call-Transfer-Operations --- --- --- */ + + { &hf_h450_2_h450_2_DummyArg_PDU, + { "DummyArg", "h450.2.DummyArg", + FT_UINT32, BASE_DEC, VALS(h450_2_DummyArg_vals), 0, + "h450_2.DummyArg", HFILL }}, + { &hf_h450_2_h450_2_CTIdentifyRes_PDU, + { "CTIdentifyRes", "h450.2.CTIdentifyRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.CTIdentifyRes", HFILL }}, + { &hf_h450_2_h450_2_CTInitiateArg_PDU, + { "CTInitiateArg", "h450.2.CTInitiateArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.CTInitiateArg", HFILL }}, + { &hf_h450_2_h450_2_DummyRes_PDU, + { "DummyRes", "h450.2.DummyRes", + FT_UINT32, BASE_DEC, VALS(h450_2_DummyRes_vals), 0, + "h450_2.DummyRes", HFILL }}, + { &hf_h450_2_h450_2_CTSetupArg_PDU, + { "CTSetupArg", "h450.2.CTSetupArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.CTSetupArg", HFILL }}, + { &hf_h450_2_h450_2_CTUpdateArg_PDU, + { "CTUpdateArg", "h450.2.CTUpdateArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.CTUpdateArg", HFILL }}, + { &hf_h450_2_h450_2_SubaddressTransferArg_PDU, + { "SubaddressTransferArg", "h450.2.SubaddressTransferArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.SubaddressTransferArg", HFILL }}, + { &hf_h450_2_h450_2_CTCompleteArg_PDU, + { "CTCompleteArg", "h450.2.CTCompleteArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.CTCompleteArg", HFILL }}, + { &hf_h450_2_h450_2_CTActiveArg_PDU, + { "CTActiveArg", "h450.2.CTActiveArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_2.CTActiveArg", HFILL }}, + { &hf_h450_2_h450_2_PAR_unspecified_PDU, + { "PAR-unspecified", "h450.2.PAR_unspecified", + FT_UINT32, BASE_DEC, VALS(h450_2_PAR_unspecified_vals), 0, + "h450_2.PAR_unspecified", HFILL }}, + { &hf_h450_2_extensionSeq, + { "extensionSeq", "h450.2.extensionSeq", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ExtensionSeq", HFILL }}, - { &hf_h450_nonStandardData, - { "nonStandardData", "h450.nonStandardData", + "h450_2.ExtensionSeq", HFILL }}, + { &hf_h450_2_nonStandardData, + { "nonStandardData", "h450.2.nonStandardData", FT_NONE, BASE_NONE, NULL, 0, "h225.NonStandardParameter", HFILL }}, - { &hf_h450_callIdentity, - { "callIdentity", "h450.callIdentity", + { &hf_h450_2_callIdentity, + { "callIdentity", "h450.2.callIdentity", FT_STRING, BASE_NONE, NULL, 0, - "h450.CallIdentity", HFILL }}, - { &hf_h450_reroutingNumber, - { "reroutingNumber", "h450.reroutingNumber", + "h450_2.CallIdentity", HFILL }}, + { &hf_h450_2_reroutingNumber, + { "reroutingNumber", "h450.2.reroutingNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_cTInitiateArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", - FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0, - "h450.ArgumentExtension", HFILL }}, - { &hf_h450_transferringNumber, - { "transferringNumber", "h450.transferringNumber", + { &hf_h450_2_cTInitiateArg_argumentExtension, + { "argumentExtension", "h450.2.argumentExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_cTInitiateArg_argumentExtension_vals), 0, + "h450_2.T_cTInitiateArg_argumentExtension", HFILL }}, + { &hf_h450_2_transferringNumber, + { "transferringNumber", "h450.2.transferringNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_cTSetupArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", - FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0, - "h450.ArgumentExtension", HFILL }}, - { &hf_h450_resultExtension, - { "resultExtension", "h450.resultExtension", - FT_UINT32, BASE_DEC, VALS(h450_T_resultExtension_vals), 0, - "h450.T_resultExtension", HFILL }}, - { &hf_h450_redirectionNumber, - { "redirectionNumber", "h450.redirectionNumber", + { &hf_h450_2_cTSetupArg_argumentExtension, + { "argumentExtension", "h450.2.argumentExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_cTSetupArg_argumentExtension_vals), 0, + "h450_2.T_cTSetupArg_argumentExtension", HFILL }}, + { &hf_h450_2_resultExtension, + { "resultExtension", "h450.2.resultExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_resultExtension_vals), 0, + "h450_2.T_resultExtension", HFILL }}, + { &hf_h450_2_redirectionNumber, + { "redirectionNumber", "h450.2.redirectionNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_redirectionInfo, - { "redirectionInfo", "h450.redirectionInfo", + { &hf_h450_2_redirectionInfo, + { "redirectionInfo", "h450.2.redirectionInfo", FT_STRING, BASE_NONE, NULL, 0, - "h450.BMPString_SIZE_1_128", HFILL }}, - { &hf_h450_basicCallInfoElements, - { "basicCallInfoElements", "h450.basicCallInfoElements", + "h450_2.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_2_basicCallInfoElements, + { "basicCallInfoElements", "h450.2.basicCallInfoElements", FT_BYTES, BASE_HEX, NULL, 0, "h450.H225InformationElement", HFILL }}, - { &hf_h450_cTUpdateArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", - FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0, - "h450.ArgumentExtension", HFILL }}, - { &hf_h450_redirectionSubaddress, - { "redirectionSubaddress", "h450.redirectionSubaddress", + { &hf_h450_2_cTUpdateArg_argumentExtension, + { "argumentExtension", "h450.2.argumentExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_cTUpdateArg_argumentExtension_vals), 0, + "h450_2.T_cTUpdateArg_argumentExtension", HFILL }}, + { &hf_h450_2_redirectionSubaddress, + { "redirectionSubaddress", "h450.2.redirectionSubaddress", FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0, "h450.PartySubaddress", HFILL }}, - { &hf_h450_subaddressTransferArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", - FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0, - "h450.ArgumentExtension", HFILL }}, - { &hf_h450_endDesignation, - { "endDesignation", "h450.endDesignation", - FT_UINT32, BASE_DEC, VALS(h450_EndDesignation_vals), 0, - "h450.EndDesignation", HFILL }}, - { &hf_h450_callStatus, - { "callStatus", "h450.callStatus", - FT_UINT32, BASE_DEC, VALS(h450_CallStatus_vals), 0, - "h450.CallStatus", HFILL }}, - { &hf_h450_cTCompleteArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", - FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0, - "h450.ArgumentExtension", HFILL }}, - { &hf_h450_connectedAddress, - { "connectedAddress", "h450.connectedAddress", + { &hf_h450_2_subaddressTransferArg_argumentExtension, + { "argumentExtension", "h450.2.argumentExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_subaddressTransferArg_argumentExtension_vals), 0, + "h450_2.T_subaddressTransferArg_argumentExtension", HFILL }}, + { &hf_h450_2_endDesignation, + { "endDesignation", "h450.2.endDesignation", + FT_UINT32, BASE_DEC, VALS(h450_2_EndDesignation_vals), 0, + "h450_2.EndDesignation", HFILL }}, + { &hf_h450_2_callStatus, + { "callStatus", "h450.2.callStatus", + FT_UINT32, BASE_DEC, VALS(h450_2_CallStatus_vals), 0, + "h450_2.CallStatus", HFILL }}, + { &hf_h450_2_cTCompleteArg_argumentExtension, + { "argumentExtension", "h450.2.argumentExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_cTCompleteArg_argumentExtension_vals), 0, + "h450_2.T_cTCompleteArg_argumentExtension", HFILL }}, + { &hf_h450_2_connectedAddress, + { "connectedAddress", "h450.2.connectedAddress", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_connectedInfo, - { "connectedInfo", "h450.connectedInfo", + { &hf_h450_2_connectedInfo, + { "connectedInfo", "h450.2.connectedInfo", FT_STRING, BASE_NONE, NULL, 0, - "h450.BMPString_SIZE_1_128", HFILL }}, - { &hf_h450_cTActiveArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", - FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0, - "h450.ArgumentExtension", HFILL }}, - { &hf_h450_ExtensionSeq_item, - { "Item", "h450.ExtensionSeq_item", + "h450_2.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_2_cTActiveArg_argumentExtension, + { "argumentExtension", "h450.2.argumentExtension", + FT_UINT32, BASE_DEC, VALS(h450_2_T_cTActiveArg_argumentExtension_vals), 0, + "h450_2.T_cTActiveArg_argumentExtension", HFILL }}, + { &hf_h450_2_ExtensionSeq_item, + { "Item", "h450.2.ExtensionSeq_item", + FT_NONE, BASE_NONE, NULL, 0, + "h450.Extension", HFILL }}, + { &hf_h450_2_unspecified_extension, + { "extension", "h450.2.extension", FT_NONE, BASE_NONE, NULL, 0, "h450.Extension", HFILL }}, - { &hf_h450_procedure, - { "procedure", "h450.procedure", - FT_UINT32, BASE_DEC, VALS(h450_Procedure_vals), 0, - "h450.Procedure", HFILL }}, - { &hf_h450_basicService, - { "basicService", "h450.basicService", - FT_UINT32, BASE_DEC, VALS(h450_BasicService_vals), 0, - "h450.BasicService", HFILL }}, - { &hf_h450_divertedToAddress, - { "divertedToAddress", "h450.divertedToAddress", + { &hf_h450_2_nonStandard, + { "nonStandard", "h450.2.nonStandard", + FT_NONE, BASE_NONE, NULL, 0, + "h225.NonStandardParameter", HFILL }}, + +/* --- Module Call-Diversion-Operations --- --- --- */ + + { &hf_h450_3_h450_3_ARG_activateDiversionQ_PDU, + { "ARG-activateDiversionQ", "h450.3.ARG_activateDiversionQ", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_activateDiversionQ", HFILL }}, + { &hf_h450_3_h450_3_RES_activateDiversionQ_PDU, + { "RES-activateDiversionQ", "h450.3.RES_activateDiversionQ", + FT_UINT32, BASE_DEC, VALS(h450_3_RES_activateDiversionQ_vals), 0, + "h450_3.RES_activateDiversionQ", HFILL }}, + { &hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU, + { "ARG-deactivateDiversionQ", "h450.3.ARG_deactivateDiversionQ", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_deactivateDiversionQ", HFILL }}, + { &hf_h450_3_h450_3_RES_deactivateDiversionQ_PDU, + { "RES-deactivateDiversionQ", "h450.3.RES_deactivateDiversionQ", + FT_UINT32, BASE_DEC, VALS(h450_3_RES_deactivateDiversionQ_vals), 0, + "h450_3.RES_deactivateDiversionQ", HFILL }}, + { &hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU, + { "ARG-interrogateDiversionQ", "h450.3.ARG_interrogateDiversionQ", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_interrogateDiversionQ", HFILL }}, + { &hf_h450_3_h450_3_IntResultList_PDU, + { "IntResultList", "h450.3.IntResultList", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_3.IntResultList", HFILL }}, + { &hf_h450_3_h450_3_ARG_checkRestriction_PDU, + { "ARG-checkRestriction", "h450.3.ARG_checkRestriction", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_checkRestriction", HFILL }}, + { &hf_h450_3_h450_3_RES_checkRestriction_PDU, + { "RES-checkRestriction", "h450.3.RES_checkRestriction", + FT_UINT32, BASE_DEC, VALS(h450_3_RES_checkRestriction_vals), 0, + "h450_3.RES_checkRestriction", HFILL }}, + { &hf_h450_3_h450_3_ARG_callRerouting_PDU, + { "ARG-callRerouting", "h450.3.ARG_callRerouting", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_callRerouting", HFILL }}, + { &hf_h450_3_h450_3_RES_callRerouting_PDU, + { "RES-callRerouting", "h450.3.RES_callRerouting", + FT_UINT32, BASE_DEC, VALS(h450_3_RES_callRerouting_vals), 0, + "h450_3.RES_callRerouting", HFILL }}, + { &hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU, + { "ARG-divertingLegInformation1", "h450.3.ARG_divertingLegInformation1", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_divertingLegInformation1", HFILL }}, + { &hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU, + { "ARG-divertingLegInformation2", "h450.3.ARG_divertingLegInformation2", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_divertingLegInformation2", HFILL }}, + { &hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU, + { "ARG-divertingLegInformation3", "h450.3.ARG_divertingLegInformation3", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_divertingLegInformation3", HFILL }}, + { &hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU, + { "ARG-divertingLegInformation4", "h450.3.ARG_divertingLegInformation4", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.ARG_divertingLegInformation4", HFILL }}, + { &hf_h450_3_h450_3_ARG_cfnrDivertedLegFailed_PDU, + { "ARG-cfnrDivertedLegFailed", "h450.3.ARG_cfnrDivertedLegFailed", + FT_UINT32, BASE_DEC, VALS(h450_3_ARG_cfnrDivertedLegFailed_vals), 0, + "h450_3.ARG_cfnrDivertedLegFailed", HFILL }}, + { &hf_h450_3_h450_3_PAR_unspecified_PDU, + { "PAR-unspecified", "h450.3.PAR_unspecified", + FT_UINT32, BASE_DEC, VALS(h450_3_PAR_unspecified_vals), 0, + "h450_3.PAR_unspecified", HFILL }}, + { &hf_h450_3_procedure, + { "procedure", "h450.3.procedure", + FT_UINT32, BASE_DEC, VALS(h450_3_Procedure_vals), 0, + "h450_3.Procedure", HFILL }}, + { &hf_h450_3_basicService, + { "basicService", "h450.3.basicService", + FT_UINT32, BASE_DEC, VALS(h450_3_BasicService_vals), 0, + "h450_3.BasicService", HFILL }}, + { &hf_h450_3_divertedToAddress, + { "divertedToAddress", "h450.3.divertedToAddress", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_servedUserNr, - { "servedUserNr", "h450.servedUserNr", + { &hf_h450_3_servedUserNr, + { "servedUserNr", "h450.3.servedUserNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_activatingUserNr, - { "activatingUserNr", "h450.activatingUserNr", + { &hf_h450_3_activatingUserNr, + { "activatingUserNr", "h450.3.activatingUserNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_activateDiversionQArg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_ActivateDiversionQArg_extension_vals), 0, - "h450.ActivateDiversionQArg_extension", HFILL }}, - { &hf_h450_deactivatingUserNr, - { "deactivatingUserNr", "h450.deactivatingUserNr", + { &hf_h450_3_activateDiversionQArg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_ActivateDiversionQArg_extension_vals), 0, + "h450_3.ActivateDiversionQArg_extension", HFILL }}, + { &hf_h450_3_extensionSeq, + { "extensionSeq", "h450.3.extensionSeq", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_3.ExtensionSeq", HFILL }}, + { &hf_h450_3_nonStandardData, + { "nonStandardData", "h450.3.nonStandardData", + FT_NONE, BASE_NONE, NULL, 0, + "h225.NonStandardParameter", HFILL }}, + { &hf_h450_3_deactivatingUserNr, + { "deactivatingUserNr", "h450.3.deactivatingUserNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_deactivateDiversionQArg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_DeactivateDiversionQArg_extension_vals), 0, - "h450.DeactivateDiversionQArg_extension", HFILL }}, - { &hf_h450_interrogatingUserNr, - { "interrogatingUserNr", "h450.interrogatingUserNr", + { &hf_h450_3_deactivateDiversionQArg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_DeactivateDiversionQArg_extension_vals), 0, + "h450_3.DeactivateDiversionQArg_extension", HFILL }}, + { &hf_h450_3_interrogatingUserNr, + { "interrogatingUserNr", "h450.3.interrogatingUserNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_interrogateDiversionQ_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_InterrogateDiversionQ_extension_vals), 0, - "h450.InterrogateDiversionQ_extension", HFILL }}, - { &hf_h450_divertedToNr, - { "divertedToNr", "h450.divertedToNr", + { &hf_h450_3_interrogateDiversionQ_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_InterrogateDiversionQ_extension_vals), 0, + "h450_3.InterrogateDiversionQ_extension", HFILL }}, + { &hf_h450_3_divertedToNr, + { "divertedToNr", "h450.3.divertedToNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_checkRestrictionArg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_CheckRestrictionArg_extension_vals), 0, - "h450.CheckRestrictionArg_extension", HFILL }}, - { &hf_h450_reroutingReason, - { "reroutingReason", "h450.reroutingReason", - FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0, - "h450.DiversionReason", HFILL }}, - { &hf_h450_originalReroutingReason, - { "originalReroutingReason", "h450.originalReroutingReason", - FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0, - "h450.DiversionReason", HFILL }}, - { &hf_h450_calledAddress, - { "calledAddress", "h450.calledAddress", + { &hf_h450_3_checkRestrictionArg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_CheckRestrictionArg_extension_vals), 0, + "h450_3.CheckRestrictionArg_extension", HFILL }}, + { &hf_h450_3_reroutingReason, + { "reroutingReason", "h450.3.reroutingReason", + FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0, + "h450_3.DiversionReason", HFILL }}, + { &hf_h450_3_originalReroutingReason, + { "originalReroutingReason", "h450.3.originalReroutingReason", + FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0, + "h450_3.DiversionReason", HFILL }}, + { &hf_h450_3_calledAddress, + { "calledAddress", "h450.3.calledAddress", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_diversionCounter, - { "diversionCounter", "h450.diversionCounter", + { &hf_h450_3_diversionCounter, + { "diversionCounter", "h450.3.diversionCounter", FT_UINT32, BASE_DEC, NULL, 0, - "h450.INTEGER_1_15", HFILL }}, - { &hf_h450_h225InfoElement, - { "h225InfoElement", "h450.h225InfoElement", + "h450_3.INTEGER_1_15", HFILL }}, + { &hf_h450_3_h225InfoElement, + { "h225InfoElement", "h450.3.h225InfoElement", FT_BYTES, BASE_HEX, NULL, 0, "h450.H225InformationElement", HFILL }}, - { &hf_h450_lastReroutingNr, - { "lastReroutingNr", "h450.lastReroutingNr", + { &hf_h450_3_lastReroutingNr, + { "lastReroutingNr", "h450.3.lastReroutingNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_subscriptionOption, - { "subscriptionOption", "h450.subscriptionOption", - FT_UINT32, BASE_DEC, VALS(h450_SubscriptionOption_vals), 0, - "h450.SubscriptionOption", HFILL }}, - { &hf_h450_callingPartySubaddress, - { "callingPartySubaddress", "h450.callingPartySubaddress", + { &hf_h450_3_subscriptionOption, + { "subscriptionOption", "h450.3.subscriptionOption", + FT_UINT32, BASE_DEC, VALS(h450_3_SubscriptionOption_vals), 0, + "h450_3.SubscriptionOption", HFILL }}, + { &hf_h450_3_callingPartySubaddress, + { "callingPartySubaddress", "h450.3.callingPartySubaddress", FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0, "h450.PartySubaddress", HFILL }}, - { &hf_h450_callingNumber, - { "callingNumber", "h450.callingNumber", + { &hf_h450_3_callingNumber, + { "callingNumber", "h450.3.callingNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_callingInfo, - { "callingInfo", "h450.callingInfo", + { &hf_h450_3_callingInfo, + { "callingInfo", "h450.3.callingInfo", FT_STRING, BASE_NONE, NULL, 0, - "h450.BMPString_SIZE_1_128", HFILL }}, - { &hf_h450_originalCalledNr, - { "originalCalledNr", "h450.originalCalledNr", + "h450_3.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_3_originalCalledNr, + { "originalCalledNr", "h450.3.originalCalledNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_redirectingInfo, - { "redirectingInfo", "h450.redirectingInfo", + { &hf_h450_3_redirectingInfo, + { "redirectingInfo", "h450.3.redirectingInfo", FT_STRING, BASE_NONE, NULL, 0, - "h450.BMPString_SIZE_1_128", HFILL }}, - { &hf_h450_originalCalledInfo, - { "originalCalledInfo", "h450.originalCalledInfo", + "h450_3.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_3_originalCalledInfo, + { "originalCalledInfo", "h450.3.originalCalledInfo", FT_STRING, BASE_NONE, NULL, 0, - "h450.BMPString_SIZE_1_128", HFILL }}, - { &hf_h450_callReroutingArg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_CallReroutingArg_extension_vals), 0, - "h450.CallReroutingArg_extension", HFILL }}, - { &hf_h450_diversionReason, - { "diversionReason", "h450.diversionReason", - FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0, - "h450.DiversionReason", HFILL }}, - { &hf_h450_nominatedNr, - { "nominatedNr", "h450.nominatedNr", + "h450_3.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_3_callReroutingArg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_CallReroutingArg_extension_vals), 0, + "h450_3.CallReroutingArg_extension", HFILL }}, + { &hf_h450_3_diversionReason, + { "diversionReason", "h450.3.diversionReason", + FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0, + "h450_3.DiversionReason", HFILL }}, + { &hf_h450_3_nominatedNr, + { "nominatedNr", "h450.3.nominatedNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_nominatedInfo, - { "nominatedInfo", "h450.nominatedInfo", + { &hf_h450_3_nominatedInfo, + { "nominatedInfo", "h450.3.nominatedInfo", FT_STRING, BASE_NONE, NULL, 0, - "h450.BMPString_SIZE_1_128", HFILL }}, - { &hf_h450_redirectingNr, - { "redirectingNr", "h450.redirectingNr", + "h450_3.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_3_redirectingNr, + { "redirectingNr", "h450.3.redirectingNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_divertingLegInformation1Arg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation1Arg_extension_vals), 0, - "h450.DivertingLegInformation1Arg_extension", HFILL }}, - { &hf_h450_originalDiversionReason, - { "originalDiversionReason", "h450.originalDiversionReason", - FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0, - "h450.DiversionReason", HFILL }}, - { &hf_h450_divertingNr, - { "divertingNr", "h450.divertingNr", + { &hf_h450_3_divertingLegInformation1Arg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation1Arg_extension_vals), 0, + "h450_3.DivertingLegInformation1Arg_extension", HFILL }}, + { &hf_h450_3_originalDiversionReason, + { "originalDiversionReason", "h450.3.originalDiversionReason", + FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0, + "h450_3.DiversionReason", HFILL }}, + { &hf_h450_3_divertingNr, + { "divertingNr", "h450.3.divertingNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation2Arg_extension_vals), 0, - "h450.DivertingLegInformation2Arg_extension", HFILL }}, - { &hf_h450_presentationAllowedIndicator, - { "presentationAllowedIndicator", "h450.presentationAllowedIndicator", + { &hf_h450_3_divertingLegInformation2Arg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation2Arg_extension_vals), 0, + "h450_3.DivertingLegInformation2Arg_extension", HFILL }}, + { &hf_h450_3_presentationAllowedIndicator, + { "presentationAllowedIndicator", "h450.3.presentationAllowedIndicator", FT_BOOLEAN, 8, NULL, 0, "h450.PresentationAllowedIndicator", HFILL }}, - { &hf_h450_redirectionNr, - { "redirectionNr", "h450.redirectionNr", + { &hf_h450_3_redirectionNr, + { "redirectionNr", "h450.3.redirectionNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_divertingLegInformation3Arg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation3Arg_extension_vals), 0, - "h450.DivertingLegInformation3Arg_extension", HFILL }}, - { &hf_h450_callingNr, - { "callingNr", "h450.callingNr", + { &hf_h450_3_redirectionInfo, + { "redirectionInfo", "h450.3.redirectionInfo", + FT_STRING, BASE_NONE, NULL, 0, + "h450_3.BMPString_SIZE_1_128", HFILL }}, + { &hf_h450_3_divertingLegInformation3Arg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation3Arg_extension_vals), 0, + "h450_3.DivertingLegInformation3Arg_extension", HFILL }}, + { &hf_h450_3_callingNr, + { "callingNr", "h450.3.callingNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_divertingLegInformation4Arg_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation4Arg_extension_vals), 0, - "h450.DivertingLegInformation4Arg_extension", HFILL }}, - { &hf_h450_IntResultList_item, - { "Item", "h450.IntResultList_item", - FT_NONE, BASE_NONE, NULL, 0, - "h450.IntResult", HFILL }}, - { &hf_h450_remoteEnabled, - { "remoteEnabled", "h450.remoteEnabled", + { &hf_h450_3_divertingLegInformation4Arg_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation4Arg_extension_vals), 0, + "h450_3.DivertingLegInformation4Arg_extension", HFILL }}, + { &hf_h450_3_IntResultList_item, + { "Item", "h450.3.IntResultList_item", + FT_NONE, BASE_NONE, NULL, 0, + "h450_3.IntResult", HFILL }}, + { &hf_h450_3_remoteEnabled, + { "remoteEnabled", "h450.3.remoteEnabled", FT_BOOLEAN, 8, NULL, 0, - "h450.BOOLEAN", HFILL }}, - { &hf_h450_intResult_extension, - { "extension", "h450.extension", - FT_UINT32, BASE_DEC, VALS(h450_IntResult_extension_vals), 0, - "h450.IntResult_extension", HFILL }}, - { &hf_h450_holdNotificArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_3.BOOLEAN", HFILL }}, + { &hf_h450_3_intResult_extension, + { "extension", "h450.3.extension", + FT_UINT32, BASE_DEC, VALS(h450_3_IntResult_extension_vals), 0, + "h450_3.IntResult_extension", HFILL }}, + { &hf_h450_3_unspecified_extension, + { "extension", "h450.3.extension", + FT_NONE, BASE_NONE, NULL, 0, + "h450.Extension", HFILL }}, + { &hf_h450_3_nonStandard, + { "nonStandard", "h450.3.nonStandard", + FT_NONE, BASE_NONE, NULL, 0, + "h225.NonStandardParameter", HFILL }}, + { &hf_h450_3_ExtensionSeq_item, + { "Item", "h450.3.ExtensionSeq_item", + FT_NONE, BASE_NONE, NULL, 0, + "h450.Extension", HFILL }}, + +/* --- Module Call-Hold-Operations --- --- --- */ + + { &hf_h450_4_h450_4_HoldNotificArg_PDU, + { "HoldNotificArg", "h450.4.HoldNotificArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_4.HoldNotificArg", HFILL }}, + { &hf_h450_4_h450_4_RetrieveNotificArg_PDU, + { "RetrieveNotificArg", "h450.4.RetrieveNotificArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_4.RetrieveNotificArg", HFILL }}, + { &hf_h450_4_h450_4_RemoteHoldArg_PDU, + { "RemoteHoldArg", "h450.4.RemoteHoldArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_4.RemoteHoldArg", HFILL }}, + { &hf_h450_4_h450_4_RemoteHoldRes_PDU, + { "RemoteHoldRes", "h450.4.RemoteHoldRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_4.RemoteHoldRes", HFILL }}, + { &hf_h450_4_h450_4_RemoteRetrieveArg_PDU, + { "RemoteRetrieveArg", "h450.4.RemoteRetrieveArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_4.RemoteRetrieveArg", HFILL }}, + { &hf_h450_4_h450_4_RemoteRetrieveRes_PDU, + { "RemoteRetrieveRes", "h450.4.RemoteRetrieveRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_4.RemoteRetrieveRes", HFILL }}, + { &hf_h450_4_h450_4_PAR_undefined_PDU, + { "PAR-undefined", "h450.4.PAR_undefined", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_holdNotificArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_retrieveNotificArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_4.PAR_undefined", HFILL }}, + { &hf_h450_4_holdNotificArg_extensionArg, + { "extensionArg", "h450.4.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_retrieveNotificArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_remoteHoldArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_4.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_4_holdNotificArg_extensionArg_item, + { "Item", "h450.4.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_4_retrieveNotificArg_extensionArg, + { "extensionArg", "h450.4.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_remoteHoldArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_extensionRes, - { "extensionRes", "h450.extensionRes", + "h450_4.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_4_retrieveNotificArg_extensionArg_item, + { "Item", "h450.4.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_4_remoteHoldArg_extensionArg, + { "extensionArg", "h450.4.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_extensionRes_item, - { "Item", "h450.extensionRes_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_remoteRetrieveArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_4.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_4_remoteHoldArg_extensionArg_item, + { "Item", "h450.4.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_4_extensionRes, + { "extensionRes", "h450.4.extensionRes", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_remoteRetrieveArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_mixedExtension_extension, - { "extension", "h450.extension", + "h450_4.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_4_extensionRes_item, + { "Item", "h450.4.extensionRes_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_4_remoteRetrieveArg_extensionArg, + { "extensionArg", "h450.4.extensionArg", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_4.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_4_remoteRetrieveArg_extensionArg_item, + { "Item", "h450.4.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_4_mixedExtension_extension, + { "extension", "h450.4.extension", FT_NONE, BASE_NONE, NULL, 0, "h450.Extension", HFILL }}, - { &hf_h450_parkingNumber, - { "parkingNumber", "h450.parkingNumber", + { &hf_h450_4_nonStandardData, + { "nonStandardData", "h450.4.nonStandardData", + FT_NONE, BASE_NONE, NULL, 0, + "h225.NonStandardParameter", HFILL }}, + { &hf_h450_4_PAR_undefined_item, + { "Item", "h450.4.PAR_undefined_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + { &hf_h450_5_h450_5_CpRequestArg_PDU, + { "CpRequestArg", "h450.5.CpRequestArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.CpRequestArg", HFILL }}, + { &hf_h450_5_h450_5_CpRequestRes_PDU, + { "CpRequestRes", "h450.5.CpRequestRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.CpRequestRes", HFILL }}, + { &hf_h450_5_h450_5_CpSetupArg_PDU, + { "CpSetupArg", "h450.5.CpSetupArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.CpSetupArg", HFILL }}, + { &hf_h450_5_h450_5_CpSetupRes_PDU, + { "CpSetupRes", "h450.5.CpSetupRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.CpSetupRes", HFILL }}, + { &hf_h450_5_h450_5_GroupIndicationOnArg_PDU, + { "GroupIndicationOnArg", "h450.5.GroupIndicationOnArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.GroupIndicationOnArg", HFILL }}, + { &hf_h450_5_h450_5_GroupIndicationOnRes_PDU, + { "GroupIndicationOnRes", "h450.5.GroupIndicationOnRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.GroupIndicationOnRes", HFILL }}, + { &hf_h450_5_h450_5_GroupIndicationOffArg_PDU, + { "GroupIndicationOffArg", "h450.5.GroupIndicationOffArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.GroupIndicationOffArg", HFILL }}, + { &hf_h450_5_h450_5_GroupIndicationOffRes_PDU, + { "GroupIndicationOffRes", "h450.5.GroupIndicationOffRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.GroupIndicationOffRes", HFILL }}, + { &hf_h450_5_h450_5_PickrequArg_PDU, + { "PickrequArg", "h450.5.PickrequArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.PickrequArg", HFILL }}, + { &hf_h450_5_h450_5_PickrequRes_PDU, + { "PickrequRes", "h450.5.PickrequRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.PickrequRes", HFILL }}, + { &hf_h450_5_h450_5_PickupArg_PDU, + { "PickupArg", "h450.5.PickupArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.PickupArg", HFILL }}, + { &hf_h450_5_h450_5_PickupRes_PDU, + { "PickupRes", "h450.5.PickupRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.PickupRes", HFILL }}, + { &hf_h450_5_h450_5_PickExeArg_PDU, + { "PickExeArg", "h450.5.PickExeArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.PickExeArg", HFILL }}, + { &hf_h450_5_h450_5_PickExeRes_PDU, + { "PickExeRes", "h450.5.PickExeRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.PickExeRes", HFILL }}, + { &hf_h450_5_h450_5_CpNotifyArg_PDU, + { "CpNotifyArg", "h450.5.CpNotifyArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.CpNotifyArg", HFILL }}, + { &hf_h450_5_h450_5_CpickupNotifyArg_PDU, + { "CpickupNotifyArg", "h450.5.CpickupNotifyArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_5.CpickupNotifyArg", HFILL }}, + { &hf_h450_5_h450_5_PAR_undefined_PDU, + { "PAR-undefined", "h450.5.PAR_undefined", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_5.PAR_undefined", HFILL }}, + { &hf_h450_5_parkingNumber, + { "parkingNumber", "h450.5.parkingNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_parkedNumber, - { "parkedNumber", "h450.parkedNumber", + { &hf_h450_5_parkedNumber, + { "parkedNumber", "h450.5.parkedNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_parkedToNumber, - { "parkedToNumber", "h450.parkedToNumber", + { &hf_h450_5_parkedToNumber, + { "parkedToNumber", "h450.5.parkedToNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_parkedToPosition, - { "parkedToPosition", "h450.parkedToPosition", + { &hf_h450_5_parkedToPosition, + { "parkedToPosition", "h450.5.parkedToPosition", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_5.ParkedToPosition", HFILL }}, + { &hf_h450_5_cpRequestArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ParkedToPosition", HFILL }}, - { &hf_h450_cpRequestArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_cpRequestArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_parkCondition, + { "parkCondition", "h450.5.parkCondition", + FT_UINT32, BASE_DEC, VALS(h450_5_ParkCondition_vals), 0, + "h450_5.ParkCondition", HFILL }}, + { &hf_h450_5_extensionRes, + { "extensionRes", "h450.5.extensionRes", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cpRequestArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_parkCondition, - { "parkCondition", "h450.parkCondition", - FT_UINT32, BASE_DEC, VALS(h450_ParkCondition_vals), 0, - "h450.ParkCondition", HFILL }}, - { &hf_h450_cpSetupArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_extensionRes_item, + { "Item", "h450.5.extensionRes_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_cpSetupArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cpSetupArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_callPickupId, - { "callPickupId", "h450.callPickupId", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_cpSetupArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_callPickupId, + { "callPickupId", "h450.5.callPickupId", FT_NONE, BASE_NONE, NULL, 0, "h225.CallIdentifier", HFILL }}, - { &hf_h450_groupMemberUserNr, - { "groupMemberUserNr", "h450.groupMemberUserNr", + { &hf_h450_5_groupMemberUserNr, + { "groupMemberUserNr", "h450.5.groupMemberUserNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_retrieveCallType, - { "retrieveCallType", "h450.retrieveCallType", - FT_UINT32, BASE_DEC, VALS(h450_CallType_vals), 0, - "h450.CallType", HFILL }}, - { &hf_h450_partyToRetrieve, - { "partyToRetrieve", "h450.partyToRetrieve", + { &hf_h450_5_retrieveCallType, + { "retrieveCallType", "h450.5.retrieveCallType", + FT_UINT32, BASE_DEC, VALS(h450_5_CallType_vals), 0, + "h450_5.CallType", HFILL }}, + { &hf_h450_5_partyToRetrieve, + { "partyToRetrieve", "h450.5.partyToRetrieve", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_retrieveAddress, - { "retrieveAddress", "h450.retrieveAddress", + { &hf_h450_5_retrieveAddress, + { "retrieveAddress", "h450.5.retrieveAddress", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_parkPosition, - { "parkPosition", "h450.parkPosition", + { &hf_h450_5_parkPosition, + { "parkPosition", "h450.5.parkPosition", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ParkedToPosition", HFILL }}, - { &hf_h450_groupIndicationOnArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.ParkedToPosition", HFILL }}, + { &hf_h450_5_groupIndicationOnArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_groupIndicationOnArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_groupIndicationOffArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_groupIndicationOnArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_groupIndicationOffArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_groupIndicationOffArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_picking_upNumber, - { "picking-upNumber", "h450.picking_upNumber", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_groupIndicationOffArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_picking_upNumber, + { "picking-upNumber", "h450.5.picking_upNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_pickrequArg_extensionArg, - { "extensionArg", "h450.extensionArg", + { &hf_h450_5_pickrequArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_pickrequArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_pickupArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_pickupArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_pickExeArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_pickrequArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_pickupArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_pickExeArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_cpNotifyArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_pickupArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_pickExeArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_cpNotifyArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_cpickupNotifyArg_extensionArg, + { "extensionArg", "h450.5.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_pickExeArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cpNotifyArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_5.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_5_cpickupNotifyArg_extensionArg_item, + { "Item", "h450.5.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_5_PAR_undefined_item, + { "Item", "h450.5.PAR_undefined_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + +/* --- Module Call-Waiting-Operations --- --- --- */ + + { &hf_h450_6_h450_6_CallWaitingArg_PDU, + { "CallWaitingArg", "h450.6.CallWaitingArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_6.CallWaitingArg", HFILL }}, + { &hf_h450_6_nbOfAddWaitingCalls, + { "nbOfAddWaitingCalls", "h450.6.nbOfAddWaitingCalls", + FT_UINT32, BASE_DEC, NULL, 0, + "h450_6.INTEGER_0_255", HFILL }}, + { &hf_h450_6_callWaitingArg_extensionArg, + { "extensionArg", "h450.6.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cpNotifyArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cpickupNotifyArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_6.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_6_callWaitingArg_extensionArg_item, + { "Item", "h450.6.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + { &hf_h450_7_h450_7_MWIActivateArg_PDU, + { "MWIActivateArg", "h450.7.MWIActivateArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_7.MWIActivateArg", HFILL }}, + { &hf_h450_7_h450_7_DummyRes_PDU, + { "DummyRes", "h450.7.DummyRes", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cpickupNotifyArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_nbOfAddWaitingCalls, - { "nbOfAddWaitingCalls", "h450.nbOfAddWaitingCalls", + "h450_7.DummyRes", HFILL }}, + { &hf_h450_7_h450_7_MWIDeactivateArg_PDU, + { "MWIDeactivateArg", "h450.7.MWIDeactivateArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_7.MWIDeactivateArg", HFILL }}, + { &hf_h450_7_h450_7_MWIInterrogateArg_PDU, + { "MWIInterrogateArg", "h450.7.MWIInterrogateArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_7.MWIInterrogateArg", HFILL }}, + { &hf_h450_7_h450_7_MWIInterrogateRes_PDU, + { "MWIInterrogateRes", "h450.7.MWIInterrogateRes", FT_UINT32, BASE_DEC, NULL, 0, - "h450.INTEGER_0_255", HFILL }}, - { &hf_h450_callWaitingArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_7.MWIInterrogateRes", HFILL }}, + { &hf_h450_7_h450_7_PAR_undefined_PDU, + { "PAR-undefined", "h450.7.PAR_undefined", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_callWaitingArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_msgCentreId, - { "msgCentreId", "h450.msgCentreId", - FT_UINT32, BASE_DEC, VALS(h450_MsgCentreId_vals), 0, - "h450.MsgCentreId", HFILL }}, - { &hf_h450_nbOfMessages, - { "nbOfMessages", "h450.nbOfMessages", + "h450_7.PAR_undefined", HFILL }}, + { &hf_h450_7_servedUserNr, + { "servedUserNr", "h450.7.servedUserNr", + FT_NONE, BASE_NONE, NULL, 0, + "h450.EndpointAddress", HFILL }}, + { &hf_h450_7_basicService, + { "basicService", "h450.7.basicService", + FT_UINT32, BASE_DEC, VALS(h450_7_BasicService_vals), 0, + "h450_7.BasicService", HFILL }}, + { &hf_h450_7_msgCentreId, + { "msgCentreId", "h450.7.msgCentreId", + FT_UINT32, BASE_DEC, VALS(h450_7_MsgCentreId_vals), 0, + "h450_7.MsgCentreId", HFILL }}, + { &hf_h450_7_nbOfMessages, + { "nbOfMessages", "h450.7.nbOfMessages", FT_UINT32, BASE_DEC, NULL, 0, - "h450.NbOfMessages", HFILL }}, - { &hf_h450_originatingNr, - { "originatingNr", "h450.originatingNr", + "h450_7.NbOfMessages", HFILL }}, + { &hf_h450_7_originatingNr, + { "originatingNr", "h450.7.originatingNr", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_timestamp, - { "timestamp", "h450.timestamp", + { &hf_h450_7_timestamp, + { "timestamp", "h450.7.timestamp", FT_STRING, BASE_NONE, NULL, 0, - "h450.TimeStamp", HFILL }}, - { &hf_h450_priority, - { "priority", "h450.priority", + "h450_7.TimeStamp", HFILL }}, + { &hf_h450_7_priority, + { "priority", "h450.7.priority", FT_UINT32, BASE_DEC, NULL, 0, - "h450.INTEGER_0_9", HFILL }}, - { &hf_h450_mWIActivateArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_7.INTEGER_0_9", HFILL }}, + { &hf_h450_7_mWIActivateArg_extensionArg, + { "extensionArg", "h450.7.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ExtensionArg", HFILL }}, - { &hf_h450_MwiDummyRes_item, - { "Item", "h450.MwiDummyRes_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_callbackReq, - { "callbackReq", "h450.callbackReq", + "h450_7.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_7_mWIActivateArg_extensionArg_item, + { "Item", "h450.7.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_7_DummyRes_item, + { "Item", "h450.7.DummyRes_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_7_callbackReq, + { "callbackReq", "h450.7.callbackReq", FT_BOOLEAN, 8, NULL, 0, - "h450.BOOLEAN", HFILL }}, - { &hf_h450_mWIDeactivateArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_7.BOOLEAN", HFILL }}, + { &hf_h450_7_mWIDeactivateArg_extensionArg, + { "extensionArg", "h450.7.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ExtensionArg", HFILL }}, - { &hf_h450_mWIInterrogateArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_7.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_7_mWIDeactivateArg_extensionArg_item, + { "Item", "h450.7.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_7_mWIInterrogateArg_extensionArg, + { "extensionArg", "h450.7.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ExtensionArg", HFILL }}, - { &hf_h450_MWIInterrogateRes_item, - { "Item", "h450.MWIInterrogateRes_item", + "h450_7.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_7_mWIInterrogateArg_extensionArg_item, + { "Item", "h450.7.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_7_MWIInterrogateRes_item, + { "Item", "h450.7.MWIInterrogateRes_item", FT_NONE, BASE_NONE, NULL, 0, - "h450.MWIInterrogateResElt", HFILL }}, - { &hf_h450_mWIInterrogateResElt_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_7.MWIInterrogateResElt", HFILL }}, + { &hf_h450_7_mWIInterrogateResElt_extensionArg, + { "extensionArg", "h450.7.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.ExtensionArg", HFILL }}, - { &hf_h450_integer, - { "integer", "h450.integer", + "h450_7.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_7_mWIInterrogateResElt_extensionArg_item, + { "Item", "h450.7.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_7_integer, + { "integer", "h450.7.integer", FT_UINT32, BASE_DEC, NULL, 0, - "h450.INTEGER_0_65535", HFILL }}, - { &hf_h450_mwipartyNumber, - { "mwipartyNumber", "h450.mwipartyNumber", + "h450_7.INTEGER_0_65535", HFILL }}, + { &hf_h450_7_partyNumber, + { "partyNumber", "h450.7.partyNumber", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_numericString, - { "numericString", "h450.numericString", + { &hf_h450_7_numericString, + { "numericString", "h450.7.numericString", FT_STRING, BASE_NONE, NULL, 0, - "h450.NumericString_SIZE_1_10", HFILL }}, - { &hf_h450_ExtensionArg_item, - { "Item", "h450.ExtensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_name, - { "name", "h450.name", - FT_UINT32, BASE_DEC, VALS(h450_Name_vals), 0, - "h450.Name", HFILL }}, - { &hf_h450_nameArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_7.NumericString_SIZE_1_10", HFILL }}, + { &hf_h450_7_PAR_undefined_item, + { "Item", "h450.7.PAR_undefined_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + +/* --- Module Name-Operations --- --- --- */ + + { &hf_h450_8_h450_8_ARG_callingName_PDU, + { "ARG-callingName", "h450.8.ARG_callingName", + FT_NONE, BASE_NONE, NULL, 0, + "h450_8.ARG_callingName", HFILL }}, + { &hf_h450_8_h450_8_ARG_alertingName_PDU, + { "ARG-alertingName", "h450.8.ARG_alertingName", + FT_NONE, BASE_NONE, NULL, 0, + "h450_8.ARG_alertingName", HFILL }}, + { &hf_h450_8_h450_8_ARG_connectedName_PDU, + { "ARG-connectedName", "h450.8.ARG_connectedName", + FT_NONE, BASE_NONE, NULL, 0, + "h450_8.ARG_connectedName", HFILL }}, + { &hf_h450_8_h450_8_ARG_busyName_PDU, + { "ARG-busyName", "h450.8.ARG_busyName", + FT_NONE, BASE_NONE, NULL, 0, + "h450_8.ARG_busyName", HFILL }}, + { &hf_h450_8_name, + { "name", "h450.8.name", + FT_UINT32, BASE_DEC, VALS(h450_8_Name_vals), 0, + "h450_8.Name", HFILL }}, + { &hf_h450_8_extensionArg, + { "extensionArg", "h450.8.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_nameArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_namePresentationAllowed, - { "namePresentationAllowed", "h450.namePresentationAllowed", - FT_UINT32, BASE_DEC, VALS(h450_NamePresentationAllowed_vals), 0, - "h450.NamePresentationAllowed", HFILL }}, - { &hf_h450_namePresentationRestricted, - { "namePresentationRestricted", "h450.namePresentationRestricted", - FT_UINT32, BASE_DEC, VALS(h450_NamePresentationRestricted_vals), 0, - "h450.NamePresentationRestricted", HFILL }}, - { &hf_h450_nameNotAvailable, - { "nameNotAvailable", "h450.nameNotAvailable", + "h450_8.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_8_extensionArg_item, + { "Item", "h450.8.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_8_namePresentationAllowed, + { "namePresentationAllowed", "h450.8.namePresentationAllowed", + FT_UINT32, BASE_DEC, VALS(h450_8_NamePresentationAllowed_vals), 0, + "h450_8.NamePresentationAllowed", HFILL }}, + { &hf_h450_8_namePresentationRestricted, + { "namePresentationRestricted", "h450.8.namePresentationRestricted", + FT_UINT32, BASE_DEC, VALS(h450_8_NamePresentationRestricted_vals), 0, + "h450_8.NamePresentationRestricted", HFILL }}, + { &hf_h450_8_nameNotAvailable, + { "nameNotAvailable", "h450.8.nameNotAvailable", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_simpleName, - { "simpleName", "h450.simpleName", + "h450_8.NULL", HFILL }}, + { &hf_h450_8_simpleName, + { "simpleName", "h450.8.simpleName", FT_BYTES, BASE_HEX, NULL, 0, - "h450.SimpleName", HFILL }}, - { &hf_h450_extendedName, - { "extendedName", "h450.extendedName", + "h450_8.SimpleName", HFILL }}, + { &hf_h450_8_extendedName, + { "extendedName", "h450.8.extendedName", FT_STRING, BASE_NONE, NULL, 0, - "h450.ExtendedName", HFILL }}, - { &hf_h450_restrictedNull, - { "restrictedNull", "h450.restrictedNull", + "h450_8.ExtendedName", HFILL }}, + { &hf_h450_8_restrictedNull, + { "restrictedNull", "h450.8.restrictedNull", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_numberA, - { "numberA", "h450.numberA", + "h450_8.NULL", HFILL }}, + +/* --- Module Call-Completion-Operations --- --- --- */ + + { &hf_h450_9_h450_9_CcRequestArg_PDU, + { "CcRequestArg", "h450.9.CcRequestArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_9.CcRequestArg", HFILL }}, + { &hf_h450_9_h450_9_CcRequestRes_PDU, + { "CcRequestRes", "h450.9.CcRequestRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_9.CcRequestRes", HFILL }}, + { &hf_h450_9_h450_9_CcArg_PDU, + { "CcArg", "h450.9.CcArg", + FT_UINT32, BASE_DEC, VALS(h450_9_CcArg_vals), 0, + "h450_9.CcArg", HFILL }}, + { &hf_h450_9_h450_9_CcShortArg_PDU, + { "CcShortArg", "h450.9.CcShortArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_9.CcShortArg", HFILL }}, + { &hf_h450_9_numberA, + { "numberA", "h450.9.numberA", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_numberB, - { "numberB", "h450.numberB", + { &hf_h450_9_numberB, + { "numberB", "h450.9.numberB", FT_NONE, BASE_NONE, NULL, 0, "h450.EndpointAddress", HFILL }}, - { &hf_h450_ccIdentifier, - { "ccIdentifier", "h450.ccIdentifier", + { &hf_h450_9_ccIdentifier, + { "ccIdentifier", "h450.9.ccIdentifier", FT_NONE, BASE_NONE, NULL, 0, "h225.CallIdentifier", HFILL }}, - { &hf_h450_service, - { "service", "h450.service", - FT_UINT32, BASE_DEC, VALS(h450_BasicService_vals), 0, - "h450.BasicService", HFILL }}, - { &hf_h450_can_retain_service, - { "can-retain-service", "h450.can_retain_service", + { &hf_h450_9_service, + { "service", "h450.9.service", + FT_UINT32, BASE_DEC, VALS(h450_7_BasicService_vals), 0, + "h450_7.BasicService", HFILL }}, + { &hf_h450_9_can_retain_service, + { "can-retain-service", "h450.9.can_retain_service", FT_BOOLEAN, 8, NULL, 0, - "h450.BOOLEAN", HFILL }}, - { &hf_h450_retain_sig_connection, - { "retain-sig-connection", "h450.retain_sig_connection", + "h450_9.BOOLEAN", HFILL }}, + { &hf_h450_9_retain_sig_connection, + { "retain-sig-connection", "h450.9.retain_sig_connection", FT_BOOLEAN, 8, NULL, 0, - "h450.BOOLEAN", HFILL }}, - { &hf_h450_ccRequestArg_extension, - { "extension", "h450.extension", + "h450_9.BOOLEAN", HFILL }}, + { &hf_h450_9_ccRequestArg_extension, + { "extension", "h450.9.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_ccRequestArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_retain_service, - { "retain-service", "h450.retain_service", + "h450_9.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_9_ccRequestArg_extension_item, + { "Item", "h450.9.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_9_retain_service, + { "retain-service", "h450.9.retain_service", FT_BOOLEAN, 8, NULL, 0, - "h450.BOOLEAN", HFILL }}, - { &hf_h450_ccRequestRes_extension, - { "extension", "h450.extension", + "h450_9.BOOLEAN", HFILL }}, + { &hf_h450_9_ccRequestRes_extension, + { "extension", "h450.9.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_ccRequestRes_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_shortArg, - { "shortArg", "h450.shortArg", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CcShortArg", HFILL }}, - { &hf_h450_longArg, - { "longArg", "h450.longArg", - FT_NONE, BASE_NONE, NULL, 0, - "h450.CcLongArg", HFILL }}, - { &hf_h450_ccShortArg_extension, - { "extension", "h450.extension", + "h450_9.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_9_ccRequestRes_extension_item, + { "Item", "h450.9.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_9_shortArg, + { "shortArg", "h450.9.shortArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_9.CcShortArg", HFILL }}, + { &hf_h450_9_longArg, + { "longArg", "h450.9.longArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_9.CcLongArg", HFILL }}, + { &hf_h450_9_ccShortArg_extension, + { "extension", "h450.9.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_ccShortArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_ccLongArg_extension, - { "extension", "h450.extension", + "h450_9.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_9_ccShortArg_extension_item, + { "Item", "h450.9.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_9_ccLongArg_extension, + { "extension", "h450.9.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_ccLongArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_coReqOptArg_extension, - { "extension", "h450.extension", + "h450_9.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_9_ccLongArg_extension_item, + { "Item", "h450.9.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + +/* --- Module Call-Offer-Operations --- --- --- */ + + { &hf_h450_10_h450_10_CoReqOptArg_PDU, + { "CoReqOptArg", "h450.10.CoReqOptArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_10.CoReqOptArg", HFILL }}, + { &hf_h450_10_h450_10_RUAlertOptArg_PDU, + { "RUAlertOptArg", "h450.10.RUAlertOptArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_10.RUAlertOptArg", HFILL }}, + { &hf_h450_10_h450_10_CfbOvrOptArg_PDU, + { "CfbOvrOptArg", "h450.10.CfbOvrOptArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_10.CfbOvrOptArg", HFILL }}, + { &hf_h450_10_coReqOptArg_extension, + { "extension", "h450.10.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_coReqOptArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_rUAlertOptArg_extension, - { "extension", "h450.extension", + "h450_10.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_10_coReqOptArg_extension_item, + { "Item", "h450.10.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_10_rUAlertOptArg_extension, + { "extension", "h450.10.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_rUAlertOptArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cfbOvrOptArg_extension, - { "extension", "h450.extension", + "h450_10.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_10_rUAlertOptArg_extension_item, + { "Item", "h450.10.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_10_cfbOvrOptArg_extension, + { "extension", "h450.10.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cfbOvrOptArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_ciCapabilityLevel, - { "ciCapabilityLevel", "h450.ciCapabilityLevel", - FT_UINT32, BASE_DEC, VALS(h450_CICapabilityLevel_vals), 0, - "h450.CICapabilityLevel", HFILL }}, - { &hf_h450_cIRequestArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + "h450_10.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_10_cfbOvrOptArg_extension_item, + { "Item", "h450.10.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + { &hf_h450_11_h450_11_CIRequestArg_PDU, + { "CIRequestArg", "h450.11.CIRequestArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIRequestArg", HFILL }}, + { &hf_h450_11_h450_11_CIRequestRes_PDU, + { "CIRequestRes", "h450.11.CIRequestRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIRequestRes", HFILL }}, + { &hf_h450_11_h450_11_CIGetCIPLOptArg_PDU, + { "CIGetCIPLOptArg", "h450.11.CIGetCIPLOptArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIGetCIPLOptArg", HFILL }}, + { &hf_h450_11_h450_11_CIGetCIPLRes_PDU, + { "CIGetCIPLRes", "h450.11.CIGetCIPLRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIGetCIPLRes", HFILL }}, + { &hf_h450_11_h450_11_CIIsOptArg_PDU, + { "CIIsOptArg", "h450.11.CIIsOptArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIIsOptArg", HFILL }}, + { &hf_h450_11_h450_11_CIIsOptRes_PDU, + { "CIIsOptRes", "h450.11.CIIsOptRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIIsOptRes", HFILL }}, + { &hf_h450_11_h450_11_CIFrcRelArg_PDU, + { "CIFrcRelArg", "h450.11.CIFrcRelArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIFrcRelArg", HFILL }}, + { &hf_h450_11_h450_11_CIFrcRelOptRes_PDU, + { "CIFrcRelOptRes", "h450.11.CIFrcRelOptRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIFrcRelOptRes", HFILL }}, + { &hf_h450_11_h450_11_CIWobOptArg_PDU, + { "CIWobOptArg", "h450.11.CIWobOptArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIWobOptArg", HFILL }}, + { &hf_h450_11_h450_11_CIWobOptRes_PDU, + { "CIWobOptRes", "h450.11.CIWobOptRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CIWobOptRes", HFILL }}, + { &hf_h450_11_h450_11_CISilentArg_PDU, + { "CISilentArg", "h450.11.CISilentArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CISilentArg", HFILL }}, + { &hf_h450_11_h450_11_CISilentOptRes_PDU, + { "CISilentOptRes", "h450.11.CISilentOptRes", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CISilentOptRes", HFILL }}, + { &hf_h450_11_h450_11_CINotificationArg_PDU, + { "CINotificationArg", "h450.11.CINotificationArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_11.CINotificationArg", HFILL }}, + { &hf_h450_11_ciCapabilityLevel, + { "ciCapabilityLevel", "h450.11.ciCapabilityLevel", + FT_UINT32, BASE_DEC, VALS(h450_11_CICapabilityLevel_vals), 0, + "h450_11.CICapabilityLevel", HFILL }}, + { &hf_h450_11_cIRequestArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIRequestArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_ciStatusInformation, - { "ciStatusInformation", "h450.ciStatusInformation", - FT_UINT32, BASE_DEC, VALS(h450_CIStatusInformation_vals), 0, - "h450.CIStatusInformation", HFILL }}, - { &hf_h450_cIRequestRes_resultExtension, - { "resultExtension", "h450.resultExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIRequestArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_ciStatusInformation, + { "ciStatusInformation", "h450.11.ciStatusInformation", + FT_UINT32, BASE_DEC, VALS(h450_11_CIStatusInformation_vals), 0, + "h450_11.CIStatusInformation", HFILL }}, + { &hf_h450_11_cIRequestRes_resultExtension, + { "resultExtension", "h450.11.resultExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIRequestRes_resultExtension_item, - { "Item", "h450.resultExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIGetCIPLOptArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIRequestRes_resultExtension_item, + { "Item", "h450.11.resultExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIGetCIPLOptArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIGetCIPLOptArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_ciProtectionLevel, - { "ciProtectionLevel", "h450.ciProtectionLevel", - FT_UINT32, BASE_DEC, VALS(h450_CIProtectionLevel_vals), 0, - "h450.CIProtectionLevel", HFILL }}, - { &hf_h450_silentMonitoringPermitted, - { "silentMonitoringPermitted", "h450.silentMonitoringPermitted", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIGetCIPLOptArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_ciProtectionLevel, + { "ciProtectionLevel", "h450.11.ciProtectionLevel", + FT_UINT32, BASE_DEC, VALS(h450_11_CIProtectionLevel_vals), 0, + "h450_11.CIProtectionLevel", HFILL }}, + { &hf_h450_11_silentMonitoringPermitted, + { "silentMonitoringPermitted", "h450.11.silentMonitoringPermitted", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_cIGetCIPLRes_resultExtension, - { "resultExtension", "h450.resultExtension", + "h450_11.NULL", HFILL }}, + { &hf_h450_11_cIGetCIPLRes_resultExtension, + { "resultExtension", "h450.11.resultExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIGetCIPLRes_resultExtension_item, - { "Item", "h450.resultExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIIsOptArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIGetCIPLRes_resultExtension_item, + { "Item", "h450.11.resultExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIIsOptArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIIsOptArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIIsOptRes_resultExtension, - { "resultExtension", "h450.resultExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIIsOptArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIIsOptRes_resultExtension, + { "resultExtension", "h450.11.resultExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIIsOptRes_resultExtension_item, - { "Item", "h450.resultExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIFrcRelArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIIsOptRes_resultExtension_item, + { "Item", "h450.11.resultExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIFrcRelArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIFrcRelArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIFrcRelOptRes_resultExtension, - { "resultExtension", "h450.resultExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIFrcRelArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIFrcRelOptRes_resultExtension, + { "resultExtension", "h450.11.resultExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIFrcRelOptRes_resultExtension_item, - { "Item", "h450.resultExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIWobOptArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIFrcRelOptRes_resultExtension_item, + { "Item", "h450.11.resultExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIWobOptArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIWobOptArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cIWobOptRes_resultExtension, - { "resultExtension", "h450.resultExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIWobOptArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cIWobOptRes_resultExtension, + { "resultExtension", "h450.11.resultExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cIWobOptRes_resultExtension_item, - { "Item", "h450.resultExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_specificCall, - { "specificCall", "h450.specificCall", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cIWobOptRes_resultExtension_item, + { "Item", "h450.11.resultExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_specificCall, + { "specificCall", "h450.11.specificCall", FT_NONE, BASE_NONE, NULL, 0, "h225.CallIdentifier", HFILL }}, - { &hf_h450_cISilentArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + { &hf_h450_11_cISilentArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cISilentArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cISilentOptRes_resultExtension, - { "resultExtension", "h450.resultExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cISilentArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cISilentOptRes_resultExtension, + { "resultExtension", "h450.11.resultExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cISilentOptRes_resultExtension_item, - { "Item", "h450.resultExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cINotificationArg_argumentExtension, - { "argumentExtension", "h450.argumentExtension", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cISilentOptRes_resultExtension_item, + { "Item", "h450.11.resultExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_cINotificationArg_argumentExtension, + { "argumentExtension", "h450.11.argumentExtension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cINotificationArg_argumentExtension_item, - { "Item", "h450.argumentExtension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_callIntrusionImpending, - { "callIntrusionImpending", "h450.callIntrusionImpending", + "h450_11.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_11_cINotificationArg_argumentExtension_item, + { "Item", "h450.11.argumentExtension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_11_callIntrusionImpending, + { "callIntrusionImpending", "h450.11.callIntrusionImpending", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_callIntruded, - { "callIntruded", "h450.callIntruded", + "h450_11.NULL", HFILL }}, + { &hf_h450_11_callIntruded, + { "callIntruded", "h450.11.callIntruded", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_callIsolated, - { "callIsolated", "h450.callIsolated", + "h450_11.NULL", HFILL }}, + { &hf_h450_11_callIsolated, + { "callIsolated", "h450.11.callIsolated", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_callForceReleased, - { "callForceReleased", "h450.callForceReleased", + "h450_11.NULL", HFILL }}, + { &hf_h450_11_callForceReleased, + { "callForceReleased", "h450.11.callForceReleased", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_callIntrusionComplete, - { "callIntrusionComplete", "h450.callIntrusionComplete", + "h450_11.NULL", HFILL }}, + { &hf_h450_11_callIntrusionComplete, + { "callIntrusionComplete", "h450.11.callIntrusionComplete", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_callIntrusionEnd, - { "callIntrusionEnd", "h450.callIntrusionEnd", + "h450_11.NULL", HFILL }}, + { &hf_h450_11_callIntrusionEnd, + { "callIntrusionEnd", "h450.11.callIntrusionEnd", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_featureList, - { "featureList", "h450.featureList", + "h450_11.NULL", HFILL }}, + +/* --- Module Common-Information-Operations --- --- --- */ + + { &hf_h450_12_h450_12_DummyArg_PDU, + { "DummyArg", "h450.12.DummyArg", + FT_NONE, BASE_NONE, NULL, 0, + "h450_12.DummyArg", HFILL }}, + { &hf_h450_12_h450_12_CmnArg_PDU, + { "CmnArg", "h450.12.CmnArg", FT_NONE, BASE_NONE, NULL, 0, - "h450.FeatureList", HFILL }}, - { &hf_h450_featureValues, - { "featureValues", "h450.featureValues", + "h450_12.CmnArg", HFILL }}, + { &hf_h450_12_featureList, + { "featureList", "h450.12.featureList", FT_NONE, BASE_NONE, NULL, 0, - "h450.FeatureValues", HFILL }}, - { &hf_h450_featureControl, - { "featureControl", "h450.featureControl", + "h450_12.FeatureList", HFILL }}, + { &hf_h450_12_featureValues, + { "featureValues", "h450.12.featureValues", FT_NONE, BASE_NONE, NULL, 0, - "h450.FeatureControl", HFILL }}, - { &hf_h450_cmnArg_extension, - { "extension", "h450.extension", + "h450_12.FeatureValues", HFILL }}, + { &hf_h450_12_featureControl, + { "featureControl", "h450.12.featureControl", + FT_NONE, BASE_NONE, NULL, 0, + "h450_12.FeatureControl", HFILL }}, + { &hf_h450_12_cmnArg_extension, + { "extension", "h450.12.extension", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cmnArg_extension_item, - { "Item", "h450.extension_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_cmnRequestArg_extensionArg, - { "extensionArg", "h450.extensionArg", + "h450_12.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_12_cmnArg_extension_item, + { "Item", "h450.12.extension_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_12_extensionArg, + { "extensionArg", "h450.12.extensionArg", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, - { &hf_h450_cmnRequestArg_extensionArg_item, - { "Item", "h450.extensionArg_item", - FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0, - "h450.MixedExtension", HFILL }}, - { &hf_h450_ssCFreRoutingSupported, - { "ssCFreRoutingSupported", "h450.ssCFreRoutingSupported", + "h450_12.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }}, + { &hf_h450_12_extensionArg_item, + { "Item", "h450.12.extensionArg_item", + FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0, + "h450_4.MixedExtension", HFILL }}, + { &hf_h450_12_ssCFreRoutingSupported, + { "ssCFreRoutingSupported", "h450.12.ssCFreRoutingSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCTreRoutingSupported, - { "ssCTreRoutingSupported", "h450.ssCTreRoutingSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCTreRoutingSupported, + { "ssCTreRoutingSupported", "h450.12.ssCTreRoutingSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCCBSPossible, - { "ssCCBSPossible", "h450.ssCCBSPossible", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCCBSPossible, + { "ssCCBSPossible", "h450.12.ssCCBSPossible", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCCNRPossible, - { "ssCCNRPossible", "h450.ssCCNRPossible", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCCNRPossible, + { "ssCCNRPossible", "h450.12.ssCCNRPossible", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCOSupported, - { "ssCOSupported", "h450.ssCOSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCOSupported, + { "ssCOSupported", "h450.12.ssCOSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCIForcedReleaseSupported, - { "ssCIForcedReleaseSupported", "h450.ssCIForcedReleaseSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCIForcedReleaseSupported, + { "ssCIForcedReleaseSupported", "h450.12.ssCIForcedReleaseSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCIIsolationSupported, - { "ssCIIsolationSupported", "h450.ssCIIsolationSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCIIsolationSupported, + { "ssCIIsolationSupported", "h450.12.ssCIIsolationSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCIWaitOnBusySupported, - { "ssCIWaitOnBusySupported", "h450.ssCIWaitOnBusySupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCIWaitOnBusySupported, + { "ssCIWaitOnBusySupported", "h450.12.ssCIWaitOnBusySupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCISilentMonitoringSupported, - { "ssCISilentMonitoringSupported", "h450.ssCISilentMonitoringSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCISilentMonitoringSupported, + { "ssCISilentMonitoringSupported", "h450.12.ssCISilentMonitoringSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCIConferenceSupported, - { "ssCIConferenceSupported", "h450.ssCIConferenceSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCIConferenceSupported, + { "ssCIConferenceSupported", "h450.12.ssCIConferenceSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCHFarHoldSupported, - { "ssCHFarHoldSupported", "h450.ssCHFarHoldSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCHFarHoldSupported, + { "ssCHFarHoldSupported", "h450.12.ssCHFarHoldSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssMWICallbackSupported, - { "ssMWICallbackSupported", "h450.ssMWICallbackSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssMWICallbackSupported, + { "ssMWICallbackSupported", "h450.12.ssMWICallbackSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCPCallParkSupported, - { "ssCPCallParkSupported", "h450.ssCPCallParkSupported", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCPCallParkSupported, + { "ssCPCallParkSupported", "h450.12.ssCPCallParkSupported", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_partyCategory, - { "partyCategory", "h450.partyCategory", - FT_UINT32, BASE_DEC, VALS(h450_PartyCategory_vals), 0, - "h450.PartyCategory", HFILL }}, - { &hf_h450_ssCIprotectionLevel, - { "ssCIprotectionLevel", "h450.ssCIprotectionLevel", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_partyCategory, + { "partyCategory", "h450.12.partyCategory", + FT_UINT32, BASE_DEC, VALS(h450_12_PartyCategory_vals), 0, + "h450_12.PartyCategory", HFILL }}, + { &hf_h450_12_ssCIprotectionLevel, + { "ssCIprotectionLevel", "h450.12.ssCIprotectionLevel", FT_UINT32, BASE_DEC, NULL, 0, - "h450.SSCIProtectionLevel", HFILL }}, - { &hf_h450_ssCHDoNotHold, - { "ssCHDoNotHold", "h450.ssCHDoNotHold", + "h450_12.SSCIProtectionLevel", HFILL }}, + { &hf_h450_12_ssCHDoNotHold, + { "ssCHDoNotHold", "h450.12.ssCHDoNotHold", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCTDoNotTransfer, - { "ssCTDoNotTransfer", "h450.ssCTDoNotTransfer", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCTDoNotTransfer, + { "ssCTDoNotTransfer", "h450.12.ssCTDoNotTransfer", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssMWICallbackCall, - { "ssMWICallbackCall", "h450.ssMWICallbackCall", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssMWICallbackCall, + { "ssMWICallbackCall", "h450.12.ssMWICallbackCall", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_ssCISilentMonitorPermitted, - { "ssCISilentMonitorPermitted", "h450.ssCISilentMonitorPermitted", + "h450_12.NULL", HFILL }}, + { &hf_h450_12_ssCISilentMonitorPermitted, + { "ssCISilentMonitorPermitted", "h450.12.ssCISilentMonitorPermitted", FT_NONE, BASE_NONE, NULL, 0, - "h450.NULL", HFILL }}, - { &hf_h450_unspecified_extension, - { "extension", "h450.extension", - FT_NONE, BASE_NONE, NULL, 0, - "h450.Extension", HFILL }}, - { &hf_h450_nonStandard, - { "nonStandard", "h450.nonStandard", - FT_NONE, BASE_NONE, NULL, 0, - "h225.NonStandardParameter", HFILL }}, - { &hf_h450_extensionId, - { "extensionId", "h450.extensionId", - FT_OID, BASE_NONE, NULL, 0, - "h450.OBJECT_IDENTIFIER", HFILL }}, - { &hf_h450_extensionArgument, - { "extensionArgument", "h450.extensionArgument", - FT_BYTES, BASE_HEX, NULL, 0, - "h450.ExtensionArgument", HFILL }}, + "h450_12.NULL", HFILL }}, /*--- End of included file: packet-h450-hfarr.c ---*/ -#line 1040 "packet-h450-template.c" +#line 252 "packet-h450-template.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, /*--- Included file: packet-h450-ettarr.c ---*/ #line 1 "packet-h450-ettarr.c" + +/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */ + &ett_h450_H4501SupplementaryService, &ett_h450_NetworkFacilityExtension, &ett_h450_EntityType, &ett_h450_InterpretationApdu, &ett_h450_ServiceApdus, - &ett_h450_SEQUENCE_OF_ROS, + &ett_h450_SEQUENCE_SIZE_1_MAX_OF_ROS, &ett_h450_PresentedAddressScreened, &ett_h450_PresentedAddressUnscreened, &ett_h450_PresentedNumberScreened, @@ -5411,134 +6532,209 @@ void proto_register_h450(void) { &ett_h450_SEQUENCE_OF_AliasAddress, &ett_h450_PartySubaddress, &ett_h450_UserSpecifiedSubaddress, - &ett_h450_DummyArg, - &ett_h450_DummyRes, - &ett_h450_CTInitiateArg, - &ett_h450_ArgumentExtension, - &ett_h450_CTSetupArg, - &ett_h450_CTIdentifyRes, - &ett_h450_T_resultExtension, - &ett_h450_CTUpdateArg, - &ett_h450_SubaddressTransferArg, - &ett_h450_CTCompleteArg, - &ett_h450_CTActiveArg, - &ett_h450_ExtensionSeq, - &ett_h450_ActivateDiversionQArg, - &ett_h450_ActivateDiversionQArg_extension, - &ett_h450_ActivateDiversionQRes, - &ett_h450_DeactivateDiversionQArg, - &ett_h450_DeactivateDiversionQArg_extension, - &ett_h450_DeactivateDiversionQRes, - &ett_h450_InterrogateDiversionQ, - &ett_h450_InterrogateDiversionQ_extension, - &ett_h450_CheckRestrictionArg, - &ett_h450_CheckRestrictionArg_extension, - &ett_h450_CheckRestrictionRes, - &ett_h450_CallReroutingArg, - &ett_h450_CallReroutingArg_extension, - &ett_h450_CallReroutingRes, - &ett_h450_DivertingLegInformation1Arg, - &ett_h450_DivertingLegInformation1Arg_extension, - &ett_h450_DivertingLegInformation2Arg, - &ett_h450_DivertingLegInformation2Arg_extension, - &ett_h450_DivertingLegInformation3Arg, - &ett_h450_DivertingLegInformation3Arg_extension, - &ett_h450_DivertingLegInformation4Arg, - &ett_h450_DivertingLegInformation4Arg_extension, - &ett_h450_CfnrDivertedLegFailedArg, - &ett_h450_IntResultList, - &ett_h450_IntResult, - &ett_h450_IntResult_extension, - &ett_h450_HoldNotificArg, - &ett_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension, - &ett_h450_RetrieveNotificArg, - &ett_h450_RemoteHoldArg, - &ett_h450_RemoteHoldRes, - &ett_h450_RemoteRetrieveArg, - &ett_h450_RemoteRetrieveRes, - &ett_h450_MixedExtension, - &ett_h450_CpRequestArg, - &ett_h450_CpRequestRes, - &ett_h450_CpSetupArg, - &ett_h450_CpSetupRes, - &ett_h450_GroupIndicationOnArg, - &ett_h450_GroupIndicationOnRes, - &ett_h450_GroupIndicationOffArg, - &ett_h450_GroupIndicationOffRes, - &ett_h450_PickrequArg, - &ett_h450_PickrequRes, - &ett_h450_PickupArg, - &ett_h450_PickupRes, - &ett_h450_PickExeArg, - &ett_h450_PickExeRes, - &ett_h450_CpNotifyArg, - &ett_h450_CpickupNotifyArg, - &ett_h450_CallWaitingArg, - &ett_h450_MWIActivateArg, - &ett_h450_MwiDummyRes, - &ett_h450_MWIDeactivateArg, - &ett_h450_MWIInterrogateArg, - &ett_h450_MWIInterrogateRes, - &ett_h450_MWIInterrogateResElt, - &ett_h450_MsgCentreId, - &ett_h450_ExtensionArg, - &ett_h450_NameArg, - &ett_h450_Name, - &ett_h450_NamePresentationAllowed, - &ett_h450_NamePresentationRestricted, - &ett_h450_CcRequestArg, - &ett_h450_CcRequestRes, - &ett_h450_CcArg, - &ett_h450_CcShortArg, - &ett_h450_CcLongArg, - &ett_h450_CoReqOptArg, - &ett_h450_RUAlertOptArg, - &ett_h450_CfbOvrOptArg, - &ett_h450_CIRequestArg, - &ett_h450_CIRequestRes, - &ett_h450_CIGetCIPLOptArg, - &ett_h450_CIGetCIPLRes, - &ett_h450_CIIsOptArg, - &ett_h450_CIIsOptRes, - &ett_h450_CIFrcRelArg, - &ett_h450_CIFrcRelOptRes, - &ett_h450_CIWobOptArg, - &ett_h450_CIWobOptRes, - &ett_h450_CISilentArg, - &ett_h450_CISilentOptRes, - &ett_h450_CINotificationArg, - &ett_h450_CIStatusInformation, - &ett_h450_CmnArg, - &ett_h450_CmnRequestArg, - &ett_h450_FeatureList, - &ett_h450_FeatureValues, - &ett_h450_FeatureControl, - &ett_h450_Unspecified, &ett_h450_Extension, +/* --- Module Call-Transfer-Operations --- --- --- */ + + &ett_h450_2_DummyArg, + &ett_h450_2_DummyRes, + &ett_h450_2_CTInitiateArg, + &ett_h450_2_T_cTInitiateArg_argumentExtension, + &ett_h450_2_CTSetupArg, + &ett_h450_2_T_cTSetupArg_argumentExtension, + &ett_h450_2_CTIdentifyRes, + &ett_h450_2_T_resultExtension, + &ett_h450_2_CTUpdateArg, + &ett_h450_2_T_cTUpdateArg_argumentExtension, + &ett_h450_2_SubaddressTransferArg, + &ett_h450_2_T_subaddressTransferArg_argumentExtension, + &ett_h450_2_CTCompleteArg, + &ett_h450_2_T_cTCompleteArg_argumentExtension, + &ett_h450_2_CTActiveArg, + &ett_h450_2_T_cTActiveArg_argumentExtension, + &ett_h450_2_ExtensionSeq, + &ett_h450_2_PAR_unspecified, + +/* --- Module Call-Diversion-Operations --- --- --- */ + + &ett_h450_3_ARG_activateDiversionQ, + &ett_h450_3_ActivateDiversionQArg_extension, + &ett_h450_3_RES_activateDiversionQ, + &ett_h450_3_ARG_deactivateDiversionQ, + &ett_h450_3_DeactivateDiversionQArg_extension, + &ett_h450_3_RES_deactivateDiversionQ, + &ett_h450_3_ARG_interrogateDiversionQ, + &ett_h450_3_InterrogateDiversionQ_extension, + &ett_h450_3_ARG_checkRestriction, + &ett_h450_3_CheckRestrictionArg_extension, + &ett_h450_3_RES_checkRestriction, + &ett_h450_3_ARG_callRerouting, + &ett_h450_3_CallReroutingArg_extension, + &ett_h450_3_RES_callRerouting, + &ett_h450_3_ARG_divertingLegInformation1, + &ett_h450_3_DivertingLegInformation1Arg_extension, + &ett_h450_3_ARG_divertingLegInformation2, + &ett_h450_3_DivertingLegInformation2Arg_extension, + &ett_h450_3_ARG_divertingLegInformation3, + &ett_h450_3_DivertingLegInformation3Arg_extension, + &ett_h450_3_ARG_divertingLegInformation4, + &ett_h450_3_DivertingLegInformation4Arg_extension, + &ett_h450_3_ARG_cfnrDivertedLegFailed, + &ett_h450_3_IntResultList, + &ett_h450_3_IntResult, + &ett_h450_3_IntResult_extension, + &ett_h450_3_PAR_unspecified, + &ett_h450_3_ExtensionSeq, + +/* --- Module Call-Hold-Operations --- --- --- */ + + &ett_h450_4_HoldNotificArg, + &ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_4_RetrieveNotificArg, + &ett_h450_4_RemoteHoldArg, + &ett_h450_4_RemoteHoldRes, + &ett_h450_4_RemoteRetrieveArg, + &ett_h450_4_RemoteRetrieveRes, + &ett_h450_4_MixedExtension, + &ett_h450_4_PAR_undefined, + +/* --- Module Call-Park-Pickup-Operations --- --- --- */ + + &ett_h450_5_CpRequestArg, + &ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_5_CpRequestRes, + &ett_h450_5_CpSetupArg, + &ett_h450_5_CpSetupRes, + &ett_h450_5_GroupIndicationOnArg, + &ett_h450_5_GroupIndicationOnRes, + &ett_h450_5_GroupIndicationOffArg, + &ett_h450_5_GroupIndicationOffRes, + &ett_h450_5_PickrequArg, + &ett_h450_5_PickrequRes, + &ett_h450_5_PickupArg, + &ett_h450_5_PickupRes, + &ett_h450_5_PickExeArg, + &ett_h450_5_PickExeRes, + &ett_h450_5_CpNotifyArg, + &ett_h450_5_CpickupNotifyArg, + &ett_h450_5_PAR_undefined, + +/* --- Module Call-Waiting-Operations --- --- --- */ + + &ett_h450_6_CallWaitingArg, + &ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension, + +/* --- Module Message-Waiting-Indication-Operations --- --- --- */ + + &ett_h450_7_MWIActivateArg, + &ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_7_DummyRes, + &ett_h450_7_MWIDeactivateArg, + &ett_h450_7_MWIInterrogateArg, + &ett_h450_7_MWIInterrogateRes, + &ett_h450_7_MWIInterrogateResElt, + &ett_h450_7_MsgCentreId, + &ett_h450_7_PAR_undefined, + +/* --- Module Name-Operations --- --- --- */ + + &ett_h450_8_ARG_callingName, + &ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_8_ARG_alertingName, + &ett_h450_8_ARG_connectedName, + &ett_h450_8_ARG_busyName, + &ett_h450_8_Name, + &ett_h450_8_NamePresentationAllowed, + &ett_h450_8_NamePresentationRestricted, + +/* --- Module Call-Completion-Operations --- --- --- */ + + &ett_h450_9_CcRequestArg, + &ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_9_CcRequestRes, + &ett_h450_9_CcArg, + &ett_h450_9_CcShortArg, + &ett_h450_9_CcLongArg, + +/* --- Module Call-Offer-Operations --- --- --- */ + + &ett_h450_10_CoReqOptArg, + &ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_10_RUAlertOptArg, + &ett_h450_10_CfbOvrOptArg, + +/* --- Module Call-Intrusion-Operations --- --- --- */ + + &ett_h450_11_CIRequestArg, + &ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_11_CIRequestRes, + &ett_h450_11_CIGetCIPLOptArg, + &ett_h450_11_CIGetCIPLRes, + &ett_h450_11_CIIsOptArg, + &ett_h450_11_CIIsOptRes, + &ett_h450_11_CIFrcRelArg, + &ett_h450_11_CIFrcRelOptRes, + &ett_h450_11_CIWobOptArg, + &ett_h450_11_CIWobOptRes, + &ett_h450_11_CISilentArg, + &ett_h450_11_CISilentOptRes, + &ett_h450_11_CINotificationArg, + &ett_h450_11_CIStatusInformation, + +/* --- Module Common-Information-Operations --- --- --- */ + + &ett_h450_12_CmnArg, + &ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension, + &ett_h450_12_DummyArg, + &ett_h450_12_FeatureList, + &ett_h450_12_FeatureValues, + &ett_h450_12_FeatureControl, + /*--- End of included file: packet-h450-ettarr.c ---*/ -#line 1056 "packet-h450-template.c" +#line 257 "packet-h450-template.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); + } } diff --git a/epan/dissectors/packet-h450.h b/epan/dissectors/packet-h450.h deleted file mode 100644 index b9dbc16701..0000000000 --- a/epan/dissectors/packet-h450.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Do not modify this file. */ -/* It is created automatically by the ASN.1 to Wireshark dissector compiler */ -/* .\packet-h450.h */ -/* ../../tools/asn2wrs.py -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn */ - -/* Input file: packet-h450-template.h */ - -#line 1 "packet-h450-template.h" -/* packet-h450.h - * Routines for h450 packet dissection - * Copyright 2005, Anders Broman <anders.broman@ericsson.com> - * - * $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. - */ - -#ifndef PACKET_H450_H -#define PACKET_H450_H - - - -/*#include "packet-H450-exp.h" */ - -#endif /* PACKET_H450_H */ - - diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c index c8e22a7394..486a9d6d81 100644 --- a/epan/dissectors/packet-per.c +++ b/epan/dissectors/packet-per.c @@ -738,11 +738,9 @@ DEBUG_ENTRY("dissect_per_constrained_sequence_of"); } /* 19.6 ub>=64k or unset */ - if(max_len>=65536){ - /* semi-constrained whole number for number of elements */ - /* each element encoded as 10.9 */ + if ((max_len >= 65536) || (max_len == NO_BOUND)) { + /* no constraint, see 10.9.4.2 */ offset=dissect_per_length_determinant(tvb, offset, actx, parent_tree, hf_per_sequence_of_length, &length); - length+=min_len; goto call_sohelper; } diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py index e4757202d3..23505e6e52 100755 --- a/tools/asn2wrs.py +++ b/tools/asn2wrs.py @@ -1263,9 +1263,10 @@ class EthCtx: if self.type[t]['import']: continue m = self.type[t]['module'] - if not self.all_tags.has_key(m): - self.all_tags[m] = {} - self.all_tags[m][t] = self.type[t]['val'].GetTTag(self) + if not self.Per(): + if not self.all_tags.has_key(m): + self.all_tags[m] = {} + self.all_tags[m][t] = self.type[t]['val'].GetTTag(self) if not self.all_type_attr.has_key(m): self.all_type_attr[m] = {} self.all_type_attr[m][t] = self.eth_get_type_attr(t).copy() @@ -4176,20 +4177,31 @@ class ChoiceType (Type): #print "Choice IndetermTag()=%s" % (str(not self.HasOwnTag())) return not self.HasOwnTag() - def get_vals(self, ectx): + def detect_tagval(self, ectx): tagval = False - if (ectx.Ber()): - lst = self.elt_list[:] - if hasattr(self, 'ext_list'): - lst.extend(self.ext_list) - if (len(lst) > 0): - t = lst[0].GetTag(ectx)[0] - tagval = True - if (t == 'BER_CLASS_UNI'): + lst = self.elt_list[:] + if hasattr(self, 'ext_list'): + lst.extend(self.ext_list) + if (len(lst) > 0) and (not ectx.Per() or lst[0].HasOwnTag()): + t = lst[0].GetTag(ectx)[0] + tagval = True + else: + t = '' + tagval = False + if (t == 'BER_CLASS_UNI'): + tagval = False + for e in (lst): + if not ectx.Per() or e.HasOwnTag(): + tt = e.GetTag(ectx)[0] + else: + tt = '' + tagval = False + if (tt != t): tagval = False - for e in (lst): - if (e.GetTag(ectx)[0] != t): - tagval = False + return tagval + + def get_vals(self, ectx): + tagval = self.detect_tagval(ectx) vals = [] cnt = 0 for e in (self.elt_list): @@ -4260,19 +4272,7 @@ class ChoiceType (Type): # end out_item() #print "eth_type_default_table(tname='%s')" % (tname) fname = ectx.eth_type[tname]['ref'][0] - tagval = False - if (ectx.Ber()): - lst = self.elt_list[:] - if hasattr(self, 'ext_list'): - lst.extend(self.ext_list) - if (len(lst) > 0): - t = lst[0].GetTag(ectx)[0] - tagval = True - if (t == 'BER_CLASS_UNI'): - tagval = False - for e in (lst): - if (e.GetTag(ectx)[0] != t): - tagval = False + tagval = self.detect_tagval(ectx) if (ectx.Ber()): if (ectx.NewBer()): table = "static const %(ER)s_choice_t %(TABLE)s[] = {\n" |