aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders <anders.broman@ericsson.com>2018-09-06 14:53:09 +0200
committerAnders Broman <a.broman58@gmail.com>2018-09-09 21:49:34 +0000
commitc3b1b19d042d16af6e9ee44e0998915b22b766f4 (patch)
treea50427f465e4b5914379a4fbf9b52a106f768280
parent051efd105a8404093139dd4a54620c98c4ff170e (diff)
AIN: Add dissector for Advanced Inteligent Network protocol.
Bug:15108 Change-Id: I3b37209c6dcf1a7edc19d12e19d0ab4beaaba5b4 Reviewed-on: https://code.wireshark.org/review/29450 Petri-Dish: Anders Broman <a.broman58@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/CMakeLists.txt1
-rw-r--r--epan/dissectors/asn1/CMakeLists.txt1
-rw-r--r--epan/dissectors/asn1/ain/AIN-Errors.asn40
-rw-r--r--epan/dissectors/asn1/ain/AIN-Operations.asn2022
-rw-r--r--epan/dissectors/asn1/ain/AIN-Parameters.asn1552
-rw-r--r--epan/dissectors/asn1/ain/CMakeLists.txt39
-rw-r--r--epan/dissectors/asn1/ain/ain.cnf217
-rw-r--r--epan/dissectors/asn1/ain/packet-ain-template.c225
-rw-r--r--epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c41
-rw-r--r--epan/dissectors/packet-ain.c11494
-rw-r--r--epan/dissectors/packet-ansi_tcap.c47
11 files changed, 15640 insertions, 39 deletions
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt
index 2914d000ce..8539c89a9d 100644
--- a/epan/dissectors/CMakeLists.txt
+++ b/epan/dissectors/CMakeLists.txt
@@ -75,6 +75,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-ansi_map.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-acp133.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-acse.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-ain.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ansi_tcap.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-atn-ulcs.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-atn-cm.c
diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt
index f1b0397672..aef1544ff4 100644
--- a/epan/dissectors/asn1/CMakeLists.txt
+++ b/epan/dissectors/asn1/CMakeLists.txt
@@ -13,6 +13,7 @@ set(ASN1_SRC_DIRS
HI2Operations
acp133
acse
+ ain
ansi_map
ansi_tcap
atn-cm
diff --git a/epan/dissectors/asn1/ain/AIN-Errors.asn b/epan/dissectors/asn1/ain/AIN-Errors.asn
new file mode 100644
index 0000000000..f1133c4781
--- /dev/null
+++ b/epan/dissectors/asn1/ain/AIN-Errors.asn
@@ -0,0 +1,40 @@
+ AIN-Errors{ ainErrorsObjectIdentifier }
+ --This module contains the type definitions for the AIN errors.
+ DEFINITIONS ::=
+
+ BEGIN
+
+ IMPORTS
+ ERROR
+ FROM Remote-Operations-Information-Objects {
+ joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ ApplicationErrorString,
+ ExtensionParameter,
+ FailureCause,
+ FailureCauseData
+ FROM AIN-Parameters{ ainParametersObjectIdentifier };
+
+ --ainErrorsObjectIdentifier OBJECT IDENTIFIER:: = ? - -not yet defined
+ -- TYPE DEFINITION FOR AIN ERRORS FOLLOWS
+
+ applicationError ERROR ::= {
+ PARAMETER
+ SEQUENCE{
+ applicationErrorString ApplicationErrorString,
+ extensionParameter ExtensionParameter OPTIONAL
+ }
+ CODE private: 1
+}
+
+ failureReport ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ failureCauseData FailureCauseData OPTIONAL,
+ extensionParameter ExtensionParameter OPTIONAL
+ }
+ CODE private: 2
+}
+
+END
diff --git a/epan/dissectors/asn1/ain/AIN-Operations.asn b/epan/dissectors/asn1/ain/AIN-Operations.asn
new file mode 100644
index 0000000000..6cd7384d77
--- /dev/null
+++ b/epan/dissectors/asn1/ain/AIN-Operations.asn
@@ -0,0 +1,2022 @@
+ AIN-Operations{ ainOperationsObjectIdentifier }
+ --This module contains type definitions for the AIN operations.
+
+ DEFINITIONS ::=
+
+ BEGIN
+
+ IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects {
+ joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+ --error types
+ applicationError,
+ failureReport
+ FROM AIN -- Errors(ainErrorsObjectIdentifier}
+ --parameters
+ AccessCode,
+ ACGEncountered,
+ ACGGlobalOverride,
+ ActResult,
+ AdministrableObject,
+ AlternateBillingIndicator,
+ AlternateCarrier,
+ AlternateDialingPlanInd,
+ AlternateTrunkGroup,
+ AMAAlternateBillingNumber,
+ AMABAFModules,
+ AMABillingFeature,
+ AMABusinessCustomerID,
+ AMADigitsDialedWC,
+ AMALineNumber,
+ AMAMeasure,
+ AMAMeasurement,
+ AMASequenceNumber,
+ AMAServiceProviderID,
+ AMASetHexABIndicator,
+ AMAslpID,
+ Amp1,
+ Amp2,
+ AnswerIndicator,
+ ApplicationErrorString,
+ ApplicationIndicator,
+ ApplyRestrictions,
+ BCMType,
+ BearerCapability,
+ BusyCause,
+ BusyType,
+ CalledPartyID,
+ CalledPartyStationType,
+ CallingGeodeticLocation,
+ CallingPartyBGID,
+ CallingPartyID,
+ CallType,
+ Carrier,
+ CarrierUsage,
+ CcID,
+ ChargeNumber,
+ ChargePartyStationType,
+ ClearCause,
+ ClearCauseData,
+ CloseCause,
+ CollectedAddressInfo,
+ CollectedDigits,
+ CongestionLevel,
+ ConnectTime,
+ ControlCauseIndicator,
+ ControlEncountered,
+ ControllingLegTreatment,
+ CsID,
+ CTRConnection,
+ DestinationAddress,
+ DisconnectCause,
+ DisconnectFlag,
+ DisplayText,
+ DPConverter,
+ DTMFDigitsEntered,
+ EchoData,
+ EditListType,
+ EDPNotification,
+ EDPRequest,
+ EnvelopContent,
+ EnvelopeEncodingAuthority,
+ ErrorCause,
+ ExtendedRinging,
+ ExtensionParameter,
+ FacilityGID,
+ FacilityMemberID,
+ FacilityStatus,
+ FailedMessage,
+ Failure,
+ FailureCause,
+ FailureCauseData,
+ FeatureActivatorID,
+ ForwardCallIndicator,
+ GapDuration,
+ GapInterval,
+ GenericAddress,
+ GenericAddressList,
+ GenericDigits,
+ GenericDigitsList,
+ GenericName,
+ GlobalTitleAddress,
+ InfoProvided,
+ IPReturnBlock,
+ JurisdictionInformation,
+ LampTreatment,
+ Lata,
+ LegID,
+ MonitorTime,
+ NetworkSpecificFacilities,
+ NotificationDuration,
+ NotificationIndicator,
+ ODTMFDigitsString,
+ ODTMFNumberOfDigits,
+ ONoAnswerTimer,
+ OriginalCalledPartyID,
+ OSIIndicator,
+ OutpulseNumber,
+ OverflowBillingIndicator,
+ PartyID,
+ PartyOnHold,
+ PassiveLegTreatment,
+ PointInCall,
+ Prefix,
+ PrimaryBillingIndicator,
+ PrimaryTrunkGroup,
+ ProvideInfo,
+ RedirectingPartyID,
+ RedirectionInformation,
+ ResourceType,
+ ResultCause,
+ RTPReroutingNumber,
+ RTPServiceIndicator,
+ Sap,
+ SecondAlternateBillingIndicator,
+ SecondAlternateCarrier,
+ SecondAlternateTrunkGroup,
+ SecurityEnvelope,
+ ServiceContext,
+ ServiceProviderID,
+ SignalingPointCode,
+ Spid,
+ SrhrGroupID,
+ SSPResponseMessageTimerT1,
+ StatusCause,
+ STRConnection,
+ StrParameterBlock,
+ SubsystemNumber,
+ Tcm,
+ TDTMFDigitString,
+ TDTMFNumberOfDigits,
+ TerminationIndicator,
+ TimeoutTimer,
+ TimerUpdated,
+ TNoAnswerTimer,
+ TransID,
+ TranslationType,
+ TriggerCriteriaFlag,
+ TriggerCriteriaType,
+ TriggerInformation,
+ UpdateGroups,
+ UserID,
+ VerticalServiceCode,
+ WakeUpDuration
+ FROM AIN-Parameters{ ainParametersObjectIdentifier };
+
+-- ainOperationsObjectIdentifier OBJECT IDENTIFIER :: = ? - -not yet defined
+
+ -- TYPE DEFINITIONS FOR AIN OPERATIONS FOLLOWS
+
+ callInfoFromResource OPERATION ::= {
+ ARGUMENT
+ CallInfoFromResourceArg
+ ERRORS{
+ applicationError,
+ failureReport
+ }
+ CODE private: 26116
+ --Family Name is "Caller Interaction"
+ }
+
+CallInfoFromResourceArg ::= SEQUENCE {
+ iPReturnBlock IPReturnBlock OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+
+ close OPERATION ::= {
+ ARGUMENT
+ CloseArg
+ CODE private: 28161
+ --Family Name is "Transaction Control"
+ }
+
+ CloseArg ::= SEQUENCE{
+ userID UserID OPTIONAL,
+ bearerCapability BearerCapability OPTIONAL,
+ closeCause CloseCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ cTRClear OPERATION ::= {
+ ARGUMENT
+ CTRClearArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --acknowledge,
+ --analyzeRoute,
+ --collectInformation,
+ -- continue,
+ --disconnect,
+ --disconnectLeg,
+ --forwardCall,
+ --mergeCall,
+ --moveleg,
+ --originateCall,
+ --splitLeg
+ -- }
+ CODE private: 26118
+ }
+ -- Family Name is "Caller Interaction"
+
+ CTRClearArg ::= SEQUENCE{
+ clearCause ClearCause,
+ legID LegID OPTIONAL,
+ ccID CcID OPTIONAL,
+ bCMType BCMType OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ collectedDigits CollectedDigits OPTIONAL,
+ collectedAddressInfo CollectedAddressInfo OPTIONAL,
+ carrier Carrier OPTIONAL,
+ failureCause FailureCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ aMAMeasurement AMAMeasurement OPTIONAL,
+ clearCauseData ClearCauseData OPTIONAL,
+ iPReturnBlock IPReturnBlock OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ failureOutcome OPERATION ::= {
+ ARGUMENT
+ FailureOutcomeArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --acknowledge,
+ --connectToResource,
+ --disconnect,
+ --mergeCall
+ -- }
+ CODE private: 25604
+ }
+ --Family Name is "Connection Control"
+
+ FailureOutcomeArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ ccID CcID OPTIONAL,
+ legID LegID OPTIONAL,
+ bCMType BCMType OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ failureCause FailureCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ infoAnalyzed OPERATION ::= {
+ ARGUMENT
+ InfoAnalyzedArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ -- continue,
+ --sendToResource,
+ --disconnect,
+ --collectInformation
+ -- }
+ CODE private: 25603
+ }
+ --Family Name is "Request/Notification"
+
+ InfoAnalyzedArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ calledPartyID CalledPartyID OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ callingPartyBGID CallingPartyBGID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ carrier Carrier OPTIONAL,
+ accessCode AccessCode OPTIONAL,
+ collectedAddressInfo CollectedAddressInfo OPTIONAL,
+ collectedDigits CollectedDigits OPTIONAL,
+ verticalServiceCode VerticalServiceCode OPTIONAL,
+ tcm Tcm OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sap Sap OPTIONAL,
+ sTRConnection STRConnection OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ genericAddressList GenericAddressList OPTIONAL,
+ networkSpecificFacilities NetworkSpecificFacilities OPTIONAL,
+ cTRConnection CTRConnection OPTIONAL,
+ jurisdictionInformation JurisdictionInformation OPTIONAL,
+ prefix Prefix OPTIONAL,
+ callingGeodeticLocation CallingGeodeticLocation OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ infoCollected OPERATION ::= {
+ ARGUMENT
+ InfoCollectedArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --sendToResource,
+ --disconnect
+ -- continue
+ -- }
+ CODE private: 25602
+ }
+ --Family Name is "Request/Notification"
+
+ InfoCollectedArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ chargeNumber ChargeNumber OPTIONAL,
+ lata Lata OPTIONAL,
+ carrier Carrier OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ accessCode AccessCode OPTIONAL,
+ collectedAddressInfo CollectedAddressInfo OPTIONAL,
+ collectedDigits CollectedDigits OPTIONAL,
+ verticalServiceCode VerticalServiceCode OPTIONAL,
+ tcm Tcm OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sap Sap OPTIONAL,
+ genericAddressList GenericAddressList OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ prefix Prefix OPTIONAL,
+ callingGeodeticLocation CallingGeodeticLocation OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ networkBusy OPERATION ::= {
+ ARGUMENT
+ NetworkBusyArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --sendToResource,
+ --disconnect,
+ -- continue,
+ --forwardCall
+ -- }
+ CODE private: 25623
+ }
+ --Family Name is "Request/Notification"
+
+ NetworkBusyArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ chargeNumber ChargeNumber OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ calledPartyID CalledPartyID OPTIONAL,
+ tcm Tcm OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ carrier Carrier OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sap Sap OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ prefix Prefix OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ oAnswer OPERATION ::= {
+ ARGUMENT
+ OAnswerArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ CODE private: 25611
+ }
+ --Family Name is "Request/Notification"
+
+ OAnswerArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ oAbandon OPERATION ::= {
+ ARGUMENT
+ OAbandonArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --connectToResource,
+ --disconnect,
+ --disconnectLeg,
+ --mergeCall,
+ --reconnect
+ -- }
+ CODE private: 25614
+ }
+ --Family Name is "Request/Notification"
+
+ OAbandonArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ ccID CcID OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL
+ }
+
+ oDisconnect OPERATION ::= {
+ ARGUMENT
+ ODisconnectArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --collectInformation,
+ --sendToResource,
+ --analyzeRoute,
+ --connectToResource,
+ --disconnect,
+ --disconnectLeg,
+ --mergeCall,
+ --reconnect
+ -- }
+ CODE private: 25626
+ }
+ --Family Name is "Request/Notification"
+
+ ODisconnectArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ disconnectCause DisconnectCause OPTIONAL,
+ legID LegID OPTIONAL,
+ pointInCall PointInCall OPTIONAL
+ }
+
+ oMidCall OPERATION ::= {
+ ARGUMENT
+ OMidCallArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --collectInformation,
+ --connectToResource,
+ --disconnect,
+ --disconnectLeg,
+ --mergeCall,
+ --moveLeg,
+ --originateCall,
+ --splitLeg
+ -- }
+ CODE private: 25615
+ }
+ --Family Name is "Request/Notification"
+
+ OMidCallArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ legID LegID OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ ccID CcID OPTIONAL,
+ featureActivatorID FeatureActivatorID OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ callingPartyBGID CallingPartyBGID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ carrier Carrier OPTIONAL,
+ accessCode AccessCode OPTIONAL,
+ collectedAddressInfo CollectedAddressInfo OPTIONAL,
+ collectedDigits CollectedDigits OPTIONAL,
+ verticalServiceCode VerticalServiceCode OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ oNoAnswer OPERATION ::= {
+ ARGUMENT
+ ONoAnswerArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --sendToResource,
+ -- continue
+ -- }
+ CODE private: 25609
+ }
+ --Family Name is "Request/Notification"
+
+ ONoAnswerArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ calledPartyID CalledPartyID OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ carrier Carrier OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ sap Sap OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sTRConnection STRConnection OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ cTRConnection CTRConnection OPTIONAL,
+ prefix Prefix OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ oSuspended OPERATION ::= {
+ ARGUMENT
+ OSuspendedArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --collectInformation,
+ --sendToResource,
+ --analyzeRoute,
+ --connectToResource,
+ --disconnect,
+ --disconnectLeg,
+ --mergeCall
+ -- }
+ CODE private: 25625
+ }
+
+ OSuspendedArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ legID LegID OPTIONAL,
+ pointInCall PointInCall OPTIONAL
+ }
+
+ --Family Name is "Request/Notification"
+
+ oTermSeized OPERATION ::= {
+ ARGUMENT
+ OTermSeizedArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ CODE private: 25612
+ }
+ --Family Name is "Request/Notification"
+
+ OTermSeizedArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ originationAttempt OPERATION ::= {
+ ARGUMENT
+ OriginationAttemptArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --sendToResource,
+ --disconnect
+ -- }
+ CODE private: 25624
+ }
+ --Family Name is "Request/Notification"
+
+ OriginationAttemptArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ chargeNumber ChargeNumber OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ carrier Carrier OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sap Sap OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ resourceClear OPERATION ::= {
+ ARGUMENT
+ ResourceClearArg
+ RESULT SEQUENCE{
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --forwardCall,
+ --sendToResource,
+ --authorizeTermination,
+ --disconnect,
+ -- continue,
+ --offerCall,
+ --collectInformation
+ -- }
+ CODE private: 26114
+ }
+ --Family Name is "Caller Interaction"
+
+ ResourceClearArg ::= SEQUENCE{
+ clearCause ClearCause,
+ collectedDigits CollectedDigits OPTIONAL,
+ collectedAddressInfo CollectedAddressInfo OPTIONAL,
+ carrier Carrier OPTIONAL,
+ failureCause FailureCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ aMAMeasurement AMAMeasurement OPTIONAL,
+ clearCauseData ClearCauseData OPTIONAL,
+ iPReturnBlock IPReturnBlock OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ successOutcome OPERATION ::= {
+ ARGUMENT
+ SuccessOutcomeArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --acknowledge,
+ --connectToResource,
+ --disconnectLeg,
+ --moveLeg
+ -- }
+ CODE private: 25617
+ }
+ --Family Name is "Request/Notification"
+
+ SuccessOutcomeArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ ccID CcID OPTIONAL,
+ legID LegID OPTIONAL,
+ bCMType BCMType OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ tAnswer OPERATION ::= {
+ ARGUMENT
+ TAnswerArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ CODE private: 25610
+ }
+ --Family Name is “Request / Notification”
+
+ TAnswerArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ tBusy OPERATION ::= {
+ ARGUMENT
+ TBusyArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --forwardCall,
+ --offerCall,
+ -- continue,
+ --sendToResource
+ -- }
+ CODE private: 25606
+ }
+ --Family Name is "Request/Notification"
+
+ TBusyArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ calledPartyID CalledPartyID OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ busyCause BusyCause OPTIONAL,
+ busyType BusyType OPTIONAL,
+ calledPartyStationType CalledPartyStationType OPTIONAL,
+ sap Sap OPTIONAL,
+ genericName GenericName OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sTRConnection STRConnection OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ cTRConnection CTRConnection OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ tDisconnect OPERATION ::= {
+ ARGUMENT
+ TDisconnectArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --collectInformation,
+ --connectToResource,
+ --disconnect,
+ --disconnectLeg,
+ --mergeCall,
+ --reconnect
+ -- }
+ CODE private: 25618
+ }
+ --Family Name is "Request/Notification"
+
+ TDisconnectArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ ccID CcID OPTIONAL,
+ legID LegID OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ disconnectCause DisconnectCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL
+ }
+
+ tDTMFEntered OPERATION ::= {
+ ARGUMENT
+ TDTMFEnteredArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ -- continue,
+ --disconnect,
+ --forwardCall,
+ --sendToResource
+ -- }
+ CODE private: 25628
+ }
+ --Family Name is "Request/Notification"
+
+ TDTMFEnteredArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ dTMFDigitsDetected DTMFDigitsDetected OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL
+ }
+
+ tMidCall OPERATION ::= {
+ ARGUMENT
+ TMidCallArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --collectInformation,
+ --connectToResource,
+ --disconnect,
+ --disconnectLeg,
+ --mergeCall,
+ --moveLeg,
+ --originateCall,
+ --splitLeg
+ -- }
+ CODE private: 25619
+ }
+ --Family Name is "Request/Notification"
+ TMidCallArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ calledPartyID CalledPartyID OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ legID LegID OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ ccID CcID OPTIONAL,
+ featureActivatorID FeatureActivatorID OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ callingPartyBGID CallingPartyBGID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ carrier Carrier OPTIONAL,
+ accessCode AccessCode OPTIONAL,
+ collectedAddressInfo CollectedAddressInfo OPTIONAL,
+ collectedDigits CollectedDigits OPTIONAL,
+ verticalServiceCode VerticalServiceCode OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL
+ }
+
+ tNoAnswer OPERATION ::= {
+ ARGUMENT
+ TNoAnswerArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --forwardCall,
+ --sendToResource,
+ -- continue
+ -- }
+ CODE private: 25608
+ }
+ --Family Name is "Request/Notification"
+
+ TNoAnswerArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ calledPartyID CalledPartyID OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ calledPartyStationType CalledPartyStationType OPTIONAL,
+ sap Sap OPTIONAL,
+ genericName GenericName OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sTRConnection STRConnection OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ cTRConnection CTRConnection OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ terminationAttempt OPERATION ::= {
+ ARGUMENT
+ TerminationAttemptArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --authorizeTermination,
+ --forwardCall,
+ --sendToResource,
+ --disconnect
+ -- }
+ CODE private: 25605
+ }
+
+ TerminationAttemptArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ calledPartyID CalledPartyID OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ calledPartyStationType CalledPartyStationType OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ tcm Tcm OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ genericName GenericName OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ sap Sap OPTIONAL,
+ sTRConnection STRConnection OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ cTRConnection CTRConnection OPTIONAL,
+ rTPServiceIndicator RTPServiceIndicator OPTIONAL,
+ genericAddressList GenericAddressList OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL,
+ callingGeodeticLocation CallingGeodeticLocation OPTIONAL
+ }
+
+ termResourceAvailable OPERATION ::= {
+ ARGUMENT
+ TermResourceAvailableArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --forwardCall,
+ --sendToResource,
+ -- continue
+ -- }
+ CODE private: 25613
+ }
+ --Family Name is "Request/Notification"
+
+ TermResourceAvailableArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ notificationIndicator NotificationIndicator OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ calledPartyID CalledPartyID OPTIONAL,
+ lata Lata OPTIONAL,
+ triggerCriteriaType TriggerCriteriaType OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ originalCalledPartyID OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ calledPartyStationType CalledPartyStationType OPTIONAL,
+ sap Sap OPTIONAL,
+ genericName GenericName OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ sTRConnection STRConnection OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ cTRConnection CTRConnection OPTIONAL,
+ triggerInformation TriggerInformation OPTIONAL
+ }
+
+ timeout OPERATION ::= {
+ ARGUMENT
+ TimeoutArg
+ ERRORS{ applicationError,
+ failureReport
+ }
+ --LINKED{
+ --analyzeRoute,
+ --connectToResource,
+ -- continue,
+ --disconnect,
+ --forwardCall,
+ --sendToResource
+ -- }
+ CODE private:25620
+ }
+ --Family Name is "Request/Notification"
+
+ TimeoutArg ::= SEQUENCE{
+ userID UserID,
+ bearerCapability BearerCapability,
+ legID LegID OPTIONAL,
+ bCMType BCMType OPTIONAL,
+ pointInCall PointInCall OPTIONAL,
+ ccID CcID OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ notificationIndicator NotificationIndicator OPTIONAL
+ }
+
+ analyzeRoute OPERATION ::= {
+ ARGUMENT
+ AnalyzeRouteArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25857
+ }
+ --Family Name is "Connection Control (Call Model)"
+
+ AnalyzeRouteArg ::= SEQUENCE{
+ chargeNumber ChargeNumber OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ calledPartyID CalledPartyID OPTIONAL,
+ outpulseNumber OutpulseNumber OPTIONAL,
+ tcm Tcm OPTIONAL,
+ primaryTrunkGroup PrimaryTrunkGroup OPTIONAL,
+ alternateTrunkGroup AlternateTrunkGroup OPTIONAL,
+ secondAlternateTrunkGroup SecondAlternateTrunkGroup OPTIONAL,
+ carrier Carrier OPTIONAL,
+ alternateCarrier AlternateCarrier OPTIONAL,
+ secondAlternateCarrier SecondAlternateCarrier OPTIONAL,
+ passiveLegTreatment PassiveLegTreatment OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ alternateBillingIndicator AlternateBillingIndicator OPTIONAL,
+ secondAlternateBillingIndicator SecondAlternateBillingIndicator OPTIONAL,
+ overflowBillingIndicator OverflowBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ carrierUsage CarrierUsage OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ genericAddressList GenericAddressList OPTIONAL,
+ networkSpecificFacilities NetworkSpecificFacilities OPTIONAL,
+ callingPartyBGID CallingPartyBGID OPTIONAL,
+ forwardCallIndicator ForwardCallIndicator OPTIONAL,
+ aMAServiceProviderID AMAServiceProviderID OPTIONAL,
+ prefix Prefix OPTIONAL,
+ genericDigitsList GenericDigitsList OPTIONAL,
+ applyRestrictions ApplyRestrictions OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ genericName GenericName OPTIONAL
+ }
+
+ authorizeTermination OPERATION ::= {
+ ARGUMENT
+ AuthorizeTerminationArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25858
+ }
+ --Family Name is "Connection Control (Call Model)"
+
+ AuthorizeTerminationArg ::= SEQUENCE{
+ callingPartyID CallingPartyID OPTIONAL,
+ tcm Tcm OPTIONAL,
+ controllingLegTreatment ControllingLegTreatment OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ genericName GenericName OPTIONAL
+ }
+
+
+ cancelResourceEvent OPERATION ::= {
+ ARGUMENT
+ CancelResourceEventArg
+ ERRORS{ applicationError
+ }
+ --LINKED{ resourceClear }
+ CODE private: 26115
+ }
+ --Family Name is "Caller Interaction"
+
+ CancelResourceEventArg ::= SEQUENCE{
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ collectInformation OPERATION ::= {
+ ARGUMENT
+ CollectInformationArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25861
+ }
+ --Family Name is "Connection Control (Call Model)"
+
+ CollectInformationArg ::= SEQUENCE{
+ callingPartyID CallingPartyID OPTIONAL,
+ collectedDigits CollectedDigits OPTIONAL,
+ dPConverter DPConverter OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ alternateBillingIndicator AlternateBillingIndicator OPTIONAL,
+ secondAlternateBillingIndicator SecondAlternateBillingIndicator OPTIONAL,
+ overflowBillingIndicator OverflowBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ alternateDialingPlanInd AlternateDialingPlanInd OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL
+ }
+
+ connectToResource OPERATION ::= {
+ ARGUMENT
+ ConnectToResourceArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --callInfoFromResource,
+ --cTRClear
+ -- }
+ CODE private: 26117
+ --Family Name is "Caller Interaction"
+ }
+
+ ConnectToResourceArg ::= SEQUENCE{
+ resourceType ResourceType,
+ strParameterBlock StrParameterBlock,
+ legID LegID OPTIONAL,
+ disconnectFlag DisconnectFlag OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ destinationAddress DestinationAddress OPTIONAL,
+ dPConverter DPConverter OPTIONAL,
+ aMAMeasure AMAMeasure OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ continue OPERATION ::= {
+ ARGUMENT
+ ContinueArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25869
+ }
+
+ ContinueArg ::= SEQUENCE{
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL
+ }
+
+ createCall OPERATION ::= {
+ ARGUMENT
+ CreateCallArg
+ RESULT
+ CreateCallRes
+ ERRORS{ applicationError
+ failureReport
+ }
+ --LINKED{
+ --originationAttempt
+ -- }
+ CODE private: 25863
+ }
+
+ CreateCallArg ::= SEQUENCE{
+ calledPartyID CalledPartyID,
+ callingPartyID CallingPartyID,
+ chargeNumber ChargeNumber OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ carrier Carrier OPTIONAL,
+ alternateCarrier AlternateCarrier OPTIONAL,
+ secondAlternateCarrier SecondAlternateCarrier OPTIONAL,
+ passiveLegTreatment PassiveLegTreatment OPTIONAL,
+ genericAddressList GenericAddressList OPTIONAL,
+ callingPartyBGID CallingPartyBGID OPTIONAL,
+ forwardCallIndicator ForwardCallIndicator OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ carrierUsage CarrierUsage OPTIONAL,
+ controllingLegTreatment ControllingLegTreatment OPTIONAL,
+ userID UserID OPTIONAL,
+ bearerCapability BearerCapability OPTIONAL,
+ verticalServiceCode VerticalServiceCode OPTIONAL,
+ accessCode AccessCode OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ notificationDuration NotificationDuration OPTIONAL,
+ wakeUpDuration WakeUpDuration OPTIONAL,
+ oSIIndicator OSIIndicator OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ overflowBillingIndicator OverflowBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ prefix Prefix OPTIONAL
+ }
+
+ CreateCallRes ::= SEQUENCE {
+ failureCause FailureCause OPTIONAL
+ }
+
+ disconnect OPERATION ::= {
+ ARGUMENT
+ DisconnectArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25859
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ DisconnectArg ::= SEQUENCE{
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ rTPReroutingNumber RTPReroutingNumber OPTIONAL
+ }
+
+ disconnectLeg OPERATION ::= {
+ ARGUMENT
+ DisconnectLegArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --cTRClear,
+ --failureOutcome
+ -- }
+ CODE private: 25864
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ DisconnectLegArg ::= SEQUENCE{
+ legID LegID,
+ csID CsID OPTIONAL,
+ passiveLegTreatment PassiveLegTreatment OPTIONAL,
+ lampTreatment LampTreatment OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+
+ forwardCall OPERATION ::= {
+ ARGUMENT
+ ForwardCallArg
+ ERRORS{ applicationError
+ }
+ CODE private: 27137
+ }
+
+ ForwardCallArg ::= SEQUENCE{
+ callingPartyID CallingPartyID OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ calledPartyID CalledPartyID OPTIONAL,
+ outpulseNumber OutpulseNumber OPTIONAL,
+ tcm Tcm OPTIONAL,
+ primaryTrunkGroup PrimaryTrunkGroup OPTIONAL,
+ alternateTrunkGroup AlternateTrunkGroup OPTIONAL,
+ secondAlternateTrunkGroup SecondAlternateTrunkGroup OPTIONAL,
+ carrier Carrier OPTIONAL,
+ alternateCarrier AlternateCarrier OPTIONAL,
+ secondAlternatecarrier SecondAlternateCarrier OPTIONAL,
+ passiveLegTreatment PassiveLegTreatment OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ alternateBillingIndicator AlternateBillingIndicator OPTIONAL,
+ secondAlternateBillingIndicator SecondAlternateBillingIndicator OPTIONAL,
+ overflowBillingIndicator OverflowBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ redirectionInformation RedirectionInformation OPTIONAL,
+ carrierUsage CarrierUsage OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ prefix Prefix OPTIONAL,
+ applyRestrictions ApplyRestrictions OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ genericName GenericName OPTIONAL
+ }
+
+ mergeCall OPERATION ::= {
+ ARGUMENT
+ MergeCallArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --cTRClear,
+ --failureOutcome,
+ --successOutcome
+ -- }
+ CODE private: 25865
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ MergeCallArg ::= SEQUENCE{
+ displayText DisplayText OPTIONAL,
+ lampTreatment LampTreatment OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ moveLeg OPERATION ::= {
+ ARGUMENT
+ MoveLegArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --cTRClear,
+ --failureOutcome,
+ --successOutcome
+ -- }
+ CODE private: 25866
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ MoveLegArg ::= SEQUENCE{
+ displayText DisplayText OPTIONAL,
+ lampTreatment LampTreatment OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ offerCall OPERATION ::= {
+ ARGUMENT
+ OfferCallArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25860
+ }
+
+ OfferCallArg ::= SEQUENCE{
+ callingPartyID CallingPartyID OPTIONAL,
+ controllingLegTreatment ControllingLegTreatment OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ genericName GenericName OPTIONAL
+ }
+
+ originateCall OPERATION ::= {
+ ARGUMENT
+ OriginateCallArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --failureOutcome
+ -- }
+ CODE private: 25867
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ OriginateCallArg ::= SEQUENCE{
+ collectedDigits CollectedDigits OPTIONAL,
+ dPConverter DPConverter OPTIONAL,
+ alternateDialingPlanInd AlternateDialingPlanInd OPTIONAL,
+ callingPartyID CallingPartyID OPTIONAL,
+ lampTreatment LampTreatment OPTIONAL,
+ controllingLegTreatment ControllingLegTreatment OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ bearerCapability BearerCapability OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ calledPartyID CalledPartyID OPTIONAL,
+ outpulseNumber OutpulseNumber OPTIONAL,
+ tcm Tcm OPTIONAL,
+ primaryTrunkGroup PrimaryTrunkGroup OPTIONAL,
+ alternateTrunkGroup AlternateTrunkGroup OPTIONAL,
+ secondAlternateTrunkGroup SecondAlternateTrunkGroup OPTIONAL,
+ carrier Carrier OPTIONAL,
+ alternateCarrier AlternateCarrier OPTIONAL,
+ secondAlternatecarrier SecondAlternateCarrier OPTIONAL,
+ passiveLegTreatment PassiveLegTreatment OPTIONAL,
+ redirectingPartyID RedirectingPartyID OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ alternateBillingIndicator AlternateBillingIndicator OPTIONAL,
+ secondAlternateBillingIndicator SecondAlternateBillingIndicator OPTIONAL,
+ overflowBillingIndicator OverflowBillingIndicator OPTIONAL,
+ genericAddressList GenericAddressList OPTIONAL,
+ forwardCallIndicator ForwardCallIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ carrierUsage CarrierUsage OPTIONAL,
+ networkSpecificFacilities NetworkSpecificFacilities OPTIONAL,
+ callingPartyBGID CallingPartyBGID OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ reconnect OPERATION ::= {
+ ARGUMENT
+ ReconnectArg
+ ERRORS{ applicationError
+ }
+ CODE private: 25870
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ ReconnectArg ::= SEQUENCE{
+ notificationDuration NotificationDuration OPTIONAL,
+ controllingLegTreatment ControllingLegTreatment OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+
+ sendToResource OPERATION ::= {
+ ARGUMENT
+ SendToResourceArg
+ RESULT SEQUENCE{
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --resourceClear,
+ --callInfoFromResource
+ -- }
+ CODE private: 26113
+ --Family Name is "Caller Interaction"
+ }
+
+ SendToResourceArg ::= SEQUENCE{
+ resourceType ResourceType,
+ strParameterBlock StrParameterBlock,
+ disconnectFlag DisconnectFlag OPTIONAL,
+ answerIndicator AnswerIndicator OPTIONAL,
+ primaryBillingIndicator PrimaryBillingIndicator OPTIONAL,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
+ aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
+ aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL,
+ aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ destinationAddress DestinationAddress OPTIONAL,
+ dPConverter DPConverter OPTIONAL,
+ aMAMeasure AMAMeasure OPTIONAL,
+ serviceProviderID ServiceProviderID OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ aMABillingFeature AMABillingFeature OPTIONAL,
+ aMASequenceNumber AMASequenceNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ aMAserviceProviderID AMAServiceProviderID OPTIONAL,
+ extendedRinging ExtendedRinging OPTIONAL,
+ carrier Carrier OPTIONAL,
+ alternateCarrier AlternateCarrier OPTIONAL,
+ secondAlternatecarrier SecondAlternateCarrier OPTIONAL,
+ carrierUsage CarrierUsage OPTIONAL,
+ chargeNumber ChargeNumber OPTIONAL,
+ chargePartyStationType ChargePartyStationType OPTIONAL,
+ tSTRCTimer TSTRCTimer OPTIONAL,
+ partyID PartyID OPTIONAL,
+ partyOnHold PartyOnHold OPTIONAL,
+ calledPartyID CalledPartyID OPTIONAL
+ }
+
+ setTimer OPERATION ::= {
+ ARGUMENT
+ SetTimerArg
+ RESULT
+ TimerUpdated
+ ERRORS{ applicationError
+ }
+ CODE private: 26889
+ --Family Name is "Information Revision"
+ }
+
+ SetTimerArg ::= SEQUENCE{
+ sSPResponseMessageTimerT1 SSPResponseMessageTimerT1 OPTIONAL
+ }
+
+ splitLeg OPERATION ::= {
+ ARGUMENT
+ SplitLegArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --cTRClear,
+ --failureOutcome,
+ --successOutcome
+ -- }
+ CODE private: 25868
+ --Family Name is "Connection Control (Call Model)"
+ }
+
+ SplitLegArg ::= SEQUENCE{
+ legID LegID,
+ displayText DisplayText OPTIONAL,
+ lampTreatment LampTreatment OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ acg OPERATION ::= {
+ ARGUMENT
+ AcgArg
+ ERRORS{ applicationError
+ }
+ CODE private: 26881
+ --Family Name is "Network Management"
+ }
+
+ AcgArg ::= SEQUENCE{
+ controlCauseIndicator ControlCauseIndicator,
+ gapDuration GapDuration,
+ gapInterval GapInterval,
+ translationType TranslationType,
+ globalTitleAddress GlobalTitleAddress,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ acgGlobalCtrlRestore OPERATION ::= {
+ ARGUMENT
+ AcgGlobalCtrlRestoreArg
+ RESULT SEQUENCE{
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+ ERRORS{ applicationError
+ }
+ CODE private: 26883
+ --Family Name is "Network Management"
+ }
+
+ AcgGlobalCtrlRestoreArg ::= SEQUENCE{
+ aCGGlobalOverride ACGGlobalOverride,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ acgOverflow OPERATION ::= {
+ ARGUMENT
+ AcgOverflowArg
+ CODE private: 26884
+ --Family Name is “Network Management”
+ }
+
+ AcgOverflowArg ::= SEQUENCE{
+ controlCauseIndicator ControlCauseIndicator,
+ translationType TranslationType,
+ globalTitleAddress GlobalTitleAddress,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ activityTest OPERATION ::= {
+ ARGUMENT
+ ActivityTestArg
+ RESULT SEQUENCE{
+ actResult ActResult
+ }
+ ERRORS{ applicationError
+ }
+ CODE private: 26886
+ --Family Name is “Network Management”
+ }
+
+ ActivityTestArg ::= SEQUENCE{
+ transID TransID,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ callTypeRequest OPERATION ::= {
+ ARGUMENT
+ CallTypeRequestArg
+ RESULT SEQUENCE{
+ callType CallType,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+ ERRORS{ applicationError,
+ faultReport
+ }
+ CODE private: 26887
+ --Family Name is “Information Revision”
+ }
+
+ CallTypeRequestArg ::= SEQUENCE{
+ calledPartyID CalledPartyID,
+ callingPartyID CallingPartyID,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ controlRequest OPERATION ::= {
+ ARGUMENT
+ ControlRequestArg
+
+ CODE private: 26885
+ --Family Name is “Network Management”
+ }
+
+ ControlRequestArg ::= SEQUENCE{
+ congestionLevel CongestionLevel OPTIONAL,
+ gapInterval GapInterval OPTIONAL,
+ translationType TranslationType OPTIONAL,
+ globalTitleAddress GlobalTitleAddress OPTIONAL,
+ ssignalingPointCode SignalingPointCode OPTIONAL,
+ subsystemNumber SubsystemNumber OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ echoRequest OPERATION ::= {
+ ARGUMENT
+ EchoRequestArg
+ RESULT SEQUENCE{
+ failureCause FailureCause OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+ ERRORS{ applicationError
+ }
+ CODE private: 26882
+ --Family Name is “Network Management”
+ }
+
+ EchoRequestArg ::= SEQUENCE{
+ applicationIndicator ApplicationIndicator OPTIONAL,
+ serviceContext ServiceContext OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ furnishAMAInformation OPERATION ::= {
+ ARGUMENT
+ FurnishAMAInformationArg
+ ERRORS{ applicationError
+ }
+ CODE private: 27649
+ --Family Name is “AMA”
+ }
+
+ FurnishAMAInformationArg ::= SEQUENCE{
+ aaMABAFModules AMABAFModules OPTIONAL,
+ aMASetHexABIndicator AMASetHexABIndicator OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ monitorForChange OPERATION ::= {
+ ARGUMENT
+ MonitorForChangeArg
+ ERRORS{ applicationError
+ }
+ --LINKED{
+ --monitorSuccess,
+ --statusReported
+ -- }
+ CODE private: 26369
+ --Family Name is "Status Notification"
+ }
+
+ MonitorForChangeArg ::= SEQUENCE{
+ facilityStatus FacilityStatus,
+ monitorTime MonitorTime,
+ calledPartyID CalledPartyID OPTIONAL,
+ facilityGID FacilityGID OPTIONAL,
+ facilityMemberID FacilityMemberID OPTIONAL,
+ bearerCapability BearerCapability OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ controlEncountered ControlEncountered OPTIONAL
+ }
+
+ monitorSuccess OPERATION ::= {
+ ARGUMENT
+ MonitorSuccessArg
+ ERRORS{ applicationError
+ failureReport
+ }
+ CODE private: 26371
+ --Family Name is "Status Notification"
+ }
+
+ MonitorSuccessArg ::= SEQUENCE{
+ facilityStatus FacilityStatus,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ nCAData OPERATION ::= {
+ ARGUMENT
+ NCADataArg
+ CODE private: 27394
+ --Family Name is "NCA Signaling"
+ }
+
+ NCADataArg ::= SEQUENCE{
+ id CHOICE{
+ calledPartyID CalledPartyID,
+ srhrGroupID SrhrGroupID
+ },
+ callingPartyID CallingPartyID,
+ envelopeEncodingAuthority EnvelopeEncodingAuthority,
+ envelopContent EnvelopContent,
+ securityEnvelope SecurityEnvelope OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ controlEncountered ControlEncountered OPTIONAL
+ }
+
+ nCARequest OPERATION ::= {
+ ARGUMENT
+ NCARequestArg
+ RESULT SEQUENCE{
+ envelopeEncodingAuthority EnvelopeEncodingAuthority,
+ envelopContent EnvelopContent,
+ securityEnvelope SecurityEnvelope OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+ ERRORS{ applicationError,
+ failureReport
+ }
+ CODE private: 27393
+ --Family Name is "NCA Signaling"
+ }
+
+ NCARequestArg ::= SEQUENCE{
+ calledPartyID CalledPartyID,
+ callingPartyID CallingPartyID,
+ envelopeEncodingAuthority EnvelopeEncodingAuthority,
+ envelopContent EnvelopContent,
+ securityEnvelope SecurityEnvelope OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ aCGEncountered ACGEncountered OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ controlEncountered ControlEncountered OPTIONAL
+ }
+
+ queryRequest OPERATION ::= {
+ ARGUMENT
+ QueryRequestArg
+ RESULT SEQUENCE{
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ infoProvided InfoProvided OPTIONAL
+ }
+ ERRORS{ applicationError,
+ failureReport
+ }
+ CODE private: 26626
+ --Family Name is “Information Revision”
+ }
+
+ QueryRequestArg ::= SEQUENCE{
+ userID UserID OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ controlEncountered ControlEncountered OPTIONAL,
+ provideInfo ProvideInfo OPTIONAL
+ }
+
+ requestReportBCMEvent OPERATION ::= {
+ ARGUMENT
+ RequestReportBCMEventArg
+ ERRORS{ applicationError
+ }
+ CODE private: 27905
+ --Family Name is "Request Event"
+ }
+
+ RequestReportBCMEventArg ::= SEQUENCE{
+ eDPRequest EDPRequest OPTIONAL,
+ eDPNotification EDPNotification OPTIONAL,
+ oNoAnswerTimer ONoAnswerTimer OPTIONAL,
+ tNoAnswerTimer TNoAnswerTimer OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ timeoutTimer TimeoutTimer OPTIONAL,
+ oDTMFDigitsString ODTMFDigitsString OPTIONAL,
+ oDTMFNumberOfDigits ODTMFNumberOfDigits OPTIONAL,
+ tDTMFDigitString TDTMFDigitString OPTIONAL,
+ tDTMFNumberOfDigits TDTMFNumberOfDigits OPTIONAL
+ }
+
+
+ statusReported OPERATION ::= {
+ ARGUMENT
+ StatusReportedArg
+ ERRORS{ applicationError
+ }
+ CODE private: 26370
+ --Family Name is "Status Notification"
+ }
+
+ StatusReportedArg ::= SEQUENCE{
+ facilityStatus FacilityStatus OPTIONAL,
+ statusCause StatusCause OPTIONAL,
+ failureCause FailureCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ terminationNotification OPERATION ::= {
+ ARGUMENT
+ TerminationNotificationArg
+ CODE private: 26372
+ --Family Name is "Status Notification"
+ }
+
+ TerminationNotificationArg ::= SEQUENCE{
+ echoData EchoData,
+ terminationIndicator TerminationIndicator,
+ connectTime ConnectTime OPTIONAL,
+ busyCause BusyCause OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL
+ }
+
+ update OPERATION ::= {
+ ARGUMENT
+ UpdateArg
+ RESULT SEQUENCE{
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ resultCause ResultCause OPTIONAL
+ }
+ ERRORS{ applicationError,
+ failureReport
+ }
+ CODE private: 26627
+ --Family Name is "Information Revision"
+ }
+
+ UpdateArg ::= SEQUENCE{
+ administrableObject AdministrableObject,
+ editListType EditListType OPTIONAL,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL,
+ extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
+ controlEncountered ControlEncountered OPTIONAL,
+ aMAslpID AMAslpID OPTIONAL
+ }
+
+ updateRequest OPERATION ::= {
+ ARGUMENT
+ UpdateRequestArg
+ RESULT SEQUENCE{
+ failureCause FailureCause OPTIONAL
+ }
+ ERRORS{ applicationError
+ }
+ CODE private: 26625
+ --Family Name is "Information Revision"
+ }
+
+ UpdateRequestArg ::= SEQUENCE{
+ userID UserID,
+ triggerCriteriaFlag TriggerCriteriaFlag OPTIONAL,
+ bearerCapability BearerCapability OPTIONAL,
+ controlEncountered ControlEncountered OPTIONAL
+ }
+
+END
diff --git a/epan/dissectors/asn1/ain/AIN-Parameters.asn b/epan/dissectors/asn1/ain/AIN-Parameters.asn
new file mode 100644
index 0000000000..e687cbafda
--- /dev/null
+++ b/epan/dissectors/asn1/ain/AIN-Parameters.asn
@@ -0,0 +1,1552 @@
+ AIN-Parameters{ ainParametersObjectIdentifier }
+ --This module contains the type definitions for the AIN parameters.
+
+ DEFINITIONS ::=
+
+ BEGIN
+
+ -- ainParametersObjectIdentifier OBJECT IDENTIFIER ::= ? - -not yet defined
+ -- TYPE DEFINITIONS FOR AIN PARAMETERS FOLLOWS
+
+ AccessCode ::= [1] IMPLICIT AINDigits
+ -- range - 1 - 5 digits
+ ACGEncountered ::= [2] IMPLICIT OCTET STRING(SIZE(1))
+ ACGGlobalOverride ::= [110] IMPLICIT ENUMERATED{
+ allItems(0),
+ scpOverloadItems(1),
+ smsInitCntrlExceptZeroGap(2),
+ smsInitCntrl(3),
+ ntmOSInitCntrlExceptZeroGap(4),
+ ntmOSInitCntrl(5),
+ craftInitCntrlExceptZeroGap(6),
+ craftInitCntrl(7)
+ }
+ AdministrableObject ::= CHOICE{
+ triggerItemAssignment TriggerItemAssignment,
+ sSPUserResource SSPUserResource,
+ srhrGroup SrhrGroup,
+ networkTestDesignator NetworkTestDesignator,
+ operationsMonitoringAssignment OperationsMonitoringAssignment
+ }
+ TriggerItemAssignment ::= [102] IMPLICIT SEQUENCE{
+ sSPUserResourceID [1] SSPUserResourceID,
+ triggerItemID [2] IMPLICIT TriggerItemID,
+ activationStateCode [3] IMPLICIT ActivationStateCode OPTIONAL,
+ potentialUse [4] IMPLICIT PotentialUse OPTIONAL,
+ sSPUserResourceSubID [5] SSPUserResourceSubID OPTIONAL
+ }
+ SSPUserResourceID ::= CHOICE{
+ dn [1] IMPLICIT Dn, --see Section 6.151 of this GR for encoding
+ dnCtID [2] IMPLICIT DnCtID,
+ spid [3] IMPLICIT Spid, --see Section 6.129 of this GR for encoding
+ trunkGroupID [4] IMPLICIT TrunkGroupID, --see Section 6.151 of this GR for encoding
+ localSSPID [5] IMPLICIT LocalSSPID,
+ publicDialingPlanID [6] IMPLICIT PublicDialingPlanID,
+ pRIOfficeEquipmentID [7] IMPLICIT PRIOfficeEquipmentID,
+ basicBusinessGroupID [8] IMPLICIT BasicBusinessGroupID,
+ basicBusinessGroupDialingPlanID [9] IMPLICIT BasicBusinessGroupDialingPlanID,
+ aFRPatternID [10] IMPLICIT AFRPatternID,
+ officeEquipmentID [11] IMPLICIT OfficeEquipmentID
+ }
+
+ DnCtID ::= SEQUENCE{
+ dn [1] IMPLICIT Dn, --see Section 6.151 of this GR for encoding
+ ct [2] IMPLICIT Ct
+ }
+ Ct ::= ENUMERATED{
+ voicebandInformation(0),
+ circuitModeData(1)
+ }
+ LocalSSPID ::= IA5String(SIZE(1..8)) --References office - wide triggers
+
+ PublicDialingPlanID ::= IA5String(SIZE(1..8))
+
+ PRIOfficeEquipmentID ::= IA5String(SIZE(1..12))
+
+ BasicBusinessGroupID ::= IA5String(SIZE(1..10))
+
+ BasicBusinessGroupDialingPlanID ::= IA5String(SIZE(1..4))
+
+ AFRPatternID ::= IA5String(SIZE(1..4))
+
+ OfficeEquipmentID ::= IA5String(SIZE(1..12))
+
+ TriggerItemID ::= SEQUENCE{
+ dPNumber [1] IMPLICIT DPNumber,
+ triggerItemSubnumber [2] IMPLICIT TriggerItemSubnumber
+ }
+ DPNumber ::= INTEGER(1..33)
+ --Identifies a Detection Point within the AIN Call Model
+
+ TriggerItemSubnumber ::= IA5String(SIZE(1..8))
+ --Identifies triggers and events within DPs
+
+ ActivationStateCode ::= ENUMERATED{
+ off(0),
+ on(1)
+ }
+ PotentialUse ::= ENUMERATED{
+ notApplicable(0),
+ callForwarding(1)
+ }
+ SSPUserResourceSubID ::= CHOICE{
+ aFRPatternID [1] IMPLICIT AFRPatternID,
+ basicBusinessGroupDialingPlanID [2] IMPLICIT BasicBusinessGroupDialingPlanID,
+ iSDNBChannelID [3] IMPLICIT ISDNBChannelID
+ }
+
+ ISDNBChannelID ::= SEQUENCE{
+ pRIDS1ID [1] IMPLICIT PRIDS1ID OPTIONAL,
+ pRIDS0ID [2] IMPLICIT PRIDS0ID OPTIONAL
+ }
+
+
+ PRIDS1ID ::= INTEGER(1..28)
+
+ PRIDS0ID ::= INTEGER(1..24)
+
+ SSPUserResource ::= [103] IMPLICIT SEQUENCE{
+ sSPUserResourceID [1] SSPUserResourceID, --see Section 6.4.1 for encoding
+ serviceProviderID ServiceProviderID OPTIONAL,
+ updateGroups UpdateGroups OPTIONAL,
+ oNoAnswerTimer ONoAnswerTimer OPTIONAL,
+ tNoAnswerTimer TNoAnswerTimer OPTIONAL,
+ displayText DisplayText OPTIONAL,
+ dPConverter DPConverter OPTIONAL,
+ cancelInterdigitTimer CancelInterdigitTimer OPTIONAL
+ }
+ --For the encoding of the ServiceProviderID parameter, see Section 6.127 of this GR.
+ --For the encoding of the UpdateGroups parameter, see below.
+ --For the encoding of the ONoAnswerTimer parameter, see Section 6.102 of this GR.
+ --For the encoding of the TNoAnswerTimer, see Section 6.143 of this GR.
+ --For the encoding of the DisplayText parameter, see Section 6.62 of this GR.
+ --For the encoding of the DPConverter parameter, see Section 6.63 of this GR.
+ --For the encoding of the CancelInterdigitTimer parameter, see below.
+
+ UpdateGroups::= CHOICE{
+ updateGroup1 [2] IMPLICIT UpdateGroup1,
+ updateGroup2 [3] IMPLICIT UpdateGroup2,
+ updateGroup3 [4] IMPLICIT UpdateGroup3,
+ updateGroup4 [5] IMPLICIT UpdateGroup4,
+ updateGroup5 [6] IMPLICIT UpdateGroup5,
+ updateGroup6 [7] IMPLICIT UpdateGroup6,
+ updateGroup7 [8] IMPLICIT UpdateGroup7,
+ updateGroup8 [9] IMPLICIT UpdateGroup8,
+ updateGroup9 [10] IMPLICIT UpdateGroup9
+ }
+
+ UpdateGroup1::= SEQUENCE{
+ service1 [1] IMPLICIT Service1,
+ action1 Action1
+ }
+
+ Service1::= ENUMERATED{
+ messageWaitingIndicator(0),
+ visualMessageWaitingIndicator(1),
+ anonymousCallRejection(2),
+ automaticCallback(3),
+ automaticRecall(4),
+ callScreening(5),
+ outsideCallingAreaAlerting(6),
+ callingIdPresentAndSuppress(7),
+ callWaiting(8)
+ }
+
+ Action1::= CHOICE{
+ activationStateCode [2] IMPLICIT ActivationStateCode--see Section 6.4.1 for encoding
+ }
+
+ UpdateGroup2::= SEQUENCE{
+ service2 [1] IMPLICIT Service2,
+ action2 Action2
+ }
+
+ Service2::= ENUMERATED{
+ audioMessageWaitingIndicator(0)
+ }
+
+ Action2::= CHOICE{
+ activationStateCode [2] IMPLICIT ActivationStateCode,
+ delayInterval [3] IMPLICIT DelayInterval
+ }
+
+ DelayInterval::= INTEGER(1..60)
+ --used to convey to the switch
+ --a) the number of rings the switch should
+ -- generate prior to forwarding a call; or
+ --b) the number of minutes the switch should
+ -- wait to generate a “ping” ring for an MWI,
+ --i.e., number of minutes between “ping” rings.
+
+ UpdateGroup3::= SEQUENCE{
+ service3 [1] IMPLICIT Service3,
+ action3 Action3
+ }
+
+ Service3::= ENUMERATED{
+ distinctiveRingingCallWaiting(0),
+ selectiveCallRejection(1)
+ }
+
+ Action3::= CHOICE{
+ activationStateCode [2] IMPLICIT ActivationStateCode,
+ editSpecificEntry [3] IMPLICIT EditSpecificEntry,
+ editAllEntries [4] IMPLICIT EditAllEntries
+ }
+
+ EditSpecificEntry::= SEQUENCE{
+ entry Entry,
+ editListType [105] IMPLICIT EditListType--see Section 6.66 for encoding
+ }
+
+ Entry ::= CHOICE{
+ dn [1] IMPLICIT Dn,
+ speedCallingCode [2] IMPLICIT SpeedCallingCode,
+ memorySlot [3] IMPLICIT MemorySlot1
+ }
+
+ SpeedCallingCode ::= IA5String(SIZE(1..3))
+ --The contents of this field shall be numbers 2 through 9 or numbers 20 through 39.
+ --each number shall be allowed to be sent with or without a # sign.
+
+ MemorySlot1 ::= ENUMERATED{
+ incoming(0)
+ }
+
+ EditAllEntries ::= ENUMERATED{
+ deleteAllEntries(0),
+ deleteAllPrivateEntries(1)
+ }
+
+ UpdateGroup4::= SEQUENCE{
+ service4 [1] IMPLICIT Service4,
+ action4 Action4
+ }
+
+ Service4::= ENUMERATED{
+ callForwardingVariable(0),
+ callForwardingDontAnswer(1),
+ callForwardingBusyLine(2)
+ }
+
+ Action4::= CHOICE{
+ activationStateCode [2] IMPLICIT ActivationStateCode,--See Section 6.4.1 for encoding
+ forwardingDn ForwardingDn
+ }
+
+ ForwardingDn ::= CHOICE{
+ set Set,
+ clear [3] IMPLICIT Clear
+ }
+
+ Set ::= CHOICE{
+ dn [1] IMPLICIT Dn,
+ speedCallingCode [4] IMPLICIT SpeedCallingCode
+ }
+
+ Clear ::= ENUMERATED{
+ remove(0)
+ }
+
+ UpdateGroup5::= SEQUENCE{
+ service5 [1] IMPLICIT Service5,
+ action5 Action5
+ }
+
+ Service5::= ENUMERATED{
+ selectiveCallAcceptance(0),
+ selectiveCallForwarding(1)
+ }
+
+ Action5::= CHOICE{
+ activationStateCode [2] IMPLICIT ActivationStateCode,--see above for encoding
+ forwardingDn [3] IMPLICIT ForwardingDn,--see above for the encoding
+ editSpecificEntry [4] IMPLICIT EditSpecificEntry,--see above for the encoding
+ editAllEntries [5] IMPLICIT EditAllEntries--see above for the encoding
+ }
+
+ UpdateGroup6::= SEQUENCE{
+ service6 [1] IMPLICIT Service6,
+ action6 Action6
+ }
+
+ Service6::= ENUMERATED{
+ ringControl(0)
+ }
+
+ Action6::= CHOICE{
+ delayInterval [2] IMPLICIT DelayInterval--See above for the encoding
+ }
+
+ UpdateGroup7::= SEQUENCE{
+ service7 [1] IMPLICIT Service7,
+ action7 Action7
+ }
+ Service7::= ENUMERATED{
+ callingNumberDeliveryBlocking(0),
+ callingNameDeliveryBlocking(1)
+ }
+
+ Action7::= CHOICE{
+ toggle [2] IMPLICIT Toggle
+ }
+
+ Toggle ::= ENUMERATED{
+ presentationStatusValue(0)
+ }
+
+ UpdateGroup8::= SEQUENCE{
+ service8 [1] IMPLICIT Service8,
+ action8 Action8
+ }
+
+ Service8::= ENUMERATED{
+ customerOriginatedTrace(0),
+ cancelCallWaiting(1)
+ }
+
+ Action8::= CHOICE{
+ invoke [2] IMPLICIT Invoke8
+ }
+
+ Invoke8 ::= ENUMERATED{
+ on(0)
+ }
+
+ UpdateGroup9 ::= SEQUENCE{
+ service9 [1] IMPLICIT Service9,
+ action9 Action9
+ }
+
+ Service9::= ENUMERATED{
+ speedCalling(0)
+ }
+
+ Action9::= CHOICE{
+ changeList [2] IMPLICIT ChangeList
+ }
+
+ ChangeList ::= SEQUENCE{
+ dn [1] IMPLICIT Dn,--see Section 6.151 for the encoding
+ speedCallingCode [2] IMPLICIT SpeedCallingCode--see above for the encoding
+ }
+
+ CancelInterdigitTimer::= ActivationStateCode
+
+ SrhrGroup ::= [104] IMPLICIT SEQUENCE{
+ srhrGroupID SrhrGroupID, --see Section 6.130 for encoding
+ srhrID [1] IMPLICIT SrhrID OPTIONAL
+ }
+
+ SrhrID ::= AINDigits
+ -- range - 10 digits
+
+ NetworkTestDesignator ::= [97] IMPLICIT SEQUENCE{
+ ntdID NtdID,
+ amp1 Amp1 OPTIONAL,
+ amp2 Amp2 OPTIONAL
+ }
+
+ NtdID ::= CHOICE{
+ ntdIndirectID [1] NtdIndirectID
+ }
+
+ NtdIndirectID ::= SSPUserResourceID -- see above for encoding
+ -- For the encoding of the Amp1 parameter, see Section 6.23.
+ --For the encoding of the Amp2 parameter, see Section 6.24.
+
+ OperationsMonitoringAssignment ::= [118] IMPLICIT SEQUENCE{
+ operationsMonitoredItemID OperationsMonitoredItemID,
+ activationStateCode [3] IMPLICIT ActivationStateCode OPTIONAL
+ }
+
+ OperationsMonitoredItemID ::= CHOICE{
+ sSPUserResourceID [1] SSPUserResourceID -- see above for encoding
+ }
+ -- For the encoding of the ActivationStateCode, see above.
+
+ ActResult::= [164]IMPLICIT ENUMERATED {
+ transactionClosed(0),
+ transactionOpen(1),
+ deniedProcessOverload(2)
+ }
+
+ AINDigits ::= OCTET STRING
+
+ AlternateBillingIndicator ::= [3] IMPLICIT BillingIndicator
+
+ AlternateCarrier ::= [4] IMPLICIT CarrierFormat
+ -- range - 4 digits
+
+ AlternateTrunkGroup ::= [5] IMPLICIT OCTET STRING(SIZE(5))
+
+ AlternateDialingPlanInd ::= [115] IMPLICIT AINDigits
+ -- range - 10 digits
+
+ AMAAlternateBillingNumber ::= [6] IMPLICIT AINDigits
+ -- range 1 - 11 digits
+
+ AMABAFModules ::= [95] IMPLICIT OCTET STRING(SIZE(2..128))
+ --Contains one or more AMA modules in Bellcore AMA Format(BAF).
+
+ AMABillingFeature ::= [88] IMPLICIT AINDigits
+ -- range - 4 - 24 digits
+
+ AMABusinessCustomerID ::= [7] IMPLICIT AINDigits
+ -- range - 11 digits
+
+ AMADigitsDialedWC ::= [8] IMPLICIT AINDigits
+ -- range - 3 - 27 digits
+
+ AMALineNumber ::= [9] IMPLICIT AINDigits
+ -- range - 3 - 15 digits
+
+ AMAMeasure ::= [71] IMPLICIT ENUMERATED{
+ connectTimeRecordedDestinationSSP(0),
+ connectTimeRecordedDestinationSCP(1),
+ connectTimeNotRecorded(2)
+ }
+
+ AMAMeasurement ::= [73] IMPLICIT SEQUENCE{
+ aMATimeDuration [0] IMPLICIT AMATimeDuration,
+ aMATimeGuard [1] IMPLICIT AMATimeGuard
+ }
+
+ AMAServiceProviderID::= [101] IMPLICIT OCTET STRING(SIZE(7))
+
+ AMATimeDuration ::= OCTET STRING(SIZE(8))
+
+ AMATimeGuard ::= ENUMERATED{
+ noTimingGuard(0),
+ timingGuardExists(1)
+ }
+
+ AMASetHexABIndicator ::= [82] IMPLICIT BOOLEAN
+ -- TRUE = Set BCD character 2 of Hexadecimal Identifier in
+ -- the BAF structure to which the contents of the
+ -- AMABAFModules parameter are appended
+ -- FALSE = Default to switch - based control of Hexadecimal
+ -- Identifier table in structure code
+
+ AMASequenceNumber ::= [89] IMPLICIT OCTET STRING(SIZE(2))
+
+ AMAslpID ::= [10] IMPLICIT OCTET STRING(SIZE(5))
+
+ Amp1 ::= [11] IMPLICIT OCTET STRING(SIZE(6))
+
+ Amp2 ::= [109] IMPLICIT SEQUENCE{
+ ampAINNodeID AmpAINNodeID,
+ ampCLogSeqNo [3] IMPLICIT AmpCLogSeqNo OPTIONAL,
+ ampCLogRepInd [4] IMPLICIT AmpCLogRepInd OPTIONAL,
+ ampCallProgInd [5] IMPLICIT AmpCallProgInd OPTIONAL,
+ ampTestReqInd [6] IMPLICIT AmpTestReqInd OPTIONAL,
+ ampCLogName [7] IMPLICIT AmpCLogName OPTIONAL,
+ ampSvcProvID [8] IMPLICIT AmpSvcProvID OPTIONAL
+ }
+
+ AmpAINNodeID ::= CHOICE{
+ spcID [1] IMPLICIT SpcID,
+ iSDNDeviceID [2] IMPLICIT ISDNDeviceID
+ }
+
+ SpcID ::= OCTET STRING(SIZE(3))
+ --See Figure 1B of Chapter T1.111.4 of GR-246-CORE for the
+ -- definition of the contents of the SpcID OCTET STRING.
+
+ ISDNDeviceID ::= AINDigits
+ -- range - 10 digits
+
+ AmpCLogSeqNo ::= INTEGER(0..32767)
+ -- 0 = sequence number should not be generated; 0 is used to support
+ -- asynchronous messages
+
+ AmpCLogRepInd ::= ENUMERATED{
+ autoReportOS(0),
+ requestReport(1),
+ autoReportISDN(2)
+ }
+
+ AmpCallProgInd ::= ENUMERATED{
+ callProgressVoiceAnnouncements(0),
+ callProgressTextMessages(1)
+ }
+
+ AmpTestReqInd ::= INTEGER(0..127)
+
+ AmpCLogName ::= OCTET STRING(SIZE(1..10))
+
+ AmpSvcProvID ::= CHOICE{
+ ocn Ocn -- see Section 6.121 for encoding
+ }
+
+ AnswerIndicator ::= [12] IMPLICIT NULL
+ -- Presence = return answer supervision
+ -- Absence = do not return answer supervision
+
+ ApplicationErrorString ::= [55] IMPLICIT SEQUENCE{
+ errorCause ErrorCause,
+ failedMessage FailedMessage OPTIONAL,
+ userID UserID OPTIONAL
+ }
+
+ ApplicationIndicator ::= [90] IMPLICIT ENUMERATED{
+ routeToApplicationProcessOrSLP(0),
+ processEchoRequestMessage(1)
+ }
+
+ ApplyRestrictions ::= [152] IMPLICIT BIT STRING{
+ code(0),
+ toll(1)
+ }
+
+ BCMType ::= [134] IMPLICIT ENUMERATED{
+ oBcm(0),
+ tBcm(1)
+ }
+
+ BearerCapability ::= [13] IMPLICIT ENUMERATED{
+ speech(0),
+ f31kHzaudio(1),
+ f7kHzaudio(2),
+ b56kbps(3),
+ b64kbps(4),
+ packetModeData(5),
+ multiRate(6) -- (64 kbit / s base)
+ }
+ --packetModeData, 7KHz audio, and multiRate will NOT be used for AIN .
+
+ BillingIndicator ::= OCTET STRING(SIZE(4))
+
+ BusinessGroup ::= OCTET STRING(SIZE(7))
+
+ BusyCause ::= [14] IMPLICIT OCTET STRING(SIZE(2..3))
+
+ BusyType ::= [94] IMPLICIT ENUMERATED{
+ callCanBeOffered(0),
+ callCannotBeOffered(1)
+ }
+
+ CalledPartyID ::= [15] IMPLICIT AINDigits
+ -- range - 0 - 15 digits
+
+ CalledPartyStationType ::= [16] IMPLICIT INTEGER(0..99)
+
+ CallingGeodeticLocation ::= [162] IMPLICIT OCTET STRING(SIZE(8..13))
+
+ CallingPartyBGID ::= [17] IMPLICIT BusinessGroup
+
+ CallingPartyID ::= [18] IMPLICIT AINDigits
+ -- range - 3 - 15
+
+ CallType ::= [165] IMPLICIT ENUMERATED{
+ noIndication(0),
+ local(1),
+ intraLATAToll(2),
+ interLATAToll(3)
+ }
+
+ Carrier ::= [41] IMPLICIT CarrierFormat
+ -- range - 4 digits
+
+ CarrierFormat ::= OCTET STRING(SIZE(4))
+
+ CarrierUsage ::= [79] IMPLICIT ENUMERATED{
+ alwaysOverride(0),
+ onlyInterLATAOverride(1)
+ }
+
+ CcID ::= [133] IMPLICIT ENUMERATED{
+ null(0),
+ originatingSetup(1),
+ stable2Party(2),
+ terminatingSetup(3),
+ threePartySetup(4),
+ threePartySetupComplement(5),
+ partyOnHold(6),
+ partyOnHoldComplement(7),
+ callWaiting(8),
+ callWaitingComplement(9),
+ stableMParty(10),
+ transfer(11),
+ forward(12)
+ }
+
+ ChargeNumber ::= [19] IMPLICIT AINDigits
+ -- range - 0 - 10 digits
+
+ ChargePartyStationType ::= [20] IMPLICIT INTEGER(0..99)
+
+ ClearCause ::= [21] IMPLICIT INTEGER(0..255)
+
+ ClearCauseData ::= [74] IMPLICIT OCTET STRING(SIZE(1..20))
+
+ CloseCause ::= [72] IMPLICIT ENUMERATED{
+ callTerminated(0),
+ eDPsCompleted(1),
+ unexpectedCommunication(2),
+ calledPartyAnswered(3),
+ callForwardedEDPsCompleted(4),
+ newRequestedEvent(5)
+ }
+
+ CollectedAddressInfo ::= [22] IMPLICIT AINDigits
+ -- range 0 - 15 digits
+
+ CollectedDigits ::= [23] IMPLICIT AINDigits
+ -- range 0 - 32 digits
+
+ CongestionLevel ::= [117] IMPLICIT ENUMERATED{
+ noCongestion(0),
+ mc1(1),
+ mc2(2),
+ mc3(3)
+ }
+
+ ConnectTime ::= [58] IMPLICIT OCTET STRING(SIZE(5))
+
+ ControlCauseIndicator ::= [59] IMPLICIT OCTET STRING(SIZE(1))
+
+ ControlEncountered ::= [127] IMPLICIT OCTET STRING(SIZE(1))
+
+ ControllingLegTreatment ::= [24] IMPLICIT ENUMERATED{
+ dialToneOn(0),
+ ringBackAudibleRingingToneOn(1),
+ networkCongestionReorderToneOn(3),
+ busyToneOn(4),
+ confirmationTone(5),
+ callWaitingTone(7),
+ tonesOff(63),
+ alertingOnPattern0Normal(64),
+ alertingOnPattern1DistinctiveIntergroup(65),
+ alertingOnPattern2DistinctiveSpecial(66),
+ alertingOnPattern3EKTS(67),
+ alertingOnPattern4ReminderRing(68),
+ alertingOff(79),
+ recallDialToneOn(17),
+ bargeInToneOn(18),
+ incomingAdditionalCallTone(251),
+ priorityAdditionalCallTone(252),
+ expensiveRouteWarningTone(253),
+ campOnTone(19),
+ receiverOffHookTone(20),
+ callingCardServiceTone(21),
+ stutterDialTone(22),
+ silence(23),
+ onHookTR30WithIndication(24),
+ onHookTR30NoIndication(25)
+ }
+
+ CTRConnection ::= [141] IMPLICIT BOOLEAN
+ -- TRUE = reported event caused by Connect_To_Resource
+ -- FALSE = reported event not caused by Connect_To_Resource
+
+ CsID ::= [137] IMPLICIT INTEGER(1..2)
+ --The range is 1 - 2 for CsIDs.
+
+ DestinationAddress ::= [86] IMPLICIT AINDigits
+ -- range - 10 digits
+
+ DisconnectCause ::= [116] IMPLICIT ENUMERATED{
+ farEnd(0)
+ }
+
+ DisconnectFlag ::= [25] IMPLICIT NULL
+ -- Presence = disconnect leg
+ -- Absence = do not disconnect leg
+
+ DisplayText ::= [26] IMPLICIT SEQUENCE SIZE(1..15) OF DisplayInformation
+
+ DisplayInformation ::= CHOICE{
+ blank[0] IMPLICIT OCTET STRING(SIZE(1..20)),
+ skip[1] IMPLICIT OCTET STRING(SIZE(1..20)),
+ continuation[2] IMPLICIT OCTET STRING(SIZE(1..20)),
+ calledAddress[3] IMPLICIT OCTET STRING(SIZE(1..20)),
+ cause[4] IMPLICIT OCTET STRING(SIZE(1..20)),
+ progressIndicator[5] IMPLICIT OCTET STRING(SIZE(1..20)),
+ notificationIndicator[6] IMPLICIT OCTET STRING(SIZE(1..20)),
+ prompt[7] IMPLICIT OCTET STRING(SIZE(1..20)),
+ accumulatedDigits[8] IMPLICIT OCTET STRING(SIZE(1..20)),
+ status[9] IMPLICIT OCTET STRING(SIZE(1..20)),
+ inband[10] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ callingAddress[11] IMPLICIT OCTET STRING(SIZE(1..20)),
+ reason[12] IMPLICIT OCTET STRING(SIZE(1..20)),
+ callingPartyName[13] IMPLICIT OCTET STRING(SIZE(1..20)),
+ calledPartyName[14] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ originalCalledName[15] IMPLICIT OCTET STRING(SIZE(1..20)),
+ redirectingName[16] IMPLICIT OCTET STRING(SIZE(1..20)),
+ connectedName[17] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ origRestrictions[18] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ dateTimeOfDay[19] IMPLICIT OCTET STRING(SIZE(1..20)),
+ callAppearanceID[20] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ featureAddress[21] IMPLICIT OCTET STRING(SIZE(1..20)),
+ redirectionName[22] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ redirectionNumber[23] IMPLICIT OCTET STRING(SIZE(1..20)),
+ redirectingNumber[24] IMPLICIT OCTET STRING(SIZE(1..20)),
+ originalCalledNumber[25] IMPLICIT OCTET STRING(SIZE(1..20)),
+ connectedNumber[26] IMPLICIT OCTET STRING
+ (SIZE(1..20)),
+ text[30] IMPLICIT OCTET STRING(SIZE(1..20)),
+ redirectingReason[31] IMPLICIT OCTET STRING(SIZE(1..20))
+ }
+ --Each DisplayInformation field can be from 1 - 20 octets. The information shown in italics is not required for AIN and is reserved for future releases.
+
+ DPConverter ::= [76] IMPLICIT BOOLEAN
+ -- True = the switch should perform Dial Pulse to DTMF conversion
+ -- False = the switch should not perform Dial Pulse to DTMF conversion
+
+ DTMFDigitsDetected ::= [153] IMPLICIT AINDigits
+ --The range is 1 - 4
+
+ EchoData ::= [60] IMPLICIT OCTET STRING(SIZE(6))
+
+ EditListType ::= ENUMERATED{
+ addListElement(0),
+ deleteListElement(1)
+ }
+
+ EDPNotification ::= [93] IMPLICIT BIT STRING{
+ oCalledPartyBusy(0), --always "0"
+ oNoAnswer(1), --always "0"
+ oTermSeized(2),
+ oAnswer(3),
+ tBusy(4), --always "0"*
+ tNoAnswer(5), --always "0"*
+ termResourceAvailable(6), -- *
+ tAnswer(7), -- *
+ networkBusy(8), --always “0”*
+ oSuspended(9), --always “0”
+ oDisconnectCalled(10), --always “0”
+ oDisconnect(11), --always “0”
+ oAbandon(12), --always “0”
+ featureActivator(13), --always “0”
+ switchHookFlash(14), --always “0”
+ success(15), --always “0”
+ tDisconnect(16),
+ timeout(17),
+ originationAttempt(18),
+ oDTMFEntered(19),
+ tDTMFEntered(20)
+ }
+ --Bit = 1 - request is requested, Bit = 0 - request is not requested
+ -- *These values are conditional requirements, based on the condition that the SSP supports
+ -- the corresponding EDP shown as an objective in GR - 1298 - CORE, Section 4, Table 4 - 1.
+
+ EDPRequest ::= [92] IMPLICIT BIT STRING{
+ oCalledPartyBusy(0),
+ oNoAnswer(1),
+ oTermSeized(2), --always "0"
+ oAnswer(3), --always "0"
+ tBusy(4), --*
+ tNoAnswer(5), --*
+ termResourceAvailable(6), --always "0"*
+ tAnswer(7), --always "0"*
+ networkBusy(8),
+ oSuspended(9),
+ oDisconnectCalled(10),
+ oDisconnect(11),
+ oAbandon(12),
+ featureActivator(13),
+ switchHookFlash(14),
+ success(15),
+ tDisconnect(16),
+ timeout(17),
+ originationAttempt(18),
+ oDTMFEntered(19),
+ tDTMFEntered(20)
+ }
+ --Bit = 1 - request is requested, Bit = 0 - request is not requested
+ -- *These values are conditional requirements, based on the condition that the SSP supports
+ -- the corresponding EDP shown as an objective in GR - 1298 - CORE, Section 4, Table 4 - 1.
+
+ EnvelopContent ::= [75] IMPLICIT OCTET STRING(SIZE(1..180))
+
+ EnvelopeEncodingAuthority ::= [98] IMPLICIT OBJECT IDENTIFIER
+ -- Maximum of 15 octets
+
+ ErrorCause ::= [56] IMPLICIT ENUMERATED{
+ erroneousDataValue(0),
+ missingConditionalParameter(1),
+ responseMessageTimerExpired(2),
+ unexpectedCommunication(3),
+ unexpectedMessage(4),
+ unexpectedMessageSequence(5),
+ unexpectedParameterSequence(6)
+ }
+
+ ExtendedRinging ::= [146] IMPLICIT NULL
+ -- Presence = apply extended ringing
+ -- Absence = do not apply extended ringing
+
+ ExtensionParameter ::= SEQUENCE{
+ assignmentAuthority OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY assignmentAuthority
+ }
+ --The maximum length of the assignmentAuthority is 15 octets
+
+ FacilityGID ::= CHOICE{
+ mlhg Mlhg
+ }
+
+ Mlhg ::= [29] IMPLICIT INTEGER(1..2047)
+
+ FacilityMemberID ::= [31] IMPLICIT INTEGER(1..2047)
+ --The range is 1 - 2047 for MLHG member IDs.
+
+ FacilityStatus ::= [61] IMPLICIT ENUMERATED{
+ busy(0),
+ busyInService(1),
+ busyOutOfService(2),
+ idle(3),
+ idleInService(4),
+ idleOutOfService(5),
+ inService(6),
+ outOfService(7)
+ }
+
+ FailedMessage ::= [57] IMPLICIT SEQUENCE{
+ opCode INTEGER,
+ parameter OCTET STRING OPTIONAL,
+ invParms [1] IMPLICIT InvParms OPTIONAL
+ }
+ --The opCode field is equivalent to the value of the Operation Code that
+ -- represents the failed message.
+ --The parameter field represents the parameter, including the identifier,
+ --length and contents, of the received message that contains the
+ -- erroneous data value.
+
+ InvParms ::= SEQUENCE SIZE(1) OF Parms
+
+ Parms ::= CHOICE{
+ accessCode AccessCode,
+ aCGEncountered ACGEncountered,
+ alternateBillingIndicator AlternateBillingIndicator,
+ alternateCarrier AlternateCarrier,
+ alternateTrunkGroup AlternateTrunkGroup,
+ aMAAlternateBillingNumber AMAAlternateBillingNumber,
+ aMABusinessCustomerID AMABusinessCustomerID,
+ aMAslpID AMAslpID,
+ amp1 Amp1,
+ amp2 Amp2,
+ answerIndicator AnswerIndicator,
+ bearerCapability BearerCapability,
+ busyCause BusyCause,
+ calledPartyID CalledPartyID,
+ calledPartyStationType CalledPartyStationType,
+ callingGeodeticLocation CallingGeodeticLocation,
+ callingPartyBGID CallingPartyBGID,
+ callingPartyID CallingPartyID,
+ callType CallType,
+ chargeNumber ChargeNumber,
+ chargePartyStationType ChargePartyStationType,
+ clearCause ClearCause,
+ collectedAddressInfo CollectedAddressInfo,
+ collectedDigits CollectedDigits,
+ controllingLegTreatment ControllingLegTreatment,
+ disconnectFlag DisconnectFlag,
+ displayText DisplayText,
+ dTMFDigitsDetected DTMFDigitsDetected,
+ facilityGID FacilityGID,
+ facilityMemberID FacilityMemberID,
+ failureCause FailureCause,
+ genericName GenericName,
+ lata Lata,
+ oDTMFDigitsString ODTMFDigitsString,
+ oDTMFNumberofDigits ODTMFNumberOfDigits,
+ originalCalledPartyID OriginalCalledPartyID,
+ outpulseNumber OutpulseNumber,
+ overflowBillingIndicator OverflowBillingIndicator,
+ passiveLegTreatment PassiveLegTreatment,
+ partyID PartyID,
+ partyOnHold PartyOnHold,
+ primaryBillingIndicator PrimaryBillingIndicator,
+ carrier Carrier,
+ primaryTrunkGroup PrimaryTrunkGroup,
+ redirectingPartyID RedirectingPartyID,
+ redirectionInformation RedirectionInformation,
+ resourceType ResourceType,
+ secondAlternateBillingIndicator SecondAlternateBillingIndicator,
+ secondAlternateCarrier SecondAlternateCarrier,
+ secondAlternateTrunkGroup SecondAlternateTrunkGroup,
+ spid Spid,
+ sSPResponseMessageTimerT1 SSPResponseMessageTimerT1,
+ strParameterBlock StrParameterBlock,
+ tcm Tcm,
+ tDTMFDigitString TDTMFDigitString,
+ tDTMFNumberOfDigits TDTMFNumberOfDigits,
+ timerUpdated TimerUpdated,
+ triggerCriteriaType TriggerCriteriaType,
+ triggerInformation TriggerInformation,
+ userID UserID,
+ verticalServiceCode VerticalServiceCode,
+ connectTime ConnectTime,
+ controlCauseIndicator ControlCauseIndicator,
+ echoData EchoData,
+ facilityStatus FacilityStatus,
+ gapDuration GapDuration,
+ gapInterval GapInterval,
+ globalTitleAddress GlobalTitleAddress,
+ monitorTime MonitorTime,
+ statusCause StatusCause,
+ terminationIndicator TerminationIndicator,
+ translationType TranslationType,
+ triggerCriteriaFlag TriggerCriteriaFlag,
+ tSTRCTimer TSTRCTimer,
+ aMAMeasure AMAMeasure,
+ aMAMeasurement AMAMeasurement,
+ clearCauseData ClearCauseData,
+ envelopContent EnvelopContent,
+ iPReturnBlock IPReturnBlock,
+ sap Sap,
+ aMASetHexABIndicator AMASetHexABIndicator,
+ serviceContext ServiceContext,
+ extensionParameter [84] IMPLICIT ExtensionParameter,
+ securityEnvelope SecurityEnvelope,
+ destinationAddress DestinationAddress,
+ derviceProviderID ServiceProviderID,
+ aMABillingFeature AMABillingFeature,
+ aMASequenceNumber AMASequenceNumber,
+ applicationIndicator ApplicationIndicator,
+ oNoAnswerTimer ONoAnswerTimer,
+ eDPRequest EDPRequest,
+ eDPNotification EDPNotification,
+ busyType BusyType,
+ aMABAFModules AMABAFModules,
+ sTRConnection STRConnection,
+ errorCause ErrorCause,
+ resultCause ResultCause,
+ cTRConnection CTRConnection,
+ rTPReroutingNumber RTPReroutingNumber,
+ rTPServiceIndicator RTPServiceIndicator,
+ administrableObject AdministrableObject,
+ envelopeEncodingAuthority EnvelopeEncodingAuthority,
+ tNoAnswerTimer TNoAnswerTimer,
+ editListType EditListType,
+ aCGGlobalOverride ACGGlobalOverride,
+ notificationIndicator NotificationIndicator,
+ aMALineNumber AMALineNumber,
+ aMADigitsDialedWC AMADigitsDialedWC,
+ carrierUsage CarrierUsage,
+ closeCause CloseCause,
+ dPConverter DPConverter,
+ failureCauseData FailureCauseData,
+ genericAddress GenericAddress,
+ srhrGroupID SrhrGroupID,
+ genericAddressList GenericAddressList,
+ networkSpecificFacilities NetworkSpecificFacilities,
+ forwardCallIndicator ForwardCallIndicator,
+ alternateDialingPlanInd AlternateDialingPlanInd,
+ disconnectCause DisconnectCause,
+ aMAServiceProviderID AMAServiceProviderID,
+ congestionLevel CongestionLevel,
+ controlEncountered ControlEncountered,
+ infoProvided InfoProvided,
+ provideInfo ProvideInfo,
+ signalingPointCode SignalingPointCode,
+ subsystemNumber SubsystemNumber,
+ notificationDuration NotificationDuration,
+ wakeUpDuration WakeUpDuration,
+ oSIIndicator OSIIndicator,
+ legID LegID,
+ ccID CcID,
+ bCMType BCMType,
+ pointInCall PointInCall,
+ featureActivatorID FeatureActivatorID,
+ csID CsID,
+ lampTreatment LampTreatment,
+ timeoutTimer TimeoutTimer,
+ transID TransID,
+ actResult ActResult,
+ extendedRinging ExtendedRinging,
+ jurisdictionInformation JurisdictionInformation,
+ prefix Prefix,
+ genericDigitsList GenericDigitsList,
+ applyRestrictions ApplyRestrictions
+ }
+
+ FailureCause ::= [32] IMPLICIT ENUMERATED{
+ rateTooHigh(1),
+ unavailableResources(2),
+ apTimeout(3),
+ apBusy(4),
+ channelsBusy(13),
+ abort(14),
+ resourceLimitation(15),
+ applicationError(16),
+ securityError(17),
+ protocolError(18),
+ timerExpired(19),
+ temporaryFailure(20),
+ msridDoesNotMatchUserProfile(21),
+ segmentationError(22),
+ ncasDisallowed(23),
+ controlEncountered(24),
+ improperCoding(25),
+ inappropriateCondition(26),
+ inappropriateUserInterface(27),
+ inappropriateLegManipulation(28),
+ callingInterfaceBusy(29)
+ }
+ FailureCauseData ::= [112] IMPLICIT OCTET STRING(SIZE(1..5))
+ FeatureActivatorID ::= [136] IMPLICIT OCTET STRING(SIZE(1..2))
+ ForwardCallIndicator ::= [113] IMPLICIT OCTET STRING(SIZE(2))
+ GapDuration ::= [62] IMPLICIT ENUMERATED{
+ no1Second(1),
+ no2Seconds(2),
+ no4Seconds(3),
+ no8Seconds(4),
+ no16Seconds(5),
+ no32Seconds(6),
+ no64Seconds(7),
+ no128Seconds(8),
+ no256Seconds(9),
+ no512Seconds(10),
+ no1024Seconds(11),
+ no2048Seconds(12),
+ infinity(13)
+ }
+
+ GapInterval ::= CHOICE{
+ nationalGapInterval NationalGapInterval,
+ privateGapInterval PrivateGapInterval
+ }
+
+ NationalGapInterval ::= [63] IMPLICIT ENUMERATED{
+ removeGapControl(0),
+ no0Seconds(1),
+ no010Seconds(2), -- 1 / 10 sec.
+ no025Seconds(3), -- 1 / 4 sec.
+ no050Seconds(4), -- 1 / 2 sec.
+ no1Second(5),
+ no2Seconds(6),
+ no5Seconds(7),
+ no10Seconds(8),
+ no15Seconds(9),
+ no30Seconds(10),
+ no60Seconds(11),
+ no120Seconds(12),
+ no300Seconds(13),
+ no600Seconds(14),
+ stopAllCalls(15)
+ }
+
+ PrivateGapInterval ::= [64] IMPLICIT ENUMERATED{
+ no0Seconds(0),
+ no3Seconds(1),
+ no4Seconds(2),
+ no6Seconds(3),
+ no8Seconds(4),
+ no11Seconds(5),
+ no16Seconds(6),
+ no22Seconds(7),
+ no30Seconds(8),
+ no42Seconds(9),
+ no58Seconds(10),
+ no81Seconds(11),
+ no112Seconds(12),
+ no156Seconds(13),
+ no217Seconds(14),
+ no300Seconds(15),
+ removeGapControl(16),
+ no010Seconds(17), -- 1 / 10 sec.
+ no025Seconds(18), -- 1 / 4 sec.
+ no050Seconds(19), -- 1 / 2 sec.
+ no1Second(20),
+ no2Seconds(21)
+ }
+
+ GenericAddress ::= [80] IMPLICIT OCTET STRING(SIZE(4..11))
+
+ GenericAddressList ::= [107] IMPLICIT SEQUENCE SIZE(1..5) OF GenericAddress
+
+ GenericName ::= [33] IMPLICIT OCTET STRING
+
+ GenericDigitsList ::= [150] IMPLICIT SEQUENCE SIZE (1..5) OF GenericDigits
+
+ GenericDigits ::= [149] IMPLICIT OCTET STRING (SIZE(2..11))
+
+ GlobalTitleAddress ::= [69] IMPLICIT OCTET STRING
+
+ InfoProvided ::= [100] IMPLICIT SEQUENCE{
+ activationStateCode [1] IMPLICIT ActivationStateCode OPTIONAL,
+ entireList [2] IMPLICIT EntireList OPTIONAL,
+ memorySlot [3] IMPLICIT MemorySlot OPTIONAL,
+ listSize [4] IMPLICIT ListSize OPTIONAL,
+ forwardToDn [5] IMPLICIT ForwardToDn OPTIONAL,
+ delayInterval [6] IMPLICIT DelayInterval OPTIONAL,
+ empty [7] IMPLICIT Empty OPTIONAL
+ }
+ --For the encoding of the ActivationStateCode parameter, see Section 6.4.1.
+
+ EntireList ::= SEQUENCE SIZE(1..32) OF Entry2
+
+ Entry2 ::= CHOICE{
+ dn [1] IMPLICIT Dn, --see Section 6.151 for the encoding
+ privateDn [2] IMPLICIT PrivateDn
+ }
+
+ PrivateDn ::= ENUMERATED{
+ private (0)
+ }
+
+ MemorySlot ::= SEQUENCE{
+ incoming [1] IMPLICIT Incoming OPTIONAL,
+ outgoing [2] IMPLICIT Outgoing OPTIONAL
+ }
+
+ Incoming ::= SEQUENCE{
+ aINDigits AINDigits,
+ timestamp Timestamp--See GR-246-CORE for values of this field.
+ }
+
+ Outgoing ::= SEQUENCE{
+ aINDigits AINDigits,
+ timestamp Timestamp--See GR-246-CORE for values of this field.
+ }
+
+ Timestamp ::= INTEGER
+ ListSize ::= INTEGER(1..32)
+ ForwardToDn ::= Dn--See Section 6.151 for the encoding
+
+ Empty ::= BIT STRING{
+ entireList(0),
+ outgoingmemorySlot(1),
+ incomingmemorySlot(2),
+ forwardToDn(3)
+ }
+
+ IPReturnBlock ::= [78] IMPLICIT OCTET STRING(SIZE(1..120))
+
+ JurisdictionInformation::= [147] IMPLICIT OCTET STRING(SIZE(3))
+
+ LampTreatment ::= [138] IMPLICIT OCTET STRING(SIZE(2..3))
+
+ Lata ::= [35] IMPLICIT AINDigits
+ -- range - 3 digits
+
+ LegID ::= [132] IMPLICIT INTEGER(0..2)
+ --The range is 0 - 2 for IDs.
+
+ MonitorTime ::= [65] IMPLICIT OCTET STRING(SIZE(3))
+
+ NetworkSpecificFacilities ::= [108] IMPLICIT OCTET STRING(SIZE(2..12))
+
+ NotificationDuration ::= [128] IMPLICIT INTEGER(1..99)
+
+ NotificationIndicator ::= [111] IMPLICIT BOOLEAN
+ -- TRUE = Switch Notification Message
+ -- FALSE = Switch Request Message
+
+ ODTMFDigitsString ::= [154] IMPLICIT AINDigits
+ --The range is 1 - 4
+
+ ODTMFNumberOfDigits ::= [155] IMPLICIT INTEGER(1..4)
+
+ ONoAnswerTimer ::= [91] IMPLICIT INTEGER(1..120)
+
+ OriginalCalledPartyID ::= [36] IMPLICIT AINDigits
+ -- range - 3 - 15 digits
+
+ OSIIndicator ::= [129] IMPLICIT BOOLEAN
+ --True = the switch should apply Open Switching Interval
+ --False = the switch should not apply Open Switching Interval
+
+ OutpulseNumber ::= [37] IMPLICIT AINDigits
+ -- 15 digits maximum
+
+ OverflowBillingIndicator ::= [38] IMPLICIT BillingIndicator
+
+ PartyID ::= [159] IMPLICIT ENUMERATED{
+ callingParty(0),
+ calledParty(1),
+ bothParties(2)
+ }
+
+ PartyOnHold ::= [146] IMPLICIT NULL
+ -- Presence = place party on hold
+ -- Absence = do not place party on hold
+
+ PassiveLegTreatment ::= [39] IMPLICIT ENUMERATED{
+ dialToneOn(0),
+ ringBackAudibleRingingToneOn(1),
+ networkCongestionReorderToneOn(3),
+ busyToneOn(4),
+ confirmationTone(5),
+ callWaitingTone(7),
+ tonesOff(63),
+ alertingOnPattern0Normal(64),
+ alertingOnPattern1DistinctiveIntergroup(65),
+ alertingOnPattern2DistinctiveSpecial(66),
+ alertingOnPattern3EKTS(67),
+ alertingOnPattern4ReminderRing(68),
+ alertingOff(79),
+ recallDialToneOn(17),
+ bargeInToneOn(18),
+ incomingAdditionalCallTone(251),
+ priorityAdditionalCallTone(252),
+ expensiveRouteWarningTone(253),
+ campOnTone(19),
+ receiverOffHookTone(20),
+ callingCardServiceTone(21),
+ stutterDialTone(22),
+ silence(23)
+ }
+ --The values shown in italics are not required for AIN and are reserved for future
+ -- AIN releases.
+
+ Prefix ::= [148] IMPLICIT ENUMERATED{
+ onePlus(0)
+ }
+
+ PointInCall ::= [135] IMPLICIT ENUMERATED{
+ oNull(1),
+ authorizeOrigAttempt(2),
+ collectInformation(3),
+ analyzeInformation(4),
+ selectRoute(5),
+ authorizeCallSetup(6),
+ sendCall(7),
+ oAlerting(8),
+ oActive(9),
+ oSuspended(10),
+ tNull(11),
+ authorizeTermination(12),
+ selectFacility(13),
+ presentCall(14),
+ tAlerting(15),
+ tActive(16),
+ tSuspended(17)
+ }
+
+ PrimaryBillingIndicator ::= [40] IMPLICIT BillingIndicator
+
+ PrimaryTrunkGroup ::= [42] IMPLICIT OCTET STRING(SIZE(5))
+
+ ProvideInfo ::= [114] IMPLICIT SEQUENCE{
+ requestGroups RequestGroups OPTIONAL,
+ requestMemorySlot [11] IMPLICIT RequestMemorySlot OPTIONAL
+ }
+
+ RequestGroups ::= CHOICE{
+ requestGroup1 [1] IMPLICIT RequestGroup1,
+ requestGroup2 [2] IMPLICIT RequestGroup2,
+ requestGroup3 [3] IMPLICIT RequestGroup3,
+ requestGroup4 [4] IMPLICIT RequestGroup4,
+ requestGroup5 [5] IMPLICIT RequestGroup5,
+ requestGroup6 [6] IMPLICIT RequestGroup6
+ }
+
+ RequestGroup1 ::= SEQUENCE{
+ service1 [1] IMPLICIT Service1,--See Section 6.4.2 for the encoding.
+ request1 [2] IMPLICIT Request1
+ }
+
+ Request1 ::= BIT STRING{
+ activationStatus(0)
+ }
+ RequestGroup2 ::= SEQUENCE{
+ service2 [1] IMPLICIT Service2,--See Section 6.4.2 for the encoding.
+ request2 [2] IMPLICIT Request2
+ }
+
+ Request2 ::= BIT STRING{
+ activationStatus(0),
+ delayInterval(1)
+ }
+
+ RequestGroup3 ::= SEQUENCE{
+ service3 [1] IMPLICIT Service3,--See Section 6.4.2 for the encoding
+ request3 [2] IMPLICIT Request3
+ }
+
+ Request3 ::= BIT STRING{
+ activationStatus(0),
+ entireList(1),
+ listSize(2)
+ }
+
+ RequestGroup4 ::= SEQUENCE{
+ service4 [1] IMPLICIT Service4,--See Section 6.4.2 for the encoding
+ request4 [2] IMPLICIT Request4
+ }
+
+ Request4 ::= BIT STRING{
+ activationStatus(0),
+ forwardingDn(1)
+ }
+
+ RequestGroup5 ::= SEQUENCE{
+ service5 [1] IMPLICIT Service5,--See Section 6.4.2 for the encoding
+ request5[2] IMPLICIT Request5
+ }
+
+ Request5 ::= BIT STRING{
+ activationStatus(0),
+ forwardingDn(1),
+ entireList(2),
+ listSize(3)
+ }
+ RequestGroup6 ::= SEQUENCE{
+ service6 [1] IMPLICIT Service6,--See Section 6.4.2 for encoding
+ request6 [2] IMPLICIT Request6
+ }
+
+ Request6 ::= BIT STRING{
+ delayInterval(0)
+ }
+ RequestMemorySlot ::= BIT STRING{
+ incoming(0),
+ outgoing(1)
+ }
+ RedirectingPartyID ::= [43] IMPLICIT AINDigits
+ -- range - 3 - 15 digits
+
+ RedirectionInformation ::= [44] IMPLICIT OCTET STRING(SIZE(2))
+
+ ResourceType ::= [45] IMPLICIT INTEGER(0..127)
+
+ ResultCause ::= [151] IMPLICIT ENUMERATED{
+ confServiceActivated(0),
+ confServiceDeactivatedorCancelled(1),
+ confAnonymousEntryAdded(2),
+ confPublicEntryAdded(3),
+ confAnonymousEntryRemoved(4),
+ confPublicEntryRemoved(5),
+ confAllAnonymousEntriesRemoved(6),
+ confAllEntriesRemoved(7),
+ confForwardingDnSet(8),
+ confForwardingDnCleared(9),
+ confDelayIntervalUpdated(10),
+ confInterdigitTimerOn(11),
+ confInterdigitTimerOff(12),
+ confDPConverterOn(13),
+ confDPConverterOff(14),
+ deniedServiceAlreadyActive(15),
+ deniedServiceNotActivated(16),
+ deniedInvalidForwardingDn(17),
+ deniedPermanentPresentationPrivate(18),
+ deniedPermanentPresentationPublic(19),
+ deniedListIsEmpty(20),
+ deniedListIsFull(21),
+ deniedAnonymousDnAlreadyOnList(22),
+ deniedPublicDnAlreadyOnList(23),
+ deniedNoMatch(24),
+ deniedDnNotOnList(25),
+ deniedIncomingMemorySlotEmpty(26),
+ deniedUnsuccessfulUpdate(27)
+ }
+
+ RTPReroutingNumber::= [143] IMPLICIT AINDigits
+ -- Range - 3 - 15 digits
+
+ RTPServiceIndicator ::= [144] IMPLICIT OCTET STRING(SIZE(1))
+
+ Sap ::= [81] IMPLICIT OCTET STRING(SIZE(1..10))
+
+ SecondAlternateBillingIndicator ::= [46] IMPLICIT BillingIndicator
+
+ SecondAlternateCarrier ::= [47] IMPLICIT CarrierFormat
+ -- range - 4 digits
+
+ SecondAlternateTrunkGroup ::= [48] IMPLICIT OCTET STRING(SIZE(5))
+
+ SecurityEnvelope ::= [85] IMPLICIT OCTET STRING(SIZE(3..75))
+
+ ServiceContext ::= [83] IMPLICIT INTEGER(0..32767)
+ ServiceProviderID ::= CHOICE{
+ ocn Ocn,
+ msrID MsrID
+ }
+
+ Ocn ::= [87] IMPLICIT IA5String(SIZE(4..8))
+
+ MsrID ::= [106] IMPLICIT AINDigits -- range - 10 digits
+ --identifies the Message Storage and Retrieval System
+
+ SignalingPointCode ::= [142] IMPLICIT OCTET STRING(SIZE(3))
+ --See Figure 1B of Chapter T1.111.4 of GR-246-CORE
+ -- for the definition of the contents of the SignalingPointCode OCTET STRING.
+
+ Spid ::= [49] IMPLICIT OCTET STRING(SIZE(3..20))
+ --This parameter includes a character string with 3 - 20 IA5 characters,
+ --the last 2 are required to be numeric in the range of 00 - 62.
+
+ SubsystemNumber ::= [130] IMPLICIT INTEGER(0..255)
+ --See Chapter T1.112.3 of GR-246-CORE for values of this parameter
+
+ SrhrGroupID ::= [77] IMPLICIT INTEGER(0..32767)
+
+ SSPResponseMessageTimerT1 ::= [166] IMPLICIT INTEGER(1..300)
+ --Units of tenths of seconds
+
+ StatusCause ::= [66] IMPLICIT ENUMERATED{
+ statusMatch(0),
+ timeOut(1),
+ error(2)
+ }
+
+ STRConnection ::= [96] IMPLICIT BOOLEAN
+ -- TRUE = reported event caused by Send_To_Resource
+ -- FALSE = reported event not caused by Send_To_Resource
+
+ StrParameterBlock ::= [50] CHOICE {
+ announcementBlock [0] IMPLICIT AnnouncementBlock,
+ announcementDigitBlock [1] IMPLICIT AnnouncementDigitBlock,
+ flexParameterBlock [2] IMPLICIT FlexParameterBlock
+ }
+
+ AnnouncementBlock ::= SEQUENCE{
+ uninterAnnounceBlock [1] IMPLICIT UninterAnnounceBlock OPTIONAL,
+ interAnnounceBlock [2] IMPLICIT InterAnnounceBlock OPTIONAL
+ }
+
+ UninterAnnounceBlock ::= SEQUENCE SIZE(1..10) OF AnnounceElement
+
+ InterAnnounceBlock ::= SEQUENCE SIZE(1..10) OF AnnounceElement
+
+ AnnounceElement ::= OCTET STRING(SIZE(3..131))
+
+ AnnouncementDigitBlock ::= SEQUENCE{
+ maximumDigits [0] IMPLICIT MaximumDigits,
+ uninterAnnounceBlock [1] IMPLICIT UninterAnnounceBlock OPTIONAL,
+ interAnnounceBlock [2] IMPLICIT InterAnnounceBlock OPTIONAL
+ }
+
+ MaximumDigits ::= INTEGER(0..255)
+ -- range: 0 - 32 is "fixed number of digits" (e.g., 5 means collect 5 digits)
+ -- 33 - 252 is spare
+ -- 253 is "normal number of digits"
+ -- 254 is "variable number of digits"
+ -- 255 is spare
+
+ FlexParameterBlock ::= OCTET STRING(SIZE(1..120))
+
+ Tcm ::= [51] IMPLICIT AINDigits
+ -- Range 1 - 4 digits
+
+ TDTMFDigitString ::= [157] IMPLICIT AINDigits
+ --The range is 1 - 4
+
+ TDTMFNumberOfDigits ::= [158] IMPLICIT INTEGER(1..4)
+
+ TerminationIndicator ::= [67] IMPLICIT OCTET STRING(SIZE(1))
+
+ TimeoutTimer ::= [139] IMPLICIT CHOICE{
+ intervalTime [0] IMPLICIT IntervalTime,
+ localSSPTime [1] IMPLICIT LocalSSPTime,
+ absoluteSCPTime [2] IMPLICIT AbsoluteSCPTime
+ }
+
+ IntervalTime ::= INTEGER(1..86400)
+
+ --IntervalTime is in units of seconds
+
+ LocalSSPTime ::= OCTET STRING(SIZE(7))
+
+ AbsoluteSCPTime ::= OCTET STRING(SIZE(7))
+
+ TimerUpdated ::= [167] IMPLICIT ENUMERATED{
+ success(0),
+ failure(1),
+ transaction-already-closed(2)
+ }
+
+ TNoAnswerTimer ::= [99] IMPLICIT INTEGER(1..120)
+
+ TransID ::= [163] IMPLICIT OCTET STRING(SIZE(4))
+
+ TranslationType ::= [70] IMPLICIT INTEGER(0..255)
+ --See Chapter T1.112.3 of GR-246-CORE for values of this parameter
+
+ TriggerCriteriaFlag ::= [68] IMPLICIT OCTET STRING(SIZE(2))
+
+ TriggerCriteriaType ::= [52] IMPLICIT ENUMERATED{
+ featureActivator(0),
+ verticalServiceCode(1),
+ customizedAccess(2),
+ customizedIntercom(3),
+ npa(4),
+ npaNXX(5),
+ nxx(6),
+ nxxXXXX(7),
+ npaNXXXXXX(8),
+ countryCodeNPANXXXXXX(9),
+ carrierAccess(10),
+ prefixes(11),
+ n11(12),
+ aFR(13),
+ sharedIOTrunk(14),
+ terminationAttempt(15),
+ offHookImmediate(16),
+ offHookDelay(17),
+ channelSetupPRI(18),
+ npaN(19),
+ npaNX(20),
+ npaNXXX(21),
+ npaNXXXX(22),
+ npaNXXXXX(23),
+ networkBusy(24),
+ tNoAnswer(25),
+ tBusy(26),
+ oCalledPartyBusy(27),
+ specificFeatureCode(28),
+ oNoAnswer(29),
+ priNetworkServices(30),
+ oSwitchHookFlashImmediate(31),
+ oFeatureActivator(32),
+ oSwitchHookFlashSpecifiedCode(33),
+ tSwitchHookFlashImmediate(34),
+ tFeatureActivator(35),
+ tSwitchHookFlashSpecifiedCode(36),
+ numberPortability(37),
+ onePlus(38),
+ specifiedCarrier(39),
+ international(40),
+ zeroPlus(41),
+ zeroMinus(42),
+ localNumberPortabilityPORC(43),
+ localNumberPortabilityPORCdonor(44),
+ reserved(45),
+ termResourceAvailable(46),
+ officePublicFeatureCode(47),
+ trunkGroup(48),
+ dedicatedTrunkGroup(49),
+ reserved(50)
+ }
+
+ TSTRCTimer ::= [156] IMPLICIT INTEGER(0..300)
+ --Units of minutes
+
+ UserID ::= [53] CHOICE{
+ dn [1] IMPLICIT Dn,
+ bri [2] IMPLICIT SEQUENCE {
+ spid Spid,
+ dn Dn
+ }, --BRI(ISDNI)
+ trunkGroupID [5] IMPLICIT TrunkGroupID,
+ privateFacilityGID [6] IMPLICIT PrivateFacilityGID,
+ aDSIcpeID ADSIcpeID
+ }
+
+ Dn ::= OCTET STRING(SIZE(5))
+
+ TriggerInformation ::= OCTET STRING(SIZE(0..31))
+
+ TrunkGroupID ::= INTEGER(0..9999)
+
+ PrivateFacilityGID ::= INTEGER(0..9999)
+
+ ADSIcpeID ::= OCTET STRING(SIZE(4))
+
+ VerticalServiceCode ::= [54] IMPLICIT AINDigits
+ -- Maximum 10 characters; the 1st character may be a * or digit.
+ --The remaining characters are always digits.
+
+ WakeUpDuration ::= [131] IMPLICIT INTEGER(1..999)
+
+ END
diff --git a/epan/dissectors/asn1/ain/CMakeLists.txt b/epan/dissectors/asn1/ain/CMakeLists.txt
new file mode 100644
index 0000000000..3ca2936638
--- /dev/null
+++ b/epan/dissectors/asn1/ain/CMakeLists.txt
@@ -0,0 +1,39 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+
+set( PROTOCOL_NAME ain )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST_LATE
+ ../ros/Remote-Operations-Information-Objects.asn
+ ../ros/Remote-Operations-Generic-ROS-PDUs.asn
+)
+
+
+set( ASN_FILE_LIST
+ AIN-Operations.asn
+ AIN-Errors.asn
+ AIN-Parameters.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b )
+
+ASN2WRS()
diff --git a/epan/dissectors/asn1/ain/ain.cnf b/epan/dissectors/asn1/ain/ain.cnf
new file mode 100644
index 0000000000..e0d551c5b9
--- /dev/null
+++ b/epan/dissectors/asn1/ain/ain.cnf
@@ -0,0 +1,217 @@
+# ain.cnf
+# ain conformation file
+
+
+#.EXPORTS
+
+#.NO_EMIT ONLY_VALS
+ROS
+
+#.OMIT_ASSIGNMENT
+# Removed as they are giving 'defined but not used' warnings currently.
+Priority
+RejectProblem
+
+#.END
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.OMIT_ASSIGNMENT Remote-Operations-Information-Objects
+Bind
+Unbind
+#.END
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+
+# This table creates the value_sting to name AIN operation codes and errors
+# in file packet-ain-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* AIN OPERATIONS */
+const value_string ain_opr_code_strings[] = {
+#.TABLE_BODY OPERATION.&operationCode
+ { %(&operationCode)-40s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* AIN ERRORS */
+static const value_string ain_err_code_string_vals[] = {
+#.TABLE_BODY ERROR.&errorCode
+ { %(&errorCode)-40s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# This table creates the switch() to branch on AIN operation codes and errors
+# in file packet-ain-table2.c which is included in the template file
+#
+#.TABLE2_HDR
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ switch(opcode){
+#.TABLE2_BODY OPERATION.&ArgumentType
+ case %(&operationCode)s: /* %(_ident)s */
+ offset= %(_argument_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ 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;
+}
+#.END
+#.TABLE2_HDR
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+ switch(opcode){
+#.TABLE2_BODY OPERATION.&ResultType
+ case %(&operationCode)s: /* %(_ident)s */
+ offset= %(_result_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_returnResultData,
+ tvb, offset, -1, "Unknown returnResultData %d", opcode);
+ }
+ return offset;
+}
+#.END
+#.TABLE2_HDR
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
+ switch(errorCode) {
+#.TABLE2_BODY ERROR.&ParameterType
+ case %(&errorCode)s: /* %(_ident)s */
+ offset= %(_parameter_pdu)s(tvb, actx->pinfo , tree , NULL);
+ break;
+#.TABLE2_FTR
+ default:
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_returnErrorData,
+ tvb, offset, -1, "Unknown returnErrorData %d", opcode);
+ }
+ return offset;
+}
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+typedef struct _ain_op_t {
+ gint32 opcode;
+ dissector_t arg_pdu;
+ dissector_t res_pdu;
+} ain_op_t;
+
+static const ain_op_t ain_op_tab[] = {
+#.TABLE11_BODY OPERATION.&operationCode
+ /* %(_name)-31s */ { %(&operationCode)-40s, %(_argument_pdu)-45s, %(_result_pdu)s },
+#.TABLE11_FTR
+};
+#.END
+
+#.TABLE11_HDR
+typedef struct _ain_err_t {
+ gint32 errcode;
+ dissector_t err_pdu;
+} ain_err_t;
+
+static const ain_err_t ain_err_tab[] = {
+#.TABLE11_BODY ERROR.&errorCode
+ /* %(_name)-30s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.TABLE11_FTR
+};
+#.END
+
+# ROS stuff here XXX change when TCAP is redone.
+
+#.FN_BODY Code/local VAL_PTR = &opcode
+ %(DEFAULT_BODY)s
+ 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);
+ }
+
+#.FN_HDR Invoke
+
+ ain_opcode_type=AIN_OPCODE_INVOKE;
+
+#.FN_HDR ReturnResult
+
+ ain_opcode_type=AIN_OPCODE_RETURN_RESULT;
+
+#.FN_HDR ReturnError
+
+ ain_opcode_type=AIN_OPCODE_RETURN_ERROR;
+
+#.FN_HDR Reject
+
+ ain_opcode_type=AIN_OPCODE_REJECT;
+
+#.FN_BODY Invoke/argument
+
+ offset = dissect_invokeData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnResult/result/result
+
+ offset = dissect_returnResultData(tree, tvb, offset, actx);
+
+#.FN_BODY ReturnError/parameter
+
+ offset = dissect_returnErrorData(tree, tvb, offset, actx);
+
+# END ROS
+#.FN_PARS ExtensionParameter/assignmentAuthority
+ FN_VARIANT = _str HF_INDEX = hf_ain_ext_type_oid VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY ExtensionParameter/parameters
+ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY AINDigits VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ const char *digit_str;
+
+ %(DEFAULT_BODY)s
+
+ 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);
+
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb,2), NULL, FALSE);
+ proto_tree_add_string(subtree, hf_ain_bcd_digits, parameter_tvb, 2, -1, digit_str);
+
+
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 2
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=2 tabstop=8 expandtab:
+# :indentSize=2:tabSize=8:noTabs=true:
+#
diff --git a/epan/dissectors/asn1/ain/packet-ain-template.c b/epan/dissectors/asn1/ain/packet-ain-template.c
new file mode 100644
index 0000000000..7733300b2c
--- /dev/null
+++ b/epan/dissectors/asn1/ain/packet-ain-template.c
@@ -0,0 +1,225 @@
+/* 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 */
+#pragma GCC diagnostic ignored "-Wunused-function"
+#endif
+
+#define PNAME "Advanced Intelligent Network"
+#define PSNAME "AIN"
+#define PFNAME "ain"
+
+void proto_register_ain(void);
+void proto_reg_handoff_ain(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_ain = -1;
+
+static dissector_handle_t ain_handle;
+
+/* include constants */
+#include "packet-ain-val.h"
+
+static int hf_ain_ext_type_oid = -1;
+static int hf_ain_odd_even_indicator = -1;
+static int hf_ain_nature_of_address = -1;
+static int hf_ain_numbering_plan = -1;
+static int hf_ain_bcd_digits = -1;
+
+#include "packet-ain-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_ain = -1;
+static int ett_ain_digits = -1;
+
+#include "packet-ain-ett.c"
+
+static expert_field ei_ain_unknown_invokeData = EI_INIT;
+static expert_field ei_ain_unknown_returnResultData = EI_INIT;
+static expert_field ei_ain_unknown_returnErrorData = EI_INIT;
+
+/* Global variables */
+static guint32 opcode = 0;
+static guint32 errorCode = 0;
+//static const char *obj_id = NULL;
+
+static int ain_opcode_type;
+#define AIN_OPCODE_INVOKE 1
+#define AIN_OPCODE_RETURN_RESULT 2
+#define AIN_OPCODE_RETURN_ERROR 3
+#define AIN_OPCODE_REJECT 4
+
+/* Forvard declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+
+#include "packet-ain-table.c"
+
+#include "packet-ain-fn.c"
+
+#include "packet-ain-table2.c"
+
+
+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, NULL, 0x70,
+ NULL, HFILL } },
+ { &hf_ain_bcd_digits,
+ { "BCD digits", "ain.bcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+
+#include "packet-ain-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ain,
+ &ett_ain_digits,
+#include "packet-ain-ettarr.c"
+ };
+
+ 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:
+*/
+
+
+
+
diff --git a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
index ae83b78057..47242f236c 100644
--- a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
+++ b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
@@ -90,6 +90,7 @@ static const char * cur_oid;
static const char * tcapext_oid;
static dissector_handle_t ansi_map_handle;
+static dissector_handle_t ain_handle;
struct ansi_tcap_private_t ansi_tcap_private;
#define MAX_TID_STR_LEN 1024
@@ -277,26 +278,29 @@ find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
return TRUE;
}else if(ansi_tcap_private.d.OperationCode == 1){
/* private */
- if((ansi_tcap_private.d.OperationCode_private & 0x0900) != 0x0900){
- proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_tcap_dissector_not_implemented, tvb, 0, -1,
- "Dissector for ANSI TCAP PRIVATE code:%u not implemented.\n"
- "Contact Wireshark developers if you want this supported(Spec required)",
- ansi_tcap_private.d.OperationCode_private);
- return FALSE;
+ if((ansi_tcap_private.d.OperationCode_private & 0x0900) == 0x0900){
+ /* This is abit of a hack as it assumes the private codes with a "family" of 0x09 is ANSI MAP
+ * See TODO above.
+ * N.S0005-0 v 1.0 TCAP Formats and Procedures 5-16 Application Services
+ * 6.3.2 Component Portion
+ * The Operation Code is partitioned into an Operation Family followed by a
+ * Specifier associated with each Operation Family member. For TIA/EIA-41 the
+ * Operation Family is coded as decimal 9. Bit H of the Operation Family is always
+ * coded as 0.
+ */
+ call_dissector_with_data(ansi_map_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
+
+ return TRUE;
+ } else if ((ansi_tcap_private.d.OperationCode_private & 0xf000) == 0x6000) {
+ call_dissector_with_data(ain_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
+ return TRUE;
}
}
- /* This is abit of a hack as it assumes the private codes with a "family" of 0x09 is ANSI MAP
- * See TODO above.
- * N.S0005-0 v 1.0 TCAP Formats and Procedures 5-16 Application Services
- * 6.3.2 Component Portion
- * The Operation Code is partitioned into an Operation Family followed by a
- * Specifier associated with each Operation Family member. For TIA/EIA-41 the
- * Operation Family is coded as decimal 9. Bit H of the Operation Family is always
- * coded as 0.
- */
- call_dissector_with_data(ansi_map_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
-
- return TRUE;
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_tcap_dissector_not_implemented, tvb, 0, -1,
+ "Dissector for ANSI TCAP PRIVATE code:%u not implemented.\n"
+ "Contact Wireshark developers if you want this supported(Spec required)",
+ ansi_tcap_private.d.OperationCode_private);
+ return FALSE;
}
#include "packet-ansi_tcap-fn.c"
@@ -371,6 +375,7 @@ void
proto_reg_handoff_ansi_tcap(void)
{
ansi_map_handle = find_dissector_add_dependency("ansi_map", proto_ansi_tcap);
+ ain_handle = find_dissector_add_dependency("ain", proto_ansi_tcap);
ber_oid_dissector_table = find_dissector_table("ber.oid");
}
diff --git a/epan/dissectors/packet-ain.c b/epan/dissectors/packet-ain.c
new file mode 100644
index 0000000000..ea270d8e19
--- /dev/null
+++ b/epan/dissectors/packet-ain.c
@@ -0,0 +1,11494 @@
+/* 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 -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 */
+
+/* Input file: packet-ain-template.c */
+
+#line 1 "./asn1/ain/packet-ain-template.c"
+/* 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 */
+#pragma GCC diagnostic ignored "-Wunused-function"
+#endif
+
+#define PNAME "Advanced Intelligent Network"
+#define PSNAME "AIN"
+#define PFNAME "ain"
+
+void proto_register_ain(void);
+void proto_reg_handoff_ain(void);
+
+
+/* Initialize the protocol and registered fields */
+static int proto_ain = -1;
+
+static dissector_handle_t ain_handle;
+
+/* include constants */
+
+/*--- Included file: packet-ain-val.h ---*/
+#line 1 "./asn1/ain/packet-ain-val.h"
+#define noInvokeId NULL
+
+/*--- End of included file: packet-ain-val.h ---*/
+#line 45 "./asn1/ain/packet-ain-template.c"
+
+static int hf_ain_ext_type_oid = -1;
+static int hf_ain_odd_even_indicator = -1;
+static int hf_ain_nature_of_address = -1;
+static int hf_ain_numbering_plan = -1;
+static int hf_ain_bcd_digits = -1;
+
+
+/*--- Included file: packet-ain-hf.c ---*/
+#line 1 "./asn1/ain/packet-ain-hf.c"
+static int hf_ain_CallInfoFromResourceArg_PDU = -1; /* CallInfoFromResourceArg */
+static int hf_ain_CloseArg_PDU = -1; /* CloseArg */
+static int hf_ain_CTRClearArg_PDU = -1; /* CTRClearArg */
+static int hf_ain_FailureOutcomeArg_PDU = -1; /* FailureOutcomeArg */
+static int hf_ain_InfoAnalyzedArg_PDU = -1; /* InfoAnalyzedArg */
+static int hf_ain_InfoCollectedArg_PDU = -1; /* InfoCollectedArg */
+static int hf_ain_NetworkBusyArg_PDU = -1; /* NetworkBusyArg */
+static int hf_ain_OAnswerArg_PDU = -1; /* OAnswerArg */
+static int hf_ain_OAbandonArg_PDU = -1; /* OAbandonArg */
+static int hf_ain_ODisconnectArg_PDU = -1; /* ODisconnectArg */
+static int hf_ain_OMidCallArg_PDU = -1; /* OMidCallArg */
+static int hf_ain_ONoAnswerArg_PDU = -1; /* ONoAnswerArg */
+static int hf_ain_OSuspendedArg_PDU = -1; /* OSuspendedArg */
+static int hf_ain_OTermSeizedArg_PDU = -1; /* OTermSeizedArg */
+static int hf_ain_OriginationAttemptArg_PDU = -1; /* OriginationAttemptArg */
+static int hf_ain_ResourceClearArg_PDU = -1; /* ResourceClearArg */
+static int hf_ain_RES_resourceClear_PDU = -1; /* RES_resourceClear */
+static int hf_ain_SuccessOutcomeArg_PDU = -1; /* SuccessOutcomeArg */
+static int hf_ain_TAnswerArg_PDU = -1; /* TAnswerArg */
+static int hf_ain_TBusyArg_PDU = -1; /* TBusyArg */
+static int hf_ain_TDisconnectArg_PDU = -1; /* TDisconnectArg */
+static int hf_ain_TDTMFEnteredArg_PDU = -1; /* TDTMFEnteredArg */
+static int hf_ain_TMidCallArg_PDU = -1; /* TMidCallArg */
+static int hf_ain_TNoAnswerArg_PDU = -1; /* TNoAnswerArg */
+static int hf_ain_TerminationAttemptArg_PDU = -1; /* TerminationAttemptArg */
+static int hf_ain_TermResourceAvailableArg_PDU = -1; /* TermResourceAvailableArg */
+static int hf_ain_TimeoutArg_PDU = -1; /* TimeoutArg */
+static int hf_ain_AnalyzeRouteArg_PDU = -1; /* AnalyzeRouteArg */
+static int hf_ain_AuthorizeTerminationArg_PDU = -1; /* AuthorizeTerminationArg */
+static int hf_ain_CancelResourceEventArg_PDU = -1; /* CancelResourceEventArg */
+static int hf_ain_CollectInformationArg_PDU = -1; /* CollectInformationArg */
+static int hf_ain_ConnectToResourceArg_PDU = -1; /* ConnectToResourceArg */
+static int hf_ain_ContinueArg_PDU = -1; /* ContinueArg */
+static int hf_ain_CreateCallArg_PDU = -1; /* CreateCallArg */
+static int hf_ain_CreateCallRes_PDU = -1; /* CreateCallRes */
+static int hf_ain_DisconnectArg_PDU = -1; /* DisconnectArg */
+static int hf_ain_DisconnectLegArg_PDU = -1; /* DisconnectLegArg */
+static int hf_ain_ForwardCallArg_PDU = -1; /* ForwardCallArg */
+static int hf_ain_MergeCallArg_PDU = -1; /* MergeCallArg */
+static int hf_ain_MoveLegArg_PDU = -1; /* MoveLegArg */
+static int hf_ain_OfferCallArg_PDU = -1; /* OfferCallArg */
+static int hf_ain_OriginateCallArg_PDU = -1; /* OriginateCallArg */
+static int hf_ain_ReconnectArg_PDU = -1; /* ReconnectArg */
+static int hf_ain_SendToResourceArg_PDU = -1; /* SendToResourceArg */
+static int hf_ain_RES_sendToResource_PDU = -1; /* RES_sendToResource */
+static int hf_ain_SetTimerArg_PDU = -1; /* SetTimerArg */
+static int hf_ain_TimerUpdated_PDU = -1; /* TimerUpdated */
+static int hf_ain_SplitLegArg_PDU = -1; /* SplitLegArg */
+static int hf_ain_AcgArg_PDU = -1; /* AcgArg */
+static int hf_ain_AcgGlobalCtrlRestoreArg_PDU = -1; /* AcgGlobalCtrlRestoreArg */
+static int hf_ain_RES_acgGlobalCtrlRestore_PDU = -1; /* RES_acgGlobalCtrlRestore */
+static int hf_ain_AcgOverflowArg_PDU = -1; /* AcgOverflowArg */
+static int hf_ain_ActivityTestArg_PDU = -1; /* ActivityTestArg */
+static int hf_ain_RES_activityTest_PDU = -1; /* RES_activityTest */
+static int hf_ain_CallTypeRequestArg_PDU = -1; /* CallTypeRequestArg */
+static int hf_ain_RES_callTypeRequest_PDU = -1; /* RES_callTypeRequest */
+static int hf_ain_ControlRequestArg_PDU = -1; /* ControlRequestArg */
+static int hf_ain_EchoRequestArg_PDU = -1; /* EchoRequestArg */
+static int hf_ain_RES_echoRequest_PDU = -1; /* RES_echoRequest */
+static int hf_ain_FurnishAMAInformationArg_PDU = -1; /* FurnishAMAInformationArg */
+static int hf_ain_MonitorForChangeArg_PDU = -1; /* MonitorForChangeArg */
+static int hf_ain_MonitorSuccessArg_PDU = -1; /* MonitorSuccessArg */
+static int hf_ain_NCADataArg_PDU = -1; /* NCADataArg */
+static int hf_ain_NCARequestArg_PDU = -1; /* NCARequestArg */
+static int hf_ain_RES_nCARequest_PDU = -1; /* RES_nCARequest */
+static int hf_ain_QueryRequestArg_PDU = -1; /* QueryRequestArg */
+static int hf_ain_RES_queryRequest_PDU = -1; /* RES_queryRequest */
+static int hf_ain_RequestReportBCMEventArg_PDU = -1; /* RequestReportBCMEventArg */
+static int hf_ain_StatusReportedArg_PDU = -1; /* StatusReportedArg */
+static int hf_ain_TerminationNotificationArg_PDU = -1; /* TerminationNotificationArg */
+static int hf_ain_UpdateArg_PDU = -1; /* UpdateArg */
+static int hf_ain_RES_update_PDU = -1; /* RES_update */
+static int hf_ain_UpdateRequestArg_PDU = -1; /* UpdateRequestArg */
+static int hf_ain_RES_updateRequest_PDU = -1; /* RES_updateRequest */
+static int hf_ain_PAR_applicationError_PDU = -1; /* PAR_applicationError */
+static int hf_ain_PAR_failureReport_PDU = -1; /* PAR_failureReport */
+static int hf_ain_iPReturnBlock = -1; /* IPReturnBlock */
+static int hf_ain_amp1 = -1; /* Amp1 */
+static int hf_ain_amp2 = -1; /* Amp2 */
+static int hf_ain_extensionParameter = -1; /* ExtensionParameter */
+static int hf_ain_userID = -1; /* UserID */
+static int hf_ain_bearerCapability = -1; /* BearerCapability */
+static int hf_ain_closeCause = -1; /* CloseCause */
+static int hf_ain_clearCause = -1; /* ClearCause */
+static int hf_ain_legID = -1; /* LegID */
+static int hf_ain_ccID = -1; /* CcID */
+static int hf_ain_bCMType = -1; /* BCMType */
+static int hf_ain_pointInCall = -1; /* PointInCall */
+static int hf_ain_collectedDigits = -1; /* CollectedDigits */
+static int hf_ain_collectedAddressInfo = -1; /* CollectedAddressInfo */
+static int hf_ain_carrier = -1; /* Carrier */
+static int hf_ain_failureCause = -1; /* FailureCause */
+static int hf_ain_aMAMeasurement = -1; /* AMAMeasurement */
+static int hf_ain_clearCauseData = -1; /* ClearCauseData */
+static int hf_ain_notificationIndicator = -1; /* NotificationIndicator */
+static int hf_ain_calledPartyID = -1; /* CalledPartyID */
+static int hf_ain_lata = -1; /* Lata */
+static int hf_ain_triggerCriteriaType = -1; /* TriggerCriteriaType */
+static int hf_ain_chargeNumber = -1; /* ChargeNumber */
+static int hf_ain_callingPartyID = -1; /* CallingPartyID */
+static int hf_ain_callingPartyBGID = -1; /* CallingPartyBGID */
+static int hf_ain_chargePartyStationType = -1; /* ChargePartyStationType */
+static int hf_ain_accessCode = -1; /* AccessCode */
+static int hf_ain_verticalServiceCode = -1; /* VerticalServiceCode */
+static int hf_ain_tcm = -1; /* Tcm */
+static int hf_ain_originalCalledPartyID = -1; /* OriginalCalledPartyID */
+static int hf_ain_redirectingPartyID = -1; /* RedirectingPartyID */
+static int hf_ain_redirectionInformation = -1; /* RedirectionInformation */
+static int hf_ain_aCGEncountered = -1; /* ACGEncountered */
+static int hf_ain_sap = -1; /* Sap */
+static int hf_ain_sTRConnection = -1; /* STRConnection */
+static int hf_ain_aMASequenceNumber = -1; /* AMASequenceNumber */
+static int hf_ain_genericAddressList = -1; /* GenericAddressList */
+static int hf_ain_networkSpecificFacilities = -1; /* NetworkSpecificFacilities */
+static int hf_ain_cTRConnection = -1; /* CTRConnection */
+static int hf_ain_jurisdictionInformation = -1; /* JurisdictionInformation */
+static int hf_ain_prefix = -1; /* Prefix */
+static int hf_ain_callingGeodeticLocation = -1; /* CallingGeodeticLocation */
+static int hf_ain_triggerInformation = -1; /* TriggerInformation */
+static int hf_ain_disconnectCause = -1; /* DisconnectCause */
+static int hf_ain_featureActivatorID = -1; /* FeatureActivatorID */
+static int hf_ain_busyCause = -1; /* BusyCause */
+static int hf_ain_busyType = -1; /* BusyType */
+static int hf_ain_calledPartyStationType = -1; /* CalledPartyStationType */
+static int hf_ain_genericName = -1; /* GenericName */
+static int hf_ain_dTMFDigitsDetected = -1; /* DTMFDigitsDetected */
+static int hf_ain_rTPServiceIndicator = -1; /* RTPServiceIndicator */
+static int hf_ain_outpulseNumber = -1; /* OutpulseNumber */
+static int hf_ain_primaryTrunkGroup = -1; /* PrimaryTrunkGroup */
+static int hf_ain_alternateTrunkGroup = -1; /* AlternateTrunkGroup */
+static int hf_ain_secondAlternateTrunkGroup = -1; /* SecondAlternateTrunkGroup */
+static int hf_ain_alternateCarrier = -1; /* AlternateCarrier */
+static int hf_ain_secondAlternateCarrier = -1; /* SecondAlternateCarrier */
+static int hf_ain_passiveLegTreatment = -1; /* PassiveLegTreatment */
+static int hf_ain_primaryBillingIndicator = -1; /* PrimaryBillingIndicator */
+static int hf_ain_alternateBillingIndicator = -1; /* AlternateBillingIndicator */
+static int hf_ain_secondAlternateBillingIndicator = -1; /* SecondAlternateBillingIndicator */
+static int hf_ain_overflowBillingIndicator = -1; /* OverflowBillingIndicator */
+static int hf_ain_aMAAlternateBillingNumber = -1; /* AMAAlternateBillingNumber */
+static int hf_ain_aMABusinessCustomerID = -1; /* AMABusinessCustomerID */
+static int hf_ain_aMALineNumberList = -1; /* SEQUENCE_SIZE_1_2_OF_AMALineNumber */
+static int hf_ain_aMALineNumberList_item = -1; /* AMALineNumber */
+static int hf_ain_aMAslpID = -1; /* AMAslpID */
+static int hf_ain_aMADigitsDialedWCList = -1; /* SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC */
+static int hf_ain_aMADigitsDialedWCList_item = -1; /* AMADigitsDialedWC */
+static int hf_ain_serviceProviderID = -1; /* ServiceProviderID */
+static int hf_ain_serviceContext = -1; /* ServiceContext */
+static int hf_ain_aMABillingFeature = -1; /* AMABillingFeature */
+static int hf_ain_carrierUsage = -1; /* CarrierUsage */
+static int hf_ain_forwardCallIndicator = -1; /* ForwardCallIndicator */
+static int hf_ain_aMAServiceProviderID = -1; /* AMAServiceProviderID */
+static int hf_ain_genericDigitsList = -1; /* GenericDigitsList */
+static int hf_ain_applyRestrictions = -1; /* ApplyRestrictions */
+static int hf_ain_displayText = -1; /* DisplayText */
+static int hf_ain_controllingLegTreatment = -1; /* ControllingLegTreatment */
+static int hf_ain_aMAserviceProviderID = -1; /* AMAServiceProviderID */
+static int hf_ain_dPConverter = -1; /* DPConverter */
+static int hf_ain_alternateDialingPlanInd = -1; /* AlternateDialingPlanInd */
+static int hf_ain_resourceType = -1; /* ResourceType */
+static int hf_ain_strParameterBlock = -1; /* StrParameterBlock */
+static int hf_ain_disconnectFlag = -1; /* DisconnectFlag */
+static int hf_ain_destinationAddress = -1; /* DestinationAddress */
+static int hf_ain_aMAMeasure = -1; /* AMAMeasure */
+static int hf_ain_notificationDuration = -1; /* NotificationDuration */
+static int hf_ain_wakeUpDuration = -1; /* WakeUpDuration */
+static int hf_ain_oSIIndicator = -1; /* OSIIndicator */
+static int hf_ain_rTPReroutingNumber = -1; /* RTPReroutingNumber */
+static int hf_ain_csID = -1; /* CsID */
+static int hf_ain_lampTreatment = -1; /* LampTreatment */
+static int hf_ain_secondAlternatecarrier = -1; /* SecondAlternateCarrier */
+static int hf_ain_answerIndicator = -1; /* AnswerIndicator */
+static int hf_ain_extendedRinging = -1; /* ExtendedRinging */
+static int hf_ain_tSTRCTimer = -1; /* TSTRCTimer */
+static int hf_ain_partyID = -1; /* PartyID */
+static int hf_ain_partyOnHold = -1; /* PartyOnHold */
+static int hf_ain_sSPResponseMessageTimerT1 = -1; /* SSPResponseMessageTimerT1 */
+static int hf_ain_controlCauseIndicator = -1; /* ControlCauseIndicator */
+static int hf_ain_gapDuration = -1; /* GapDuration */
+static int hf_ain_gapInterval = -1; /* GapInterval */
+static int hf_ain_translationType = -1; /* TranslationType */
+static int hf_ain_globalTitleAddress = -1; /* GlobalTitleAddress */
+static int hf_ain_aCGGlobalOverride = -1; /* ACGGlobalOverride */
+static int hf_ain_actResult = -1; /* ActResult */
+static int hf_ain_transID = -1; /* TransID */
+static int hf_ain_callType = -1; /* CallType */
+static int hf_ain_congestionLevel = -1; /* CongestionLevel */
+static int hf_ain_ssignalingPointCode = -1; /* SignalingPointCode */
+static int hf_ain_subsystemNumber = -1; /* SubsystemNumber */
+static int hf_ain_applicationIndicator = -1; /* ApplicationIndicator */
+static int hf_ain_aaMABAFModules = -1; /* AMABAFModules */
+static int hf_ain_aMASetHexABIndicator = -1; /* AMASetHexABIndicator */
+static int hf_ain_facilityStatus = -1; /* FacilityStatus */
+static int hf_ain_monitorTime = -1; /* MonitorTime */
+static int hf_ain_facilityGID = -1; /* FacilityGID */
+static int hf_ain_facilityMemberID = -1; /* FacilityMemberID */
+static int hf_ain_controlEncountered = -1; /* ControlEncountered */
+static int hf_ain_id = -1; /* T_id */
+static int hf_ain_srhrGroupID = -1; /* SrhrGroupID */
+static int hf_ain_envelopeEncodingAuthority = -1; /* EnvelopeEncodingAuthority */
+static int hf_ain_envelopContent = -1; /* EnvelopContent */
+static int hf_ain_securityEnvelope = -1; /* SecurityEnvelope */
+static int hf_ain_infoProvided = -1; /* InfoProvided */
+static int hf_ain_provideInfo = -1; /* ProvideInfo */
+static int hf_ain_eDPRequest = -1; /* EDPRequest */
+static int hf_ain_eDPNotification = -1; /* EDPNotification */
+static int hf_ain_oNoAnswerTimer = -1; /* ONoAnswerTimer */
+static int hf_ain_tNoAnswerTimer = -1; /* TNoAnswerTimer */
+static int hf_ain_timeoutTimer = -1; /* TimeoutTimer */
+static int hf_ain_oDTMFDigitsString = -1; /* ODTMFDigitsString */
+static int hf_ain_oDTMFNumberOfDigits = -1; /* ODTMFNumberOfDigits */
+static int hf_ain_tDTMFDigitString = -1; /* TDTMFDigitString */
+static int hf_ain_tDTMFNumberOfDigits = -1; /* TDTMFNumberOfDigits */
+static int hf_ain_statusCause = -1; /* StatusCause */
+static int hf_ain_echoData = -1; /* EchoData */
+static int hf_ain_terminationIndicator = -1; /* TerminationIndicator */
+static int hf_ain_connectTime = -1; /* ConnectTime */
+static int hf_ain_resultCause = -1; /* ResultCause */
+static int hf_ain_administrableObject = -1; /* AdministrableObject */
+static int hf_ain_editListType = -1; /* EditListType */
+static int hf_ain_triggerCriteriaFlag = -1; /* TriggerCriteriaFlag */
+static int hf_ain_applicationErrorString = -1; /* ApplicationErrorString */
+static int hf_ain_failureCauseData = -1; /* FailureCauseData */
+static int hf_ain_triggerItemAssignment = -1; /* TriggerItemAssignment */
+static int hf_ain_sSPUserResource = -1; /* SSPUserResource */
+static int hf_ain_srhrGroup = -1; /* SrhrGroup */
+static int hf_ain_networkTestDesignator = -1; /* NetworkTestDesignator */
+static int hf_ain_operationsMonitoringAssignment = -1; /* OperationsMonitoringAssignment */
+static int hf_ain_sSPUserResourceID = -1; /* SSPUserResourceID */
+static int hf_ain_triggerItemID = -1; /* TriggerItemID */
+static int hf_ain_activationStateCode = -1; /* ActivationStateCode */
+static int hf_ain_potentialUse = -1; /* PotentialUse */
+static int hf_ain_sSPUserResourceSubID = -1; /* SSPUserResourceSubID */
+static int hf_ain_dn = -1; /* Dn */
+static int hf_ain_dnCtID = -1; /* DnCtID */
+static int hf_ain_spid = -1; /* Spid */
+static int hf_ain_trunkGroupID = -1; /* TrunkGroupID */
+static int hf_ain_localSSPID = -1; /* LocalSSPID */
+static int hf_ain_publicDialingPlanID = -1; /* PublicDialingPlanID */
+static int hf_ain_pRIOfficeEquipmentID = -1; /* PRIOfficeEquipmentID */
+static int hf_ain_basicBusinessGroupID = -1; /* BasicBusinessGroupID */
+static int hf_ain_basicBusinessGroupDialingPlanID = -1; /* BasicBusinessGroupDialingPlanID */
+static int hf_ain_aFRPatternID = -1; /* AFRPatternID */
+static int hf_ain_officeEquipmentID = -1; /* OfficeEquipmentID */
+static int hf_ain_ct = -1; /* Ct */
+static int hf_ain_dPNumber = -1; /* DPNumber */
+static int hf_ain_triggerItemSubnumber = -1; /* TriggerItemSubnumber */
+static int hf_ain_iSDNBChannelID = -1; /* ISDNBChannelID */
+static int hf_ain_pRIDS1ID = -1; /* PRIDS1ID */
+static int hf_ain_pRIDS0ID = -1; /* PRIDS0ID */
+static int hf_ain_updateGroups = -1; /* UpdateGroups */
+static int hf_ain_cancelInterdigitTimer = -1; /* CancelInterdigitTimer */
+static int hf_ain_updateGroup1 = -1; /* UpdateGroup1 */
+static int hf_ain_updateGroup2 = -1; /* UpdateGroup2 */
+static int hf_ain_updateGroup3 = -1; /* UpdateGroup3 */
+static int hf_ain_updateGroup4 = -1; /* UpdateGroup4 */
+static int hf_ain_updateGroup5 = -1; /* UpdateGroup5 */
+static int hf_ain_updateGroup6 = -1; /* UpdateGroup6 */
+static int hf_ain_updateGroup7 = -1; /* UpdateGroup7 */
+static int hf_ain_updateGroup8 = -1; /* UpdateGroup8 */
+static int hf_ain_updateGroup9 = -1; /* UpdateGroup9 */
+static int hf_ain_service1 = -1; /* Service1 */
+static int hf_ain_action1 = -1; /* Action1 */
+static int hf_ain_service2 = -1; /* Service2 */
+static int hf_ain_action2 = -1; /* Action2 */
+static int hf_ain_delayInterval = -1; /* DelayInterval */
+static int hf_ain_service3 = -1; /* Service3 */
+static int hf_ain_action3 = -1; /* Action3 */
+static int hf_ain_editSpecificEntry = -1; /* EditSpecificEntry */
+static int hf_ain_editAllEntries = -1; /* EditAllEntries */
+static int hf_ain_entry = -1; /* Entry */
+static int hf_ain_speedCallingCode = -1; /* SpeedCallingCode */
+static int hf_ain_memorySlot = -1; /* MemorySlot1 */
+static int hf_ain_service4 = -1; /* Service4 */
+static int hf_ain_action4 = -1; /* Action4 */
+static int hf_ain_forwardingDn = -1; /* ForwardingDn */
+static int hf_ain_set = -1; /* Set */
+static int hf_ain_clear = -1; /* Clear */
+static int hf_ain_service5 = -1; /* Service5 */
+static int hf_ain_action5 = -1; /* Action5 */
+static int hf_ain_service6 = -1; /* Service6 */
+static int hf_ain_action6 = -1; /* Action6 */
+static int hf_ain_service7 = -1; /* Service7 */
+static int hf_ain_action7 = -1; /* Action7 */
+static int hf_ain_toggle = -1; /* Toggle */
+static int hf_ain_service8 = -1; /* Service8 */
+static int hf_ain_action8 = -1; /* Action8 */
+static int hf_ain_invoke = -1; /* Invoke8 */
+static int hf_ain_service9 = -1; /* Service9 */
+static int hf_ain_action9 = -1; /* Action9 */
+static int hf_ain_changeList = -1; /* ChangeList */
+static int hf_ain_srhrID = -1; /* SrhrID */
+static int hf_ain_ntdID = -1; /* NtdID */
+static int hf_ain_ntdIndirectID = -1; /* NtdIndirectID */
+static int hf_ain_operationsMonitoredItemID = -1; /* OperationsMonitoredItemID */
+static int hf_ain_aMATimeDuration = -1; /* AMATimeDuration */
+static int hf_ain_aMATimeGuard = -1; /* AMATimeGuard */
+static int hf_ain_ampAINNodeID = -1; /* AmpAINNodeID */
+static int hf_ain_ampCLogSeqNo = -1; /* AmpCLogSeqNo */
+static int hf_ain_ampCLogRepInd = -1; /* AmpCLogRepInd */
+static int hf_ain_ampCallProgInd = -1; /* AmpCallProgInd */
+static int hf_ain_ampTestReqInd = -1; /* AmpTestReqInd */
+static int hf_ain_ampCLogName = -1; /* AmpCLogName */
+static int hf_ain_ampSvcProvID = -1; /* AmpSvcProvID */
+static int hf_ain_spcID = -1; /* SpcID */
+static int hf_ain_iSDNDeviceID = -1; /* ISDNDeviceID */
+static int hf_ain_ocn = -1; /* Ocn */
+static int hf_ain_errorCause = -1; /* ErrorCause */
+static int hf_ain_failedMessage = -1; /* FailedMessage */
+static int hf_ain__untag_item = -1; /* DisplayInformation */
+static int hf_ain_blank = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_skip = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_continuation = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_calledAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_cause = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_progressIndicator = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_notificationIndicator_01 = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_prompt = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_accumulatedDigits = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_status = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_inband = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_callingAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_reason = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_callingPartyName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_calledPartyName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_originalCalledName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectingName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_connectedName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_origRestrictions = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_dateTimeOfDay = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_callAppearanceID = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_featureAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectionName = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectionNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectingNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_originalCalledNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_connectedNumber = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_text = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_redirectingReason = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_ain_assignmentAuthority = -1; /* T_assignmentAuthority */
+static int hf_ain_parameters = -1; /* T_parameters */
+static int hf_ain_mlhg = -1; /* Mlhg */
+static int hf_ain_opCode = -1; /* INTEGER */
+static int hf_ain_parameter = -1; /* OCTET_STRING */
+static int hf_ain_invParms = -1; /* InvParms */
+static int hf_ain_InvParms_item = -1; /* Parms */
+static int hf_ain_oDTMFNumberofDigits = -1; /* ODTMFNumberOfDigits */
+static int hf_ain_timerUpdated = -1; /* TimerUpdated */
+static int hf_ain_derviceProviderID = -1; /* ServiceProviderID */
+static int hf_ain_aMABAFModules = -1; /* AMABAFModules */
+static int hf_ain_aMALineNumber = -1; /* AMALineNumber */
+static int hf_ain_aMADigitsDialedWC = -1; /* AMADigitsDialedWC */
+static int hf_ain_genericAddress = -1; /* GenericAddress */
+static int hf_ain_signalingPointCode = -1; /* SignalingPointCode */
+static int hf_ain_nationalGapInterval = -1; /* NationalGapInterval */
+static int hf_ain_privateGapInterval = -1; /* PrivateGapInterval */
+static int hf_ain__untag_item_01 = -1; /* GenericAddress */
+static int hf_ain__untag_item_02 = -1; /* GenericDigits */
+static int hf_ain_entireList = -1; /* EntireList */
+static int hf_ain_memorySlot_01 = -1; /* MemorySlot */
+static int hf_ain_listSize = -1; /* ListSize */
+static int hf_ain_forwardToDn = -1; /* ForwardToDn */
+static int hf_ain_empty = -1; /* Empty */
+static int hf_ain_EntireList_item = -1; /* Entry2 */
+static int hf_ain_privateDn = -1; /* PrivateDn */
+static int hf_ain_incoming = -1; /* Incoming */
+static int hf_ain_outgoing = -1; /* Outgoing */
+static int hf_ain_aINDigits = -1; /* AINDigits */
+static int hf_ain_timestamp = -1; /* Timestamp */
+static int hf_ain_requestGroups = -1; /* RequestGroups */
+static int hf_ain_requestMemorySlot = -1; /* RequestMemorySlot */
+static int hf_ain_requestGroup1 = -1; /* RequestGroup1 */
+static int hf_ain_requestGroup2 = -1; /* RequestGroup2 */
+static int hf_ain_requestGroup3 = -1; /* RequestGroup3 */
+static int hf_ain_requestGroup4 = -1; /* RequestGroup4 */
+static int hf_ain_requestGroup5 = -1; /* RequestGroup5 */
+static int hf_ain_requestGroup6 = -1; /* RequestGroup6 */
+static int hf_ain_request1 = -1; /* Request1 */
+static int hf_ain_request2 = -1; /* Request2 */
+static int hf_ain_request3 = -1; /* Request3 */
+static int hf_ain_request4 = -1; /* Request4 */
+static int hf_ain_request5 = -1; /* Request5 */
+static int hf_ain_request6 = -1; /* Request6 */
+static int hf_ain_msrID = -1; /* MsrID */
+static int hf_ain_announcementBlock = -1; /* AnnouncementBlock */
+static int hf_ain_announcementDigitBlock = -1; /* AnnouncementDigitBlock */
+static int hf_ain_flexParameterBlock = -1; /* FlexParameterBlock */
+static int hf_ain_uninterAnnounceBlock = -1; /* UninterAnnounceBlock */
+static int hf_ain_interAnnounceBlock = -1; /* InterAnnounceBlock */
+static int hf_ain_UninterAnnounceBlock_item = -1; /* AnnounceElement */
+static int hf_ain_InterAnnounceBlock_item = -1; /* AnnounceElement */
+static int hf_ain_maximumDigits = -1; /* MaximumDigits */
+static int hf_ain_intervalTime = -1; /* IntervalTime */
+static int hf_ain_localSSPTime = -1; /* LocalSSPTime */
+static int hf_ain_absoluteSCPTime = -1; /* AbsoluteSCPTime */
+static int hf_ain_bri = -1; /* T_bri */
+static int hf_ain_privateFacilityGID = -1; /* PrivateFacilityGID */
+static int hf_ain_aDSIcpeID = -1; /* ADSIcpeID */
+static int hf_ain_local = -1; /* T_local */
+static int hf_ain_global = -1; /* OBJECT_IDENTIFIER */
+static int hf_ain_invoke_01 = -1; /* Invoke */
+static int hf_ain_returnResult = -1; /* ReturnResult */
+static int hf_ain_returnError = -1; /* ReturnError */
+static int hf_ain_reject = -1; /* Reject */
+static int hf_ain_invokeId = -1; /* InvokeId */
+static int hf_ain_linkedId = -1; /* T_linkedId */
+static int hf_ain_present = -1; /* T_present */
+static int hf_ain_absent = -1; /* NULL */
+static int hf_ain_opcode = -1; /* Code */
+static int hf_ain_argument = -1; /* T_argument */
+static int hf_ain_result = -1; /* T_result */
+static int hf_ain_result_01 = -1; /* T_result_01 */
+static int hf_ain_errcode = -1; /* Code */
+static int hf_ain_parameter_01 = -1; /* T_parameter */
+static int hf_ain_problem = -1; /* T_problem */
+static int hf_ain_general = -1; /* GeneralProblem */
+static int hf_ain_invoke_02 = -1; /* InvokeProblem */
+static int hf_ain_returnResult_01 = -1; /* ReturnResultProblem */
+static int hf_ain_returnError_01 = -1; /* ReturnErrorProblem */
+static int hf_ain_present_01 = -1; /* INTEGER */
+static int hf_ain_InvokeId_present = -1; /* InvokeId_present */
+/* named bits */
+static int hf_ain_ApplyRestrictions_U_code = -1;
+static int hf_ain_ApplyRestrictions_U_toll = -1;
+static int hf_ain_EDPNotification_U_oCalledPartyBusy = -1;
+static int hf_ain_EDPNotification_U_oNoAnswer = -1;
+static int hf_ain_EDPNotification_U_oTermSeized = -1;
+static int hf_ain_EDPNotification_U_oAnswer = -1;
+static int hf_ain_EDPNotification_U_tBusy = -1;
+static int hf_ain_EDPNotification_U_tNoAnswer = -1;
+static int hf_ain_EDPNotification_U_termResourceAvailable = -1;
+static int hf_ain_EDPNotification_U_tAnswer = -1;
+static int hf_ain_EDPNotification_U_networkBusy = -1;
+static int hf_ain_EDPNotification_U_oSuspended = -1;
+static int hf_ain_EDPNotification_U_oDisconnectCalled = -1;
+static int hf_ain_EDPNotification_U_oDisconnect = -1;
+static int hf_ain_EDPNotification_U_oAbandon = -1;
+static int hf_ain_EDPNotification_U_featureActivator = -1;
+static int hf_ain_EDPNotification_U_switchHookFlash = -1;
+static int hf_ain_EDPNotification_U_success = -1;
+static int hf_ain_EDPNotification_U_tDisconnect = -1;
+static int hf_ain_EDPNotification_U_timeout = -1;
+static int hf_ain_EDPNotification_U_originationAttempt = -1;
+static int hf_ain_EDPNotification_U_oDTMFEntered = -1;
+static int hf_ain_EDPNotification_U_tDTMFEntered = -1;
+static int hf_ain_EDPRequest_U_oCalledPartyBusy = -1;
+static int hf_ain_EDPRequest_U_oNoAnswer = -1;
+static int hf_ain_EDPRequest_U_oTermSeized = -1;
+static int hf_ain_EDPRequest_U_oAnswer = -1;
+static int hf_ain_EDPRequest_U_tBusy = -1;
+static int hf_ain_EDPRequest_U_tNoAnswer = -1;
+static int hf_ain_EDPRequest_U_termResourceAvailable = -1;
+static int hf_ain_EDPRequest_U_tAnswer = -1;
+static int hf_ain_EDPRequest_U_networkBusy = -1;
+static int hf_ain_EDPRequest_U_oSuspended = -1;
+static int hf_ain_EDPRequest_U_oDisconnectCalled = -1;
+static int hf_ain_EDPRequest_U_oDisconnect = -1;
+static int hf_ain_EDPRequest_U_oAbandon = -1;
+static int hf_ain_EDPRequest_U_featureActivator = -1;
+static int hf_ain_EDPRequest_U_switchHookFlash = -1;
+static int hf_ain_EDPRequest_U_success = -1;
+static int hf_ain_EDPRequest_U_tDisconnect = -1;
+static int hf_ain_EDPRequest_U_timeout = -1;
+static int hf_ain_EDPRequest_U_originationAttempt = -1;
+static int hf_ain_EDPRequest_U_oDTMFEntered = -1;
+static int hf_ain_EDPRequest_U_tDTMFEntered = -1;
+static int hf_ain_Empty_entireList = -1;
+static int hf_ain_Empty_outgoingmemorySlot = -1;
+static int hf_ain_Empty_incomingmemorySlot = -1;
+static int hf_ain_Empty_forwardToDn = -1;
+static int hf_ain_Request1_activationStatus = -1;
+static int hf_ain_Request2_activationStatus = -1;
+static int hf_ain_Request2_delayInterval = -1;
+static int hf_ain_Request3_activationStatus = -1;
+static int hf_ain_Request3_entireList = -1;
+static int hf_ain_Request3_listSize = -1;
+static int hf_ain_Request4_activationStatus = -1;
+static int hf_ain_Request4_forwardingDn = -1;
+static int hf_ain_Request5_activationStatus = -1;
+static int hf_ain_Request5_forwardingDn = -1;
+static int hf_ain_Request5_entireList = -1;
+static int hf_ain_Request5_listSize = -1;
+static int hf_ain_Request6_delayInterval = -1;
+static int hf_ain_RequestMemorySlot_incoming = -1;
+static int hf_ain_RequestMemorySlot_outgoing = -1;
+
+/*--- End of included file: packet-ain-hf.c ---*/
+#line 53 "./asn1/ain/packet-ain-template.c"
+
+/* Initialize the subtree pointers */
+static int ett_ain = -1;
+static int ett_ain_digits = -1;
+
+
+/*--- Included file: packet-ain-ett.c ---*/
+#line 1 "./asn1/ain/packet-ain-ett.c"
+static gint ett_ain_CallInfoFromResourceArg = -1;
+static gint ett_ain_CloseArg = -1;
+static gint ett_ain_CTRClearArg = -1;
+static gint ett_ain_FailureOutcomeArg = -1;
+static gint ett_ain_InfoAnalyzedArg = -1;
+static gint ett_ain_InfoCollectedArg = -1;
+static gint ett_ain_NetworkBusyArg = -1;
+static gint ett_ain_OAnswerArg = -1;
+static gint ett_ain_OAbandonArg = -1;
+static gint ett_ain_ODisconnectArg = -1;
+static gint ett_ain_OMidCallArg = -1;
+static gint ett_ain_ONoAnswerArg = -1;
+static gint ett_ain_OSuspendedArg = -1;
+static gint ett_ain_OTermSeizedArg = -1;
+static gint ett_ain_OriginationAttemptArg = -1;
+static gint ett_ain_RES_resourceClear = -1;
+static gint ett_ain_ResourceClearArg = -1;
+static gint ett_ain_SuccessOutcomeArg = -1;
+static gint ett_ain_TAnswerArg = -1;
+static gint ett_ain_TBusyArg = -1;
+static gint ett_ain_TDisconnectArg = -1;
+static gint ett_ain_TDTMFEnteredArg = -1;
+static gint ett_ain_TMidCallArg = -1;
+static gint ett_ain_TNoAnswerArg = -1;
+static gint ett_ain_TerminationAttemptArg = -1;
+static gint ett_ain_TermResourceAvailableArg = -1;
+static gint ett_ain_TimeoutArg = -1;
+static gint ett_ain_AnalyzeRouteArg = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC = -1;
+static gint ett_ain_AuthorizeTerminationArg = -1;
+static gint ett_ain_CancelResourceEventArg = -1;
+static gint ett_ain_CollectInformationArg = -1;
+static gint ett_ain_ConnectToResourceArg = -1;
+static gint ett_ain_ContinueArg = -1;
+static gint ett_ain_CreateCallArg = -1;
+static gint ett_ain_CreateCallRes = -1;
+static gint ett_ain_DisconnectArg = -1;
+static gint ett_ain_DisconnectLegArg = -1;
+static gint ett_ain_ForwardCallArg = -1;
+static gint ett_ain_MergeCallArg = -1;
+static gint ett_ain_MoveLegArg = -1;
+static gint ett_ain_OfferCallArg = -1;
+static gint ett_ain_OriginateCallArg = -1;
+static gint ett_ain_ReconnectArg = -1;
+static gint ett_ain_RES_sendToResource = -1;
+static gint ett_ain_SendToResourceArg = -1;
+static gint ett_ain_SetTimerArg = -1;
+static gint ett_ain_SplitLegArg = -1;
+static gint ett_ain_AcgArg = -1;
+static gint ett_ain_RES_acgGlobalCtrlRestore = -1;
+static gint ett_ain_AcgGlobalCtrlRestoreArg = -1;
+static gint ett_ain_AcgOverflowArg = -1;
+static gint ett_ain_RES_activityTest = -1;
+static gint ett_ain_ActivityTestArg = -1;
+static gint ett_ain_RES_callTypeRequest = -1;
+static gint ett_ain_CallTypeRequestArg = -1;
+static gint ett_ain_ControlRequestArg = -1;
+static gint ett_ain_RES_echoRequest = -1;
+static gint ett_ain_EchoRequestArg = -1;
+static gint ett_ain_FurnishAMAInformationArg = -1;
+static gint ett_ain_MonitorForChangeArg = -1;
+static gint ett_ain_MonitorSuccessArg = -1;
+static gint ett_ain_NCADataArg = -1;
+static gint ett_ain_T_id = -1;
+static gint ett_ain_RES_nCARequest = -1;
+static gint ett_ain_NCARequestArg = -1;
+static gint ett_ain_RES_queryRequest = -1;
+static gint ett_ain_QueryRequestArg = -1;
+static gint ett_ain_RequestReportBCMEventArg = -1;
+static gint ett_ain_StatusReportedArg = -1;
+static gint ett_ain_TerminationNotificationArg = -1;
+static gint ett_ain_RES_update = -1;
+static gint ett_ain_UpdateArg = -1;
+static gint ett_ain_RES_updateRequest = -1;
+static gint ett_ain_UpdateRequestArg = -1;
+static gint ett_ain_PAR_applicationError = -1;
+static gint ett_ain_PAR_failureReport = -1;
+static gint ett_ain_AdministrableObject = -1;
+static gint ett_ain_TriggerItemAssignment_U = -1;
+static gint ett_ain_SSPUserResourceID = -1;
+static gint ett_ain_DnCtID = -1;
+static gint ett_ain_TriggerItemID = -1;
+static gint ett_ain_SSPUserResourceSubID = -1;
+static gint ett_ain_ISDNBChannelID = -1;
+static gint ett_ain_SSPUserResource_U = -1;
+static gint ett_ain_UpdateGroups = -1;
+static gint ett_ain_UpdateGroup1 = -1;
+static gint ett_ain_Action1 = -1;
+static gint ett_ain_UpdateGroup2 = -1;
+static gint ett_ain_Action2 = -1;
+static gint ett_ain_UpdateGroup3 = -1;
+static gint ett_ain_Action3 = -1;
+static gint ett_ain_EditSpecificEntry = -1;
+static gint ett_ain_Entry = -1;
+static gint ett_ain_UpdateGroup4 = -1;
+static gint ett_ain_Action4 = -1;
+static gint ett_ain_ForwardingDn = -1;
+static gint ett_ain_Set = -1;
+static gint ett_ain_UpdateGroup5 = -1;
+static gint ett_ain_Action5 = -1;
+static gint ett_ain_UpdateGroup6 = -1;
+static gint ett_ain_Action6 = -1;
+static gint ett_ain_UpdateGroup7 = -1;
+static gint ett_ain_Action7 = -1;
+static gint ett_ain_UpdateGroup8 = -1;
+static gint ett_ain_Action8 = -1;
+static gint ett_ain_UpdateGroup9 = -1;
+static gint ett_ain_Action9 = -1;
+static gint ett_ain_ChangeList = -1;
+static gint ett_ain_SrhrGroup_U = -1;
+static gint ett_ain_NetworkTestDesignator_U = -1;
+static gint ett_ain_NtdID = -1;
+static gint ett_ain_OperationsMonitoringAssignment_U = -1;
+static gint ett_ain_OperationsMonitoredItemID = -1;
+static gint ett_ain_AMAMeasurement_U = -1;
+static gint ett_ain_Amp2_U = -1;
+static gint ett_ain_AmpAINNodeID = -1;
+static gint ett_ain_AmpSvcProvID = -1;
+static gint ett_ain_ApplicationErrorString_U = -1;
+static gint ett_ain_ApplyRestrictions_U = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation = -1;
+static gint ett_ain_DisplayInformation = -1;
+static gint ett_ain_EDPNotification_U = -1;
+static gint ett_ain_EDPRequest_U = -1;
+static gint ett_ain_ExtensionParameter = -1;
+static gint ett_ain_FacilityGID = -1;
+static gint ett_ain_FailedMessage_U = -1;
+static gint ett_ain_InvParms = -1;
+static gint ett_ain_Parms = -1;
+static gint ett_ain_GapInterval = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress = -1;
+static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits = -1;
+static gint ett_ain_InfoProvided_U = -1;
+static gint ett_ain_EntireList = -1;
+static gint ett_ain_Entry2 = -1;
+static gint ett_ain_MemorySlot = -1;
+static gint ett_ain_Incoming = -1;
+static gint ett_ain_Outgoing = -1;
+static gint ett_ain_Empty = -1;
+static gint ett_ain_ProvideInfo_U = -1;
+static gint ett_ain_RequestGroups = -1;
+static gint ett_ain_RequestGroup1 = -1;
+static gint ett_ain_Request1 = -1;
+static gint ett_ain_RequestGroup2 = -1;
+static gint ett_ain_Request2 = -1;
+static gint ett_ain_RequestGroup3 = -1;
+static gint ett_ain_Request3 = -1;
+static gint ett_ain_RequestGroup4 = -1;
+static gint ett_ain_Request4 = -1;
+static gint ett_ain_RequestGroup5 = -1;
+static gint ett_ain_Request5 = -1;
+static gint ett_ain_RequestGroup6 = -1;
+static gint ett_ain_Request6 = -1;
+static gint ett_ain_RequestMemorySlot = -1;
+static gint ett_ain_ServiceProviderID = -1;
+static gint ett_ain_StrParameterBlock_U = -1;
+static gint ett_ain_AnnouncementBlock = -1;
+static gint ett_ain_UninterAnnounceBlock = -1;
+static gint ett_ain_InterAnnounceBlock = -1;
+static gint ett_ain_AnnouncementDigitBlock = -1;
+static gint ett_ain_TimeoutTimer_U = -1;
+static gint ett_ain_UserID_U = -1;
+static gint ett_ain_T_bri = -1;
+static gint ett_ain_Code = -1;
+static gint ett_ain_ROS = -1;
+static gint ett_ain_Invoke = -1;
+static gint ett_ain_T_linkedId = -1;
+static gint ett_ain_ReturnResult = -1;
+static gint ett_ain_T_result = -1;
+static gint ett_ain_ReturnError = -1;
+static gint ett_ain_Reject = -1;
+static gint ett_ain_T_problem = -1;
+static gint ett_ain_InvokeId = -1;
+
+/*--- End of included file: packet-ain-ett.c ---*/
+#line 59 "./asn1/ain/packet-ain-template.c"
+
+static expert_field ei_ain_unknown_invokeData = EI_INIT;
+static expert_field ei_ain_unknown_returnResultData = EI_INIT;
+static expert_field ei_ain_unknown_returnErrorData = EI_INIT;
+
+/* Global variables */
+static guint32 opcode = 0;
+static guint32 errorCode = 0;
+//static const char *obj_id = NULL;
+
+static int ain_opcode_type;
+#define AIN_OPCODE_INVOKE 1
+#define AIN_OPCODE_RETURN_RESULT 2
+#define AIN_OPCODE_RETURN_ERROR 3
+#define AIN_OPCODE_REJECT 4
+
+/* Forvard declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+
+
+/*--- Included file: packet-ain-table.c ---*/
+#line 1 "./asn1/ain/packet-ain-table.c"
+
+/* 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 }
+};
+
+
+/*--- End of included file: packet-ain-table.c ---*/
+#line 81 "./asn1/ain/packet-ain-template.c"
+
+
+/*--- Included file: packet-ain-fn.c ---*/
+#line 1 "./asn1/ain/packet-ain-fn.c"
+
+
+static int
+dissect_ain_OCTET_STRING_SIZE_1_120(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 185 "./asn1/ain/ain.cnf"
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ const char *digit_str;
+
+ 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);
+
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb,2), NULL, FALSE);
+ proto_tree_add_string(subtree, hf_ain_bcd_digits, parameter_tvb, 2, -1, digit_str);
+
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ISDNDeviceID(gboolean implicit_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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 182 "./asn1/ain/ain.cnf"
+ 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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_Carrier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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_BOOLEAN(gboolean implicit_tag _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_NotificationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 111, TRUE, dissect_ain_BOOLEAN);
+
+ 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_STRConnection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, dissect_ain_NotificationIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_OAbandonArg(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, dissect_ain_NotificationIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TDTMFEnteredArg(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, dissect_ain_NotificationIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_TimeoutArg(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_CON, 10, TRUE, dissect_ain_OCTET_STRING_SIZE_5);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_AMADigitsDialedWC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 const asn_namedbit ApplyRestrictions_U_bits[] = {
+ { 0, &hf_ain_ApplyRestrictions_U_code, -1, -1, "code", NULL },
+ { 1, &hf_ain_ApplyRestrictions_U_toll, -1, -1, "toll", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_ApplyRestrictions_U(gboolean implicit_tag _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, hf_index, ett_ain_ApplyRestrictions_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_ApplyRestrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_notificationIndicator_01, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_OPTIONAL|BER_FLAGS_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_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(gboolean implicit_tag _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 asn_namedbit Empty_bits[] = {
+ { 0, &hf_ain_Empty_entireList, -1, -1, "entireList", NULL },
+ { 1, &hf_ain_Empty_outgoingmemorySlot, -1, -1, "outgoingmemorySlot", NULL },
+ { 2, &hf_ain_Empty_incomingmemorySlot, -1, -1, "incomingmemorySlot", NULL },
+ { 3, &hf_ain_Empty_forwardToDn, -1, -1, "forwardToDn", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Empty(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 asn_namedbit Request1_bits[] = {
+ { 0, &hf_ain_Request1_activationStatus, -1, -1, "activationStatus", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Request1(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 asn_namedbit Request2_bits[] = {
+ { 0, &hf_ain_Request2_activationStatus, -1, -1, "activationStatus", NULL },
+ { 1, &hf_ain_Request2_delayInterval, -1, -1, "delayInterval", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Request2(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 asn_namedbit Request3_bits[] = {
+ { 0, &hf_ain_Request3_activationStatus, -1, -1, "activationStatus", NULL },
+ { 1, &hf_ain_Request3_entireList, -1, -1, "entireList", NULL },
+ { 2, &hf_ain_Request3_listSize, -1, -1, "listSize", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Request3(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 asn_namedbit Request4_bits[] = {
+ { 0, &hf_ain_Request4_activationStatus, -1, -1, "activationStatus", NULL },
+ { 1, &hf_ain_Request4_forwardingDn, -1, -1, "forwardingDn", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Request4(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 asn_namedbit Request5_bits[] = {
+ { 0, &hf_ain_Request5_activationStatus, -1, -1, "activationStatus", NULL },
+ { 1, &hf_ain_Request5_forwardingDn, -1, -1, "forwardingDn", NULL },
+ { 2, &hf_ain_Request5_entireList, -1, -1, "entireList", NULL },
+ { 3, &hf_ain_Request5_listSize, -1, -1, "listSize", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Request5(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 asn_namedbit Request6_bits[] = {
+ { 0, &hf_ain_Request6_delayInterval, -1, -1, "delayInterval", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_Request6(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _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 const asn_namedbit RequestMemorySlot_bits[] = {
+ { 0, &hf_ain_RequestMemorySlot_incoming, -1, -1, "incoming", NULL },
+ { 1, &hf_ain_RequestMemorySlot_outgoing, -1, -1, "outgoing", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_RequestMemorySlot(gboolean implicit_tag _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, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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 const asn_namedbit EDPRequest_U_bits[] = {
+ { 0, &hf_ain_EDPRequest_U_oCalledPartyBusy, -1, -1, "oCalledPartyBusy", NULL },
+ { 1, &hf_ain_EDPRequest_U_oNoAnswer, -1, -1, "oNoAnswer", NULL },
+ { 2, &hf_ain_EDPRequest_U_oTermSeized, -1, -1, "oTermSeized", NULL },
+ { 3, &hf_ain_EDPRequest_U_oAnswer, -1, -1, "oAnswer", NULL },
+ { 4, &hf_ain_EDPRequest_U_tBusy, -1, -1, "tBusy", NULL },
+ { 5, &hf_ain_EDPRequest_U_tNoAnswer, -1, -1, "tNoAnswer", NULL },
+ { 6, &hf_ain_EDPRequest_U_termResourceAvailable, -1, -1, "termResourceAvailable", NULL },
+ { 7, &hf_ain_EDPRequest_U_tAnswer, -1, -1, "tAnswer", NULL },
+ { 8, &hf_ain_EDPRequest_U_networkBusy, -1, -1, "networkBusy", NULL },
+ { 9, &hf_ain_EDPRequest_U_oSuspended, -1, -1, "oSuspended", NULL },
+ { 10, &hf_ain_EDPRequest_U_oDisconnectCalled, -1, -1, "oDisconnectCalled", NULL },
+ { 11, &hf_ain_EDPRequest_U_oDisconnect, -1, -1, "oDisconnect", NULL },
+ { 12, &hf_ain_EDPRequest_U_oAbandon, -1, -1, "oAbandon", NULL },
+ { 13, &hf_ain_EDPRequest_U_featureActivator, -1, -1, "featureActivator", NULL },
+ { 14, &hf_ain_EDPRequest_U_switchHookFlash, -1, -1, "switchHookFlash", NULL },
+ { 15, &hf_ain_EDPRequest_U_success, -1, -1, "success", NULL },
+ { 16, &hf_ain_EDPRequest_U_tDisconnect, -1, -1, "tDisconnect", NULL },
+ { 17, &hf_ain_EDPRequest_U_timeout, -1, -1, "timeout", NULL },
+ { 18, &hf_ain_EDPRequest_U_originationAttempt, -1, -1, "originationAttempt", NULL },
+ { 19, &hf_ain_EDPRequest_U_oDTMFEntered, -1, -1, "oDTMFEntered", NULL },
+ { 20, &hf_ain_EDPRequest_U_tDTMFEntered, -1, -1, "tDTMFEntered", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_EDPRequest_U(gboolean implicit_tag _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, hf_index, ett_ain_EDPRequest_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EDPRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 const asn_namedbit EDPNotification_U_bits[] = {
+ { 0, &hf_ain_EDPNotification_U_oCalledPartyBusy, -1, -1, "oCalledPartyBusy", NULL },
+ { 1, &hf_ain_EDPNotification_U_oNoAnswer, -1, -1, "oNoAnswer", NULL },
+ { 2, &hf_ain_EDPNotification_U_oTermSeized, -1, -1, "oTermSeized", NULL },
+ { 3, &hf_ain_EDPNotification_U_oAnswer, -1, -1, "oAnswer", NULL },
+ { 4, &hf_ain_EDPNotification_U_tBusy, -1, -1, "tBusy", NULL },
+ { 5, &hf_ain_EDPNotification_U_tNoAnswer, -1, -1, "tNoAnswer", NULL },
+ { 6, &hf_ain_EDPNotification_U_termResourceAvailable, -1, -1, "termResourceAvailable", NULL },
+ { 7, &hf_ain_EDPNotification_U_tAnswer, -1, -1, "tAnswer", NULL },
+ { 8, &hf_ain_EDPNotification_U_networkBusy, -1, -1, "networkBusy", NULL },
+ { 9, &hf_ain_EDPNotification_U_oSuspended, -1, -1, "oSuspended", NULL },
+ { 10, &hf_ain_EDPNotification_U_oDisconnectCalled, -1, -1, "oDisconnectCalled", NULL },
+ { 11, &hf_ain_EDPNotification_U_oDisconnect, -1, -1, "oDisconnect", NULL },
+ { 12, &hf_ain_EDPNotification_U_oAbandon, -1, -1, "oAbandon", NULL },
+ { 13, &hf_ain_EDPNotification_U_featureActivator, -1, -1, "featureActivator", NULL },
+ { 14, &hf_ain_EDPNotification_U_switchHookFlash, -1, -1, "switchHookFlash", NULL },
+ { 15, &hf_ain_EDPNotification_U_success, -1, -1, "success", NULL },
+ { 16, &hf_ain_EDPNotification_U_tDisconnect, -1, -1, "tDisconnect", NULL },
+ { 17, &hf_ain_EDPNotification_U_timeout, -1, -1, "timeout", NULL },
+ { 18, &hf_ain_EDPNotification_U_originationAttempt, -1, -1, "originationAttempt", NULL },
+ { 19, &hf_ain_EDPNotification_U_oDTMFEntered, -1, -1, "oDTMFEntered", NULL },
+ { 20, &hf_ain_EDPNotification_U_tDTMFEntered, -1, -1, "tDTMFEntered", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_ain_EDPNotification_U(gboolean implicit_tag _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, hf_index, ett_ain_EDPNotification_U,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ain_EDPNotification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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_invoke , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Invoke8 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_Action8(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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_NOOWNTAG, dissect_ain_AMAslpID },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_ain_UpdateArg(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_NOOWNTAG, 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_NOOWNTAG, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 137 "./asn1/ain/ain.cnf"
+ 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 166 "./asn1/ain/ain.cnf"
+
+ 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 150 "./asn1/ain/ain.cnf"
+
+ 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 170 "./asn1/ain/ain.cnf"
+
+ 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 154 "./asn1/ain/ain.cnf"
+
+ 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 174 "./asn1/ain/ain.cnf"
+
+ 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 158 "./asn1/ain/ain.cnf"
+
+ 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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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(gboolean implicit_tag _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_invoke_02 , 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(gboolean implicit_tag _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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 162 "./asn1/ain/ain.cnf"
+
+ 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_01 , 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(gboolean implicit_tag _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;
+}
+
+
+/*--- End of included file: packet-ain-fn.c ---*/
+#line 83 "./asn1/ain/packet-ain-template.c"
+
+
+/*--- Included file: packet-ain-table2.c ---*/
+#line 1 "./asn1/ain/packet-ain-table2.c"
+
+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;
+}
+
+
+/*--- End of included file: packet-ain-table2.c ---*/
+#line 85 "./asn1/ain/packet-ain-template.c"
+
+
+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, NULL, 0x70,
+ NULL, HFILL } },
+ { &hf_ain_bcd_digits,
+ { "BCD digits", "ain.bcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+
+
+/*--- Included file: packet-ain-hfarr.c ---*/
+#line 1 "./asn1/ain/packet-ain-hfarr.c"
+ { &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_invoke,
+ { "invoke", "ain.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_notificationIndicator_01,
+ { "notificationIndicator", "ain.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_01,
+ { "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_invoke_02,
+ { "invoke", "ain.invoke",
+ 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.code",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_ApplyRestrictions_U_toll,
+ { "toll", "ain.toll",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oCalledPartyBusy,
+ { "oCalledPartyBusy", "ain.oCalledPartyBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oNoAnswer,
+ { "oNoAnswer", "ain.oNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oTermSeized,
+ { "oTermSeized", "ain.oTermSeized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oAnswer,
+ { "oAnswer", "ain.oAnswer",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tBusy,
+ { "tBusy", "ain.tBusy",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tNoAnswer,
+ { "tNoAnswer", "ain.tNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_termResourceAvailable,
+ { "termResourceAvailable", "ain.termResourceAvailable",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tAnswer,
+ { "tAnswer", "ain.tAnswer",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_networkBusy,
+ { "networkBusy", "ain.networkBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oSuspended,
+ { "oSuspended", "ain.oSuspended",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oDisconnectCalled,
+ { "oDisconnectCalled", "ain.oDisconnectCalled",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oDisconnect,
+ { "oDisconnect", "ain.oDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oAbandon,
+ { "oAbandon", "ain.oAbandon",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_featureActivator,
+ { "featureActivator", "ain.featureActivator",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_switchHookFlash,
+ { "switchHookFlash", "ain.switchHookFlash",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_success,
+ { "success", "ain.success",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tDisconnect,
+ { "tDisconnect", "ain.tDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_timeout,
+ { "timeout", "ain.timeout",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_originationAttempt,
+ { "originationAttempt", "ain.originationAttempt",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_oDTMFEntered,
+ { "oDTMFEntered", "ain.oDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPNotification_U_tDTMFEntered,
+ { "tDTMFEntered", "ain.tDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oCalledPartyBusy,
+ { "oCalledPartyBusy", "ain.oCalledPartyBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oNoAnswer,
+ { "oNoAnswer", "ain.oNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oTermSeized,
+ { "oTermSeized", "ain.oTermSeized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oAnswer,
+ { "oAnswer", "ain.oAnswer",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tBusy,
+ { "tBusy", "ain.tBusy",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tNoAnswer,
+ { "tNoAnswer", "ain.tNoAnswer",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_termResourceAvailable,
+ { "termResourceAvailable", "ain.termResourceAvailable",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tAnswer,
+ { "tAnswer", "ain.tAnswer",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_networkBusy,
+ { "networkBusy", "ain.networkBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oSuspended,
+ { "oSuspended", "ain.oSuspended",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oDisconnectCalled,
+ { "oDisconnectCalled", "ain.oDisconnectCalled",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oDisconnect,
+ { "oDisconnect", "ain.oDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oAbandon,
+ { "oAbandon", "ain.oAbandon",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_featureActivator,
+ { "featureActivator", "ain.featureActivator",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_switchHookFlash,
+ { "switchHookFlash", "ain.switchHookFlash",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_success,
+ { "success", "ain.success",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tDisconnect,
+ { "tDisconnect", "ain.tDisconnect",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_timeout,
+ { "timeout", "ain.timeout",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_originationAttempt,
+ { "originationAttempt", "ain.originationAttempt",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_oDTMFEntered,
+ { "oDTMFEntered", "ain.oDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_EDPRequest_U_tDTMFEntered,
+ { "tDTMFEntered", "ain.tDTMFEntered",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_ain_Empty_entireList,
+ { "entireList", "ain.entireList",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Empty_outgoingmemorySlot,
+ { "outgoingmemorySlot", "ain.outgoingmemorySlot",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Empty_incomingmemorySlot,
+ { "incomingmemorySlot", "ain.incomingmemorySlot",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_Empty_forwardToDn,
+ { "forwardToDn", "ain.forwardToDn",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_Request1_activationStatus,
+ { "activationStatus", "ain.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request2_activationStatus,
+ { "activationStatus", "ain.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request2_delayInterval,
+ { "delayInterval", "ain.delayInterval",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request3_activationStatus,
+ { "activationStatus", "ain.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request3_entireList,
+ { "entireList", "ain.entireList",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request3_listSize,
+ { "listSize", "ain.listSize",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_Request4_activationStatus,
+ { "activationStatus", "ain.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request4_forwardingDn,
+ { "forwardingDn", "ain.forwardingDn",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request5_activationStatus,
+ { "activationStatus", "ain.activationStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_Request5_forwardingDn,
+ { "forwardingDn", "ain.forwardingDn",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_ain_Request5_entireList,
+ { "entireList", "ain.entireList",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_ain_Request5_listSize,
+ { "listSize", "ain.listSize",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_ain_Request6_delayInterval,
+ { "delayInterval", "ain.delayInterval",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_RequestMemorySlot_incoming,
+ { "incoming", "ain.incoming",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_ain_RequestMemorySlot_outgoing,
+ { "outgoing", "ain.outgoing",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+
+/*--- End of included file: packet-ain-hfarr.c ---*/
+#line 182 "./asn1/ain/packet-ain-template.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ain,
+ &ett_ain_digits,
+
+/*--- Included file: packet-ain-ettarr.c ---*/
+#line 1 "./asn1/ain/packet-ain-ettarr.c"
+ &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,
+
+/*--- End of included file: packet-ain-ettarr.c ---*/
+#line 189 "./asn1/ain/packet-ain-template.c"
+ };
+
+ 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:
+*/
+
+
+
+
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index 31ce01baff..bcf448cbb5 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -181,6 +181,7 @@ static const char * cur_oid;
static const char * tcapext_oid;
static dissector_handle_t ansi_map_handle;
+static dissector_handle_t ain_handle;
struct ansi_tcap_private_t ansi_tcap_private;
#define MAX_TID_STR_LEN 1024
@@ -368,26 +369,29 @@ find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
return TRUE;
}else if(ansi_tcap_private.d.OperationCode == 1){
/* private */
- if((ansi_tcap_private.d.OperationCode_private & 0x0900) != 0x0900){
- proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_tcap_dissector_not_implemented, tvb, 0, -1,
- "Dissector for ANSI TCAP PRIVATE code:%u not implemented.\n"
- "Contact Wireshark developers if you want this supported(Spec required)",
- ansi_tcap_private.d.OperationCode_private);
- return FALSE;
+ if((ansi_tcap_private.d.OperationCode_private & 0x0900) == 0x0900){
+ /* This is abit of a hack as it assumes the private codes with a "family" of 0x09 is ANSI MAP
+ * See TODO above.
+ * N.S0005-0 v 1.0 TCAP Formats and Procedures 5-16 Application Services
+ * 6.3.2 Component Portion
+ * The Operation Code is partitioned into an Operation Family followed by a
+ * Specifier associated with each Operation Family member. For TIA/EIA-41 the
+ * Operation Family is coded as decimal 9. Bit H of the Operation Family is always
+ * coded as 0.
+ */
+ call_dissector_with_data(ansi_map_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
+
+ return TRUE;
+ } else if ((ansi_tcap_private.d.OperationCode_private & 0xf000) == 0x6000) {
+ call_dissector_with_data(ain_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
+ return TRUE;
}
}
- /* This is abit of a hack as it assumes the private codes with a "family" of 0x09 is ANSI MAP
- * See TODO above.
- * N.S0005-0 v 1.0 TCAP Formats and Procedures 5-16 Application Services
- * 6.3.2 Component Portion
- * The Operation Code is partitioned into an Operation Family followed by a
- * Specifier associated with each Operation Family member. For TIA/EIA-41 the
- * Operation Family is coded as decimal 9. Bit H of the Operation Family is always
- * coded as 0.
- */
- call_dissector_with_data(ansi_map_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
-
- return TRUE;
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_ansi_tcap_dissector_not_implemented, tvb, 0, -1,
+ "Dissector for ANSI TCAP PRIVATE code:%u not implemented.\n"
+ "Contact Wireshark developers if you want this supported(Spec required)",
+ ansi_tcap_private.d.OperationCode_private);
+ return FALSE;
}
@@ -1360,7 +1364,7 @@ dissect_ansi_tcap_PackageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
/*--- End of included file: packet-ansi_tcap-fn.c ---*/
-#line 303 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 307 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
@@ -1432,6 +1436,7 @@ void
proto_reg_handoff_ansi_tcap(void)
{
ansi_map_handle = find_dissector_add_dependency("ansi_map", proto_ansi_tcap);
+ ain_handle = find_dissector_add_dependency("ain", proto_ansi_tcap);
ber_oid_dissector_table = find_dissector_table("ber.oid");
}
@@ -1702,7 +1707,7 @@ proto_register_ansi_tcap(void)
NULL, HFILL }},
/*--- End of included file: packet-ansi_tcap-hfarr.c ---*/
-#line 436 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 441 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
/* Setup protocol subtree array */
@@ -1740,7 +1745,7 @@ proto_register_ansi_tcap(void)
&ett_ansi_tcap_T_paramSet,
/*--- End of included file: packet-ansi_tcap-ettarr.c ---*/
-#line 447 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 452 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
static ei_register_info ei[] = {