wireshark/epan/dissectors/packet-ain.c

11516 lines
505 KiB
C

/* 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;
static dissector_handle_t ain_handle;
/* include constants */
#define noInvokeId NULL
static int hf_ain_ext_type_oid;
static int hf_ain_odd_even_indicator;
static int hf_ain_nature_of_address;
static int hf_ain_numbering_plan;
static int hf_ain_bcd_digits;
static int hf_ain_carrier_selection;
static int hf_ain_nature_of_carrier;
static int hf_ain_nr_digits;
static int hf_ain_carrier_bcd_digits;
static int hf_ain_amaslpid;
static int hf_ain_CallInfoFromResourceArg_PDU; /* CallInfoFromResourceArg */
static int hf_ain_CloseArg_PDU; /* CloseArg */
static int hf_ain_CTRClearArg_PDU; /* CTRClearArg */
static int hf_ain_FailureOutcomeArg_PDU; /* FailureOutcomeArg */
static int hf_ain_InfoAnalyzedArg_PDU; /* InfoAnalyzedArg */
static int hf_ain_InfoCollectedArg_PDU; /* InfoCollectedArg */
static int hf_ain_NetworkBusyArg_PDU; /* NetworkBusyArg */
static int hf_ain_OAnswerArg_PDU; /* OAnswerArg */
static int hf_ain_OAbandonArg_PDU; /* OAbandonArg */
static int hf_ain_ODisconnectArg_PDU; /* ODisconnectArg */
static int hf_ain_OMidCallArg_PDU; /* OMidCallArg */
static int hf_ain_ONoAnswerArg_PDU; /* ONoAnswerArg */
static int hf_ain_OSuspendedArg_PDU; /* OSuspendedArg */
static int hf_ain_OTermSeizedArg_PDU; /* OTermSeizedArg */
static int hf_ain_OriginationAttemptArg_PDU; /* OriginationAttemptArg */
static int hf_ain_ResourceClearArg_PDU; /* ResourceClearArg */
static int hf_ain_RES_resourceClear_PDU; /* RES_resourceClear */
static int hf_ain_SuccessOutcomeArg_PDU; /* SuccessOutcomeArg */
static int hf_ain_TAnswerArg_PDU; /* TAnswerArg */
static int hf_ain_TBusyArg_PDU; /* TBusyArg */
static int hf_ain_TDisconnectArg_PDU; /* TDisconnectArg */
static int hf_ain_TDTMFEnteredArg_PDU; /* TDTMFEnteredArg */
static int hf_ain_TMidCallArg_PDU; /* TMidCallArg */
static int hf_ain_TNoAnswerArg_PDU; /* TNoAnswerArg */
static int hf_ain_TerminationAttemptArg_PDU; /* TerminationAttemptArg */
static int hf_ain_TermResourceAvailableArg_PDU; /* TermResourceAvailableArg */
static int hf_ain_TimeoutArg_PDU; /* TimeoutArg */
static int hf_ain_AnalyzeRouteArg_PDU; /* AnalyzeRouteArg */
static int hf_ain_AuthorizeTerminationArg_PDU; /* AuthorizeTerminationArg */
static int hf_ain_CancelResourceEventArg_PDU; /* CancelResourceEventArg */
static int hf_ain_CollectInformationArg_PDU; /* CollectInformationArg */
static int hf_ain_ConnectToResourceArg_PDU; /* ConnectToResourceArg */
static int hf_ain_ContinueArg_PDU; /* ContinueArg */
static int hf_ain_CreateCallArg_PDU; /* CreateCallArg */
static int hf_ain_CreateCallRes_PDU; /* CreateCallRes */
static int hf_ain_DisconnectArg_PDU; /* DisconnectArg */
static int hf_ain_DisconnectLegArg_PDU; /* DisconnectLegArg */
static int hf_ain_ForwardCallArg_PDU; /* ForwardCallArg */
static int hf_ain_MergeCallArg_PDU; /* MergeCallArg */
static int hf_ain_MoveLegArg_PDU; /* MoveLegArg */
static int hf_ain_OfferCallArg_PDU; /* OfferCallArg */
static int hf_ain_OriginateCallArg_PDU; /* OriginateCallArg */
static int hf_ain_ReconnectArg_PDU; /* ReconnectArg */
static int hf_ain_SendToResourceArg_PDU; /* SendToResourceArg */
static int hf_ain_RES_sendToResource_PDU; /* RES_sendToResource */
static int hf_ain_SetTimerArg_PDU; /* SetTimerArg */
static int hf_ain_TimerUpdated_PDU; /* TimerUpdated */
static int hf_ain_SplitLegArg_PDU; /* SplitLegArg */
static int hf_ain_AcgArg_PDU; /* AcgArg */
static int hf_ain_AcgGlobalCtrlRestoreArg_PDU; /* AcgGlobalCtrlRestoreArg */
static int hf_ain_RES_acgGlobalCtrlRestore_PDU; /* RES_acgGlobalCtrlRestore */
static int hf_ain_AcgOverflowArg_PDU; /* AcgOverflowArg */
static int hf_ain_ActivityTestArg_PDU; /* ActivityTestArg */
static int hf_ain_RES_activityTest_PDU; /* RES_activityTest */
static int hf_ain_CallTypeRequestArg_PDU; /* CallTypeRequestArg */
static int hf_ain_RES_callTypeRequest_PDU; /* RES_callTypeRequest */
static int hf_ain_ControlRequestArg_PDU; /* ControlRequestArg */
static int hf_ain_EchoRequestArg_PDU; /* EchoRequestArg */
static int hf_ain_RES_echoRequest_PDU; /* RES_echoRequest */
static int hf_ain_FurnishAMAInformationArg_PDU; /* FurnishAMAInformationArg */
static int hf_ain_MonitorForChangeArg_PDU; /* MonitorForChangeArg */
static int hf_ain_MonitorSuccessArg_PDU; /* MonitorSuccessArg */
static int hf_ain_NCADataArg_PDU; /* NCADataArg */
static int hf_ain_NCARequestArg_PDU; /* NCARequestArg */
static int hf_ain_RES_nCARequest_PDU; /* RES_nCARequest */
static int hf_ain_QueryRequestArg_PDU; /* QueryRequestArg */
static int hf_ain_RES_queryRequest_PDU; /* RES_queryRequest */
static int hf_ain_RequestReportBCMEventArg_PDU; /* RequestReportBCMEventArg */
static int hf_ain_StatusReportedArg_PDU; /* StatusReportedArg */
static int hf_ain_TerminationNotificationArg_PDU; /* TerminationNotificationArg */
static int hf_ain_UpdateArg_PDU; /* UpdateArg */
static int hf_ain_RES_update_PDU; /* RES_update */
static int hf_ain_UpdateRequestArg_PDU; /* UpdateRequestArg */
static int hf_ain_RES_updateRequest_PDU; /* RES_updateRequest */
static int hf_ain_PAR_applicationError_PDU; /* PAR_applicationError */
static int hf_ain_PAR_failureReport_PDU; /* PAR_failureReport */
static int hf_ain_iPReturnBlock; /* IPReturnBlock */
static int hf_ain_amp1; /* Amp1 */
static int hf_ain_amp2; /* Amp2 */
static int hf_ain_extensionParameter; /* ExtensionParameter */
static int hf_ain_userID; /* UserID */
static int hf_ain_bearerCapability; /* BearerCapability */
static int hf_ain_closeCause; /* CloseCause */
static int hf_ain_clearCause; /* ClearCause */
static int hf_ain_legID; /* LegID */
static int hf_ain_ccID; /* CcID */
static int hf_ain_bCMType; /* BCMType */
static int hf_ain_pointInCall; /* PointInCall */
static int hf_ain_collectedDigits; /* CollectedDigits */
static int hf_ain_collectedAddressInfo; /* CollectedAddressInfo */
static int hf_ain_carrier; /* Carrier */
static int hf_ain_failureCause; /* FailureCause */
static int hf_ain_aMAMeasurement; /* AMAMeasurement */
static int hf_ain_clearCauseData; /* ClearCauseData */
static int hf_ain_notificationIndicator; /* NotificationIndicator */
static int hf_ain_calledPartyID; /* CalledPartyID */
static int hf_ain_lata; /* Lata */
static int hf_ain_triggerCriteriaType; /* TriggerCriteriaType */
static int hf_ain_chargeNumber; /* ChargeNumber */
static int hf_ain_callingPartyID; /* CallingPartyID */
static int hf_ain_callingPartyBGID; /* CallingPartyBGID */
static int hf_ain_chargePartyStationType; /* ChargePartyStationType */
static int hf_ain_accessCode; /* AccessCode */
static int hf_ain_verticalServiceCode; /* VerticalServiceCode */
static int hf_ain_tcm; /* Tcm */
static int hf_ain_originalCalledPartyID; /* OriginalCalledPartyID */
static int hf_ain_redirectingPartyID; /* RedirectingPartyID */
static int hf_ain_redirectionInformation; /* RedirectionInformation */
static int hf_ain_aCGEncountered; /* ACGEncountered */
static int hf_ain_sap; /* Sap */
static int hf_ain_sTRConnection; /* STRConnection */
static int hf_ain_aMASequenceNumber; /* AMASequenceNumber */
static int hf_ain_genericAddressList; /* GenericAddressList */
static int hf_ain_networkSpecificFacilities; /* NetworkSpecificFacilities */
static int hf_ain_cTRConnection; /* CTRConnection */
static int hf_ain_jurisdictionInformation; /* JurisdictionInformation */
static int hf_ain_prefix; /* Prefix */
static int hf_ain_callingGeodeticLocation; /* CallingGeodeticLocation */
static int hf_ain_triggerInformation; /* TriggerInformation */
static int hf_ain_disconnectCause; /* DisconnectCause */
static int hf_ain_featureActivatorID; /* FeatureActivatorID */
static int hf_ain_busyCause; /* BusyCause */
static int hf_ain_busyType; /* BusyType */
static int hf_ain_calledPartyStationType; /* CalledPartyStationType */
static int hf_ain_genericName; /* GenericName */
static int hf_ain_dTMFDigitsDetected; /* DTMFDigitsDetected */
static int hf_ain_rTPServiceIndicator; /* RTPServiceIndicator */
static int hf_ain_outpulseNumber; /* OutpulseNumber */
static int hf_ain_primaryTrunkGroup; /* PrimaryTrunkGroup */
static int hf_ain_alternateTrunkGroup; /* AlternateTrunkGroup */
static int hf_ain_secondAlternateTrunkGroup; /* SecondAlternateTrunkGroup */
static int hf_ain_alternateCarrier; /* AlternateCarrier */
static int hf_ain_secondAlternateCarrier; /* SecondAlternateCarrier */
static int hf_ain_passiveLegTreatment; /* PassiveLegTreatment */
static int hf_ain_primaryBillingIndicator; /* PrimaryBillingIndicator */
static int hf_ain_alternateBillingIndicator; /* AlternateBillingIndicator */
static int hf_ain_secondAlternateBillingIndicator; /* SecondAlternateBillingIndicator */
static int hf_ain_overflowBillingIndicator; /* OverflowBillingIndicator */
static int hf_ain_aMAAlternateBillingNumber; /* AMAAlternateBillingNumber */
static int hf_ain_aMABusinessCustomerID; /* AMABusinessCustomerID */
static int hf_ain_aMALineNumberList; /* SEQUENCE_SIZE_1_2_OF_AMALineNumber */
static int hf_ain_aMALineNumberList_item; /* AMALineNumber */
static int hf_ain_aMAslpID; /* AMAslpID */
static int hf_ain_aMADigitsDialedWCList; /* SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC */
static int hf_ain_aMADigitsDialedWCList_item; /* AMADigitsDialedWC */
static int hf_ain_serviceProviderID; /* ServiceProviderID */
static int hf_ain_serviceContext; /* ServiceContext */
static int hf_ain_aMABillingFeature; /* AMABillingFeature */
static int hf_ain_carrierUsage; /* CarrierUsage */
static int hf_ain_forwardCallIndicator; /* ForwardCallIndicator */
static int hf_ain_aMAServiceProviderID; /* AMAServiceProviderID */
static int hf_ain_genericDigitsList; /* GenericDigitsList */
static int hf_ain_applyRestrictions; /* ApplyRestrictions */
static int hf_ain_displayText; /* DisplayText */
static int hf_ain_controllingLegTreatment; /* ControllingLegTreatment */
static int hf_ain_aMAserviceProviderID; /* AMAServiceProviderID */
static int hf_ain_dPConverter; /* DPConverter */
static int hf_ain_alternateDialingPlanInd; /* AlternateDialingPlanInd */
static int hf_ain_resourceType; /* ResourceType */
static int hf_ain_strParameterBlock; /* StrParameterBlock */
static int hf_ain_disconnectFlag; /* DisconnectFlag */
static int hf_ain_destinationAddress; /* DestinationAddress */
static int hf_ain_aMAMeasure; /* AMAMeasure */
static int hf_ain_notificationDuration; /* NotificationDuration */
static int hf_ain_wakeUpDuration; /* WakeUpDuration */
static int hf_ain_oSIIndicator; /* OSIIndicator */
static int hf_ain_rTPReroutingNumber; /* RTPReroutingNumber */
static int hf_ain_csID; /* CsID */
static int hf_ain_lampTreatment; /* LampTreatment */
static int hf_ain_secondAlternatecarrier; /* SecondAlternateCarrier */
static int hf_ain_answerIndicator; /* AnswerIndicator */
static int hf_ain_extendedRinging; /* ExtendedRinging */
static int hf_ain_tSTRCTimer; /* TSTRCTimer */
static int hf_ain_partyID; /* PartyID */
static int hf_ain_partyOnHold; /* PartyOnHold */
static int hf_ain_sSPResponseMessageTimerT1; /* SSPResponseMessageTimerT1 */
static int hf_ain_controlCauseIndicator; /* ControlCauseIndicator */
static int hf_ain_gapDuration; /* GapDuration */
static int hf_ain_gapInterval; /* GapInterval */
static int hf_ain_translationType; /* TranslationType */
static int hf_ain_globalTitleAddress; /* GlobalTitleAddress */
static int hf_ain_aCGGlobalOverride; /* ACGGlobalOverride */
static int hf_ain_actResult; /* ActResult */
static int hf_ain_transID; /* TransID */
static int hf_ain_callType; /* CallType */
static int hf_ain_congestionLevel; /* CongestionLevel */
static int hf_ain_ssignalingPointCode; /* SignalingPointCode */
static int hf_ain_subsystemNumber; /* SubsystemNumber */
static int hf_ain_applicationIndicator; /* ApplicationIndicator */
static int hf_ain_aaMABAFModules; /* AMABAFModules */
static int hf_ain_aMASetHexABIndicator; /* AMASetHexABIndicator */
static int hf_ain_facilityStatus; /* FacilityStatus */
static int hf_ain_monitorTime; /* MonitorTime */
static int hf_ain_facilityGID; /* FacilityGID */
static int hf_ain_facilityMemberID; /* FacilityMemberID */
static int hf_ain_controlEncountered; /* ControlEncountered */
static int hf_ain_id; /* T_id */
static int hf_ain_srhrGroupID; /* SrhrGroupID */
static int hf_ain_envelopeEncodingAuthority; /* EnvelopeEncodingAuthority */
static int hf_ain_envelopContent; /* EnvelopContent */
static int hf_ain_securityEnvelope; /* SecurityEnvelope */
static int hf_ain_infoProvided; /* InfoProvided */
static int hf_ain_provideInfo; /* ProvideInfo */
static int hf_ain_eDPRequest; /* EDPRequest */
static int hf_ain_eDPNotification; /* EDPNotification */
static int hf_ain_oNoAnswerTimer; /* ONoAnswerTimer */
static int hf_ain_tNoAnswerTimer; /* TNoAnswerTimer */
static int hf_ain_timeoutTimer; /* TimeoutTimer */
static int hf_ain_oDTMFDigitsString; /* ODTMFDigitsString */
static int hf_ain_oDTMFNumberOfDigits; /* ODTMFNumberOfDigits */
static int hf_ain_tDTMFDigitString; /* TDTMFDigitString */
static int hf_ain_tDTMFNumberOfDigits; /* TDTMFNumberOfDigits */
static int hf_ain_statusCause; /* StatusCause */
static int hf_ain_echoData; /* EchoData */
static int hf_ain_terminationIndicator; /* TerminationIndicator */
static int hf_ain_connectTime; /* ConnectTime */
static int hf_ain_resultCause; /* ResultCause */
static int hf_ain_administrableObject; /* AdministrableObject */
static int hf_ain_editListType; /* EditListType */
static int hf_ain_triggerCriteriaFlag; /* TriggerCriteriaFlag */
static int hf_ain_applicationErrorString; /* ApplicationErrorString */
static int hf_ain_failureCauseData; /* FailureCauseData */
static int hf_ain_triggerItemAssignment; /* TriggerItemAssignment */
static int hf_ain_sSPUserResource; /* SSPUserResource */
static int hf_ain_srhrGroup; /* SrhrGroup */
static int hf_ain_networkTestDesignator; /* NetworkTestDesignator */
static int hf_ain_operationsMonitoringAssignment; /* OperationsMonitoringAssignment */
static int hf_ain_sSPUserResourceID; /* SSPUserResourceID */
static int hf_ain_triggerItemID; /* TriggerItemID */
static int hf_ain_activationStateCode; /* ActivationStateCode */
static int hf_ain_potentialUse; /* PotentialUse */
static int hf_ain_sSPUserResourceSubID; /* SSPUserResourceSubID */
static int hf_ain_dn; /* Dn */
static int hf_ain_dnCtID; /* DnCtID */
static int hf_ain_spid; /* Spid */
static int hf_ain_trunkGroupID; /* TrunkGroupID */
static int hf_ain_localSSPID; /* LocalSSPID */
static int hf_ain_publicDialingPlanID; /* PublicDialingPlanID */
static int hf_ain_pRIOfficeEquipmentID; /* PRIOfficeEquipmentID */
static int hf_ain_basicBusinessGroupID; /* BasicBusinessGroupID */
static int hf_ain_basicBusinessGroupDialingPlanID; /* BasicBusinessGroupDialingPlanID */
static int hf_ain_aFRPatternID; /* AFRPatternID */
static int hf_ain_officeEquipmentID; /* OfficeEquipmentID */
static int hf_ain_ct; /* Ct */
static int hf_ain_dPNumber; /* DPNumber */
static int hf_ain_triggerItemSubnumber; /* TriggerItemSubnumber */
static int hf_ain_iSDNBChannelID; /* ISDNBChannelID */
static int hf_ain_pRIDS1ID; /* PRIDS1ID */
static int hf_ain_pRIDS0ID; /* PRIDS0ID */
static int hf_ain_updateGroups; /* UpdateGroups */
static int hf_ain_cancelInterdigitTimer; /* CancelInterdigitTimer */
static int hf_ain_updateGroup1; /* UpdateGroup1 */
static int hf_ain_updateGroup2; /* UpdateGroup2 */
static int hf_ain_updateGroup3; /* UpdateGroup3 */
static int hf_ain_updateGroup4; /* UpdateGroup4 */
static int hf_ain_updateGroup5; /* UpdateGroup5 */
static int hf_ain_updateGroup6; /* UpdateGroup6 */
static int hf_ain_updateGroup7; /* UpdateGroup7 */
static int hf_ain_updateGroup8; /* UpdateGroup8 */
static int hf_ain_updateGroup9; /* UpdateGroup9 */
static int hf_ain_service1; /* Service1 */
static int hf_ain_action1; /* Action1 */
static int hf_ain_service2; /* Service2 */
static int hf_ain_action2; /* Action2 */
static int hf_ain_delayInterval; /* DelayInterval */
static int hf_ain_service3; /* Service3 */
static int hf_ain_action3; /* Action3 */
static int hf_ain_editSpecificEntry; /* EditSpecificEntry */
static int hf_ain_editAllEntries; /* EditAllEntries */
static int hf_ain_entry; /* Entry */
static int hf_ain_speedCallingCode; /* SpeedCallingCode */
static int hf_ain_memorySlot; /* MemorySlot1 */
static int hf_ain_service4; /* Service4 */
static int hf_ain_action4; /* Action4 */
static int hf_ain_forwardingDn; /* ForwardingDn */
static int hf_ain_set; /* Set */
static int hf_ain_clear; /* Clear */
static int hf_ain_service5; /* Service5 */
static int hf_ain_action5; /* Action5 */
static int hf_ain_service6; /* Service6 */
static int hf_ain_action6; /* Action6 */
static int hf_ain_service7; /* Service7 */
static int hf_ain_action7; /* Action7 */
static int hf_ain_toggle; /* Toggle */
static int hf_ain_service8; /* Service8 */
static int hf_ain_action8; /* Action8 */
static int hf_ain_action8_invoke; /* Invoke8 */
static int hf_ain_service9; /* Service9 */
static int hf_ain_action9; /* Action9 */
static int hf_ain_changeList; /* ChangeList */
static int hf_ain_srhrID; /* SrhrID */
static int hf_ain_ntdID; /* NtdID */
static int hf_ain_ntdIndirectID; /* NtdIndirectID */
static int hf_ain_operationsMonitoredItemID; /* OperationsMonitoredItemID */
static int hf_ain_aMATimeDuration; /* AMATimeDuration */
static int hf_ain_aMATimeGuard; /* AMATimeGuard */
static int hf_ain_ampAINNodeID; /* AmpAINNodeID */
static int hf_ain_ampCLogSeqNo; /* AmpCLogSeqNo */
static int hf_ain_ampCLogRepInd; /* AmpCLogRepInd */
static int hf_ain_ampCallProgInd; /* AmpCallProgInd */
static int hf_ain_ampTestReqInd; /* AmpTestReqInd */
static int hf_ain_ampCLogName; /* AmpCLogName */
static int hf_ain_ampSvcProvID; /* AmpSvcProvID */
static int hf_ain_spcID; /* SpcID */
static int hf_ain_iSDNDeviceID; /* ISDNDeviceID */
static int hf_ain_ocn; /* Ocn */
static int hf_ain_errorCause; /* ErrorCause */
static int hf_ain_failedMessage; /* FailedMessage */
static int hf_ain__untag_item; /* DisplayInformation */
static int hf_ain_blank; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_skip; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_continuation; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_calledAddress; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_cause; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_progressIndicator; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_displayInformation_notificationIndicator; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_prompt; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_accumulatedDigits; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_status; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_inband; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_callingAddress; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_reason; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_callingPartyName; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_calledPartyName; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_originalCalledName; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_redirectingName; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_connectedName; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_origRestrictions; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_dateTimeOfDay; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_callAppearanceID; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_featureAddress; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_redirectionName; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_redirectionNumber; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_redirectingNumber; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_originalCalledNumber; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_connectedNumber; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_text; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_redirectingReason; /* OCTET_STRING_SIZE_1_20 */
static int hf_ain_assignmentAuthority; /* T_assignmentAuthority */
static int hf_ain_parameters; /* T_parameters */
static int hf_ain_mlhg; /* Mlhg */
static int hf_ain_opCode; /* INTEGER */
static int hf_ain_parameter; /* OCTET_STRING */
static int hf_ain_invParms; /* InvParms */
static int hf_ain_InvParms_item; /* Parms */
static int hf_ain_oDTMFNumberofDigits; /* ODTMFNumberOfDigits */
static int hf_ain_timerUpdated; /* TimerUpdated */
static int hf_ain_derviceProviderID; /* ServiceProviderID */
static int hf_ain_aMABAFModules; /* AMABAFModules */
static int hf_ain_aMALineNumber; /* AMALineNumber */
static int hf_ain_aMADigitsDialedWC; /* AMADigitsDialedWC */
static int hf_ain_genericAddress; /* GenericAddress */
static int hf_ain_signalingPointCode; /* SignalingPointCode */
static int hf_ain_nationalGapInterval; /* NationalGapInterval */
static int hf_ain_privateGapInterval; /* PrivateGapInterval */
static int hf_ain__untag_item_01; /* GenericAddress */
static int hf_ain__untag_item_02; /* GenericDigits */
static int hf_ain_entireList; /* EntireList */
static int hf_ain_memorySlot_01; /* MemorySlot */
static int hf_ain_listSize; /* ListSize */
static int hf_ain_forwardToDn; /* ForwardToDn */
static int hf_ain_empty; /* Empty */
static int hf_ain_EntireList_item; /* Entry2 */
static int hf_ain_privateDn; /* PrivateDn */
static int hf_ain_incoming; /* Incoming */
static int hf_ain_outgoing; /* Outgoing */
static int hf_ain_aINDigits; /* AINDigits */
static int hf_ain_timestamp; /* Timestamp */
static int hf_ain_requestGroups; /* RequestGroups */
static int hf_ain_requestMemorySlot; /* RequestMemorySlot */
static int hf_ain_requestGroup1; /* RequestGroup1 */
static int hf_ain_requestGroup2; /* RequestGroup2 */
static int hf_ain_requestGroup3; /* RequestGroup3 */
static int hf_ain_requestGroup4; /* RequestGroup4 */
static int hf_ain_requestGroup5; /* RequestGroup5 */
static int hf_ain_requestGroup6; /* RequestGroup6 */
static int hf_ain_request1; /* Request1 */
static int hf_ain_request2; /* Request2 */
static int hf_ain_request3; /* Request3 */
static int hf_ain_request4; /* Request4 */
static int hf_ain_request5; /* Request5 */
static int hf_ain_request6; /* Request6 */
static int hf_ain_msrID; /* MsrID */
static int hf_ain_announcementBlock; /* AnnouncementBlock */
static int hf_ain_announcementDigitBlock; /* AnnouncementDigitBlock */
static int hf_ain_flexParameterBlock; /* FlexParameterBlock */
static int hf_ain_uninterAnnounceBlock; /* UninterAnnounceBlock */
static int hf_ain_interAnnounceBlock; /* InterAnnounceBlock */
static int hf_ain_UninterAnnounceBlock_item; /* AnnounceElement */
static int hf_ain_InterAnnounceBlock_item; /* AnnounceElement */
static int hf_ain_maximumDigits; /* MaximumDigits */
static int hf_ain_intervalTime; /* IntervalTime */
static int hf_ain_localSSPTime; /* LocalSSPTime */
static int hf_ain_absoluteSCPTime; /* AbsoluteSCPTime */
static int hf_ain_bri; /* T_bri */
static int hf_ain_privateFacilityGID; /* PrivateFacilityGID */
static int hf_ain_aDSIcpeID; /* ADSIcpeID */
static int hf_ain_local; /* T_local */
static int hf_ain_global; /* OBJECT_IDENTIFIER */
static int hf_ain_invoke; /* Invoke */
static int hf_ain_returnResult; /* ReturnResult */
static int hf_ain_returnError; /* ReturnError */
static int hf_ain_reject; /* Reject */
static int hf_ain_invokeId; /* InvokeId */
static int hf_ain_linkedId; /* T_linkedId */
static int hf_ain_present; /* T_present */
static int hf_ain_absent; /* NULL */
static int hf_ain_opcode; /* Code */
static int hf_ain_argument; /* T_argument */
static int hf_ain_result; /* T_result */
static int hf_ain_result_01; /* T_result_01 */
static int hf_ain_errcode; /* Code */
static int hf_ain_parameter_01; /* T_parameter */
static int hf_ain_problem; /* T_problem */
static int hf_ain_general; /* GeneralProblem */
static int hf_ain_invokeproblem; /* InvokeProblem */
static int hf_ain_returnResult_01; /* ReturnResultProblem */
static int hf_ain_returnError_01; /* ReturnErrorProblem */
static int hf_ain_present_01; /* INTEGER */
static int hf_ain_InvokeId_present; /* InvokeId_present */
/* named bits */
static int hf_ain_ApplyRestrictions_U_code;
static int hf_ain_ApplyRestrictions_U_toll;
static int hf_ain_EDPNotification_U_oCalledPartyBusy;
static int hf_ain_EDPNotification_U_oNoAnswer;
static int hf_ain_EDPNotification_U_oTermSeized;
static int hf_ain_EDPNotification_U_oAnswer;
static int hf_ain_EDPNotification_U_tBusy;
static int hf_ain_EDPNotification_U_tNoAnswer;
static int hf_ain_EDPNotification_U_termResourceAvailable;
static int hf_ain_EDPNotification_U_tAnswer;
static int hf_ain_EDPNotification_U_networkBusy;
static int hf_ain_EDPNotification_U_oSuspended;
static int hf_ain_EDPNotification_U_oDisconnectCalled;
static int hf_ain_EDPNotification_U_oDisconnect;
static int hf_ain_EDPNotification_U_oAbandon;
static int hf_ain_EDPNotification_U_featureActivator;
static int hf_ain_EDPNotification_U_switchHookFlash;
static int hf_ain_EDPNotification_U_success;
static int hf_ain_EDPNotification_U_tDisconnect;
static int hf_ain_EDPNotification_U_timeout;
static int hf_ain_EDPNotification_U_originationAttempt;
static int hf_ain_EDPNotification_U_oDTMFEntered;
static int hf_ain_EDPNotification_U_tDTMFEntered;
static int hf_ain_EDPRequest_U_oCalledPartyBusy;
static int hf_ain_EDPRequest_U_oNoAnswer;
static int hf_ain_EDPRequest_U_oTermSeized;
static int hf_ain_EDPRequest_U_oAnswer;
static int hf_ain_EDPRequest_U_tBusy;
static int hf_ain_EDPRequest_U_tNoAnswer;
static int hf_ain_EDPRequest_U_termResourceAvailable;
static int hf_ain_EDPRequest_U_tAnswer;
static int hf_ain_EDPRequest_U_networkBusy;
static int hf_ain_EDPRequest_U_oSuspended;
static int hf_ain_EDPRequest_U_oDisconnectCalled;
static int hf_ain_EDPRequest_U_oDisconnect;
static int hf_ain_EDPRequest_U_oAbandon;
static int hf_ain_EDPRequest_U_featureActivator;
static int hf_ain_EDPRequest_U_switchHookFlash;
static int hf_ain_EDPRequest_U_success;
static int hf_ain_EDPRequest_U_tDisconnect;
static int hf_ain_EDPRequest_U_timeout;
static int hf_ain_EDPRequest_U_originationAttempt;
static int hf_ain_EDPRequest_U_oDTMFEntered;
static int hf_ain_EDPRequest_U_tDTMFEntered;
static int hf_ain_Empty_entireList;
static int hf_ain_Empty_outgoingmemorySlot;
static int hf_ain_Empty_incomingmemorySlot;
static int hf_ain_Empty_forwardToDn;
static int hf_ain_Request1_activationStatus;
static int hf_ain_Request2_activationStatus;
static int hf_ain_Request2_delayInterval;
static int hf_ain_Request3_activationStatus;
static int hf_ain_Request3_entireList;
static int hf_ain_Request3_listSize;
static int hf_ain_Request4_activationStatus;
static int hf_ain_Request4_forwardingDn;
static int hf_ain_Request5_activationStatus;
static int hf_ain_Request5_forwardingDn;
static int hf_ain_Request5_entireList;
static int hf_ain_Request5_listSize;
static int hf_ain_Request6_delayInterval;
static int hf_ain_RequestMemorySlot_incoming;
static int hf_ain_RequestMemorySlot_outgoing;
/* Initialize the subtree pointers */
static int ett_ain;
static int ett_ain_digits;
static int ett_ain_carrierformat;
static int ett_ain_amaslpid;
static gint ett_ain_CallInfoFromResourceArg;
static gint ett_ain_CloseArg;
static gint ett_ain_CTRClearArg;
static gint ett_ain_FailureOutcomeArg;
static gint ett_ain_InfoAnalyzedArg;
static gint ett_ain_InfoCollectedArg;
static gint ett_ain_NetworkBusyArg;
static gint ett_ain_OAnswerArg;
static gint ett_ain_OAbandonArg;
static gint ett_ain_ODisconnectArg;
static gint ett_ain_OMidCallArg;
static gint ett_ain_ONoAnswerArg;
static gint ett_ain_OSuspendedArg;
static gint ett_ain_OTermSeizedArg;
static gint ett_ain_OriginationAttemptArg;
static gint ett_ain_RES_resourceClear;
static gint ett_ain_ResourceClearArg;
static gint ett_ain_SuccessOutcomeArg;
static gint ett_ain_TAnswerArg;
static gint ett_ain_TBusyArg;
static gint ett_ain_TDisconnectArg;
static gint ett_ain_TDTMFEnteredArg;
static gint ett_ain_TMidCallArg;
static gint ett_ain_TNoAnswerArg;
static gint ett_ain_TerminationAttemptArg;
static gint ett_ain_TermResourceAvailableArg;
static gint ett_ain_TimeoutArg;
static gint ett_ain_AnalyzeRouteArg;
static gint ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber;
static gint ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC;
static gint ett_ain_AuthorizeTerminationArg;
static gint ett_ain_CancelResourceEventArg;
static gint ett_ain_CollectInformationArg;
static gint ett_ain_ConnectToResourceArg;
static gint ett_ain_ContinueArg;
static gint ett_ain_CreateCallArg;
static gint ett_ain_CreateCallRes;
static gint ett_ain_DisconnectArg;
static gint ett_ain_DisconnectLegArg;
static gint ett_ain_ForwardCallArg;
static gint ett_ain_MergeCallArg;
static gint ett_ain_MoveLegArg;
static gint ett_ain_OfferCallArg;
static gint ett_ain_OriginateCallArg;
static gint ett_ain_ReconnectArg;
static gint ett_ain_RES_sendToResource;
static gint ett_ain_SendToResourceArg;
static gint ett_ain_SetTimerArg;
static gint ett_ain_SplitLegArg;
static gint ett_ain_AcgArg;
static gint ett_ain_RES_acgGlobalCtrlRestore;
static gint ett_ain_AcgGlobalCtrlRestoreArg;
static gint ett_ain_AcgOverflowArg;
static gint ett_ain_RES_activityTest;
static gint ett_ain_ActivityTestArg;
static gint ett_ain_RES_callTypeRequest;
static gint ett_ain_CallTypeRequestArg;
static gint ett_ain_ControlRequestArg;
static gint ett_ain_RES_echoRequest;
static gint ett_ain_EchoRequestArg;
static gint ett_ain_FurnishAMAInformationArg;
static gint ett_ain_MonitorForChangeArg;
static gint ett_ain_MonitorSuccessArg;
static gint ett_ain_NCADataArg;
static gint ett_ain_T_id;
static gint ett_ain_RES_nCARequest;
static gint ett_ain_NCARequestArg;
static gint ett_ain_RES_queryRequest;
static gint ett_ain_QueryRequestArg;
static gint ett_ain_RequestReportBCMEventArg;
static gint ett_ain_StatusReportedArg;
static gint ett_ain_TerminationNotificationArg;
static gint ett_ain_RES_update;
static gint ett_ain_UpdateArg;
static gint ett_ain_RES_updateRequest;
static gint ett_ain_UpdateRequestArg;
static gint ett_ain_PAR_applicationError;
static gint ett_ain_PAR_failureReport;
static gint ett_ain_AdministrableObject;
static gint ett_ain_TriggerItemAssignment_U;
static gint ett_ain_SSPUserResourceID;
static gint ett_ain_DnCtID;
static gint ett_ain_TriggerItemID;
static gint ett_ain_SSPUserResourceSubID;
static gint ett_ain_ISDNBChannelID;
static gint ett_ain_SSPUserResource_U;
static gint ett_ain_UpdateGroups;
static gint ett_ain_UpdateGroup1;
static gint ett_ain_Action1;
static gint ett_ain_UpdateGroup2;
static gint ett_ain_Action2;
static gint ett_ain_UpdateGroup3;
static gint ett_ain_Action3;
static gint ett_ain_EditSpecificEntry;
static gint ett_ain_Entry;
static gint ett_ain_UpdateGroup4;
static gint ett_ain_Action4;
static gint ett_ain_ForwardingDn;
static gint ett_ain_Set;
static gint ett_ain_UpdateGroup5;
static gint ett_ain_Action5;
static gint ett_ain_UpdateGroup6;
static gint ett_ain_Action6;
static gint ett_ain_UpdateGroup7;
static gint ett_ain_Action7;
static gint ett_ain_UpdateGroup8;
static gint ett_ain_Action8;
static gint ett_ain_UpdateGroup9;
static gint ett_ain_Action9;
static gint ett_ain_ChangeList;
static gint ett_ain_SrhrGroup_U;
static gint ett_ain_NetworkTestDesignator_U;
static gint ett_ain_NtdID;
static gint ett_ain_OperationsMonitoringAssignment_U;
static gint ett_ain_OperationsMonitoredItemID;
static gint ett_ain_AMAMeasurement_U;
static gint ett_ain_Amp2_U;
static gint ett_ain_AmpAINNodeID;
static gint ett_ain_AmpSvcProvID;
static gint ett_ain_ApplicationErrorString_U;
static gint ett_ain_ApplyRestrictions_U;
static gint ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation;
static gint ett_ain_DisplayInformation;
static gint ett_ain_EDPNotification_U;
static gint ett_ain_EDPRequest_U;
static gint ett_ain_ExtensionParameter;
static gint ett_ain_FacilityGID;
static gint ett_ain_FailedMessage_U;
static gint ett_ain_InvParms;
static gint ett_ain_Parms;
static gint ett_ain_GapInterval;
static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress;
static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits;
static gint ett_ain_InfoProvided_U;
static gint ett_ain_EntireList;
static gint ett_ain_Entry2;
static gint ett_ain_MemorySlot;
static gint ett_ain_Incoming;
static gint ett_ain_Outgoing;
static gint ett_ain_Empty;
static gint ett_ain_ProvideInfo_U;
static gint ett_ain_RequestGroups;
static gint ett_ain_RequestGroup1;
static gint ett_ain_Request1;
static gint ett_ain_RequestGroup2;
static gint ett_ain_Request2;
static gint ett_ain_RequestGroup3;
static gint ett_ain_Request3;
static gint ett_ain_RequestGroup4;
static gint ett_ain_Request4;
static gint ett_ain_RequestGroup5;
static gint ett_ain_Request5;
static gint ett_ain_RequestGroup6;
static gint ett_ain_Request6;
static gint ett_ain_RequestMemorySlot;
static gint ett_ain_ServiceProviderID;
static gint ett_ain_StrParameterBlock_U;
static gint ett_ain_AnnouncementBlock;
static gint ett_ain_UninterAnnounceBlock;
static gint ett_ain_InterAnnounceBlock;
static gint ett_ain_AnnouncementDigitBlock;
static gint ett_ain_TimeoutTimer_U;
static gint ett_ain_UserID_U;
static gint ett_ain_T_bri;
static gint ett_ain_Code;
static gint ett_ain_ROS;
static gint ett_ain_Invoke;
static gint ett_ain_T_linkedId;
static gint ett_ain_ReturnResult;
static gint ett_ain_T_result;
static gint ett_ain_ReturnError;
static gint ett_ain_Reject;
static gint ett_ain_T_problem;
static gint ett_ain_InvokeId;
static expert_field ei_ain_unknown_invokeData;
static expert_field ei_ain_unknown_returnResultData;
static expert_field ei_ain_unknown_returnErrorData;
/* 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|ENC_LITTLE_ENDIAN);
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|ENC_LITTLE_ENDIAN);
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|ENC_LITTLE_ENDIAN);
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:
*/