summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ain.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-ain.c')
-rw-r--r--epan/dissectors/packet-ain.c11515
1 files changed, 11515 insertions, 0 deletions
diff --git a/epan/dissectors/packet-ain.c b/epan/dissectors/packet-ain.c
new file mode 100644
index 00000000..2ab5873c
--- /dev/null
+++ b/epan/dissectors/packet-ain.c
@@ -0,0 +1,11515 @@
+/* Do not modify this file. Changes will be overwritten. */
+/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
+/* packet-ain.c */
+/* asn2wrs.py -b -L -p ain -c ./ain.cnf -s ./packet-ain-template -D . -O ../.. AIN-Operations.asn AIN-Errors.asn AIN-Parameters.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
+
+/* packet-ain-template.c
+* Routines for AIN
+* Copyright 2018, Anders Broman <anders.broman@ericsson.com>
+*
+* Wireshark - Network traffic analyzer
+* By Gerald Combs <gerald@wireshark.org>
+* Copyright 1998 Gerald Combs
+*
+* SPDX-License-Identifier: GPL-2.0-or-later
+*
+* Ref
+* GR-1299-CORE
+*/
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-ansi_tcap.h"
+
+#if defined(__GNUC__)
+/*
+ * This is meant to handle dissect_ain_ROS' defined but not used.
+ *
+ * DIAG_OFF doesn't work with llvm-gcc, for some unknown reason, so
+ * we just use the pragma directly.
+ */
+#pragma GCC diagnostic ignored "-Wunused-function"
+#endif
+
+#define PNAME "Advanced Intelligent Network"
+#define PSNAME "AIN"
+#define PFNAME "ain"
+
+void proto_register_ain(void);
+void proto_reg_handoff_ain(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_ain = -1;
+
+static dissector_handle_t ain_handle;
+
+/* include constants */
+#define noInvokeId NULL
+
+static int hf_ain_ext_type_oid = -1;
+static int hf_ain_odd_even_indicator = -1;
+static int hf_ain_nature_of_address = -1;
+static int hf_ain_numbering_plan = -1;
+static int hf_ain_bcd_digits = -1;
+static int hf_ain_carrier_selection = -1;
+static int hf_ain_nature_of_carrier = -1;
+static int hf_ain_nr_digits = -1;
+static int hf_ain_carrier_bcd_digits = -1;
+static int hf_ain_amaslpid = -1;
+
+static int hf_ain_CallInfoFromResourceArg_PDU = -1; /* CallInfoFromResourceArg */
+static int hf_ain_CloseArg_PDU = -1; /* CloseArg */
+static int hf_ain_CTRClearArg_PDU = -1; /* CTRClearArg */
+static int hf_ain_FailureOutcomeArg_PDU = -1; /* FailureOutcomeArg */
+static int hf_ain_InfoAnalyzedArg_PDU = -1; /* InfoAnalyzedArg */
+static int hf_ain_InfoCollectedArg_PDU = -1; /* InfoCollectedArg */
+static int hf_ain_NetworkBusyArg_PDU = -1; /* NetworkBusyArg */
+static int hf_ain_OAnswerArg_PDU = -1; /* OAnswerArg */
+static int hf_ain_OAbandonArg_PDU = -1; /* OAbandonArg */
+static int hf_ain_ODisconnectArg_PDU = -1; /* ODisconnectArg */
+static int hf_ain_OMidCallArg_PDU = -1; /* OMidCallArg */
+static int hf_ain_ONoAnswerArg_PDU = -1; /* ONoAnswerArg */
+static int hf_ain_OSuspendedArg_PDU = -1; /* OSuspendedArg */
+static int hf_ain_OTermSeizedArg_PDU = -1; /* OTermSeizedArg */
+static int hf_ain_OriginationAttemptArg_PDU = -1; /* OriginationAttemptArg */
+static int hf_ain_ResourceClearArg_PDU = -1; /* ResourceClearArg */
+static int hf_ain_RES_resourceClear_PDU = -1; /* RES_resourceClear */
+static int hf_ain_SuccessOutcomeArg_PDU = -1; /* SuccessOutcomeArg */
+static int hf_ain_TAnswerArg_PDU = -1; /* TAnswerArg */
+static int hf_ain_TBusyArg_PDU = -1; /* TBusyArg */
+static int hf_ain_TDisconnectArg_PDU = -1; /* TDisconnectArg */
+static int hf_ain_TDTMFEnteredArg_PDU = -1; /* TDTMFEnteredArg */
+static int hf_ain_TMidCallArg_PDU = -1; /* TMidCallArg */
+static int hf_ain_TNoAnswerArg_PDU = -1; /* TNoAnswerArg */
+static int hf_ain_TerminationAttemptArg_PDU = -1; /* TerminationAttemptArg */
+static int hf_ain_TermResourceAvailableArg_PDU = -1; /* TermResourceAvailableArg */
+static int hf_ain_TimeoutArg_PDU = -1; /* TimeoutArg */
+static int hf_ain_AnalyzeRouteArg_PDU = -1; /* AnalyzeRouteArg */
+static int hf_ain_AuthorizeTerminationArg_PDU = -1; /* AuthorizeTerminationArg */
+static int hf_ain_CancelResourceEventArg_PDU = -1; /* CancelResourceEventArg */
+static int hf_ain_CollectInformationArg_PDU = -1; /* CollectInformationArg */
+static int hf_ain_ConnectToResourceArg_PDU = -1; /* ConnectToResourceArg */
+static int hf_ain_ContinueArg_PDU = -1; /* ContinueArg */
+static int hf_ain_CreateCallArg_PDU = -1; /* CreateCallArg */
+static int hf_ain_CreateCallRes_PDU = -1; /* CreateCallRes */
+static int hf_ain_DisconnectArg_PDU = -1; /* DisconnectArg */
+static int hf_ain_DisconnectLegArg_PDU = -1; /* DisconnectLegArg */
+static int hf_ain_ForwardCallArg_PDU = -1; /* ForwardCallArg */
+static int hf_ain_MergeCallArg_PDU = -1; /* MergeCallArg */
+static int hf_ain_MoveLegArg_PDU = -1; /* MoveLegArg */
+static int hf_ain_OfferCallArg_PDU = -1; /* OfferCallArg */
+static int hf_ain_OriginateCallArg_PDU = -1; /* OriginateCallArg */
+static int hf_ain_ReconnectArg_PDU = -1; /* ReconnectArg */
+static int hf_ain_SendToResourceArg_PDU = -1; /* SendToResourceArg */
+static int hf_ain_RES_sendToResource_PDU = -1; /* RES_sendToResource */
+static int hf_ain_SetTimerArg_PDU = -1; /* SetTimerArg */
+static int hf_ain_TimerUpdated_PDU = -1; /* TimerUpdated */
+static int hf_ain_SplitLegArg_PDU = -1; /* SplitLegArg */
+static int hf_ain_AcgArg_PDU = -1; /* AcgArg */
+static int hf_ain_AcgGlobalCtrlRestoreArg_PDU = -1; /* AcgGlobalCtrlRestoreArg */
+static int hf_ain_RES_acgGlobalCtrlRestore_PDU = -1; /* RES_acgGlobalCtrlRestore */
+static int hf_ain_AcgOverflowArg_PDU = -1; /* AcgOverflowArg */
+static int hf_ain_ActivityTestArg_PDU = -1; /* ActivityTestArg */
+static int hf_ain_RES_activityTest_PDU = -1; /* RES_activityTest */
+static int hf_ain_CallTypeRequestArg_PDU = -1; /* CallTypeRequestArg */
+static int hf_ain_RES_callTypeRequest_PDU = -1; /* RES_callTypeRequest */
+static int hf_ain_ControlRequestArg_PDU = -1; /* ControlRequestArg */
+static int hf_ain_EchoRequestArg_PDU = -1; /* EchoRequestArg */
+static int hf_ain_RES_echoRequest_PDU = -1; /* RES_echoRequest */
+static int hf_ain_FurnishAMAInformationArg_PDU = -1; /* FurnishAMAInformationArg */
+static int hf_ain_MonitorForChangeArg_PDU = -1; /* MonitorForChangeArg */
+static int hf_ain_MonitorSuccessArg_PDU = -1; /* MonitorSuccessArg */
+static int hf_ain_NCADataArg_PDU = -1; /* NCADataArg */
+static int hf_ain_NCARequestArg_PDU = -1; /* NCARequestArg */
+static int hf_ain_RES_nCARequest_PDU = -1; /* RES_nCARequest */
+static int hf_ain_QueryRequestArg_PDU = -1; /* QueryRequestArg */
+static int hf_ain_RES_queryRequest_PDU = -1; /* RES_queryRequest */
+static int hf_ain_RequestReportBCMEventArg_PDU = -1; /* RequestReportBCMEventArg */
+static int hf_ain_StatusReportedArg_PDU = -1; /* StatusReportedArg */
+static int hf_ain_TerminationNotificationArg_PDU = -1; /* TerminationNotificationArg */
+static int hf_ain_UpdateArg_PDU = -1; /* UpdateArg */
+static int hf_ain_RES_update_PDU = -1; /* RES_update */
+static int hf_ain_UpdateRequestArg_PDU = -1; /* UpdateRequestArg */
+static int hf_ain_RES_updateRequest_PDU = -1; /* RES_updateRequest */
+static int hf_ain_PAR_applicationError_PDU = -1; /* PAR_applicationError */
+static int hf_ain_PAR_failureReport_PDU = -1; /* PAR_failureReport */
+static int hf_ain_iPReturnBlock = -1; /* IPReturnBlock */
+static int hf_ain_amp1 = -1; /* Amp1 */
+static int hf_ain_amp2 = -1; /* Amp2 */
+static int hf_ain_extensionParameter = -1; /* ExtensionParameter */
+static int hf_ain_userID = -1; /* UserID */
+static int hf_ain_bearerCapability = -1; /* BearerCapability */
+static int hf_ain_closeCause = -1; /* CloseCause */
+static int hf_ain_clearCause = -1; /* ClearCause */
+static int hf_ain_legID = -1; /* LegID */
+static int hf_ain_ccID = -1; /* CcID */
+static int hf_ain_bCMType = -1; /* BCMType */
+static int hf_ain_pointInCall = -1; /* PointInCall */
+static int hf_ain_collectedDigits = -1; /* CollectedDigits */
+static int hf_ain_collectedAddressInfo = -1; /* CollectedAddressInfo */
+static int hf_ain_carrier = -1; /* Carrier */
+static int hf_ain_failureCause = -1; /* FailureCause */
+static int hf_ain_aMAMeasurement = -1; /* AMAMeasurement */
+static int hf_ain_clearCauseData = -1; /* ClearCauseData */
+static int hf_ain_notificationIndicator = -1; /* NotificationIndicator */
+static int hf_ain_calledPartyID = -1; /* CalledPartyID */
+static int hf_ain_lata = -1; /* Lata */
+static int hf_ain_triggerCriteriaType = -1; /* TriggerCriteriaType */
+static int hf_ain_chargeNumber = -1; /* ChargeNumber */
+static int hf_ain_callingPartyID = -1; /* CallingPartyID */
+static int hf_ain_callingPartyBGID = -1; /* CallingPartyBGID */
+static int hf_ain_chargePartyStationType = -1; /* ChargePartyStationType */
+static int hf_ain_accessCode = -1; /* AccessCode */
+static int hf_ain_verticalServiceCode = -1; /* VerticalServiceCode */
+static int hf_ain_tcm = -1; /* Tcm */
+static int hf_ain_originalCalledPartyID = -1; /* OriginalCalledPartyID */
+static int hf_ain_redirectingPartyID = -1; /* RedirectingPartyID */
+static int hf_ain_redirectionInformation = -1; /* RedirectionInformation */
+static int hf_ain_aCGEncountered = -1; /* ACGEncountered */
+static int hf_ain_sap = -1; /* Sap */
+static int hf_ain_sTRConnection = -1; /* STRConnection */
+static int hf_ain_aMASequenceNumber = -1; /* AMASequenceNumber */
+static int hf_ain_genericAddressList = -1; /* GenericAddressList */
+static int hf_ain_networkSpecificFacilities = -1; /* NetworkSpecificFacilities */
+static int hf_ain_cTRConnection = -1; /* CTRConnection */
+static int hf_ain_jurisdictionInformation = -1; /* JurisdictionInformation */
+static int hf_ain_prefix = -1; /* Prefix */
+static int hf_ain_callingGeodeticLocation = -1; /* CallingGeodeticLocation */
+static int hf_ain_triggerInformation = -1; /* TriggerInformation */
+static int hf_ain_disconnectCause = -1; /* DisconnectCause */
+static int hf_ain_featureActivatorID = -1; /* FeatureActivatorID */
+static int hf_ain_busyCause = -1; /* BusyCause */
+static int hf_ain_busyType = -1; /* BusyType */
+static int hf_ain_calledPartyStationType = -1; /* CalledPartyStationType */
+static int hf_ain_genericName = -1; /* GenericName */
+static int hf_ain_dTMFDigitsDetected = -1; /* DTMFDigitsDetected */
+static int hf_ain_rTPServiceIndicator = -1; /* RTPServiceIndicator */
+static int hf_ain_outpulseNumber = -1; /* OutpulseNumber */
+static int hf_ain_primaryTrunkGroup = -1; /* PrimaryTrunkGroup */
+static int hf_ain_alternateTrunkGroup = -1; /* AlternateTrunkGroup */
+static int hf_ain_secondAlternateTrunkGroup = -1; /* SecondAlternateTrunkGroup */
+static int hf_ain_alternateCarrier = -1; /* AlternateCarrier */
+static int hf_ain_secondAlternateCarrier = -1; /* SecondAlternateCarrier */
+static int hf_ain_passiveLegTreatment = -1; /* PassiveLegTreatment */
+static int hf_ain_primaryBillingIndicator = -1; /* PrimaryBillingIndicator */
+static int hf_ain_alternateBillingIndicator = -1; /* AlternateBillingIndicator */
+static int hf_ain_secondAlternateBillingIndicator = -1; /* SecondAlternateBillingIndicator */
+static int hf_ain_overflowBillingIndicator = -1; /* OverflowBillingIndicator */
+static int hf_ain_aMAAlternateBillingNumber = -1; /* AMAAlternateBillingNumber */
+static int hf_ain_aMABusinessCustomerID = -1; /* AMABusinessCustomerID */
+static int hf_ain_aMALineNumberList = -1; /* SEQUENCE_SIZE_1_2_OF_AMALineNumber */
+static int hf_ain_aMALineNumberList_item = -1; /* AMALineNumber */
+static int hf_ain_aMAslpID = -1; /* AMAslpID */
+static int hf_ain_aMADigitsDialedWCList = -1; /* SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC */
+static int hf_ain_aMADigitsDialedWCList_item = -1; /* AMADigitsDialedWC */
+static int hf_ain_serviceProviderID = -1; /* ServiceProviderID */
+static int hf_ain_serviceContext = -1; /* ServiceContext */
+static int hf_ain_aMABillingFeature = -1; /* AMABillingFeature */
+static int hf_ain_carrierUsage = -1; /* CarrierUsage */
+static int hf_ain_forwardCallIndicator = -1; /* ForwardCallIndicator */
+static int hf_ain_aMAServiceProviderID = -1; /* AMAServiceProviderID */
+static int hf_ain_genericDigitsList = -1; /* GenericDigitsList */
+static int hf_ain_applyRestrictions = -1; /* ApplyRestrictions */
+static int hf_ain_displayText = -1; /* DisplayText */
+static int hf_ain_controllingLegTreatment = -1; /* ControllingLegTreatment */
+static int hf_ain_aMAserviceProviderID = -1; /* AMAServiceProviderID */
+static int hf_ain_dPConverter = -1; /* DPConverter */
+static int hf_ain_alternateDialingPlanInd = -1; /* AlternateDialingPlanInd */
+static int hf_ain_resourceType = -1; /* ResourceType */
+static int hf_ain_strParameterBlock = -1; /* StrParameterBlock */
+static int hf_ain_disconnectFlag = -1; /* DisconnectFlag */
+static int hf_ain_destinationAddress = -1; /* DestinationAddress */
+static int hf_ain_aMAMeasure = -1; /* AMAMeasure */
+static int hf_ain_notificationDuration = -1; /* NotificationDuration */
+static int hf_ain_wakeUpDuration = -1; /* WakeUpDuration */
+static int hf_ain_oSIIndicator = -1; /* OSIIndicator */
+static int hf_ain_rTPReroutingNumber = -1; /* RTPReroutingNumber */
+static int hf_ain_csID = -1; /* CsID */
+static int hf_ain_lampTreatment = -1; /* LampTreatment */
+static int hf_ain_secondAlternatecarrier = -1; /* SecondAlternateCarrier */
+static int hf_ain_answerIndicator = -1; /* AnswerIndicator */
+static int hf_ain_extendedRinging = -1; /* ExtendedRinging */
+static int hf_ain_tSTRCTimer = -1; /* TSTRCTimer */
+static int hf_ain_partyID = -1; /* PartyID */
+static int hf_ain_partyOnHold = -1; /* PartyOnHold */
+static int hf_ain_sSPResponseMessageTimerT1 = -1; /* SSPResponseMessageTimerT1 */
+static int hf_ain_controlCauseIndicator = -1; /* ControlCauseIndicator */
+static int hf_ain_gapDuration = -1; /* GapDuration */
+static int hf_ain_gapInterval = -1; /* GapInterval */
+static int hf_ain_translationType = -1; /* TranslationType */
+static int hf_ain_globalTitleAddress = -1; /* GlobalTitleAddress */
+static int hf_ain_aCGGlobalOverride = -1; /* ACGGlobalOverride */
+static int hf_ain_actResult = -1; /* ActResult */
+static int hf_ain_transID = -1; /* TransID */
+static int hf_ain_callType = -1; /* CallType */
+static int hf_ain_congestionLevel = -1; /* CongestionLevel */
+static int hf_ain_ssignalingPointCode = -1; /* SignalingPointCode */
+static int hf_ain_subsystemNumber = -1; /* SubsystemNumber */
+static int hf_ain_applicationIndicator = -1; /* ApplicationIndicator */
+static int hf_ain_aaMABAFModules = -1; /* AMABAFModules */
+static int hf_ain_aMASetHexABIndicator = -1; /* AMASetHexABIndicator */
+static int hf_ain_facilityStatus = -1; /* FacilityStatus */
+static int hf_ain_monitorTime = -1; /* MonitorTime */
+static int hf_ain_facilityGID = -1; /* FacilityGID */
+static int hf_ain_facilityMemberID = -1; /* FacilityMemberID */
+static int hf_ain_controlEncountered = -1; /* ControlEncountered */
+static int hf_ain_id = -1; /* T_id */
+static int hf_ain_srhrGroupID = -1; /* SrhrGroupID */
+static int hf_ain_envelopeEncodingAuthority = -1; /* EnvelopeEncodingAuthority */
+static int hf_ain_envelopContent = -1; /* EnvelopContent */
+static int hf_ain_securityEnvelope = -1; /* SecurityEnvelope */
+static int hf_ain_infoProvided = -1; /* InfoProvided */
+static int hf_ain_provideInfo = -1; /* ProvideInfo */
+static int hf_ain_eDPRequest = -1; /* EDPRequest */
+static int hf_ain_eDPNotification = -1; /* EDPNotification */
+static int hf_ain_oNoAnswerTimer = -1; /* ONoAnswerTimer */
+static int hf_ain_tNoAnswerTimer = -1; /* TNoAnswerTimer */
+static int hf_ain_timeoutTimer = -1; /* TimeoutTimer */
+static int hf_ain_oDTMFDigitsString = -1; /* ODTMFDigitsString */
+static int hf_ain_oDTMFNumberOfDigits = -1; /* ODTMFNumberOfDigits */
+static int hf_ain_tDTMFDigitString = -1; /* TDTMFDigitString */
+static int hf_ain_tDTMFNumberOfDigits = -1; /* TDTMFNumberOfDigits */
+static int hf_ain_statusCause = -1; /* StatusCause */
+static int hf_ain_echoData = -1; /* EchoData */
+static int hf_ain_terminationIndicator = -1; /* TerminationIndicator */
+static int hf_ain_connectTime = -1; /* ConnectTime */
+static int hf_ain_resultCause = -1; /* ResultCause */
+static int hf_ain_administrableObject = -1; /* AdministrableObject */
+static int hf_ain_editListType = -1; /* EditListType */
+static int hf_ain_triggerCriteriaFlag = -1; /* TriggerCriteriaFlag */
+static int hf_ain_applicationErrorString = -1; /* ApplicationErrorString */
+static int hf_ain_failureCauseData = -1; /* FailureCauseData */
+static int hf_ain_triggerItemAssignment = -1; /* TriggerItemAssignment */
+static int hf_ain_sSPUserResource = -1; /* SSPUserResource */
+static int hf_ain_srhrGroup = -1; /* SrhrGroup */
+static int hf_ain_networkTestDesignator = -1; /* NetworkTestDesignator */
+static int hf_ain_operationsMonitoringAssignment = -1; /* OperationsMonitoringAssignment */
+static int hf_ain_sSPUserResourceID = -1; /* SSPUserResourceID */
+static int hf_ain_triggerItemID = -1; /* TriggerItemID */
+static int hf_ain_activationStateCode = -1; /* ActivationStateCode */
+static int hf_ain_potentialUse = -1; /* PotentialUse */
+static int hf_ain_sSPUserResourceSubID = -1; /* SSPUserResourceSubID */
+static int hf_ain_dn = -1; /* Dn */
+static int hf_ain_dnCtID = -1; /* DnCtID */
+static int hf_ain_spid = -1; /* Spid */
+static int hf_ain_trunkGroupID = -1; /* TrunkGroupID */
+static int hf_ain_localSSPID = -1; /* LocalSSPID */
+static int hf_ain_publicDialingPlanID = -1; /* PublicDialingPlanID */
+static int hf_ain_pRIOfficeEquipmentID = -1; /* PRIOfficeEquipmentID */
+static int hf_ain_basicBusinessGroupID = -1; /* BasicBusinessGroupID */
+static int hf_ain_basicBusinessGroupDialingPlanID = -1; /* BasicBusinessGroupDialingPlanID */
+static int hf_ain_aFRPatternID = -1; /* AFRPatternID */
+static int hf_ain_officeEquipmentID = -1; /* OfficeEquipmentID */
+static int hf_ain_ct = -1; /* Ct */
+static int hf_ain_dPNumber = -1; /* DPNumber */
+static int hf_ain_triggerItemSubnumber = -1; /* TriggerItemSubnumber */
+static int hf_ain_iSDNBChannelID = -1; /* ISDNBChannelID */
+static int hf_ain_pRIDS1ID = -1; /* PRIDS1ID */
+static int hf_ain_pRIDS0ID = -1; /* PRIDS0ID */
+static int hf_ain_updateGroups = -1; /* UpdateGroups */
+static int hf_ain_cancelInterdigitTimer = -1; /* CancelInterdigitTimer */
+static int hf_ain_updateGroup1 = -1; /* UpdateGroup1 */
+static int hf_ain_updateGroup2 = -1; /* UpdateGroup2 */
+static int hf_ain_updateGroup3 = -1; /* UpdateGroup3 */
+static int hf_ain_updateGroup4 = -1; /* UpdateGroup4 */
+static int hf_ain_updateGroup5 = -1; /* UpdateGroup5 */
+static int hf_ain_updateGroup6 = -1; /* UpdateGroup6 */
+static int hf_ain_updateGroup7 = -1; /* UpdateGroup7 */
+static int hf_ain_updateGroup8 = -1; /* UpdateGroup8 */
+static int hf_ain_updateGroup9 = -1; /* UpdateGroup9 */
+static int hf_ain_service1 = -1; /* Service1 */
+static int hf_ain_action1 = -1; /* Action1 */
+static int hf_ain_service2 = -1; /* Service2 */
+static int hf_ain_action2 = -1; /* Action2 */
+static int hf_ain_delayInterval = -1; /* DelayInterval */
+static int hf_ain_service3 = -1; /* Service3 */
+static int hf_ain_action3 = -1; /* Action3 */
+static int hf_ain_editSpecificEntry = -1; /* EditSpecificEntry */
+static int hf_ain_editAllEntries = -1; /* EditAllEntries */
+static int hf_ain_entry = -1; /* Entry */
+static int hf_ain_speedCallingCode = -1; /* SpeedCallingCode */
+static int hf_ain_memorySlot = -1; /* MemorySlot1 */
+static int hf_ain_service4 = -1; /* Service4 */
+static int hf_ain_action4 = -1; /* Action4 */
+static int hf_ain_forwardingDn = -1; /* ForwardingDn */
+static int hf_ain_set = -1; /* Set */
+static int hf_ain_clear = -1; /* Clear */
+static int hf_ain_service5 = -1; /* Service5 */
+static int hf_ain_action5 = -1; /* Action5 */
+static int hf_ain_service6 = -1; /* Service6 */
+static int hf_ain_action6 = -1; /* Action6 */
+static int hf_ain_service7 = -1; /* Service7 */
+static int hf_ain_action7 = -1; /* Action7 */
+static int hf_ain_toggle = -1; /* Toggle */
+static int hf_ain_service8 = -1; /* Service8 */
+static int hf_ain_action8 = -1; /* Action8 */
+static int hf_ain_action8_invoke = -1; /* Invoke8 */
+static int hf_ain_service9 = -1; /* Service9 */
+static int hf_ain_action9 = -1; /* Action9 */
+static int hf_ain_changeList = -1; /* ChangeList */
+static int hf_ain_srhrID = -1; /* SrhrID */
+static int hf_ain_ntdID = -1; /* NtdID */
+static int hf_ain_ntdIndirectID = -1; /* NtdIndirectID */
+static int hf_ain_operationsMonitoredItemID = -1; /* OperationsMonitoredItemID */
+static int hf_ain_aMATimeDuration = -1; /* AMATimeDuration */
+static int hf_ain_aMATimeGuard = -1; /* AMATimeGuard */
+static int hf_ain_ampAINNodeID = -1; /* AmpAINNodeID */
+static int hf_ain_ampCLogSeqNo = -1; /* AmpCLogSeqNo */
+static int hf_ain_ampCLogRepInd = -1; /* AmpCLogRepInd */
+static int hf_ain_ampCallProgInd = -1; /* AmpCallProgInd */
+static int hf_ain_ampTestReqInd = -1; /* AmpTestReqInd */
+static int hf_ain_ampCLogName = -1; /* AmpCLogName */
+static int hf_ain_ampSvcProvID = -1; /* AmpSvcProvID */
+static int hf_ain_spcID = -1; /* SpcID */
+static int hf_ain_iSDNDeviceID = -1; /* ISDNDeviceID */
+static int hf_ain_ocn = -1; /* Ocn */
+static int hf_ain_errorCause = -1; /* ErrorCause */
+static int hf_ain_failedMessage = -1; /* FailedMessage */
+static int hf_ain__untag_item = -1; /* DisplayInformation */
+static int hf_ain_blank = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_skip = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_continuation = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_calledAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_cause = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_progressIndicator = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_displayInformation_notificationIndicator = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_prompt = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_accumulatedDigits = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_status = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_inband = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_callingAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_reason = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_callingPartyName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_calledPartyName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_originalCalledName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectingName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_connectedName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_origRestrictions = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_dateTimeOfDay = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_callAppearanceID = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_featureAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectionName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectionNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectingNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_originalCalledNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_connectedNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_text = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectingReason = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_assignmentAuthority = -1; /* T_assignmentAuthority */
+static int hf_ain_parameters = -1; /* T_parameters */
+static int hf_ain_mlhg = -1; /* Mlhg */
+static int hf_ain_opCode = -1; /* INTEGER */
+static int hf_ain_parameter = -1; /* OCTET_STRING */
+static int hf_ain_invParms = -1; /* InvParms */
+static int hf_ain_InvParms_item = -1; /* Parms */
+static int hf_ain_oDTMFNumberofDigits = -1; /* ODTMFNumberOfDigits */
+static int hf_ain_timerUpdated = -1; /* TimerUpdated */
+static int hf_ain_derviceProviderID = -1; /* ServiceProviderID */
+static int hf_ain_aMABAFModules = -1; /* AMABAFModules */
+static int hf_ain_aMALineNumber = -1; /* AMALineNumber */
+static int hf_ain_aMADigitsDialedWC = -1; /* AMADigitsDialedWC */
+static int hf_ain_genericAddress = -1; /* GenericAddress */
+static int hf_ain_signalingPointCode = -1; /* SignalingPointCode */
+static int hf_ain_nationalGapInterval = -1; /* NationalGapInterval */
+static int hf_ain_privateGapInterval = -1; /* PrivateGapInterval */
+static int hf_ain__untag_item_01 = -1; /* GenericAddress */
+static int hf_ain__untag_item_02 = -1; /* GenericDigits */
+static int hf_ain_entireList = -1; /* EntireList */
+static int hf_ain_memorySlot_01 = -1; /* MemorySlot */
+static int hf_ain_listSize = -1; /* ListSize */
+static int hf_ain_forwardToDn = -1; /* ForwardToDn */
+static int hf_ain_empty = -1; /* Empty */
+static int hf_ain_EntireList_item = -1; /* Entry2 */
+static int hf_ain_privateDn = -1; /* PrivateDn */
+static int hf_ain_incoming = -1; /* Incoming */
+static int hf_ain_outgoing = -1; /* Outgoing */
+static int hf_ain_aINDigits = -1; /* AINDigits */
+static int hf_ain_timestamp = -1; /* Timestamp */
+static int hf_ain_requestGroups = -1; /* RequestGroups */
+static int hf_ain_requestMemorySlot = -1; /* RequestMemorySlot */
+static int hf_ain_requestGroup1 = -1; /* RequestGroup1 */
+static int hf_ain_requestGroup2 = -1; /* RequestGroup2 */
+static int hf_ain_requestGroup3 = -1; /* RequestGroup3 */
+static int hf_ain_requestGroup4 = -1; /* RequestGroup4 */
+static int hf_ain_requestGroup5 = -1; /* RequestGroup5 */
+static int hf_ain_requestGroup6 = -1; /* RequestGroup6 */
+static int hf_ain_request1 = -1; /* Request1 */
+static int hf_ain_request2 = -1; /* Request2 */
+static int hf_ain_request3 = -1; /* Request3 */
+static int hf_ain_request4 = -1; /* Request4 */
+static int hf_ain_request5 = -1; /* Request5 */
+static int hf_ain_request6 = -1; /* Request6 */
+static int hf_ain_msrID = -1; /* MsrID */
+static int hf_ain_announcementBlock = -1; /* AnnouncementBlock */
+static int hf_ain_announcementDigitBlock = -1; /* AnnouncementDigitBlock */
+static int hf_ain_flexParameterBlock = -1; /* FlexParameterBlock */
+static int hf_ain_uninterAnnounceBlock = -1; /* UninterAnnounceBlock */
+static int hf_ain_interAnnounceBlock = -1; /* InterAnnounceBlock */
+static int hf_ain_UninterAnnounceBlock_item = -1; /* AnnounceElement */
+static int hf_ain_InterAnnounceBlock_item = -1; /* AnnounceElement */
+static int hf_ain_maximumDigits = -1; /* MaximumDigits */
+static int hf_ain_intervalTime = -1; /* IntervalTime */
+static int hf_ain_localSSPTime = -1; /* LocalSSPTime */
+static int hf_ain_absoluteSCPTime = -1; /* AbsoluteSCPTime */
+static int hf_ain_bri = -1; /* T_bri */
+static int hf_ain_privateFacilityGID = -1; /* PrivateFacilityGID */
+static int hf_ain_aDSIcpeID = -1; /* ADSIcpeID */
+static int hf_ain_local = -1; /* T_local */
+static int hf_ain_global = -1; /* OBJECT_IDENTIFIER */
+static int hf_ain_invoke = -1; /* Invoke */
+static int hf_ain_returnResult = -1; /* ReturnResult */
+static int hf_ain_returnError = -1; /* ReturnError */
+static int hf_ain_reject = -1; /* Reject */
+static int hf_ain_invokeId = -1; /* InvokeId */
+static int hf_ain_linkedId = -1; /* T_linkedId */
+static int hf_ain_present = -1; /* T_present */
+static int hf_ain_absent = -1; /* NULL */
+static int hf_ain_opcode = -1; /* Code */
+static int hf_ain_argument = -1; /* T_argument */
+static int hf_ain_result = -1; /* T_result */
+static int hf_ain_result_01 = -1; /* T_result_01 */
+static int hf_ain_errcode = -1; /* Code */
+static int hf_ain_parameter_01 = -1; /* T_parameter */
+static int hf_ain_problem = -1; /* T_problem */
+static int hf_ain_general = -1; /* GeneralProblem */
+static int hf_ain_invokeproblem = -1; /* InvokeProblem */
+static int hf_ain_returnResult_01 = -1; /* ReturnResultProblem */
+static int hf_ain_returnError_01 = -1; /* ReturnErrorProblem */
+static int hf_ain_present_01 = -1; /* INTEGER */
+static int hf_ain_InvokeId_present = -1; /* InvokeId_present */
+/* named bits */
+static int hf_ain_ApplyRestrictions_U_code = -1;
+static int hf_ain_ApplyRestrictions_U_toll = -1;
+static int hf_ain_EDPNotification_U_oCalledPartyBusy = -1;
+static int hf_ain_EDPNotification_U_oNoAnswer = -1;
+static int hf_ain_EDPNotification_U_oTermSeized = -1;
+static int hf_ain_EDPNotification_U_oAnswer = -1;
+static int hf_ain_EDPNotification_U_tBusy = -1;
+static int hf_ain_EDPNotification_U_tNoAnswer = -1;
+static int hf_ain_EDPNotification_U_termResourceAvailable = -1;
+static int hf_ain_EDPNotification_U_tAnswer = -1;
+static int hf_ain_EDPNotification_U_networkBusy = -1;
+static int hf_ain_EDPNotification_U_oSuspended = -1;
+static int hf_ain_EDPNotification_U_oDisconnectCalled = -1;
+static int hf_ain_EDPNotification_U_oDisconnect = -1;
+static int hf_ain_EDPNotification_U_oAbandon = -1;
+static int hf_ain_EDPNotification_U_featureActivator = -1;
+static int hf_ain_EDPNotification_U_switchHookFlash = -1;
+static int hf_ain_EDPNotification_U_success = -1;
+static int hf_ain_EDPNotification_U_tDisconnect = -1;
+static int hf_ain_EDPNotification_U_timeout = -1;
+static int hf_ain_EDPNotification_U_originationAttempt = -1;
+static int hf_ain_EDPNotification_U_oDTMFEntered = -1;
+static int hf_ain_EDPNotification_U_tDTMFEntered = -1;
+static int hf_ain_EDPRequest_U_oCalledPartyBusy = -1;
+static int hf_ain_EDPRequest_U_oNoAnswer = -1;
+static int hf_ain_EDPRequest_U_oTermSeized = -1;
+static int hf_ain_EDPRequest_U_oAnswer = -1;
+static int hf_ain_EDPRequest_U_tBusy = -1;
+static int hf_ain_EDPRequest_U_tNoAnswer = -1;
+static int hf_ain_EDPRequest_U_termResourceAvailable = -1;
+static int hf_ain_EDPRequest_U_tAnswer = -1;
+static int hf_ain_EDPRequest_U_networkBusy = -1;
+static int hf_ain_EDPRequest_U_oSuspended = -1;
+static int hf_ain_EDPRequest_U_oDisconnectCalled = -1;
+static int hf_ain_EDPRequest_U_oDisconnect = -1;
+static int hf_ain_EDPRequest_U_oAbandon = -1;
+static int hf_ain_EDPRequest_U_featureActivator = -1;
+static int hf_ain_EDPRequest_U_switchHookFlash = -1;
+static int hf_ain_EDPRequest_U_success = -1;
+static int hf_ain_EDPRequest_U_tDisconnect = -1;
+static int hf_ain_EDPRequest_U_timeout = -1;
+static int hf_ain_EDPRequest_U_originationAttempt = -1;
+static int hf_ain_EDPRequest_U_oDTMFEntered = -1;
+static int hf_ain_EDPRequest_U_tDTMFEntered = -1;
+static int hf_ain_Empty_entireList = -1;
+static int hf_ain_Empty_outgoingmemorySlot = -1;
+static int hf_ain_Empty_incomingmemorySlot = -1;
+static int hf_ain_Empty_forwardToDn = -1;
+static int hf_ain_Request1_activationStatus = -1;
+static int hf_ain_Request2_activationStatus = -1;
+static int hf_ain_Request2_delayInterval = -1;
+static int hf_ain_Request3_activationStatus = -1;
+static int hf_ain_Request3_entireList = -1;
+static int hf_ain_Request3_listSize = -1;
+static int hf_ain_Request4_activationStatus = -1;
+static int hf_ain_Request4_forwardingDn = -1;
+static int hf_ain_Request5_activationStatus = -1;
+static int hf_ain_Request5_forwardingDn = -1;
+static int hf_ain_Request5_entireList = -1;
+static int hf_ain_Request5_listSize = -1;
+static int hf_ain_Request6_delayInterval = -1;
+static int hf_ain_RequestMemorySlot_incoming = -1;
+static int hf_ain_RequestMemorySlot_outgoing = -1;
+
+/* Initialize the subtree pointers */
+static int ett_ain = -1;
+static int ett_ain_digits = -1;
+static int ett_ain_carrierformat = -1;
+static int ett_ain_amaslpid = -1;
+
+static gint ett_ain_CallInfoFromResourceArg = -1;
+static gint ett_ain_CloseArg = -1;
+static gint ett_ain_CTRClearArg = -1;
+static gint ett_ain_FailureOutcomeArg = -1;
+static gint ett_ain_InfoAnalyzedArg = -1;
+static gint ett_ain_InfoCollectedArg = -1;
+static gint ett_ain_NetworkBusyArg = -1;
+static gint ett_ain_OAnswerArg = -1;
+static gint ett_ain_OAbandonArg = -1;
+static gint ett_ain_ODisconnectArg = -1;
+static gint ett_ain_OMidCallArg = -1;
+static gint ett_ain_ONoAnswerArg = -1;
+static gint ett_ain_OSuspendedArg = -1;
+static gint ett_ain_OTermSeizedArg = -1;
+static gint ett_ain_OriginationAttemptArg = -1;
+static gint ett_ain_RES_resourceClear = -1;
+static gint ett_ain_ResourceClearArg = -1;
+static gint ett_ain_SuccessOutcomeArg = -1;
+static gint ett_ain_TAnswerArg = -1;
+static gint ett_ain_TBusyArg = -1;
+static gint ett_ain_TDisconnectArg = -1;
+static gint ett_ain_TDTMFEnteredArg = -1;
+static gint ett_ain_TMidCallArg = -1;
+static gint ett_ain_TNoAnswerArg = -1;
+static gint ett_ain_TerminationAttemptArg = -1;
+static gint ett_ain_TermResourceAvailableArg = -1;
+static gint ett_ain_TimeoutArg = -1;
+static gint ett_ain_AnalyzeRouteArg = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC = -1;
+static gint ett_ain_AuthorizeTerminationArg = -1;
+static gint ett_ain_CancelResourceEventArg = -1;
+static gint ett_ain_CollectInformationArg = -1;
+static gint ett_ain_ConnectToResourceArg = -1;
+static gint ett_ain_ContinueArg = -1;
+static gint ett_ain_CreateCallArg = -1;
+static gint ett_ain_CreateCallRes = -1;
+static gint ett_ain_DisconnectArg = -1;
+static gint ett_ain_DisconnectLegArg = -1;
+static gint ett_ain_ForwardCallArg = -1;
+static gint ett_ain_MergeCallArg = -1;
+static gint ett_ain_MoveLegArg = -1;
+static gint ett_ain_OfferCallArg = -1;
+static gint ett_ain_OriginateCallArg = -1;
+static gint ett_ain_ReconnectArg = -1;
+static gint ett_ain_RES_sendToResource = -1;
+static gint ett_ain_SendToResourceArg = -1;
+static gint ett_ain_SetTimerArg = -1;
+static gint ett_ain_SplitLegArg = -1;
+static gint ett_ain_AcgArg = -1;
+static gint ett_ain_RES_acgGlobalCtrlRestore = -1;
+static gint ett_ain_AcgGlobalCtrlRestoreArg = -1;
+static gint ett_ain_AcgOverflowArg = -1;
+static gint ett_ain_RES_activityTest = -1;
+static gint ett_ain_ActivityTestArg = -1;
+static gint ett_ain_RES_callTypeRequest = -1;
+static gint ett_ain_CallTypeRequestArg = -1;
+static gint ett_ain_ControlRequestArg = -1;
+static gint ett_ain_RES_echoRequest = -1;
+static gint ett_ain_EchoRequestArg = -1;
+static gint ett_ain_FurnishAMAInformationArg = -1;
+static gint ett_ain_MonitorForChangeArg = -1;
+static gint ett_ain_MonitorSuccessArg = -1;
+static gint ett_ain_NCADataArg = -1;
+static gint ett_ain_T_id = -1;
+static gint ett_ain_RES_nCARequest = -1;
+static gint ett_ain_NCARequestArg = -1;
+static gint ett_ain_RES_queryRequest = -1;
+static gint ett_ain_QueryRequestArg = -1;
+static gint ett_ain_RequestReportBCMEventArg = -1;
+static gint ett_ain_StatusReportedArg = -1;
+static gint ett_ain_TerminationNotificationArg = -1;
+static gint ett_ain_RES_update = -1;
+static gint ett_ain_UpdateArg = -1;
+static gint ett_ain_RES_updateRequest = -1;
+static gint ett_ain_UpdateRequestArg = -1;
+static gint ett_ain_PAR_applicationError = -1;
+static gint ett_ain_PAR_failureReport = -1;
+static gint ett_ain_AdministrableObject = -1;
+static gint ett_ain_TriggerItemAssignment_U = -1;
+static gint ett_ain_SSPUserResourceID = -1;
+static gint ett_ain_DnCtID = -1;
+static gint ett_ain_TriggerItemID = -1;
+static gint ett_ain_SSPUserResourceSubID = -1;
+static gint ett_ain_ISDNBChannelID = -1;
+static gint ett_ain_SSPUserResource_U = -1;
+static gint ett_ain_UpdateGroups = -1;
+static gint ett_ain_UpdateGroup1 = -1;
+static gint ett_ain_Action1 = -1;
+static gint ett_ain_UpdateGroup2 = -1;
+static gint ett_ain_Action2 = -1;
+static gint ett_ain_UpdateGroup3 = -1;
+static gint ett_ain_Action3 = -1;
+static gint ett_ain_EditSpecificEntry = -1;
+static gint ett_ain_Entry = -1;
+static gint ett_ain_UpdateGroup4 = -1;
+static gint ett_ain_Action4 = -1;
+static gint ett_ain_ForwardingDn = -1;
+static gint ett_ain_Set = -1;
+static gint ett_ain_UpdateGroup5 = -1;
+static gint ett_ain_Action5 = -1;
+static gint ett_ain_UpdateGroup6 = -1;
+static gint ett_ain_Action6 = -1;
+static gint ett_ain_UpdateGroup7 = -1;
+static gint ett_ain_Action7 = -1;
+static gint ett_ain_UpdateGroup8 = -1;
+static gint ett_ain_Action8 = -1;
+static gint ett_ain_UpdateGroup9 = -1;
+static gint ett_ain_Action9 = -1;
+static gint ett_ain_ChangeList = -1;
+static gint ett_ain_SrhrGroup_U = -1;
+static gint ett_ain_NetworkTestDesignator_U = -1;
+static gint ett_ain_NtdID = -1;
+static gint ett_ain_OperationsMonitoringAssignment_U = -1;
+static gint ett_ain_OperationsMonitoredItemID = -1;
+static gint ett_ain_AMAMeasurement_U = -1;
+static gint ett_ain_Amp2_U = -1;
+static gint ett_ain_AmpAINNodeID = -1;
+static gint ett_ain_AmpSvcProvID = -1;
+static gint ett_ain_ApplicationErrorString_U = -1;
+static gint ett_ain_ApplyRestrictions_U = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation = -1;
+static gint ett_ain_DisplayInformation = -1;
+static gint ett_ain_EDPNotification_U = -1;
+static gint ett_ain_EDPRequest_U = -1;
+static gint ett_ain_ExtensionParameter = -1;
+static gint ett_ain_FacilityGID = -1;
+static gint ett_ain_FailedMessage_U = -1;
+static gint ett_ain_InvParms = -1;
+static gint ett_ain_Parms = -1;
+static gint ett_ain_GapInterval = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits = -1;
+static gint ett_ain_InfoProvided_U = -1;
+static gint ett_ain_EntireList = -1;
+static gint ett_ain_Entry2 = -1;
+static gint ett_ain_MemorySlot = -1;
+static gint ett_ain_Incoming = -1;
+static gint ett_ain_Outgoing = -1;
+static gint ett_ain_Empty = -1;
+static gint ett_ain_ProvideInfo_U = -1;
+static gint ett_ain_RequestGroups = -1;
+static gint ett_ain_RequestGroup1 = -1;
+static gint ett_ain_Request1 = -1;
+static gint ett_ain_RequestGroup2 = -1;
+static gint ett_ain_Request2 = -1;
+static gint ett_ain_RequestGroup3 = -1;
+static gint ett_ain_Request3 = -1;
+static gint ett_ain_RequestGroup4 = -1;
+static gint ett_ain_Request4 = -1;
+static gint ett_ain_RequestGroup5 = -1;
+static gint ett_ain_Request5 = -1;
+static gint ett_ain_RequestGroup6 = -1;
+static gint ett_ain_Request6 = -1;
+static gint ett_ain_RequestMemorySlot = -1;
+static gint ett_ain_ServiceProviderID = -1;
+static gint ett_ain_StrParameterBlock_U = -1;
+static gint ett_ain_AnnouncementBlock = -1;
+static gint ett_ain_UninterAnnounceBlock = -1;
+static gint ett_ain_InterAnnounceBlock = -1;
+static gint ett_ain_AnnouncementDigitBlock = -1;
+static gint ett_ain_TimeoutTimer_U = -1;
+static gint ett_ain_UserID_U = -1;
+static gint ett_ain_T_bri = -1;
+static gint ett_ain_Code = -1;
+static gint ett_ain_ROS = -1;
+static gint ett_ain_Invoke = -1;
+static gint ett_ain_T_linkedId = -1;
+static gint ett_ain_ReturnResult = -1;
+static gint ett_ain_T_result = -1;
+static gint ett_ain_ReturnError = -1;
+static gint ett_ain_Reject = -1;
+static gint ett_ain_T_problem = -1;
+static gint ett_ain_InvokeId = -1;
+
+static expert_field ei_ain_unknown_invokeData = EI_INIT;
+static expert_field ei_ain_unknown_returnResultData = EI_INIT;
+static expert_field ei_ain_unknown_returnErrorData = EI_INIT;
+
+/* Global variables */
+static guint32 opcode = 0;
+static guint32 errorCode = 0;
+//static const char *obj_id = NULL;
+
+static int ain_opcode_type;
+#define AIN_OPCODE_INVOKE 1
+#define AIN_OPCODE_RETURN_RESULT 2
+#define AIN_OPCODE_RETURN_ERROR 3
+#define AIN_OPCODE_REJECT 4
+
+/* Forvard declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+
+static const value_string ain_np_vals[] = {
+ { 0, "Unknown or not applicable"},
+ { 1, "ISDN Numbering Plan (ITU Rec. E.164)"},
+ { 2, "Telephony Numbering (ITU-T Rec. E.164,E.163)"},
+ { 3, "Data Numbering (ITU-T Rec. X.121)"},
+ { 4, "Telex Numbering (ITU-T Rec. F.69)"},
+ { 5, "Maritime Mobile Numbering"},
+ { 6, "Land Mobile Numbering (ITU-T Rec. E.212)"},
+ { 7, "Private Numbering Plan"},
+ { 0, NULL }
+};
+
+static const value_string ain_carrier_selection_vals[] = {
+ { 0, "No indication"},
+ { 1, "Selected carrier identification code presubscribed and not input by calling party"},
+ { 2, "Selected carrier identification code presubscribed and input by calling party"},
+ { 3, "Selected carrier identification code presubscribed, no indication of whether input by calling party"},
+ { 4, "Selected carrier identification code not presubscribed and input by calling party"},
+ { 0, NULL }
+};
+
+static const value_string ain_nature_of_carrier_vals[] = {
+ { 0, "No NOC Provided"},
+ { 1, "local"},
+ { 2, "intraLATA toll"},
+ { 3, "interLATA"},
+ { 4, "local, intraLATA toll and interLATA"},
+ { 5, "local and intraLATA toll"},
+ { 6, "intraLATA toll and interLATA"},
+ { 0, NULL }
+};
+
+
+/* AIN OPERATIONS */
+const value_string ain_opr_code_strings[] = {
+ { 26116 , "callInfoFromResource" },
+ { 28161 , "close" },
+ { 26118 , "cTRClear" },
+ { 25604 , "failureOutcome" },
+ { 25603 , "infoAnalyzed" },
+ { 25602 , "infoCollected" },
+ { 25623 , "networkBusy" },
+ { 25611 , "oAnswer" },
+ { 25614 , "oAbandon" },
+ { 25626 , "oDisconnect" },
+ { 25615 , "oMidCall" },
+ { 25609 , "oNoAnswer" },
+ { 25625 , "oSuspended" },
+ { 25612 , "oTermSeized" },
+ { 25624 , "originationAttempt" },
+ { 26114 , "resourceClear" },
+ { 25617 , "successOutcome" },
+ { 25610 , "tAnswer" },
+ { 25606 , "tBusy" },
+ { 25618 , "tDisconnect" },
+ { 25628 , "tDTMFEntered" },
+ { 25619 , "tMidCall" },
+ { 25608 , "tNoAnswer" },
+ { 25605 , "terminationAttempt" },
+ { 25613 , "termResourceAvailable" },
+ { 25620 , "timeout" },
+ { 25857 , "analyzeRoute" },
+ { 25858 , "authorizeTermination" },
+ { 26115 , "cancelResourceEvent" },
+ { 25861 , "collectInformation" },
+ { 26117 , "connectToResource" },
+ { 25869 , "continue" },
+ { 25863 , "createCall" },
+ { 25859 , "disconnect" },
+ { 25864 , "disconnectLeg" },
+ { 27137 , "forwardCall" },
+ { 25865 , "mergeCall" },
+ { 25866 , "moveLeg" },
+ { 25860 , "offerCall" },
+ { 25867 , "originateCall" },
+ { 25870 , "reconnect" },
+ { 26113 , "sendToResource" },
+ { 26889 , "setTimer" },
+ { 25868 , "splitLeg" },
+ { 26881 , "acg" },
+ { 26883 , "acgGlobalCtrlRestore" },
+ { 26884 , "acgOverflow" },
+ { 26886 , "activityTest" },
+ { 26887 , "callTypeRequest" },
+ { 26885 , "controlRequest" },
+ { 26882 , "echoRequest" },
+ { 27649 , "furnishAMAInformation" },
+ { 26369 , "monitorForChange" },
+ { 26371 , "monitorSuccess" },
+ { 27394 , "nCAData" },
+ { 27393 , "nCARequest" },
+ { 26626 , "queryRequest" },
+ { 27905 , "requestReportBCMEvent" },
+ { 26370 , "statusReported" },
+ { 26372 , "terminationNotification" },
+ { 26627 , "update" },
+ { 26625 , "updateRequest" },
+ { 0, NULL }
+};
+
+
+/* AIN ERRORS */
+static const value_string ain_err_code_string_vals[] = {
+ { 1 , "applicationError" },
+ { 2 , "failureReport" },
+ { 0, NULL }
+};
+
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_120(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_IPReturnBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 78, TRUE, dissect_ain_OCTET_STRING_SIZE_1_120);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Amp1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 11, TRUE, dissect_ain_OCTET_STRING_SIZE_6);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SpcID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AINDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ain_digits);
+ proto_tree_add_item(subtree, hf_ain_odd_even_indicator, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ain_nature_of_address, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+
+ proto_tree_add_item(subtree, hf_ain_numbering_plan, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
+
+ proto_tree_add_item(subtree, hf_ain_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ISDNDeviceID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ain_AINDigits(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const value_string ain_AmpAINNodeID_vals[] = {
+ { 1, "spcID" },
+ { 2, "iSDNDeviceID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t AmpAINNodeID_choice[] = {
+ { 1, &hf_ain_spcID , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_SpcID },
+ { 2, &hf_ain_iSDNDeviceID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ISDNDeviceID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AmpAINNodeID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ AmpAINNodeID_choice, hf_index, ett_ain_AmpAINNodeID,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AmpCLogSeqNo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_AmpCLogRepInd_vals[] = {
+ { 0, "autoReportOS" },
+ { 1, "requestReport" },
+ { 2, "autoReportISDN" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_AmpCLogRepInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_AmpCallProgInd_vals[] = {
+ { 0, "callProgressVoiceAnnouncements" },
+ { 1, "callProgressTextMessages" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_AmpCallProgInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AmpTestReqInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AmpCLogName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_IA5String_SIZE_4_8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Ocn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 87, TRUE, dissect_ain_IA5String_SIZE_4_8);
+
+ return offset;
+}
+
+
+static const value_string ain_AmpSvcProvID_vals[] = {
+ { 87, "ocn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t AmpSvcProvID_choice[] = {
+ { 87, &hf_ain_ocn , BER_CLASS_CON, 87, BER_FLAGS_NOOWNTAG, dissect_ain_Ocn },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AmpSvcProvID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ AmpSvcProvID_choice, hf_index, ett_ain_AmpSvcProvID,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Amp2_U_sequence[] = {
+ { &hf_ain_ampAINNodeID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_AmpAINNodeID },
+ { &hf_ain_ampCLogSeqNo , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCLogSeqNo },
+ { &hf_ain_ampCLogRepInd , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCLogRepInd },
+ { &hf_ain_ampCallProgInd , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCallProgInd },
+ { &hf_ain_ampTestReqInd , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpTestReqInd },
+ { &hf_ain_ampCLogName , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCLogName },
+ { &hf_ain_ampSvcProvID , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_AmpSvcProvID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Amp2_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Amp2_U_sequence, hf_index, ett_ain_Amp2_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Amp2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 109, TRUE, dissect_ain_Amp2_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_assignmentAuthority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_ain_ext_type_oid, &actx->external.direct_reference);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_parameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t ExtensionParameter_sequence[] = {
+ { &hf_ain_assignmentAuthority, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ain_T_assignmentAuthority },
+ { &hf_ain_parameters , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ain_T_parameters },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ExtensionParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ExtensionParameter_sequence, hf_index, ett_ain_ExtensionParameter);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CallInfoFromResourceArg_sequence[] = {
+ { &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CallInfoFromResourceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallInfoFromResourceArg_sequence, hf_index, ett_ain_CallInfoFromResourceArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Dn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_3_20(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Spid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 49, TRUE, dissect_ain_OCTET_STRING_SIZE_3_20);
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_bri_sequence[] = {
+ { &hf_ain_spid , BER_CLASS_CON, 49, BER_FLAGS_NOOWNTAG, dissect_ain_Spid },
+ { &hf_ain_dn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_Dn },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_T_bri(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ T_bri_sequence, hf_index, ett_ain_T_bri);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TrunkGroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PrivateFacilityGID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ADSIcpeID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_UserID_U_vals[] = {
+ { 0, "dn" },
+ { 1, "bri" },
+ { 2, "trunkGroupID" },
+ { 3, "privateFacilityGID" },
+ { 4, "aDSIcpeID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t UserID_U_choice[] = {
+ { 0, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { 1, &hf_ain_bri , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_T_bri },
+ { 2, &hf_ain_trunkGroupID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_TrunkGroupID },
+ { 3, &hf_ain_privateFacilityGID, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_PrivateFacilityGID },
+ { 4, &hf_ain_aDSIcpeID , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_ADSIcpeID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UserID_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ UserID_U_choice, hf_index, ett_ain_UserID_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_UserID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 53, TRUE, dissect_ain_UserID_U);
+
+ return offset;
+}
+
+
+static const value_string ain_BearerCapability_U_vals[] = {
+ { 0, "speech" },
+ { 1, "f31kHzaudio" },
+ { 2, "f7kHzaudio" },
+ { 3, "b56kbps" },
+ { 4, "b64kbps" },
+ { 5, "packetModeData" },
+ { 6, "multiRate" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_BearerCapability_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BearerCapability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 13, TRUE, dissect_ain_BearerCapability_U);
+
+ return offset;
+}
+
+
+static const value_string ain_CloseCause_U_vals[] = {
+ { 0, "callTerminated" },
+ { 1, "eDPsCompleted" },
+ { 2, "unexpectedCommunication" },
+ { 3, "calledPartyAnswered" },
+ { 4, "callForwardedEDPsCompleted" },
+ { 5, "newRequestedEvent" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_CloseCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CloseCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 72, TRUE, dissect_ain_CloseCause_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CloseArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_closeCause , BER_CLASS_CON, 72, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CloseCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CloseArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CloseArg_sequence, hf_index, ett_ain_CloseArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_0_255(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ClearCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 21, TRUE, dissect_ain_INTEGER_0_255);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_0_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_LegID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 132, TRUE, dissect_ain_INTEGER_0_2);
+
+ return offset;
+}
+
+
+static const value_string ain_CcID_U_vals[] = {
+ { 0, "null" },
+ { 1, "originatingSetup" },
+ { 2, "stable2Party" },
+ { 3, "terminatingSetup" },
+ { 4, "threePartySetup" },
+ { 5, "threePartySetupComplement" },
+ { 6, "partyOnHold" },
+ { 7, "partyOnHoldComplement" },
+ { 8, "callWaiting" },
+ { 9, "callWaitingComplement" },
+ { 10, "stableMParty" },
+ { 11, "transfer" },
+ { 12, "forward" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_CcID_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CcID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 133, TRUE, dissect_ain_CcID_U);
+
+ return offset;
+}
+
+
+static const value_string ain_BCMType_U_vals[] = {
+ { 0, "oBcm" },
+ { 1, "tBcm" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_BCMType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BCMType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 134, TRUE, dissect_ain_BCMType_U);
+
+ return offset;
+}
+
+
+static const value_string ain_PointInCall_U_vals[] = {
+ { 1, "oNull" },
+ { 2, "authorizeOrigAttempt" },
+ { 3, "collectInformation" },
+ { 4, "analyzeInformation" },
+ { 5, "selectRoute" },
+ { 6, "authorizeCallSetup" },
+ { 7, "sendCall" },
+ { 8, "oAlerting" },
+ { 9, "oActive" },
+ { 10, "oSuspended" },
+ { 11, "tNull" },
+ { 12, "authorizeTermination" },
+ { 13, "selectFacility" },
+ { 14, "presentCall" },
+ { 15, "tAlerting" },
+ { 16, "tActive" },
+ { 17, "tSuspended" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_PointInCall_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PointInCall(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 135, TRUE, dissect_ain_PointInCall_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CollectedDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 23, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CollectedAddressInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 22, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CarrierFormat(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ain_carrierformat);
+ /* Carrier Selection */
+ proto_tree_add_item(subtree, hf_ain_carrier_selection, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ /* Nature of Carrier Number of Digits (always 4 )*/
+ proto_tree_add_item(subtree, hf_ain_nature_of_carrier, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ain_nr_digits, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
+
+ /* 2nd Digit 1st Digit .. */
+ proto_tree_add_item(subtree, hf_ain_carrier_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Carrier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 41, TRUE, dissect_ain_CarrierFormat);
+
+ return offset;
+}
+
+
+static const value_string ain_FailureCause_U_vals[] = {
+ { 1, "rateTooHigh" },
+ { 2, "unavailableResources" },
+ { 3, "apTimeout" },
+ { 4, "apBusy" },
+ { 13, "channelsBusy" },
+ { 14, "abort" },
+ { 15, "resourceLimitation" },
+ { 16, "applicationError" },
+ { 17, "securityError" },
+ { 18, "protocolError" },
+ { 19, "timerExpired" },
+ { 20, "temporaryFailure" },
+ { 21, "msridDoesNotMatchUserProfile" },
+ { 22, "segmentationError" },
+ { 23, "ncasDisallowed" },
+ { 24, "controlEncountered" },
+ { 25, "improperCoding" },
+ { 26, "inappropriateCondition" },
+ { 27, "inappropriateUserInterface" },
+ { 28, "inappropriateLegManipulation" },
+ { 29, "callingInterfaceBusy" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_FailureCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 32, TRUE, dissect_ain_FailureCause_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMATimeDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_AMATimeGuard_vals[] = {
+ { 0, "noTimingGuard" },
+ { 1, "timingGuardExists" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_AMATimeGuard(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AMAMeasurement_U_sequence[] = {
+ { &hf_ain_aMATimeDuration , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_AMATimeDuration },
+ { &hf_ain_aMATimeGuard , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_AMATimeGuard },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AMAMeasurement_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AMAMeasurement_U_sequence, hf_index, ett_ain_AMAMeasurement_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMAMeasurement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 73, TRUE, dissect_ain_AMAMeasurement_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_20(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ClearCauseData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 74, TRUE, dissect_ain_OCTET_STRING_SIZE_1_20);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CTRClearArg_sequence[] = {
+ { &hf_ain_clearCause , BER_CLASS_CON, 21, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCause },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_aMAMeasurement , BER_CLASS_CON, 73, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasurement },
+ { &hf_ain_clearCauseData , BER_CLASS_CON, 74, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ClearCauseData },
+ { &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CTRClearArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CTRClearArg_sequence, hf_index, ett_ain_CTRClearArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NotificationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t FailureOutcomeArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_FailureOutcomeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ FailureOutcomeArg_sequence, hf_index, ett_ain_FailureOutcomeArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CalledPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 15, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Lata(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 35, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const value_string ain_TriggerCriteriaType_U_vals[] = {
+ { 0, "featureActivator" },
+ { 1, "verticalServiceCode" },
+ { 2, "customizedAccess" },
+ { 3, "customizedIntercom" },
+ { 4, "npa" },
+ { 5, "npaNXX" },
+ { 6, "nxx" },
+ { 7, "nxxXXXX" },
+ { 8, "npaNXXXXXX" },
+ { 9, "countryCodeNPANXXXXXX" },
+ { 10, "carrierAccess" },
+ { 11, "prefixes" },
+ { 12, "n11" },
+ { 13, "aFR" },
+ { 14, "sharedIOTrunk" },
+ { 15, "terminationAttempt" },
+ { 16, "offHookImmediate" },
+ { 17, "offHookDelay" },
+ { 18, "channelSetupPRI" },
+ { 19, "npaN" },
+ { 20, "npaNX" },
+ { 21, "npaNXXX" },
+ { 22, "npaNXXXX" },
+ { 23, "npaNXXXXX" },
+ { 24, "networkBusy" },
+ { 25, "tNoAnswer" },
+ { 26, "tBusy" },
+ { 27, "oCalledPartyBusy" },
+ { 28, "specificFeatureCode" },
+ { 29, "oNoAnswer" },
+ { 30, "priNetworkServices" },
+ { 31, "oSwitchHookFlashImmediate" },
+ { 32, "oFeatureActivator" },
+ { 33, "oSwitchHookFlashSpecifiedCode" },
+ { 34, "tSwitchHookFlashImmediate" },
+ { 35, "tFeatureActivator" },
+ { 36, "tSwitchHookFlashSpecifiedCode" },
+ { 37, "numberPortability" },
+ { 38, "onePlus" },
+ { 39, "specifiedCarrier" },
+ { 40, "international" },
+ { 41, "zeroPlus" },
+ { 42, "zeroMinus" },
+ { 43, "localNumberPortabilityPORC" },
+ { 44, "localNumberPortabilityPORCdonor" },
+ { 45, "reserved" },
+ { 46, "termResourceAvailable" },
+ { 47, "officePublicFeatureCode" },
+ { 48, "trunkGroup" },
+ { 49, "dedicatedTrunkGroup" },
+ { 50, "reserved" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_TriggerCriteriaType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TriggerCriteriaType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 52, TRUE, dissect_ain_TriggerCriteriaType_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ChargeNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 19, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CallingPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 18, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BusinessGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CallingPartyBGID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 17, TRUE, dissect_ain_BusinessGroup);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_0_99(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ChargePartyStationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 20, TRUE, dissect_ain_INTEGER_0_99);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AccessCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 1, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_VerticalServiceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 54, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Tcm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 51, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OriginalCalledPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 36, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_RedirectingPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 43, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_RedirectionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 44, TRUE, dissect_ain_OCTET_STRING_SIZE_2);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ACGEncountered(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 2, TRUE, dissect_ain_OCTET_STRING_SIZE_1);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_10(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Sap(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 81, TRUE, dissect_ain_OCTET_STRING_SIZE_1_10);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_STRConnection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 96, TRUE, dissect_ain_BOOLEAN);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMASequenceNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 89, TRUE, dissect_ain_OCTET_STRING_SIZE_2);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_4_11(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GenericAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 80, TRUE, dissect_ain_OCTET_STRING_SIZE_4_11);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_GenericAddress_sequence_of[1] = {
+ { &hf_ain__untag_item_01 , BER_CLASS_CON, 80, BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddress },
+};
+
+static int
+dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_5_OF_GenericAddress_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GenericAddressList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 107, TRUE, dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_2_12(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NetworkSpecificFacilities(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 108, TRUE, dissect_ain_OCTET_STRING_SIZE_2_12);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CTRConnection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 141, TRUE, dissect_ain_BOOLEAN);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_JurisdictionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 147, TRUE, dissect_ain_OCTET_STRING_SIZE_3);
+
+ return offset;
+}
+
+
+static const value_string ain_Prefix_U_vals[] = {
+ { 0, "onePlus" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Prefix_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Prefix(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 148, TRUE, dissect_ain_Prefix_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_8_13(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CallingGeodeticLocation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 162, TRUE, dissect_ain_OCTET_STRING_SIZE_8_13);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TriggerInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InfoAnalyzedArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
+ { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
+ { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { &hf_ain_jurisdictionInformation, BER_CLASS_CON, 147, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_JurisdictionInformation },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_InfoAnalyzedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InfoAnalyzedArg_sequence, hf_index, ett_ain_InfoAnalyzedArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InfoCollectedArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
+ { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_InfoCollectedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InfoCollectedArg_sequence, hf_index, ett_ain_InfoCollectedArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NetworkBusyArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_NetworkBusyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NetworkBusyArg_sequence, hf_index, ett_ain_NetworkBusyArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OAnswerArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OAnswerArg_sequence, hf_index, ett_ain_OAnswerArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OAbandonArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OAbandonArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OAbandonArg_sequence, hf_index, ett_ain_OAbandonArg);
+
+ return offset;
+}
+
+
+static const value_string ain_DisconnectCause_U_vals[] = {
+ { 0, "farEnd" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_DisconnectCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DisconnectCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 116, TRUE, dissect_ain_DisconnectCause_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ODisconnectArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_disconnectCause , BER_CLASS_CON, 116, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectCause },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ODisconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ODisconnectArg_sequence, hf_index, ett_ain_ODisconnectArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FeatureActivatorID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 136, TRUE, dissect_ain_OCTET_STRING_SIZE_1_2);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OMidCallArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_featureActivatorID, BER_CLASS_CON, 136, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FeatureActivatorID },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
+ { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OMidCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OMidCallArg_sequence, hf_index, ett_ain_OMidCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ONoAnswerArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ONoAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ONoAnswerArg_sequence, hf_index, ett_ain_ONoAnswerArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OSuspendedArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OSuspendedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OSuspendedArg_sequence, hf_index, ett_ain_OSuspendedArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OTermSeizedArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OTermSeizedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OTermSeizedArg_sequence, hf_index, ett_ain_OTermSeizedArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OriginationAttemptArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OriginationAttemptArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OriginationAttemptArg_sequence, hf_index, ett_ain_OriginationAttemptArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_resourceClear_sequence[] = {
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_resourceClear(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_resourceClear_sequence, hf_index, ett_ain_RES_resourceClear);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ResourceClearArg_sequence[] = {
+ { &hf_ain_clearCause , BER_CLASS_CON, 21, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCause },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_aMAMeasurement , BER_CLASS_CON, 73, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasurement },
+ { &hf_ain_clearCauseData , BER_CLASS_CON, 74, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ClearCauseData },
+ { &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ResourceClearArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ResourceClearArg_sequence, hf_index, ett_ain_ResourceClearArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SuccessOutcomeArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SuccessOutcomeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SuccessOutcomeArg_sequence, hf_index, ett_ain_SuccessOutcomeArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TAnswerArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TAnswerArg_sequence, hf_index, ett_ain_TAnswerArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_2_3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BusyCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 14, TRUE, dissect_ain_OCTET_STRING_SIZE_2_3);
+
+ return offset;
+}
+
+
+static const value_string ain_BusyType_U_vals[] = {
+ { 0, "callCanBeOffered" },
+ { 1, "callCannotBeOffered" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_BusyType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BusyType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 94, TRUE, dissect_ain_BusyType_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CalledPartyStationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 16, TRUE, dissect_ain_INTEGER_0_99);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GenericName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 33, TRUE, dissect_ain_OCTET_STRING);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TBusyArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_busyCause , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BusyCause },
+ { &hf_ain_busyType , BER_CLASS_CON, 94, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BusyType },
+ { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TBusyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TBusyArg_sequence, hf_index, ett_ain_TBusyArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TDisconnectArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_disconnectCause , BER_CLASS_CON, 116, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TDisconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TDisconnectArg_sequence, hf_index, ett_ain_TDisconnectArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DTMFDigitsDetected(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 153, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TDTMFEnteredArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_dTMFDigitsDetected, BER_CLASS_CON, 153, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DTMFDigitsDetected },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TDTMFEnteredArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TDTMFEnteredArg_sequence, hf_index, ett_ain_TDTMFEnteredArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TMidCallArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_featureActivatorID, BER_CLASS_CON, 136, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FeatureActivatorID },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
+ { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TMidCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TMidCallArg_sequence, hf_index, ett_ain_TMidCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TNoAnswerArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TNoAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TNoAnswerArg_sequence, hf_index, ett_ain_TNoAnswerArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_RTPServiceIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 144, TRUE, dissect_ain_OCTET_STRING_SIZE_1);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TerminationAttemptArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { &hf_ain_rTPServiceIndicator, BER_CLASS_CON, 144, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RTPServiceIndicator },
+ { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TerminationAttemptArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TerminationAttemptArg_sequence, hf_index, ett_ain_TerminationAttemptArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TermResourceAvailableArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
+ { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TermResourceAvailableArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TermResourceAvailableArg_sequence, hf_index, ett_ain_TermResourceAvailableArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TimeoutArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
+ { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TimeoutArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TimeoutArg_sequence, hf_index, ett_ain_TimeoutArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OutpulseNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 37, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PrimaryTrunkGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 42, TRUE, dissect_ain_OCTET_STRING_SIZE_5);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AlternateTrunkGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 5, TRUE, dissect_ain_OCTET_STRING_SIZE_5);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SecondAlternateTrunkGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 48, TRUE, dissect_ain_OCTET_STRING_SIZE_5);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AlternateCarrier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 4, TRUE, dissect_ain_CarrierFormat);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SecondAlternateCarrier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 47, TRUE, dissect_ain_CarrierFormat);
+
+ return offset;
+}
+
+
+static const value_string ain_PassiveLegTreatment_U_vals[] = {
+ { 0, "dialToneOn" },
+ { 1, "ringBackAudibleRingingToneOn" },
+ { 3, "networkCongestionReorderToneOn" },
+ { 4, "busyToneOn" },
+ { 5, "confirmationTone" },
+ { 7, "callWaitingTone" },
+ { 63, "tonesOff" },
+ { 64, "alertingOnPattern0Normal" },
+ { 65, "alertingOnPattern1DistinctiveIntergroup" },
+ { 66, "alertingOnPattern2DistinctiveSpecial" },
+ { 67, "alertingOnPattern3EKTS" },
+ { 68, "alertingOnPattern4ReminderRing" },
+ { 79, "alertingOff" },
+ { 17, "recallDialToneOn" },
+ { 18, "bargeInToneOn" },
+ { 251, "incomingAdditionalCallTone" },
+ { 252, "priorityAdditionalCallTone" },
+ { 253, "expensiveRouteWarningTone" },
+ { 19, "campOnTone" },
+ { 20, "receiverOffHookTone" },
+ { 21, "callingCardServiceTone" },
+ { 22, "stutterDialTone" },
+ { 23, "silence" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_PassiveLegTreatment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PassiveLegTreatment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 39, TRUE, dissect_ain_PassiveLegTreatment_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PrimaryBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 40, TRUE, dissect_ain_BillingIndicator);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AlternateBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 3, TRUE, dissect_ain_BillingIndicator);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SecondAlternateBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 46, TRUE, dissect_ain_BillingIndicator);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OverflowBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 38, TRUE, dissect_ain_BillingIndicator);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMAAlternateBillingNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 6, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMABusinessCustomerID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 7, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMALineNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 9, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_2_OF_AMALineNumber_sequence_of[1] = {
+ { &hf_ain_aMALineNumberList_item, BER_CLASS_CON, 9, BER_FLAGS_NOOWNTAG, dissect_ain_AMALineNumber },
+};
+
+static int
+dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_2_OF_AMALineNumber_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMAslpID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ain_amaslpid);
+
+ proto_tree_add_item(subtree, hf_ain_amaslpid, parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb, 0), ENC_BCD_DIGITS_0_9);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMADigitsDialedWC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 8, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC_sequence_of[1] = {
+ { &hf_ain_aMADigitsDialedWCList_item, BER_CLASS_CON, 8, BER_FLAGS_NOOWNTAG, dissect_ain_AMADigitsDialedWC },
+};
+
+static int
+dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_MsrID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 106, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const value_string ain_ServiceProviderID_vals[] = {
+ { 87, "ocn" },
+ { 106, "msrID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ServiceProviderID_choice[] = {
+ { 87, &hf_ain_ocn , BER_CLASS_CON, 87, BER_FLAGS_NOOWNTAG, dissect_ain_Ocn },
+ { 106, &hf_ain_msrID , BER_CLASS_CON, 106, BER_FLAGS_NOOWNTAG, dissect_ain_MsrID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ServiceProviderID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ ServiceProviderID_choice, hf_index, ett_ain_ServiceProviderID,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_0_32767(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ServiceContext(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 83, TRUE, dissect_ain_INTEGER_0_32767);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMABillingFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 88, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const value_string ain_CarrierUsage_U_vals[] = {
+ { 0, "alwaysOverride" },
+ { 1, "onlyInterLATAOverride" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_CarrierUsage_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CarrierUsage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 79, TRUE, dissect_ain_CarrierUsage_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ForwardCallIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 113, TRUE, dissect_ain_OCTET_STRING_SIZE_2);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMAServiceProviderID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 101, TRUE, dissect_ain_OCTET_STRING_SIZE_7);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_2_11(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GenericDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 149, TRUE, dissect_ain_OCTET_STRING_SIZE_2_11);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_GenericDigits_sequence_of[1] = {
+ { &hf_ain__untag_item_02 , BER_CLASS_CON, 149, BER_FLAGS_NOOWNTAG, dissect_ain_GenericDigits },
+};
+
+static int
+dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_5_OF_GenericDigits_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GenericDigitsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 150, TRUE, dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits);
+
+ return offset;
+}
+
+
+static int * const ApplyRestrictions_U_bits[] = {
+ &hf_ain_ApplyRestrictions_U_code,
+ &hf_ain_ApplyRestrictions_U_toll,
+ NULL
+};
+
+static int
+dissect_ain_ApplyRestrictions_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ ApplyRestrictions_U_bits, 2, hf_index, ett_ain_ApplyRestrictions_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ApplyRestrictions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 152, TRUE, dissect_ain_ApplyRestrictions_U);
+
+ return offset;
+}
+
+
+static const value_string ain_DisplayInformation_vals[] = {
+ { 0, "blank" },
+ { 1, "skip" },
+ { 2, "continuation" },
+ { 3, "calledAddress" },
+ { 4, "cause" },
+ { 5, "progressIndicator" },
+ { 6, "notificationIndicator" },
+ { 7, "prompt" },
+ { 8, "accumulatedDigits" },
+ { 9, "status" },
+ { 10, "inband" },
+ { 11, "callingAddress" },
+ { 12, "reason" },
+ { 13, "callingPartyName" },
+ { 14, "calledPartyName" },
+ { 15, "originalCalledName" },
+ { 16, "redirectingName" },
+ { 17, "connectedName" },
+ { 18, "origRestrictions" },
+ { 19, "dateTimeOfDay" },
+ { 20, "callAppearanceID" },
+ { 21, "featureAddress" },
+ { 22, "redirectionName" },
+ { 23, "redirectionNumber" },
+ { 24, "redirectingNumber" },
+ { 25, "originalCalledNumber" },
+ { 26, "connectedNumber" },
+ { 30, "text" },
+ { 31, "redirectingReason" },
+ { 0, NULL }
+};
+
+static const ber_choice_t DisplayInformation_choice[] = {
+ { 0, &hf_ain_blank , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 1, &hf_ain_skip , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 2, &hf_ain_continuation , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 3, &hf_ain_calledAddress , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 4, &hf_ain_cause , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 5, &hf_ain_progressIndicator, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 6, &hf_ain_displayInformation_notificationIndicator, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 7, &hf_ain_prompt , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 8, &hf_ain_accumulatedDigits, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 9, &hf_ain_status , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 10, &hf_ain_inband , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 11, &hf_ain_callingAddress , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 12, &hf_ain_reason , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 13, &hf_ain_callingPartyName, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 14, &hf_ain_calledPartyName , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 15, &hf_ain_originalCalledName, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 16, &hf_ain_redirectingName , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 17, &hf_ain_connectedName , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 18, &hf_ain_origRestrictions, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 19, &hf_ain_dateTimeOfDay , BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 20, &hf_ain_callAppearanceID, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 21, &hf_ain_featureAddress , BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 22, &hf_ain_redirectionName , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 23, &hf_ain_redirectionNumber, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 24, &hf_ain_redirectingNumber, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 25, &hf_ain_originalCalledNumber, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 26, &hf_ain_connectedNumber , BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 30, &hf_ain_text , BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 31, &hf_ain_redirectingReason, BER_CLASS_CON, 31, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_DisplayInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ DisplayInformation_choice, hf_index, ett_ain_DisplayInformation,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_15_OF_DisplayInformation_sequence_of[1] = {
+ { &hf_ain__untag_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_DisplayInformation },
+};
+
+static int
+dissect_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_15_OF_DisplayInformation_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DisplayText(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 26, TRUE, dissect_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AnalyzeRouteArg_sequence[] = {
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
+ { &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
+ { &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
+ { &hf_ain_secondAlternateCarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
+ { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
+ { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
+ { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
+ { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
+ { &hf_ain_aMAServiceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { &hf_ain_genericDigitsList, BER_CLASS_CON, 150, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericDigitsList },
+ { &hf_ain_applyRestrictions, BER_CLASS_CON, 152, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ApplyRestrictions },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AnalyzeRouteArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnalyzeRouteArg_sequence, hf_index, ett_ain_AnalyzeRouteArg);
+
+ return offset;
+}
+
+
+static const value_string ain_ControllingLegTreatment_U_vals[] = {
+ { 0, "dialToneOn" },
+ { 1, "ringBackAudibleRingingToneOn" },
+ { 3, "networkCongestionReorderToneOn" },
+ { 4, "busyToneOn" },
+ { 5, "confirmationTone" },
+ { 7, "callWaitingTone" },
+ { 63, "tonesOff" },
+ { 64, "alertingOnPattern0Normal" },
+ { 65, "alertingOnPattern1DistinctiveIntergroup" },
+ { 66, "alertingOnPattern2DistinctiveSpecial" },
+ { 67, "alertingOnPattern3EKTS" },
+ { 68, "alertingOnPattern4ReminderRing" },
+ { 79, "alertingOff" },
+ { 17, "recallDialToneOn" },
+ { 18, "bargeInToneOn" },
+ { 251, "incomingAdditionalCallTone" },
+ { 252, "priorityAdditionalCallTone" },
+ { 253, "expensiveRouteWarningTone" },
+ { 19, "campOnTone" },
+ { 20, "receiverOffHookTone" },
+ { 21, "callingCardServiceTone" },
+ { 22, "stutterDialTone" },
+ { 23, "silence" },
+ { 24, "onHookTR30WithIndication" },
+ { 25, "onHookTR30NoIndication" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ControllingLegTreatment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ControllingLegTreatment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 24, TRUE, dissect_ain_ControllingLegTreatment_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AuthorizeTerminationArg_sequence[] = {
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AuthorizeTerminationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AuthorizeTerminationArg_sequence, hf_index, ett_ain_AuthorizeTerminationArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CancelResourceEventArg_sequence[] = {
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CancelResourceEventArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CancelResourceEventArg_sequence, hf_index, ett_ain_CancelResourceEventArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DPConverter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 76, TRUE, dissect_ain_BOOLEAN);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AlternateDialingPlanInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 115, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CollectInformationArg_sequence[] = {
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
+ { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
+ { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_alternateDialingPlanInd, BER_CLASS_CON, 115, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateDialingPlanInd },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CollectInformationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CollectInformationArg_sequence, hf_index, ett_ain_CollectInformationArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_0_127(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ResourceType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 45, TRUE, dissect_ain_INTEGER_0_127);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AnnounceElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UninterAnnounceBlock_sequence_of[1] = {
+ { &hf_ain_UninterAnnounceBlock_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AnnounceElement },
+};
+
+static int
+dissect_ain_UninterAnnounceBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ UninterAnnounceBlock_sequence_of, hf_index, ett_ain_UninterAnnounceBlock);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InterAnnounceBlock_sequence_of[1] = {
+ { &hf_ain_InterAnnounceBlock_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AnnounceElement },
+};
+
+static int
+dissect_ain_InterAnnounceBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ InterAnnounceBlock_sequence_of, hf_index, ett_ain_InterAnnounceBlock);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AnnouncementBlock_sequence[] = {
+ { &hf_ain_uninterAnnounceBlock, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_UninterAnnounceBlock },
+ { &hf_ain_interAnnounceBlock, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_InterAnnounceBlock },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AnnouncementBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnnouncementBlock_sequence, hf_index, ett_ain_AnnouncementBlock);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_MaximumDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AnnouncementDigitBlock_sequence[] = {
+ { &hf_ain_maximumDigits , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_MaximumDigits },
+ { &hf_ain_uninterAnnounceBlock, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_UninterAnnounceBlock },
+ { &hf_ain_interAnnounceBlock, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_InterAnnounceBlock },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AnnouncementDigitBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnnouncementDigitBlock_sequence, hf_index, ett_ain_AnnouncementDigitBlock);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FlexParameterBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_StrParameterBlock_U_vals[] = {
+ { 0, "announcementBlock" },
+ { 1, "announcementDigitBlock" },
+ { 2, "flexParameterBlock" },
+ { 0, NULL }
+};
+
+static const ber_choice_t StrParameterBlock_U_choice[] = {
+ { 0, &hf_ain_announcementBlock, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_AnnouncementBlock },
+ { 1, &hf_ain_announcementDigitBlock, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_AnnouncementDigitBlock },
+ { 2, &hf_ain_flexParameterBlock, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_FlexParameterBlock },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_StrParameterBlock_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ StrParameterBlock_U_choice, hf_index, ett_ain_StrParameterBlock_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_StrParameterBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 50, TRUE, dissect_ain_StrParameterBlock_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DisconnectFlag(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 25, TRUE, dissect_ain_NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DestinationAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 86, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const value_string ain_AMAMeasure_U_vals[] = {
+ { 0, "connectTimeRecordedDestinationSSP" },
+ { 1, "connectTimeRecordedDestinationSCP" },
+ { 2, "connectTimeNotRecorded" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_AMAMeasure_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMAMeasure(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 71, TRUE, dissect_ain_AMAMeasure_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ConnectToResourceArg_sequence[] = {
+ { &hf_ain_resourceType , BER_CLASS_CON, 45, BER_FLAGS_NOOWNTAG, dissect_ain_ResourceType },
+ { &hf_ain_strParameterBlock, BER_CLASS_CON, 50, BER_FLAGS_NOOWNTAG, dissect_ain_StrParameterBlock },
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_disconnectFlag , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectFlag },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_destinationAddress, BER_CLASS_CON, 86, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DestinationAddress },
+ { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
+ { &hf_ain_aMAMeasure , BER_CLASS_CON, 71, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasure },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ConnectToResourceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ConnectToResourceArg_sequence, hf_index, ett_ain_ConnectToResourceArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ContinueArg_sequence[] = {
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ContinueArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ContinueArg_sequence, hf_index, ett_ain_ContinueArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_99(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NotificationDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 128, TRUE, dissect_ain_INTEGER_1_99);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_999(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_WakeUpDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 131, TRUE, dissect_ain_INTEGER_1_999);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OSIIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 129, TRUE, dissect_ain_BOOLEAN);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CreateCallArg_sequence[] = {
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
+ { &hf_ain_secondAlternateCarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
+ { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
+ { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
+ { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
+ { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_notificationDuration, BER_CLASS_CON, 128, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NotificationDuration },
+ { &hf_ain_wakeUpDuration , BER_CLASS_CON, 131, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_WakeUpDuration },
+ { &hf_ain_oSIIndicator , BER_CLASS_CON, 129, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OSIIndicator },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CreateCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CreateCallArg_sequence, hf_index, ett_ain_CreateCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CreateCallRes_sequence[] = {
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CreateCallRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CreateCallRes_sequence, hf_index, ett_ain_CreateCallRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_RTPReroutingNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 143, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+static const ber_sequence_t DisconnectArg_sequence[] = {
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_rTPReroutingNumber, BER_CLASS_CON, 143, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RTPReroutingNumber },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_DisconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DisconnectArg_sequence, hf_index, ett_ain_DisconnectArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CsID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 137, TRUE, dissect_ain_INTEGER_1_2);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_LampTreatment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 138, TRUE, dissect_ain_OCTET_STRING_SIZE_2_3);
+
+ return offset;
+}
+
+
+static const ber_sequence_t DisconnectLegArg_sequence[] = {
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_csID , BER_CLASS_CON, 137, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CsID },
+ { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
+ { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_DisconnectLegArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DisconnectLegArg_sequence, hf_index, ett_ain_DisconnectLegArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ForwardCallArg_sequence[] = {
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
+ { &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
+ { &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
+ { &hf_ain_secondAlternatecarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
+ { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
+ { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
+ { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { &hf_ain_applyRestrictions, BER_CLASS_CON, 152, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ApplyRestrictions },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ForwardCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardCallArg_sequence, hf_index, ett_ain_ForwardCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MergeCallArg_sequence[] = {
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_MergeCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MergeCallArg_sequence, hf_index, ett_ain_MergeCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MoveLegArg_sequence[] = {
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_MoveLegArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MoveLegArg_sequence, hf_index, ett_ain_MoveLegArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OfferCallArg_sequence[] = {
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OfferCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OfferCallArg_sequence, hf_index, ett_ain_OfferCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OriginateCallArg_sequence[] = {
+ { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
+ { &hf_ain_alternateDialingPlanInd, BER_CLASS_CON, 115, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateDialingPlanInd },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
+ { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
+ { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
+ { &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
+ { &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
+ { &hf_ain_secondAlternatecarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
+ { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
+ { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
+ { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
+ { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
+ { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
+ { &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
+ { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OriginateCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OriginateCallArg_sequence, hf_index, ett_ain_OriginateCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReconnectArg_sequence[] = {
+ { &hf_ain_notificationDuration, BER_CLASS_CON, 128, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NotificationDuration },
+ { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ReconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReconnectArg_sequence, hf_index, ett_ain_ReconnectArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_sendToResource_sequence[] = {
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_sendToResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_sendToResource_sequence, hf_index, ett_ain_RES_sendToResource);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AnswerIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 12, TRUE, dissect_ain_NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ExtendedRinging(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 146, TRUE, dissect_ain_NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_0_300(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TSTRCTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 156, TRUE, dissect_ain_INTEGER_0_300);
+
+ return offset;
+}
+
+
+static const value_string ain_PartyID_U_vals[] = {
+ { 0, "callingParty" },
+ { 1, "calledParty" },
+ { 2, "bothParties" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_PartyID_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 159, TRUE, dissect_ain_PartyID_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PartyOnHold(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 146, TRUE, dissect_ain_NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SendToResourceArg_sequence[] = {
+ { &hf_ain_resourceType , BER_CLASS_CON, 45, BER_FLAGS_NOOWNTAG, dissect_ain_ResourceType },
+ { &hf_ain_strParameterBlock, BER_CLASS_CON, 50, BER_FLAGS_NOOWNTAG, dissect_ain_StrParameterBlock },
+ { &hf_ain_disconnectFlag , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectFlag },
+ { &hf_ain_answerIndicator , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AnswerIndicator },
+ { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_destinationAddress, BER_CLASS_CON, 86, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DestinationAddress },
+ { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
+ { &hf_ain_aMAMeasure , BER_CLASS_CON, 71, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasure },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { &hf_ain_extendedRinging , BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ExtendedRinging },
+ { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
+ { &hf_ain_secondAlternatecarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
+ { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
+ { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { &hf_ain_tSTRCTimer , BER_CLASS_CON, 156, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TSTRCTimer },
+ { &hf_ain_partyID , BER_CLASS_CON, 159, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PartyID },
+ { &hf_ain_partyOnHold , BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PartyOnHold },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SendToResourceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendToResourceArg_sequence, hf_index, ett_ain_SendToResourceArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_300(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SSPResponseMessageTimerT1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 166, TRUE, dissect_ain_INTEGER_1_300);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SetTimerArg_sequence[] = {
+ { &hf_ain_sSPResponseMessageTimerT1, BER_CLASS_CON, 166, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SSPResponseMessageTimerT1 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SetTimerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SetTimerArg_sequence, hf_index, ett_ain_SetTimerArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SplitLegArg_sequence[] = {
+ { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SplitLegArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SplitLegArg_sequence, hf_index, ett_ain_SplitLegArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ControlCauseIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 59, TRUE, dissect_ain_OCTET_STRING_SIZE_1);
+
+ return offset;
+}
+
+
+static const value_string ain_GapDuration_U_vals[] = {
+ { 1, "no1Second" },
+ { 2, "no2Seconds" },
+ { 3, "no4Seconds" },
+ { 4, "no8Seconds" },
+ { 5, "no16Seconds" },
+ { 6, "no32Seconds" },
+ { 7, "no64Seconds" },
+ { 8, "no128Seconds" },
+ { 9, "no256Seconds" },
+ { 10, "no512Seconds" },
+ { 11, "no1024Seconds" },
+ { 12, "no2048Seconds" },
+ { 13, "infinity" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_GapDuration_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GapDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 62, TRUE, dissect_ain_GapDuration_U);
+
+ return offset;
+}
+
+
+static const value_string ain_NationalGapInterval_U_vals[] = {
+ { 0, "removeGapControl" },
+ { 1, "no0Seconds" },
+ { 2, "no010Seconds" },
+ { 3, "no025Seconds" },
+ { 4, "no050Seconds" },
+ { 5, "no1Second" },
+ { 6, "no2Seconds" },
+ { 7, "no5Seconds" },
+ { 8, "no10Seconds" },
+ { 9, "no15Seconds" },
+ { 10, "no30Seconds" },
+ { 11, "no60Seconds" },
+ { 12, "no120Seconds" },
+ { 13, "no300Seconds" },
+ { 14, "no600Seconds" },
+ { 15, "stopAllCalls" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_NationalGapInterval_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NationalGapInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 63, TRUE, dissect_ain_NationalGapInterval_U);
+
+ return offset;
+}
+
+
+static const value_string ain_PrivateGapInterval_U_vals[] = {
+ { 0, "no0Seconds" },
+ { 1, "no3Seconds" },
+ { 2, "no4Seconds" },
+ { 3, "no6Seconds" },
+ { 4, "no8Seconds" },
+ { 5, "no11Seconds" },
+ { 6, "no16Seconds" },
+ { 7, "no22Seconds" },
+ { 8, "no30Seconds" },
+ { 9, "no42Seconds" },
+ { 10, "no58Seconds" },
+ { 11, "no81Seconds" },
+ { 12, "no112Seconds" },
+ { 13, "no156Seconds" },
+ { 14, "no217Seconds" },
+ { 15, "no300Seconds" },
+ { 16, "removeGapControl" },
+ { 17, "no010Seconds" },
+ { 18, "no025Seconds" },
+ { 19, "no050Seconds" },
+ { 20, "no1Second" },
+ { 21, "no2Seconds" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_PrivateGapInterval_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PrivateGapInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 64, TRUE, dissect_ain_PrivateGapInterval_U);
+
+ return offset;
+}
+
+
+static const value_string ain_GapInterval_vals[] = {
+ { 63, "nationalGapInterval" },
+ { 64, "privateGapInterval" },
+ { 0, NULL }
+};
+
+static const ber_choice_t GapInterval_choice[] = {
+ { 63, &hf_ain_nationalGapInterval, BER_CLASS_CON, 63, BER_FLAGS_NOOWNTAG, dissect_ain_NationalGapInterval },
+ { 64, &hf_ain_privateGapInterval, BER_CLASS_CON, 64, BER_FLAGS_NOOWNTAG, dissect_ain_PrivateGapInterval },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_GapInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ GapInterval_choice, hf_index, ett_ain_GapInterval,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TranslationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 70, TRUE, dissect_ain_INTEGER_0_255);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_GlobalTitleAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 69, TRUE, dissect_ain_OCTET_STRING);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AcgArg_sequence[] = {
+ { &hf_ain_controlCauseIndicator, BER_CLASS_CON, 59, BER_FLAGS_NOOWNTAG, dissect_ain_ControlCauseIndicator },
+ { &hf_ain_gapDuration , BER_CLASS_CON, 62, BER_FLAGS_NOOWNTAG, dissect_ain_GapDuration },
+ { &hf_ain_gapInterval , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_GapInterval },
+ { &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
+ { &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AcgArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AcgArg_sequence, hf_index, ett_ain_AcgArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_acgGlobalCtrlRestore_sequence[] = {
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_acgGlobalCtrlRestore(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_acgGlobalCtrlRestore_sequence, hf_index, ett_ain_RES_acgGlobalCtrlRestore);
+
+ return offset;
+}
+
+
+static const value_string ain_ACGGlobalOverride_U_vals[] = {
+ { 0, "allItems" },
+ { 1, "scpOverloadItems" },
+ { 2, "smsInitCntrlExceptZeroGap" },
+ { 3, "smsInitCntrl" },
+ { 4, "ntmOSInitCntrlExceptZeroGap" },
+ { 5, "ntmOSInitCntrl" },
+ { 6, "craftInitCntrlExceptZeroGap" },
+ { 7, "craftInitCntrl" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ACGGlobalOverride_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ACGGlobalOverride(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 110, TRUE, dissect_ain_ACGGlobalOverride_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AcgGlobalCtrlRestoreArg_sequence[] = {
+ { &hf_ain_aCGGlobalOverride, BER_CLASS_CON, 110, BER_FLAGS_NOOWNTAG, dissect_ain_ACGGlobalOverride },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AcgGlobalCtrlRestoreArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AcgGlobalCtrlRestoreArg_sequence, hf_index, ett_ain_AcgGlobalCtrlRestoreArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AcgOverflowArg_sequence[] = {
+ { &hf_ain_controlCauseIndicator, BER_CLASS_CON, 59, BER_FLAGS_NOOWNTAG, dissect_ain_ControlCauseIndicator },
+ { &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
+ { &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AcgOverflowArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AcgOverflowArg_sequence, hf_index, ett_ain_AcgOverflowArg);
+
+ return offset;
+}
+
+
+static const value_string ain_ActResult_U_vals[] = {
+ { 0, "transactionClosed" },
+ { 1, "transactionOpen" },
+ { 2, "deniedProcessOverload" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ActResult_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ActResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 164, TRUE, dissect_ain_ActResult_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_activityTest_sequence[] = {
+ { &hf_ain_actResult , BER_CLASS_CON, 164, BER_FLAGS_NOOWNTAG, dissect_ain_ActResult },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_activityTest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_activityTest_sequence, hf_index, ett_ain_RES_activityTest);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TransID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 163, TRUE, dissect_ain_OCTET_STRING_SIZE_4);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ActivityTestArg_sequence[] = {
+ { &hf_ain_transID , BER_CLASS_CON, 163, BER_FLAGS_NOOWNTAG, dissect_ain_TransID },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ActivityTestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ActivityTestArg_sequence, hf_index, ett_ain_ActivityTestArg);
+
+ return offset;
+}
+
+
+static const value_string ain_CallType_U_vals[] = {
+ { 0, "noIndication" },
+ { 1, "local" },
+ { 2, "intraLATAToll" },
+ { 3, "interLATAToll" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_CallType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CallType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 165, TRUE, dissect_ain_CallType_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_callTypeRequest_sequence[] = {
+ { &hf_ain_callType , BER_CLASS_CON, 165, BER_FLAGS_NOOWNTAG, dissect_ain_CallType },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_callTypeRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_callTypeRequest_sequence, hf_index, ett_ain_RES_callTypeRequest);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CallTypeRequestArg_sequence[] = {
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_CallTypeRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallTypeRequestArg_sequence, hf_index, ett_ain_CallTypeRequestArg);
+
+ return offset;
+}
+
+
+static const value_string ain_CongestionLevel_U_vals[] = {
+ { 0, "noCongestion" },
+ { 1, "mc1" },
+ { 2, "mc2" },
+ { 3, "mc3" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_CongestionLevel_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CongestionLevel(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 117, TRUE, dissect_ain_CongestionLevel_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SignalingPointCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 142, TRUE, dissect_ain_OCTET_STRING_SIZE_3);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SubsystemNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 130, TRUE, dissect_ain_INTEGER_0_255);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ControlRequestArg_sequence[] = {
+ { &hf_ain_congestionLevel , BER_CLASS_CON, 117, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CongestionLevel },
+ { &hf_ain_gapInterval , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_GapInterval },
+ { &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
+ { &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
+ { &hf_ain_ssignalingPointCode, BER_CLASS_CON, 142, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SignalingPointCode },
+ { &hf_ain_subsystemNumber , BER_CLASS_CON, 130, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SubsystemNumber },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ControlRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ControlRequestArg_sequence, hf_index, ett_ain_ControlRequestArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_echoRequest_sequence[] = {
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_echoRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_echoRequest_sequence, hf_index, ett_ain_RES_echoRequest);
+
+ return offset;
+}
+
+
+static const value_string ain_ApplicationIndicator_U_vals[] = {
+ { 0, "routeToApplicationProcessOrSLP" },
+ { 1, "processEchoRequestMessage" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ApplicationIndicator_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ApplicationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 90, TRUE, dissect_ain_ApplicationIndicator_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EchoRequestArg_sequence[] = {
+ { &hf_ain_applicationIndicator, BER_CLASS_CON, 90, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ApplicationIndicator },
+ { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_EchoRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EchoRequestArg_sequence, hf_index, ett_ain_EchoRequestArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_2_128(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMABAFModules(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 95, TRUE, dissect_ain_OCTET_STRING_SIZE_2_128);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMASetHexABIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 82, TRUE, dissect_ain_BOOLEAN);
+
+ return offset;
+}
+
+
+static const ber_sequence_t FurnishAMAInformationArg_sequence[] = {
+ { &hf_ain_aaMABAFModules , BER_CLASS_CON, 95, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABAFModules },
+ { &hf_ain_aMASetHexABIndicator, BER_CLASS_CON, 82, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASetHexABIndicator },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_FurnishAMAInformationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ FurnishAMAInformationArg_sequence, hf_index, ett_ain_FurnishAMAInformationArg);
+
+ return offset;
+}
+
+
+static const value_string ain_FacilityStatus_U_vals[] = {
+ { 0, "busy" },
+ { 1, "busyInService" },
+ { 2, "busyOutOfService" },
+ { 3, "idle" },
+ { 4, "idleInService" },
+ { 5, "idleOutOfService" },
+ { 6, "inService" },
+ { 7, "outOfService" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_FacilityStatus_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FacilityStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 61, TRUE, dissect_ain_FacilityStatus_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_MonitorTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 65, TRUE, dissect_ain_OCTET_STRING_SIZE_3);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_2047(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Mlhg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 29, TRUE, dissect_ain_INTEGER_1_2047);
+
+ return offset;
+}
+
+
+static const value_string ain_FacilityGID_vals[] = {
+ { 29, "mlhg" },
+ { 0, NULL }
+};
+
+static const ber_choice_t FacilityGID_choice[] = {
+ { 29, &hf_ain_mlhg , BER_CLASS_CON, 29, BER_FLAGS_NOOWNTAG, dissect_ain_Mlhg },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_FacilityGID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ FacilityGID_choice, hf_index, ett_ain_FacilityGID,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FacilityMemberID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 31, TRUE, dissect_ain_INTEGER_1_2047);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ControlEncountered(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 127, TRUE, dissect_ain_OCTET_STRING_SIZE_1);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MonitorForChangeArg_sequence[] = {
+ { &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
+ { &hf_ain_monitorTime , BER_CLASS_CON, 65, BER_FLAGS_NOOWNTAG, dissect_ain_MonitorTime },
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_facilityGID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_FacilityGID },
+ { &hf_ain_facilityMemberID, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FacilityMemberID },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_MonitorForChangeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MonitorForChangeArg_sequence, hf_index, ett_ain_MonitorForChangeArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MonitorSuccessArg_sequence[] = {
+ { &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_MonitorSuccessArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MonitorSuccessArg_sequence, hf_index, ett_ain_MonitorSuccessArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SrhrGroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 77, TRUE, dissect_ain_INTEGER_0_32767);
+
+ return offset;
+}
+
+
+static const value_string ain_T_id_vals[] = {
+ { 15, "calledPartyID" },
+ { 77, "srhrGroupID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t T_id_choice[] = {
+ { 15, &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { 77, &hf_ain_srhrGroupID , BER_CLASS_CON, 77, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroupID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_T_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ T_id_choice, hf_index, ett_ain_T_id,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EnvelopeEncodingAuthority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 98, TRUE, dissect_ain_OBJECT_IDENTIFIER);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_180(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EnvelopContent(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 75, TRUE, dissect_ain_OCTET_STRING_SIZE_1_180);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_3_75(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SecurityEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 85, TRUE, dissect_ain_OCTET_STRING_SIZE_3_75);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NCADataArg_sequence[] = {
+ { &hf_ain_id , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_T_id },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
+ { &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
+ { &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_NCADataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NCADataArg_sequence, hf_index, ett_ain_NCADataArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_nCARequest_sequence[] = {
+ { &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
+ { &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
+ { &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_nCARequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_nCARequest_sequence, hf_index, ett_ain_RES_nCARequest);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NCARequestArg_sequence[] = {
+ { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
+ { &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
+ { &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_NCARequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NCARequestArg_sequence, hf_index, ett_ain_NCARequestArg);
+
+ return offset;
+}
+
+
+static const value_string ain_ActivationStateCode_vals[] = {
+ { 0, "off" },
+ { 1, "on" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ActivationStateCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_PrivateDn_vals[] = {
+ { 0, "private" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_PrivateDn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Entry2_vals[] = {
+ { 1, "dn" },
+ { 2, "privateDn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Entry2_choice[] = {
+ { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { 2, &hf_ain_privateDn , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_PrivateDn },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Entry2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Entry2_choice, hf_index, ett_ain_Entry2,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EntireList_sequence_of[1] = {
+ { &hf_ain_EntireList_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Entry2 },
+};
+
+static int
+dissect_ain_EntireList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ EntireList_sequence_of, hf_index, ett_ain_EntireList);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_Timestamp(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Incoming_sequence[] = {
+ { &hf_ain_aINDigits , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AINDigits },
+ { &hf_ain_timestamp , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_Timestamp },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Incoming(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Incoming_sequence, hf_index, ett_ain_Incoming);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Outgoing_sequence[] = {
+ { &hf_ain_aINDigits , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AINDigits },
+ { &hf_ain_timestamp , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_Timestamp },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Outgoing(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Outgoing_sequence, hf_index, ett_ain_Outgoing);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MemorySlot_sequence[] = {
+ { &hf_ain_incoming , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_Incoming },
+ { &hf_ain_outgoing , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_Outgoing },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_MemorySlot(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MemorySlot_sequence, hf_index, ett_ain_MemorySlot);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ListSize(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ForwardToDn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ain_Dn(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DelayInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Empty_bits[] = {
+ &hf_ain_Empty_entireList,
+ &hf_ain_Empty_outgoingmemorySlot,
+ &hf_ain_Empty_incomingmemorySlot,
+ &hf_ain_Empty_forwardToDn,
+ NULL
+};
+
+static int
+dissect_ain_Empty(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Empty_bits, 4, hf_index, ett_ain_Empty,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InfoProvided_U_sequence[] = {
+ { &hf_ain_activationStateCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { &hf_ain_entireList , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_EntireList },
+ { &hf_ain_memorySlot_01 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_MemorySlot },
+ { &hf_ain_listSize , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ListSize },
+ { &hf_ain_forwardToDn , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ForwardToDn },
+ { &hf_ain_delayInterval , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_DelayInterval },
+ { &hf_ain_empty , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_Empty },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_InfoProvided_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InfoProvided_U_sequence, hf_index, ett_ain_InfoProvided_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_InfoProvided(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 100, TRUE, dissect_ain_InfoProvided_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_queryRequest_sequence[] = {
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_infoProvided , BER_CLASS_CON, 100, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_InfoProvided },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_queryRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_queryRequest_sequence, hf_index, ett_ain_RES_queryRequest);
+
+ return offset;
+}
+
+
+static const value_string ain_Service1_vals[] = {
+ { 0, "messageWaitingIndicator" },
+ { 1, "visualMessageWaitingIndicator" },
+ { 2, "anonymousCallRejection" },
+ { 3, "automaticCallback" },
+ { 4, "automaticRecall" },
+ { 5, "callScreening" },
+ { 6, "outsideCallingAreaAlerting" },
+ { 7, "callingIdPresentAndSuppress" },
+ { 8, "callWaiting" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Request1_bits[] = {
+ &hf_ain_Request1_activationStatus,
+ NULL
+};
+
+static int
+dissect_ain_Request1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Request1_bits, 1, hf_index, ett_ain_Request1,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestGroup1_sequence[] = {
+ { &hf_ain_service1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service1 },
+ { &hf_ain_request1 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request1 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroup1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestGroup1_sequence, hf_index, ett_ain_RequestGroup1);
+
+ return offset;
+}
+
+
+static const value_string ain_Service2_vals[] = {
+ { 0, "audioMessageWaitingIndicator" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Request2_bits[] = {
+ &hf_ain_Request2_activationStatus,
+ &hf_ain_Request2_delayInterval,
+ NULL
+};
+
+static int
+dissect_ain_Request2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Request2_bits, 2, hf_index, ett_ain_Request2,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestGroup2_sequence[] = {
+ { &hf_ain_service2 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service2 },
+ { &hf_ain_request2 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request2 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroup2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestGroup2_sequence, hf_index, ett_ain_RequestGroup2);
+
+ return offset;
+}
+
+
+static const value_string ain_Service3_vals[] = {
+ { 0, "distinctiveRingingCallWaiting" },
+ { 1, "selectiveCallRejection" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Request3_bits[] = {
+ &hf_ain_Request3_activationStatus,
+ &hf_ain_Request3_entireList,
+ &hf_ain_Request3_listSize,
+ NULL
+};
+
+static int
+dissect_ain_Request3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Request3_bits, 3, hf_index, ett_ain_Request3,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestGroup3_sequence[] = {
+ { &hf_ain_service3 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service3 },
+ { &hf_ain_request3 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request3 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroup3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestGroup3_sequence, hf_index, ett_ain_RequestGroup3);
+
+ return offset;
+}
+
+
+static const value_string ain_Service4_vals[] = {
+ { 0, "callForwardingVariable" },
+ { 1, "callForwardingDontAnswer" },
+ { 2, "callForwardingBusyLine" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Request4_bits[] = {
+ &hf_ain_Request4_activationStatus,
+ &hf_ain_Request4_forwardingDn,
+ NULL
+};
+
+static int
+dissect_ain_Request4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Request4_bits, 2, hf_index, ett_ain_Request4,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestGroup4_sequence[] = {
+ { &hf_ain_service4 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service4 },
+ { &hf_ain_request4 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request4 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroup4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestGroup4_sequence, hf_index, ett_ain_RequestGroup4);
+
+ return offset;
+}
+
+
+static const value_string ain_Service5_vals[] = {
+ { 0, "selectiveCallAcceptance" },
+ { 1, "selectiveCallForwarding" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Request5_bits[] = {
+ &hf_ain_Request5_activationStatus,
+ &hf_ain_Request5_forwardingDn,
+ &hf_ain_Request5_entireList,
+ &hf_ain_Request5_listSize,
+ NULL
+};
+
+static int
+dissect_ain_Request5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Request5_bits, 4, hf_index, ett_ain_Request5,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestGroup5_sequence[] = {
+ { &hf_ain_service5 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service5 },
+ { &hf_ain_request5 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request5 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroup5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestGroup5_sequence, hf_index, ett_ain_RequestGroup5);
+
+ return offset;
+}
+
+
+static const value_string ain_Service6_vals[] = {
+ { 0, "ringControl" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const Request6_bits[] = {
+ &hf_ain_Request6_delayInterval,
+ NULL
+};
+
+static int
+dissect_ain_Request6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ Request6_bits, 1, hf_index, ett_ain_Request6,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestGroup6_sequence[] = {
+ { &hf_ain_service6 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service6 },
+ { &hf_ain_request6 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request6 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroup6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestGroup6_sequence, hf_index, ett_ain_RequestGroup6);
+
+ return offset;
+}
+
+
+static const value_string ain_RequestGroups_vals[] = {
+ { 1, "requestGroup1" },
+ { 2, "requestGroup2" },
+ { 3, "requestGroup3" },
+ { 4, "requestGroup4" },
+ { 5, "requestGroup5" },
+ { 6, "requestGroup6" },
+ { 0, NULL }
+};
+
+static const ber_choice_t RequestGroups_choice[] = {
+ { 1, &hf_ain_requestGroup1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup1 },
+ { 2, &hf_ain_requestGroup2 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup2 },
+ { 3, &hf_ain_requestGroup3 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup3 },
+ { 4, &hf_ain_requestGroup4 , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup4 },
+ { 5, &hf_ain_requestGroup5 , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup5 },
+ { 6, &hf_ain_requestGroup6 , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup6 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestGroups(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ RequestGroups_choice, hf_index, ett_ain_RequestGroups,
+ NULL);
+
+ return offset;
+}
+
+
+static int * const RequestMemorySlot_bits[] = {
+ &hf_ain_RequestMemorySlot_incoming,
+ &hf_ain_RequestMemorySlot_outgoing,
+ NULL
+};
+
+static int
+dissect_ain_RequestMemorySlot(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ RequestMemorySlot_bits, 2, hf_index, ett_ain_RequestMemorySlot,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ProvideInfo_U_sequence[] = {
+ { &hf_ain_requestGroups , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_RequestGroups },
+ { &hf_ain_requestMemorySlot, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_RequestMemorySlot },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ProvideInfo_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideInfo_U_sequence, hf_index, ett_ain_ProvideInfo_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ProvideInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 114, TRUE, dissect_ain_ProvideInfo_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t QueryRequestArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { &hf_ain_provideInfo , BER_CLASS_CON, 114, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ProvideInfo },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_QueryRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ QueryRequestArg_sequence, hf_index, ett_ain_QueryRequestArg);
+
+ return offset;
+}
+
+
+static int * const EDPRequest_U_bits[] = {
+ &hf_ain_EDPRequest_U_oCalledPartyBusy,
+ &hf_ain_EDPRequest_U_oNoAnswer,
+ &hf_ain_EDPRequest_U_oTermSeized,
+ &hf_ain_EDPRequest_U_oAnswer,
+ &hf_ain_EDPRequest_U_tBusy,
+ &hf_ain_EDPRequest_U_tNoAnswer,
+ &hf_ain_EDPRequest_U_termResourceAvailable,
+ &hf_ain_EDPRequest_U_tAnswer,
+ &hf_ain_EDPRequest_U_networkBusy,
+ &hf_ain_EDPRequest_U_oSuspended,
+ &hf_ain_EDPRequest_U_oDisconnectCalled,
+ &hf_ain_EDPRequest_U_oDisconnect,
+ &hf_ain_EDPRequest_U_oAbandon,
+ &hf_ain_EDPRequest_U_featureActivator,
+ &hf_ain_EDPRequest_U_switchHookFlash,
+ &hf_ain_EDPRequest_U_success,
+ &hf_ain_EDPRequest_U_tDisconnect,
+ &hf_ain_EDPRequest_U_timeout,
+ &hf_ain_EDPRequest_U_originationAttempt,
+ &hf_ain_EDPRequest_U_oDTMFEntered,
+ &hf_ain_EDPRequest_U_tDTMFEntered,
+ NULL
+};
+
+static int
+dissect_ain_EDPRequest_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ EDPRequest_U_bits, 21, hf_index, ett_ain_EDPRequest_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EDPRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 92, TRUE, dissect_ain_EDPRequest_U);
+
+ return offset;
+}
+
+
+static int * const EDPNotification_U_bits[] = {
+ &hf_ain_EDPNotification_U_oCalledPartyBusy,
+ &hf_ain_EDPNotification_U_oNoAnswer,
+ &hf_ain_EDPNotification_U_oTermSeized,
+ &hf_ain_EDPNotification_U_oAnswer,
+ &hf_ain_EDPNotification_U_tBusy,
+ &hf_ain_EDPNotification_U_tNoAnswer,
+ &hf_ain_EDPNotification_U_termResourceAvailable,
+ &hf_ain_EDPNotification_U_tAnswer,
+ &hf_ain_EDPNotification_U_networkBusy,
+ &hf_ain_EDPNotification_U_oSuspended,
+ &hf_ain_EDPNotification_U_oDisconnectCalled,
+ &hf_ain_EDPNotification_U_oDisconnect,
+ &hf_ain_EDPNotification_U_oAbandon,
+ &hf_ain_EDPNotification_U_featureActivator,
+ &hf_ain_EDPNotification_U_switchHookFlash,
+ &hf_ain_EDPNotification_U_success,
+ &hf_ain_EDPNotification_U_tDisconnect,
+ &hf_ain_EDPNotification_U_timeout,
+ &hf_ain_EDPNotification_U_originationAttempt,
+ &hf_ain_EDPNotification_U_oDTMFEntered,
+ &hf_ain_EDPNotification_U_tDTMFEntered,
+ NULL
+};
+
+static int
+dissect_ain_EDPNotification_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ EDPNotification_U_bits, 21, hf_index, ett_ain_EDPNotification_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EDPNotification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 93, TRUE, dissect_ain_EDPNotification_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_120(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ONoAnswerTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 91, TRUE, dissect_ain_INTEGER_1_120);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TNoAnswerTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 99, TRUE, dissect_ain_INTEGER_1_120);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_IntervalTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_LocalSSPTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AbsoluteSCPTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_TimeoutTimer_U_vals[] = {
+ { 0, "intervalTime" },
+ { 1, "localSSPTime" },
+ { 2, "absoluteSCPTime" },
+ { 0, NULL }
+};
+
+static const ber_choice_t TimeoutTimer_U_choice[] = {
+ { 0, &hf_ain_intervalTime , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_IntervalTime },
+ { 1, &hf_ain_localSSPTime , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_LocalSSPTime },
+ { 2, &hf_ain_absoluteSCPTime , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_AbsoluteSCPTime },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TimeoutTimer_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ TimeoutTimer_U_choice, hf_index, ett_ain_TimeoutTimer_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TimeoutTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 139, TRUE, dissect_ain_TimeoutTimer_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ODTMFDigitsString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 154, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER_1_4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ODTMFNumberOfDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 155, TRUE, dissect_ain_INTEGER_1_4);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TDTMFDigitString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 157, TRUE, dissect_ain_AINDigits);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TDTMFNumberOfDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 158, TRUE, dissect_ain_INTEGER_1_4);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RequestReportBCMEventArg_sequence[] = {
+ { &hf_ain_eDPRequest , BER_CLASS_CON, 92, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_EDPRequest },
+ { &hf_ain_eDPNotification , BER_CLASS_CON, 93, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_EDPNotification },
+ { &hf_ain_oNoAnswerTimer , BER_CLASS_CON, 91, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ONoAnswerTimer },
+ { &hf_ain_tNoAnswerTimer , BER_CLASS_CON, 99, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TNoAnswerTimer },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_timeoutTimer , BER_CLASS_CON, 139, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TimeoutTimer },
+ { &hf_ain_oDTMFDigitsString, BER_CLASS_CON, 154, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFDigitsString },
+ { &hf_ain_oDTMFNumberOfDigits, BER_CLASS_CON, 155, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFNumberOfDigits },
+ { &hf_ain_tDTMFDigitString, BER_CLASS_CON, 157, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFDigitString },
+ { &hf_ain_tDTMFNumberOfDigits, BER_CLASS_CON, 158, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFNumberOfDigits },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RequestReportBCMEventArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestReportBCMEventArg_sequence, hf_index, ett_ain_RequestReportBCMEventArg);
+
+ return offset;
+}
+
+
+static const value_string ain_StatusCause_U_vals[] = {
+ { 0, "statusMatch" },
+ { 1, "timeOut" },
+ { 2, "error" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_StatusCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_StatusCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 66, TRUE, dissect_ain_StatusCause_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t StatusReportedArg_sequence[] = {
+ { &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
+ { &hf_ain_statusCause , BER_CLASS_CON, 66, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_StatusCause },
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_StatusReportedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ StatusReportedArg_sequence, hf_index, ett_ain_StatusReportedArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EchoData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 60, TRUE, dissect_ain_OCTET_STRING_SIZE_6);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TerminationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 67, TRUE, dissect_ain_OCTET_STRING_SIZE_1);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ConnectTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 58, TRUE, dissect_ain_OCTET_STRING_SIZE_5);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TerminationNotificationArg_sequence[] = {
+ { &hf_ain_echoData , BER_CLASS_CON, 60, BER_FLAGS_NOOWNTAG, dissect_ain_EchoData },
+ { &hf_ain_terminationIndicator, BER_CLASS_CON, 67, BER_FLAGS_NOOWNTAG, dissect_ain_TerminationIndicator },
+ { &hf_ain_connectTime , BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ConnectTime },
+ { &hf_ain_busyCause , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BusyCause },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TerminationNotificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TerminationNotificationArg_sequence, hf_index, ett_ain_TerminationNotificationArg);
+
+ return offset;
+}
+
+
+static const value_string ain_ResultCause_U_vals[] = {
+ { 0, "confServiceActivated" },
+ { 1, "confServiceDeactivatedorCancelled" },
+ { 2, "confAnonymousEntryAdded" },
+ { 3, "confPublicEntryAdded" },
+ { 4, "confAnonymousEntryRemoved" },
+ { 5, "confPublicEntryRemoved" },
+ { 6, "confAllAnonymousEntriesRemoved" },
+ { 7, "confAllEntriesRemoved" },
+ { 8, "confForwardingDnSet" },
+ { 9, "confForwardingDnCleared" },
+ { 10, "confDelayIntervalUpdated" },
+ { 11, "confInterdigitTimerOn" },
+ { 12, "confInterdigitTimerOff" },
+ { 13, "confDPConverterOn" },
+ { 14, "confDPConverterOff" },
+ { 15, "deniedServiceAlreadyActive" },
+ { 16, "deniedServiceNotActivated" },
+ { 17, "deniedInvalidForwardingDn" },
+ { 18, "deniedPermanentPresentationPrivate" },
+ { 19, "deniedPermanentPresentationPublic" },
+ { 20, "deniedListIsEmpty" },
+ { 21, "deniedListIsFull" },
+ { 22, "deniedAnonymousDnAlreadyOnList" },
+ { 23, "deniedPublicDnAlreadyOnList" },
+ { 24, "deniedNoMatch" },
+ { 25, "deniedDnNotOnList" },
+ { 26, "deniedIncomingMemorySlotEmpty" },
+ { 27, "deniedUnsuccessfulUpdate" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ResultCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ResultCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 151, TRUE, dissect_ain_ResultCause_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_update_sequence[] = {
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_resultCause , BER_CLASS_CON, 151, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ResultCause },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_update(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_update_sequence, hf_index, ett_ain_RES_update);
+
+ return offset;
+}
+
+
+static const value_string ain_Ct_vals[] = {
+ { 0, "voicebandInformation" },
+ { 1, "circuitModeData" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Ct(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t DnCtID_sequence[] = {
+ { &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { &hf_ain_ct , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Ct },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_DnCtID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DnCtID_sequence, hf_index, ett_ain_DnCtID);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_LocalSSPID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PublicDialingPlanID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PRIOfficeEquipmentID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BasicBusinessGroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_BasicBusinessGroupDialingPlanID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AFRPatternID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OfficeEquipmentID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_SSPUserResourceID_vals[] = {
+ { 1, "dn" },
+ { 2, "dnCtID" },
+ { 3, "spid" },
+ { 4, "trunkGroupID" },
+ { 5, "localSSPID" },
+ { 6, "publicDialingPlanID" },
+ { 7, "pRIOfficeEquipmentID" },
+ { 8, "basicBusinessGroupID" },
+ { 9, "basicBusinessGroupDialingPlanID" },
+ { 10, "aFRPatternID" },
+ { 11, "officeEquipmentID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SSPUserResourceID_choice[] = {
+ { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { 2, &hf_ain_dnCtID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_DnCtID },
+ { 3, &hf_ain_spid , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_Spid },
+ { 4, &hf_ain_trunkGroupID , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_TrunkGroupID },
+ { 5, &hf_ain_localSSPID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_LocalSSPID },
+ { 6, &hf_ain_publicDialingPlanID, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_PublicDialingPlanID },
+ { 7, &hf_ain_pRIOfficeEquipmentID, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ain_PRIOfficeEquipmentID },
+ { 8, &hf_ain_basicBusinessGroupID, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ain_BasicBusinessGroupID },
+ { 9, &hf_ain_basicBusinessGroupDialingPlanID, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ain_BasicBusinessGroupDialingPlanID },
+ { 10, &hf_ain_aFRPatternID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_AFRPatternID },
+ { 11, &hf_ain_officeEquipmentID, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ain_OfficeEquipmentID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SSPUserResourceID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SSPUserResourceID_choice, hf_index, ett_ain_SSPUserResourceID,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_DPNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TriggerItemSubnumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TriggerItemID_sequence[] = {
+ { &hf_ain_dPNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_DPNumber },
+ { &hf_ain_triggerItemSubnumber, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_TriggerItemSubnumber },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TriggerItemID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TriggerItemID_sequence, hf_index, ett_ain_TriggerItemID);
+
+ return offset;
+}
+
+
+static const value_string ain_PotentialUse_vals[] = {
+ { 0, "notApplicable" },
+ { 1, "callForwarding" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_PotentialUse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PRIDS1ID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_PRIDS0ID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ISDNBChannelID_sequence[] = {
+ { &hf_ain_pRIDS1ID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_PRIDS1ID },
+ { &hf_ain_pRIDS0ID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_PRIDS0ID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ISDNBChannelID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ISDNBChannelID_sequence, hf_index, ett_ain_ISDNBChannelID);
+
+ return offset;
+}
+
+
+static const value_string ain_SSPUserResourceSubID_vals[] = {
+ { 1, "aFRPatternID" },
+ { 2, "basicBusinessGroupDialingPlanID" },
+ { 3, "iSDNBChannelID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SSPUserResourceSubID_choice[] = {
+ { 1, &hf_ain_aFRPatternID , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_AFRPatternID },
+ { 2, &hf_ain_basicBusinessGroupDialingPlanID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_BasicBusinessGroupDialingPlanID },
+ { 3, &hf_ain_iSDNBChannelID , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ISDNBChannelID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SSPUserResourceSubID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SSPUserResourceSubID_choice, hf_index, ett_ain_SSPUserResourceSubID,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TriggerItemAssignment_U_sequence[] = {
+ { &hf_ain_sSPUserResourceID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_SSPUserResourceID },
+ { &hf_ain_triggerItemID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_TriggerItemID },
+ { &hf_ain_activationStateCode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { &hf_ain_potentialUse , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_PotentialUse },
+ { &hf_ain_sSPUserResourceSubID, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_SSPUserResourceSubID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TriggerItemAssignment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TriggerItemAssignment_U_sequence, hf_index, ett_ain_TriggerItemAssignment_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TriggerItemAssignment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 102, TRUE, dissect_ain_TriggerItemAssignment_U);
+
+ return offset;
+}
+
+
+static const value_string ain_Action1_vals[] = {
+ { 2, "activationStateCode" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action1_choice[] = {
+ { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action1_choice, hf_index, ett_ain_Action1,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup1_sequence[] = {
+ { &hf_ain_service1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service1 },
+ { &hf_ain_action1 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action1 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup1_sequence, hf_index, ett_ain_UpdateGroup1);
+
+ return offset;
+}
+
+
+static const value_string ain_Action2_vals[] = {
+ { 2, "activationStateCode" },
+ { 3, "delayInterval" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action2_choice[] = {
+ { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { 3, &hf_ain_delayInterval , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_DelayInterval },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action2_choice, hf_index, ett_ain_Action2,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup2_sequence[] = {
+ { &hf_ain_service2 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service2 },
+ { &hf_ain_action2 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action2 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup2_sequence, hf_index, ett_ain_UpdateGroup2);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SpeedCallingCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_MemorySlot1_vals[] = {
+ { 0, "incoming" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_MemorySlot1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Entry_vals[] = {
+ { 1, "dn" },
+ { 2, "speedCallingCode" },
+ { 3, "memorySlot" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Entry_choice[] = {
+ { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { 2, &hf_ain_speedCallingCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_SpeedCallingCode },
+ { 3, &hf_ain_memorySlot , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_MemorySlot1 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Entry(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Entry_choice, hf_index, ett_ain_Entry,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_EditListType_vals[] = {
+ { 0, "addListElement" },
+ { 1, "deleteListElement" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_EditListType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EditSpecificEntry_sequence[] = {
+ { &hf_ain_entry , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Entry },
+ { &hf_ain_editListType , BER_CLASS_CON, 105, BER_FLAGS_IMPLTAG, dissect_ain_EditListType },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_EditSpecificEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EditSpecificEntry_sequence, hf_index, ett_ain_EditSpecificEntry);
+
+ return offset;
+}
+
+
+static const value_string ain_EditAllEntries_vals[] = {
+ { 0, "deleteAllEntries" },
+ { 1, "deleteAllPrivateEntries" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_EditAllEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Action3_vals[] = {
+ { 2, "activationStateCode" },
+ { 3, "editSpecificEntry" },
+ { 4, "editAllEntries" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action3_choice[] = {
+ { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { 3, &hf_ain_editSpecificEntry, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_EditSpecificEntry },
+ { 4, &hf_ain_editAllEntries , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_EditAllEntries },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action3_choice, hf_index, ett_ain_Action3,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup3_sequence[] = {
+ { &hf_ain_service3 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service3 },
+ { &hf_ain_action3 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action3 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup3_sequence, hf_index, ett_ain_UpdateGroup3);
+
+ return offset;
+}
+
+
+static const value_string ain_Set_vals[] = {
+ { 1, "dn" },
+ { 4, "speedCallingCode" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Set_choice[] = {
+ { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { 4, &hf_ain_speedCallingCode, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_SpeedCallingCode },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Set(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Set_choice, hf_index, ett_ain_Set,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Clear_vals[] = {
+ { 0, "remove" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Clear(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_ForwardingDn_vals[] = {
+ { 0, "set" },
+ { 1, "clear" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ForwardingDn_choice[] = {
+ { 0, &hf_ain_set , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_Set },
+ { 1, &hf_ain_clear , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_Clear },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ForwardingDn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ ForwardingDn_choice, hf_index, ett_ain_ForwardingDn,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Action4_vals[] = {
+ { 0, "activationStateCode" },
+ { 1, "forwardingDn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action4_choice[] = {
+ { 0, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { 1, &hf_ain_forwardingDn , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_ForwardingDn },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action4_choice, hf_index, ett_ain_Action4,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup4_sequence[] = {
+ { &hf_ain_service4 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service4 },
+ { &hf_ain_action4 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action4 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup4_sequence, hf_index, ett_ain_UpdateGroup4);
+
+ return offset;
+}
+
+
+static const value_string ain_Action5_vals[] = {
+ { 2, "activationStateCode" },
+ { 3, "forwardingDn" },
+ { 4, "editSpecificEntry" },
+ { 5, "editAllEntries" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action5_choice[] = {
+ { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { 3, &hf_ain_forwardingDn , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ForwardingDn },
+ { 4, &hf_ain_editSpecificEntry, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_EditSpecificEntry },
+ { 5, &hf_ain_editAllEntries , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_EditAllEntries },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action5_choice, hf_index, ett_ain_Action5,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup5_sequence[] = {
+ { &hf_ain_service5 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service5 },
+ { &hf_ain_action5 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action5 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup5_sequence, hf_index, ett_ain_UpdateGroup5);
+
+ return offset;
+}
+
+
+static const value_string ain_Action6_vals[] = {
+ { 2, "delayInterval" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action6_choice[] = {
+ { 2, &hf_ain_delayInterval , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_DelayInterval },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action6_choice, hf_index, ett_ain_Action6,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup6_sequence[] = {
+ { &hf_ain_service6 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service6 },
+ { &hf_ain_action6 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action6 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup6_sequence, hf_index, ett_ain_UpdateGroup6);
+
+ return offset;
+}
+
+
+static const value_string ain_Service7_vals[] = {
+ { 0, "callingNumberDeliveryBlocking" },
+ { 1, "callingNameDeliveryBlocking" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Toggle_vals[] = {
+ { 0, "presentationStatusValue" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Toggle(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Action7_vals[] = {
+ { 2, "toggle" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action7_choice[] = {
+ { 2, &hf_ain_toggle , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Toggle },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action7_choice, hf_index, ett_ain_Action7,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup7_sequence[] = {
+ { &hf_ain_service7 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service7 },
+ { &hf_ain_action7 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action7 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup7_sequence, hf_index, ett_ain_UpdateGroup7);
+
+ return offset;
+}
+
+
+static const value_string ain_Service8_vals[] = {
+ { 0, "customerOriginatedTrace" },
+ { 1, "cancelCallWaiting" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Invoke8_vals[] = {
+ { 0, "on" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Invoke8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_Action8_vals[] = {
+ { 2, "invoke" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action8_choice[] = {
+ { 2, &hf_ain_action8_invoke , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Invoke8 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action8_choice, hf_index, ett_ain_Action8,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup8_sequence[] = {
+ { &hf_ain_service8 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service8 },
+ { &hf_ain_action8 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action8 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup8_sequence, hf_index, ett_ain_UpdateGroup8);
+
+ return offset;
+}
+
+
+static const value_string ain_Service9_vals[] = {
+ { 0, "speedCalling" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_Service9(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ChangeList_sequence[] = {
+ { &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
+ { &hf_ain_speedCallingCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_SpeedCallingCode },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ChangeList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ChangeList_sequence, hf_index, ett_ain_ChangeList);
+
+ return offset;
+}
+
+
+static const value_string ain_Action9_vals[] = {
+ { 2, "changeList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Action9_choice[] = {
+ { 2, &hf_ain_changeList , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ChangeList },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action9(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Action9_choice, hf_index, ett_ain_Action9,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGroup9_sequence[] = {
+ { &hf_ain_service9 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service9 },
+ { &hf_ain_action9 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action9 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroup9(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGroup9_sequence, hf_index, ett_ain_UpdateGroup9);
+
+ return offset;
+}
+
+
+static const value_string ain_UpdateGroups_vals[] = {
+ { 2, "updateGroup1" },
+ { 3, "updateGroup2" },
+ { 4, "updateGroup3" },
+ { 5, "updateGroup4" },
+ { 6, "updateGroup5" },
+ { 7, "updateGroup6" },
+ { 8, "updateGroup7" },
+ { 9, "updateGroup8" },
+ { 10, "updateGroup9" },
+ { 0, NULL }
+};
+
+static const ber_choice_t UpdateGroups_choice[] = {
+ { 2, &hf_ain_updateGroup1 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup1 },
+ { 3, &hf_ain_updateGroup2 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup2 },
+ { 4, &hf_ain_updateGroup3 , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup3 },
+ { 5, &hf_ain_updateGroup4 , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup4 },
+ { 6, &hf_ain_updateGroup5 , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup5 },
+ { 7, &hf_ain_updateGroup6 , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup6 },
+ { 8, &hf_ain_updateGroup7 , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup7 },
+ { 9, &hf_ain_updateGroup8 , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup8 },
+ { 10, &hf_ain_updateGroup9 , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup9 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateGroups(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ UpdateGroups_choice, hf_index, ett_ain_UpdateGroups,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_CancelInterdigitTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ain_ActivationStateCode(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SSPUserResource_U_sequence[] = {
+ { &hf_ain_sSPUserResourceID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_SSPUserResourceID },
+ { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
+ { &hf_ain_updateGroups , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_UpdateGroups },
+ { &hf_ain_oNoAnswerTimer , BER_CLASS_CON, 91, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ONoAnswerTimer },
+ { &hf_ain_tNoAnswerTimer , BER_CLASS_CON, 99, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TNoAnswerTimer },
+ { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
+ { &hf_ain_cancelInterdigitTimer, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CancelInterdigitTimer },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SSPUserResource_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SSPUserResource_U_sequence, hf_index, ett_ain_SSPUserResource_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SSPUserResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 103, TRUE, dissect_ain_SSPUserResource_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SrhrID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ain_AINDigits(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SrhrGroup_U_sequence[] = {
+ { &hf_ain_srhrGroupID , BER_CLASS_CON, 77, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroupID },
+ { &hf_ain_srhrID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_SrhrID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_SrhrGroup_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SrhrGroup_U_sequence, hf_index, ett_ain_SrhrGroup_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_SrhrGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 104, TRUE, dissect_ain_SrhrGroup_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NtdIndirectID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ain_SSPUserResourceID(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const value_string ain_NtdID_vals[] = {
+ { 1, "ntdIndirectID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t NtdID_choice[] = {
+ { 1, &hf_ain_ntdIndirectID , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_NtdIndirectID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_NtdID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ NtdID_choice, hf_index, ett_ain_NtdID,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NetworkTestDesignator_U_sequence[] = {
+ { &hf_ain_ntdID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_NtdID },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_NetworkTestDesignator_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NetworkTestDesignator_U_sequence, hf_index, ett_ain_NetworkTestDesignator_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_NetworkTestDesignator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 97, TRUE, dissect_ain_NetworkTestDesignator_U);
+
+ return offset;
+}
+
+
+static const value_string ain_OperationsMonitoredItemID_vals[] = {
+ { 1, "sSPUserResourceID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t OperationsMonitoredItemID_choice[] = {
+ { 1, &hf_ain_sSPUserResourceID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_SSPUserResourceID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OperationsMonitoredItemID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ OperationsMonitoredItemID_choice, hf_index, ett_ain_OperationsMonitoredItemID,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OperationsMonitoringAssignment_U_sequence[] = {
+ { &hf_ain_operationsMonitoredItemID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_OperationsMonitoredItemID },
+ { &hf_ain_activationStateCode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OperationsMonitoringAssignment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OperationsMonitoringAssignment_U_sequence, hf_index, ett_ain_OperationsMonitoringAssignment_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OperationsMonitoringAssignment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 118, TRUE, dissect_ain_OperationsMonitoringAssignment_U);
+
+ return offset;
+}
+
+
+static const value_string ain_AdministrableObject_vals[] = {
+ { 102, "triggerItemAssignment" },
+ { 103, "sSPUserResource" },
+ { 104, "srhrGroup" },
+ { 97, "networkTestDesignator" },
+ { 118, "operationsMonitoringAssignment" },
+ { 0, NULL }
+};
+
+static const ber_choice_t AdministrableObject_choice[] = {
+ { 102, &hf_ain_triggerItemAssignment, BER_CLASS_CON, 102, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerItemAssignment },
+ { 103, &hf_ain_sSPUserResource , BER_CLASS_CON, 103, BER_FLAGS_NOOWNTAG, dissect_ain_SSPUserResource },
+ { 104, &hf_ain_srhrGroup , BER_CLASS_CON, 104, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroup },
+ { 97, &hf_ain_networkTestDesignator, BER_CLASS_CON, 97, BER_FLAGS_NOOWNTAG, dissect_ain_NetworkTestDesignator },
+ { 118, &hf_ain_operationsMonitoringAssignment, BER_CLASS_CON, 118, BER_FLAGS_NOOWNTAG, dissect_ain_OperationsMonitoringAssignment },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_AdministrableObject(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ AdministrableObject_choice, hf_index, ett_ain_AdministrableObject,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateArg_sequence[] = {
+ { &hf_ain_administrableObject, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_AdministrableObject },
+ { &hf_ain_editListType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_EditListType },
+ { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateArg_sequence, hf_index, ett_ain_UpdateArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RES_updateRequest_sequence[] = {
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_RES_updateRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RES_updateRequest_sequence, hf_index, ett_ain_RES_updateRequest);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TriggerCriteriaFlag(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 68, TRUE, dissect_ain_OCTET_STRING_SIZE_2);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateRequestArg_sequence[] = {
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { &hf_ain_triggerCriteriaFlag, BER_CLASS_CON, 68, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaFlag },
+ { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateRequestArg_sequence, hf_index, ett_ain_UpdateRequestArg);
+
+ return offset;
+}
+
+
+static const value_string ain_ErrorCause_U_vals[] = {
+ { 0, "erroneousDataValue" },
+ { 1, "missingConditionalParameter" },
+ { 2, "responseMessageTimerExpired" },
+ { 3, "unexpectedCommunication" },
+ { 4, "unexpectedMessage" },
+ { 5, "unexpectedMessageSequence" },
+ { 6, "unexpectedParameterSequence" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ErrorCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ErrorCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 56, TRUE, dissect_ain_ErrorCause_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_TimerUpdated_U_vals[] = {
+ { 0, "success" },
+ { 1, "failure" },
+ { 2, "transaction-already-closed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_TimerUpdated_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_TimerUpdated(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 167, TRUE, dissect_ain_TimerUpdated_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FailureCauseData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 112, TRUE, dissect_ain_OCTET_STRING_SIZE_1_5);
+
+ return offset;
+}
+
+
+static const value_string ain_Parms_vals[] = {
+ { 0, "accessCode" },
+ { 1, "aCGEncountered" },
+ { 2, "alternateBillingIndicator" },
+ { 3, "alternateCarrier" },
+ { 4, "alternateTrunkGroup" },
+ { 5, "aMAAlternateBillingNumber" },
+ { 6, "aMABusinessCustomerID" },
+ { 7, "aMAslpID" },
+ { 8, "amp1" },
+ { 9, "amp2" },
+ { 10, "answerIndicator" },
+ { 11, "bearerCapability" },
+ { 12, "busyCause" },
+ { 13, "calledPartyID" },
+ { 14, "calledPartyStationType" },
+ { 15, "callingGeodeticLocation" },
+ { 16, "callingPartyBGID" },
+ { 17, "callingPartyID" },
+ { 18, "callType" },
+ { 19, "chargeNumber" },
+ { 20, "chargePartyStationType" },
+ { 21, "clearCause" },
+ { 22, "collectedAddressInfo" },
+ { 23, "collectedDigits" },
+ { 24, "controllingLegTreatment" },
+ { 25, "disconnectFlag" },
+ { 26, "displayText" },
+ { 27, "dTMFDigitsDetected" },
+ { 28, "facilityGID" },
+ { 29, "facilityMemberID" },
+ { 30, "failureCause" },
+ { 31, "genericName" },
+ { 32, "lata" },
+ { 33, "oDTMFDigitsString" },
+ { 34, "oDTMFNumberofDigits" },
+ { 35, "originalCalledPartyID" },
+ { 36, "outpulseNumber" },
+ { 37, "overflowBillingIndicator" },
+ { 38, "passiveLegTreatment" },
+ { 39, "partyID" },
+ { 40, "partyOnHold" },
+ { 41, "primaryBillingIndicator" },
+ { 42, "carrier" },
+ { 43, "primaryTrunkGroup" },
+ { 44, "redirectingPartyID" },
+ { 45, "redirectionInformation" },
+ { 46, "resourceType" },
+ { 47, "secondAlternateBillingIndicator" },
+ { 48, "secondAlternateCarrier" },
+ { 49, "secondAlternateTrunkGroup" },
+ { 50, "spid" },
+ { 51, "sSPResponseMessageTimerT1" },
+ { 52, "strParameterBlock" },
+ { 53, "tcm" },
+ { 54, "tDTMFDigitString" },
+ { 55, "tDTMFNumberOfDigits" },
+ { 56, "timerUpdated" },
+ { 57, "triggerCriteriaType" },
+ { 58, "triggerInformation" },
+ { 59, "userID" },
+ { 60, "verticalServiceCode" },
+ { 61, "connectTime" },
+ { 62, "controlCauseIndicator" },
+ { 63, "echoData" },
+ { 64, "facilityStatus" },
+ { 65, "gapDuration" },
+ { 66, "gapInterval" },
+ { 67, "globalTitleAddress" },
+ { 68, "monitorTime" },
+ { 69, "statusCause" },
+ { 70, "terminationIndicator" },
+ { 71, "translationType" },
+ { 72, "triggerCriteriaFlag" },
+ { 73, "tSTRCTimer" },
+ { 74, "aMAMeasure" },
+ { 75, "aMAMeasurement" },
+ { 76, "clearCauseData" },
+ { 77, "envelopContent" },
+ { 78, "iPReturnBlock" },
+ { 79, "sap" },
+ { 80, "aMASetHexABIndicator" },
+ { 81, "serviceContext" },
+ { 82, "extensionParameter" },
+ { 83, "securityEnvelope" },
+ { 84, "destinationAddress" },
+ { 85, "derviceProviderID" },
+ { 86, "aMABillingFeature" },
+ { 87, "aMASequenceNumber" },
+ { 88, "applicationIndicator" },
+ { 89, "oNoAnswerTimer" },
+ { 90, "eDPRequest" },
+ { 91, "eDPNotification" },
+ { 92, "busyType" },
+ { 93, "aMABAFModules" },
+ { 94, "sTRConnection" },
+ { 95, "errorCause" },
+ { 96, "resultCause" },
+ { 97, "cTRConnection" },
+ { 98, "rTPReroutingNumber" },
+ { 99, "rTPServiceIndicator" },
+ { 100, "administrableObject" },
+ { 101, "envelopeEncodingAuthority" },
+ { 102, "tNoAnswerTimer" },
+ { 103, "editListType" },
+ { 104, "aCGGlobalOverride" },
+ { 105, "notificationIndicator" },
+ { 106, "aMALineNumber" },
+ { 107, "aMADigitsDialedWC" },
+ { 108, "carrierUsage" },
+ { 109, "closeCause" },
+ { 110, "dPConverter" },
+ { 111, "failureCauseData" },
+ { 112, "genericAddress" },
+ { 113, "srhrGroupID" },
+ { 114, "genericAddressList" },
+ { 115, "networkSpecificFacilities" },
+ { 116, "forwardCallIndicator" },
+ { 117, "alternateDialingPlanInd" },
+ { 118, "disconnectCause" },
+ { 119, "aMAServiceProviderID" },
+ { 120, "congestionLevel" },
+ { 121, "controlEncountered" },
+ { 122, "infoProvided" },
+ { 123, "provideInfo" },
+ { 124, "signalingPointCode" },
+ { 125, "subsystemNumber" },
+ { 126, "notificationDuration" },
+ { 127, "wakeUpDuration" },
+ { 128, "oSIIndicator" },
+ { 129, "legID" },
+ { 130, "ccID" },
+ { 131, "bCMType" },
+ { 132, "pointInCall" },
+ { 133, "featureActivatorID" },
+ { 134, "csID" },
+ { 135, "lampTreatment" },
+ { 136, "timeoutTimer" },
+ { 137, "transID" },
+ { 138, "actResult" },
+ { 139, "extendedRinging" },
+ { 140, "jurisdictionInformation" },
+ { 141, "prefix" },
+ { 142, "genericDigitsList" },
+ { 143, "applyRestrictions" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Parms_choice[] = {
+ { 0, &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
+ { 1, &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
+ { 2, &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
+ { 3, &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
+ { 4, &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
+ { 5, &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
+ { 6, &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
+ { 7, &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
+ { 8, &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
+ { 9, &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
+ { 10, &hf_ain_answerIndicator , BER_CLASS_CON, 12, BER_FLAGS_NOOWNTAG, dissect_ain_AnswerIndicator },
+ { 11, &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
+ { 12, &hf_ain_busyCause , BER_CLASS_CON, 14, BER_FLAGS_NOOWNTAG, dissect_ain_BusyCause },
+ { 13, &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
+ { 14, &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
+ { 15, &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
+ { 16, &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
+ { 17, &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
+ { 18, &hf_ain_callType , BER_CLASS_CON, 165, BER_FLAGS_NOOWNTAG, dissect_ain_CallType },
+ { 19, &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
+ { 20, &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
+ { 21, &hf_ain_clearCause , BER_CLASS_CON, 21, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCause },
+ { 22, &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
+ { 23, &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
+ { 24, &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
+ { 25, &hf_ain_disconnectFlag , BER_CLASS_CON, 25, BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectFlag },
+ { 26, &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
+ { 27, &hf_ain_dTMFDigitsDetected, BER_CLASS_CON, 153, BER_FLAGS_NOOWNTAG, dissect_ain_DTMFDigitsDetected },
+ { 28, &hf_ain_facilityGID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityGID },
+ { 29, &hf_ain_facilityMemberID, BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityMemberID },
+ { 30, &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { 31, &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
+ { 32, &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
+ { 33, &hf_ain_oDTMFDigitsString, BER_CLASS_CON, 154, BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFDigitsString },
+ { 34, &hf_ain_oDTMFNumberofDigits, BER_CLASS_CON, 155, BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFNumberOfDigits },
+ { 35, &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
+ { 36, &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
+ { 37, &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
+ { 38, &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
+ { 39, &hf_ain_partyID , BER_CLASS_CON, 159, BER_FLAGS_NOOWNTAG, dissect_ain_PartyID },
+ { 40, &hf_ain_partyOnHold , BER_CLASS_CON, 146, BER_FLAGS_NOOWNTAG, dissect_ain_PartyOnHold },
+ { 41, &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
+ { 42, &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
+ { 43, &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
+ { 44, &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
+ { 45, &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
+ { 46, &hf_ain_resourceType , BER_CLASS_CON, 45, BER_FLAGS_NOOWNTAG, dissect_ain_ResourceType },
+ { 47, &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
+ { 48, &hf_ain_secondAlternateCarrier, BER_CLASS_CON, 47, BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
+ { 49, &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
+ { 50, &hf_ain_spid , BER_CLASS_CON, 49, BER_FLAGS_NOOWNTAG, dissect_ain_Spid },
+ { 51, &hf_ain_sSPResponseMessageTimerT1, BER_CLASS_CON, 166, BER_FLAGS_NOOWNTAG, dissect_ain_SSPResponseMessageTimerT1 },
+ { 52, &hf_ain_strParameterBlock, BER_CLASS_CON, 50, BER_FLAGS_NOOWNTAG, dissect_ain_StrParameterBlock },
+ { 53, &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
+ { 54, &hf_ain_tDTMFDigitString, BER_CLASS_CON, 157, BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFDigitString },
+ { 55, &hf_ain_tDTMFNumberOfDigits, BER_CLASS_CON, 158, BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFNumberOfDigits },
+ { 56, &hf_ain_timerUpdated , BER_CLASS_CON, 167, BER_FLAGS_NOOWNTAG, dissect_ain_TimerUpdated },
+ { 57, &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
+ { 58, &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
+ { 59, &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { 60, &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
+ { 61, &hf_ain_connectTime , BER_CLASS_CON, 58, BER_FLAGS_NOOWNTAG, dissect_ain_ConnectTime },
+ { 62, &hf_ain_controlCauseIndicator, BER_CLASS_CON, 59, BER_FLAGS_NOOWNTAG, dissect_ain_ControlCauseIndicator },
+ { 63, &hf_ain_echoData , BER_CLASS_CON, 60, BER_FLAGS_NOOWNTAG, dissect_ain_EchoData },
+ { 64, &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
+ { 65, &hf_ain_gapDuration , BER_CLASS_CON, 62, BER_FLAGS_NOOWNTAG, dissect_ain_GapDuration },
+ { 66, &hf_ain_gapInterval , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_GapInterval },
+ { 67, &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
+ { 68, &hf_ain_monitorTime , BER_CLASS_CON, 65, BER_FLAGS_NOOWNTAG, dissect_ain_MonitorTime },
+ { 69, &hf_ain_statusCause , BER_CLASS_CON, 66, BER_FLAGS_NOOWNTAG, dissect_ain_StatusCause },
+ { 70, &hf_ain_terminationIndicator, BER_CLASS_CON, 67, BER_FLAGS_NOOWNTAG, dissect_ain_TerminationIndicator },
+ { 71, &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
+ { 72, &hf_ain_triggerCriteriaFlag, BER_CLASS_CON, 68, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaFlag },
+ { 73, &hf_ain_tSTRCTimer , BER_CLASS_CON, 156, BER_FLAGS_NOOWNTAG, dissect_ain_TSTRCTimer },
+ { 74, &hf_ain_aMAMeasure , BER_CLASS_CON, 71, BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasure },
+ { 75, &hf_ain_aMAMeasurement , BER_CLASS_CON, 73, BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasurement },
+ { 76, &hf_ain_clearCauseData , BER_CLASS_CON, 74, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCauseData },
+ { 77, &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
+ { 78, &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
+ { 79, &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
+ { 80, &hf_ain_aMASetHexABIndicator, BER_CLASS_CON, 82, BER_FLAGS_NOOWNTAG, dissect_ain_AMASetHexABIndicator },
+ { 81, &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
+ { 82, &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
+ { 83, &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
+ { 84, &hf_ain_destinationAddress, BER_CLASS_CON, 86, BER_FLAGS_NOOWNTAG, dissect_ain_DestinationAddress },
+ { 85, &hf_ain_derviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_ServiceProviderID },
+ { 86, &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
+ { 87, &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
+ { 88, &hf_ain_applicationIndicator, BER_CLASS_CON, 90, BER_FLAGS_NOOWNTAG, dissect_ain_ApplicationIndicator },
+ { 89, &hf_ain_oNoAnswerTimer , BER_CLASS_CON, 91, BER_FLAGS_NOOWNTAG, dissect_ain_ONoAnswerTimer },
+ { 90, &hf_ain_eDPRequest , BER_CLASS_CON, 92, BER_FLAGS_NOOWNTAG, dissect_ain_EDPRequest },
+ { 91, &hf_ain_eDPNotification , BER_CLASS_CON, 93, BER_FLAGS_NOOWNTAG, dissect_ain_EDPNotification },
+ { 92, &hf_ain_busyType , BER_CLASS_CON, 94, BER_FLAGS_NOOWNTAG, dissect_ain_BusyType },
+ { 93, &hf_ain_aMABAFModules , BER_CLASS_CON, 95, BER_FLAGS_NOOWNTAG, dissect_ain_AMABAFModules },
+ { 94, &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
+ { 95, &hf_ain_errorCause , BER_CLASS_CON, 56, BER_FLAGS_NOOWNTAG, dissect_ain_ErrorCause },
+ { 96, &hf_ain_resultCause , BER_CLASS_CON, 151, BER_FLAGS_NOOWNTAG, dissect_ain_ResultCause },
+ { 97, &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
+ { 98, &hf_ain_rTPReroutingNumber, BER_CLASS_CON, 143, BER_FLAGS_NOOWNTAG, dissect_ain_RTPReroutingNumber },
+ { 99, &hf_ain_rTPServiceIndicator, BER_CLASS_CON, 144, BER_FLAGS_NOOWNTAG, dissect_ain_RTPServiceIndicator },
+ { 100, &hf_ain_administrableObject, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_AdministrableObject },
+ { 101, &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
+ { 102, &hf_ain_tNoAnswerTimer , BER_CLASS_CON, 99, BER_FLAGS_NOOWNTAG, dissect_ain_TNoAnswerTimer },
+ { 103, &hf_ain_editListType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ain_EditListType },
+ { 104, &hf_ain_aCGGlobalOverride, BER_CLASS_CON, 110, BER_FLAGS_NOOWNTAG, dissect_ain_ACGGlobalOverride },
+ { 105, &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
+ { 106, &hf_ain_aMALineNumber , BER_CLASS_CON, 9, BER_FLAGS_NOOWNTAG, dissect_ain_AMALineNumber },
+ { 107, &hf_ain_aMADigitsDialedWC, BER_CLASS_CON, 8, BER_FLAGS_NOOWNTAG, dissect_ain_AMADigitsDialedWC },
+ { 108, &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
+ { 109, &hf_ain_closeCause , BER_CLASS_CON, 72, BER_FLAGS_NOOWNTAG, dissect_ain_CloseCause },
+ { 110, &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
+ { 111, &hf_ain_failureCauseData, BER_CLASS_CON, 112, BER_FLAGS_NOOWNTAG, dissect_ain_FailureCauseData },
+ { 112, &hf_ain_genericAddress , BER_CLASS_CON, 80, BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddress },
+ { 113, &hf_ain_srhrGroupID , BER_CLASS_CON, 77, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroupID },
+ { 114, &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
+ { 115, &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
+ { 116, &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
+ { 117, &hf_ain_alternateDialingPlanInd, BER_CLASS_CON, 115, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateDialingPlanInd },
+ { 118, &hf_ain_disconnectCause , BER_CLASS_CON, 116, BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectCause },
+ { 119, &hf_ain_aMAServiceProviderID, BER_CLASS_CON, 101, BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
+ { 120, &hf_ain_congestionLevel , BER_CLASS_CON, 117, BER_FLAGS_NOOWNTAG, dissect_ain_CongestionLevel },
+ { 121, &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
+ { 122, &hf_ain_infoProvided , BER_CLASS_CON, 100, BER_FLAGS_NOOWNTAG, dissect_ain_InfoProvided },
+ { 123, &hf_ain_provideInfo , BER_CLASS_CON, 114, BER_FLAGS_NOOWNTAG, dissect_ain_ProvideInfo },
+ { 124, &hf_ain_signalingPointCode, BER_CLASS_CON, 142, BER_FLAGS_NOOWNTAG, dissect_ain_SignalingPointCode },
+ { 125, &hf_ain_subsystemNumber , BER_CLASS_CON, 130, BER_FLAGS_NOOWNTAG, dissect_ain_SubsystemNumber },
+ { 126, &hf_ain_notificationDuration, BER_CLASS_CON, 128, BER_FLAGS_NOOWNTAG, dissect_ain_NotificationDuration },
+ { 127, &hf_ain_wakeUpDuration , BER_CLASS_CON, 131, BER_FLAGS_NOOWNTAG, dissect_ain_WakeUpDuration },
+ { 128, &hf_ain_oSIIndicator , BER_CLASS_CON, 129, BER_FLAGS_NOOWNTAG, dissect_ain_OSIIndicator },
+ { 129, &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
+ { 130, &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
+ { 131, &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
+ { 132, &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
+ { 133, &hf_ain_featureActivatorID, BER_CLASS_CON, 136, BER_FLAGS_NOOWNTAG, dissect_ain_FeatureActivatorID },
+ { 134, &hf_ain_csID , BER_CLASS_CON, 137, BER_FLAGS_NOOWNTAG, dissect_ain_CsID },
+ { 135, &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
+ { 136, &hf_ain_timeoutTimer , BER_CLASS_CON, 139, BER_FLAGS_NOOWNTAG, dissect_ain_TimeoutTimer },
+ { 137, &hf_ain_transID , BER_CLASS_CON, 163, BER_FLAGS_NOOWNTAG, dissect_ain_TransID },
+ { 138, &hf_ain_actResult , BER_CLASS_CON, 164, BER_FLAGS_NOOWNTAG, dissect_ain_ActResult },
+ { 139, &hf_ain_extendedRinging , BER_CLASS_CON, 146, BER_FLAGS_NOOWNTAG, dissect_ain_ExtendedRinging },
+ { 140, &hf_ain_jurisdictionInformation, BER_CLASS_CON, 147, BER_FLAGS_NOOWNTAG, dissect_ain_JurisdictionInformation },
+ { 141, &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
+ { 142, &hf_ain_genericDigitsList, BER_CLASS_CON, 150, BER_FLAGS_NOOWNTAG, dissect_ain_GenericDigitsList },
+ { 143, &hf_ain_applyRestrictions, BER_CLASS_CON, 152, BER_FLAGS_NOOWNTAG, dissect_ain_ApplyRestrictions },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Parms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Parms_choice, hf_index, ett_ain_Parms,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InvParms_sequence_of[1] = {
+ { &hf_ain_InvParms_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Parms },
+};
+
+static int
+dissect_ain_InvParms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ InvParms_sequence_of, hf_index, ett_ain_InvParms);
+
+ return offset;
+}
+
+
+static const ber_sequence_t FailedMessage_U_sequence[] = {
+ { &hf_ain_opCode , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_INTEGER },
+ { &hf_ain_parameter , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OCTET_STRING },
+ { &hf_ain_invParms , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_InvParms },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_FailedMessage_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ FailedMessage_U_sequence, hf_index, ett_ain_FailedMessage_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_FailedMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 57, TRUE, dissect_ain_FailedMessage_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ApplicationErrorString_U_sequence[] = {
+ { &hf_ain_errorCause , BER_CLASS_CON, 56, BER_FLAGS_NOOWNTAG, dissect_ain_ErrorCause },
+ { &hf_ain_failedMessage , BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailedMessage },
+ { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ApplicationErrorString_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ApplicationErrorString_U_sequence, hf_index, ett_ain_ApplicationErrorString_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ApplicationErrorString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 55, TRUE, dissect_ain_ApplicationErrorString_U);
+
+ return offset;
+}
+
+
+static const ber_sequence_t PAR_applicationError_sequence[] = {
+ { &hf_ain_applicationErrorString, BER_CLASS_CON, 55, BER_FLAGS_NOOWNTAG, dissect_ain_ApplicationErrorString },
+ { &hf_ain_extensionParameter, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_PAR_applicationError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PAR_applicationError_sequence, hf_index, ett_ain_PAR_applicationError);
+
+ return offset;
+}
+
+
+static const ber_sequence_t PAR_failureReport_sequence[] = {
+ { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
+ { &hf_ain_failureCauseData, BER_CLASS_CON, 112, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCauseData },
+ { &hf_ain_extensionParameter, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ExtensionParameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_PAR_failureReport(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PAR_failureReport_sequence, hf_index, ett_ain_PAR_failureReport);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_local(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &opcode);
+
+ if (ain_opcode_type == AIN_OPCODE_RETURN_ERROR){
+ errorCode = opcode;
+ col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str(errorCode, ain_err_code_string_vals, "Unknown AIN error (%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }else{
+ col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str(opcode, ain_opr_code_strings, "Unknown AIN (%u)"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ }
+
+
+ return offset;
+}
+
+
+static const value_string ain_Code_vals[] = {
+ { 0, "local" },
+ { 1, "global" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Code_choice[] = {
+ { 0, &hf_ain_local , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_T_local },
+ { 1, &hf_ain_global , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ain_OBJECT_IDENTIFIER },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Code_choice, hf_index, ett_ain_Code,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_InvokeId_vals[] = {
+ { 0, "present" },
+ { 1, "absent" },
+ { 0, NULL }
+};
+
+static const ber_choice_t InvokeId_choice[] = {
+ { 0, &hf_ain_present_01 , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_INTEGER },
+ { 1, &hf_ain_absent , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_ain_NULL },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_InvokeId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ InvokeId_choice, hf_index, ett_ain_InvokeId,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_InvokeId_present(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_present(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ain_InvokeId_present(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const value_string ain_T_linkedId_vals[] = {
+ { 0, "present" },
+ { 1, "absent" },
+ { 0, NULL }
+};
+
+static const ber_choice_t T_linkedId_choice[] = {
+ { 0, &hf_ain_present , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_T_present },
+ { 1, &hf_ain_absent , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_NULL },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_T_linkedId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ T_linkedId_choice, hf_index, ett_ain_T_linkedId,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_argument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ offset = dissect_invokeData(tree, tvb, offset, actx);
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t Invoke_sequence[] = {
+ { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
+ { &hf_ain_linkedId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_T_linkedId },
+ { &hf_ain_opcode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Code },
+ { &hf_ain_argument , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_T_argument },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Invoke(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ ain_opcode_type=AIN_OPCODE_INVOKE;
+
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Invoke_sequence, hf_index, ett_ain_Invoke);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_result_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ offset = dissect_returnResultData(tree, tvb, offset, actx);
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_result_sequence[] = {
+ { &hf_ain_opcode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Code },
+ { &hf_ain_result_01 , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ain_T_result_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_T_result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ T_result_sequence, hf_index, ett_ain_T_result);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReturnResult_sequence[] = {
+ { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
+ { &hf_ain_result , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_T_result },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ReturnResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ ain_opcode_type=AIN_OPCODE_RETURN_RESULT;
+
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReturnResult_sequence, hf_index, ett_ain_ReturnResult);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_T_parameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ offset = dissect_returnErrorData(tree, tvb, offset, actx);
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReturnError_sequence[] = {
+ { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
+ { &hf_ain_errcode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Code },
+ { &hf_ain_parameter_01 , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_T_parameter },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ReturnError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ ain_opcode_type=AIN_OPCODE_RETURN_ERROR;
+
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReturnError_sequence, hf_index, ett_ain_ReturnError);
+
+ return offset;
+}
+
+
+static const value_string ain_GeneralProblem_vals[] = {
+ { 0, "unrecognizedPDU" },
+ { 1, "mistypedPDU" },
+ { 2, "badlyStructuredPDU" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_GeneralProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_InvokeProblem_vals[] = {
+ { 0, "duplicateInvocation" },
+ { 1, "unrecognizedOperation" },
+ { 2, "mistypedArgument" },
+ { 3, "resourceLimitation" },
+ { 4, "releaseInProgress" },
+ { 5, "unrecognizedLinkedId" },
+ { 6, "linkedResponseUnexpected" },
+ { 7, "unexpectedLinkedOperation" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_InvokeProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_ReturnResultProblem_vals[] = {
+ { 0, "unrecognizedInvocation" },
+ { 1, "resultResponseUnexpected" },
+ { 2, "mistypedResult" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ReturnResultProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_ReturnErrorProblem_vals[] = {
+ { 0, "unrecognizedInvocation" },
+ { 1, "errorResponseUnexpected" },
+ { 2, "unrecognizedError" },
+ { 3, "unexpectedError" },
+ { 4, "mistypedParameter" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ain_ReturnErrorProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ain_T_problem_vals[] = {
+ { 0, "general" },
+ { 1, "invoke" },
+ { 2, "returnResult" },
+ { 3, "returnError" },
+ { 0, NULL }
+};
+
+static const ber_choice_t T_problem_choice[] = {
+ { 0, &hf_ain_general , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_GeneralProblem },
+ { 1, &hf_ain_invokeproblem , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_InvokeProblem },
+ { 2, &hf_ain_returnResult_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ReturnResultProblem },
+ { 3, &hf_ain_returnError_01 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ReturnErrorProblem },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_T_problem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ T_problem_choice, hf_index, ett_ain_T_problem,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Reject_sequence[] = {
+ { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
+ { &hf_ain_problem , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_T_problem },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Reject(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ ain_opcode_type=AIN_OPCODE_REJECT;
+
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Reject_sequence, hf_index, ett_ain_Reject);
+
+ return offset;
+}
+
+
+static const ber_choice_t ROS_choice[] = {
+ { 1, &hf_ain_invoke , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Invoke },
+ { 2, &hf_ain_returnResult , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ReturnResult },
+ { 3, &hf_ain_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ReturnError },
+ { 4, &hf_ain_reject , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_Reject },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_ROS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ ROS_choice, hf_index, ett_ain_ROS,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_CallInfoFromResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CallInfoFromResourceArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CallInfoFromResourceArg_PDU);
+ return offset;
+}
+static int dissect_CloseArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CloseArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CloseArg_PDU);
+ return offset;
+}
+static int dissect_CTRClearArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CTRClearArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CTRClearArg_PDU);
+ return offset;
+}
+static int dissect_FailureOutcomeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_FailureOutcomeArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_FailureOutcomeArg_PDU);
+ return offset;
+}
+static int dissect_InfoAnalyzedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_InfoAnalyzedArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_InfoAnalyzedArg_PDU);
+ return offset;
+}
+static int dissect_InfoCollectedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_InfoCollectedArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_InfoCollectedArg_PDU);
+ return offset;
+}
+static int dissect_NetworkBusyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_NetworkBusyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_NetworkBusyArg_PDU);
+ return offset;
+}
+static int dissect_OAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OAnswerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OAnswerArg_PDU);
+ return offset;
+}
+static int dissect_OAbandonArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OAbandonArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OAbandonArg_PDU);
+ return offset;
+}
+static int dissect_ODisconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ODisconnectArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ODisconnectArg_PDU);
+ return offset;
+}
+static int dissect_OMidCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OMidCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OMidCallArg_PDU);
+ return offset;
+}
+static int dissect_ONoAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ONoAnswerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ONoAnswerArg_PDU);
+ return offset;
+}
+static int dissect_OSuspendedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OSuspendedArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OSuspendedArg_PDU);
+ return offset;
+}
+static int dissect_OTermSeizedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OTermSeizedArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OTermSeizedArg_PDU);
+ return offset;
+}
+static int dissect_OriginationAttemptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OriginationAttemptArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OriginationAttemptArg_PDU);
+ return offset;
+}
+static int dissect_ResourceClearArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ResourceClearArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ResourceClearArg_PDU);
+ return offset;
+}
+static int dissect_RES_resourceClear_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_resourceClear(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_resourceClear_PDU);
+ return offset;
+}
+static int dissect_SuccessOutcomeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_SuccessOutcomeArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_SuccessOutcomeArg_PDU);
+ return offset;
+}
+static int dissect_TAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TAnswerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TAnswerArg_PDU);
+ return offset;
+}
+static int dissect_TBusyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TBusyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TBusyArg_PDU);
+ return offset;
+}
+static int dissect_TDisconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TDisconnectArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TDisconnectArg_PDU);
+ return offset;
+}
+static int dissect_TDTMFEnteredArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TDTMFEnteredArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TDTMFEnteredArg_PDU);
+ return offset;
+}
+static int dissect_TMidCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TMidCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TMidCallArg_PDU);
+ return offset;
+}
+static int dissect_TNoAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TNoAnswerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TNoAnswerArg_PDU);
+ return offset;
+}
+static int dissect_TerminationAttemptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TerminationAttemptArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TerminationAttemptArg_PDU);
+ return offset;
+}
+static int dissect_TermResourceAvailableArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TermResourceAvailableArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TermResourceAvailableArg_PDU);
+ return offset;
+}
+static int dissect_TimeoutArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TimeoutArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TimeoutArg_PDU);
+ return offset;
+}
+static int dissect_AnalyzeRouteArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_AnalyzeRouteArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_AnalyzeRouteArg_PDU);
+ return offset;
+}
+static int dissect_AuthorizeTerminationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_AuthorizeTerminationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_AuthorizeTerminationArg_PDU);
+ return offset;
+}
+static int dissect_CancelResourceEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CancelResourceEventArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CancelResourceEventArg_PDU);
+ return offset;
+}
+static int dissect_CollectInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CollectInformationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CollectInformationArg_PDU);
+ return offset;
+}
+static int dissect_ConnectToResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ConnectToResourceArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ConnectToResourceArg_PDU);
+ return offset;
+}
+static int dissect_ContinueArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ContinueArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ContinueArg_PDU);
+ return offset;
+}
+static int dissect_CreateCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CreateCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CreateCallArg_PDU);
+ return offset;
+}
+static int dissect_CreateCallRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CreateCallRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CreateCallRes_PDU);
+ return offset;
+}
+static int dissect_DisconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_DisconnectArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_DisconnectArg_PDU);
+ return offset;
+}
+static int dissect_DisconnectLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_DisconnectLegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_DisconnectLegArg_PDU);
+ return offset;
+}
+static int dissect_ForwardCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ForwardCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ForwardCallArg_PDU);
+ return offset;
+}
+static int dissect_MergeCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_MergeCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_MergeCallArg_PDU);
+ return offset;
+}
+static int dissect_MoveLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_MoveLegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_MoveLegArg_PDU);
+ return offset;
+}
+static int dissect_OfferCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OfferCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OfferCallArg_PDU);
+ return offset;
+}
+static int dissect_OriginateCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_OriginateCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_OriginateCallArg_PDU);
+ return offset;
+}
+static int dissect_ReconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ReconnectArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ReconnectArg_PDU);
+ return offset;
+}
+static int dissect_SendToResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_SendToResourceArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_SendToResourceArg_PDU);
+ return offset;
+}
+static int dissect_RES_sendToResource_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_sendToResource(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_sendToResource_PDU);
+ return offset;
+}
+static int dissect_SetTimerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_SetTimerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_SetTimerArg_PDU);
+ return offset;
+}
+static int dissect_TimerUpdated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TimerUpdated(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TimerUpdated_PDU);
+ return offset;
+}
+static int dissect_SplitLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_SplitLegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_SplitLegArg_PDU);
+ return offset;
+}
+static int dissect_AcgArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_AcgArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_AcgArg_PDU);
+ return offset;
+}
+static int dissect_AcgGlobalCtrlRestoreArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_AcgGlobalCtrlRestoreArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_AcgGlobalCtrlRestoreArg_PDU);
+ return offset;
+}
+static int dissect_RES_acgGlobalCtrlRestore_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_acgGlobalCtrlRestore(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_acgGlobalCtrlRestore_PDU);
+ return offset;
+}
+static int dissect_AcgOverflowArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_AcgOverflowArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_AcgOverflowArg_PDU);
+ return offset;
+}
+static int dissect_ActivityTestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ActivityTestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ActivityTestArg_PDU);
+ return offset;
+}
+static int dissect_RES_activityTest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_activityTest(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_activityTest_PDU);
+ return offset;
+}
+static int dissect_CallTypeRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_CallTypeRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_CallTypeRequestArg_PDU);
+ return offset;
+}
+static int dissect_RES_callTypeRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_callTypeRequest(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_callTypeRequest_PDU);
+ return offset;
+}
+static int dissect_ControlRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_ControlRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_ControlRequestArg_PDU);
+ return offset;
+}
+static int dissect_EchoRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_EchoRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_EchoRequestArg_PDU);
+ return offset;
+}
+static int dissect_RES_echoRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_echoRequest(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_echoRequest_PDU);
+ return offset;
+}
+static int dissect_FurnishAMAInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_FurnishAMAInformationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_FurnishAMAInformationArg_PDU);
+ return offset;
+}
+static int dissect_MonitorForChangeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_MonitorForChangeArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_MonitorForChangeArg_PDU);
+ return offset;
+}
+static int dissect_MonitorSuccessArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_MonitorSuccessArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_MonitorSuccessArg_PDU);
+ return offset;
+}
+static int dissect_NCADataArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_NCADataArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_NCADataArg_PDU);
+ return offset;
+}
+static int dissect_NCARequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_NCARequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_NCARequestArg_PDU);
+ return offset;
+}
+static int dissect_RES_nCARequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_nCARequest(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_nCARequest_PDU);
+ return offset;
+}
+static int dissect_QueryRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_QueryRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_QueryRequestArg_PDU);
+ return offset;
+}
+static int dissect_RES_queryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_queryRequest(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_queryRequest_PDU);
+ return offset;
+}
+static int dissect_RequestReportBCMEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RequestReportBCMEventArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RequestReportBCMEventArg_PDU);
+ return offset;
+}
+static int dissect_StatusReportedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_StatusReportedArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_StatusReportedArg_PDU);
+ return offset;
+}
+static int dissect_TerminationNotificationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_TerminationNotificationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_TerminationNotificationArg_PDU);
+ return offset;
+}
+static int dissect_UpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_UpdateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_UpdateArg_PDU);
+ return offset;
+}
+static int dissect_RES_update_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_update(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_update_PDU);
+ return offset;
+}
+static int dissect_UpdateRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_UpdateRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_UpdateRequestArg_PDU);
+ return offset;
+}
+static int dissect_RES_updateRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_RES_updateRequest(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_RES_updateRequest_PDU);
+ return offset;
+}
+static int dissect_PAR_applicationError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_PAR_applicationError(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_PAR_applicationError_PDU);
+ return offset;
+}
+static int dissect_PAR_failureReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_ain_PAR_failureReport(FALSE, tvb, offset, &asn1_ctx, tree, hf_ain_PAR_failureReport_PDU);
+ return offset;
+}
+
+
+
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(opcode){
+ case 26116: /* callInfoFromResource */
+ offset= dissect_CallInfoFromResourceArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 28161: /* close */
+ offset= dissect_CloseArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26118: /* cTRClear */
+ offset= dissect_CTRClearArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25604: /* failureOutcome */
+ offset= dissect_FailureOutcomeArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25603: /* infoAnalyzed */
+ offset= dissect_InfoAnalyzedArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25602: /* infoCollected */
+ offset= dissect_InfoCollectedArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25623: /* networkBusy */
+ offset= dissect_NetworkBusyArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25611: /* oAnswer */
+ offset= dissect_OAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25614: /* oAbandon */
+ offset= dissect_OAbandonArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25626: /* oDisconnect */
+ offset= dissect_ODisconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25615: /* oMidCall */
+ offset= dissect_OMidCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25609: /* oNoAnswer */
+ offset= dissect_ONoAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25625: /* oSuspended */
+ offset= dissect_OSuspendedArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25612: /* oTermSeized */
+ offset= dissect_OTermSeizedArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25624: /* originationAttempt */
+ offset= dissect_OriginationAttemptArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26114: /* resourceClear */
+ offset= dissect_ResourceClearArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25617: /* successOutcome */
+ offset= dissect_SuccessOutcomeArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25610: /* tAnswer */
+ offset= dissect_TAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25606: /* tBusy */
+ offset= dissect_TBusyArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25618: /* tDisconnect */
+ offset= dissect_TDisconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25628: /* tDTMFEntered */
+ offset= dissect_TDTMFEnteredArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25619: /* tMidCall */
+ offset= dissect_TMidCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25608: /* tNoAnswer */
+ offset= dissect_TNoAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25605: /* terminationAttempt */
+ offset= dissect_TerminationAttemptArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25613: /* termResourceAvailable */
+ offset= dissect_TermResourceAvailableArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25620: /* timeout */
+ offset= dissect_TimeoutArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25857: /* analyzeRoute */
+ offset= dissect_AnalyzeRouteArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25858: /* authorizeTermination */
+ offset= dissect_AuthorizeTerminationArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26115: /* cancelResourceEvent */
+ offset= dissect_CancelResourceEventArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25861: /* collectInformation */
+ offset= dissect_CollectInformationArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26117: /* connectToResource */
+ offset= dissect_ConnectToResourceArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25869: /* continue */
+ offset= dissect_ContinueArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25863: /* createCall */
+ offset= dissect_CreateCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25859: /* disconnect */
+ offset= dissect_DisconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25864: /* disconnectLeg */
+ offset= dissect_DisconnectLegArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 27137: /* forwardCall */
+ offset= dissect_ForwardCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25865: /* mergeCall */
+ offset= dissect_MergeCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25866: /* moveLeg */
+ offset= dissect_MoveLegArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25860: /* offerCall */
+ offset= dissect_OfferCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25867: /* originateCall */
+ offset= dissect_OriginateCallArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25870: /* reconnect */
+ offset= dissect_ReconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26113: /* sendToResource */
+ offset= dissect_SendToResourceArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26889: /* setTimer */
+ offset= dissect_SetTimerArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25868: /* splitLeg */
+ offset= dissect_SplitLegArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26881: /* acg */
+ offset= dissect_AcgArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26883: /* acgGlobalCtrlRestore */
+ offset= dissect_AcgGlobalCtrlRestoreArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26884: /* acgOverflow */
+ offset= dissect_AcgOverflowArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26886: /* activityTest */
+ offset= dissect_ActivityTestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26887: /* callTypeRequest */
+ offset= dissect_CallTypeRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26885: /* controlRequest */
+ offset= dissect_ControlRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26882: /* echoRequest */
+ offset= dissect_EchoRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 27649: /* furnishAMAInformation */
+ offset= dissect_FurnishAMAInformationArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26369: /* monitorForChange */
+ offset= dissect_MonitorForChangeArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26371: /* monitorSuccess */
+ offset= dissect_MonitorSuccessArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 27394: /* nCAData */
+ offset= dissect_NCADataArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 27393: /* nCARequest */
+ offset= dissect_NCARequestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26626: /* queryRequest */
+ offset= dissect_QueryRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 27905: /* requestReportBCMEvent */
+ offset= dissect_RequestReportBCMEventArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26370: /* statusReported */
+ offset= dissect_StatusReportedArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26372: /* terminationNotification */
+ offset= dissect_TerminationNotificationArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26627: /* update */
+ offset= dissect_UpdateArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26625: /* updateRequest */
+ offset= dissect_UpdateRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_invokeData,
+ tvb, offset, -1, "Unknown invokeData %d", opcode);
+ /* todo call the asn.1 dissector */
+ break;
+ }
+ return offset;
+}
+
+
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+ switch(opcode){
+ case 26114: /* resourceClear */
+ offset= dissect_RES_resourceClear_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 25863: /* createCall */
+ offset= dissect_CreateCallRes_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26113: /* sendToResource */
+ offset= dissect_RES_sendToResource_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26889: /* setTimer */
+ offset= dissect_TimerUpdated_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26883: /* acgGlobalCtrlRestore */
+ offset= dissect_RES_acgGlobalCtrlRestore_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26886: /* activityTest */
+ offset= dissect_RES_activityTest_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26887: /* callTypeRequest */
+ offset= dissect_RES_callTypeRequest_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26882: /* echoRequest */
+ offset= dissect_RES_echoRequest_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 27393: /* nCARequest */
+ offset= dissect_RES_nCARequest_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26626: /* queryRequest */
+ offset= dissect_RES_queryRequest_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26627: /* update */
+ offset= dissect_RES_update_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 26625: /* updateRequest */
+ offset= dissect_RES_updateRequest_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_returnResultData,
+ tvb, offset, -1, "Unknown returnResultData %d", opcode);
+ }
+ return offset;
+}
+
+
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+ switch(errorCode) {
+ case 1: /* applicationError */
+ offset= dissect_PAR_applicationError_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ case 2: /* failureReport */
+ offset= dissect_PAR_failureReport_PDU(tvb, actx->pinfo , tree , NULL);
+ break;
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_returnErrorData,
+ tvb, offset, -1, "Unknown returnErrorData %d", opcode);
+ }
+ return offset;
+}
+
+
+
+static int
+dissect_ain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+{
+ proto_item *ain_item;
+ proto_tree *ain_tree = NULL;
+ struct ansi_tcap_private_t *p_private_tcap = (struct ansi_tcap_private_t *)data;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* The TCAP dissector should have provided data but didn't so reject it. */
+ if (data == NULL)
+ return 0;
+ /*
+ * Make entry in the Protocol column on summary display
+ */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "AIN");
+
+ /*
+ * create the AIN protocol tree
+ */
+ ain_item = proto_tree_add_item(parent_tree, proto_ain, tvb, 0, -1, ENC_NA);
+ ain_tree = proto_item_add_subtree(ain_item, ett_ain);
+
+ switch (p_private_tcap->d.pdu) {
+ /*
+ 1 : invoke,
+ 2 : returnResult,
+ 3 : returnError,
+ 4 : reject
+ */
+ case 1:
+ opcode = p_private_tcap->d.OperationCode_private;
+ /*ansi_map_is_invoke = TRUE;*/
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s Invoke ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
+ proto_item_append_text(p_private_tcap->d.OperationCode_item, " %s", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
+ dissect_invokeData(ain_tree, tvb, 0, &asn1_ctx);
+ /*update_saved_invokedata(pinfo, p_private_tcap);*/
+ break;
+ //case 2:
+ // opcode = find_saved_invokedata(&asn1_ctx, p_private_tcap);
+ // col_add_fstr(pinfo->cinfo, COL_INFO, "%s ReturnResult ", val_to_str_ext(opcode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ // proto_item_append_text(p_private_tcap->d.OperationCode_item, " %s", val_to_str_ext(opcode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ // dissect_returnData(ain_tree, tvb, 0, &asn1_ctx);
+ // break;
+ case 3:
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ReturnError ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
+ break;
+ case 4:
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s Reject ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
+ break;
+ default:
+ /* Must be Invoke ReturnResult ReturnError or Reject */
+ DISSECTOR_ASSERT_NOT_REACHED();
+ break;
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+void proto_reg_handoff_ain(void) {
+
+ /*static gboolean ain_prefs_initialized = FALSE;*/
+ /*static range_t *ssn_range;*/
+
+}
+
+
+void proto_register_ain(void) {
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+
+
+ { &hf_ain_ext_type_oid,
+ { "AssignmentAuthority", "ain.ext_type_oid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Type of ExtensionParameter", HFILL } },
+ { &hf_ain_odd_even_indicator,
+ { "Odd/even indicator", "ain.odd_even_indicator",
+ FT_BOOLEAN, 8, TFS(&tfs_odd_even), 0x80,
+ NULL, HFILL } },
+ { &hf_ain_nature_of_address,
+ { "Nature of address", "ain.nature_of_address",
+ FT_UINT8, BASE_DEC, NULL, 0x7f,
+ NULL, HFILL } },
+ { &hf_ain_numbering_plan,
+ { "Numbering plan", "ain.numbering_plan",
+ FT_UINT8, BASE_DEC, VALS(ain_np_vals), 0x70,
+ NULL, HFILL } },
+ { &hf_ain_bcd_digits,
+ { "BCD digits", "ain.bcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_ain_carrier_selection,
+ { "Carrier Selection", "ain.carrier_selection",
+ FT_UINT8, BASE_DEC, VALS(ain_carrier_selection_vals), 0x0,
+ NULL, HFILL } },
+ { &hf_ain_nature_of_carrier,
+ { "Nature of Carrier", "ain.nature_of_carrier",
+ FT_UINT8, BASE_DEC, VALS(ain_nature_of_carrier_vals), 0xf0,
+ NULL, HFILL } },
+ { &hf_ain_nr_digits,
+ { "Number of Digits", "ain.nature_of_carrier",
+ FT_UINT8, BASE_DEC, NULL, 0x0f,
+ NULL, HFILL } },
+ { &hf_ain_carrier_bcd_digits,
+ { "Carrier digits", "ain.carrier_bcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_ain_amaslpid,
+ { "AMAslpID", "ain.amaslpid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+
+ { &hf_ain_CallInfoFromResourceArg_PDU,
+ { "CallInfoFromResourceArg", "ain.CallInfoFromResourceArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CloseArg_PDU,
+ { "CloseArg", "ain.CloseArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CTRClearArg_PDU,
+ { "CTRClearArg", "ain.CTRClearArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_FailureOutcomeArg_PDU,
+ { "FailureOutcomeArg", "ain.FailureOutcomeArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_InfoAnalyzedArg_PDU,
+ { "InfoAnalyzedArg", "ain.InfoAnalyzedArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_InfoCollectedArg_PDU,
+ { "InfoCollectedArg", "ain.InfoCollectedArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_NetworkBusyArg_PDU,
+ { "NetworkBusyArg", "ain.NetworkBusyArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OAnswerArg_PDU,
+ { "OAnswerArg", "ain.OAnswerArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OAbandonArg_PDU,
+ { "OAbandonArg", "ain.OAbandonArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ODisconnectArg_PDU,
+ { "ODisconnectArg", "ain.ODisconnectArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OMidCallArg_PDU,
+ { "OMidCallArg", "ain.OMidCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ONoAnswerArg_PDU,
+ { "ONoAnswerArg", "ain.ONoAnswerArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OSuspendedArg_PDU,
+ { "OSuspendedArg", "ain.OSuspendedArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OTermSeizedArg_PDU,
+ { "OTermSeizedArg", "ain.OTermSeizedArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OriginationAttemptArg_PDU,
+ { "OriginationAttemptArg", "ain.OriginationAttemptArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ResourceClearArg_PDU,
+ { "ResourceClearArg", "ain.ResourceClearArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_resourceClear_PDU,
+ { "RES-resourceClear", "ain.RES_resourceClear_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_SuccessOutcomeArg_PDU,
+ { "SuccessOutcomeArg", "ain.SuccessOutcomeArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TAnswerArg_PDU,
+ { "TAnswerArg", "ain.TAnswerArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TBusyArg_PDU,
+ { "TBusyArg", "ain.TBusyArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TDisconnectArg_PDU,
+ { "TDisconnectArg", "ain.TDisconnectArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TDTMFEnteredArg_PDU,
+ { "TDTMFEnteredArg", "ain.TDTMFEnteredArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TMidCallArg_PDU,
+ { "TMidCallArg", "ain.TMidCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TNoAnswerArg_PDU,
+ { "TNoAnswerArg", "ain.TNoAnswerArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TerminationAttemptArg_PDU,
+ { "TerminationAttemptArg", "ain.TerminationAttemptArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TermResourceAvailableArg_PDU,
+ { "TermResourceAvailableArg", "ain.TermResourceAvailableArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TimeoutArg_PDU,
+ { "TimeoutArg", "ain.TimeoutArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_AnalyzeRouteArg_PDU,
+ { "AnalyzeRouteArg", "ain.AnalyzeRouteArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_AuthorizeTerminationArg_PDU,
+ { "AuthorizeTerminationArg", "ain.AuthorizeTerminationArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CancelResourceEventArg_PDU,
+ { "CancelResourceEventArg", "ain.CancelResourceEventArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CollectInformationArg_PDU,
+ { "CollectInformationArg", "ain.CollectInformationArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ConnectToResourceArg_PDU,
+ { "ConnectToResourceArg", "ain.ConnectToResourceArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ContinueArg_PDU,
+ { "ContinueArg", "ain.ContinueArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CreateCallArg_PDU,
+ { "CreateCallArg", "ain.CreateCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CreateCallRes_PDU,
+ { "CreateCallRes", "ain.CreateCallRes_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_DisconnectArg_PDU,
+ { "DisconnectArg", "ain.DisconnectArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_DisconnectLegArg_PDU,
+ { "DisconnectLegArg", "ain.DisconnectLegArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ForwardCallArg_PDU,
+ { "ForwardCallArg", "ain.ForwardCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_MergeCallArg_PDU,
+ { "MergeCallArg", "ain.MergeCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_MoveLegArg_PDU,
+ { "MoveLegArg", "ain.MoveLegArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OfferCallArg_PDU,
+ { "OfferCallArg", "ain.OfferCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_OriginateCallArg_PDU,
+ { "OriginateCallArg", "ain.OriginateCallArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ReconnectArg_PDU,
+ { "ReconnectArg", "ain.ReconnectArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_SendToResourceArg_PDU,
+ { "SendToResourceArg", "ain.SendToResourceArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_sendToResource_PDU,
+ { "RES-sendToResource", "ain.RES_sendToResource_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_SetTimerArg_PDU,
+ { "SetTimerArg", "ain.SetTimerArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TimerUpdated_PDU,
+ { "TimerUpdated", "ain.TimerUpdated",
+ FT_UINT32, BASE_DEC, VALS(ain_TimerUpdated_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_SplitLegArg_PDU,
+ { "SplitLegArg", "ain.SplitLegArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_AcgArg_PDU,
+ { "AcgArg", "ain.AcgArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_AcgGlobalCtrlRestoreArg_PDU,
+ { "AcgGlobalCtrlRestoreArg", "ain.AcgGlobalCtrlRestoreArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_acgGlobalCtrlRestore_PDU,
+ { "RES-acgGlobalCtrlRestore", "ain.RES_acgGlobalCtrlRestore_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_AcgOverflowArg_PDU,
+ { "AcgOverflowArg", "ain.AcgOverflowArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ActivityTestArg_PDU,
+ { "ActivityTestArg", "ain.ActivityTestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_activityTest_PDU,
+ { "RES-activityTest", "ain.RES_activityTest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_CallTypeRequestArg_PDU,
+ { "CallTypeRequestArg", "ain.CallTypeRequestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_callTypeRequest_PDU,
+ { "RES-callTypeRequest", "ain.RES_callTypeRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ControlRequestArg_PDU,
+ { "ControlRequestArg", "ain.ControlRequestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_EchoRequestArg_PDU,
+ { "EchoRequestArg", "ain.EchoRequestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_echoRequest_PDU,
+ { "RES-echoRequest", "ain.RES_echoRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_FurnishAMAInformationArg_PDU,
+ { "FurnishAMAInformationArg", "ain.FurnishAMAInformationArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_MonitorForChangeArg_PDU,
+ { "MonitorForChangeArg", "ain.MonitorForChangeArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_MonitorSuccessArg_PDU,
+ { "MonitorSuccessArg", "ain.MonitorSuccessArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_NCADataArg_PDU,
+ { "NCADataArg", "ain.NCADataArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_NCARequestArg_PDU,
+ { "NCARequestArg", "ain.NCARequestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_nCARequest_PDU,
+ { "RES-nCARequest", "ain.RES_nCARequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_QueryRequestArg_PDU,
+ { "QueryRequestArg", "ain.QueryRequestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_queryRequest_PDU,
+ { "RES-queryRequest", "ain.RES_queryRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RequestReportBCMEventArg_PDU,
+ { "RequestReportBCMEventArg", "ain.RequestReportBCMEventArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_StatusReportedArg_PDU,
+ { "StatusReportedArg", "ain.StatusReportedArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_TerminationNotificationArg_PDU,
+ { "TerminationNotificationArg", "ain.TerminationNotificationArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_UpdateArg_PDU,
+ { "UpdateArg", "ain.UpdateArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_update_PDU,
+ { "RES-update", "ain.RES_update_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_UpdateRequestArg_PDU,
+ { "UpdateRequestArg", "ain.UpdateRequestArg_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_RES_updateRequest_PDU,
+ { "RES-updateRequest", "ain.RES_updateRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_PAR_applicationError_PDU,
+ { "PAR-applicationError", "ain.PAR_applicationError_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_PAR_failureReport_PDU,
+ { "PAR-failureReport", "ain.PAR_failureReport_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_iPReturnBlock,
+ { "iPReturnBlock", "ain.iPReturnBlock",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_amp1,
+ { "amp1", "ain.amp1",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_amp2,
+ { "amp2", "ain.amp2_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_extensionParameter,
+ { "extensionParameter", "ain.extensionParameter_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_userID,
+ { "userID", "ain.userID",
+ FT_UINT32, BASE_DEC, VALS(ain_UserID_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_bearerCapability,
+ { "bearerCapability", "ain.bearerCapability",
+ FT_UINT32, BASE_DEC, VALS(ain_BearerCapability_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_closeCause,
+ { "closeCause", "ain.closeCause",
+ FT_UINT32, BASE_DEC, VALS(ain_CloseCause_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_clearCause,
+ { "clearCause", "ain.clearCause",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_legID,
+ { "legID", "ain.legID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ccID,
+ { "ccID", "ain.ccID",
+ FT_UINT32, BASE_DEC, VALS(ain_CcID_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_bCMType,
+ { "bCMType", "ain.bCMType",
+ FT_UINT32, BASE_DEC, VALS(ain_BCMType_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_pointInCall,
+ { "pointInCall", "ain.pointInCall",
+ FT_UINT32, BASE_DEC, VALS(ain_PointInCall_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_collectedDigits,
+ { "collectedDigits", "ain.collectedDigits",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_collectedAddressInfo,
+ { "collectedAddressInfo", "ain.collectedAddressInfo",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_carrier,
+ { "carrier", "ain.carrier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_failureCause,
+ { "failureCause", "ain.failureCause",
+ FT_UINT32, BASE_DEC, VALS(ain_FailureCause_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_aMAMeasurement,
+ { "aMAMeasurement", "ain.aMAMeasurement_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_clearCauseData,
+ { "clearCauseData", "ain.clearCauseData",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_notificationIndicator,
+ { "notificationIndicator", "ain.notificationIndicator",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_calledPartyID,
+ { "calledPartyID", "ain.calledPartyID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_lata,
+ { "lata", "ain.lata",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_triggerCriteriaType,
+ { "triggerCriteriaType", "ain.triggerCriteriaType",
+ FT_UINT32, BASE_DEC, VALS(ain_TriggerCriteriaType_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_chargeNumber,
+ { "chargeNumber", "ain.chargeNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_callingPartyID,
+ { "callingPartyID", "ain.callingPartyID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_callingPartyBGID,
+ { "callingPartyBGID", "ain.callingPartyBGID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_chargePartyStationType,
+ { "chargePartyStationType", "ain.chargePartyStationType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_accessCode,
+ { "accessCode", "ain.accessCode",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_verticalServiceCode,
+ { "verticalServiceCode", "ain.verticalServiceCode",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_tcm,
+ { "tcm", "ain.tcm",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_originalCalledPartyID,
+ { "originalCalledPartyID", "ain.originalCalledPartyID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_redirectingPartyID,
+ { "redirectingPartyID", "ain.redirectingPartyID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_redirectionInformation,
+ { "redirectionInformation", "ain.redirectionInformation",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aCGEncountered,
+ { "aCGEncountered", "ain.aCGEncountered",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_sap,
+ { "sap", "ain.sap",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_sTRConnection,
+ { "sTRConnection", "ain.sTRConnection",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMASequenceNumber,
+ { "aMASequenceNumber", "ain.aMASequenceNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_genericAddressList,
+ { "genericAddressList", "ain.genericAddressList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_networkSpecificFacilities,
+ { "networkSpecificFacilities", "ain.networkSpecificFacilities",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_cTRConnection,
+ { "cTRConnection", "ain.cTRConnection",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_jurisdictionInformation,
+ { "jurisdictionInformation", "ain.jurisdictionInformation",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_prefix,
+ { "prefix", "ain.prefix",
+ FT_UINT32, BASE_DEC, VALS(ain_Prefix_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_callingGeodeticLocation,
+ { "callingGeodeticLocation", "ain.callingGeodeticLocation",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_triggerInformation,
+ { "triggerInformation", "ain.triggerInformation",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_disconnectCause,
+ { "disconnectCause", "ain.disconnectCause",
+ FT_UINT32, BASE_DEC, VALS(ain_DisconnectCause_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_featureActivatorID,
+ { "featureActivatorID", "ain.featureActivatorID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_busyCause,
+ { "busyCause", "ain.busyCause",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_busyType,
+ { "busyType", "ain.busyType",
+ FT_UINT32, BASE_DEC, VALS(ain_BusyType_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_calledPartyStationType,
+ { "calledPartyStationType", "ain.calledPartyStationType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_genericName,
+ { "genericName", "ain.genericName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_dTMFDigitsDetected,
+ { "dTMFDigitsDetected", "ain.dTMFDigitsDetected",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_rTPServiceIndicator,
+ { "rTPServiceIndicator", "ain.rTPServiceIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_outpulseNumber,
+ { "outpulseNumber", "ain.outpulseNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_primaryTrunkGroup,
+ { "primaryTrunkGroup", "ain.primaryTrunkGroup",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_alternateTrunkGroup,
+ { "alternateTrunkGroup", "ain.alternateTrunkGroup",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_secondAlternateTrunkGroup,
+ { "secondAlternateTrunkGroup", "ain.secondAlternateTrunkGroup",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_alternateCarrier,
+ { "alternateCarrier", "ain.alternateCarrier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_secondAlternateCarrier,
+ { "secondAlternateCarrier", "ain.secondAlternateCarrier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_passiveLegTreatment,
+ { "passiveLegTreatment", "ain.passiveLegTreatment",
+ FT_UINT32, BASE_DEC, VALS(ain_PassiveLegTreatment_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_primaryBillingIndicator,
+ { "primaryBillingIndicator", "ain.primaryBillingIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_alternateBillingIndicator,
+ { "alternateBillingIndicator", "ain.alternateBillingIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_secondAlternateBillingIndicator,
+ { "secondAlternateBillingIndicator", "ain.secondAlternateBillingIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_overflowBillingIndicator,
+ { "overflowBillingIndicator", "ain.overflowBillingIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMAAlternateBillingNumber,
+ { "aMAAlternateBillingNumber", "ain.aMAAlternateBillingNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMABusinessCustomerID,
+ { "aMABusinessCustomerID", "ain.aMABusinessCustomerID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMALineNumberList,
+ { "aMALineNumberList", "ain.aMALineNumberList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_SIZE_1_2_OF_AMALineNumber", HFILL }},
+ { &hf_ain_aMALineNumberList_item,
+ { "AMALineNumber", "ain.AMALineNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMAslpID,
+ { "aMAslpID", "ain.aMAslpID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMADigitsDialedWCList,
+ { "aMADigitsDialedWCList", "ain.aMADigitsDialedWCList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC", HFILL }},
+ { &hf_ain_aMADigitsDialedWCList_item,
+ { "AMADigitsDialedWC", "ain.AMADigitsDialedWC",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_serviceProviderID,
+ { "serviceProviderID", "ain.serviceProviderID",
+ FT_UINT32, BASE_DEC, VALS(ain_ServiceProviderID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_serviceContext,
+ { "serviceContext", "ain.serviceContext",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMABillingFeature,
+ { "aMABillingFeature", "ain.aMABillingFeature",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_carrierUsage,
+ { "carrierUsage", "ain.carrierUsage",
+ FT_UINT32, BASE_DEC, VALS(ain_CarrierUsage_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_forwardCallIndicator,
+ { "forwardCallIndicator", "ain.forwardCallIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMAServiceProviderID,
+ { "aMAServiceProviderID", "ain.aMAServiceProviderID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_genericDigitsList,
+ { "genericDigitsList", "ain.genericDigitsList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_applyRestrictions,
+ { "applyRestrictions", "ain.applyRestrictions",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_displayText,
+ { "displayText", "ain.displayText",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_controllingLegTreatment,
+ { "controllingLegTreatment", "ain.controllingLegTreatment",
+ FT_UINT32, BASE_DEC, VALS(ain_ControllingLegTreatment_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_aMAserviceProviderID,
+ { "aMAserviceProviderID", "ain.aMAserviceProviderID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_dPConverter,
+ { "dPConverter", "ain.dPConverter",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_alternateDialingPlanInd,
+ { "alternateDialingPlanInd", "ain.alternateDialingPlanInd",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_resourceType,
+ { "resourceType", "ain.resourceType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_strParameterBlock,
+ { "strParameterBlock", "ain.strParameterBlock",
+ FT_UINT32, BASE_DEC, VALS(ain_StrParameterBlock_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_disconnectFlag,
+ { "disconnectFlag", "ain.disconnectFlag_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_destinationAddress,
+ { "destinationAddress", "ain.destinationAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMAMeasure,
+ { "aMAMeasure", "ain.aMAMeasure",
+ FT_UINT32, BASE_DEC, VALS(ain_AMAMeasure_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_notificationDuration,
+ { "notificationDuration", "ain.notificationDuration",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_wakeUpDuration,
+ { "wakeUpDuration", "ain.wakeUpDuration",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_oSIIndicator,
+ { "oSIIndicator", "ain.oSIIndicator",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_rTPReroutingNumber,
+ { "rTPReroutingNumber", "ain.rTPReroutingNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_csID,
+ { "csID", "ain.csID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_lampTreatment,
+ { "lampTreatment", "ain.lampTreatment",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_secondAlternatecarrier,
+ { "secondAlternatecarrier", "ain.secondAlternatecarrier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_answerIndicator,
+ { "answerIndicator", "ain.answerIndicator_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_extendedRinging,
+ { "extendedRinging", "ain.extendedRinging_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_tSTRCTimer,
+ { "tSTRCTimer", "ain.tSTRCTimer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_partyID,
+ { "partyID", "ain.partyID",
+ FT_UINT32, BASE_DEC, VALS(ain_PartyID_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_partyOnHold,
+ { "partyOnHold", "ain.partyOnHold_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_sSPResponseMessageTimerT1,
+ { "sSPResponseMessageTimerT1", "ain.sSPResponseMessageTimerT1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_controlCauseIndicator,
+ { "controlCauseIndicator", "ain.controlCauseIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_gapDuration,
+ { "gapDuration", "ain.gapDuration",
+ FT_UINT32, BASE_DEC, VALS(ain_GapDuration_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_gapInterval,
+ { "gapInterval", "ain.gapInterval",
+ FT_UINT32, BASE_DEC, VALS(ain_GapInterval_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_translationType,
+ { "translationType", "ain.translationType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_globalTitleAddress,
+ { "globalTitleAddress", "ain.globalTitleAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aCGGlobalOverride,
+ { "aCGGlobalOverride", "ain.aCGGlobalOverride",
+ FT_UINT32, BASE_DEC, VALS(ain_ACGGlobalOverride_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_actResult,
+ { "actResult", "ain.actResult",
+ FT_UINT32, BASE_DEC, VALS(ain_ActResult_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_transID,
+ { "transID", "ain.transID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_callType,
+ { "callType", "ain.callType",
+ FT_UINT32, BASE_DEC, VALS(ain_CallType_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_congestionLevel,
+ { "congestionLevel", "ain.congestionLevel",
+ FT_UINT32, BASE_DEC, VALS(ain_CongestionLevel_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_ssignalingPointCode,
+ { "ssignalingPointCode", "ain.ssignalingPointCode",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "SignalingPointCode", HFILL }},
+ { &hf_ain_subsystemNumber,
+ { "subsystemNumber", "ain.subsystemNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_applicationIndicator,
+ { "applicationIndicator", "ain.applicationIndicator",
+ FT_UINT32, BASE_DEC, VALS(ain_ApplicationIndicator_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_aaMABAFModules,
+ { "aaMABAFModules", "ain.aaMABAFModules",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "AMABAFModules", HFILL }},
+ { &hf_ain_aMASetHexABIndicator,
+ { "aMASetHexABIndicator", "ain.aMASetHexABIndicator",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_facilityStatus,
+ { "facilityStatus", "ain.facilityStatus",
+ FT_UINT32, BASE_DEC, VALS(ain_FacilityStatus_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_monitorTime,
+ { "monitorTime", "ain.monitorTime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_facilityGID,
+ { "facilityGID", "ain.facilityGID",
+ FT_UINT32, BASE_DEC, VALS(ain_FacilityGID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_facilityMemberID,
+ { "facilityMemberID", "ain.facilityMemberID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_controlEncountered,
+ { "controlEncountered", "ain.controlEncountered",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_id,
+ { "id", "ain.id",
+ FT_UINT32, BASE_DEC, VALS(ain_T_id_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_srhrGroupID,
+ { "srhrGroupID", "ain.srhrGroupID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_envelopeEncodingAuthority,
+ { "envelopeEncodingAuthority", "ain.envelopeEncodingAuthority",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_envelopContent,
+ { "envelopContent", "ain.envelopContent",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_securityEnvelope,
+ { "securityEnvelope", "ain.securityEnvelope",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_infoProvided,
+ { "infoProvided", "ain.infoProvided_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_provideInfo,
+ { "provideInfo", "ain.provideInfo_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_eDPRequest,
+ { "eDPRequest", "ain.eDPRequest",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_eDPNotification,
+ { "eDPNotification", "ain.eDPNotification",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_oNoAnswerTimer,
+ { "oNoAnswerTimer", "ain.oNoAnswerTimer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_tNoAnswerTimer,
+ { "tNoAnswerTimer", "ain.tNoAnswerTimer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_timeoutTimer,
+ { "timeoutTimer", "ain.timeoutTimer",
+ FT_UINT32, BASE_DEC, VALS(ain_TimeoutTimer_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_oDTMFDigitsString,
+ { "oDTMFDigitsString", "ain.oDTMFDigitsString",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_oDTMFNumberOfDigits,
+ { "oDTMFNumberOfDigits", "ain.oDTMFNumberOfDigits",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_tDTMFDigitString,
+ { "tDTMFDigitString", "ain.tDTMFDigitString",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_tDTMFNumberOfDigits,
+ { "tDTMFNumberOfDigits", "ain.tDTMFNumberOfDigits",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_statusCause,
+ { "statusCause", "ain.statusCause",
+ FT_UINT32, BASE_DEC, VALS(ain_StatusCause_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_echoData,
+ { "echoData", "ain.echoData",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_terminationIndicator,
+ { "terminationIndicator", "ain.terminationIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_connectTime,
+ { "connectTime", "ain.connectTime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_resultCause,
+ { "resultCause", "ain.resultCause",
+ FT_UINT32, BASE_DEC, VALS(ain_ResultCause_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_administrableObject,
+ { "administrableObject", "ain.administrableObject",
+ FT_UINT32, BASE_DEC, VALS(ain_AdministrableObject_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_editListType,
+ { "editListType", "ain.editListType",
+ FT_UINT32, BASE_DEC, VALS(ain_EditListType_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_triggerCriteriaFlag,
+ { "triggerCriteriaFlag", "ain.triggerCriteriaFlag",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_applicationErrorString,
+ { "applicationErrorString", "ain.applicationErrorString_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_failureCauseData,
+ { "failureCauseData", "ain.failureCauseData",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_triggerItemAssignment,
+ { "triggerItemAssignment", "ain.triggerItemAssignment_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_sSPUserResource,
+ { "sSPUserResource", "ain.sSPUserResource_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_srhrGroup,
+ { "srhrGroup", "ain.srhrGroup_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_networkTestDesignator,
+ { "networkTestDesignator", "ain.networkTestDesignator_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_operationsMonitoringAssignment,
+ { "operationsMonitoringAssignment", "ain.operationsMonitoringAssignment_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_sSPUserResourceID,
+ { "sSPUserResourceID", "ain.sSPUserResourceID",
+ FT_UINT32, BASE_DEC, VALS(ain_SSPUserResourceID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_triggerItemID,
+ { "triggerItemID", "ain.triggerItemID_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_activationStateCode,
+ { "activationStateCode", "ain.activationStateCode",
+ FT_UINT32, BASE_DEC, VALS(ain_ActivationStateCode_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_potentialUse,
+ { "potentialUse", "ain.potentialUse",
+ FT_UINT32, BASE_DEC, VALS(ain_PotentialUse_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_sSPUserResourceSubID,
+ { "sSPUserResourceSubID", "ain.sSPUserResourceSubID",
+ FT_UINT32, BASE_DEC, VALS(ain_SSPUserResourceSubID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_dn,
+ { "dn", "ain.dn",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_dnCtID,
+ { "dnCtID", "ain.dnCtID_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_spid,
+ { "spid", "ain.spid",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_trunkGroupID,
+ { "trunkGroupID", "ain.trunkGroupID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_localSSPID,
+ { "localSSPID", "ain.localSSPID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_publicDialingPlanID,
+ { "publicDialingPlanID", "ain.publicDialingPlanID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_pRIOfficeEquipmentID,
+ { "pRIOfficeEquipmentID", "ain.pRIOfficeEquipmentID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_basicBusinessGroupID,
+ { "basicBusinessGroupID", "ain.basicBusinessGroupID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_basicBusinessGroupDialingPlanID,
+ { "basicBusinessGroupDialingPlanID", "ain.basicBusinessGroupDialingPlanID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aFRPatternID,
+ { "aFRPatternID", "ain.aFRPatternID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_officeEquipmentID,
+ { "officeEquipmentID", "ain.officeEquipmentID",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ct,
+ { "ct", "ain.ct",
+ FT_UINT32, BASE_DEC, VALS(ain_Ct_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_dPNumber,
+ { "dPNumber", "ain.dPNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_triggerItemSubnumber,
+ { "triggerItemSubnumber", "ain.triggerItemSubnumber",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_iSDNBChannelID,
+ { "iSDNBChannelID", "ain.iSDNBChannelID_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_pRIDS1ID,
+ { "pRIDS1ID", "ain.pRIDS1ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_pRIDS0ID,
+ { "pRIDS0ID", "ain.pRIDS0ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroups,
+ { "updateGroups", "ain.updateGroups",
+ FT_UINT32, BASE_DEC, VALS(ain_UpdateGroups_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_cancelInterdigitTimer,
+ { "cancelInterdigitTimer", "ain.cancelInterdigitTimer",
+ FT_UINT32, BASE_DEC, VALS(ain_ActivationStateCode_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup1,
+ { "updateGroup1", "ain.updateGroup1_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup2,
+ { "updateGroup2", "ain.updateGroup2_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup3,
+ { "updateGroup3", "ain.updateGroup3_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup4,
+ { "updateGroup4", "ain.updateGroup4_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup5,
+ { "updateGroup5", "ain.updateGroup5_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup6,
+ { "updateGroup6", "ain.updateGroup6_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup7,
+ { "updateGroup7", "ain.updateGroup7_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup8,
+ { "updateGroup8", "ain.updateGroup8_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_updateGroup9,
+ { "updateGroup9", "ain.updateGroup9_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_service1,
+ { "service1", "ain.service1",
+ FT_UINT32, BASE_DEC, VALS(ain_Service1_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action1,
+ { "action1", "ain.action1",
+ FT_UINT32, BASE_DEC, VALS(ain_Action1_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_service2,
+ { "service2", "ain.service2",
+ FT_UINT32, BASE_DEC, VALS(ain_Service2_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action2,
+ { "action2", "ain.action2",
+ FT_UINT32, BASE_DEC, VALS(ain_Action2_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_delayInterval,
+ { "delayInterval", "ain.delayInterval",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_service3,
+ { "service3", "ain.service3",
+ FT_UINT32, BASE_DEC, VALS(ain_Service3_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action3,
+ { "action3", "ain.action3",
+ FT_UINT32, BASE_DEC, VALS(ain_Action3_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_editSpecificEntry,
+ { "editSpecificEntry", "ain.editSpecificEntry_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_editAllEntries,
+ { "editAllEntries", "ain.editAllEntries",
+ FT_UINT32, BASE_DEC, VALS(ain_EditAllEntries_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_entry,
+ { "entry", "ain.entry",
+ FT_UINT32, BASE_DEC, VALS(ain_Entry_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_speedCallingCode,
+ { "speedCallingCode", "ain.speedCallingCode",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_memorySlot,
+ { "memorySlot", "ain.memorySlot",
+ FT_UINT32, BASE_DEC, VALS(ain_MemorySlot1_vals), 0,
+ "MemorySlot1", HFILL }},
+ { &hf_ain_service4,
+ { "service4", "ain.service4",
+ FT_UINT32, BASE_DEC, VALS(ain_Service4_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action4,
+ { "action4", "ain.action4",
+ FT_UINT32, BASE_DEC, VALS(ain_Action4_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_forwardingDn,
+ { "forwardingDn", "ain.forwardingDn",
+ FT_UINT32, BASE_DEC, VALS(ain_ForwardingDn_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_set,
+ { "set", "ain.set",
+ FT_UINT32, BASE_DEC, VALS(ain_Set_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_clear,
+ { "clear", "ain.clear",
+ FT_UINT32, BASE_DEC, VALS(ain_Clear_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_service5,
+ { "service5", "ain.service5",
+ FT_UINT32, BASE_DEC, VALS(ain_Service5_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action5,
+ { "action5", "ain.action5",
+ FT_UINT32, BASE_DEC, VALS(ain_Action5_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_service6,
+ { "service6", "ain.service6",
+ FT_UINT32, BASE_DEC, VALS(ain_Service6_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action6,
+ { "action6", "ain.action6",
+ FT_UINT32, BASE_DEC, VALS(ain_Action6_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_service7,
+ { "service7", "ain.service7",
+ FT_UINT32, BASE_DEC, VALS(ain_Service7_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action7,
+ { "action7", "ain.action7",
+ FT_UINT32, BASE_DEC, VALS(ain_Action7_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_toggle,
+ { "toggle", "ain.toggle",
+ FT_UINT32, BASE_DEC, VALS(ain_Toggle_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_service8,
+ { "service8", "ain.service8",
+ FT_UINT32, BASE_DEC, VALS(ain_Service8_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action8,
+ { "action8", "ain.action8",
+ FT_UINT32, BASE_DEC, VALS(ain_Action8_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action8_invoke,
+ { "invoke", "ain.action8.invoke",
+ FT_UINT32, BASE_DEC, VALS(ain_Invoke8_vals), 0,
+ "Invoke8", HFILL }},
+ { &hf_ain_service9,
+ { "service9", "ain.service9",
+ FT_UINT32, BASE_DEC, VALS(ain_Service9_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_action9,
+ { "action9", "ain.action9",
+ FT_UINT32, BASE_DEC, VALS(ain_Action9_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_changeList,
+ { "changeList", "ain.changeList_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_srhrID,
+ { "srhrID", "ain.srhrID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ntdID,
+ { "ntdID", "ain.ntdID",
+ FT_UINT32, BASE_DEC, VALS(ain_NtdID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_ntdIndirectID,
+ { "ntdIndirectID", "ain.ntdIndirectID",
+ FT_UINT32, BASE_DEC, VALS(ain_SSPUserResourceID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_operationsMonitoredItemID,
+ { "operationsMonitoredItemID", "ain.operationsMonitoredItemID",
+ FT_UINT32, BASE_DEC, VALS(ain_OperationsMonitoredItemID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_aMATimeDuration,
+ { "aMATimeDuration", "ain.aMATimeDuration",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMATimeGuard,
+ { "aMATimeGuard", "ain.aMATimeGuard",
+ FT_UINT32, BASE_DEC, VALS(ain_AMATimeGuard_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_ampAINNodeID,
+ { "ampAINNodeID", "ain.ampAINNodeID",
+ FT_UINT32, BASE_DEC, VALS(ain_AmpAINNodeID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_ampCLogSeqNo,
+ { "ampCLogSeqNo", "ain.ampCLogSeqNo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ampCLogRepInd,
+ { "ampCLogRepInd", "ain.ampCLogRepInd",
+ FT_UINT32, BASE_DEC, VALS(ain_AmpCLogRepInd_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_ampCallProgInd,
+ { "ampCallProgInd", "ain.ampCallProgInd",
+ FT_UINT32, BASE_DEC, VALS(ain_AmpCallProgInd_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_ampTestReqInd,
+ { "ampTestReqInd", "ain.ampTestReqInd",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ampCLogName,
+ { "ampCLogName", "ain.ampCLogName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ampSvcProvID,
+ { "ampSvcProvID", "ain.ampSvcProvID",
+ FT_UINT32, BASE_DEC, VALS(ain_AmpSvcProvID_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_spcID,
+ { "spcID", "ain.spcID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_iSDNDeviceID,
+ { "iSDNDeviceID", "ain.iSDNDeviceID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_ocn,
+ { "ocn", "ain.ocn",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_errorCause,
+ { "errorCause", "ain.errorCause",
+ FT_UINT32, BASE_DEC, VALS(ain_ErrorCause_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_failedMessage,
+ { "failedMessage", "ain.failedMessage_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain__untag_item,
+ { "DisplayInformation", "ain.DisplayInformation",
+ FT_UINT32, BASE_DEC, VALS(ain_DisplayInformation_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_blank,
+ { "blank", "ain.blank",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_skip,
+ { "skip", "ain.skip",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_continuation,
+ { "continuation", "ain.continuation",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_calledAddress,
+ { "calledAddress", "ain.calledAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_cause,
+ { "cause", "ain.cause",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_progressIndicator,
+ { "progressIndicator", "ain.progressIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_displayInformation_notificationIndicator,
+ { "notificationIndicator", "ain.displayInformation.notificationIndicator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_prompt,
+ { "prompt", "ain.prompt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_accumulatedDigits,
+ { "accumulatedDigits", "ain.accumulatedDigits",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_status,
+ { "status", "ain.status",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_inband,
+ { "inband", "ain.inband",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_callingAddress,
+ { "callingAddress", "ain.callingAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_reason,
+ { "reason", "ain.reason",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_callingPartyName,
+ { "callingPartyName", "ain.callingPartyName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_calledPartyName,
+ { "calledPartyName", "ain.calledPartyName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_originalCalledName,
+ { "originalCalledName", "ain.originalCalledName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_redirectingName,
+ { "redirectingName", "ain.redirectingName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_connectedName,
+ { "connectedName", "ain.connectedName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_origRestrictions,
+ { "origRestrictions", "ain.origRestrictions",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_dateTimeOfDay,
+ { "dateTimeOfDay", "ain.dateTimeOfDay",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_callAppearanceID,
+ { "callAppearanceID", "ain.callAppearanceID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_featureAddress,
+ { "featureAddress", "ain.featureAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_redirectionName,
+ { "redirectionName", "ain.redirectionName",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_redirectionNumber,
+ { "redirectionNumber", "ain.redirectionNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_redirectingNumber,
+ { "redirectingNumber", "ain.redirectingNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_originalCalledNumber,
+ { "originalCalledNumber", "ain.originalCalledNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_connectedNumber,
+ { "connectedNumber", "ain.connectedNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_text,
+ { "text", "ain.text",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_redirectingReason,
+ { "redirectingReason", "ain.redirectingReason",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_20", HFILL }},
+ { &hf_ain_assignmentAuthority,
+ { "assignmentAuthority", "ain.assignmentAuthority",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_parameters,
+ { "parameters", "ain.parameters_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_mlhg,
+ { "mlhg", "ain.mlhg",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_opCode,
+ { "opCode", "ain.opCode",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_ain_parameter,
+ { "parameter", "ain.parameter",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING", HFILL }},
+ { &hf_ain_invParms,
+ { "invParms", "ain.invParms",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_InvParms_item,
+ { "Parms", "ain.Parms",
+ FT_UINT32, BASE_DEC, VALS(ain_Parms_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_oDTMFNumberofDigits,
+ { "oDTMFNumberofDigits", "ain.oDTMFNumberofDigits",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_timerUpdated,
+ { "timerUpdated", "ain.timerUpdated",
+ FT_UINT32, BASE_DEC, VALS(ain_TimerUpdated_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_derviceProviderID,
+ { "derviceProviderID", "ain.derviceProviderID",
+ FT_UINT32, BASE_DEC, VALS(ain_ServiceProviderID_vals), 0,
+ "ServiceProviderID", HFILL }},
+ { &hf_ain_aMABAFModules,
+ { "aMABAFModules", "ain.aMABAFModules",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMALineNumber,
+ { "aMALineNumber", "ain.aMALineNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aMADigitsDialedWC,
+ { "aMADigitsDialedWC", "ain.aMADigitsDialedWC",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_genericAddress,
+ { "genericAddress", "ain.genericAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_signalingPointCode,
+ { "signalingPointCode", "ain.signalingPointCode",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_nationalGapInterval,
+ { "nationalGapInterval", "ain.nationalGapInterval",
+ FT_UINT32, BASE_DEC, VALS(ain_NationalGapInterval_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_privateGapInterval,
+ { "privateGapInterval", "ain.privateGapInterval",
+ FT_UINT32, BASE_DEC, VALS(ain_PrivateGapInterval_U_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain__untag_item_01,
+ { "GenericAddress", "ain.GenericAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain__untag_item_02,
+ { "GenericDigits", "ain.GenericDigits",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_entireList,
+ { "entireList", "ain.entireList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_memorySlot_01,
+ { "memorySlot", "ain.memorySlot_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_listSize,
+ { "listSize", "ain.listSize",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_forwardToDn,
+ { "forwardToDn", "ain.forwardToDn",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_empty,
+ { "empty", "ain.empty",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_EntireList_item,
+ { "Entry2", "ain.Entry2",
+ FT_UINT32, BASE_DEC, VALS(ain_Entry2_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_privateDn,
+ { "privateDn", "ain.privateDn",
+ FT_UINT32, BASE_DEC, VALS(ain_PrivateDn_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_incoming,
+ { "incoming", "ain.incoming_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_outgoing,
+ { "outgoing", "ain.outgoing_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aINDigits,
+ { "aINDigits", "ain.aINDigits",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_timestamp,
+ { "timestamp", "ain.timestamp",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroups,
+ { "requestGroups", "ain.requestGroups",
+ FT_UINT32, BASE_DEC, VALS(ain_RequestGroups_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_requestMemorySlot,
+ { "requestMemorySlot", "ain.requestMemorySlot",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroup1,
+ { "requestGroup1", "ain.requestGroup1_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroup2,
+ { "requestGroup2", "ain.requestGroup2_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroup3,
+ { "requestGroup3", "ain.requestGroup3_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroup4,
+ { "requestGroup4", "ain.requestGroup4_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroup5,
+ { "requestGroup5", "ain.requestGroup5_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_requestGroup6,
+ { "requestGroup6", "ain.requestGroup6_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_request1,
+ { "request1", "ain.request1",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_request2,
+ { "request2", "ain.request2",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_request3,
+ { "request3", "ain.request3",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_request4,
+ { "request4", "ain.request4",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_request5,
+ { "request5", "ain.request5",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_request6,
+ { "request6", "ain.request6",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_msrID,
+ { "msrID", "ain.msrID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_announcementBlock,
+ { "announcementBlock", "ain.announcementBlock_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_announcementDigitBlock,
+ { "announcementDigitBlock", "ain.announcementDigitBlock_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_flexParameterBlock,
+ { "flexParameterBlock", "ain.flexParameterBlock",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_uninterAnnounceBlock,
+ { "uninterAnnounceBlock", "ain.uninterAnnounceBlock",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_interAnnounceBlock,
+ { "interAnnounceBlock", "ain.interAnnounceBlock",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_UninterAnnounceBlock_item,
+ { "AnnounceElement", "ain.AnnounceElement",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_InterAnnounceBlock_item,
+ { "AnnounceElement", "ain.AnnounceElement",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_maximumDigits,
+ { "maximumDigits", "ain.maximumDigits",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_intervalTime,
+ { "intervalTime", "ain.intervalTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_localSSPTime,
+ { "localSSPTime", "ain.localSSPTime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_absoluteSCPTime,
+ { "absoluteSCPTime", "ain.absoluteSCPTime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_bri,
+ { "bri", "ain.bri_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_privateFacilityGID,
+ { "privateFacilityGID", "ain.privateFacilityGID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_aDSIcpeID,
+ { "aDSIcpeID", "ain.aDSIcpeID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_local,
+ { "local", "ain.local",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_global,
+ { "global", "ain.global",
+ FT_OID, BASE_NONE, NULL, 0,
+ "OBJECT_IDENTIFIER", HFILL }},
+ { &hf_ain_invoke,
+ { "invoke", "ain.invoke_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_returnResult,
+ { "returnResult", "ain.returnResult_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_returnError,
+ { "returnError", "ain.returnError_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_reject,
+ { "reject", "ain.reject_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_invokeId,
+ { "invokeId", "ain.invokeId",
+ FT_UINT32, BASE_DEC, VALS(ain_InvokeId_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_linkedId,
+ { "linkedId", "ain.linkedId",
+ FT_UINT32, BASE_DEC, VALS(ain_T_linkedId_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_present,
+ { "present", "ain.present",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_absent,
+ { "absent", "ain.absent_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_opcode,
+ { "opcode", "ain.opcode",
+ FT_UINT32, BASE_DEC, VALS(ain_Code_vals), 0,
+ "Code", HFILL }},
+ { &hf_ain_argument,
+ { "argument", "ain.argument_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_result,
+ { "result", "ain.result_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_result_01,
+ { "result", "ain.result_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "T_result_01", HFILL }},
+ { &hf_ain_errcode,
+ { "errcode", "ain.errcode",
+ FT_UINT32, BASE_DEC, VALS(ain_Code_vals), 0,
+ "Code", HFILL }},
+ { &hf_ain_parameter_01,
+ { "parameter", "ain.parameter_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_ain_problem,
+ { "problem", "ain.problem",
+ FT_UINT32, BASE_DEC, VALS(ain_T_problem_vals), 0,
+ NULL, HFILL }},
+ { &hf_ain_general,
+ { "general", "ain.general",
+ FT_INT32, BASE_DEC, VALS(ain_GeneralProblem_vals), 0,
+ "GeneralProblem", HFILL }},
+ { &hf_ain_invokeproblem,
+ { "invoke", "ain.invokeproblem",
+ FT_INT32, BASE_DEC, VALS(ain_InvokeProblem_vals), 0,
+ "InvokeProblem", HFILL }},
+ { &hf_ain_returnResult_01,
+ { "returnResult", "ain.returnResult",
+ FT_INT32, BASE_DEC, VALS(ain_ReturnResultProblem_vals), 0,
+ "ReturnResultProblem", HFILL }},
+ { &hf_ain_returnError_01,
+ { "returnError", "ain.returnError",
+ FT_INT32, BASE_DEC, VALS(ain_ReturnErrorProblem_vals), 0,
+ "ReturnErrorProblem", HFILL }},
+ { &hf_ain_present_01,
+ { "present", "ain.present",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_ain_InvokeId_present,
+ { "InvokeId.present", "ain.InvokeId_present",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "InvokeId_present", HFILL }},
+ { &hf_ain_ApplyRestrictions_U_code,
+ { "code", "ain.ApplyRestrictions.U.code",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_ApplyRestrictions_U_toll,
+ { "toll", "ain.ApplyRestrictions.U.toll",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oCalledPartyBusy,
+ { "oCalledPartyBusy", "ain.EDPNotification.U.oCalledPartyBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oNoAnswer,
+ { "oNoAnswer", "ain.EDPNotification.U.oNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oTermSeized,
+ { "oTermSeized", "ain.EDPNotification.U.oTermSeized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oAnswer,
+ { "oAnswer", "ain.EDPNotification.U.oAnswer",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tBusy,
+ { "tBusy", "ain.EDPNotification.U.tBusy",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tNoAnswer,
+ { "tNoAnswer", "ain.EDPNotification.U.tNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_termResourceAvailable,
+ { "termResourceAvailable", "ain.EDPNotification.U.termResourceAvailable",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tAnswer,
+ { "tAnswer", "ain.EDPNotification.U.tAnswer",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_networkBusy,
+ { "networkBusy", "ain.EDPNotification.U.networkBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oSuspended,
+ { "oSuspended", "ain.EDPNotification.U.oSuspended",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oDisconnectCalled,
+ { "oDisconnectCalled", "ain.EDPNotification.U.oDisconnectCalled",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oDisconnect,
+ { "oDisconnect", "ain.EDPNotification.U.oDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oAbandon,
+ { "oAbandon", "ain.EDPNotification.U.oAbandon",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_featureActivator,
+ { "featureActivator", "ain.EDPNotification.U.featureActivator",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_switchHookFlash,
+ { "switchHookFlash", "ain.EDPNotification.U.switchHookFlash",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_success,
+ { "success", "ain.EDPNotification.U.success",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tDisconnect,
+ { "tDisconnect", "ain.EDPNotification.U.tDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_timeout,
+ { "timeout", "ain.EDPNotification.U.timeout",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_originationAttempt,
+ { "originationAttempt", "ain.EDPNotification.U.originationAttempt",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oDTMFEntered,
+ { "oDTMFEntered", "ain.EDPNotification.U.oDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tDTMFEntered,
+ { "tDTMFEntered", "ain.EDPNotification.U.tDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oCalledPartyBusy,
+ { "oCalledPartyBusy", "ain.EDPRequest.U.oCalledPartyBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oNoAnswer,
+ { "oNoAnswer", "ain.EDPRequest.U.oNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oTermSeized,
+ { "oTermSeized", "ain.EDPRequest.U.oTermSeized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oAnswer,
+ { "oAnswer", "ain.EDPRequest.U.oAnswer",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tBusy,
+ { "tBusy", "ain.EDPRequest.U.tBusy",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tNoAnswer,
+ { "tNoAnswer", "ain.EDPRequest.U.tNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_termResourceAvailable,
+ { "termResourceAvailable", "ain.EDPRequest.U.termResourceAvailable",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tAnswer,
+ { "tAnswer", "ain.EDPRequest.U.tAnswer",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_networkBusy,
+ { "networkBusy", "ain.EDPRequest.U.networkBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oSuspended,
+ { "oSuspended", "ain.EDPRequest.U.oSuspended",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oDisconnectCalled,
+ { "oDisconnectCalled", "ain.EDPRequest.U.oDisconnectCalled",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oDisconnect,
+ { "oDisconnect", "ain.EDPRequest.U.oDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oAbandon,
+ { "oAbandon", "ain.EDPRequest.U.oAbandon",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_featureActivator,
+ { "featureActivator", "ain.EDPRequest.U.featureActivator",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_switchHookFlash,
+ { "switchHookFlash", "ain.EDPRequest.U.switchHookFlash",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_success,
+ { "success", "ain.EDPRequest.U.success",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tDisconnect,
+ { "tDisconnect", "ain.EDPRequest.U.tDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_timeout,
+ { "timeout", "ain.EDPRequest.U.timeout",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_originationAttempt,
+ { "originationAttempt", "ain.EDPRequest.U.originationAttempt",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oDTMFEntered,
+ { "oDTMFEntered", "ain.EDPRequest.U.oDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tDTMFEntered,
+ { "tDTMFEntered", "ain.EDPRequest.U.tDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_Empty_entireList,
+ { "entireList", "ain.Empty.entireList",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Empty_outgoingmemorySlot,
+ { "outgoingmemorySlot", "ain.Empty.outgoingmemorySlot",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Empty_incomingmemorySlot,
+ { "incomingmemorySlot", "ain.Empty.incomingmemorySlot",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_Empty_forwardToDn,
+ { "forwardToDn", "ain.Empty.forwardToDn",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_Request1_activationStatus,
+ { "activationStatus", "ain.Request1.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request2_activationStatus,
+ { "activationStatus", "ain.Request2.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request2_delayInterval,
+ { "delayInterval", "ain.Request2.delayInterval",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request3_activationStatus,
+ { "activationStatus", "ain.Request3.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request3_entireList,
+ { "entireList", "ain.Request3.entireList",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request3_listSize,
+ { "listSize", "ain.Request3.listSize",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_Request4_activationStatus,
+ { "activationStatus", "ain.Request4.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request4_forwardingDn,
+ { "forwardingDn", "ain.Request4.forwardingDn",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request5_activationStatus,
+ { "activationStatus", "ain.Request5.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request5_forwardingDn,
+ { "forwardingDn", "ain.Request5.forwardingDn",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request5_entireList,
+ { "entireList", "ain.Request5.entireList",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_Request5_listSize,
+ { "listSize", "ain.Request5.listSize",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_Request6_delayInterval,
+ { "delayInterval", "ain.Request6.delayInterval",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_RequestMemorySlot_incoming,
+ { "incoming", "ain.RequestMemorySlot.incoming",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_RequestMemorySlot_outgoing,
+ { "outgoing", "ain.RequestMemorySlot.outgoing",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ain,
+ &ett_ain_digits,
+ &ett_ain_carrierformat,
+ &ett_ain_amaslpid,
+ &ett_ain_CallInfoFromResourceArg,
+ &ett_ain_CloseArg,
+ &ett_ain_CTRClearArg,
+ &ett_ain_FailureOutcomeArg,
+ &ett_ain_InfoAnalyzedArg,
+ &ett_ain_InfoCollectedArg,
+ &ett_ain_NetworkBusyArg,
+ &ett_ain_OAnswerArg,
+ &ett_ain_OAbandonArg,
+ &ett_ain_ODisconnectArg,
+ &ett_ain_OMidCallArg,
+ &ett_ain_ONoAnswerArg,
+ &ett_ain_OSuspendedArg,
+ &ett_ain_OTermSeizedArg,
+ &ett_ain_OriginationAttemptArg,
+ &ett_ain_RES_resourceClear,
+ &ett_ain_ResourceClearArg,
+ &ett_ain_SuccessOutcomeArg,
+ &ett_ain_TAnswerArg,
+ &ett_ain_TBusyArg,
+ &ett_ain_TDisconnectArg,
+ &ett_ain_TDTMFEnteredArg,
+ &ett_ain_TMidCallArg,
+ &ett_ain_TNoAnswerArg,
+ &ett_ain_TerminationAttemptArg,
+ &ett_ain_TermResourceAvailableArg,
+ &ett_ain_TimeoutArg,
+ &ett_ain_AnalyzeRouteArg,
+ &ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber,
+ &ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC,
+ &ett_ain_AuthorizeTerminationArg,
+ &ett_ain_CancelResourceEventArg,
+ &ett_ain_CollectInformationArg,
+ &ett_ain_ConnectToResourceArg,
+ &ett_ain_ContinueArg,
+ &ett_ain_CreateCallArg,
+ &ett_ain_CreateCallRes,
+ &ett_ain_DisconnectArg,
+ &ett_ain_DisconnectLegArg,
+ &ett_ain_ForwardCallArg,
+ &ett_ain_MergeCallArg,
+ &ett_ain_MoveLegArg,
+ &ett_ain_OfferCallArg,
+ &ett_ain_OriginateCallArg,
+ &ett_ain_ReconnectArg,
+ &ett_ain_RES_sendToResource,
+ &ett_ain_SendToResourceArg,
+ &ett_ain_SetTimerArg,
+ &ett_ain_SplitLegArg,
+ &ett_ain_AcgArg,
+ &ett_ain_RES_acgGlobalCtrlRestore,
+ &ett_ain_AcgGlobalCtrlRestoreArg,
+ &ett_ain_AcgOverflowArg,
+ &ett_ain_RES_activityTest,
+ &ett_ain_ActivityTestArg,
+ &ett_ain_RES_callTypeRequest,
+ &ett_ain_CallTypeRequestArg,
+ &ett_ain_ControlRequestArg,
+ &ett_ain_RES_echoRequest,
+ &ett_ain_EchoRequestArg,
+ &ett_ain_FurnishAMAInformationArg,
+ &ett_ain_MonitorForChangeArg,
+ &ett_ain_MonitorSuccessArg,
+ &ett_ain_NCADataArg,
+ &ett_ain_T_id,
+ &ett_ain_RES_nCARequest,
+ &ett_ain_NCARequestArg,
+ &ett_ain_RES_queryRequest,
+ &ett_ain_QueryRequestArg,
+ &ett_ain_RequestReportBCMEventArg,
+ &ett_ain_StatusReportedArg,
+ &ett_ain_TerminationNotificationArg,
+ &ett_ain_RES_update,
+ &ett_ain_UpdateArg,
+ &ett_ain_RES_updateRequest,
+ &ett_ain_UpdateRequestArg,
+ &ett_ain_PAR_applicationError,
+ &ett_ain_PAR_failureReport,
+ &ett_ain_AdministrableObject,
+ &ett_ain_TriggerItemAssignment_U,
+ &ett_ain_SSPUserResourceID,
+ &ett_ain_DnCtID,
+ &ett_ain_TriggerItemID,
+ &ett_ain_SSPUserResourceSubID,
+ &ett_ain_ISDNBChannelID,
+ &ett_ain_SSPUserResource_U,
+ &ett_ain_UpdateGroups,
+ &ett_ain_UpdateGroup1,
+ &ett_ain_Action1,
+ &ett_ain_UpdateGroup2,
+ &ett_ain_Action2,
+ &ett_ain_UpdateGroup3,
+ &ett_ain_Action3,
+ &ett_ain_EditSpecificEntry,
+ &ett_ain_Entry,
+ &ett_ain_UpdateGroup4,
+ &ett_ain_Action4,
+ &ett_ain_ForwardingDn,
+ &ett_ain_Set,
+ &ett_ain_UpdateGroup5,
+ &ett_ain_Action5,
+ &ett_ain_UpdateGroup6,
+ &ett_ain_Action6,
+ &ett_ain_UpdateGroup7,
+ &ett_ain_Action7,
+ &ett_ain_UpdateGroup8,
+ &ett_ain_Action8,
+ &ett_ain_UpdateGroup9,
+ &ett_ain_Action9,
+ &ett_ain_ChangeList,
+ &ett_ain_SrhrGroup_U,
+ &ett_ain_NetworkTestDesignator_U,
+ &ett_ain_NtdID,
+ &ett_ain_OperationsMonitoringAssignment_U,
+ &ett_ain_OperationsMonitoredItemID,
+ &ett_ain_AMAMeasurement_U,
+ &ett_ain_Amp2_U,
+ &ett_ain_AmpAINNodeID,
+ &ett_ain_AmpSvcProvID,
+ &ett_ain_ApplicationErrorString_U,
+ &ett_ain_ApplyRestrictions_U,
+ &ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation,
+ &ett_ain_DisplayInformation,
+ &ett_ain_EDPNotification_U,
+ &ett_ain_EDPRequest_U,
+ &ett_ain_ExtensionParameter,
+ &ett_ain_FacilityGID,
+ &ett_ain_FailedMessage_U,
+ &ett_ain_InvParms,
+ &ett_ain_Parms,
+ &ett_ain_GapInterval,
+ &ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress,
+ &ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits,
+ &ett_ain_InfoProvided_U,
+ &ett_ain_EntireList,
+ &ett_ain_Entry2,
+ &ett_ain_MemorySlot,
+ &ett_ain_Incoming,
+ &ett_ain_Outgoing,
+ &ett_ain_Empty,
+ &ett_ain_ProvideInfo_U,
+ &ett_ain_RequestGroups,
+ &ett_ain_RequestGroup1,
+ &ett_ain_Request1,
+ &ett_ain_RequestGroup2,
+ &ett_ain_Request2,
+ &ett_ain_RequestGroup3,
+ &ett_ain_Request3,
+ &ett_ain_RequestGroup4,
+ &ett_ain_Request4,
+ &ett_ain_RequestGroup5,
+ &ett_ain_Request5,
+ &ett_ain_RequestGroup6,
+ &ett_ain_Request6,
+ &ett_ain_RequestMemorySlot,
+ &ett_ain_ServiceProviderID,
+ &ett_ain_StrParameterBlock_U,
+ &ett_ain_AnnouncementBlock,
+ &ett_ain_UninterAnnounceBlock,
+ &ett_ain_InterAnnounceBlock,
+ &ett_ain_AnnouncementDigitBlock,
+ &ett_ain_TimeoutTimer_U,
+ &ett_ain_UserID_U,
+ &ett_ain_T_bri,
+ &ett_ain_Code,
+ &ett_ain_ROS,
+ &ett_ain_Invoke,
+ &ett_ain_T_linkedId,
+ &ett_ain_ReturnResult,
+ &ett_ain_T_result,
+ &ett_ain_ReturnError,
+ &ett_ain_Reject,
+ &ett_ain_T_problem,
+ &ett_ain_InvokeId,
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_ain_unknown_invokeData,{ "ain.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL } },
+ { &ei_ain_unknown_returnResultData,{ "ain.unknown.returnResultData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL } },
+ { &ei_ain_unknown_returnErrorData,{ "ain.unknown.returnErrorData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL } },
+ };
+
+ expert_module_t* expert_ain;
+
+ /* Register protocol */
+ proto_ain = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ ain_handle = register_dissector("ain", dissect_ain, proto_ain);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_ain, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_ain = expert_register_protocol(proto_ain);
+ expert_register_field_array(expert_ain, ei, array_length(ei));
+
+}
+
+/*
+* Editor modelines
+*
+* Local Variables:
+* c-basic-offset: 2
+* tab-width: 8
+* indent-tabs-mode: nil
+* End:
+*
+* ex: set shiftwidth=2 tabstop=8 expandtab:
+* :indentSize=2:tabSize=8:noTabs=true:
+*/
+
+
+
+