/* Do not modify this file.                                                   */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
/* packet-h450.c                                                              */
/* ../../tools/asn2wrs.py -c ./h450.cnf -s ./packet-h450-template -D . 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 */

#line 1 "packet-h450-template.c"
/* packet-h450.c
 * Routines for h450 packet dissection
 * Based on the previous h450 dissector by:
 * 2003  Graeme Reid (graeme.reid@norwoodsystems.com)
 * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
 *
 * $Id: packet-h450.c 32748 2010-05-11 03:53:31Z morriss $
 *
 * 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.
 *
 * Credit to Tomas Kukosa for developing the asn2wrs compiler.
 *
 */

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <glib.h>
#include <epan/packet.h>

#include <epan/asn1.h>

#include "packet-per.h"
#include "packet-h225.h"

#include "packet-h450-ros.h"

#define PNAME  "H.450 Supplementary Services"
#define PSNAME "H.450"
#define PFNAME "h450"

/* Initialize the protocol and registered fields */
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"

/* --- 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 */
static int hf_h450_sourceEntity = -1;             /* EntityType */
static int hf_h450_sourceEntityAddress = -1;      /* AddressInformation */
static int hf_h450_destinationEntity = -1;        /* EntityType */
static int hf_h450_destinationEntityAddress = -1;  /* AddressInformation */
static int hf_h450_endpoint = -1;                 /* NULL */
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;                 /* T_rosApdus */
static int hf_h450_rosApdus_item = -1;            /* T_rosApdus_item */
static int hf_h450_destinationAddress = -1;       /* SEQUENCE_OF_AliasAddress */
static int hf_h450_destinationAddress_item = -1;  /* AliasAddress */
static int hf_h450_remoteExtensionAddress = -1;   /* AliasAddress */
static int hf_h450_destinationAddressPresentationIndicator = -1;  /* PresentationIndicator */
static int hf_h450_destinationAddressScreeningIndicator = -1;  /* ScreeningIndicator */
static int hf_h450_remoteExtensionAddressPresentationIndicator = -1;  /* PresentationIndicator */
static int hf_h450_remoteExtensionAddressScreeningIndicator = -1;  /* ScreeningIndicator */
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_extensionId = -1;              /* OBJECT_IDENTIFIER */
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 54 "packet-h450-template.c"

/* Initialize the subtree pointers */

/*--- 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_T_rosApdus = -1;
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_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 57 "packet-h450-template.c"

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 60 "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 65 "packet-h450-template.c"
  {   0, NULL}
};

/* ROSE context */
static rose_ctx_t h450_rose_ctx;

/* 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_) {
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);

  return offset;
}


static const value_string h450_EntityType_vals[] = {
  {   0, "endpoint" },
  {   1, "anyEntity" },
  { 0, NULL }
};

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 }
};

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, h450_EntityType_choice,
                                 NULL);

  return offset;
}



static int
dissect_h450_AddressInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
  offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);

  return offset;
}


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 },
  { &hf_h450_destinationEntityAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_AddressInformation },
  { NULL, 0, 0, NULL }
};

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, h450_NetworkFacilityExtension_sequence);

  return offset;
}


static const value_string h450_InterpretationApdu_vals[] = {
  {   0, "discardAnyUnrecognizedInvokePdu" },
  {   1, "clearCallIfAnyInvokePduNotRecognized" },
  {   2, "rejectAnyUnrecognizedInvokePdu" },
  { 0, NULL }
};

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 },
  { 0, NULL, 0, NULL }
};

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, h450_InterpretationApdu_choice,
                                 NULL);

  return offset;
}



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 62 "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_T_rosApdus_sequence_of[1] = {
  { &hf_h450_rosApdus_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_T_rosApdus_item },
};

static int
dissect_h450_T_rosApdus(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_T_rosApdus, h450_T_rosApdus_sequence_of,
                                                  1, NO_BOUND, FALSE);

  return offset;
}


static const value_string h450_ServiceApdus_vals[] = {
  {   0, "rosApdus" },
  { 0, NULL }
};

static const per_choice_t h450_ServiceApdus_choice[] = {
  {   0, &hf_h450_rosApdus       , ASN1_EXTENSION_ROOT    , dissect_h450_T_rosApdus },
  { 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, h450_ServiceApdus_choice,
                                 NULL);

  return offset;
}


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 },
  { NULL, 0, 0, NULL }
};

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 55 "h450.cnf"
  proto_item *hidden_item;

  hidden_item = proto_tree_add_item(tree, proto_h450, tvb, offset, -1, FALSE);
  PROTO_ITEM_SET_HIDDEN(hidden_item);

  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
                                   ett_h450_H4501SupplementaryService, h450_H4501SupplementaryService_sequence);

  return offset;
}


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, h450_SEQUENCE_OF_AliasAddress_sequence_of);

  return offset;
}


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 },
  { &hf_h450_destinationAddressScreeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
  { &hf_h450_remoteExtensionAddressPresentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
  { &hf_h450_remoteExtensionAddressScreeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
  { NULL, 0, 0, NULL }
};

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, h450_EndpointAddress_sequence);

  return offset;
}



static int
dissect_h450_SubaddressInformation(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, 20, FALSE, NULL);

  return offset;
}



static int
dissect_h450_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_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 }
};

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, h450_UserSpecifiedSubaddress_sequence);

  return offset;
}



static int
dissect_h450_NSAPSubaddress(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, 20, FALSE, NULL);

  return offset;
}


static const value_string h450_PartySubaddress_vals[] = {
  {   0, "userSpecifiedSubaddress" },
  {   1, "nsapSubaddress" },
  { 0, NULL }
};

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 }
};

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, h450_PartySubaddress_choice,
                                 NULL);

  return offset;
}



static int
dissect_h450_PresentationAllowedIndicator(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 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, FALSE, 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);

  return offset;
}



static int
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 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_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, 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;
}


/* --- 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_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_2_ExtensionSeq, h450_2_ExtensionSeq_sequence_of);

  return offset;
}


static const value_string h450_2_DummyArg_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_2_DummyArg, h450_2_DummyArg_choice,
                                 NULL);

  return offset;
}


static const value_string h450_2_DummyRes_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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;
}



static int
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, FALSE);

  return offset;
}


static const value_string h450_2_T_cTInitiateArg_argumentExtension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_2_T_cTInitiateArg_argumentExtension, h450_2_T_cTInitiateArg_argumentExtension_choice,
                                 NULL);

  return offset;
}


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_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_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_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 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_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_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_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_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;
}



static int
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, FALSE);

  return offset;
}


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_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_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 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_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_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_2_EndDesignation_vals[] = {
  {   0, "primaryEnd" },
  {   1, "secondaryEnd" },
  { 0, NULL }
};


static int
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);

  return offset;
}


static const value_string h450_2_CallStatus_vals[] = {
  {   0, "answered" },
  {   1, "alerting" },
  { 0, NULL }
};


static int
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);

  return offset;
}


static const value_string h450_2_T_cTCompleteArg_argumentExtension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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 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_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_2_CTCompleteArg, h450_2_CTCompleteArg_sequence);

  return offset;
}


static const value_string h450_2_T_cTActiveArg_argumentExtension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_2_T_cTActiveArg_argumentExtension, h450_2_T_cTActiveArg_argumentExtension_choice,
                                 NULL);

  return offset;
}


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 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_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_2_PAR_unspecified, h450_2_PAR_unspecified_choice,
                                 NULL);

  return offset;
}

/*--- PDUs ---*/

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;
}


/* --- Module Call-Diversion-Operations --- --- ---                           */


static const value_string h450_3_Procedure_vals[] = {
  {   0, "cfu" },
  {   1, "cfb" },
  {   2, "cfnr" },
  { 0, NULL }
};


static int
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);

  return offset;
}


static const value_string h450_3_BasicService_vals[] = {
  {   0, "allServices" },
  { 0, NULL }
};


static int
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,
                                     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_3_ActivateDiversionQArg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_ActivateDiversionQArg_extension, h450_3_ActivateDiversionQArg_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_activateDiversionQ, h450_3_ARG_activateDiversionQ_sequence);

  return offset;
}


static const value_string h450_3_RES_activateDiversionQ_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_RES_activateDiversionQ, h450_3_RES_activateDiversionQ_choice,
                                 NULL);

  return offset;
}


static const value_string h450_3_DeactivateDiversionQArg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_DeactivateDiversionQArg_extension, h450_3_DeactivateDiversionQArg_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_deactivateDiversionQ, h450_3_ARG_deactivateDiversionQ_sequence);

  return offset;
}


static const value_string h450_3_RES_deactivateDiversionQ_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_RES_deactivateDiversionQ, h450_3_RES_deactivateDiversionQ_choice,
                                 NULL);

  return offset;
}


static const value_string h450_3_InterrogateDiversionQ_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_InterrogateDiversionQ_extension, h450_3_InterrogateDiversionQ_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_interrogateDiversionQ, h450_3_ARG_interrogateDiversionQ_sequence);

  return offset;
}


static const value_string h450_3_CheckRestrictionArg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_CheckRestrictionArg_extension, h450_3_CheckRestrictionArg_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_checkRestriction, h450_3_ARG_checkRestriction_sequence);

  return offset;
}


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_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_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 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 int
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 int
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, FALSE);

  return offset;
}


static const value_string h450_3_CallReroutingArg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_CallReroutingArg_extension, h450_3_CallReroutingArg_extension_choice,
                                 NULL);

  return offset;
}


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_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_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_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_3_DivertingLegInformation1Arg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_DivertingLegInformation1Arg_extension, h450_3_DivertingLegInformation1Arg_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_divertingLegInformation1, h450_3_ARG_divertingLegInformation1_sequence);

  return offset;
}


static const value_string h450_3_DivertingLegInformation2Arg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_DivertingLegInformation2Arg_extension, h450_3_DivertingLegInformation2Arg_extension_choice,
                                 NULL);

  return offset;
}


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 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_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_3_DivertingLegInformation3Arg_extension, h450_3_DivertingLegInformation3Arg_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_divertingLegInformation3, h450_3_ARG_divertingLegInformation3_sequence);

  return offset;
}


static const value_string h450_3_DivertingLegInformation4Arg_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_DivertingLegInformation4Arg_extension, h450_3_DivertingLegInformation4Arg_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_ARG_divertingLegInformation4, h450_3_ARG_divertingLegInformation4_sequence);

  return offset;
}


static const value_string h450_3_ARG_cfnrDivertedLegFailed_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_ARG_cfnrDivertedLegFailed, h450_3_ARG_cfnrDivertedLegFailed_choice,
                                 NULL);

  return offset;
}



static int
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_3_IntResult_extension_vals[] = {
  {   0, "extensionSeq" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_3_IntResult_extension, h450_3_IntResult_extension_choice,
                                 NULL);

  return offset;
}


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_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_3_IntResult, h450_3_IntResult_sequence);

  return offset;
}


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, FALSE);

  return offset;
}


static const value_string h450_3_PAR_unspecified_vals[] = {
  {   0, "extension" },
  {   1, "nonStandard" },
  { 0, NULL }
};

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_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_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_4_MixedExtension_vals[] = {
  {   0, "extension" },
  {   1, "nonStandardData" },
  { 0, NULL }
};

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_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_4_MixedExtension, h450_4_MixedExtension_choice,
                                 NULL);

  return offset;
}


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_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_4_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
                                                  0, 255, FALSE);

  return offset;
}


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_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_4_HoldNotificArg, h450_4_HoldNotificArg_sequence);

  return offset;
}


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_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_4_RetrieveNotificArg, h450_4_RetrieveNotificArg_sequence);

  return offset;
}


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_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_4_RemoteHoldArg, h450_4_RemoteHoldArg_sequence);

  return offset;
}


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_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_4_RemoteHoldRes, h450_4_RemoteHoldRes_sequence);

  return offset;
}


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_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_4_RemoteRetrieveArg, h450_4_RemoteRetrieveArg_sequence);

  return offset;
}


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_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_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_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, FALSE);

  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);

  return offset;
}


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, FALSE);

  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_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_5_CpRequestArg, h450_5_CpRequestArg_sequence);

  return offset;
}


static const value_string h450_5_ParkCondition_vals[] = {
  {   0, "unspecified" },
  {   1, "parkedToUserIdle" },
  {   2, "parkedToUserBusy" },
  {   3, "parkedToGroup" },
  { 0, NULL }
};


static int
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);

  return offset;
}


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_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_5_CpRequestRes, h450_5_CpRequestRes_sequence);

  return offset;
}


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_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_5_CpSetupArg, h450_5_CpSetupArg_sequence);

  return offset;
}


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_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_5_CpSetupRes, h450_5_CpSetupRes_sequence);

  return offset;
}


static const value_string h450_5_CallType_vals[] = {
  {   0, "parkedCall" },
  {   1, "alertingCall" },
  { 0, NULL }
};


static int
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);

  return offset;
}


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_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_5_GroupIndicationOnArg, h450_5_GroupIndicationOnArg_sequence);

  return offset;
}


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_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_5_GroupIndicationOnRes, h450_5_GroupIndicationOnRes_sequence);

  return offset;
}


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_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_5_GroupIndicationOffArg, h450_5_GroupIndicationOffArg_sequence);

  return offset;
}


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_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_5_GroupIndicationOffRes, h450_5_GroupIndicationOffRes_sequence);

  return offset;
}


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_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_5_PickrequArg, h450_5_PickrequArg_sequence);

  return offset;
}


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_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_5_PickrequRes, h450_5_PickrequRes_sequence);

  return offset;
}


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_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_5_PickupArg, h450_5_PickupArg_sequence);

  return offset;
}


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_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_5_PickupRes, h450_5_PickupRes_sequence);

  return offset;
}


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_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_5_PickExeArg, h450_5_PickExeArg_sequence);

  return offset;
}


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_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_5_PickExeRes, h450_5_PickExeRes_sequence);

  return offset;
}


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_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_5_CpNotifyArg, h450_5_CpNotifyArg_sequence);

  return offset;
}


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_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_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_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, FALSE);

  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);

  return offset;
}


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, FALSE);

  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_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_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;
}



static int
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);

  return offset;
}



static int
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, FALSE);

  return offset;
}


static const value_string h450_7_MsgCentreId_vals[] = {
  {   0, "integer" },
  {   1, "partyNumber" },
  {   2, "numericString" },
  { 0, NULL }
};

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_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_7_MsgCentreId, h450_7_MsgCentreId_choice,
                                 NULL);

  return offset;
}



static int
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);

  return offset;
}



static int
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, FALSE);

  return offset;
}



static int
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);

  return offset;
}


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_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_7_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
                                                  0, 255, FALSE);

  return offset;
}


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_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_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_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, FALSE);

  return offset;
}



static int
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_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 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_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_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_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 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_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_7_MWIInterrogateRes, h450_7_MWIInterrogateRes_sequence_of,
                                                  1, 64, FALSE);

  return offset;
}


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_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, FALSE);

  return offset;
}

/*--- PDUs ---*/

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_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, FALSE, NULL);

  return offset;
}



static int
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, FALSE);

  return offset;
}


static const value_string h450_8_NamePresentationAllowed_vals[] = {
  {   0, "simpleName" },
  {   1, "extendedName" },
  { 0, NULL }
};

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_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_8_NamePresentationAllowed, h450_8_NamePresentationAllowed_choice,
                                 NULL);

  return offset;
}



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 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_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_8_NamePresentationRestricted, h450_8_NamePresentationRestricted_choice,
                                 NULL);

  return offset;
}


static const value_string h450_8_Name_vals[] = {
  {   0, "namePresentationAllowed" },
  {   1, "namePresentationRestricted" },
  {   2, "nameNotAvailable" },
  { 0, 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_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_8_Name, h450_8_Name_choice,
                                 NULL);

  return offset;
}


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_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, FALSE);

  return offset;
}


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_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_8_ARG_callingName, h450_8_ARG_callingName_sequence);

  return offset;
}


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_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_8_ARG_alertingName, h450_8_ARG_alertingName_sequence);

  return offset;
}


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_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_8_ARG_connectedName, h450_8_ARG_connectedName_sequence);

  return offset;
}


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_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_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 int
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 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_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, FALSE);

  return offset;
}


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_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_9_CcRequestArg, h450_9_CcRequestArg_sequence);

  return offset;
}


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_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_9_CcRequestRes, h450_9_CcRequestRes_sequence);

  return offset;
}


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_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 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_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_9_CcLongArg, h450_9_CcLongArg_sequence);

  return offset;
}


static const value_string h450_9_CcArg_vals[] = {
  {   0, "shortArg" },
  {   1, "longArg" },
  { 0, 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_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_9_CcArg, h450_9_CcArg_choice,
                                 NULL);

  return offset;
}

/*--- PDUs ---*/

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_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, FALSE);

  return offset;
}


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_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_10_CoReqOptArg, h450_10_CoReqOptArg_sequence);

  return offset;
}


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_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 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_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_10_CfbOvrOptArg, h450_10_CfbOvrOptArg_sequence);

  return offset;
}

/*--- PDUs ---*/

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_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 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_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, FALSE);

  return offset;
}


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_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_11_CIRequestArg, h450_11_CIRequestArg_sequence);

  return offset;
}



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_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 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_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_11_CIRequestRes, h450_11_CIRequestRes_sequence);

  return offset;
}


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_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_11_CIGetCIPLOptArg, h450_11_CIGetCIPLOptArg_sequence);

  return offset;
}


static const value_string h450_11_CIProtectionLevel_vals[] = {
  {   0, "lowProtection" },
  {   1, "mediumProtection" },
  {   2, "highProtection" },
  {   3, "fullProtection" },
  { 0, NULL }
};


static int
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 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_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_11_CIGetCIPLRes, h450_11_CIGetCIPLRes_sequence);

  return offset;
}


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_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_11_CIIsOptArg, h450_11_CIIsOptArg_sequence);

  return offset;
}


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_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_11_CIIsOptRes, h450_11_CIIsOptRes_sequence);

  return offset;
}


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_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_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 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_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_11_CIWobOptArg, h450_11_CIWobOptArg_sequence);

  return offset;
}


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_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_11_CIWobOptRes, h450_11_CIWobOptRes_sequence);

  return offset;
}


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_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_11_CISilentArg, h450_11_CISilentArg_sequence);

  return offset;
}


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_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_11_CISilentOptRes, h450_11_CISilentOptRes_sequence);

  return offset;
}


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_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 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);
  offset = dissect_h450_11_CIRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIRequestArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIRequestRes_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIGetCIPLOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIGetCIPLOptArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIGetCIPLRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIGetCIPLRes_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIIsOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIIsOptArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIIsOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIIsOptRes_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIFrcRelArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIFrcRelArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIFrcRelOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIFrcRelOptRes_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIWobOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIWobOptArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CIWobOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIWobOptRes_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CISilentArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CISilentArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CISilentOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CISilentOptRes_PDU);
  offset += 7; offset >>= 3;
  return offset;
}
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);
  offset = dissect_h450_11_CINotificationArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CINotificationArg_PDU);
  offset += 7; offset >>= 3;
  return offset;
}


/* --- Module Common-Information-Operations --- --- ---                       */



static int
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 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_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 h450_12_PartyCategory_vals[] = {
  {   0, "unknown" },
  {   1, "extension" },
  {   2, "attendant" },
  {   3, "emergExt" },
  { 0, NULL }
};


static int
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_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 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_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 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_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 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_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, FALSE);

  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_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 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_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;
}

/*--- 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;
}


/*--- End of included file: packet-h450-fn.c ---*/
#line 74 "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 83 "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 92 "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 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;
}

/*--- dissect_h450_arg ------------------------------------------------------*/
static int   
dissect_h450_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
  proto_item *hidden_item;
  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; 

  hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
  PROTO_ITEM_SET_HIDDEN(hidden_item);
  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);
  }

  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) {
  proto_item *hidden_item;
  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; 

  hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
  PROTO_ITEM_SET_HIDDEN(hidden_item);
  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);
  }

  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) {
  proto_item *hidden_item;
  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; 

  hidden_item = proto_tree_add_uint(tree, hf_h450_error, tvb, 0, 0, errcode);
  PROTO_ITEM_SET_HIDDEN(hidden_item);
  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);
  }

  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);
    }

  return offset;
}

/*--- proto_register_h450 -------------------------------------------*/
void proto_register_h450(void) {

  /* List of fields */
  static hf_register_info hf[] = {
    { &hf_h450_operation, { "Operation", "h450.operation",
                           FT_UINT8, BASE_DEC, VALS(h450_str_operation), 0x0,
                           NULL, HFILL }},
    { &hf_h450_error,     { "Error", "h450.error",
                           FT_UINT8, BASE_DEC, VALS(h450_str_error), 0x0,
                           NULL, HFILL }},

/*--- Included file: packet-h450-hfarr.c ---*/
#line 1 "packet-h450-hfarr.c"

/* --- 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,
        NULL, HFILL }},
    { &hf_h450_networkFacilityExtension,
      { "networkFacilityExtension", "h450.networkFacilityExtension",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_interpretationApdu,
      { "interpretationApdu", "h450.interpretationApdu",
        FT_UINT32, BASE_DEC, VALS(h450_InterpretationApdu_vals), 0,
        NULL, HFILL }},
    { &hf_h450_serviceApdu,
      { "serviceApdu", "h450.serviceApdu",
        FT_UINT32, BASE_DEC, VALS(h450_ServiceApdus_vals), 0,
        "ServiceApdus", HFILL }},
    { &hf_h450_sourceEntity,
      { "sourceEntity", "h450.sourceEntity",
        FT_UINT32, BASE_DEC, VALS(h450_EntityType_vals), 0,
        "EntityType", HFILL }},
    { &hf_h450_sourceEntityAddress,
      { "sourceEntityAddress", "h450.sourceEntityAddress",
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
        "AddressInformation", HFILL }},
    { &hf_h450_destinationEntity,
      { "destinationEntity", "h450.destinationEntity",
        FT_UINT32, BASE_DEC, VALS(h450_EntityType_vals), 0,
        "EntityType", HFILL }},
    { &hf_h450_destinationEntityAddress,
      { "destinationEntityAddress", "h450.destinationEntityAddress",
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
        "AddressInformation", HFILL }},
    { &hf_h450_endpoint,
      { "endpoint", "h450.endpoint",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_anyEntity,
      { "anyEntity", "h450.anyEntity",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_discardAnyUnrecognizedInvokePdu,
      { "discardAnyUnrecognizedInvokePdu", "h450.discardAnyUnrecognizedInvokePdu",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_clearCallIfAnyInvokePduNotRecognized,
      { "clearCallIfAnyInvokePduNotRecognized", "h450.clearCallIfAnyInvokePduNotRecognized",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_rejectAnyUnrecognizedInvokePdu,
      { "rejectAnyUnrecognizedInvokePdu", "h450.rejectAnyUnrecognizedInvokePdu",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_rosApdus,
      { "rosApdus", "h450.rosApdus",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_rosApdus_item,
      { "rosApdus item", "h450.rosApdus_item",
        FT_UINT32, BASE_DEC, VALS(h450_ros_ROS_vals), 0,
        NULL, HFILL }},
    { &hf_h450_destinationAddress,
      { "destinationAddress", "h450.destinationAddress",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_OF_AliasAddress", HFILL }},
    { &hf_h450_destinationAddress_item,
      { "AliasAddress", "h450.AliasAddress",
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
        NULL, HFILL }},
    { &hf_h450_remoteExtensionAddress,
      { "remoteExtensionAddress", "h450.remoteExtensionAddress",
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
        "AliasAddress", HFILL }},
    { &hf_h450_destinationAddressPresentationIndicator,
      { "destinationAddressPresentationIndicator", "h450.destinationAddressPresentationIndicator",
        FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
        "PresentationIndicator", HFILL }},
    { &hf_h450_destinationAddressScreeningIndicator,
      { "destinationAddressScreeningIndicator", "h450.destinationAddressScreeningIndicator",
        FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
        "ScreeningIndicator", HFILL }},
    { &hf_h450_remoteExtensionAddressPresentationIndicator,
      { "remoteExtensionAddressPresentationIndicator", "h450.remoteExtensionAddressPresentationIndicator",
        FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
        "PresentationIndicator", HFILL }},
    { &hf_h450_remoteExtensionAddressScreeningIndicator,
      { "remoteExtensionAddressScreeningIndicator", "h450.remoteExtensionAddressScreeningIndicator",
        FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
        "ScreeningIndicator", HFILL }},
    { &hf_h450_userSpecifiedSubaddress,
      { "userSpecifiedSubaddress", "h450.userSpecifiedSubaddress",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_nsapSubaddress,
      { "nsapSubaddress", "h450.nsapSubaddress",
        FT_BYTES, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_subaddressInformation,
      { "subaddressInformation", "h450.subaddressInformation",
        FT_BYTES, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_oddCountIndicator,
      { "oddCountIndicator", "h450.oddCountIndicator",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        "BOOLEAN", HFILL }},
    { &hf_h450_extensionId,
      { "extensionId", "h450.extensionId",
        FT_OID, BASE_NONE, NULL, 0,
        "OBJECT_IDENTIFIER", HFILL }},
    { &hf_h450_extensionArgument,
      { "extensionArgument", "h450.extensionArgument",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_CTIdentifyRes_PDU,
      { "CTIdentifyRes", "h450.2.CTIdentifyRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_CTInitiateArg_PDU,
      { "CTInitiateArg", "h450.2.CTInitiateArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_DummyRes_PDU,
      { "DummyRes", "h450.2.DummyRes",
        FT_UINT32, BASE_DEC, VALS(h450_2_DummyRes_vals), 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_CTSetupArg_PDU,
      { "CTSetupArg", "h450.2.CTSetupArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_CTUpdateArg_PDU,
      { "CTUpdateArg", "h450.2.CTUpdateArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_SubaddressTransferArg_PDU,
      { "SubaddressTransferArg", "h450.2.SubaddressTransferArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_CTCompleteArg_PDU,
      { "CTCompleteArg", "h450.2.CTCompleteArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_h450_2_CTActiveArg_PDU,
      { "CTActiveArg", "h450.2.CTActiveArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_2_extensionSeq,
      { "extensionSeq", "h450.2.extensionSeq",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_nonStandardData,
      { "nonStandardData", "h450.2.nonStandardData",
        FT_NONE, BASE_NONE, NULL, 0,
        "NonStandardParameter", HFILL }},
    { &hf_h450_2_callIdentity,
      { "callIdentity", "h450.2.callIdentity",
        FT_STRING, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_reroutingNumber,
      { "reroutingNumber", "h450.2.reroutingNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_2_cTInitiateArg_argumentExtension,
      { "argumentExtension", "h450.2.argumentExtension",
        FT_UINT32, BASE_DEC, VALS(h450_2_T_cTInitiateArg_argumentExtension_vals), 0,
        "T_cTInitiateArg_argumentExtension", HFILL }},
    { &hf_h450_2_transferringNumber,
      { "transferringNumber", "h450.2.transferringNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_2_cTSetupArg_argumentExtension,
      { "argumentExtension", "h450.2.argumentExtension",
        FT_UINT32, BASE_DEC, VALS(h450_2_T_cTSetupArg_argumentExtension_vals), 0,
        "T_cTSetupArg_argumentExtension", HFILL }},
    { &hf_h450_2_resultExtension,
      { "resultExtension", "h450.2.resultExtension",
        FT_UINT32, BASE_DEC, VALS(h450_2_T_resultExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_2_redirectionNumber,
      { "redirectionNumber", "h450.2.redirectionNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_2_redirectionInfo,
      { "redirectionInfo", "h450.2.redirectionInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "BMPString_SIZE_1_128", HFILL }},
    { &hf_h450_2_basicCallInfoElements,
      { "basicCallInfoElements", "h450.2.basicCallInfoElements",
        FT_BYTES, BASE_NONE, NULL, 0,
        "H225InformationElement", HFILL }},
    { &hf_h450_2_cTUpdateArg_argumentExtension,
      { "argumentExtension", "h450.2.argumentExtension",
        FT_UINT32, BASE_DEC, VALS(h450_2_T_cTUpdateArg_argumentExtension_vals), 0,
        "T_cTUpdateArg_argumentExtension", HFILL }},
    { &hf_h450_2_redirectionSubaddress,
      { "redirectionSubaddress", "h450.2.redirectionSubaddress",
        FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
        "PartySubaddress", HFILL }},
    { &hf_h450_2_subaddressTransferArg_argumentExtension,
      { "argumentExtension", "h450.2.argumentExtension",
        FT_UINT32, BASE_DEC, VALS(h450_2_T_subaddressTransferArg_argumentExtension_vals), 0,
        "T_subaddressTransferArg_argumentExtension", HFILL }},
    { &hf_h450_2_endDesignation,
      { "endDesignation", "h450.2.endDesignation",
        FT_UINT32, BASE_DEC, VALS(h450_2_EndDesignation_vals), 0,
        NULL, HFILL }},
    { &hf_h450_2_callStatus,
      { "callStatus", "h450.2.callStatus",
        FT_UINT32, BASE_DEC, VALS(h450_2_CallStatus_vals), 0,
        NULL, HFILL }},
    { &hf_h450_2_cTCompleteArg_argumentExtension,
      { "argumentExtension", "h450.2.argumentExtension",
        FT_UINT32, BASE_DEC, VALS(h450_2_T_cTCompleteArg_argumentExtension_vals), 0,
        "T_cTCompleteArg_argumentExtension", HFILL }},
    { &hf_h450_2_connectedAddress,
      { "connectedAddress", "h450.2.connectedAddress",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_2_connectedInfo,
      { "connectedInfo", "h450.2.connectedInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "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,
        "T_cTActiveArg_argumentExtension", HFILL }},
    { &hf_h450_2_ExtensionSeq_item,
      { "Extension", "h450.2.Extension",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_unspecified_extension,
      { "extension", "h450.2.extension",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_2_nonStandard,
      { "nonStandard", "h450.2.nonStandard",
        FT_NONE, BASE_NONE, NULL, 0,
        "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,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU,
      { "ARG-deactivateDiversionQ", "h450.3.ARG_deactivateDiversionQ",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU,
      { "ARG-interrogateDiversionQ", "h450.3.ARG_interrogateDiversionQ",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_IntResultList_PDU,
      { "IntResultList", "h450.3.IntResultList",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_checkRestriction_PDU,
      { "ARG-checkRestriction", "h450.3.ARG_checkRestriction",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_callRerouting_PDU,
      { "ARG-callRerouting", "h450.3.ARG_callRerouting",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU,
      { "ARG-divertingLegInformation1", "h450.3.ARG_divertingLegInformation1",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU,
      { "ARG-divertingLegInformation2", "h450.3.ARG_divertingLegInformation2",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU,
      { "ARG-divertingLegInformation3", "h450.3.ARG_divertingLegInformation3",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU,
      { "ARG-divertingLegInformation4", "h450.3.ARG_divertingLegInformation4",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, 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,
        NULL, 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,
        NULL, HFILL }},
    { &hf_h450_3_procedure,
      { "procedure", "h450.3.procedure",
        FT_UINT32, BASE_DEC, VALS(h450_3_Procedure_vals), 0,
        NULL, HFILL }},
    { &hf_h450_3_basicService,
      { "basicService", "h450.3.basicService",
        FT_UINT32, BASE_DEC, VALS(h450_3_BasicService_vals), 0,
        NULL, HFILL }},
    { &hf_h450_3_divertedToAddress,
      { "divertedToAddress", "h450.3.divertedToAddress",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_servedUserNr,
      { "servedUserNr", "h450.3.servedUserNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_activatingUserNr,
      { "activatingUserNr", "h450.3.activatingUserNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_activateDiversionQArg_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_ActivateDiversionQArg_extension_vals), 0,
        "ActivateDiversionQArg_extension", HFILL }},
    { &hf_h450_3_extensionSeq,
      { "extensionSeq", "h450.3.extensionSeq",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_nonStandardData,
      { "nonStandardData", "h450.3.nonStandardData",
        FT_NONE, BASE_NONE, NULL, 0,
        "NonStandardParameter", HFILL }},
    { &hf_h450_3_deactivatingUserNr,
      { "deactivatingUserNr", "h450.3.deactivatingUserNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_deactivateDiversionQArg_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_DeactivateDiversionQArg_extension_vals), 0,
        "DeactivateDiversionQArg_extension", HFILL }},
    { &hf_h450_3_interrogatingUserNr,
      { "interrogatingUserNr", "h450.3.interrogatingUserNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_interrogateDiversionQ_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_InterrogateDiversionQ_extension_vals), 0,
        "InterrogateDiversionQ_extension", HFILL }},
    { &hf_h450_3_divertedToNr,
      { "divertedToNr", "h450.3.divertedToNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_checkRestrictionArg_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_CheckRestrictionArg_extension_vals), 0,
        "CheckRestrictionArg_extension", HFILL }},
    { &hf_h450_3_reroutingReason,
      { "reroutingReason", "h450.3.reroutingReason",
        FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
        "DiversionReason", HFILL }},
    { &hf_h450_3_originalReroutingReason,
      { "originalReroutingReason", "h450.3.originalReroutingReason",
        FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
        "DiversionReason", HFILL }},
    { &hf_h450_3_calledAddress,
      { "calledAddress", "h450.3.calledAddress",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_diversionCounter,
      { "diversionCounter", "h450.3.diversionCounter",
        FT_UINT32, BASE_DEC, NULL, 0,
        "INTEGER_1_15", HFILL }},
    { &hf_h450_3_h225InfoElement,
      { "h225InfoElement", "h450.3.h225InfoElement",
        FT_BYTES, BASE_NONE, NULL, 0,
        "H225InformationElement", HFILL }},
    { &hf_h450_3_lastReroutingNr,
      { "lastReroutingNr", "h450.3.lastReroutingNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_subscriptionOption,
      { "subscriptionOption", "h450.3.subscriptionOption",
        FT_UINT32, BASE_DEC, VALS(h450_3_SubscriptionOption_vals), 0,
        NULL, HFILL }},
    { &hf_h450_3_callingPartySubaddress,
      { "callingPartySubaddress", "h450.3.callingPartySubaddress",
        FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
        "PartySubaddress", HFILL }},
    { &hf_h450_3_callingNumber,
      { "callingNumber", "h450.3.callingNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_callingInfo,
      { "callingInfo", "h450.3.callingInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "BMPString_SIZE_1_128", HFILL }},
    { &hf_h450_3_originalCalledNr,
      { "originalCalledNr", "h450.3.originalCalledNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_redirectingInfo,
      { "redirectingInfo", "h450.3.redirectingInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "BMPString_SIZE_1_128", HFILL }},
    { &hf_h450_3_originalCalledInfo,
      { "originalCalledInfo", "h450.3.originalCalledInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "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,
        "CallReroutingArg_extension", HFILL }},
    { &hf_h450_3_diversionReason,
      { "diversionReason", "h450.3.diversionReason",
        FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
        NULL, HFILL }},
    { &hf_h450_3_nominatedNr,
      { "nominatedNr", "h450.3.nominatedNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_nominatedInfo,
      { "nominatedInfo", "h450.3.nominatedInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "BMPString_SIZE_1_128", HFILL }},
    { &hf_h450_3_redirectingNr,
      { "redirectingNr", "h450.3.redirectingNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_divertingLegInformation1Arg_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation1Arg_extension_vals), 0,
        "DivertingLegInformation1Arg_extension", HFILL }},
    { &hf_h450_3_originalDiversionReason,
      { "originalDiversionReason", "h450.3.originalDiversionReason",
        FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
        "DiversionReason", HFILL }},
    { &hf_h450_3_divertingNr,
      { "divertingNr", "h450.3.divertingNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_divertingLegInformation2Arg_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation2Arg_extension_vals), 0,
        "DivertingLegInformation2Arg_extension", HFILL }},
    { &hf_h450_3_presentationAllowedIndicator,
      { "presentationAllowedIndicator", "h450.3.presentationAllowedIndicator",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_redirectionNr,
      { "redirectionNr", "h450.3.redirectionNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_redirectionInfo,
      { "redirectionInfo", "h450.3.redirectionInfo",
        FT_STRING, BASE_NONE, NULL, 0,
        "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,
        "DivertingLegInformation3Arg_extension", HFILL }},
    { &hf_h450_3_callingNr,
      { "callingNr", "h450.3.callingNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_3_divertingLegInformation4Arg_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation4Arg_extension_vals), 0,
        "DivertingLegInformation4Arg_extension", HFILL }},
    { &hf_h450_3_IntResultList_item,
      { "IntResult", "h450.3.IntResult",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_remoteEnabled,
      { "remoteEnabled", "h450.3.remoteEnabled",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        "BOOLEAN", HFILL }},
    { &hf_h450_3_intResult_extension,
      { "extension", "h450.3.extension",
        FT_UINT32, BASE_DEC, VALS(h450_3_IntResult_extension_vals), 0,
        "IntResult_extension", HFILL }},
    { &hf_h450_3_unspecified_extension,
      { "extension", "h450.3.extension",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_3_nonStandard,
      { "nonStandard", "h450.3.nonStandard",
        FT_NONE, BASE_NONE, NULL, 0,
        "NonStandardParameter", HFILL }},
    { &hf_h450_3_ExtensionSeq_item,
      { "Extension", "h450.3.Extension",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},

/* --- Module Call-Hold-Operations --- --- ---                                */

    { &hf_h450_4_h450_4_HoldNotificArg_PDU,
      { "HoldNotificArg", "h450.4.HoldNotificArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_h450_4_RetrieveNotificArg_PDU,
      { "RetrieveNotificArg", "h450.4.RetrieveNotificArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_h450_4_RemoteHoldArg_PDU,
      { "RemoteHoldArg", "h450.4.RemoteHoldArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_h450_4_RemoteHoldRes_PDU,
      { "RemoteHoldRes", "h450.4.RemoteHoldRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_h450_4_RemoteRetrieveArg_PDU,
      { "RemoteRetrieveArg", "h450.4.RemoteRetrieveArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_h450_4_RemoteRetrieveRes_PDU,
      { "RemoteRetrieveRes", "h450.4.RemoteRetrieveRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_h450_4_PAR_undefined_PDU,
      { "PAR-undefined", "h450.4.PAR_undefined",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_holdNotificArg_extensionArg,
      { "extensionArg", "h450.4.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_4_holdNotificArg_extensionArg_item,
      { "MixedExtension", "h450.4.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_4_retrieveNotificArg_extensionArg,
      { "extensionArg", "h450.4.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_4_retrieveNotificArg_extensionArg_item,
      { "MixedExtension", "h450.4.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_4_remoteHoldArg_extensionArg,
      { "extensionArg", "h450.4.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_4_remoteHoldArg_extensionArg_item,
      { "MixedExtension", "h450.4.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_4_extensionRes,
      { "extensionRes", "h450.4.extensionRes",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_4_extensionRes_item,
      { "MixedExtension", "h450.4.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_4_remoteRetrieveArg_extensionArg,
      { "extensionArg", "h450.4.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_4_remoteRetrieveArg_extensionArg_item,
      { "MixedExtension", "h450.4.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_4_mixedExtension_extension,
      { "extension", "h450.4.extension",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_4_nonStandardData,
      { "nonStandardData", "h450.4.nonStandardData",
        FT_NONE, BASE_NONE, NULL, 0,
        "NonStandardParameter", HFILL }},
    { &hf_h450_4_PAR_undefined_item,
      { "MixedExtension", "h450.4.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},

/* --- Module Call-Park-Pickup-Operations --- --- ---                         */

    { &hf_h450_5_h450_5_CpRequestArg_PDU,
      { "CpRequestArg", "h450.5.CpRequestArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_CpRequestRes_PDU,
      { "CpRequestRes", "h450.5.CpRequestRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_CpSetupArg_PDU,
      { "CpSetupArg", "h450.5.CpSetupArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_CpSetupRes_PDU,
      { "CpSetupRes", "h450.5.CpSetupRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_GroupIndicationOnArg_PDU,
      { "GroupIndicationOnArg", "h450.5.GroupIndicationOnArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_GroupIndicationOnRes_PDU,
      { "GroupIndicationOnRes", "h450.5.GroupIndicationOnRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_GroupIndicationOffArg_PDU,
      { "GroupIndicationOffArg", "h450.5.GroupIndicationOffArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_GroupIndicationOffRes_PDU,
      { "GroupIndicationOffRes", "h450.5.GroupIndicationOffRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PickrequArg_PDU,
      { "PickrequArg", "h450.5.PickrequArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PickrequRes_PDU,
      { "PickrequRes", "h450.5.PickrequRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PickupArg_PDU,
      { "PickupArg", "h450.5.PickupArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PickupRes_PDU,
      { "PickupRes", "h450.5.PickupRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PickExeArg_PDU,
      { "PickExeArg", "h450.5.PickExeArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PickExeRes_PDU,
      { "PickExeRes", "h450.5.PickExeRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_CpNotifyArg_PDU,
      { "CpNotifyArg", "h450.5.CpNotifyArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_CpickupNotifyArg_PDU,
      { "CpickupNotifyArg", "h450.5.CpickupNotifyArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_h450_5_PAR_undefined_PDU,
      { "PAR-undefined", "h450.5.PAR_undefined",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_parkingNumber,
      { "parkingNumber", "h450.5.parkingNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_parkedNumber,
      { "parkedNumber", "h450.5.parkedNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_parkedToNumber,
      { "parkedToNumber", "h450.5.parkedToNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_parkedToPosition,
      { "parkedToPosition", "h450.5.parkedToPosition",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_5_cpRequestArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_cpRequestArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_parkCondition,
      { "parkCondition", "h450.5.parkCondition",
        FT_UINT32, BASE_DEC, VALS(h450_5_ParkCondition_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_extensionRes,
      { "extensionRes", "h450.5.extensionRes",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_extensionRes_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_cpSetupArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_cpSetupArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_callPickupId,
      { "callPickupId", "h450.5.callPickupId",
        FT_NONE, BASE_NONE, NULL, 0,
        "CallIdentifier", HFILL }},
    { &hf_h450_5_groupMemberUserNr,
      { "groupMemberUserNr", "h450.5.groupMemberUserNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_retrieveCallType,
      { "retrieveCallType", "h450.5.retrieveCallType",
        FT_UINT32, BASE_DEC, VALS(h450_5_CallType_vals), 0,
        "CallType", HFILL }},
    { &hf_h450_5_partyToRetrieve,
      { "partyToRetrieve", "h450.5.partyToRetrieve",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_retrieveAddress,
      { "retrieveAddress", "h450.5.retrieveAddress",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_parkPosition,
      { "parkPosition", "h450.5.parkPosition",
        FT_UINT32, BASE_DEC, NULL, 0,
        "ParkedToPosition", HFILL }},
    { &hf_h450_5_groupIndicationOnArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_groupIndicationOnArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_groupIndicationOffArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_groupIndicationOffArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_picking_upNumber,
      { "picking-upNumber", "h450.5.picking_upNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_5_pickrequArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_pickrequArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_pickupArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_pickupArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_pickExeArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_pickExeArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_cpNotifyArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_cpNotifyArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_cpickupNotifyArg_extensionArg,
      { "extensionArg", "h450.5.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_5_cpickupNotifyArg_extensionArg_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_5_PAR_undefined_item,
      { "MixedExtension", "h450.5.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},

/* --- Module Call-Waiting-Operations --- --- ---                             */

    { &hf_h450_6_h450_6_CallWaitingArg_PDU,
      { "CallWaitingArg", "h450.6.CallWaitingArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_6_nbOfAddWaitingCalls,
      { "nbOfAddWaitingCalls", "h450.6.nbOfAddWaitingCalls",
        FT_UINT32, BASE_DEC, NULL, 0,
        "INTEGER_0_255", HFILL }},
    { &hf_h450_6_callWaitingArg_extensionArg,
      { "extensionArg", "h450.6.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_6_callWaitingArg_extensionArg_item,
      { "MixedExtension", "h450.6.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},

/* --- Module Message-Waiting-Indication-Operations --- --- ---               */

    { &hf_h450_7_h450_7_MWIActivateArg_PDU,
      { "MWIActivateArg", "h450.7.MWIActivateArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_h450_7_DummyRes_PDU,
      { "DummyRes", "h450.7.DummyRes",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_h450_7_MWIDeactivateArg_PDU,
      { "MWIDeactivateArg", "h450.7.MWIDeactivateArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_h450_7_MWIInterrogateArg_PDU,
      { "MWIInterrogateArg", "h450.7.MWIInterrogateArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_h450_7_MWIInterrogateRes_PDU,
      { "MWIInterrogateRes", "h450.7.MWIInterrogateRes",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_h450_7_PAR_undefined_PDU,
      { "PAR-undefined", "h450.7.PAR_undefined",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_servedUserNr,
      { "servedUserNr", "h450.7.servedUserNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_7_basicService,
      { "basicService", "h450.7.basicService",
        FT_UINT32, BASE_DEC, VALS(h450_7_BasicService_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_msgCentreId,
      { "msgCentreId", "h450.7.msgCentreId",
        FT_UINT32, BASE_DEC, VALS(h450_7_MsgCentreId_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_nbOfMessages,
      { "nbOfMessages", "h450.7.nbOfMessages",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_originatingNr,
      { "originatingNr", "h450.7.originatingNr",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_7_timestamp,
      { "timestamp", "h450.7.timestamp",
        FT_STRING, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_priority,
      { "priority", "h450.7.priority",
        FT_UINT32, BASE_DEC, NULL, 0,
        "INTEGER_0_9", HFILL }},
    { &hf_h450_7_mWIActivateArg_extensionArg,
      { "extensionArg", "h450.7.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_7_mWIActivateArg_extensionArg_item,
      { "MixedExtension", "h450.7.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_DummyRes_item,
      { "MixedExtension", "h450.7.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_callbackReq,
      { "callbackReq", "h450.7.callbackReq",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        "BOOLEAN", HFILL }},
    { &hf_h450_7_mWIDeactivateArg_extensionArg,
      { "extensionArg", "h450.7.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_7_mWIDeactivateArg_extensionArg_item,
      { "MixedExtension", "h450.7.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_mWIInterrogateArg_extensionArg,
      { "extensionArg", "h450.7.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_7_mWIInterrogateArg_extensionArg_item,
      { "MixedExtension", "h450.7.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_MWIInterrogateRes_item,
      { "MWIInterrogateResElt", "h450.7.MWIInterrogateResElt",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_7_mWIInterrogateResElt_extensionArg,
      { "extensionArg", "h450.7.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_7_mWIInterrogateResElt_extensionArg_item,
      { "MixedExtension", "h450.7.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_7_integer,
      { "integer", "h450.7.integer",
        FT_UINT32, BASE_DEC, NULL, 0,
        "INTEGER_0_65535", HFILL }},
    { &hf_h450_7_partyNumber,
      { "partyNumber", "h450.7.partyNumber",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_7_numericString,
      { "numericString", "h450.7.numericString",
        FT_STRING, BASE_NONE, NULL, 0,
        "NumericString_SIZE_1_10", HFILL }},
    { &hf_h450_7_PAR_undefined_item,
      { "MixedExtension", "h450.7.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},

/* --- Module Name-Operations --- --- ---                                     */

    { &hf_h450_8_h450_8_ARG_callingName_PDU,
      { "ARG-callingName", "h450.8.ARG_callingName",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_h450_8_ARG_alertingName_PDU,
      { "ARG-alertingName", "h450.8.ARG_alertingName",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_h450_8_ARG_connectedName_PDU,
      { "ARG-connectedName", "h450.8.ARG_connectedName",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_h450_8_ARG_busyName_PDU,
      { "ARG-busyName", "h450.8.ARG_busyName",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_name,
      { "name", "h450.8.name",
        FT_UINT32, BASE_DEC, VALS(h450_8_Name_vals), 0,
        NULL, HFILL }},
    { &hf_h450_8_extensionArg,
      { "extensionArg", "h450.8.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_8_extensionArg_item,
      { "MixedExtension", "h450.8.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_8_namePresentationAllowed,
      { "namePresentationAllowed", "h450.8.namePresentationAllowed",
        FT_UINT32, BASE_DEC, VALS(h450_8_NamePresentationAllowed_vals), 0,
        NULL, HFILL }},
    { &hf_h450_8_namePresentationRestricted,
      { "namePresentationRestricted", "h450.8.namePresentationRestricted",
        FT_UINT32, BASE_DEC, VALS(h450_8_NamePresentationRestricted_vals), 0,
        NULL, HFILL }},
    { &hf_h450_8_nameNotAvailable,
      { "nameNotAvailable", "h450.8.nameNotAvailable",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_simpleName,
      { "simpleName", "h450.8.simpleName",
        FT_BYTES, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_extendedName,
      { "extendedName", "h450.8.extendedName",
        FT_STRING, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_8_restrictedNull,
      { "restrictedNull", "h450.8.restrictedNull",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},

/* --- Module Call-Completion-Operations --- --- ---                          */

    { &hf_h450_9_h450_9_CcRequestArg_PDU,
      { "CcRequestArg", "h450.9.CcRequestArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_9_h450_9_CcRequestRes_PDU,
      { "CcRequestRes", "h450.9.CcRequestRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_9_h450_9_CcArg_PDU,
      { "CcArg", "h450.9.CcArg",
        FT_UINT32, BASE_DEC, VALS(h450_9_CcArg_vals), 0,
        NULL, HFILL }},
    { &hf_h450_9_h450_9_CcShortArg_PDU,
      { "CcShortArg", "h450.9.CcShortArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_9_numberA,
      { "numberA", "h450.9.numberA",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_9_numberB,
      { "numberB", "h450.9.numberB",
        FT_NONE, BASE_NONE, NULL, 0,
        "EndpointAddress", HFILL }},
    { &hf_h450_9_ccIdentifier,
      { "ccIdentifier", "h450.9.ccIdentifier",
        FT_NONE, BASE_NONE, NULL, 0,
        "CallIdentifier", HFILL }},
    { &hf_h450_9_service,
      { "service", "h450.9.service",
        FT_UINT32, BASE_DEC, VALS(h450_7_BasicService_vals), 0,
        "BasicService", HFILL }},
    { &hf_h450_9_can_retain_service,
      { "can-retain-service", "h450.9.can_retain_service",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        "BOOLEAN", HFILL }},
    { &hf_h450_9_retain_sig_connection,
      { "retain-sig-connection", "h450.9.retain_sig_connection",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        "BOOLEAN", HFILL }},
    { &hf_h450_9_ccRequestArg_extension,
      { "extension", "h450.9.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_9_ccRequestArg_extension_item,
      { "MixedExtension", "h450.9.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_9_retain_service,
      { "retain-service", "h450.9.retain_service",
        FT_BOOLEAN, BASE_NONE, NULL, 0,
        "BOOLEAN", HFILL }},
    { &hf_h450_9_ccRequestRes_extension,
      { "extension", "h450.9.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_9_ccRequestRes_extension_item,
      { "MixedExtension", "h450.9.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_9_shortArg,
      { "shortArg", "h450.9.shortArg",
        FT_NONE, BASE_NONE, NULL, 0,
        "CcShortArg", HFILL }},
    { &hf_h450_9_longArg,
      { "longArg", "h450.9.longArg",
        FT_NONE, BASE_NONE, NULL, 0,
        "CcLongArg", HFILL }},
    { &hf_h450_9_ccShortArg_extension,
      { "extension", "h450.9.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_9_ccShortArg_extension_item,
      { "MixedExtension", "h450.9.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_9_ccLongArg_extension,
      { "extension", "h450.9.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_9_ccLongArg_extension_item,
      { "MixedExtension", "h450.9.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},

/* --- Module Call-Offer-Operations --- --- ---                               */

    { &hf_h450_10_h450_10_CoReqOptArg_PDU,
      { "CoReqOptArg", "h450.10.CoReqOptArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_10_h450_10_RUAlertOptArg_PDU,
      { "RUAlertOptArg", "h450.10.RUAlertOptArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_10_h450_10_CfbOvrOptArg_PDU,
      { "CfbOvrOptArg", "h450.10.CfbOvrOptArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_10_coReqOptArg_extension,
      { "extension", "h450.10.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_10_coReqOptArg_extension_item,
      { "MixedExtension", "h450.10.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_10_rUAlertOptArg_extension,
      { "extension", "h450.10.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_10_rUAlertOptArg_extension_item,
      { "MixedExtension", "h450.10.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_10_cfbOvrOptArg_extension,
      { "extension", "h450.10.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_10_cfbOvrOptArg_extension_item,
      { "MixedExtension", "h450.10.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},

/* --- Module Call-Intrusion-Operations --- --- ---                           */

    { &hf_h450_11_h450_11_CIRequestArg_PDU,
      { "CIRequestArg", "h450.11.CIRequestArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIRequestRes_PDU,
      { "CIRequestRes", "h450.11.CIRequestRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIGetCIPLOptArg_PDU,
      { "CIGetCIPLOptArg", "h450.11.CIGetCIPLOptArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIGetCIPLRes_PDU,
      { "CIGetCIPLRes", "h450.11.CIGetCIPLRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIIsOptArg_PDU,
      { "CIIsOptArg", "h450.11.CIIsOptArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIIsOptRes_PDU,
      { "CIIsOptRes", "h450.11.CIIsOptRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIFrcRelArg_PDU,
      { "CIFrcRelArg", "h450.11.CIFrcRelArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIFrcRelOptRes_PDU,
      { "CIFrcRelOptRes", "h450.11.CIFrcRelOptRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIWobOptArg_PDU,
      { "CIWobOptArg", "h450.11.CIWobOptArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CIWobOptRes_PDU,
      { "CIWobOptRes", "h450.11.CIWobOptRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CISilentArg_PDU,
      { "CISilentArg", "h450.11.CISilentArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CISilentOptRes_PDU,
      { "CISilentOptRes", "h450.11.CISilentOptRes",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_h450_11_CINotificationArg_PDU,
      { "CINotificationArg", "h450.11.CINotificationArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_ciCapabilityLevel,
      { "ciCapabilityLevel", "h450.11.ciCapabilityLevel",
        FT_UINT32, BASE_DEC, VALS(h450_11_CICapabilityLevel_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIRequestArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIRequestArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_ciStatusInformation,
      { "ciStatusInformation", "h450.11.ciStatusInformation",
        FT_UINT32, BASE_DEC, VALS(h450_11_CIStatusInformation_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIRequestRes_resultExtension,
      { "resultExtension", "h450.11.resultExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIRequestRes_resultExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIGetCIPLOptArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIGetCIPLOptArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_ciProtectionLevel,
      { "ciProtectionLevel", "h450.11.ciProtectionLevel",
        FT_UINT32, BASE_DEC, VALS(h450_11_CIProtectionLevel_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_silentMonitoringPermitted,
      { "silentMonitoringPermitted", "h450.11.silentMonitoringPermitted",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_cIGetCIPLRes_resultExtension,
      { "resultExtension", "h450.11.resultExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIGetCIPLRes_resultExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIIsOptArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIIsOptArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIIsOptRes_resultExtension,
      { "resultExtension", "h450.11.resultExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIIsOptRes_resultExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIFrcRelArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIFrcRelArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIFrcRelOptRes_resultExtension,
      { "resultExtension", "h450.11.resultExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIFrcRelOptRes_resultExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIWobOptArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIWobOptArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cIWobOptRes_resultExtension,
      { "resultExtension", "h450.11.resultExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cIWobOptRes_resultExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_specificCall,
      { "specificCall", "h450.11.specificCall",
        FT_NONE, BASE_NONE, NULL, 0,
        "CallIdentifier", HFILL }},
    { &hf_h450_11_cISilentArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cISilentArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cISilentOptRes_resultExtension,
      { "resultExtension", "h450.11.resultExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cISilentOptRes_resultExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_cINotificationArg_argumentExtension,
      { "argumentExtension", "h450.11.argumentExtension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_11_cINotificationArg_argumentExtension_item,
      { "MixedExtension", "h450.11.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_11_callIntrusionImpending,
      { "callIntrusionImpending", "h450.11.callIntrusionImpending",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_callIntruded,
      { "callIntruded", "h450.11.callIntruded",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_callIsolated,
      { "callIsolated", "h450.11.callIsolated",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_callForceReleased,
      { "callForceReleased", "h450.11.callForceReleased",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_callIntrusionComplete,
      { "callIntrusionComplete", "h450.11.callIntrusionComplete",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_11_callIntrusionEnd,
      { "callIntrusionEnd", "h450.11.callIntrusionEnd",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},

/* --- Module Common-Information-Operations --- --- ---                       */

    { &hf_h450_12_h450_12_DummyArg_PDU,
      { "DummyArg", "h450.12.DummyArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_h450_12_CmnArg_PDU,
      { "CmnArg", "h450.12.CmnArg",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_featureList,
      { "featureList", "h450.12.featureList",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_featureValues,
      { "featureValues", "h450.12.featureValues",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_featureControl,
      { "featureControl", "h450.12.featureControl",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_cmnArg_extension,
      { "extension", "h450.12.extension",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_12_cmnArg_extension_item,
      { "MixedExtension", "h450.12.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_12_extensionArg,
      { "extensionArg", "h450.12.extensionArg",
        FT_UINT32, BASE_DEC, NULL, 0,
        "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
    { &hf_h450_12_extensionArg_item,
      { "MixedExtension", "h450.12.MixedExtension",
        FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCFreRoutingSupported,
      { "ssCFreRoutingSupported", "h450.12.ssCFreRoutingSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCTreRoutingSupported,
      { "ssCTreRoutingSupported", "h450.12.ssCTreRoutingSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCCBSPossible,
      { "ssCCBSPossible", "h450.12.ssCCBSPossible",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCCNRPossible,
      { "ssCCNRPossible", "h450.12.ssCCNRPossible",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCOSupported,
      { "ssCOSupported", "h450.12.ssCOSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCIForcedReleaseSupported,
      { "ssCIForcedReleaseSupported", "h450.12.ssCIForcedReleaseSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCIIsolationSupported,
      { "ssCIIsolationSupported", "h450.12.ssCIIsolationSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCIWaitOnBusySupported,
      { "ssCIWaitOnBusySupported", "h450.12.ssCIWaitOnBusySupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCISilentMonitoringSupported,
      { "ssCISilentMonitoringSupported", "h450.12.ssCISilentMonitoringSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCIConferenceSupported,
      { "ssCIConferenceSupported", "h450.12.ssCIConferenceSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCHFarHoldSupported,
      { "ssCHFarHoldSupported", "h450.12.ssCHFarHoldSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssMWICallbackSupported,
      { "ssMWICallbackSupported", "h450.12.ssMWICallbackSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCPCallParkSupported,
      { "ssCPCallParkSupported", "h450.12.ssCPCallParkSupported",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_partyCategory,
      { "partyCategory", "h450.12.partyCategory",
        FT_UINT32, BASE_DEC, VALS(h450_12_PartyCategory_vals), 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCIprotectionLevel,
      { "ssCIprotectionLevel", "h450.12.ssCIprotectionLevel",
        FT_UINT32, BASE_DEC, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCHDoNotHold,
      { "ssCHDoNotHold", "h450.12.ssCHDoNotHold",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCTDoNotTransfer,
      { "ssCTDoNotTransfer", "h450.12.ssCTDoNotTransfer",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssMWICallbackCall,
      { "ssMWICallbackCall", "h450.12.ssMWICallbackCall",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},
    { &hf_h450_12_ssCISilentMonitorPermitted,
      { "ssCISilentMonitorPermitted", "h450.12.ssCISilentMonitorPermitted",
        FT_NONE, BASE_NONE, NULL, 0,
        NULL, HFILL }},

/*--- End of included file: packet-h450-hfarr.c ---*/
#line 252 "packet-h450-template.c"
  };

  /* List of subtrees */
  static gint *ett[] = {

/*--- 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_T_rosApdus,
    &ett_h450_EndpointAddress,
    &ett_h450_SEQUENCE_OF_AliasAddress,
    &ett_h450_PartySubaddress,
    &ett_h450_UserSpecifiedSubaddress,
    &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 257 "packet-h450-template.c"
  };


  /* Register protocol */
  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_h450, hf, array_length(hf));
  proto_register_subtree_array(ett, array_length(ett));
 
  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_h450 ---------------------------------------*/
void
proto_reg_handoff_h450(void)
{
  int i;
  dissector_handle_t h450_arg_handle;
  dissector_handle_t h450_res_handle;
  dissector_handle_t h450_err_handle;

  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);
  }

}
