Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-ain.c
blobf219822e742cb74c6516d601f2a08bd06b7c3f2d
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-ain.c */
4 /* asn2wrs.py -b -q -L -p ain -c ./ain.cnf -s ./packet-ain-template -D . -O ../.. AIN-Operations.asn AIN-Errors.asn AIN-Parameters.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
6 /* packet-ain-template.c
7 * Routines for AIN
8 * Copyright 2018, Anders Broman <anders.broman@ericsson.com>
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
16 * Ref
17 * GR-1299-CORE
20 #include "config.h"
22 #include <epan/packet.h>
23 #include <epan/oids.h>
24 #include <epan/asn1.h>
25 #include <epan/expert.h>
26 #include <epan/tfs.h>
27 #include <wsutil/array.h>
29 #include "packet-ber.h"
30 #include "packet-ansi_tcap.h"
32 #if defined(__GNUC__)
34 * This is meant to handle dissect_ain_ROS' defined but not used.
36 * DIAG_OFF doesn't work with llvm-gcc, for some unknown reason, so
37 * we just use the pragma directly.
39 #pragma GCC diagnostic ignored "-Wunused-function"
40 #endif
42 #define PNAME "Advanced Intelligent Network"
43 #define PSNAME "AIN"
44 #define PFNAME "ain"
46 void proto_register_ain(void);
47 void proto_reg_handoff_ain(void);
50 /* Initialize the protocol and registered fields */
51 static int proto_ain;
53 static dissector_handle_t ain_handle;
55 /* include constants */
56 #define noInvokeId NULL
58 static int hf_ain_ext_type_oid;
59 static int hf_ain_odd_even_indicator;
60 static int hf_ain_nature_of_address;
61 static int hf_ain_numbering_plan;
62 static int hf_ain_bcd_digits;
63 static int hf_ain_carrier_selection;
64 static int hf_ain_nature_of_carrier;
65 static int hf_ain_nr_digits;
66 static int hf_ain_carrier_bcd_digits;
67 static int hf_ain_amaslpid;
69 static int hf_ain_CallInfoFromResourceArg_PDU; /* CallInfoFromResourceArg */
70 static int hf_ain_CloseArg_PDU; /* CloseArg */
71 static int hf_ain_CTRClearArg_PDU; /* CTRClearArg */
72 static int hf_ain_FailureOutcomeArg_PDU; /* FailureOutcomeArg */
73 static int hf_ain_InfoAnalyzedArg_PDU; /* InfoAnalyzedArg */
74 static int hf_ain_InfoCollectedArg_PDU; /* InfoCollectedArg */
75 static int hf_ain_NetworkBusyArg_PDU; /* NetworkBusyArg */
76 static int hf_ain_OAnswerArg_PDU; /* OAnswerArg */
77 static int hf_ain_OAbandonArg_PDU; /* OAbandonArg */
78 static int hf_ain_ODisconnectArg_PDU; /* ODisconnectArg */
79 static int hf_ain_OMidCallArg_PDU; /* OMidCallArg */
80 static int hf_ain_ONoAnswerArg_PDU; /* ONoAnswerArg */
81 static int hf_ain_OSuspendedArg_PDU; /* OSuspendedArg */
82 static int hf_ain_OTermSeizedArg_PDU; /* OTermSeizedArg */
83 static int hf_ain_OriginationAttemptArg_PDU; /* OriginationAttemptArg */
84 static int hf_ain_ResourceClearArg_PDU; /* ResourceClearArg */
85 static int hf_ain_RES_resourceClear_PDU; /* RES_resourceClear */
86 static int hf_ain_SuccessOutcomeArg_PDU; /* SuccessOutcomeArg */
87 static int hf_ain_TAnswerArg_PDU; /* TAnswerArg */
88 static int hf_ain_TBusyArg_PDU; /* TBusyArg */
89 static int hf_ain_TDisconnectArg_PDU; /* TDisconnectArg */
90 static int hf_ain_TDTMFEnteredArg_PDU; /* TDTMFEnteredArg */
91 static int hf_ain_TMidCallArg_PDU; /* TMidCallArg */
92 static int hf_ain_TNoAnswerArg_PDU; /* TNoAnswerArg */
93 static int hf_ain_TerminationAttemptArg_PDU; /* TerminationAttemptArg */
94 static int hf_ain_TermResourceAvailableArg_PDU; /* TermResourceAvailableArg */
95 static int hf_ain_TimeoutArg_PDU; /* TimeoutArg */
96 static int hf_ain_AnalyzeRouteArg_PDU; /* AnalyzeRouteArg */
97 static int hf_ain_AuthorizeTerminationArg_PDU; /* AuthorizeTerminationArg */
98 static int hf_ain_CancelResourceEventArg_PDU; /* CancelResourceEventArg */
99 static int hf_ain_CollectInformationArg_PDU; /* CollectInformationArg */
100 static int hf_ain_ConnectToResourceArg_PDU; /* ConnectToResourceArg */
101 static int hf_ain_ContinueArg_PDU; /* ContinueArg */
102 static int hf_ain_CreateCallArg_PDU; /* CreateCallArg */
103 static int hf_ain_CreateCallRes_PDU; /* CreateCallRes */
104 static int hf_ain_DisconnectArg_PDU; /* DisconnectArg */
105 static int hf_ain_DisconnectLegArg_PDU; /* DisconnectLegArg */
106 static int hf_ain_ForwardCallArg_PDU; /* ForwardCallArg */
107 static int hf_ain_MergeCallArg_PDU; /* MergeCallArg */
108 static int hf_ain_MoveLegArg_PDU; /* MoveLegArg */
109 static int hf_ain_OfferCallArg_PDU; /* OfferCallArg */
110 static int hf_ain_OriginateCallArg_PDU; /* OriginateCallArg */
111 static int hf_ain_ReconnectArg_PDU; /* ReconnectArg */
112 static int hf_ain_SendToResourceArg_PDU; /* SendToResourceArg */
113 static int hf_ain_RES_sendToResource_PDU; /* RES_sendToResource */
114 static int hf_ain_SetTimerArg_PDU; /* SetTimerArg */
115 static int hf_ain_TimerUpdated_PDU; /* TimerUpdated */
116 static int hf_ain_SplitLegArg_PDU; /* SplitLegArg */
117 static int hf_ain_AcgArg_PDU; /* AcgArg */
118 static int hf_ain_AcgGlobalCtrlRestoreArg_PDU; /* AcgGlobalCtrlRestoreArg */
119 static int hf_ain_RES_acgGlobalCtrlRestore_PDU; /* RES_acgGlobalCtrlRestore */
120 static int hf_ain_AcgOverflowArg_PDU; /* AcgOverflowArg */
121 static int hf_ain_ActivityTestArg_PDU; /* ActivityTestArg */
122 static int hf_ain_RES_activityTest_PDU; /* RES_activityTest */
123 static int hf_ain_CallTypeRequestArg_PDU; /* CallTypeRequestArg */
124 static int hf_ain_RES_callTypeRequest_PDU; /* RES_callTypeRequest */
125 static int hf_ain_ControlRequestArg_PDU; /* ControlRequestArg */
126 static int hf_ain_EchoRequestArg_PDU; /* EchoRequestArg */
127 static int hf_ain_RES_echoRequest_PDU; /* RES_echoRequest */
128 static int hf_ain_FurnishAMAInformationArg_PDU; /* FurnishAMAInformationArg */
129 static int hf_ain_MonitorForChangeArg_PDU; /* MonitorForChangeArg */
130 static int hf_ain_MonitorSuccessArg_PDU; /* MonitorSuccessArg */
131 static int hf_ain_NCADataArg_PDU; /* NCADataArg */
132 static int hf_ain_NCARequestArg_PDU; /* NCARequestArg */
133 static int hf_ain_RES_nCARequest_PDU; /* RES_nCARequest */
134 static int hf_ain_QueryRequestArg_PDU; /* QueryRequestArg */
135 static int hf_ain_RES_queryRequest_PDU; /* RES_queryRequest */
136 static int hf_ain_RequestReportBCMEventArg_PDU; /* RequestReportBCMEventArg */
137 static int hf_ain_StatusReportedArg_PDU; /* StatusReportedArg */
138 static int hf_ain_TerminationNotificationArg_PDU; /* TerminationNotificationArg */
139 static int hf_ain_UpdateArg_PDU; /* UpdateArg */
140 static int hf_ain_RES_update_PDU; /* RES_update */
141 static int hf_ain_UpdateRequestArg_PDU; /* UpdateRequestArg */
142 static int hf_ain_RES_updateRequest_PDU; /* RES_updateRequest */
143 static int hf_ain_PAR_applicationError_PDU; /* PAR_applicationError */
144 static int hf_ain_PAR_failureReport_PDU; /* PAR_failureReport */
145 static int hf_ain_iPReturnBlock; /* IPReturnBlock */
146 static int hf_ain_amp1; /* Amp1 */
147 static int hf_ain_amp2; /* Amp2 */
148 static int hf_ain_extensionParameter; /* ExtensionParameter */
149 static int hf_ain_userID; /* UserID */
150 static int hf_ain_bearerCapability; /* BearerCapability */
151 static int hf_ain_closeCause; /* CloseCause */
152 static int hf_ain_clearCause; /* ClearCause */
153 static int hf_ain_legID; /* LegID */
154 static int hf_ain_ccID; /* CcID */
155 static int hf_ain_bCMType; /* BCMType */
156 static int hf_ain_pointInCall; /* PointInCall */
157 static int hf_ain_collectedDigits; /* CollectedDigits */
158 static int hf_ain_collectedAddressInfo; /* CollectedAddressInfo */
159 static int hf_ain_carrier; /* Carrier */
160 static int hf_ain_failureCause; /* FailureCause */
161 static int hf_ain_aMAMeasurement; /* AMAMeasurement */
162 static int hf_ain_clearCauseData; /* ClearCauseData */
163 static int hf_ain_notificationIndicator; /* NotificationIndicator */
164 static int hf_ain_calledPartyID; /* CalledPartyID */
165 static int hf_ain_lata; /* Lata */
166 static int hf_ain_triggerCriteriaType; /* TriggerCriteriaType */
167 static int hf_ain_chargeNumber; /* ChargeNumber */
168 static int hf_ain_callingPartyID; /* CallingPartyID */
169 static int hf_ain_callingPartyBGID; /* CallingPartyBGID */
170 static int hf_ain_chargePartyStationType; /* ChargePartyStationType */
171 static int hf_ain_accessCode; /* AccessCode */
172 static int hf_ain_verticalServiceCode; /* VerticalServiceCode */
173 static int hf_ain_tcm; /* Tcm */
174 static int hf_ain_originalCalledPartyID; /* OriginalCalledPartyID */
175 static int hf_ain_redirectingPartyID; /* RedirectingPartyID */
176 static int hf_ain_redirectionInformation; /* RedirectionInformation */
177 static int hf_ain_aCGEncountered; /* ACGEncountered */
178 static int hf_ain_sap; /* Sap */
179 static int hf_ain_sTRConnection; /* STRConnection */
180 static int hf_ain_aMASequenceNumber; /* AMASequenceNumber */
181 static int hf_ain_genericAddressList; /* GenericAddressList */
182 static int hf_ain_networkSpecificFacilities; /* NetworkSpecificFacilities */
183 static int hf_ain_cTRConnection; /* CTRConnection */
184 static int hf_ain_jurisdictionInformation; /* JurisdictionInformation */
185 static int hf_ain_prefix; /* Prefix */
186 static int hf_ain_callingGeodeticLocation; /* CallingGeodeticLocation */
187 static int hf_ain_triggerInformation; /* TriggerInformation */
188 static int hf_ain_disconnectCause; /* DisconnectCause */
189 static int hf_ain_featureActivatorID; /* FeatureActivatorID */
190 static int hf_ain_busyCause; /* BusyCause */
191 static int hf_ain_busyType; /* BusyType */
192 static int hf_ain_calledPartyStationType; /* CalledPartyStationType */
193 static int hf_ain_genericName; /* GenericName */
194 static int hf_ain_dTMFDigitsDetected; /* DTMFDigitsDetected */
195 static int hf_ain_rTPServiceIndicator; /* RTPServiceIndicator */
196 static int hf_ain_outpulseNumber; /* OutpulseNumber */
197 static int hf_ain_primaryTrunkGroup; /* PrimaryTrunkGroup */
198 static int hf_ain_alternateTrunkGroup; /* AlternateTrunkGroup */
199 static int hf_ain_secondAlternateTrunkGroup; /* SecondAlternateTrunkGroup */
200 static int hf_ain_alternateCarrier; /* AlternateCarrier */
201 static int hf_ain_secondAlternateCarrier; /* SecondAlternateCarrier */
202 static int hf_ain_passiveLegTreatment; /* PassiveLegTreatment */
203 static int hf_ain_primaryBillingIndicator; /* PrimaryBillingIndicator */
204 static int hf_ain_alternateBillingIndicator; /* AlternateBillingIndicator */
205 static int hf_ain_secondAlternateBillingIndicator; /* SecondAlternateBillingIndicator */
206 static int hf_ain_overflowBillingIndicator; /* OverflowBillingIndicator */
207 static int hf_ain_aMAAlternateBillingNumber; /* AMAAlternateBillingNumber */
208 static int hf_ain_aMABusinessCustomerID; /* AMABusinessCustomerID */
209 static int hf_ain_aMALineNumberList; /* SEQUENCE_SIZE_1_2_OF_AMALineNumber */
210 static int hf_ain_aMALineNumberList_item; /* AMALineNumber */
211 static int hf_ain_aMAslpID; /* AMAslpID */
212 static int hf_ain_aMADigitsDialedWCList; /* SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC */
213 static int hf_ain_aMADigitsDialedWCList_item; /* AMADigitsDialedWC */
214 static int hf_ain_serviceProviderID; /* ServiceProviderID */
215 static int hf_ain_serviceContext; /* ServiceContext */
216 static int hf_ain_aMABillingFeature; /* AMABillingFeature */
217 static int hf_ain_carrierUsage; /* CarrierUsage */
218 static int hf_ain_forwardCallIndicator; /* ForwardCallIndicator */
219 static int hf_ain_aMAServiceProviderID; /* AMAServiceProviderID */
220 static int hf_ain_genericDigitsList; /* GenericDigitsList */
221 static int hf_ain_applyRestrictions; /* ApplyRestrictions */
222 static int hf_ain_displayText; /* DisplayText */
223 static int hf_ain_controllingLegTreatment; /* ControllingLegTreatment */
224 static int hf_ain_aMAserviceProviderID; /* AMAServiceProviderID */
225 static int hf_ain_dPConverter; /* DPConverter */
226 static int hf_ain_alternateDialingPlanInd; /* AlternateDialingPlanInd */
227 static int hf_ain_resourceType; /* ResourceType */
228 static int hf_ain_strParameterBlock; /* StrParameterBlock */
229 static int hf_ain_disconnectFlag; /* DisconnectFlag */
230 static int hf_ain_destinationAddress; /* DestinationAddress */
231 static int hf_ain_aMAMeasure; /* AMAMeasure */
232 static int hf_ain_notificationDuration; /* NotificationDuration */
233 static int hf_ain_wakeUpDuration; /* WakeUpDuration */
234 static int hf_ain_oSIIndicator; /* OSIIndicator */
235 static int hf_ain_rTPReroutingNumber; /* RTPReroutingNumber */
236 static int hf_ain_csID; /* CsID */
237 static int hf_ain_lampTreatment; /* LampTreatment */
238 static int hf_ain_secondAlternatecarrier; /* SecondAlternateCarrier */
239 static int hf_ain_answerIndicator; /* AnswerIndicator */
240 static int hf_ain_extendedRinging; /* ExtendedRinging */
241 static int hf_ain_tSTRCTimer; /* TSTRCTimer */
242 static int hf_ain_partyID; /* PartyID */
243 static int hf_ain_partyOnHold; /* PartyOnHold */
244 static int hf_ain_sSPResponseMessageTimerT1; /* SSPResponseMessageTimerT1 */
245 static int hf_ain_controlCauseIndicator; /* ControlCauseIndicator */
246 static int hf_ain_gapDuration; /* GapDuration */
247 static int hf_ain_gapInterval; /* GapInterval */
248 static int hf_ain_translationType; /* TranslationType */
249 static int hf_ain_globalTitleAddress; /* GlobalTitleAddress */
250 static int hf_ain_aCGGlobalOverride; /* ACGGlobalOverride */
251 static int hf_ain_actResult; /* ActResult */
252 static int hf_ain_transID; /* TransID */
253 static int hf_ain_callType; /* CallType */
254 static int hf_ain_congestionLevel; /* CongestionLevel */
255 static int hf_ain_ssignalingPointCode; /* SignalingPointCode */
256 static int hf_ain_subsystemNumber; /* SubsystemNumber */
257 static int hf_ain_applicationIndicator; /* ApplicationIndicator */
258 static int hf_ain_aaMABAFModules; /* AMABAFModules */
259 static int hf_ain_aMASetHexABIndicator; /* AMASetHexABIndicator */
260 static int hf_ain_facilityStatus; /* FacilityStatus */
261 static int hf_ain_monitorTime; /* MonitorTime */
262 static int hf_ain_facilityGID; /* FacilityGID */
263 static int hf_ain_facilityMemberID; /* FacilityMemberID */
264 static int hf_ain_controlEncountered; /* ControlEncountered */
265 static int hf_ain_id; /* T_id */
266 static int hf_ain_srhrGroupID; /* SrhrGroupID */
267 static int hf_ain_envelopeEncodingAuthority; /* EnvelopeEncodingAuthority */
268 static int hf_ain_envelopContent; /* EnvelopContent */
269 static int hf_ain_securityEnvelope; /* SecurityEnvelope */
270 static int hf_ain_infoProvided; /* InfoProvided */
271 static int hf_ain_provideInfo; /* ProvideInfo */
272 static int hf_ain_eDPRequest; /* EDPRequest */
273 static int hf_ain_eDPNotification; /* EDPNotification */
274 static int hf_ain_oNoAnswerTimer; /* ONoAnswerTimer */
275 static int hf_ain_tNoAnswerTimer; /* TNoAnswerTimer */
276 static int hf_ain_timeoutTimer; /* TimeoutTimer */
277 static int hf_ain_oDTMFDigitsString; /* ODTMFDigitsString */
278 static int hf_ain_oDTMFNumberOfDigits; /* ODTMFNumberOfDigits */
279 static int hf_ain_tDTMFDigitString; /* TDTMFDigitString */
280 static int hf_ain_tDTMFNumberOfDigits; /* TDTMFNumberOfDigits */
281 static int hf_ain_statusCause; /* StatusCause */
282 static int hf_ain_echoData; /* EchoData */
283 static int hf_ain_terminationIndicator; /* TerminationIndicator */
284 static int hf_ain_connectTime; /* ConnectTime */
285 static int hf_ain_resultCause; /* ResultCause */
286 static int hf_ain_administrableObject; /* AdministrableObject */
287 static int hf_ain_editListType; /* EditListType */
288 static int hf_ain_triggerCriteriaFlag; /* TriggerCriteriaFlag */
289 static int hf_ain_applicationErrorString; /* ApplicationErrorString */
290 static int hf_ain_failureCauseData; /* FailureCauseData */
291 static int hf_ain_triggerItemAssignment; /* TriggerItemAssignment */
292 static int hf_ain_sSPUserResource; /* SSPUserResource */
293 static int hf_ain_srhrGroup; /* SrhrGroup */
294 static int hf_ain_networkTestDesignator; /* NetworkTestDesignator */
295 static int hf_ain_operationsMonitoringAssignment; /* OperationsMonitoringAssignment */
296 static int hf_ain_sSPUserResourceID; /* SSPUserResourceID */
297 static int hf_ain_triggerItemID; /* TriggerItemID */
298 static int hf_ain_activationStateCode; /* ActivationStateCode */
299 static int hf_ain_potentialUse; /* PotentialUse */
300 static int hf_ain_sSPUserResourceSubID; /* SSPUserResourceSubID */
301 static int hf_ain_dn; /* Dn */
302 static int hf_ain_dnCtID; /* DnCtID */
303 static int hf_ain_spid; /* Spid */
304 static int hf_ain_trunkGroupID; /* TrunkGroupID */
305 static int hf_ain_localSSPID; /* LocalSSPID */
306 static int hf_ain_publicDialingPlanID; /* PublicDialingPlanID */
307 static int hf_ain_pRIOfficeEquipmentID; /* PRIOfficeEquipmentID */
308 static int hf_ain_basicBusinessGroupID; /* BasicBusinessGroupID */
309 static int hf_ain_basicBusinessGroupDialingPlanID; /* BasicBusinessGroupDialingPlanID */
310 static int hf_ain_aFRPatternID; /* AFRPatternID */
311 static int hf_ain_officeEquipmentID; /* OfficeEquipmentID */
312 static int hf_ain_ct; /* Ct */
313 static int hf_ain_dPNumber; /* DPNumber */
314 static int hf_ain_triggerItemSubnumber; /* TriggerItemSubnumber */
315 static int hf_ain_iSDNBChannelID; /* ISDNBChannelID */
316 static int hf_ain_pRIDS1ID; /* PRIDS1ID */
317 static int hf_ain_pRIDS0ID; /* PRIDS0ID */
318 static int hf_ain_updateGroups; /* UpdateGroups */
319 static int hf_ain_cancelInterdigitTimer; /* CancelInterdigitTimer */
320 static int hf_ain_updateGroup1; /* UpdateGroup1 */
321 static int hf_ain_updateGroup2; /* UpdateGroup2 */
322 static int hf_ain_updateGroup3; /* UpdateGroup3 */
323 static int hf_ain_updateGroup4; /* UpdateGroup4 */
324 static int hf_ain_updateGroup5; /* UpdateGroup5 */
325 static int hf_ain_updateGroup6; /* UpdateGroup6 */
326 static int hf_ain_updateGroup7; /* UpdateGroup7 */
327 static int hf_ain_updateGroup8; /* UpdateGroup8 */
328 static int hf_ain_updateGroup9; /* UpdateGroup9 */
329 static int hf_ain_service1; /* Service1 */
330 static int hf_ain_action1; /* Action1 */
331 static int hf_ain_service2; /* Service2 */
332 static int hf_ain_action2; /* Action2 */
333 static int hf_ain_delayInterval; /* DelayInterval */
334 static int hf_ain_service3; /* Service3 */
335 static int hf_ain_action3; /* Action3 */
336 static int hf_ain_editSpecificEntry; /* EditSpecificEntry */
337 static int hf_ain_editAllEntries; /* EditAllEntries */
338 static int hf_ain_entry; /* Entry */
339 static int hf_ain_speedCallingCode; /* SpeedCallingCode */
340 static int hf_ain_memorySlot; /* MemorySlot1 */
341 static int hf_ain_service4; /* Service4 */
342 static int hf_ain_action4; /* Action4 */
343 static int hf_ain_forwardingDn; /* ForwardingDn */
344 static int hf_ain_set; /* Set */
345 static int hf_ain_clear; /* Clear */
346 static int hf_ain_service5; /* Service5 */
347 static int hf_ain_action5; /* Action5 */
348 static int hf_ain_service6; /* Service6 */
349 static int hf_ain_action6; /* Action6 */
350 static int hf_ain_service7; /* Service7 */
351 static int hf_ain_action7; /* Action7 */
352 static int hf_ain_toggle; /* Toggle */
353 static int hf_ain_service8; /* Service8 */
354 static int hf_ain_action8; /* Action8 */
355 static int hf_ain_action8_invoke; /* Invoke8 */
356 static int hf_ain_service9; /* Service9 */
357 static int hf_ain_action9; /* Action9 */
358 static int hf_ain_changeList; /* ChangeList */
359 static int hf_ain_srhrID; /* SrhrID */
360 static int hf_ain_ntdID; /* NtdID */
361 static int hf_ain_ntdIndirectID; /* NtdIndirectID */
362 static int hf_ain_operationsMonitoredItemID; /* OperationsMonitoredItemID */
363 static int hf_ain_aMATimeDuration; /* AMATimeDuration */
364 static int hf_ain_aMATimeGuard; /* AMATimeGuard */
365 static int hf_ain_ampAINNodeID; /* AmpAINNodeID */
366 static int hf_ain_ampCLogSeqNo; /* AmpCLogSeqNo */
367 static int hf_ain_ampCLogRepInd; /* AmpCLogRepInd */
368 static int hf_ain_ampCallProgInd; /* AmpCallProgInd */
369 static int hf_ain_ampTestReqInd; /* AmpTestReqInd */
370 static int hf_ain_ampCLogName; /* AmpCLogName */
371 static int hf_ain_ampSvcProvID; /* AmpSvcProvID */
372 static int hf_ain_spcID; /* SpcID */
373 static int hf_ain_iSDNDeviceID; /* ISDNDeviceID */
374 static int hf_ain_ocn; /* Ocn */
375 static int hf_ain_errorCause; /* ErrorCause */
376 static int hf_ain_failedMessage; /* FailedMessage */
377 static int hf_ain__untag_item; /* DisplayInformation */
378 static int hf_ain_blank; /* OCTET_STRING_SIZE_1_20 */
379 static int hf_ain_skip; /* OCTET_STRING_SIZE_1_20 */
380 static int hf_ain_continuation; /* OCTET_STRING_SIZE_1_20 */
381 static int hf_ain_calledAddress; /* OCTET_STRING_SIZE_1_20 */
382 static int hf_ain_cause; /* OCTET_STRING_SIZE_1_20 */
383 static int hf_ain_progressIndicator; /* OCTET_STRING_SIZE_1_20 */
384 static int hf_ain_displayInformation_notificationIndicator; /* OCTET_STRING_SIZE_1_20 */
385 static int hf_ain_prompt; /* OCTET_STRING_SIZE_1_20 */
386 static int hf_ain_accumulatedDigits; /* OCTET_STRING_SIZE_1_20 */
387 static int hf_ain_status; /* OCTET_STRING_SIZE_1_20 */
388 static int hf_ain_inband; /* OCTET_STRING_SIZE_1_20 */
389 static int hf_ain_callingAddress; /* OCTET_STRING_SIZE_1_20 */
390 static int hf_ain_reason; /* OCTET_STRING_SIZE_1_20 */
391 static int hf_ain_callingPartyName; /* OCTET_STRING_SIZE_1_20 */
392 static int hf_ain_calledPartyName; /* OCTET_STRING_SIZE_1_20 */
393 static int hf_ain_originalCalledName; /* OCTET_STRING_SIZE_1_20 */
394 static int hf_ain_redirectingName; /* OCTET_STRING_SIZE_1_20 */
395 static int hf_ain_connectedName; /* OCTET_STRING_SIZE_1_20 */
396 static int hf_ain_origRestrictions; /* OCTET_STRING_SIZE_1_20 */
397 static int hf_ain_dateTimeOfDay; /* OCTET_STRING_SIZE_1_20 */
398 static int hf_ain_callAppearanceID; /* OCTET_STRING_SIZE_1_20 */
399 static int hf_ain_featureAddress; /* OCTET_STRING_SIZE_1_20 */
400 static int hf_ain_redirectionName; /* OCTET_STRING_SIZE_1_20 */
401 static int hf_ain_redirectionNumber; /* OCTET_STRING_SIZE_1_20 */
402 static int hf_ain_redirectingNumber; /* OCTET_STRING_SIZE_1_20 */
403 static int hf_ain_originalCalledNumber; /* OCTET_STRING_SIZE_1_20 */
404 static int hf_ain_connectedNumber; /* OCTET_STRING_SIZE_1_20 */
405 static int hf_ain_text; /* OCTET_STRING_SIZE_1_20 */
406 static int hf_ain_redirectingReason; /* OCTET_STRING_SIZE_1_20 */
407 static int hf_ain_assignmentAuthority; /* T_assignmentAuthority */
408 static int hf_ain_parameters; /* T_parameters */
409 static int hf_ain_mlhg; /* Mlhg */
410 static int hf_ain_opCode; /* INTEGER */
411 static int hf_ain_parameter; /* OCTET_STRING */
412 static int hf_ain_invParms; /* InvParms */
413 static int hf_ain_InvParms_item; /* Parms */
414 static int hf_ain_oDTMFNumberofDigits; /* ODTMFNumberOfDigits */
415 static int hf_ain_timerUpdated; /* TimerUpdated */
416 static int hf_ain_derviceProviderID; /* ServiceProviderID */
417 static int hf_ain_aMABAFModules; /* AMABAFModules */
418 static int hf_ain_aMALineNumber; /* AMALineNumber */
419 static int hf_ain_aMADigitsDialedWC; /* AMADigitsDialedWC */
420 static int hf_ain_genericAddress; /* GenericAddress */
421 static int hf_ain_signalingPointCode; /* SignalingPointCode */
422 static int hf_ain_nationalGapInterval; /* NationalGapInterval */
423 static int hf_ain_privateGapInterval; /* PrivateGapInterval */
424 static int hf_ain__untag_item_01; /* GenericAddress */
425 static int hf_ain__untag_item_02; /* GenericDigits */
426 static int hf_ain_entireList; /* EntireList */
427 static int hf_ain_memorySlot_01; /* MemorySlot */
428 static int hf_ain_listSize; /* ListSize */
429 static int hf_ain_forwardToDn; /* ForwardToDn */
430 static int hf_ain_empty; /* Empty */
431 static int hf_ain_EntireList_item; /* Entry2 */
432 static int hf_ain_privateDn; /* PrivateDn */
433 static int hf_ain_incoming; /* Incoming */
434 static int hf_ain_outgoing; /* Outgoing */
435 static int hf_ain_aINDigits; /* AINDigits */
436 static int hf_ain_timestamp; /* Timestamp */
437 static int hf_ain_requestGroups; /* RequestGroups */
438 static int hf_ain_requestMemorySlot; /* RequestMemorySlot */
439 static int hf_ain_requestGroup1; /* RequestGroup1 */
440 static int hf_ain_requestGroup2; /* RequestGroup2 */
441 static int hf_ain_requestGroup3; /* RequestGroup3 */
442 static int hf_ain_requestGroup4; /* RequestGroup4 */
443 static int hf_ain_requestGroup5; /* RequestGroup5 */
444 static int hf_ain_requestGroup6; /* RequestGroup6 */
445 static int hf_ain_request1; /* Request1 */
446 static int hf_ain_request2; /* Request2 */
447 static int hf_ain_request3; /* Request3 */
448 static int hf_ain_request4; /* Request4 */
449 static int hf_ain_request5; /* Request5 */
450 static int hf_ain_request6; /* Request6 */
451 static int hf_ain_msrID; /* MsrID */
452 static int hf_ain_announcementBlock; /* AnnouncementBlock */
453 static int hf_ain_announcementDigitBlock; /* AnnouncementDigitBlock */
454 static int hf_ain_flexParameterBlock; /* FlexParameterBlock */
455 static int hf_ain_uninterAnnounceBlock; /* UninterAnnounceBlock */
456 static int hf_ain_interAnnounceBlock; /* InterAnnounceBlock */
457 static int hf_ain_UninterAnnounceBlock_item; /* AnnounceElement */
458 static int hf_ain_InterAnnounceBlock_item; /* AnnounceElement */
459 static int hf_ain_maximumDigits; /* MaximumDigits */
460 static int hf_ain_intervalTime; /* IntervalTime */
461 static int hf_ain_localSSPTime; /* LocalSSPTime */
462 static int hf_ain_absoluteSCPTime; /* AbsoluteSCPTime */
463 static int hf_ain_bri; /* T_bri */
464 static int hf_ain_privateFacilityGID; /* PrivateFacilityGID */
465 static int hf_ain_aDSIcpeID; /* ADSIcpeID */
466 static int hf_ain_local; /* T_local */
467 static int hf_ain_global; /* OBJECT_IDENTIFIER */
468 static int hf_ain_invoke; /* Invoke */
469 static int hf_ain_returnResult; /* ReturnResult */
470 static int hf_ain_returnError; /* ReturnError */
471 static int hf_ain_reject; /* Reject */
472 static int hf_ain_invokeId; /* InvokeId */
473 static int hf_ain_linkedId; /* T_linkedId */
474 static int hf_ain_present; /* T_present */
475 static int hf_ain_absent; /* NULL */
476 static int hf_ain_opcode; /* Code */
477 static int hf_ain_argument; /* T_argument */
478 static int hf_ain_result; /* T_result */
479 static int hf_ain_result_01; /* T_result_01 */
480 static int hf_ain_errcode; /* Code */
481 static int hf_ain_parameter_01; /* T_parameter */
482 static int hf_ain_problem; /* T_problem */
483 static int hf_ain_general; /* GeneralProblem */
484 static int hf_ain_invokeproblem; /* InvokeProblem */
485 static int hf_ain_returnResult_01; /* ReturnResultProblem */
486 static int hf_ain_returnError_01; /* ReturnErrorProblem */
487 static int hf_ain_present_01; /* INTEGER */
488 static int hf_ain_InvokeId_present; /* InvokeId_present */
489 /* named bits */
490 static int hf_ain_ApplyRestrictions_U_code;
491 static int hf_ain_ApplyRestrictions_U_toll;
492 static int hf_ain_EDPNotification_U_oCalledPartyBusy;
493 static int hf_ain_EDPNotification_U_oNoAnswer;
494 static int hf_ain_EDPNotification_U_oTermSeized;
495 static int hf_ain_EDPNotification_U_oAnswer;
496 static int hf_ain_EDPNotification_U_tBusy;
497 static int hf_ain_EDPNotification_U_tNoAnswer;
498 static int hf_ain_EDPNotification_U_termResourceAvailable;
499 static int hf_ain_EDPNotification_U_tAnswer;
500 static int hf_ain_EDPNotification_U_networkBusy;
501 static int hf_ain_EDPNotification_U_oSuspended;
502 static int hf_ain_EDPNotification_U_oDisconnectCalled;
503 static int hf_ain_EDPNotification_U_oDisconnect;
504 static int hf_ain_EDPNotification_U_oAbandon;
505 static int hf_ain_EDPNotification_U_featureActivator;
506 static int hf_ain_EDPNotification_U_switchHookFlash;
507 static int hf_ain_EDPNotification_U_success;
508 static int hf_ain_EDPNotification_U_tDisconnect;
509 static int hf_ain_EDPNotification_U_timeout;
510 static int hf_ain_EDPNotification_U_originationAttempt;
511 static int hf_ain_EDPNotification_U_oDTMFEntered;
512 static int hf_ain_EDPNotification_U_tDTMFEntered;
513 static int hf_ain_EDPRequest_U_oCalledPartyBusy;
514 static int hf_ain_EDPRequest_U_oNoAnswer;
515 static int hf_ain_EDPRequest_U_oTermSeized;
516 static int hf_ain_EDPRequest_U_oAnswer;
517 static int hf_ain_EDPRequest_U_tBusy;
518 static int hf_ain_EDPRequest_U_tNoAnswer;
519 static int hf_ain_EDPRequest_U_termResourceAvailable;
520 static int hf_ain_EDPRequest_U_tAnswer;
521 static int hf_ain_EDPRequest_U_networkBusy;
522 static int hf_ain_EDPRequest_U_oSuspended;
523 static int hf_ain_EDPRequest_U_oDisconnectCalled;
524 static int hf_ain_EDPRequest_U_oDisconnect;
525 static int hf_ain_EDPRequest_U_oAbandon;
526 static int hf_ain_EDPRequest_U_featureActivator;
527 static int hf_ain_EDPRequest_U_switchHookFlash;
528 static int hf_ain_EDPRequest_U_success;
529 static int hf_ain_EDPRequest_U_tDisconnect;
530 static int hf_ain_EDPRequest_U_timeout;
531 static int hf_ain_EDPRequest_U_originationAttempt;
532 static int hf_ain_EDPRequest_U_oDTMFEntered;
533 static int hf_ain_EDPRequest_U_tDTMFEntered;
534 static int hf_ain_Empty_entireList;
535 static int hf_ain_Empty_outgoingmemorySlot;
536 static int hf_ain_Empty_incomingmemorySlot;
537 static int hf_ain_Empty_forwardToDn;
538 static int hf_ain_Request1_activationStatus;
539 static int hf_ain_Request2_activationStatus;
540 static int hf_ain_Request2_delayInterval;
541 static int hf_ain_Request3_activationStatus;
542 static int hf_ain_Request3_entireList;
543 static int hf_ain_Request3_listSize;
544 static int hf_ain_Request4_activationStatus;
545 static int hf_ain_Request4_forwardingDn;
546 static int hf_ain_Request5_activationStatus;
547 static int hf_ain_Request5_forwardingDn;
548 static int hf_ain_Request5_entireList;
549 static int hf_ain_Request5_listSize;
550 static int hf_ain_Request6_delayInterval;
551 static int hf_ain_RequestMemorySlot_incoming;
552 static int hf_ain_RequestMemorySlot_outgoing;
554 /* Initialize the subtree pointers */
555 static int ett_ain;
556 static int ett_ain_digits;
557 static int ett_ain_carrierformat;
558 static int ett_ain_amaslpid;
560 static int ett_ain_CallInfoFromResourceArg;
561 static int ett_ain_CloseArg;
562 static int ett_ain_CTRClearArg;
563 static int ett_ain_FailureOutcomeArg;
564 static int ett_ain_InfoAnalyzedArg;
565 static int ett_ain_InfoCollectedArg;
566 static int ett_ain_NetworkBusyArg;
567 static int ett_ain_OAnswerArg;
568 static int ett_ain_OAbandonArg;
569 static int ett_ain_ODisconnectArg;
570 static int ett_ain_OMidCallArg;
571 static int ett_ain_ONoAnswerArg;
572 static int ett_ain_OSuspendedArg;
573 static int ett_ain_OTermSeizedArg;
574 static int ett_ain_OriginationAttemptArg;
575 static int ett_ain_RES_resourceClear;
576 static int ett_ain_ResourceClearArg;
577 static int ett_ain_SuccessOutcomeArg;
578 static int ett_ain_TAnswerArg;
579 static int ett_ain_TBusyArg;
580 static int ett_ain_TDisconnectArg;
581 static int ett_ain_TDTMFEnteredArg;
582 static int ett_ain_TMidCallArg;
583 static int ett_ain_TNoAnswerArg;
584 static int ett_ain_TerminationAttemptArg;
585 static int ett_ain_TermResourceAvailableArg;
586 static int ett_ain_TimeoutArg;
587 static int ett_ain_AnalyzeRouteArg;
588 static int ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber;
589 static int ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC;
590 static int ett_ain_AuthorizeTerminationArg;
591 static int ett_ain_CancelResourceEventArg;
592 static int ett_ain_CollectInformationArg;
593 static int ett_ain_ConnectToResourceArg;
594 static int ett_ain_ContinueArg;
595 static int ett_ain_CreateCallArg;
596 static int ett_ain_CreateCallRes;
597 static int ett_ain_DisconnectArg;
598 static int ett_ain_DisconnectLegArg;
599 static int ett_ain_ForwardCallArg;
600 static int ett_ain_MergeCallArg;
601 static int ett_ain_MoveLegArg;
602 static int ett_ain_OfferCallArg;
603 static int ett_ain_OriginateCallArg;
604 static int ett_ain_ReconnectArg;
605 static int ett_ain_RES_sendToResource;
606 static int ett_ain_SendToResourceArg;
607 static int ett_ain_SetTimerArg;
608 static int ett_ain_SplitLegArg;
609 static int ett_ain_AcgArg;
610 static int ett_ain_RES_acgGlobalCtrlRestore;
611 static int ett_ain_AcgGlobalCtrlRestoreArg;
612 static int ett_ain_AcgOverflowArg;
613 static int ett_ain_RES_activityTest;
614 static int ett_ain_ActivityTestArg;
615 static int ett_ain_RES_callTypeRequest;
616 static int ett_ain_CallTypeRequestArg;
617 static int ett_ain_ControlRequestArg;
618 static int ett_ain_RES_echoRequest;
619 static int ett_ain_EchoRequestArg;
620 static int ett_ain_FurnishAMAInformationArg;
621 static int ett_ain_MonitorForChangeArg;
622 static int ett_ain_MonitorSuccessArg;
623 static int ett_ain_NCADataArg;
624 static int ett_ain_T_id;
625 static int ett_ain_RES_nCARequest;
626 static int ett_ain_NCARequestArg;
627 static int ett_ain_RES_queryRequest;
628 static int ett_ain_QueryRequestArg;
629 static int ett_ain_RequestReportBCMEventArg;
630 static int ett_ain_StatusReportedArg;
631 static int ett_ain_TerminationNotificationArg;
632 static int ett_ain_RES_update;
633 static int ett_ain_UpdateArg;
634 static int ett_ain_RES_updateRequest;
635 static int ett_ain_UpdateRequestArg;
636 static int ett_ain_PAR_applicationError;
637 static int ett_ain_PAR_failureReport;
638 static int ett_ain_AdministrableObject;
639 static int ett_ain_TriggerItemAssignment_U;
640 static int ett_ain_SSPUserResourceID;
641 static int ett_ain_DnCtID;
642 static int ett_ain_TriggerItemID;
643 static int ett_ain_SSPUserResourceSubID;
644 static int ett_ain_ISDNBChannelID;
645 static int ett_ain_SSPUserResource_U;
646 static int ett_ain_UpdateGroups;
647 static int ett_ain_UpdateGroup1;
648 static int ett_ain_Action1;
649 static int ett_ain_UpdateGroup2;
650 static int ett_ain_Action2;
651 static int ett_ain_UpdateGroup3;
652 static int ett_ain_Action3;
653 static int ett_ain_EditSpecificEntry;
654 static int ett_ain_Entry;
655 static int ett_ain_UpdateGroup4;
656 static int ett_ain_Action4;
657 static int ett_ain_ForwardingDn;
658 static int ett_ain_Set;
659 static int ett_ain_UpdateGroup5;
660 static int ett_ain_Action5;
661 static int ett_ain_UpdateGroup6;
662 static int ett_ain_Action6;
663 static int ett_ain_UpdateGroup7;
664 static int ett_ain_Action7;
665 static int ett_ain_UpdateGroup8;
666 static int ett_ain_Action8;
667 static int ett_ain_UpdateGroup9;
668 static int ett_ain_Action9;
669 static int ett_ain_ChangeList;
670 static int ett_ain_SrhrGroup_U;
671 static int ett_ain_NetworkTestDesignator_U;
672 static int ett_ain_NtdID;
673 static int ett_ain_OperationsMonitoringAssignment_U;
674 static int ett_ain_OperationsMonitoredItemID;
675 static int ett_ain_AMAMeasurement_U;
676 static int ett_ain_Amp2_U;
677 static int ett_ain_AmpAINNodeID;
678 static int ett_ain_AmpSvcProvID;
679 static int ett_ain_ApplicationErrorString_U;
680 static int ett_ain_ApplyRestrictions_U;
681 static int ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation;
682 static int ett_ain_DisplayInformation;
683 static int ett_ain_EDPNotification_U;
684 static int ett_ain_EDPRequest_U;
685 static int ett_ain_ExtensionParameter;
686 static int ett_ain_FacilityGID;
687 static int ett_ain_FailedMessage_U;
688 static int ett_ain_InvParms;
689 static int ett_ain_Parms;
690 static int ett_ain_GapInterval;
691 static int ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress;
692 static int ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits;
693 static int ett_ain_InfoProvided_U;
694 static int ett_ain_EntireList;
695 static int ett_ain_Entry2;
696 static int ett_ain_MemorySlot;
697 static int ett_ain_Incoming;
698 static int ett_ain_Outgoing;
699 static int ett_ain_Empty;
700 static int ett_ain_ProvideInfo_U;
701 static int ett_ain_RequestGroups;
702 static int ett_ain_RequestGroup1;
703 static int ett_ain_Request1;
704 static int ett_ain_RequestGroup2;
705 static int ett_ain_Request2;
706 static int ett_ain_RequestGroup3;
707 static int ett_ain_Request3;
708 static int ett_ain_RequestGroup4;
709 static int ett_ain_Request4;
710 static int ett_ain_RequestGroup5;
711 static int ett_ain_Request5;
712 static int ett_ain_RequestGroup6;
713 static int ett_ain_Request6;
714 static int ett_ain_RequestMemorySlot;
715 static int ett_ain_ServiceProviderID;
716 static int ett_ain_StrParameterBlock_U;
717 static int ett_ain_AnnouncementBlock;
718 static int ett_ain_UninterAnnounceBlock;
719 static int ett_ain_InterAnnounceBlock;
720 static int ett_ain_AnnouncementDigitBlock;
721 static int ett_ain_TimeoutTimer_U;
722 static int ett_ain_UserID_U;
723 static int ett_ain_T_bri;
724 static int ett_ain_Code;
725 static int ett_ain_ROS;
726 static int ett_ain_Invoke;
727 static int ett_ain_T_linkedId;
728 static int ett_ain_ReturnResult;
729 static int ett_ain_T_result;
730 static int ett_ain_ReturnError;
731 static int ett_ain_Reject;
732 static int ett_ain_T_problem;
733 static int ett_ain_InvokeId;
735 static expert_field ei_ain_unknown_invokeData;
736 static expert_field ei_ain_unknown_returnResultData;
737 static expert_field ei_ain_unknown_returnErrorData;
739 /* Global variables */
740 static uint32_t opcode;
741 static uint32_t errorCode;
742 //static const char *obj_id = NULL;
744 static int ain_opcode_type;
745 #define AIN_OPCODE_INVOKE 1
746 #define AIN_OPCODE_RETURN_RESULT 2
747 #define AIN_OPCODE_RETURN_ERROR 3
748 #define AIN_OPCODE_REJECT 4
750 /* Forward declarations */
751 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
752 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
753 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
755 static const value_string ain_np_vals[] = {
756 { 0, "Unknown or not applicable"},
757 { 1, "ISDN Numbering Plan (ITU Rec. E.164)"},
758 { 2, "Telephony Numbering (ITU-T Rec. E.164,E.163)"},
759 { 3, "Data Numbering (ITU-T Rec. X.121)"},
760 { 4, "Telex Numbering (ITU-T Rec. F.69)"},
761 { 5, "Maritime Mobile Numbering"},
762 { 6, "Land Mobile Numbering (ITU-T Rec. E.212)"},
763 { 7, "Private Numbering Plan"},
764 { 0, NULL }
767 static const value_string ain_carrier_selection_vals[] = {
768 { 0, "No indication"},
769 { 1, "Selected carrier identification code presubscribed and not input by calling party"},
770 { 2, "Selected carrier identification code presubscribed and input by calling party"},
771 { 3, "Selected carrier identification code presubscribed, no indication of whether input by calling party"},
772 { 4, "Selected carrier identification code not presubscribed and input by calling party"},
773 { 0, NULL }
776 static const value_string ain_nature_of_carrier_vals[] = {
777 { 0, "No NOC Provided"},
778 { 1, "local"},
779 { 2, "intraLATA toll"},
780 { 3, "interLATA"},
781 { 4, "local, intraLATA toll and interLATA"},
782 { 5, "local and intraLATA toll"},
783 { 6, "intraLATA toll and interLATA"},
784 { 0, NULL }
788 /* AIN OPERATIONS */
789 static const value_string ain_opr_code_strings[] = {
790 { 26116 , "callInfoFromResource" },
791 { 28161 , "close" },
792 { 26118 , "cTRClear" },
793 { 25604 , "failureOutcome" },
794 { 25603 , "infoAnalyzed" },
795 { 25602 , "infoCollected" },
796 { 25623 , "networkBusy" },
797 { 25611 , "oAnswer" },
798 { 25614 , "oAbandon" },
799 { 25626 , "oDisconnect" },
800 { 25615 , "oMidCall" },
801 { 25609 , "oNoAnswer" },
802 { 25625 , "oSuspended" },
803 { 25612 , "oTermSeized" },
804 { 25624 , "originationAttempt" },
805 { 26114 , "resourceClear" },
806 { 25617 , "successOutcome" },
807 { 25610 , "tAnswer" },
808 { 25606 , "tBusy" },
809 { 25618 , "tDisconnect" },
810 { 25628 , "tDTMFEntered" },
811 { 25619 , "tMidCall" },
812 { 25608 , "tNoAnswer" },
813 { 25605 , "terminationAttempt" },
814 { 25613 , "termResourceAvailable" },
815 { 25620 , "timeout" },
816 { 25857 , "analyzeRoute" },
817 { 25858 , "authorizeTermination" },
818 { 26115 , "cancelResourceEvent" },
819 { 25861 , "collectInformation" },
820 { 26117 , "connectToResource" },
821 { 25869 , "continue" },
822 { 25863 , "createCall" },
823 { 25859 , "disconnect" },
824 { 25864 , "disconnectLeg" },
825 { 27137 , "forwardCall" },
826 { 25865 , "mergeCall" },
827 { 25866 , "moveLeg" },
828 { 25860 , "offerCall" },
829 { 25867 , "originateCall" },
830 { 25870 , "reconnect" },
831 { 26113 , "sendToResource" },
832 { 26889 , "setTimer" },
833 { 25868 , "splitLeg" },
834 { 26881 , "acg" },
835 { 26883 , "acgGlobalCtrlRestore" },
836 { 26884 , "acgOverflow" },
837 { 26886 , "activityTest" },
838 { 26887 , "callTypeRequest" },
839 { 26885 , "controlRequest" },
840 { 26882 , "echoRequest" },
841 { 27649 , "furnishAMAInformation" },
842 { 26369 , "monitorForChange" },
843 { 26371 , "monitorSuccess" },
844 { 27394 , "nCAData" },
845 { 27393 , "nCARequest" },
846 { 26626 , "queryRequest" },
847 { 27905 , "requestReportBCMEvent" },
848 { 26370 , "statusReported" },
849 { 26372 , "terminationNotification" },
850 { 26627 , "update" },
851 { 26625 , "updateRequest" },
852 { 0, NULL }
856 /* AIN ERRORS */
857 static const value_string ain_err_code_string_vals[] = {
858 { 1 , "applicationError" },
859 { 2 , "failureReport" },
860 { 0, NULL }
866 static int
867 dissect_ain_OCTET_STRING_SIZE_1_120(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
868 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
869 NULL);
871 return offset;
876 static int
877 dissect_ain_IPReturnBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
878 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
879 hf_index, BER_CLASS_CON, 78, true, dissect_ain_OCTET_STRING_SIZE_1_120);
881 return offset;
886 static int
887 dissect_ain_OCTET_STRING_SIZE_6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
888 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
889 NULL);
891 return offset;
896 static int
897 dissect_ain_Amp1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
898 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
899 hf_index, BER_CLASS_CON, 11, true, dissect_ain_OCTET_STRING_SIZE_6);
901 return offset;
906 static int
907 dissect_ain_SpcID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
908 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
909 NULL);
911 return offset;
916 static int
917 dissect_ain_AINDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
918 tvbuff_t *parameter_tvb;
919 proto_tree *subtree;
921 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
922 &parameter_tvb);
925 if (!parameter_tvb)
926 return offset;
928 subtree = proto_item_add_subtree(actx->created_item, ett_ain_digits);
929 proto_tree_add_item(subtree, hf_ain_odd_even_indicator, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
930 proto_tree_add_item(subtree, hf_ain_nature_of_address, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
932 proto_tree_add_item(subtree, hf_ain_numbering_plan, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
934 proto_tree_add_item(subtree, hf_ain_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
937 return offset;
942 static int
943 dissect_ain_ISDNDeviceID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
944 offset = dissect_ain_AINDigits(implicit_tag, tvb, offset, actx, tree, hf_index);
946 return offset;
950 static const value_string ain_AmpAINNodeID_vals[] = {
951 { 1, "spcID" },
952 { 2, "iSDNDeviceID" },
953 { 0, NULL }
956 static const ber_choice_t AmpAINNodeID_choice[] = {
957 { 1, &hf_ain_spcID , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_SpcID },
958 { 2, &hf_ain_iSDNDeviceID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ISDNDeviceID },
959 { 0, NULL, 0, 0, 0, NULL }
962 static int
963 dissect_ain_AmpAINNodeID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
964 offset = dissect_ber_choice(actx, tree, tvb, offset,
965 AmpAINNodeID_choice, hf_index, ett_ain_AmpAINNodeID,
966 NULL);
968 return offset;
973 static int
974 dissect_ain_AmpCLogSeqNo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
975 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
976 NULL);
978 return offset;
982 static const value_string ain_AmpCLogRepInd_vals[] = {
983 { 0, "autoReportOS" },
984 { 1, "requestReport" },
985 { 2, "autoReportISDN" },
986 { 0, NULL }
990 static int
991 dissect_ain_AmpCLogRepInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
992 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
993 NULL);
995 return offset;
999 static const value_string ain_AmpCallProgInd_vals[] = {
1000 { 0, "callProgressVoiceAnnouncements" },
1001 { 1, "callProgressTextMessages" },
1002 { 0, NULL }
1006 static int
1007 dissect_ain_AmpCallProgInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1008 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1009 NULL);
1011 return offset;
1016 static int
1017 dissect_ain_AmpTestReqInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1018 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1019 NULL);
1021 return offset;
1026 static int
1027 dissect_ain_AmpCLogName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1028 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1029 NULL);
1031 return offset;
1036 static int
1037 dissect_ain_IA5String_SIZE_4_8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1038 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1039 actx, tree, tvb, offset, hf_index,
1040 NULL);
1042 return offset;
1047 static int
1048 dissect_ain_Ocn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1049 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1050 hf_index, BER_CLASS_CON, 87, true, dissect_ain_IA5String_SIZE_4_8);
1052 return offset;
1056 static const value_string ain_AmpSvcProvID_vals[] = {
1057 { 87, "ocn" },
1058 { 0, NULL }
1061 static const ber_choice_t AmpSvcProvID_choice[] = {
1062 { 87, &hf_ain_ocn , BER_CLASS_CON, 87, BER_FLAGS_NOOWNTAG, dissect_ain_Ocn },
1063 { 0, NULL, 0, 0, 0, NULL }
1066 static int
1067 dissect_ain_AmpSvcProvID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1068 offset = dissect_ber_choice(actx, tree, tvb, offset,
1069 AmpSvcProvID_choice, hf_index, ett_ain_AmpSvcProvID,
1070 NULL);
1072 return offset;
1076 static const ber_sequence_t Amp2_U_sequence[] = {
1077 { &hf_ain_ampAINNodeID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_AmpAINNodeID },
1078 { &hf_ain_ampCLogSeqNo , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCLogSeqNo },
1079 { &hf_ain_ampCLogRepInd , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCLogRepInd },
1080 { &hf_ain_ampCallProgInd , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCallProgInd },
1081 { &hf_ain_ampTestReqInd , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpTestReqInd },
1082 { &hf_ain_ampCLogName , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AmpCLogName },
1083 { &hf_ain_ampSvcProvID , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_AmpSvcProvID },
1084 { NULL, 0, 0, 0, NULL }
1087 static int
1088 dissect_ain_Amp2_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1089 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1090 Amp2_U_sequence, hf_index, ett_ain_Amp2_U);
1092 return offset;
1097 static int
1098 dissect_ain_Amp2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1099 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1100 hf_index, BER_CLASS_CON, 109, true, dissect_ain_Amp2_U);
1102 return offset;
1107 static int
1108 dissect_ain_T_assignmentAuthority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1109 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_ain_ext_type_oid, &actx->external.direct_reference);
1111 return offset;
1116 static int
1117 dissect_ain_T_parameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1118 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
1121 return offset;
1125 static const ber_sequence_t ExtensionParameter_sequence[] = {
1126 { &hf_ain_assignmentAuthority, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ain_T_assignmentAuthority },
1127 { &hf_ain_parameters , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ain_T_parameters },
1128 { NULL, 0, 0, 0, NULL }
1131 static int
1132 dissect_ain_ExtensionParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1133 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1134 ExtensionParameter_sequence, hf_index, ett_ain_ExtensionParameter);
1136 return offset;
1140 static const ber_sequence_t CallInfoFromResourceArg_sequence[] = {
1141 { &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
1142 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
1143 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
1144 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
1145 { NULL, 0, 0, 0, NULL }
1148 static int
1149 dissect_ain_CallInfoFromResourceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1150 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1151 CallInfoFromResourceArg_sequence, hf_index, ett_ain_CallInfoFromResourceArg);
1153 return offset;
1158 static int
1159 dissect_ain_Dn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1160 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1161 NULL);
1163 return offset;
1168 static int
1169 dissect_ain_OCTET_STRING_SIZE_3_20(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1170 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1171 NULL);
1173 return offset;
1178 static int
1179 dissect_ain_Spid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1180 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1181 hf_index, BER_CLASS_CON, 49, true, dissect_ain_OCTET_STRING_SIZE_3_20);
1183 return offset;
1187 static const ber_sequence_t T_bri_sequence[] = {
1188 { &hf_ain_spid , BER_CLASS_CON, 49, BER_FLAGS_NOOWNTAG, dissect_ain_Spid },
1189 { &hf_ain_dn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_Dn },
1190 { NULL, 0, 0, 0, NULL }
1193 static int
1194 dissect_ain_T_bri(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1195 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1196 T_bri_sequence, hf_index, ett_ain_T_bri);
1198 return offset;
1203 static int
1204 dissect_ain_TrunkGroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1205 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1206 NULL);
1208 return offset;
1213 static int
1214 dissect_ain_PrivateFacilityGID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1215 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1216 NULL);
1218 return offset;
1223 static int
1224 dissect_ain_ADSIcpeID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1225 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1226 NULL);
1228 return offset;
1232 static const value_string ain_UserID_U_vals[] = {
1233 { 0, "dn" },
1234 { 1, "bri" },
1235 { 2, "trunkGroupID" },
1236 { 3, "privateFacilityGID" },
1237 { 4, "aDSIcpeID" },
1238 { 0, NULL }
1241 static const ber_choice_t UserID_U_choice[] = {
1242 { 0, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
1243 { 1, &hf_ain_bri , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_T_bri },
1244 { 2, &hf_ain_trunkGroupID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_TrunkGroupID },
1245 { 3, &hf_ain_privateFacilityGID, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_PrivateFacilityGID },
1246 { 4, &hf_ain_aDSIcpeID , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_ADSIcpeID },
1247 { 0, NULL, 0, 0, 0, NULL }
1250 static int
1251 dissect_ain_UserID_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1252 offset = dissect_ber_choice(actx, tree, tvb, offset,
1253 UserID_U_choice, hf_index, ett_ain_UserID_U,
1254 NULL);
1256 return offset;
1261 static int
1262 dissect_ain_UserID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1263 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1264 hf_index, BER_CLASS_CON, 53, true, dissect_ain_UserID_U);
1266 return offset;
1270 static const value_string ain_BearerCapability_U_vals[] = {
1271 { 0, "speech" },
1272 { 1, "f31kHzaudio" },
1273 { 2, "f7kHzaudio" },
1274 { 3, "b56kbps" },
1275 { 4, "b64kbps" },
1276 { 5, "packetModeData" },
1277 { 6, "multiRate" },
1278 { 0, NULL }
1282 static int
1283 dissect_ain_BearerCapability_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1284 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1285 NULL);
1287 return offset;
1292 static int
1293 dissect_ain_BearerCapability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1294 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1295 hf_index, BER_CLASS_CON, 13, true, dissect_ain_BearerCapability_U);
1297 return offset;
1301 static const value_string ain_CloseCause_U_vals[] = {
1302 { 0, "callTerminated" },
1303 { 1, "eDPsCompleted" },
1304 { 2, "unexpectedCommunication" },
1305 { 3, "calledPartyAnswered" },
1306 { 4, "callForwardedEDPsCompleted" },
1307 { 5, "newRequestedEvent" },
1308 { 0, NULL }
1312 static int
1313 dissect_ain_CloseCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1314 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1315 NULL);
1317 return offset;
1322 static int
1323 dissect_ain_CloseCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1324 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1325 hf_index, BER_CLASS_CON, 72, true, dissect_ain_CloseCause_U);
1327 return offset;
1331 static const ber_sequence_t CloseArg_sequence[] = {
1332 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
1333 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
1334 { &hf_ain_closeCause , BER_CLASS_CON, 72, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CloseCause },
1335 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
1336 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
1337 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
1338 { NULL, 0, 0, 0, NULL }
1341 static int
1342 dissect_ain_CloseArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1343 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1344 CloseArg_sequence, hf_index, ett_ain_CloseArg);
1346 return offset;
1351 static int
1352 dissect_ain_INTEGER_0_255(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1353 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1354 NULL);
1356 return offset;
1361 static int
1362 dissect_ain_ClearCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1363 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1364 hf_index, BER_CLASS_CON, 21, true, dissect_ain_INTEGER_0_255);
1366 return offset;
1371 static int
1372 dissect_ain_INTEGER_0_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1373 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1374 NULL);
1376 return offset;
1381 static int
1382 dissect_ain_LegID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1383 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1384 hf_index, BER_CLASS_CON, 132, true, dissect_ain_INTEGER_0_2);
1386 return offset;
1390 static const value_string ain_CcID_U_vals[] = {
1391 { 0, "null" },
1392 { 1, "originatingSetup" },
1393 { 2, "stable2Party" },
1394 { 3, "terminatingSetup" },
1395 { 4, "threePartySetup" },
1396 { 5, "threePartySetupComplement" },
1397 { 6, "partyOnHold" },
1398 { 7, "partyOnHoldComplement" },
1399 { 8, "callWaiting" },
1400 { 9, "callWaitingComplement" },
1401 { 10, "stableMParty" },
1402 { 11, "transfer" },
1403 { 12, "forward" },
1404 { 0, NULL }
1408 static int
1409 dissect_ain_CcID_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1410 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1411 NULL);
1413 return offset;
1418 static int
1419 dissect_ain_CcID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1420 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1421 hf_index, BER_CLASS_CON, 133, true, dissect_ain_CcID_U);
1423 return offset;
1427 static const value_string ain_BCMType_U_vals[] = {
1428 { 0, "oBcm" },
1429 { 1, "tBcm" },
1430 { 0, NULL }
1434 static int
1435 dissect_ain_BCMType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1436 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1437 NULL);
1439 return offset;
1444 static int
1445 dissect_ain_BCMType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1446 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1447 hf_index, BER_CLASS_CON, 134, true, dissect_ain_BCMType_U);
1449 return offset;
1453 static const value_string ain_PointInCall_U_vals[] = {
1454 { 1, "oNull" },
1455 { 2, "authorizeOrigAttempt" },
1456 { 3, "collectInformation" },
1457 { 4, "analyzeInformation" },
1458 { 5, "selectRoute" },
1459 { 6, "authorizeCallSetup" },
1460 { 7, "sendCall" },
1461 { 8, "oAlerting" },
1462 { 9, "oActive" },
1463 { 10, "oSuspended" },
1464 { 11, "tNull" },
1465 { 12, "authorizeTermination" },
1466 { 13, "selectFacility" },
1467 { 14, "presentCall" },
1468 { 15, "tAlerting" },
1469 { 16, "tActive" },
1470 { 17, "tSuspended" },
1471 { 0, NULL }
1475 static int
1476 dissect_ain_PointInCall_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1477 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1478 NULL);
1480 return offset;
1485 static int
1486 dissect_ain_PointInCall(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1487 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1488 hf_index, BER_CLASS_CON, 135, true, dissect_ain_PointInCall_U);
1490 return offset;
1495 static int
1496 dissect_ain_CollectedDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1497 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1498 hf_index, BER_CLASS_CON, 23, true, dissect_ain_AINDigits);
1500 return offset;
1505 static int
1506 dissect_ain_CollectedAddressInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1508 hf_index, BER_CLASS_CON, 22, true, dissect_ain_AINDigits);
1510 return offset;
1515 static int
1516 dissect_ain_CarrierFormat(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1517 tvbuff_t *parameter_tvb;
1518 proto_tree *subtree;
1520 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1521 &parameter_tvb);
1524 if (!parameter_tvb)
1525 return offset;
1527 subtree = proto_item_add_subtree(actx->created_item, ett_ain_carrierformat);
1528 /* Carrier Selection */
1529 proto_tree_add_item(subtree, hf_ain_carrier_selection, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
1530 /* Nature of Carrier Number of Digits (always 4 )*/
1531 proto_tree_add_item(subtree, hf_ain_nature_of_carrier, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
1532 proto_tree_add_item(subtree, hf_ain_nr_digits, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
1534 /* 2nd Digit 1st Digit .. */
1535 proto_tree_add_item(subtree, hf_ain_carrier_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
1538 return offset;
1543 static int
1544 dissect_ain_Carrier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1545 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1546 hf_index, BER_CLASS_CON, 41, true, dissect_ain_CarrierFormat);
1548 return offset;
1552 static const value_string ain_FailureCause_U_vals[] = {
1553 { 1, "rateTooHigh" },
1554 { 2, "unavailableResources" },
1555 { 3, "apTimeout" },
1556 { 4, "apBusy" },
1557 { 13, "channelsBusy" },
1558 { 14, "abort" },
1559 { 15, "resourceLimitation" },
1560 { 16, "applicationError" },
1561 { 17, "securityError" },
1562 { 18, "protocolError" },
1563 { 19, "timerExpired" },
1564 { 20, "temporaryFailure" },
1565 { 21, "msridDoesNotMatchUserProfile" },
1566 { 22, "segmentationError" },
1567 { 23, "ncasDisallowed" },
1568 { 24, "controlEncountered" },
1569 { 25, "improperCoding" },
1570 { 26, "inappropriateCondition" },
1571 { 27, "inappropriateUserInterface" },
1572 { 28, "inappropriateLegManipulation" },
1573 { 29, "callingInterfaceBusy" },
1574 { 0, NULL }
1578 static int
1579 dissect_ain_FailureCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1580 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1581 NULL);
1583 return offset;
1588 static int
1589 dissect_ain_FailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1590 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1591 hf_index, BER_CLASS_CON, 32, true, dissect_ain_FailureCause_U);
1593 return offset;
1598 static int
1599 dissect_ain_AMATimeDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1600 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1601 NULL);
1603 return offset;
1607 static const value_string ain_AMATimeGuard_vals[] = {
1608 { 0, "noTimingGuard" },
1609 { 1, "timingGuardExists" },
1610 { 0, NULL }
1614 static int
1615 dissect_ain_AMATimeGuard(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1616 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1617 NULL);
1619 return offset;
1623 static const ber_sequence_t AMAMeasurement_U_sequence[] = {
1624 { &hf_ain_aMATimeDuration , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_AMATimeDuration },
1625 { &hf_ain_aMATimeGuard , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_AMATimeGuard },
1626 { NULL, 0, 0, 0, NULL }
1629 static int
1630 dissect_ain_AMAMeasurement_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1631 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1632 AMAMeasurement_U_sequence, hf_index, ett_ain_AMAMeasurement_U);
1634 return offset;
1639 static int
1640 dissect_ain_AMAMeasurement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1641 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1642 hf_index, BER_CLASS_CON, 73, true, dissect_ain_AMAMeasurement_U);
1644 return offset;
1649 static int
1650 dissect_ain_OCTET_STRING_SIZE_1_20(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1651 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1652 NULL);
1654 return offset;
1659 static int
1660 dissect_ain_ClearCauseData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1661 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1662 hf_index, BER_CLASS_CON, 74, true, dissect_ain_OCTET_STRING_SIZE_1_20);
1664 return offset;
1668 static const ber_sequence_t CTRClearArg_sequence[] = {
1669 { &hf_ain_clearCause , BER_CLASS_CON, 21, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCause },
1670 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
1671 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
1672 { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
1673 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
1674 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
1675 { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
1676 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
1677 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
1678 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
1679 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
1680 { &hf_ain_aMAMeasurement , BER_CLASS_CON, 73, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasurement },
1681 { &hf_ain_clearCauseData , BER_CLASS_CON, 74, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ClearCauseData },
1682 { &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
1683 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
1684 { NULL, 0, 0, 0, NULL }
1687 static int
1688 dissect_ain_CTRClearArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1689 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1690 CTRClearArg_sequence, hf_index, ett_ain_CTRClearArg);
1692 return offset;
1697 static int
1698 dissect_ain_NotificationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1699 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1701 return offset;
1705 static const ber_sequence_t FailureOutcomeArg_sequence[] = {
1706 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
1707 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
1708 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
1709 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
1710 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
1711 { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
1712 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
1713 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
1714 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
1715 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
1716 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
1717 { NULL, 0, 0, 0, NULL }
1720 static int
1721 dissect_ain_FailureOutcomeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1722 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1723 FailureOutcomeArg_sequence, hf_index, ett_ain_FailureOutcomeArg);
1725 return offset;
1730 static int
1731 dissect_ain_CalledPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1732 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1733 hf_index, BER_CLASS_CON, 15, true, dissect_ain_AINDigits);
1735 return offset;
1740 static int
1741 dissect_ain_Lata(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1742 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1743 hf_index, BER_CLASS_CON, 35, true, dissect_ain_AINDigits);
1745 return offset;
1749 static const value_string ain_TriggerCriteriaType_U_vals[] = {
1750 { 0, "featureActivator" },
1751 { 1, "verticalServiceCode" },
1752 { 2, "customizedAccess" },
1753 { 3, "customizedIntercom" },
1754 { 4, "npa" },
1755 { 5, "npaNXX" },
1756 { 6, "nxx" },
1757 { 7, "nxxXXXX" },
1758 { 8, "npaNXXXXXX" },
1759 { 9, "countryCodeNPANXXXXXX" },
1760 { 10, "carrierAccess" },
1761 { 11, "prefixes" },
1762 { 12, "n11" },
1763 { 13, "aFR" },
1764 { 14, "sharedIOTrunk" },
1765 { 15, "terminationAttempt" },
1766 { 16, "offHookImmediate" },
1767 { 17, "offHookDelay" },
1768 { 18, "channelSetupPRI" },
1769 { 19, "npaN" },
1770 { 20, "npaNX" },
1771 { 21, "npaNXXX" },
1772 { 22, "npaNXXXX" },
1773 { 23, "npaNXXXXX" },
1774 { 24, "networkBusy" },
1775 { 25, "tNoAnswer" },
1776 { 26, "tBusy" },
1777 { 27, "oCalledPartyBusy" },
1778 { 28, "specificFeatureCode" },
1779 { 29, "oNoAnswer" },
1780 { 30, "priNetworkServices" },
1781 { 31, "oSwitchHookFlashImmediate" },
1782 { 32, "oFeatureActivator" },
1783 { 33, "oSwitchHookFlashSpecifiedCode" },
1784 { 34, "tSwitchHookFlashImmediate" },
1785 { 35, "tFeatureActivator" },
1786 { 36, "tSwitchHookFlashSpecifiedCode" },
1787 { 37, "numberPortability" },
1788 { 38, "onePlus" },
1789 { 39, "specifiedCarrier" },
1790 { 40, "international" },
1791 { 41, "zeroPlus" },
1792 { 42, "zeroMinus" },
1793 { 43, "localNumberPortabilityPORC" },
1794 { 44, "localNumberPortabilityPORCdonor" },
1795 { 45, "reserved" },
1796 { 46, "termResourceAvailable" },
1797 { 47, "officePublicFeatureCode" },
1798 { 48, "trunkGroup" },
1799 { 49, "dedicatedTrunkGroup" },
1800 { 50, "reserved" },
1801 { 0, NULL }
1805 static int
1806 dissect_ain_TriggerCriteriaType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1807 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1808 NULL);
1810 return offset;
1815 static int
1816 dissect_ain_TriggerCriteriaType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1817 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1818 hf_index, BER_CLASS_CON, 52, true, dissect_ain_TriggerCriteriaType_U);
1820 return offset;
1825 static int
1826 dissect_ain_ChargeNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1827 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1828 hf_index, BER_CLASS_CON, 19, true, dissect_ain_AINDigits);
1830 return offset;
1835 static int
1836 dissect_ain_CallingPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1837 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1838 hf_index, BER_CLASS_CON, 18, true, dissect_ain_AINDigits);
1840 return offset;
1845 static int
1846 dissect_ain_BusinessGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1847 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1848 NULL);
1850 return offset;
1855 static int
1856 dissect_ain_CallingPartyBGID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1857 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1858 hf_index, BER_CLASS_CON, 17, true, dissect_ain_BusinessGroup);
1860 return offset;
1865 static int
1866 dissect_ain_INTEGER_0_99(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1867 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1868 NULL);
1870 return offset;
1875 static int
1876 dissect_ain_ChargePartyStationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1877 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1878 hf_index, BER_CLASS_CON, 20, true, dissect_ain_INTEGER_0_99);
1880 return offset;
1885 static int
1886 dissect_ain_AccessCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1887 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1888 hf_index, BER_CLASS_CON, 1, true, dissect_ain_AINDigits);
1890 return offset;
1895 static int
1896 dissect_ain_VerticalServiceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1897 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1898 hf_index, BER_CLASS_CON, 54, true, dissect_ain_AINDigits);
1900 return offset;
1905 static int
1906 dissect_ain_Tcm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1907 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1908 hf_index, BER_CLASS_CON, 51, true, dissect_ain_AINDigits);
1910 return offset;
1915 static int
1916 dissect_ain_OriginalCalledPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1917 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1918 hf_index, BER_CLASS_CON, 36, true, dissect_ain_AINDigits);
1920 return offset;
1925 static int
1926 dissect_ain_RedirectingPartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1927 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1928 hf_index, BER_CLASS_CON, 43, true, dissect_ain_AINDigits);
1930 return offset;
1935 static int
1936 dissect_ain_OCTET_STRING_SIZE_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1937 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1938 NULL);
1940 return offset;
1945 static int
1946 dissect_ain_RedirectionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1947 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1948 hf_index, BER_CLASS_CON, 44, true, dissect_ain_OCTET_STRING_SIZE_2);
1950 return offset;
1955 static int
1956 dissect_ain_OCTET_STRING_SIZE_1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1957 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1958 NULL);
1960 return offset;
1965 static int
1966 dissect_ain_ACGEncountered(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1967 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1968 hf_index, BER_CLASS_CON, 2, true, dissect_ain_OCTET_STRING_SIZE_1);
1970 return offset;
1975 static int
1976 dissect_ain_OCTET_STRING_SIZE_1_10(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1977 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1978 NULL);
1980 return offset;
1985 static int
1986 dissect_ain_Sap(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1987 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1988 hf_index, BER_CLASS_CON, 81, true, dissect_ain_OCTET_STRING_SIZE_1_10);
1990 return offset;
1995 static int
1996 dissect_ain_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1997 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1999 return offset;
2004 static int
2005 dissect_ain_STRConnection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2006 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2007 hf_index, BER_CLASS_CON, 96, true, dissect_ain_BOOLEAN);
2009 return offset;
2014 static int
2015 dissect_ain_AMASequenceNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2016 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2017 hf_index, BER_CLASS_CON, 89, true, dissect_ain_OCTET_STRING_SIZE_2);
2019 return offset;
2024 static int
2025 dissect_ain_OCTET_STRING_SIZE_4_11(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2026 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2027 NULL);
2029 return offset;
2034 static int
2035 dissect_ain_GenericAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2036 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2037 hf_index, BER_CLASS_CON, 80, true, dissect_ain_OCTET_STRING_SIZE_4_11);
2039 return offset;
2043 static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_GenericAddress_sequence_of[1] = {
2044 { &hf_ain__untag_item_01 , BER_CLASS_CON, 80, BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddress },
2047 static int
2048 dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2049 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2050 SEQUENCE_SIZE_1_5_OF_GenericAddress_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress);
2052 return offset;
2057 static int
2058 dissect_ain_GenericAddressList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2059 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2060 hf_index, BER_CLASS_CON, 107, true, dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress);
2062 return offset;
2067 static int
2068 dissect_ain_OCTET_STRING_SIZE_2_12(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2069 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2070 NULL);
2072 return offset;
2077 static int
2078 dissect_ain_NetworkSpecificFacilities(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2079 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2080 hf_index, BER_CLASS_CON, 108, true, dissect_ain_OCTET_STRING_SIZE_2_12);
2082 return offset;
2087 static int
2088 dissect_ain_CTRConnection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2089 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2090 hf_index, BER_CLASS_CON, 141, true, dissect_ain_BOOLEAN);
2092 return offset;
2097 static int
2098 dissect_ain_OCTET_STRING_SIZE_3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2099 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2100 NULL);
2102 return offset;
2107 static int
2108 dissect_ain_JurisdictionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2109 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2110 hf_index, BER_CLASS_CON, 147, true, dissect_ain_OCTET_STRING_SIZE_3);
2112 return offset;
2116 static const value_string ain_Prefix_U_vals[] = {
2117 { 0, "onePlus" },
2118 { 0, NULL }
2122 static int
2123 dissect_ain_Prefix_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2124 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2125 NULL);
2127 return offset;
2132 static int
2133 dissect_ain_Prefix(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2134 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2135 hf_index, BER_CLASS_CON, 148, true, dissect_ain_Prefix_U);
2137 return offset;
2142 static int
2143 dissect_ain_OCTET_STRING_SIZE_8_13(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2144 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2145 NULL);
2147 return offset;
2152 static int
2153 dissect_ain_CallingGeodeticLocation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2154 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2155 hf_index, BER_CLASS_CON, 162, true, dissect_ain_OCTET_STRING_SIZE_8_13);
2157 return offset;
2162 static int
2163 dissect_ain_TriggerInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2164 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2165 NULL);
2167 return offset;
2171 static const ber_sequence_t InfoAnalyzedArg_sequence[] = {
2172 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2173 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2174 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2175 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2176 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2177 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2178 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2179 { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
2180 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2181 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2182 { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
2183 { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
2184 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
2185 { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
2186 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
2187 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2188 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2189 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2190 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2191 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2192 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2193 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2194 { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
2195 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2196 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2197 { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
2198 { &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
2199 { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
2200 { &hf_ain_jurisdictionInformation, BER_CLASS_CON, 147, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_JurisdictionInformation },
2201 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
2202 { &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
2203 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2204 { NULL, 0, 0, 0, NULL }
2207 static int
2208 dissect_ain_InfoAnalyzedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2209 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2210 InfoAnalyzedArg_sequence, hf_index, ett_ain_InfoAnalyzedArg);
2212 return offset;
2216 static const ber_sequence_t InfoCollectedArg_sequence[] = {
2217 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2218 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2219 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2220 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2221 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2222 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2223 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2224 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2225 { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
2226 { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
2227 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
2228 { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
2229 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
2230 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2231 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2232 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2233 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2234 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2235 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2236 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2237 { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
2238 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2239 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2240 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
2241 { &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
2242 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2243 { NULL, 0, 0, 0, NULL }
2246 static int
2247 dissect_ain_InfoCollectedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2248 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2249 InfoCollectedArg_sequence, hf_index, ett_ain_InfoCollectedArg);
2251 return offset;
2255 static const ber_sequence_t NetworkBusyArg_sequence[] = {
2256 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2257 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2258 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2259 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2260 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2261 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2262 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2263 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2264 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
2265 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2266 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2267 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2268 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2269 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2270 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2271 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2272 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2273 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2274 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2275 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2276 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
2277 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2278 { NULL, 0, 0, 0, NULL }
2281 static int
2282 dissect_ain_NetworkBusyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2283 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2284 NetworkBusyArg_sequence, hf_index, ett_ain_NetworkBusyArg);
2286 return offset;
2290 static const ber_sequence_t OAnswerArg_sequence[] = {
2291 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2292 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2293 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2294 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2295 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2296 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2297 { NULL, 0, 0, 0, NULL }
2300 static int
2301 dissect_ain_OAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2302 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2303 OAnswerArg_sequence, hf_index, ett_ain_OAnswerArg);
2305 return offset;
2309 static const ber_sequence_t OAbandonArg_sequence[] = {
2310 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2311 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2312 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
2313 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2314 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2315 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2316 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2317 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2318 { NULL, 0, 0, 0, NULL }
2321 static int
2322 dissect_ain_OAbandonArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2323 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2324 OAbandonArg_sequence, hf_index, ett_ain_OAbandonArg);
2326 return offset;
2330 static const value_string ain_DisconnectCause_U_vals[] = {
2331 { 0, "farEnd" },
2332 { 0, NULL }
2336 static int
2337 dissect_ain_DisconnectCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2338 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2339 NULL);
2341 return offset;
2346 static int
2347 dissect_ain_DisconnectCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2348 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2349 hf_index, BER_CLASS_CON, 116, true, dissect_ain_DisconnectCause_U);
2351 return offset;
2355 static const ber_sequence_t ODisconnectArg_sequence[] = {
2356 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2357 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2358 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2359 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2360 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2361 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2362 { &hf_ain_disconnectCause , BER_CLASS_CON, 116, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectCause },
2363 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2364 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2365 { NULL, 0, 0, 0, NULL }
2368 static int
2369 dissect_ain_ODisconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2370 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2371 ODisconnectArg_sequence, hf_index, ett_ain_ODisconnectArg);
2373 return offset;
2378 static int
2379 dissect_ain_OCTET_STRING_SIZE_1_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2380 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2381 NULL);
2383 return offset;
2388 static int
2389 dissect_ain_FeatureActivatorID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2390 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2391 hf_index, BER_CLASS_CON, 136, true, dissect_ain_OCTET_STRING_SIZE_1_2);
2393 return offset;
2397 static const ber_sequence_t OMidCallArg_sequence[] = {
2398 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2399 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2400 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2401 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2402 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2403 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
2404 { &hf_ain_featureActivatorID, BER_CLASS_CON, 136, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FeatureActivatorID },
2405 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2406 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2407 { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
2408 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2409 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2410 { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
2411 { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
2412 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
2413 { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
2414 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2415 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2416 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2417 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2418 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2419 { NULL, 0, 0, 0, NULL }
2422 static int
2423 dissect_ain_OMidCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2424 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2425 OMidCallArg_sequence, hf_index, ett_ain_OMidCallArg);
2427 return offset;
2431 static const ber_sequence_t ONoAnswerArg_sequence[] = {
2432 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2433 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2434 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2435 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2436 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2437 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2438 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2439 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2440 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2441 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2442 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2443 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2444 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2445 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2446 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2447 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2448 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2449 { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
2450 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2451 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2452 { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
2453 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
2454 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2455 { NULL, 0, 0, 0, NULL }
2458 static int
2459 dissect_ain_ONoAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2460 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2461 ONoAnswerArg_sequence, hf_index, ett_ain_ONoAnswerArg);
2463 return offset;
2467 static const ber_sequence_t OSuspendedArg_sequence[] = {
2468 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2469 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2470 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2471 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2472 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2473 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2474 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2475 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2476 { NULL, 0, 0, 0, NULL }
2479 static int
2480 dissect_ain_OSuspendedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2481 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2482 OSuspendedArg_sequence, hf_index, ett_ain_OSuspendedArg);
2484 return offset;
2488 static const ber_sequence_t OTermSeizedArg_sequence[] = {
2489 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2490 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2491 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2492 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2493 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2494 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2495 { NULL, 0, 0, 0, NULL }
2498 static int
2499 dissect_ain_OTermSeizedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2500 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2501 OTermSeizedArg_sequence, hf_index, ett_ain_OTermSeizedArg);
2503 return offset;
2507 static const ber_sequence_t OriginationAttemptArg_sequence[] = {
2508 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2509 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2510 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2511 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2512 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2513 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2514 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2515 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2516 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2517 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2518 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2519 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2520 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2521 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2522 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2523 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2524 { NULL, 0, 0, 0, NULL }
2527 static int
2528 dissect_ain_OriginationAttemptArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2529 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2530 OriginationAttemptArg_sequence, hf_index, ett_ain_OriginationAttemptArg);
2532 return offset;
2536 static const ber_sequence_t RES_resourceClear_sequence[] = {
2537 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2538 { NULL, 0, 0, 0, NULL }
2541 static int
2542 dissect_ain_RES_resourceClear(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2543 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2544 RES_resourceClear_sequence, hf_index, ett_ain_RES_resourceClear);
2546 return offset;
2550 static const ber_sequence_t ResourceClearArg_sequence[] = {
2551 { &hf_ain_clearCause , BER_CLASS_CON, 21, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCause },
2552 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
2553 { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
2554 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2555 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
2556 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2557 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2558 { &hf_ain_aMAMeasurement , BER_CLASS_CON, 73, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasurement },
2559 { &hf_ain_clearCauseData , BER_CLASS_CON, 74, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ClearCauseData },
2560 { &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
2561 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2562 { NULL, 0, 0, 0, NULL }
2565 static int
2566 dissect_ain_ResourceClearArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2567 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2568 ResourceClearArg_sequence, hf_index, ett_ain_ResourceClearArg);
2570 return offset;
2574 static const ber_sequence_t SuccessOutcomeArg_sequence[] = {
2575 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2576 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2577 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2578 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
2579 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2580 { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
2581 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2582 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2583 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2584 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2585 { NULL, 0, 0, 0, NULL }
2588 static int
2589 dissect_ain_SuccessOutcomeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2590 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2591 SuccessOutcomeArg_sequence, hf_index, ett_ain_SuccessOutcomeArg);
2593 return offset;
2597 static const ber_sequence_t TAnswerArg_sequence[] = {
2598 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2599 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2600 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2601 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2602 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2603 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2604 { NULL, 0, 0, 0, NULL }
2607 static int
2608 dissect_ain_TAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2609 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2610 TAnswerArg_sequence, hf_index, ett_ain_TAnswerArg);
2612 return offset;
2617 static int
2618 dissect_ain_OCTET_STRING_SIZE_2_3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2619 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2620 NULL);
2622 return offset;
2627 static int
2628 dissect_ain_BusyCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2629 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2630 hf_index, BER_CLASS_CON, 14, true, dissect_ain_OCTET_STRING_SIZE_2_3);
2632 return offset;
2636 static const value_string ain_BusyType_U_vals[] = {
2637 { 0, "callCanBeOffered" },
2638 { 1, "callCannotBeOffered" },
2639 { 0, NULL }
2643 static int
2644 dissect_ain_BusyType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2645 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2646 NULL);
2648 return offset;
2653 static int
2654 dissect_ain_BusyType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2655 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2656 hf_index, BER_CLASS_CON, 94, true, dissect_ain_BusyType_U);
2658 return offset;
2663 static int
2664 dissect_ain_CalledPartyStationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2665 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2666 hf_index, BER_CLASS_CON, 16, true, dissect_ain_INTEGER_0_99);
2668 return offset;
2673 static int
2674 dissect_ain_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2675 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2676 NULL);
2678 return offset;
2683 static int
2684 dissect_ain_GenericName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2685 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2686 hf_index, BER_CLASS_CON, 33, true, dissect_ain_OCTET_STRING);
2688 return offset;
2692 static const ber_sequence_t TBusyArg_sequence[] = {
2693 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2694 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2695 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2696 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2697 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2698 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2699 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2700 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2701 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2702 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2703 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2704 { &hf_ain_busyCause , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BusyCause },
2705 { &hf_ain_busyType , BER_CLASS_CON, 94, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BusyType },
2706 { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
2707 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2708 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
2709 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2710 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2711 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2712 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2713 { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
2714 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2715 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2716 { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
2717 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2718 { NULL, 0, 0, 0, NULL }
2721 static int
2722 dissect_ain_TBusyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2723 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2724 TBusyArg_sequence, hf_index, ett_ain_TBusyArg);
2726 return offset;
2730 static const ber_sequence_t TDisconnectArg_sequence[] = {
2731 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2732 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2733 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
2734 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2735 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2736 { &hf_ain_disconnectCause , BER_CLASS_CON, 116, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectCause },
2737 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2738 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2739 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2740 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2741 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2742 { NULL, 0, 0, 0, NULL }
2745 static int
2746 dissect_ain_TDisconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2747 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2748 TDisconnectArg_sequence, hf_index, ett_ain_TDisconnectArg);
2750 return offset;
2755 static int
2756 dissect_ain_DTMFDigitsDetected(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2757 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2758 hf_index, BER_CLASS_CON, 153, true, dissect_ain_AINDigits);
2760 return offset;
2764 static const ber_sequence_t TDTMFEnteredArg_sequence[] = {
2765 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2766 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2767 { &hf_ain_dTMFDigitsDetected, BER_CLASS_CON, 153, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DTMFDigitsDetected },
2768 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2769 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2770 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2771 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2772 { NULL, 0, 0, 0, NULL }
2775 static int
2776 dissect_ain_TDTMFEnteredArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2777 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2778 TDTMFEnteredArg_sequence, hf_index, ett_ain_TDTMFEnteredArg);
2780 return offset;
2784 static const ber_sequence_t TMidCallArg_sequence[] = {
2785 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2786 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2787 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2788 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2789 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2790 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2791 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
2792 { &hf_ain_featureActivatorID, BER_CLASS_CON, 136, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FeatureActivatorID },
2793 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2794 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2795 { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
2796 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2797 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
2798 { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
2799 { &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
2800 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
2801 { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
2802 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2803 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2804 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2805 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2806 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2807 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2808 { NULL, 0, 0, 0, NULL }
2811 static int
2812 dissect_ain_TMidCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2813 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2814 TMidCallArg_sequence, hf_index, ett_ain_TMidCallArg);
2816 return offset;
2820 static const ber_sequence_t TNoAnswerArg_sequence[] = {
2821 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2822 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2823 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2824 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2825 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2826 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2827 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2828 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2829 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2830 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2831 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2832 { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
2833 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2834 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
2835 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2836 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2837 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2838 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2839 { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
2840 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2841 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2842 { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
2843 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2844 { NULL, 0, 0, 0, NULL }
2847 static int
2848 dissect_ain_TNoAnswerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2850 TNoAnswerArg_sequence, hf_index, ett_ain_TNoAnswerArg);
2852 return offset;
2857 static int
2858 dissect_ain_RTPServiceIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2859 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2860 hf_index, BER_CLASS_CON, 144, true, dissect_ain_OCTET_STRING_SIZE_1);
2862 return offset;
2866 static const ber_sequence_t TerminationAttemptArg_sequence[] = {
2867 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2868 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2869 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2870 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2871 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2872 { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
2873 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2874 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2875 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2876 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
2877 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2878 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2879 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2880 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
2881 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2882 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2883 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2884 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2885 { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
2886 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2887 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2888 { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
2889 { &hf_ain_rTPServiceIndicator, BER_CLASS_CON, 144, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RTPServiceIndicator },
2890 { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
2891 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2892 { &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
2893 { NULL, 0, 0, 0, NULL }
2896 static int
2897 dissect_ain_TerminationAttemptArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2898 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2899 TerminationAttemptArg_sequence, hf_index, ett_ain_TerminationAttemptArg);
2901 return offset;
2905 static const ber_sequence_t TermResourceAvailableArg_sequence[] = {
2906 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2907 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2908 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2909 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2910 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2911 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2912 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
2913 { &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
2914 { &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
2915 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
2916 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
2917 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
2918 { &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
2919 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
2920 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
2921 { &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
2922 { &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
2923 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
2924 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2925 { &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
2926 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
2927 { &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
2928 { &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
2929 { NULL, 0, 0, 0, NULL }
2932 static int
2933 dissect_ain_TermResourceAvailableArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2934 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2935 TermResourceAvailableArg_sequence, hf_index, ett_ain_TermResourceAvailableArg);
2937 return offset;
2941 static const ber_sequence_t TimeoutArg_sequence[] = {
2942 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
2943 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
2944 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
2945 { &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
2946 { &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
2947 { &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
2948 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
2949 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
2950 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
2951 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
2952 { &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
2953 { NULL, 0, 0, 0, NULL }
2956 static int
2957 dissect_ain_TimeoutArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2958 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2959 TimeoutArg_sequence, hf_index, ett_ain_TimeoutArg);
2961 return offset;
2966 static int
2967 dissect_ain_OutpulseNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2968 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2969 hf_index, BER_CLASS_CON, 37, true, dissect_ain_AINDigits);
2971 return offset;
2976 static int
2977 dissect_ain_OCTET_STRING_SIZE_5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2978 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2979 NULL);
2981 return offset;
2986 static int
2987 dissect_ain_PrimaryTrunkGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2988 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2989 hf_index, BER_CLASS_CON, 42, true, dissect_ain_OCTET_STRING_SIZE_5);
2991 return offset;
2996 static int
2997 dissect_ain_AlternateTrunkGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2998 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2999 hf_index, BER_CLASS_CON, 5, true, dissect_ain_OCTET_STRING_SIZE_5);
3001 return offset;
3006 static int
3007 dissect_ain_SecondAlternateTrunkGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3008 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3009 hf_index, BER_CLASS_CON, 48, true, dissect_ain_OCTET_STRING_SIZE_5);
3011 return offset;
3016 static int
3017 dissect_ain_AlternateCarrier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3018 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3019 hf_index, BER_CLASS_CON, 4, true, dissect_ain_CarrierFormat);
3021 return offset;
3026 static int
3027 dissect_ain_SecondAlternateCarrier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3028 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3029 hf_index, BER_CLASS_CON, 47, true, dissect_ain_CarrierFormat);
3031 return offset;
3035 static const value_string ain_PassiveLegTreatment_U_vals[] = {
3036 { 0, "dialToneOn" },
3037 { 1, "ringBackAudibleRingingToneOn" },
3038 { 3, "networkCongestionReorderToneOn" },
3039 { 4, "busyToneOn" },
3040 { 5, "confirmationTone" },
3041 { 7, "callWaitingTone" },
3042 { 63, "tonesOff" },
3043 { 64, "alertingOnPattern0Normal" },
3044 { 65, "alertingOnPattern1DistinctiveIntergroup" },
3045 { 66, "alertingOnPattern2DistinctiveSpecial" },
3046 { 67, "alertingOnPattern3EKTS" },
3047 { 68, "alertingOnPattern4ReminderRing" },
3048 { 79, "alertingOff" },
3049 { 17, "recallDialToneOn" },
3050 { 18, "bargeInToneOn" },
3051 { 251, "incomingAdditionalCallTone" },
3052 { 252, "priorityAdditionalCallTone" },
3053 { 253, "expensiveRouteWarningTone" },
3054 { 19, "campOnTone" },
3055 { 20, "receiverOffHookTone" },
3056 { 21, "callingCardServiceTone" },
3057 { 22, "stutterDialTone" },
3058 { 23, "silence" },
3059 { 0, NULL }
3063 static int
3064 dissect_ain_PassiveLegTreatment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3065 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3066 NULL);
3068 return offset;
3073 static int
3074 dissect_ain_PassiveLegTreatment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3075 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3076 hf_index, BER_CLASS_CON, 39, true, dissect_ain_PassiveLegTreatment_U);
3078 return offset;
3083 static int
3084 dissect_ain_BillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3085 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3086 NULL);
3088 return offset;
3093 static int
3094 dissect_ain_PrimaryBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3095 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3096 hf_index, BER_CLASS_CON, 40, true, dissect_ain_BillingIndicator);
3098 return offset;
3103 static int
3104 dissect_ain_AlternateBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3105 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3106 hf_index, BER_CLASS_CON, 3, true, dissect_ain_BillingIndicator);
3108 return offset;
3113 static int
3114 dissect_ain_SecondAlternateBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3115 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3116 hf_index, BER_CLASS_CON, 46, true, dissect_ain_BillingIndicator);
3118 return offset;
3123 static int
3124 dissect_ain_OverflowBillingIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3125 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3126 hf_index, BER_CLASS_CON, 38, true, dissect_ain_BillingIndicator);
3128 return offset;
3133 static int
3134 dissect_ain_AMAAlternateBillingNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3135 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3136 hf_index, BER_CLASS_CON, 6, true, dissect_ain_AINDigits);
3138 return offset;
3143 static int
3144 dissect_ain_AMABusinessCustomerID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3145 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3146 hf_index, BER_CLASS_CON, 7, true, dissect_ain_AINDigits);
3148 return offset;
3153 static int
3154 dissect_ain_AMALineNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3155 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3156 hf_index, BER_CLASS_CON, 9, true, dissect_ain_AINDigits);
3158 return offset;
3162 static const ber_sequence_t SEQUENCE_SIZE_1_2_OF_AMALineNumber_sequence_of[1] = {
3163 { &hf_ain_aMALineNumberList_item, BER_CLASS_CON, 9, BER_FLAGS_NOOWNTAG, dissect_ain_AMALineNumber },
3166 static int
3167 dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3168 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3169 SEQUENCE_SIZE_1_2_OF_AMALineNumber_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber);
3171 return offset;
3176 static int
3177 dissect_ain_AMAslpID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3178 tvbuff_t *parameter_tvb;
3179 proto_tree *subtree;
3181 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3182 &parameter_tvb);
3185 if (!parameter_tvb)
3186 return offset;
3188 subtree = proto_item_add_subtree(actx->created_item, ett_ain_amaslpid);
3190 proto_tree_add_item(subtree, hf_ain_amaslpid, parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb, 0), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
3193 return offset;
3198 static int
3199 dissect_ain_AMADigitsDialedWC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3200 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3201 hf_index, BER_CLASS_CON, 8, true, dissect_ain_AINDigits);
3203 return offset;
3207 static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC_sequence_of[1] = {
3208 { &hf_ain_aMADigitsDialedWCList_item, BER_CLASS_CON, 8, BER_FLAGS_NOOWNTAG, dissect_ain_AMADigitsDialedWC },
3211 static int
3212 dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3213 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3214 SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC);
3216 return offset;
3221 static int
3222 dissect_ain_MsrID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3223 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3224 hf_index, BER_CLASS_CON, 106, true, dissect_ain_AINDigits);
3226 return offset;
3230 static const value_string ain_ServiceProviderID_vals[] = {
3231 { 87, "ocn" },
3232 { 106, "msrID" },
3233 { 0, NULL }
3236 static const ber_choice_t ServiceProviderID_choice[] = {
3237 { 87, &hf_ain_ocn , BER_CLASS_CON, 87, BER_FLAGS_NOOWNTAG, dissect_ain_Ocn },
3238 { 106, &hf_ain_msrID , BER_CLASS_CON, 106, BER_FLAGS_NOOWNTAG, dissect_ain_MsrID },
3239 { 0, NULL, 0, 0, 0, NULL }
3242 static int
3243 dissect_ain_ServiceProviderID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3244 offset = dissect_ber_choice(actx, tree, tvb, offset,
3245 ServiceProviderID_choice, hf_index, ett_ain_ServiceProviderID,
3246 NULL);
3248 return offset;
3253 static int
3254 dissect_ain_INTEGER_0_32767(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3255 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3256 NULL);
3258 return offset;
3263 static int
3264 dissect_ain_ServiceContext(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3265 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3266 hf_index, BER_CLASS_CON, 83, true, dissect_ain_INTEGER_0_32767);
3268 return offset;
3273 static int
3274 dissect_ain_AMABillingFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3275 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3276 hf_index, BER_CLASS_CON, 88, true, dissect_ain_AINDigits);
3278 return offset;
3282 static const value_string ain_CarrierUsage_U_vals[] = {
3283 { 0, "alwaysOverride" },
3284 { 1, "onlyInterLATAOverride" },
3285 { 0, NULL }
3289 static int
3290 dissect_ain_CarrierUsage_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3291 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3292 NULL);
3294 return offset;
3299 static int
3300 dissect_ain_CarrierUsage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3301 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3302 hf_index, BER_CLASS_CON, 79, true, dissect_ain_CarrierUsage_U);
3304 return offset;
3309 static int
3310 dissect_ain_ForwardCallIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3311 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3312 hf_index, BER_CLASS_CON, 113, true, dissect_ain_OCTET_STRING_SIZE_2);
3314 return offset;
3319 static int
3320 dissect_ain_OCTET_STRING_SIZE_7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3321 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3322 NULL);
3324 return offset;
3329 static int
3330 dissect_ain_AMAServiceProviderID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3331 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3332 hf_index, BER_CLASS_CON, 101, true, dissect_ain_OCTET_STRING_SIZE_7);
3334 return offset;
3339 static int
3340 dissect_ain_OCTET_STRING_SIZE_2_11(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3341 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3342 NULL);
3344 return offset;
3349 static int
3350 dissect_ain_GenericDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3351 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3352 hf_index, BER_CLASS_CON, 149, true, dissect_ain_OCTET_STRING_SIZE_2_11);
3354 return offset;
3358 static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_GenericDigits_sequence_of[1] = {
3359 { &hf_ain__untag_item_02 , BER_CLASS_CON, 149, BER_FLAGS_NOOWNTAG, dissect_ain_GenericDigits },
3362 static int
3363 dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3364 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3365 SEQUENCE_SIZE_1_5_OF_GenericDigits_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits);
3367 return offset;
3372 static int
3373 dissect_ain_GenericDigitsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3374 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3375 hf_index, BER_CLASS_CON, 150, true, dissect_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits);
3377 return offset;
3381 static int * const ApplyRestrictions_U_bits[] = {
3382 &hf_ain_ApplyRestrictions_U_code,
3383 &hf_ain_ApplyRestrictions_U_toll,
3384 NULL
3387 static int
3388 dissect_ain_ApplyRestrictions_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3389 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3390 ApplyRestrictions_U_bits, 2, hf_index, ett_ain_ApplyRestrictions_U,
3391 NULL);
3393 return offset;
3398 static int
3399 dissect_ain_ApplyRestrictions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3400 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3401 hf_index, BER_CLASS_CON, 152, true, dissect_ain_ApplyRestrictions_U);
3403 return offset;
3407 static const value_string ain_DisplayInformation_vals[] = {
3408 { 0, "blank" },
3409 { 1, "skip" },
3410 { 2, "continuation" },
3411 { 3, "calledAddress" },
3412 { 4, "cause" },
3413 { 5, "progressIndicator" },
3414 { 6, "notificationIndicator" },
3415 { 7, "prompt" },
3416 { 8, "accumulatedDigits" },
3417 { 9, "status" },
3418 { 10, "inband" },
3419 { 11, "callingAddress" },
3420 { 12, "reason" },
3421 { 13, "callingPartyName" },
3422 { 14, "calledPartyName" },
3423 { 15, "originalCalledName" },
3424 { 16, "redirectingName" },
3425 { 17, "connectedName" },
3426 { 18, "origRestrictions" },
3427 { 19, "dateTimeOfDay" },
3428 { 20, "callAppearanceID" },
3429 { 21, "featureAddress" },
3430 { 22, "redirectionName" },
3431 { 23, "redirectionNumber" },
3432 { 24, "redirectingNumber" },
3433 { 25, "originalCalledNumber" },
3434 { 26, "connectedNumber" },
3435 { 30, "text" },
3436 { 31, "redirectingReason" },
3437 { 0, NULL }
3440 static const ber_choice_t DisplayInformation_choice[] = {
3441 { 0, &hf_ain_blank , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3442 { 1, &hf_ain_skip , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3443 { 2, &hf_ain_continuation , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3444 { 3, &hf_ain_calledAddress , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3445 { 4, &hf_ain_cause , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3446 { 5, &hf_ain_progressIndicator, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3447 { 6, &hf_ain_displayInformation_notificationIndicator, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3448 { 7, &hf_ain_prompt , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3449 { 8, &hf_ain_accumulatedDigits, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3450 { 9, &hf_ain_status , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3451 { 10, &hf_ain_inband , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3452 { 11, &hf_ain_callingAddress , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3453 { 12, &hf_ain_reason , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3454 { 13, &hf_ain_callingPartyName, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3455 { 14, &hf_ain_calledPartyName , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3456 { 15, &hf_ain_originalCalledName, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3457 { 16, &hf_ain_redirectingName , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3458 { 17, &hf_ain_connectedName , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3459 { 18, &hf_ain_origRestrictions, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3460 { 19, &hf_ain_dateTimeOfDay , BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3461 { 20, &hf_ain_callAppearanceID, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3462 { 21, &hf_ain_featureAddress , BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3463 { 22, &hf_ain_redirectionName , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3464 { 23, &hf_ain_redirectionNumber, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3465 { 24, &hf_ain_redirectingNumber, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3466 { 25, &hf_ain_originalCalledNumber, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3467 { 26, &hf_ain_connectedNumber , BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3468 { 30, &hf_ain_text , BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3469 { 31, &hf_ain_redirectingReason, BER_CLASS_CON, 31, BER_FLAGS_IMPLTAG, dissect_ain_OCTET_STRING_SIZE_1_20 },
3470 { 0, NULL, 0, 0, 0, NULL }
3473 static int
3474 dissect_ain_DisplayInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3475 offset = dissect_ber_choice(actx, tree, tvb, offset,
3476 DisplayInformation_choice, hf_index, ett_ain_DisplayInformation,
3477 NULL);
3479 return offset;
3483 static const ber_sequence_t SEQUENCE_SIZE_1_15_OF_DisplayInformation_sequence_of[1] = {
3484 { &hf_ain__untag_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_DisplayInformation },
3487 static int
3488 dissect_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3489 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3490 SEQUENCE_SIZE_1_15_OF_DisplayInformation_sequence_of, hf_index, ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation);
3492 return offset;
3497 static int
3498 dissect_ain_DisplayText(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3499 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3500 hf_index, BER_CLASS_CON, 26, true, dissect_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation);
3502 return offset;
3506 static const ber_sequence_t AnalyzeRouteArg_sequence[] = {
3507 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
3508 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
3509 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
3510 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
3511 { &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
3512 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
3513 { &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
3514 { &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
3515 { &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
3516 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
3517 { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
3518 { &hf_ain_secondAlternateCarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
3519 { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
3520 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
3521 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
3522 { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
3523 { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
3524 { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
3525 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
3526 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
3527 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
3528 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
3529 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
3530 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
3531 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
3532 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
3533 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
3534 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
3535 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
3536 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
3537 { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
3538 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
3539 { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
3540 { &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
3541 { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
3542 { &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
3543 { &hf_ain_aMAServiceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
3544 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
3545 { &hf_ain_genericDigitsList, BER_CLASS_CON, 150, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericDigitsList },
3546 { &hf_ain_applyRestrictions, BER_CLASS_CON, 152, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ApplyRestrictions },
3547 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
3548 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
3549 { NULL, 0, 0, 0, NULL }
3552 static int
3553 dissect_ain_AnalyzeRouteArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3554 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3555 AnalyzeRouteArg_sequence, hf_index, ett_ain_AnalyzeRouteArg);
3557 return offset;
3561 static const value_string ain_ControllingLegTreatment_U_vals[] = {
3562 { 0, "dialToneOn" },
3563 { 1, "ringBackAudibleRingingToneOn" },
3564 { 3, "networkCongestionReorderToneOn" },
3565 { 4, "busyToneOn" },
3566 { 5, "confirmationTone" },
3567 { 7, "callWaitingTone" },
3568 { 63, "tonesOff" },
3569 { 64, "alertingOnPattern0Normal" },
3570 { 65, "alertingOnPattern1DistinctiveIntergroup" },
3571 { 66, "alertingOnPattern2DistinctiveSpecial" },
3572 { 67, "alertingOnPattern3EKTS" },
3573 { 68, "alertingOnPattern4ReminderRing" },
3574 { 79, "alertingOff" },
3575 { 17, "recallDialToneOn" },
3576 { 18, "bargeInToneOn" },
3577 { 251, "incomingAdditionalCallTone" },
3578 { 252, "priorityAdditionalCallTone" },
3579 { 253, "expensiveRouteWarningTone" },
3580 { 19, "campOnTone" },
3581 { 20, "receiverOffHookTone" },
3582 { 21, "callingCardServiceTone" },
3583 { 22, "stutterDialTone" },
3584 { 23, "silence" },
3585 { 24, "onHookTR30WithIndication" },
3586 { 25, "onHookTR30NoIndication" },
3587 { 0, NULL }
3591 static int
3592 dissect_ain_ControllingLegTreatment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3593 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3594 NULL);
3596 return offset;
3601 static int
3602 dissect_ain_ControllingLegTreatment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3603 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3604 hf_index, BER_CLASS_CON, 24, true, dissect_ain_ControllingLegTreatment_U);
3606 return offset;
3610 static const ber_sequence_t AuthorizeTerminationArg_sequence[] = {
3611 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
3612 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
3613 { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
3614 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
3615 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
3616 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
3617 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
3618 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
3619 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
3620 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
3621 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
3622 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
3623 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
3624 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
3625 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
3626 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
3627 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
3628 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
3629 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
3630 { NULL, 0, 0, 0, NULL }
3633 static int
3634 dissect_ain_AuthorizeTerminationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3635 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3636 AuthorizeTerminationArg_sequence, hf_index, ett_ain_AuthorizeTerminationArg);
3638 return offset;
3642 static const ber_sequence_t CancelResourceEventArg_sequence[] = {
3643 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
3644 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
3645 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
3646 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
3647 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
3648 { NULL, 0, 0, 0, NULL }
3651 static int
3652 dissect_ain_CancelResourceEventArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3653 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3654 CancelResourceEventArg_sequence, hf_index, ett_ain_CancelResourceEventArg);
3656 return offset;
3661 static int
3662 dissect_ain_DPConverter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3663 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3664 hf_index, BER_CLASS_CON, 76, true, dissect_ain_BOOLEAN);
3666 return offset;
3671 static int
3672 dissect_ain_AlternateDialingPlanInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3673 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3674 hf_index, BER_CLASS_CON, 115, true, dissect_ain_AINDigits);
3676 return offset;
3680 static const ber_sequence_t CollectInformationArg_sequence[] = {
3681 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
3682 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
3683 { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
3684 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
3685 { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
3686 { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
3687 { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
3688 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
3689 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
3690 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
3691 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
3692 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
3693 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
3694 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
3695 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
3696 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
3697 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
3698 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
3699 { &hf_ain_alternateDialingPlanInd, BER_CLASS_CON, 115, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateDialingPlanInd },
3700 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
3701 { NULL, 0, 0, 0, NULL }
3704 static int
3705 dissect_ain_CollectInformationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3706 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3707 CollectInformationArg_sequence, hf_index, ett_ain_CollectInformationArg);
3709 return offset;
3714 static int
3715 dissect_ain_INTEGER_0_127(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3716 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3717 NULL);
3719 return offset;
3724 static int
3725 dissect_ain_ResourceType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3726 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3727 hf_index, BER_CLASS_CON, 45, true, dissect_ain_INTEGER_0_127);
3729 return offset;
3734 static int
3735 dissect_ain_AnnounceElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3736 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3737 NULL);
3739 return offset;
3743 static const ber_sequence_t UninterAnnounceBlock_sequence_of[1] = {
3744 { &hf_ain_UninterAnnounceBlock_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AnnounceElement },
3747 static int
3748 dissect_ain_UninterAnnounceBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3749 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3750 UninterAnnounceBlock_sequence_of, hf_index, ett_ain_UninterAnnounceBlock);
3752 return offset;
3756 static const ber_sequence_t InterAnnounceBlock_sequence_of[1] = {
3757 { &hf_ain_InterAnnounceBlock_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AnnounceElement },
3760 static int
3761 dissect_ain_InterAnnounceBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3762 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3763 InterAnnounceBlock_sequence_of, hf_index, ett_ain_InterAnnounceBlock);
3765 return offset;
3769 static const ber_sequence_t AnnouncementBlock_sequence[] = {
3770 { &hf_ain_uninterAnnounceBlock, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_UninterAnnounceBlock },
3771 { &hf_ain_interAnnounceBlock, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_InterAnnounceBlock },
3772 { NULL, 0, 0, 0, NULL }
3775 static int
3776 dissect_ain_AnnouncementBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3777 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3778 AnnouncementBlock_sequence, hf_index, ett_ain_AnnouncementBlock);
3780 return offset;
3785 static int
3786 dissect_ain_MaximumDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3787 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3788 NULL);
3790 return offset;
3794 static const ber_sequence_t AnnouncementDigitBlock_sequence[] = {
3795 { &hf_ain_maximumDigits , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_MaximumDigits },
3796 { &hf_ain_uninterAnnounceBlock, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_UninterAnnounceBlock },
3797 { &hf_ain_interAnnounceBlock, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_InterAnnounceBlock },
3798 { NULL, 0, 0, 0, NULL }
3801 static int
3802 dissect_ain_AnnouncementDigitBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3803 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3804 AnnouncementDigitBlock_sequence, hf_index, ett_ain_AnnouncementDigitBlock);
3806 return offset;
3811 static int
3812 dissect_ain_FlexParameterBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3813 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3814 NULL);
3816 return offset;
3820 static const value_string ain_StrParameterBlock_U_vals[] = {
3821 { 0, "announcementBlock" },
3822 { 1, "announcementDigitBlock" },
3823 { 2, "flexParameterBlock" },
3824 { 0, NULL }
3827 static const ber_choice_t StrParameterBlock_U_choice[] = {
3828 { 0, &hf_ain_announcementBlock, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_AnnouncementBlock },
3829 { 1, &hf_ain_announcementDigitBlock, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_AnnouncementDigitBlock },
3830 { 2, &hf_ain_flexParameterBlock, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_FlexParameterBlock },
3831 { 0, NULL, 0, 0, 0, NULL }
3834 static int
3835 dissect_ain_StrParameterBlock_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3836 offset = dissect_ber_choice(actx, tree, tvb, offset,
3837 StrParameterBlock_U_choice, hf_index, ett_ain_StrParameterBlock_U,
3838 NULL);
3840 return offset;
3845 static int
3846 dissect_ain_StrParameterBlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3847 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3848 hf_index, BER_CLASS_CON, 50, true, dissect_ain_StrParameterBlock_U);
3850 return offset;
3855 static int
3856 dissect_ain_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3857 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3859 return offset;
3864 static int
3865 dissect_ain_DisconnectFlag(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3866 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3867 hf_index, BER_CLASS_CON, 25, true, dissect_ain_NULL);
3869 return offset;
3874 static int
3875 dissect_ain_DestinationAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3876 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3877 hf_index, BER_CLASS_CON, 86, true, dissect_ain_AINDigits);
3879 return offset;
3883 static const value_string ain_AMAMeasure_U_vals[] = {
3884 { 0, "connectTimeRecordedDestinationSSP" },
3885 { 1, "connectTimeRecordedDestinationSCP" },
3886 { 2, "connectTimeNotRecorded" },
3887 { 0, NULL }
3891 static int
3892 dissect_ain_AMAMeasure_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3893 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3894 NULL);
3896 return offset;
3901 static int
3902 dissect_ain_AMAMeasure(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3903 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3904 hf_index, BER_CLASS_CON, 71, true, dissect_ain_AMAMeasure_U);
3906 return offset;
3910 static const ber_sequence_t ConnectToResourceArg_sequence[] = {
3911 { &hf_ain_resourceType , BER_CLASS_CON, 45, BER_FLAGS_NOOWNTAG, dissect_ain_ResourceType },
3912 { &hf_ain_strParameterBlock, BER_CLASS_CON, 50, BER_FLAGS_NOOWNTAG, dissect_ain_StrParameterBlock },
3913 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
3914 { &hf_ain_disconnectFlag , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectFlag },
3915 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
3916 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
3917 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
3918 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
3919 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
3920 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
3921 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
3922 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
3923 { &hf_ain_destinationAddress, BER_CLASS_CON, 86, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DestinationAddress },
3924 { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
3925 { &hf_ain_aMAMeasure , BER_CLASS_CON, 71, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasure },
3926 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
3927 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
3928 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
3929 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
3930 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
3931 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
3932 { NULL, 0, 0, 0, NULL }
3935 static int
3936 dissect_ain_ConnectToResourceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3937 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3938 ConnectToResourceArg_sequence, hf_index, ett_ain_ConnectToResourceArg);
3940 return offset;
3944 static const ber_sequence_t ContinueArg_sequence[] = {
3945 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
3946 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
3947 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
3948 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
3949 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
3950 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
3951 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
3952 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
3953 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
3954 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
3955 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
3956 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
3957 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
3958 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
3959 { NULL, 0, 0, 0, NULL }
3962 static int
3963 dissect_ain_ContinueArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3964 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3965 ContinueArg_sequence, hf_index, ett_ain_ContinueArg);
3967 return offset;
3972 static int
3973 dissect_ain_INTEGER_1_99(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3974 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3975 NULL);
3977 return offset;
3982 static int
3983 dissect_ain_NotificationDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3984 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3985 hf_index, BER_CLASS_CON, 128, true, dissect_ain_INTEGER_1_99);
3987 return offset;
3992 static int
3993 dissect_ain_INTEGER_1_999(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3994 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3995 NULL);
3997 return offset;
4002 static int
4003 dissect_ain_WakeUpDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4004 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4005 hf_index, BER_CLASS_CON, 131, true, dissect_ain_INTEGER_1_999);
4007 return offset;
4012 static int
4013 dissect_ain_OSIIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4014 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4015 hf_index, BER_CLASS_CON, 129, true, dissect_ain_BOOLEAN);
4017 return offset;
4021 static const ber_sequence_t CreateCallArg_sequence[] = {
4022 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
4023 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
4024 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
4025 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
4026 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
4027 { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
4028 { &hf_ain_secondAlternateCarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
4029 { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
4030 { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
4031 { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
4032 { &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
4033 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4034 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4035 { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
4036 { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
4037 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
4038 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
4039 { &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
4040 { &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
4041 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4042 { &hf_ain_notificationDuration, BER_CLASS_CON, 128, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NotificationDuration },
4043 { &hf_ain_wakeUpDuration , BER_CLASS_CON, 131, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_WakeUpDuration },
4044 { &hf_ain_oSIIndicator , BER_CLASS_CON, 129, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OSIIndicator },
4045 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
4046 { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
4047 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4048 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4049 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4050 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4051 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4052 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4053 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4054 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4055 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
4056 { NULL, 0, 0, 0, NULL }
4059 static int
4060 dissect_ain_CreateCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4061 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4062 CreateCallArg_sequence, hf_index, ett_ain_CreateCallArg);
4064 return offset;
4068 static const ber_sequence_t CreateCallRes_sequence[] = {
4069 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
4070 { NULL, 0, 0, 0, NULL }
4073 static int
4074 dissect_ain_CreateCallRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4075 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4076 CreateCallRes_sequence, hf_index, ett_ain_CreateCallRes);
4078 return offset;
4083 static int
4084 dissect_ain_RTPReroutingNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4085 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4086 hf_index, BER_CLASS_CON, 143, true, dissect_ain_AINDigits);
4088 return offset;
4092 static const ber_sequence_t DisconnectArg_sequence[] = {
4093 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
4094 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4095 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4096 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4097 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4098 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
4099 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4100 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4101 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4102 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4103 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
4104 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
4105 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4106 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4107 { &hf_ain_rTPReroutingNumber, BER_CLASS_CON, 143, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RTPReroutingNumber },
4108 { NULL, 0, 0, 0, NULL }
4111 static int
4112 dissect_ain_DisconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4113 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4114 DisconnectArg_sequence, hf_index, ett_ain_DisconnectArg);
4116 return offset;
4121 static int
4122 dissect_ain_INTEGER_1_2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4123 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4124 NULL);
4126 return offset;
4131 static int
4132 dissect_ain_CsID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4133 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4134 hf_index, BER_CLASS_CON, 137, true, dissect_ain_INTEGER_1_2);
4136 return offset;
4141 static int
4142 dissect_ain_LampTreatment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4143 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4144 hf_index, BER_CLASS_CON, 138, true, dissect_ain_OCTET_STRING_SIZE_2_3);
4146 return offset;
4150 static const ber_sequence_t DisconnectLegArg_sequence[] = {
4151 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
4152 { &hf_ain_csID , BER_CLASS_CON, 137, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CsID },
4153 { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
4154 { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
4155 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4156 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4157 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4158 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4159 { NULL, 0, 0, 0, NULL }
4162 static int
4163 dissect_ain_DisconnectLegArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4164 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4165 DisconnectLegArg_sequence, hf_index, ett_ain_DisconnectLegArg);
4167 return offset;
4171 static const ber_sequence_t ForwardCallArg_sequence[] = {
4172 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
4173 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
4174 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
4175 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
4176 { &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
4177 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
4178 { &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
4179 { &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
4180 { &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
4181 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
4182 { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
4183 { &hf_ain_secondAlternatecarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
4184 { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
4185 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
4186 { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
4187 { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
4188 { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
4189 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4190 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4191 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4192 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4193 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
4194 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4195 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4196 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4197 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4198 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
4199 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
4200 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
4201 { &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
4202 { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
4203 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4204 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4205 { &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
4206 { &hf_ain_applyRestrictions, BER_CLASS_CON, 152, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ApplyRestrictions },
4207 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4208 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
4209 { NULL, 0, 0, 0, NULL }
4212 static int
4213 dissect_ain_ForwardCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4214 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4215 ForwardCallArg_sequence, hf_index, ett_ain_ForwardCallArg);
4217 return offset;
4221 static const ber_sequence_t MergeCallArg_sequence[] = {
4222 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4223 { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
4224 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4225 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4226 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4227 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4228 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4229 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4230 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
4231 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4232 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4233 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
4234 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
4235 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4236 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4237 { NULL, 0, 0, 0, NULL }
4240 static int
4241 dissect_ain_MergeCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4242 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4243 MergeCallArg_sequence, hf_index, ett_ain_MergeCallArg);
4245 return offset;
4249 static const ber_sequence_t MoveLegArg_sequence[] = {
4250 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4251 { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
4252 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4253 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4254 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4255 { NULL, 0, 0, 0, NULL }
4258 static int
4259 dissect_ain_MoveLegArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4260 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4261 MoveLegArg_sequence, hf_index, ett_ain_MoveLegArg);
4263 return offset;
4267 static const ber_sequence_t OfferCallArg_sequence[] = {
4268 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
4269 { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
4270 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4271 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
4272 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4273 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4274 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4275 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4276 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
4277 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4278 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4279 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4280 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4281 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
4282 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
4283 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4284 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4285 { &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
4286 { NULL, 0, 0, 0, NULL }
4289 static int
4290 dissect_ain_OfferCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4291 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4292 OfferCallArg_sequence, hf_index, ett_ain_OfferCallArg);
4294 return offset;
4298 static const ber_sequence_t OriginateCallArg_sequence[] = {
4299 { &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
4300 { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
4301 { &hf_ain_alternateDialingPlanInd, BER_CLASS_CON, 115, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateDialingPlanInd },
4302 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
4303 { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
4304 { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
4305 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4306 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
4307 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
4308 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
4309 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
4310 { &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
4311 { &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
4312 { &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
4313 { &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
4314 { &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
4315 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
4316 { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
4317 { &hf_ain_secondAlternatecarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
4318 { &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
4319 { &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
4320 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
4321 { &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
4322 { &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
4323 { &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
4324 { &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
4325 { &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
4326 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4327 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4328 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4329 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4330 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
4331 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4332 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4333 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4334 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4335 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
4336 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
4337 { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
4338 { &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
4339 { &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
4340 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4341 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4342 { NULL, 0, 0, 0, NULL }
4345 static int
4346 dissect_ain_OriginateCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4347 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4348 OriginateCallArg_sequence, hf_index, ett_ain_OriginateCallArg);
4350 return offset;
4354 static const ber_sequence_t ReconnectArg_sequence[] = {
4355 { &hf_ain_notificationDuration, BER_CLASS_CON, 128, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_NotificationDuration },
4356 { &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
4357 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4358 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4359 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4360 { NULL, 0, 0, 0, NULL }
4363 static int
4364 dissect_ain_ReconnectArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4365 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4366 ReconnectArg_sequence, hf_index, ett_ain_ReconnectArg);
4368 return offset;
4372 static const ber_sequence_t RES_sendToResource_sequence[] = {
4373 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4374 { NULL, 0, 0, 0, NULL }
4377 static int
4378 dissect_ain_RES_sendToResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4379 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4380 RES_sendToResource_sequence, hf_index, ett_ain_RES_sendToResource);
4382 return offset;
4387 static int
4388 dissect_ain_AnswerIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4389 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4390 hf_index, BER_CLASS_CON, 12, true, dissect_ain_NULL);
4392 return offset;
4397 static int
4398 dissect_ain_ExtendedRinging(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4399 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4400 hf_index, BER_CLASS_CON, 146, true, dissect_ain_NULL);
4402 return offset;
4407 static int
4408 dissect_ain_INTEGER_0_300(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4409 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4410 NULL);
4412 return offset;
4417 static int
4418 dissect_ain_TSTRCTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4419 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4420 hf_index, BER_CLASS_CON, 156, true, dissect_ain_INTEGER_0_300);
4422 return offset;
4426 static const value_string ain_PartyID_U_vals[] = {
4427 { 0, "callingParty" },
4428 { 1, "calledParty" },
4429 { 2, "bothParties" },
4430 { 0, NULL }
4434 static int
4435 dissect_ain_PartyID_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4436 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4437 NULL);
4439 return offset;
4444 static int
4445 dissect_ain_PartyID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4446 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4447 hf_index, BER_CLASS_CON, 159, true, dissect_ain_PartyID_U);
4449 return offset;
4454 static int
4455 dissect_ain_PartyOnHold(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4456 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4457 hf_index, BER_CLASS_CON, 146, true, dissect_ain_NULL);
4459 return offset;
4463 static const ber_sequence_t SendToResourceArg_sequence[] = {
4464 { &hf_ain_resourceType , BER_CLASS_CON, 45, BER_FLAGS_NOOWNTAG, dissect_ain_ResourceType },
4465 { &hf_ain_strParameterBlock, BER_CLASS_CON, 50, BER_FLAGS_NOOWNTAG, dissect_ain_StrParameterBlock },
4466 { &hf_ain_disconnectFlag , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectFlag },
4467 { &hf_ain_answerIndicator , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AnswerIndicator },
4468 { &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
4469 { &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
4470 { &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
4471 { &hf_ain_aMALineNumberList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber },
4472 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
4473 { &hf_ain_aMADigitsDialedWCList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC },
4474 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4475 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4476 { &hf_ain_destinationAddress, BER_CLASS_CON, 86, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DestinationAddress },
4477 { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
4478 { &hf_ain_aMAMeasure , BER_CLASS_CON, 71, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasure },
4479 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
4480 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
4481 { &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
4482 { &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
4483 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4484 { &hf_ain_aMAserviceProviderID, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
4485 { &hf_ain_extendedRinging , BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ExtendedRinging },
4486 { &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
4487 { &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
4488 { &hf_ain_secondAlternatecarrier, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
4489 { &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
4490 { &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
4491 { &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
4492 { &hf_ain_tSTRCTimer , BER_CLASS_CON, 156, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TSTRCTimer },
4493 { &hf_ain_partyID , BER_CLASS_CON, 159, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PartyID },
4494 { &hf_ain_partyOnHold , BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_PartyOnHold },
4495 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
4496 { NULL, 0, 0, 0, NULL }
4499 static int
4500 dissect_ain_SendToResourceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4501 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4502 SendToResourceArg_sequence, hf_index, ett_ain_SendToResourceArg);
4504 return offset;
4509 static int
4510 dissect_ain_INTEGER_1_300(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4511 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4512 NULL);
4514 return offset;
4519 static int
4520 dissect_ain_SSPResponseMessageTimerT1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4521 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4522 hf_index, BER_CLASS_CON, 166, true, dissect_ain_INTEGER_1_300);
4524 return offset;
4528 static const ber_sequence_t SetTimerArg_sequence[] = {
4529 { &hf_ain_sSPResponseMessageTimerT1, BER_CLASS_CON, 166, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SSPResponseMessageTimerT1 },
4530 { NULL, 0, 0, 0, NULL }
4533 static int
4534 dissect_ain_SetTimerArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4535 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4536 SetTimerArg_sequence, hf_index, ett_ain_SetTimerArg);
4538 return offset;
4542 static const ber_sequence_t SplitLegArg_sequence[] = {
4543 { &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
4544 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
4545 { &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
4546 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
4547 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
4548 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4549 { NULL, 0, 0, 0, NULL }
4552 static int
4553 dissect_ain_SplitLegArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4554 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4555 SplitLegArg_sequence, hf_index, ett_ain_SplitLegArg);
4557 return offset;
4562 static int
4563 dissect_ain_ControlCauseIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4564 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4565 hf_index, BER_CLASS_CON, 59, true, dissect_ain_OCTET_STRING_SIZE_1);
4567 return offset;
4571 static const value_string ain_GapDuration_U_vals[] = {
4572 { 1, "no1Second" },
4573 { 2, "no2Seconds" },
4574 { 3, "no4Seconds" },
4575 { 4, "no8Seconds" },
4576 { 5, "no16Seconds" },
4577 { 6, "no32Seconds" },
4578 { 7, "no64Seconds" },
4579 { 8, "no128Seconds" },
4580 { 9, "no256Seconds" },
4581 { 10, "no512Seconds" },
4582 { 11, "no1024Seconds" },
4583 { 12, "no2048Seconds" },
4584 { 13, "infinity" },
4585 { 0, NULL }
4589 static int
4590 dissect_ain_GapDuration_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4591 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4592 NULL);
4594 return offset;
4599 static int
4600 dissect_ain_GapDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4601 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4602 hf_index, BER_CLASS_CON, 62, true, dissect_ain_GapDuration_U);
4604 return offset;
4608 static const value_string ain_NationalGapInterval_U_vals[] = {
4609 { 0, "removeGapControl" },
4610 { 1, "no0Seconds" },
4611 { 2, "no010Seconds" },
4612 { 3, "no025Seconds" },
4613 { 4, "no050Seconds" },
4614 { 5, "no1Second" },
4615 { 6, "no2Seconds" },
4616 { 7, "no5Seconds" },
4617 { 8, "no10Seconds" },
4618 { 9, "no15Seconds" },
4619 { 10, "no30Seconds" },
4620 { 11, "no60Seconds" },
4621 { 12, "no120Seconds" },
4622 { 13, "no300Seconds" },
4623 { 14, "no600Seconds" },
4624 { 15, "stopAllCalls" },
4625 { 0, NULL }
4629 static int
4630 dissect_ain_NationalGapInterval_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4631 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4632 NULL);
4634 return offset;
4639 static int
4640 dissect_ain_NationalGapInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4641 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4642 hf_index, BER_CLASS_CON, 63, true, dissect_ain_NationalGapInterval_U);
4644 return offset;
4648 static const value_string ain_PrivateGapInterval_U_vals[] = {
4649 { 0, "no0Seconds" },
4650 { 1, "no3Seconds" },
4651 { 2, "no4Seconds" },
4652 { 3, "no6Seconds" },
4653 { 4, "no8Seconds" },
4654 { 5, "no11Seconds" },
4655 { 6, "no16Seconds" },
4656 { 7, "no22Seconds" },
4657 { 8, "no30Seconds" },
4658 { 9, "no42Seconds" },
4659 { 10, "no58Seconds" },
4660 { 11, "no81Seconds" },
4661 { 12, "no112Seconds" },
4662 { 13, "no156Seconds" },
4663 { 14, "no217Seconds" },
4664 { 15, "no300Seconds" },
4665 { 16, "removeGapControl" },
4666 { 17, "no010Seconds" },
4667 { 18, "no025Seconds" },
4668 { 19, "no050Seconds" },
4669 { 20, "no1Second" },
4670 { 21, "no2Seconds" },
4671 { 0, NULL }
4675 static int
4676 dissect_ain_PrivateGapInterval_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4677 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4678 NULL);
4680 return offset;
4685 static int
4686 dissect_ain_PrivateGapInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4687 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4688 hf_index, BER_CLASS_CON, 64, true, dissect_ain_PrivateGapInterval_U);
4690 return offset;
4694 static const value_string ain_GapInterval_vals[] = {
4695 { 63, "nationalGapInterval" },
4696 { 64, "privateGapInterval" },
4697 { 0, NULL }
4700 static const ber_choice_t GapInterval_choice[] = {
4701 { 63, &hf_ain_nationalGapInterval, BER_CLASS_CON, 63, BER_FLAGS_NOOWNTAG, dissect_ain_NationalGapInterval },
4702 { 64, &hf_ain_privateGapInterval, BER_CLASS_CON, 64, BER_FLAGS_NOOWNTAG, dissect_ain_PrivateGapInterval },
4703 { 0, NULL, 0, 0, 0, NULL }
4706 static int
4707 dissect_ain_GapInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4708 offset = dissect_ber_choice(actx, tree, tvb, offset,
4709 GapInterval_choice, hf_index, ett_ain_GapInterval,
4710 NULL);
4712 return offset;
4717 static int
4718 dissect_ain_TranslationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4719 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4720 hf_index, BER_CLASS_CON, 70, true, dissect_ain_INTEGER_0_255);
4722 return offset;
4727 static int
4728 dissect_ain_GlobalTitleAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4729 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4730 hf_index, BER_CLASS_CON, 69, true, dissect_ain_OCTET_STRING);
4732 return offset;
4736 static const ber_sequence_t AcgArg_sequence[] = {
4737 { &hf_ain_controlCauseIndicator, BER_CLASS_CON, 59, BER_FLAGS_NOOWNTAG, dissect_ain_ControlCauseIndicator },
4738 { &hf_ain_gapDuration , BER_CLASS_CON, 62, BER_FLAGS_NOOWNTAG, dissect_ain_GapDuration },
4739 { &hf_ain_gapInterval , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_GapInterval },
4740 { &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
4741 { &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
4742 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4743 { NULL, 0, 0, 0, NULL }
4746 static int
4747 dissect_ain_AcgArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4748 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4749 AcgArg_sequence, hf_index, ett_ain_AcgArg);
4751 return offset;
4755 static const ber_sequence_t RES_acgGlobalCtrlRestore_sequence[] = {
4756 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4757 { NULL, 0, 0, 0, NULL }
4760 static int
4761 dissect_ain_RES_acgGlobalCtrlRestore(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4762 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4763 RES_acgGlobalCtrlRestore_sequence, hf_index, ett_ain_RES_acgGlobalCtrlRestore);
4765 return offset;
4769 static const value_string ain_ACGGlobalOverride_U_vals[] = {
4770 { 0, "allItems" },
4771 { 1, "scpOverloadItems" },
4772 { 2, "smsInitCntrlExceptZeroGap" },
4773 { 3, "smsInitCntrl" },
4774 { 4, "ntmOSInitCntrlExceptZeroGap" },
4775 { 5, "ntmOSInitCntrl" },
4776 { 6, "craftInitCntrlExceptZeroGap" },
4777 { 7, "craftInitCntrl" },
4778 { 0, NULL }
4782 static int
4783 dissect_ain_ACGGlobalOverride_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4784 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4785 NULL);
4787 return offset;
4792 static int
4793 dissect_ain_ACGGlobalOverride(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4794 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4795 hf_index, BER_CLASS_CON, 110, true, dissect_ain_ACGGlobalOverride_U);
4797 return offset;
4801 static const ber_sequence_t AcgGlobalCtrlRestoreArg_sequence[] = {
4802 { &hf_ain_aCGGlobalOverride, BER_CLASS_CON, 110, BER_FLAGS_NOOWNTAG, dissect_ain_ACGGlobalOverride },
4803 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4804 { NULL, 0, 0, 0, NULL }
4807 static int
4808 dissect_ain_AcgGlobalCtrlRestoreArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4809 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4810 AcgGlobalCtrlRestoreArg_sequence, hf_index, ett_ain_AcgGlobalCtrlRestoreArg);
4812 return offset;
4816 static const ber_sequence_t AcgOverflowArg_sequence[] = {
4817 { &hf_ain_controlCauseIndicator, BER_CLASS_CON, 59, BER_FLAGS_NOOWNTAG, dissect_ain_ControlCauseIndicator },
4818 { &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
4819 { &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
4820 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4821 { NULL, 0, 0, 0, NULL }
4824 static int
4825 dissect_ain_AcgOverflowArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4826 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4827 AcgOverflowArg_sequence, hf_index, ett_ain_AcgOverflowArg);
4829 return offset;
4833 static const value_string ain_ActResult_U_vals[] = {
4834 { 0, "transactionClosed" },
4835 { 1, "transactionOpen" },
4836 { 2, "deniedProcessOverload" },
4837 { 0, NULL }
4841 static int
4842 dissect_ain_ActResult_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4843 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4844 NULL);
4846 return offset;
4851 static int
4852 dissect_ain_ActResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4853 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4854 hf_index, BER_CLASS_CON, 164, true, dissect_ain_ActResult_U);
4856 return offset;
4860 static const ber_sequence_t RES_activityTest_sequence[] = {
4861 { &hf_ain_actResult , BER_CLASS_CON, 164, BER_FLAGS_NOOWNTAG, dissect_ain_ActResult },
4862 { NULL, 0, 0, 0, NULL }
4865 static int
4866 dissect_ain_RES_activityTest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4867 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4868 RES_activityTest_sequence, hf_index, ett_ain_RES_activityTest);
4870 return offset;
4875 static int
4876 dissect_ain_OCTET_STRING_SIZE_4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4877 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4878 NULL);
4880 return offset;
4885 static int
4886 dissect_ain_TransID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4887 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4888 hf_index, BER_CLASS_CON, 163, true, dissect_ain_OCTET_STRING_SIZE_4);
4890 return offset;
4894 static const ber_sequence_t ActivityTestArg_sequence[] = {
4895 { &hf_ain_transID , BER_CLASS_CON, 163, BER_FLAGS_NOOWNTAG, dissect_ain_TransID },
4896 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4897 { NULL, 0, 0, 0, NULL }
4900 static int
4901 dissect_ain_ActivityTestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4902 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4903 ActivityTestArg_sequence, hf_index, ett_ain_ActivityTestArg);
4905 return offset;
4909 static const value_string ain_CallType_U_vals[] = {
4910 { 0, "noIndication" },
4911 { 1, "local" },
4912 { 2, "intraLATAToll" },
4913 { 3, "interLATAToll" },
4914 { 0, NULL }
4918 static int
4919 dissect_ain_CallType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4920 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4921 NULL);
4923 return offset;
4928 static int
4929 dissect_ain_CallType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4930 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4931 hf_index, BER_CLASS_CON, 165, true, dissect_ain_CallType_U);
4933 return offset;
4937 static const ber_sequence_t RES_callTypeRequest_sequence[] = {
4938 { &hf_ain_callType , BER_CLASS_CON, 165, BER_FLAGS_NOOWNTAG, dissect_ain_CallType },
4939 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4940 { NULL, 0, 0, 0, NULL }
4943 static int
4944 dissect_ain_RES_callTypeRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4945 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4946 RES_callTypeRequest_sequence, hf_index, ett_ain_RES_callTypeRequest);
4948 return offset;
4952 static const ber_sequence_t CallTypeRequestArg_sequence[] = {
4953 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
4954 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
4955 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
4956 { NULL, 0, 0, 0, NULL }
4959 static int
4960 dissect_ain_CallTypeRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4961 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4962 CallTypeRequestArg_sequence, hf_index, ett_ain_CallTypeRequestArg);
4964 return offset;
4968 static const value_string ain_CongestionLevel_U_vals[] = {
4969 { 0, "noCongestion" },
4970 { 1, "mc1" },
4971 { 2, "mc2" },
4972 { 3, "mc3" },
4973 { 0, NULL }
4977 static int
4978 dissect_ain_CongestionLevel_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4979 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4980 NULL);
4982 return offset;
4987 static int
4988 dissect_ain_CongestionLevel(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4989 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4990 hf_index, BER_CLASS_CON, 117, true, dissect_ain_CongestionLevel_U);
4992 return offset;
4997 static int
4998 dissect_ain_SignalingPointCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4999 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5000 hf_index, BER_CLASS_CON, 142, true, dissect_ain_OCTET_STRING_SIZE_3);
5002 return offset;
5007 static int
5008 dissect_ain_SubsystemNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5009 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5010 hf_index, BER_CLASS_CON, 130, true, dissect_ain_INTEGER_0_255);
5012 return offset;
5016 static const ber_sequence_t ControlRequestArg_sequence[] = {
5017 { &hf_ain_congestionLevel , BER_CLASS_CON, 117, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CongestionLevel },
5018 { &hf_ain_gapInterval , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_GapInterval },
5019 { &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
5020 { &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
5021 { &hf_ain_ssignalingPointCode, BER_CLASS_CON, 142, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SignalingPointCode },
5022 { &hf_ain_subsystemNumber , BER_CLASS_CON, 130, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SubsystemNumber },
5023 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5024 { NULL, 0, 0, 0, NULL }
5027 static int
5028 dissect_ain_ControlRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5029 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5030 ControlRequestArg_sequence, hf_index, ett_ain_ControlRequestArg);
5032 return offset;
5036 static const ber_sequence_t RES_echoRequest_sequence[] = {
5037 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
5038 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5039 { NULL, 0, 0, 0, NULL }
5042 static int
5043 dissect_ain_RES_echoRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5044 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5045 RES_echoRequest_sequence, hf_index, ett_ain_RES_echoRequest);
5047 return offset;
5051 static const value_string ain_ApplicationIndicator_U_vals[] = {
5052 { 0, "routeToApplicationProcessOrSLP" },
5053 { 1, "processEchoRequestMessage" },
5054 { 0, NULL }
5058 static int
5059 dissect_ain_ApplicationIndicator_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5060 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5061 NULL);
5063 return offset;
5068 static int
5069 dissect_ain_ApplicationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5070 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5071 hf_index, BER_CLASS_CON, 90, true, dissect_ain_ApplicationIndicator_U);
5073 return offset;
5077 static const ber_sequence_t EchoRequestArg_sequence[] = {
5078 { &hf_ain_applicationIndicator, BER_CLASS_CON, 90, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ApplicationIndicator },
5079 { &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
5080 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5081 { NULL, 0, 0, 0, NULL }
5084 static int
5085 dissect_ain_EchoRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5086 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5087 EchoRequestArg_sequence, hf_index, ett_ain_EchoRequestArg);
5089 return offset;
5094 static int
5095 dissect_ain_OCTET_STRING_SIZE_2_128(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5096 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5097 NULL);
5099 return offset;
5104 static int
5105 dissect_ain_AMABAFModules(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5106 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5107 hf_index, BER_CLASS_CON, 95, true, dissect_ain_OCTET_STRING_SIZE_2_128);
5109 return offset;
5114 static int
5115 dissect_ain_AMASetHexABIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5116 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5117 hf_index, BER_CLASS_CON, 82, true, dissect_ain_BOOLEAN);
5119 return offset;
5123 static const ber_sequence_t FurnishAMAInformationArg_sequence[] = {
5124 { &hf_ain_aaMABAFModules , BER_CLASS_CON, 95, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMABAFModules },
5125 { &hf_ain_aMASetHexABIndicator, BER_CLASS_CON, 82, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_AMASetHexABIndicator },
5126 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5127 { NULL, 0, 0, 0, NULL }
5130 static int
5131 dissect_ain_FurnishAMAInformationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5132 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5133 FurnishAMAInformationArg_sequence, hf_index, ett_ain_FurnishAMAInformationArg);
5135 return offset;
5139 static const value_string ain_FacilityStatus_U_vals[] = {
5140 { 0, "busy" },
5141 { 1, "busyInService" },
5142 { 2, "busyOutOfService" },
5143 { 3, "idle" },
5144 { 4, "idleInService" },
5145 { 5, "idleOutOfService" },
5146 { 6, "inService" },
5147 { 7, "outOfService" },
5148 { 0, NULL }
5152 static int
5153 dissect_ain_FacilityStatus_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5154 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5155 NULL);
5157 return offset;
5162 static int
5163 dissect_ain_FacilityStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5164 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5165 hf_index, BER_CLASS_CON, 61, true, dissect_ain_FacilityStatus_U);
5167 return offset;
5172 static int
5173 dissect_ain_MonitorTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5174 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5175 hf_index, BER_CLASS_CON, 65, true, dissect_ain_OCTET_STRING_SIZE_3);
5177 return offset;
5182 static int
5183 dissect_ain_INTEGER_1_2047(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5184 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5185 NULL);
5187 return offset;
5192 static int
5193 dissect_ain_Mlhg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5194 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5195 hf_index, BER_CLASS_CON, 29, true, dissect_ain_INTEGER_1_2047);
5197 return offset;
5201 static const value_string ain_FacilityGID_vals[] = {
5202 { 29, "mlhg" },
5203 { 0, NULL }
5206 static const ber_choice_t FacilityGID_choice[] = {
5207 { 29, &hf_ain_mlhg , BER_CLASS_CON, 29, BER_FLAGS_NOOWNTAG, dissect_ain_Mlhg },
5208 { 0, NULL, 0, 0, 0, NULL }
5211 static int
5212 dissect_ain_FacilityGID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5213 offset = dissect_ber_choice(actx, tree, tvb, offset,
5214 FacilityGID_choice, hf_index, ett_ain_FacilityGID,
5215 NULL);
5217 return offset;
5222 static int
5223 dissect_ain_FacilityMemberID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5224 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5225 hf_index, BER_CLASS_CON, 31, true, dissect_ain_INTEGER_1_2047);
5227 return offset;
5232 static int
5233 dissect_ain_ControlEncountered(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5234 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5235 hf_index, BER_CLASS_CON, 127, true, dissect_ain_OCTET_STRING_SIZE_1);
5237 return offset;
5241 static const ber_sequence_t MonitorForChangeArg_sequence[] = {
5242 { &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
5243 { &hf_ain_monitorTime , BER_CLASS_CON, 65, BER_FLAGS_NOOWNTAG, dissect_ain_MonitorTime },
5244 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
5245 { &hf_ain_facilityGID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_FacilityGID },
5246 { &hf_ain_facilityMemberID, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FacilityMemberID },
5247 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
5248 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
5249 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
5250 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5251 { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
5252 { NULL, 0, 0, 0, NULL }
5255 static int
5256 dissect_ain_MonitorForChangeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5257 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5258 MonitorForChangeArg_sequence, hf_index, ett_ain_MonitorForChangeArg);
5260 return offset;
5264 static const ber_sequence_t MonitorSuccessArg_sequence[] = {
5265 { &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
5266 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
5267 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
5268 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5269 { NULL, 0, 0, 0, NULL }
5272 static int
5273 dissect_ain_MonitorSuccessArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5274 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5275 MonitorSuccessArg_sequence, hf_index, ett_ain_MonitorSuccessArg);
5277 return offset;
5282 static int
5283 dissect_ain_SrhrGroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5284 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5285 hf_index, BER_CLASS_CON, 77, true, dissect_ain_INTEGER_0_32767);
5287 return offset;
5291 static const value_string ain_T_id_vals[] = {
5292 { 15, "calledPartyID" },
5293 { 77, "srhrGroupID" },
5294 { 0, NULL }
5297 static const ber_choice_t T_id_choice[] = {
5298 { 15, &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
5299 { 77, &hf_ain_srhrGroupID , BER_CLASS_CON, 77, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroupID },
5300 { 0, NULL, 0, 0, 0, NULL }
5303 static int
5304 dissect_ain_T_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5305 offset = dissect_ber_choice(actx, tree, tvb, offset,
5306 T_id_choice, hf_index, ett_ain_T_id,
5307 NULL);
5309 return offset;
5314 static int
5315 dissect_ain_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5316 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5318 return offset;
5323 static int
5324 dissect_ain_EnvelopeEncodingAuthority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5325 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5326 hf_index, BER_CLASS_CON, 98, true, dissect_ain_OBJECT_IDENTIFIER);
5328 return offset;
5333 static int
5334 dissect_ain_OCTET_STRING_SIZE_1_180(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5335 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5336 NULL);
5338 return offset;
5343 static int
5344 dissect_ain_EnvelopContent(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5345 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5346 hf_index, BER_CLASS_CON, 75, true, dissect_ain_OCTET_STRING_SIZE_1_180);
5348 return offset;
5353 static int
5354 dissect_ain_OCTET_STRING_SIZE_3_75(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5355 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5356 NULL);
5358 return offset;
5363 static int
5364 dissect_ain_SecurityEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5365 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5366 hf_index, BER_CLASS_CON, 85, true, dissect_ain_OCTET_STRING_SIZE_3_75);
5368 return offset;
5372 static const ber_sequence_t NCADataArg_sequence[] = {
5373 { &hf_ain_id , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_T_id },
5374 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
5375 { &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
5376 { &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
5377 { &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
5378 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
5379 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
5380 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
5381 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5382 { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
5383 { NULL, 0, 0, 0, NULL }
5386 static int
5387 dissect_ain_NCADataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5388 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5389 NCADataArg_sequence, hf_index, ett_ain_NCADataArg);
5391 return offset;
5395 static const ber_sequence_t RES_nCARequest_sequence[] = {
5396 { &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
5397 { &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
5398 { &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
5399 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
5400 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
5401 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5402 { NULL, 0, 0, 0, NULL }
5405 static int
5406 dissect_ain_RES_nCARequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5407 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5408 RES_nCARequest_sequence, hf_index, ett_ain_RES_nCARequest);
5410 return offset;
5414 static const ber_sequence_t NCARequestArg_sequence[] = {
5415 { &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
5416 { &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
5417 { &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
5418 { &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
5419 { &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
5420 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
5421 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
5422 { &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
5423 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5424 { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
5425 { NULL, 0, 0, 0, NULL }
5428 static int
5429 dissect_ain_NCARequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5430 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5431 NCARequestArg_sequence, hf_index, ett_ain_NCARequestArg);
5433 return offset;
5437 static const value_string ain_ActivationStateCode_vals[] = {
5438 { 0, "off" },
5439 { 1, "on" },
5440 { 0, NULL }
5444 static int
5445 dissect_ain_ActivationStateCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5446 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5447 NULL);
5449 return offset;
5453 static const value_string ain_PrivateDn_vals[] = {
5454 { 0, "private" },
5455 { 0, NULL }
5459 static int
5460 dissect_ain_PrivateDn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5461 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5462 NULL);
5464 return offset;
5468 static const value_string ain_Entry2_vals[] = {
5469 { 1, "dn" },
5470 { 2, "privateDn" },
5471 { 0, NULL }
5474 static const ber_choice_t Entry2_choice[] = {
5475 { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
5476 { 2, &hf_ain_privateDn , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_PrivateDn },
5477 { 0, NULL, 0, 0, 0, NULL }
5480 static int
5481 dissect_ain_Entry2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5482 offset = dissect_ber_choice(actx, tree, tvb, offset,
5483 Entry2_choice, hf_index, ett_ain_Entry2,
5484 NULL);
5486 return offset;
5490 static const ber_sequence_t EntireList_sequence_of[1] = {
5491 { &hf_ain_EntireList_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Entry2 },
5494 static int
5495 dissect_ain_EntireList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5496 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5497 EntireList_sequence_of, hf_index, ett_ain_EntireList);
5499 return offset;
5504 static int
5505 dissect_ain_Timestamp(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5506 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5507 NULL);
5509 return offset;
5513 static const ber_sequence_t Incoming_sequence[] = {
5514 { &hf_ain_aINDigits , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AINDigits },
5515 { &hf_ain_timestamp , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_Timestamp },
5516 { NULL, 0, 0, 0, NULL }
5519 static int
5520 dissect_ain_Incoming(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5521 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5522 Incoming_sequence, hf_index, ett_ain_Incoming);
5524 return offset;
5528 static const ber_sequence_t Outgoing_sequence[] = {
5529 { &hf_ain_aINDigits , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_AINDigits },
5530 { &hf_ain_timestamp , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_Timestamp },
5531 { NULL, 0, 0, 0, NULL }
5534 static int
5535 dissect_ain_Outgoing(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5536 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5537 Outgoing_sequence, hf_index, ett_ain_Outgoing);
5539 return offset;
5543 static const ber_sequence_t MemorySlot_sequence[] = {
5544 { &hf_ain_incoming , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_Incoming },
5545 { &hf_ain_outgoing , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_Outgoing },
5546 { NULL, 0, 0, 0, NULL }
5549 static int
5550 dissect_ain_MemorySlot(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5552 MemorySlot_sequence, hf_index, ett_ain_MemorySlot);
5554 return offset;
5559 static int
5560 dissect_ain_ListSize(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5561 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5562 NULL);
5564 return offset;
5569 static int
5570 dissect_ain_ForwardToDn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5571 offset = dissect_ain_Dn(implicit_tag, tvb, offset, actx, tree, hf_index);
5573 return offset;
5578 static int
5579 dissect_ain_DelayInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5580 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5581 NULL);
5583 return offset;
5587 static int * const Empty_bits[] = {
5588 &hf_ain_Empty_entireList,
5589 &hf_ain_Empty_outgoingmemorySlot,
5590 &hf_ain_Empty_incomingmemorySlot,
5591 &hf_ain_Empty_forwardToDn,
5592 NULL
5595 static int
5596 dissect_ain_Empty(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5597 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5598 Empty_bits, 4, hf_index, ett_ain_Empty,
5599 NULL);
5601 return offset;
5605 static const ber_sequence_t InfoProvided_U_sequence[] = {
5606 { &hf_ain_activationStateCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
5607 { &hf_ain_entireList , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_EntireList },
5608 { &hf_ain_memorySlot_01 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_MemorySlot },
5609 { &hf_ain_listSize , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ListSize },
5610 { &hf_ain_forwardToDn , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ForwardToDn },
5611 { &hf_ain_delayInterval , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_DelayInterval },
5612 { &hf_ain_empty , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_Empty },
5613 { NULL, 0, 0, 0, NULL }
5616 static int
5617 dissect_ain_InfoProvided_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5618 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5619 InfoProvided_U_sequence, hf_index, ett_ain_InfoProvided_U);
5621 return offset;
5626 static int
5627 dissect_ain_InfoProvided(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5628 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
5629 hf_index, BER_CLASS_CON, 100, true, dissect_ain_InfoProvided_U);
5631 return offset;
5635 static const ber_sequence_t RES_queryRequest_sequence[] = {
5636 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
5637 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
5638 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
5639 { &hf_ain_infoProvided , BER_CLASS_CON, 100, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_InfoProvided },
5640 { NULL, 0, 0, 0, NULL }
5643 static int
5644 dissect_ain_RES_queryRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5645 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5646 RES_queryRequest_sequence, hf_index, ett_ain_RES_queryRequest);
5648 return offset;
5652 static const value_string ain_Service1_vals[] = {
5653 { 0, "messageWaitingIndicator" },
5654 { 1, "visualMessageWaitingIndicator" },
5655 { 2, "anonymousCallRejection" },
5656 { 3, "automaticCallback" },
5657 { 4, "automaticRecall" },
5658 { 5, "callScreening" },
5659 { 6, "outsideCallingAreaAlerting" },
5660 { 7, "callingIdPresentAndSuppress" },
5661 { 8, "callWaiting" },
5662 { 0, NULL }
5666 static int
5667 dissect_ain_Service1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5668 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5669 NULL);
5671 return offset;
5675 static int * const Request1_bits[] = {
5676 &hf_ain_Request1_activationStatus,
5677 NULL
5680 static int
5681 dissect_ain_Request1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5682 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5683 Request1_bits, 1, hf_index, ett_ain_Request1,
5684 NULL);
5686 return offset;
5690 static const ber_sequence_t RequestGroup1_sequence[] = {
5691 { &hf_ain_service1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service1 },
5692 { &hf_ain_request1 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request1 },
5693 { NULL, 0, 0, 0, NULL }
5696 static int
5697 dissect_ain_RequestGroup1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5698 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5699 RequestGroup1_sequence, hf_index, ett_ain_RequestGroup1);
5701 return offset;
5705 static const value_string ain_Service2_vals[] = {
5706 { 0, "audioMessageWaitingIndicator" },
5707 { 0, NULL }
5711 static int
5712 dissect_ain_Service2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5713 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5714 NULL);
5716 return offset;
5720 static int * const Request2_bits[] = {
5721 &hf_ain_Request2_activationStatus,
5722 &hf_ain_Request2_delayInterval,
5723 NULL
5726 static int
5727 dissect_ain_Request2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5728 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5729 Request2_bits, 2, hf_index, ett_ain_Request2,
5730 NULL);
5732 return offset;
5736 static const ber_sequence_t RequestGroup2_sequence[] = {
5737 { &hf_ain_service2 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service2 },
5738 { &hf_ain_request2 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request2 },
5739 { NULL, 0, 0, 0, NULL }
5742 static int
5743 dissect_ain_RequestGroup2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5744 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5745 RequestGroup2_sequence, hf_index, ett_ain_RequestGroup2);
5747 return offset;
5751 static const value_string ain_Service3_vals[] = {
5752 { 0, "distinctiveRingingCallWaiting" },
5753 { 1, "selectiveCallRejection" },
5754 { 0, NULL }
5758 static int
5759 dissect_ain_Service3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5760 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5761 NULL);
5763 return offset;
5767 static int * const Request3_bits[] = {
5768 &hf_ain_Request3_activationStatus,
5769 &hf_ain_Request3_entireList,
5770 &hf_ain_Request3_listSize,
5771 NULL
5774 static int
5775 dissect_ain_Request3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5776 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5777 Request3_bits, 3, hf_index, ett_ain_Request3,
5778 NULL);
5780 return offset;
5784 static const ber_sequence_t RequestGroup3_sequence[] = {
5785 { &hf_ain_service3 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service3 },
5786 { &hf_ain_request3 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request3 },
5787 { NULL, 0, 0, 0, NULL }
5790 static int
5791 dissect_ain_RequestGroup3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5792 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5793 RequestGroup3_sequence, hf_index, ett_ain_RequestGroup3);
5795 return offset;
5799 static const value_string ain_Service4_vals[] = {
5800 { 0, "callForwardingVariable" },
5801 { 1, "callForwardingDontAnswer" },
5802 { 2, "callForwardingBusyLine" },
5803 { 0, NULL }
5807 static int
5808 dissect_ain_Service4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5809 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5810 NULL);
5812 return offset;
5816 static int * const Request4_bits[] = {
5817 &hf_ain_Request4_activationStatus,
5818 &hf_ain_Request4_forwardingDn,
5819 NULL
5822 static int
5823 dissect_ain_Request4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5824 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5825 Request4_bits, 2, hf_index, ett_ain_Request4,
5826 NULL);
5828 return offset;
5832 static const ber_sequence_t RequestGroup4_sequence[] = {
5833 { &hf_ain_service4 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service4 },
5834 { &hf_ain_request4 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request4 },
5835 { NULL, 0, 0, 0, NULL }
5838 static int
5839 dissect_ain_RequestGroup4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5840 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5841 RequestGroup4_sequence, hf_index, ett_ain_RequestGroup4);
5843 return offset;
5847 static const value_string ain_Service5_vals[] = {
5848 { 0, "selectiveCallAcceptance" },
5849 { 1, "selectiveCallForwarding" },
5850 { 0, NULL }
5854 static int
5855 dissect_ain_Service5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5856 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5857 NULL);
5859 return offset;
5863 static int * const Request5_bits[] = {
5864 &hf_ain_Request5_activationStatus,
5865 &hf_ain_Request5_forwardingDn,
5866 &hf_ain_Request5_entireList,
5867 &hf_ain_Request5_listSize,
5868 NULL
5871 static int
5872 dissect_ain_Request5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5873 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5874 Request5_bits, 4, hf_index, ett_ain_Request5,
5875 NULL);
5877 return offset;
5881 static const ber_sequence_t RequestGroup5_sequence[] = {
5882 { &hf_ain_service5 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service5 },
5883 { &hf_ain_request5 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request5 },
5884 { NULL, 0, 0, 0, NULL }
5887 static int
5888 dissect_ain_RequestGroup5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5889 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5890 RequestGroup5_sequence, hf_index, ett_ain_RequestGroup5);
5892 return offset;
5896 static const value_string ain_Service6_vals[] = {
5897 { 0, "ringControl" },
5898 { 0, NULL }
5902 static int
5903 dissect_ain_Service6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5904 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5905 NULL);
5907 return offset;
5911 static int * const Request6_bits[] = {
5912 &hf_ain_Request6_delayInterval,
5913 NULL
5916 static int
5917 dissect_ain_Request6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5918 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5919 Request6_bits, 1, hf_index, ett_ain_Request6,
5920 NULL);
5922 return offset;
5926 static const ber_sequence_t RequestGroup6_sequence[] = {
5927 { &hf_ain_service6 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service6 },
5928 { &hf_ain_request6 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Request6 },
5929 { NULL, 0, 0, 0, NULL }
5932 static int
5933 dissect_ain_RequestGroup6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5934 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5935 RequestGroup6_sequence, hf_index, ett_ain_RequestGroup6);
5937 return offset;
5941 static const value_string ain_RequestGroups_vals[] = {
5942 { 1, "requestGroup1" },
5943 { 2, "requestGroup2" },
5944 { 3, "requestGroup3" },
5945 { 4, "requestGroup4" },
5946 { 5, "requestGroup5" },
5947 { 6, "requestGroup6" },
5948 { 0, NULL }
5951 static const ber_choice_t RequestGroups_choice[] = {
5952 { 1, &hf_ain_requestGroup1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup1 },
5953 { 2, &hf_ain_requestGroup2 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup2 },
5954 { 3, &hf_ain_requestGroup3 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup3 },
5955 { 4, &hf_ain_requestGroup4 , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup4 },
5956 { 5, &hf_ain_requestGroup5 , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup5 },
5957 { 6, &hf_ain_requestGroup6 , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_RequestGroup6 },
5958 { 0, NULL, 0, 0, 0, NULL }
5961 static int
5962 dissect_ain_RequestGroups(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5963 offset = dissect_ber_choice(actx, tree, tvb, offset,
5964 RequestGroups_choice, hf_index, ett_ain_RequestGroups,
5965 NULL);
5967 return offset;
5971 static int * const RequestMemorySlot_bits[] = {
5972 &hf_ain_RequestMemorySlot_incoming,
5973 &hf_ain_RequestMemorySlot_outgoing,
5974 NULL
5977 static int
5978 dissect_ain_RequestMemorySlot(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5979 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5980 RequestMemorySlot_bits, 2, hf_index, ett_ain_RequestMemorySlot,
5981 NULL);
5983 return offset;
5987 static const ber_sequence_t ProvideInfo_U_sequence[] = {
5988 { &hf_ain_requestGroups , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_RequestGroups },
5989 { &hf_ain_requestMemorySlot, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_RequestMemorySlot },
5990 { NULL, 0, 0, 0, NULL }
5993 static int
5994 dissect_ain_ProvideInfo_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5995 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5996 ProvideInfo_U_sequence, hf_index, ett_ain_ProvideInfo_U);
5998 return offset;
6003 static int
6004 dissect_ain_ProvideInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6005 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6006 hf_index, BER_CLASS_CON, 114, true, dissect_ain_ProvideInfo_U);
6008 return offset;
6012 static const ber_sequence_t QueryRequestArg_sequence[] = {
6013 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
6014 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
6015 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
6016 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
6017 { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
6018 { &hf_ain_provideInfo , BER_CLASS_CON, 114, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ProvideInfo },
6019 { NULL, 0, 0, 0, NULL }
6022 static int
6023 dissect_ain_QueryRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6024 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6025 QueryRequestArg_sequence, hf_index, ett_ain_QueryRequestArg);
6027 return offset;
6031 static int * const EDPRequest_U_bits[] = {
6032 &hf_ain_EDPRequest_U_oCalledPartyBusy,
6033 &hf_ain_EDPRequest_U_oNoAnswer,
6034 &hf_ain_EDPRequest_U_oTermSeized,
6035 &hf_ain_EDPRequest_U_oAnswer,
6036 &hf_ain_EDPRequest_U_tBusy,
6037 &hf_ain_EDPRequest_U_tNoAnswer,
6038 &hf_ain_EDPRequest_U_termResourceAvailable,
6039 &hf_ain_EDPRequest_U_tAnswer,
6040 &hf_ain_EDPRequest_U_networkBusy,
6041 &hf_ain_EDPRequest_U_oSuspended,
6042 &hf_ain_EDPRequest_U_oDisconnectCalled,
6043 &hf_ain_EDPRequest_U_oDisconnect,
6044 &hf_ain_EDPRequest_U_oAbandon,
6045 &hf_ain_EDPRequest_U_featureActivator,
6046 &hf_ain_EDPRequest_U_switchHookFlash,
6047 &hf_ain_EDPRequest_U_success,
6048 &hf_ain_EDPRequest_U_tDisconnect,
6049 &hf_ain_EDPRequest_U_timeout,
6050 &hf_ain_EDPRequest_U_originationAttempt,
6051 &hf_ain_EDPRequest_U_oDTMFEntered,
6052 &hf_ain_EDPRequest_U_tDTMFEntered,
6053 NULL
6056 static int
6057 dissect_ain_EDPRequest_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6058 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6059 EDPRequest_U_bits, 21, hf_index, ett_ain_EDPRequest_U,
6060 NULL);
6062 return offset;
6067 static int
6068 dissect_ain_EDPRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6069 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6070 hf_index, BER_CLASS_CON, 92, true, dissect_ain_EDPRequest_U);
6072 return offset;
6076 static int * const EDPNotification_U_bits[] = {
6077 &hf_ain_EDPNotification_U_oCalledPartyBusy,
6078 &hf_ain_EDPNotification_U_oNoAnswer,
6079 &hf_ain_EDPNotification_U_oTermSeized,
6080 &hf_ain_EDPNotification_U_oAnswer,
6081 &hf_ain_EDPNotification_U_tBusy,
6082 &hf_ain_EDPNotification_U_tNoAnswer,
6083 &hf_ain_EDPNotification_U_termResourceAvailable,
6084 &hf_ain_EDPNotification_U_tAnswer,
6085 &hf_ain_EDPNotification_U_networkBusy,
6086 &hf_ain_EDPNotification_U_oSuspended,
6087 &hf_ain_EDPNotification_U_oDisconnectCalled,
6088 &hf_ain_EDPNotification_U_oDisconnect,
6089 &hf_ain_EDPNotification_U_oAbandon,
6090 &hf_ain_EDPNotification_U_featureActivator,
6091 &hf_ain_EDPNotification_U_switchHookFlash,
6092 &hf_ain_EDPNotification_U_success,
6093 &hf_ain_EDPNotification_U_tDisconnect,
6094 &hf_ain_EDPNotification_U_timeout,
6095 &hf_ain_EDPNotification_U_originationAttempt,
6096 &hf_ain_EDPNotification_U_oDTMFEntered,
6097 &hf_ain_EDPNotification_U_tDTMFEntered,
6098 NULL
6101 static int
6102 dissect_ain_EDPNotification_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6103 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6104 EDPNotification_U_bits, 21, hf_index, ett_ain_EDPNotification_U,
6105 NULL);
6107 return offset;
6112 static int
6113 dissect_ain_EDPNotification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6114 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6115 hf_index, BER_CLASS_CON, 93, true, dissect_ain_EDPNotification_U);
6117 return offset;
6122 static int
6123 dissect_ain_INTEGER_1_120(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6124 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6125 NULL);
6127 return offset;
6132 static int
6133 dissect_ain_ONoAnswerTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6134 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6135 hf_index, BER_CLASS_CON, 91, true, dissect_ain_INTEGER_1_120);
6137 return offset;
6142 static int
6143 dissect_ain_TNoAnswerTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6144 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6145 hf_index, BER_CLASS_CON, 99, true, dissect_ain_INTEGER_1_120);
6147 return offset;
6152 static int
6153 dissect_ain_IntervalTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6154 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6155 NULL);
6157 return offset;
6162 static int
6163 dissect_ain_LocalSSPTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6164 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6165 NULL);
6167 return offset;
6172 static int
6173 dissect_ain_AbsoluteSCPTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6174 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6175 NULL);
6177 return offset;
6181 static const value_string ain_TimeoutTimer_U_vals[] = {
6182 { 0, "intervalTime" },
6183 { 1, "localSSPTime" },
6184 { 2, "absoluteSCPTime" },
6185 { 0, NULL }
6188 static const ber_choice_t TimeoutTimer_U_choice[] = {
6189 { 0, &hf_ain_intervalTime , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_IntervalTime },
6190 { 1, &hf_ain_localSSPTime , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_LocalSSPTime },
6191 { 2, &hf_ain_absoluteSCPTime , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_AbsoluteSCPTime },
6192 { 0, NULL, 0, 0, 0, NULL }
6195 static int
6196 dissect_ain_TimeoutTimer_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6197 offset = dissect_ber_choice(actx, tree, tvb, offset,
6198 TimeoutTimer_U_choice, hf_index, ett_ain_TimeoutTimer_U,
6199 NULL);
6201 return offset;
6206 static int
6207 dissect_ain_TimeoutTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6208 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6209 hf_index, BER_CLASS_CON, 139, true, dissect_ain_TimeoutTimer_U);
6211 return offset;
6216 static int
6217 dissect_ain_ODTMFDigitsString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6218 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6219 hf_index, BER_CLASS_CON, 154, true, dissect_ain_AINDigits);
6221 return offset;
6226 static int
6227 dissect_ain_INTEGER_1_4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6228 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6229 NULL);
6231 return offset;
6236 static int
6237 dissect_ain_ODTMFNumberOfDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6238 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6239 hf_index, BER_CLASS_CON, 155, true, dissect_ain_INTEGER_1_4);
6241 return offset;
6246 static int
6247 dissect_ain_TDTMFDigitString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6248 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6249 hf_index, BER_CLASS_CON, 157, true, dissect_ain_AINDigits);
6251 return offset;
6256 static int
6257 dissect_ain_TDTMFNumberOfDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6258 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6259 hf_index, BER_CLASS_CON, 158, true, dissect_ain_INTEGER_1_4);
6261 return offset;
6265 static const ber_sequence_t RequestReportBCMEventArg_sequence[] = {
6266 { &hf_ain_eDPRequest , BER_CLASS_CON, 92, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_EDPRequest },
6267 { &hf_ain_eDPNotification , BER_CLASS_CON, 93, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_EDPNotification },
6268 { &hf_ain_oNoAnswerTimer , BER_CLASS_CON, 91, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ONoAnswerTimer },
6269 { &hf_ain_tNoAnswerTimer , BER_CLASS_CON, 99, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TNoAnswerTimer },
6270 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
6271 { &hf_ain_timeoutTimer , BER_CLASS_CON, 139, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TimeoutTimer },
6272 { &hf_ain_oDTMFDigitsString, BER_CLASS_CON, 154, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFDigitsString },
6273 { &hf_ain_oDTMFNumberOfDigits, BER_CLASS_CON, 155, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFNumberOfDigits },
6274 { &hf_ain_tDTMFDigitString, BER_CLASS_CON, 157, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFDigitString },
6275 { &hf_ain_tDTMFNumberOfDigits, BER_CLASS_CON, 158, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFNumberOfDigits },
6276 { NULL, 0, 0, 0, NULL }
6279 static int
6280 dissect_ain_RequestReportBCMEventArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6281 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6282 RequestReportBCMEventArg_sequence, hf_index, ett_ain_RequestReportBCMEventArg);
6284 return offset;
6288 static const value_string ain_StatusCause_U_vals[] = {
6289 { 0, "statusMatch" },
6290 { 1, "timeOut" },
6291 { 2, "error" },
6292 { 0, NULL }
6296 static int
6297 dissect_ain_StatusCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6298 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6299 NULL);
6301 return offset;
6306 static int
6307 dissect_ain_StatusCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6308 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6309 hf_index, BER_CLASS_CON, 66, true, dissect_ain_StatusCause_U);
6311 return offset;
6315 static const ber_sequence_t StatusReportedArg_sequence[] = {
6316 { &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
6317 { &hf_ain_statusCause , BER_CLASS_CON, 66, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_StatusCause },
6318 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
6319 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
6320 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
6321 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
6322 { NULL, 0, 0, 0, NULL }
6325 static int
6326 dissect_ain_StatusReportedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6327 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6328 StatusReportedArg_sequence, hf_index, ett_ain_StatusReportedArg);
6330 return offset;
6335 static int
6336 dissect_ain_EchoData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6337 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6338 hf_index, BER_CLASS_CON, 60, true, dissect_ain_OCTET_STRING_SIZE_6);
6340 return offset;
6345 static int
6346 dissect_ain_TerminationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6347 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6348 hf_index, BER_CLASS_CON, 67, true, dissect_ain_OCTET_STRING_SIZE_1);
6350 return offset;
6355 static int
6356 dissect_ain_ConnectTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6357 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6358 hf_index, BER_CLASS_CON, 58, true, dissect_ain_OCTET_STRING_SIZE_5);
6360 return offset;
6364 static const ber_sequence_t TerminationNotificationArg_sequence[] = {
6365 { &hf_ain_echoData , BER_CLASS_CON, 60, BER_FLAGS_NOOWNTAG, dissect_ain_EchoData },
6366 { &hf_ain_terminationIndicator, BER_CLASS_CON, 67, BER_FLAGS_NOOWNTAG, dissect_ain_TerminationIndicator },
6367 { &hf_ain_connectTime , BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ConnectTime },
6368 { &hf_ain_busyCause , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BusyCause },
6369 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
6370 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
6371 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
6372 { NULL, 0, 0, 0, NULL }
6375 static int
6376 dissect_ain_TerminationNotificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6377 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6378 TerminationNotificationArg_sequence, hf_index, ett_ain_TerminationNotificationArg);
6380 return offset;
6384 static const value_string ain_ResultCause_U_vals[] = {
6385 { 0, "confServiceActivated" },
6386 { 1, "confServiceDeactivatedorCancelled" },
6387 { 2, "confAnonymousEntryAdded" },
6388 { 3, "confPublicEntryAdded" },
6389 { 4, "confAnonymousEntryRemoved" },
6390 { 5, "confPublicEntryRemoved" },
6391 { 6, "confAllAnonymousEntriesRemoved" },
6392 { 7, "confAllEntriesRemoved" },
6393 { 8, "confForwardingDnSet" },
6394 { 9, "confForwardingDnCleared" },
6395 { 10, "confDelayIntervalUpdated" },
6396 { 11, "confInterdigitTimerOn" },
6397 { 12, "confInterdigitTimerOff" },
6398 { 13, "confDPConverterOn" },
6399 { 14, "confDPConverterOff" },
6400 { 15, "deniedServiceAlreadyActive" },
6401 { 16, "deniedServiceNotActivated" },
6402 { 17, "deniedInvalidForwardingDn" },
6403 { 18, "deniedPermanentPresentationPrivate" },
6404 { 19, "deniedPermanentPresentationPublic" },
6405 { 20, "deniedListIsEmpty" },
6406 { 21, "deniedListIsFull" },
6407 { 22, "deniedAnonymousDnAlreadyOnList" },
6408 { 23, "deniedPublicDnAlreadyOnList" },
6409 { 24, "deniedNoMatch" },
6410 { 25, "deniedDnNotOnList" },
6411 { 26, "deniedIncomingMemorySlotEmpty" },
6412 { 27, "deniedUnsuccessfulUpdate" },
6413 { 0, NULL }
6417 static int
6418 dissect_ain_ResultCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6419 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6420 NULL);
6422 return offset;
6427 static int
6428 dissect_ain_ResultCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6429 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6430 hf_index, BER_CLASS_CON, 151, true, dissect_ain_ResultCause_U);
6432 return offset;
6436 static const ber_sequence_t RES_update_sequence[] = {
6437 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
6438 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
6439 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
6440 { &hf_ain_resultCause , BER_CLASS_CON, 151, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ResultCause },
6441 { NULL, 0, 0, 0, NULL }
6444 static int
6445 dissect_ain_RES_update(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6446 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6447 RES_update_sequence, hf_index, ett_ain_RES_update);
6449 return offset;
6453 static const value_string ain_Ct_vals[] = {
6454 { 0, "voicebandInformation" },
6455 { 1, "circuitModeData" },
6456 { 0, NULL }
6460 static int
6461 dissect_ain_Ct(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6462 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6463 NULL);
6465 return offset;
6469 static const ber_sequence_t DnCtID_sequence[] = {
6470 { &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
6471 { &hf_ain_ct , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Ct },
6472 { NULL, 0, 0, 0, NULL }
6475 static int
6476 dissect_ain_DnCtID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6477 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6478 DnCtID_sequence, hf_index, ett_ain_DnCtID);
6480 return offset;
6485 static int
6486 dissect_ain_LocalSSPID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6487 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6488 actx, tree, tvb, offset, hf_index,
6489 NULL);
6491 return offset;
6496 static int
6497 dissect_ain_PublicDialingPlanID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6498 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6499 actx, tree, tvb, offset, hf_index,
6500 NULL);
6502 return offset;
6507 static int
6508 dissect_ain_PRIOfficeEquipmentID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6509 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6510 actx, tree, tvb, offset, hf_index,
6511 NULL);
6513 return offset;
6518 static int
6519 dissect_ain_BasicBusinessGroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6520 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6521 actx, tree, tvb, offset, hf_index,
6522 NULL);
6524 return offset;
6529 static int
6530 dissect_ain_BasicBusinessGroupDialingPlanID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6531 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6532 actx, tree, tvb, offset, hf_index,
6533 NULL);
6535 return offset;
6540 static int
6541 dissect_ain_AFRPatternID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6542 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6543 actx, tree, tvb, offset, hf_index,
6544 NULL);
6546 return offset;
6551 static int
6552 dissect_ain_OfficeEquipmentID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6553 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6554 actx, tree, tvb, offset, hf_index,
6555 NULL);
6557 return offset;
6561 static const value_string ain_SSPUserResourceID_vals[] = {
6562 { 1, "dn" },
6563 { 2, "dnCtID" },
6564 { 3, "spid" },
6565 { 4, "trunkGroupID" },
6566 { 5, "localSSPID" },
6567 { 6, "publicDialingPlanID" },
6568 { 7, "pRIOfficeEquipmentID" },
6569 { 8, "basicBusinessGroupID" },
6570 { 9, "basicBusinessGroupDialingPlanID" },
6571 { 10, "aFRPatternID" },
6572 { 11, "officeEquipmentID" },
6573 { 0, NULL }
6576 static const ber_choice_t SSPUserResourceID_choice[] = {
6577 { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
6578 { 2, &hf_ain_dnCtID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_DnCtID },
6579 { 3, &hf_ain_spid , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_Spid },
6580 { 4, &hf_ain_trunkGroupID , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_TrunkGroupID },
6581 { 5, &hf_ain_localSSPID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_LocalSSPID },
6582 { 6, &hf_ain_publicDialingPlanID, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_PublicDialingPlanID },
6583 { 7, &hf_ain_pRIOfficeEquipmentID, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ain_PRIOfficeEquipmentID },
6584 { 8, &hf_ain_basicBusinessGroupID, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ain_BasicBusinessGroupID },
6585 { 9, &hf_ain_basicBusinessGroupDialingPlanID, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ain_BasicBusinessGroupDialingPlanID },
6586 { 10, &hf_ain_aFRPatternID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_AFRPatternID },
6587 { 11, &hf_ain_officeEquipmentID, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ain_OfficeEquipmentID },
6588 { 0, NULL, 0, 0, 0, NULL }
6591 static int
6592 dissect_ain_SSPUserResourceID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6593 offset = dissect_ber_choice(actx, tree, tvb, offset,
6594 SSPUserResourceID_choice, hf_index, ett_ain_SSPUserResourceID,
6595 NULL);
6597 return offset;
6602 static int
6603 dissect_ain_DPNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6604 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6605 NULL);
6607 return offset;
6612 static int
6613 dissect_ain_TriggerItemSubnumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6614 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6615 actx, tree, tvb, offset, hf_index,
6616 NULL);
6618 return offset;
6622 static const ber_sequence_t TriggerItemID_sequence[] = {
6623 { &hf_ain_dPNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_DPNumber },
6624 { &hf_ain_triggerItemSubnumber, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_TriggerItemSubnumber },
6625 { NULL, 0, 0, 0, NULL }
6628 static int
6629 dissect_ain_TriggerItemID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6630 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6631 TriggerItemID_sequence, hf_index, ett_ain_TriggerItemID);
6633 return offset;
6637 static const value_string ain_PotentialUse_vals[] = {
6638 { 0, "notApplicable" },
6639 { 1, "callForwarding" },
6640 { 0, NULL }
6644 static int
6645 dissect_ain_PotentialUse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6646 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6647 NULL);
6649 return offset;
6654 static int
6655 dissect_ain_PRIDS1ID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6656 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6657 NULL);
6659 return offset;
6664 static int
6665 dissect_ain_PRIDS0ID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6666 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6667 NULL);
6669 return offset;
6673 static const ber_sequence_t ISDNBChannelID_sequence[] = {
6674 { &hf_ain_pRIDS1ID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_PRIDS1ID },
6675 { &hf_ain_pRIDS0ID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_PRIDS0ID },
6676 { NULL, 0, 0, 0, NULL }
6679 static int
6680 dissect_ain_ISDNBChannelID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6681 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6682 ISDNBChannelID_sequence, hf_index, ett_ain_ISDNBChannelID);
6684 return offset;
6688 static const value_string ain_SSPUserResourceSubID_vals[] = {
6689 { 1, "aFRPatternID" },
6690 { 2, "basicBusinessGroupDialingPlanID" },
6691 { 3, "iSDNBChannelID" },
6692 { 0, NULL }
6695 static const ber_choice_t SSPUserResourceSubID_choice[] = {
6696 { 1, &hf_ain_aFRPatternID , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_AFRPatternID },
6697 { 2, &hf_ain_basicBusinessGroupDialingPlanID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_BasicBusinessGroupDialingPlanID },
6698 { 3, &hf_ain_iSDNBChannelID , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ISDNBChannelID },
6699 { 0, NULL, 0, 0, 0, NULL }
6702 static int
6703 dissect_ain_SSPUserResourceSubID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6704 offset = dissect_ber_choice(actx, tree, tvb, offset,
6705 SSPUserResourceSubID_choice, hf_index, ett_ain_SSPUserResourceSubID,
6706 NULL);
6708 return offset;
6712 static const ber_sequence_t TriggerItemAssignment_U_sequence[] = {
6713 { &hf_ain_sSPUserResourceID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_SSPUserResourceID },
6714 { &hf_ain_triggerItemID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_TriggerItemID },
6715 { &hf_ain_activationStateCode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
6716 { &hf_ain_potentialUse , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_PotentialUse },
6717 { &hf_ain_sSPUserResourceSubID, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_SSPUserResourceSubID },
6718 { NULL, 0, 0, 0, NULL }
6721 static int
6722 dissect_ain_TriggerItemAssignment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6723 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6724 TriggerItemAssignment_U_sequence, hf_index, ett_ain_TriggerItemAssignment_U);
6726 return offset;
6731 static int
6732 dissect_ain_TriggerItemAssignment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6733 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6734 hf_index, BER_CLASS_CON, 102, true, dissect_ain_TriggerItemAssignment_U);
6736 return offset;
6740 static const value_string ain_Action1_vals[] = {
6741 { 2, "activationStateCode" },
6742 { 0, NULL }
6745 static const ber_choice_t Action1_choice[] = {
6746 { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
6747 { 0, NULL, 0, 0, 0, NULL }
6750 static int
6751 dissect_ain_Action1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6752 offset = dissect_ber_choice(actx, tree, tvb, offset,
6753 Action1_choice, hf_index, ett_ain_Action1,
6754 NULL);
6756 return offset;
6760 static const ber_sequence_t UpdateGroup1_sequence[] = {
6761 { &hf_ain_service1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service1 },
6762 { &hf_ain_action1 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action1 },
6763 { NULL, 0, 0, 0, NULL }
6766 static int
6767 dissect_ain_UpdateGroup1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6768 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6769 UpdateGroup1_sequence, hf_index, ett_ain_UpdateGroup1);
6771 return offset;
6775 static const value_string ain_Action2_vals[] = {
6776 { 2, "activationStateCode" },
6777 { 3, "delayInterval" },
6778 { 0, NULL }
6781 static const ber_choice_t Action2_choice[] = {
6782 { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
6783 { 3, &hf_ain_delayInterval , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_DelayInterval },
6784 { 0, NULL, 0, 0, 0, NULL }
6787 static int
6788 dissect_ain_Action2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6789 offset = dissect_ber_choice(actx, tree, tvb, offset,
6790 Action2_choice, hf_index, ett_ain_Action2,
6791 NULL);
6793 return offset;
6797 static const ber_sequence_t UpdateGroup2_sequence[] = {
6798 { &hf_ain_service2 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service2 },
6799 { &hf_ain_action2 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action2 },
6800 { NULL, 0, 0, 0, NULL }
6803 static int
6804 dissect_ain_UpdateGroup2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6805 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6806 UpdateGroup2_sequence, hf_index, ett_ain_UpdateGroup2);
6808 return offset;
6813 static int
6814 dissect_ain_SpeedCallingCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6815 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6816 actx, tree, tvb, offset, hf_index,
6817 NULL);
6819 return offset;
6823 static const value_string ain_MemorySlot1_vals[] = {
6824 { 0, "incoming" },
6825 { 0, NULL }
6829 static int
6830 dissect_ain_MemorySlot1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6831 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6832 NULL);
6834 return offset;
6838 static const value_string ain_Entry_vals[] = {
6839 { 1, "dn" },
6840 { 2, "speedCallingCode" },
6841 { 3, "memorySlot" },
6842 { 0, NULL }
6845 static const ber_choice_t Entry_choice[] = {
6846 { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
6847 { 2, &hf_ain_speedCallingCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_SpeedCallingCode },
6848 { 3, &hf_ain_memorySlot , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_MemorySlot1 },
6849 { 0, NULL, 0, 0, 0, NULL }
6852 static int
6853 dissect_ain_Entry(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6854 offset = dissect_ber_choice(actx, tree, tvb, offset,
6855 Entry_choice, hf_index, ett_ain_Entry,
6856 NULL);
6858 return offset;
6862 static const value_string ain_EditListType_vals[] = {
6863 { 0, "addListElement" },
6864 { 1, "deleteListElement" },
6865 { 0, NULL }
6869 static int
6870 dissect_ain_EditListType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6871 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6872 NULL);
6874 return offset;
6878 static const ber_sequence_t EditSpecificEntry_sequence[] = {
6879 { &hf_ain_entry , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Entry },
6880 { &hf_ain_editListType , BER_CLASS_CON, 105, BER_FLAGS_IMPLTAG, dissect_ain_EditListType },
6881 { NULL, 0, 0, 0, NULL }
6884 static int
6885 dissect_ain_EditSpecificEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6886 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6887 EditSpecificEntry_sequence, hf_index, ett_ain_EditSpecificEntry);
6889 return offset;
6893 static const value_string ain_EditAllEntries_vals[] = {
6894 { 0, "deleteAllEntries" },
6895 { 1, "deleteAllPrivateEntries" },
6896 { 0, NULL }
6900 static int
6901 dissect_ain_EditAllEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6902 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6903 NULL);
6905 return offset;
6909 static const value_string ain_Action3_vals[] = {
6910 { 2, "activationStateCode" },
6911 { 3, "editSpecificEntry" },
6912 { 4, "editAllEntries" },
6913 { 0, NULL }
6916 static const ber_choice_t Action3_choice[] = {
6917 { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
6918 { 3, &hf_ain_editSpecificEntry, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_EditSpecificEntry },
6919 { 4, &hf_ain_editAllEntries , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_EditAllEntries },
6920 { 0, NULL, 0, 0, 0, NULL }
6923 static int
6924 dissect_ain_Action3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6925 offset = dissect_ber_choice(actx, tree, tvb, offset,
6926 Action3_choice, hf_index, ett_ain_Action3,
6927 NULL);
6929 return offset;
6933 static const ber_sequence_t UpdateGroup3_sequence[] = {
6934 { &hf_ain_service3 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service3 },
6935 { &hf_ain_action3 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action3 },
6936 { NULL, 0, 0, 0, NULL }
6939 static int
6940 dissect_ain_UpdateGroup3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6941 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6942 UpdateGroup3_sequence, hf_index, ett_ain_UpdateGroup3);
6944 return offset;
6948 static const value_string ain_Set_vals[] = {
6949 { 1, "dn" },
6950 { 4, "speedCallingCode" },
6951 { 0, NULL }
6954 static const ber_choice_t Set_choice[] = {
6955 { 1, &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
6956 { 4, &hf_ain_speedCallingCode, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_SpeedCallingCode },
6957 { 0, NULL, 0, 0, 0, NULL }
6960 static int
6961 dissect_ain_Set(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6962 offset = dissect_ber_choice(actx, tree, tvb, offset,
6963 Set_choice, hf_index, ett_ain_Set,
6964 NULL);
6966 return offset;
6970 static const value_string ain_Clear_vals[] = {
6971 { 0, "remove" },
6972 { 0, NULL }
6976 static int
6977 dissect_ain_Clear(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6978 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6979 NULL);
6981 return offset;
6985 static const value_string ain_ForwardingDn_vals[] = {
6986 { 0, "set" },
6987 { 1, "clear" },
6988 { 0, NULL }
6991 static const ber_choice_t ForwardingDn_choice[] = {
6992 { 0, &hf_ain_set , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_Set },
6993 { 1, &hf_ain_clear , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_Clear },
6994 { 0, NULL, 0, 0, 0, NULL }
6997 static int
6998 dissect_ain_ForwardingDn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6999 offset = dissect_ber_choice(actx, tree, tvb, offset,
7000 ForwardingDn_choice, hf_index, ett_ain_ForwardingDn,
7001 NULL);
7003 return offset;
7007 static const value_string ain_Action4_vals[] = {
7008 { 0, "activationStateCode" },
7009 { 1, "forwardingDn" },
7010 { 0, NULL }
7013 static const ber_choice_t Action4_choice[] = {
7014 { 0, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
7015 { 1, &hf_ain_forwardingDn , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_ForwardingDn },
7016 { 0, NULL, 0, 0, 0, NULL }
7019 static int
7020 dissect_ain_Action4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7021 offset = dissect_ber_choice(actx, tree, tvb, offset,
7022 Action4_choice, hf_index, ett_ain_Action4,
7023 NULL);
7025 return offset;
7029 static const ber_sequence_t UpdateGroup4_sequence[] = {
7030 { &hf_ain_service4 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service4 },
7031 { &hf_ain_action4 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action4 },
7032 { NULL, 0, 0, 0, NULL }
7035 static int
7036 dissect_ain_UpdateGroup4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7037 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7038 UpdateGroup4_sequence, hf_index, ett_ain_UpdateGroup4);
7040 return offset;
7044 static const value_string ain_Action5_vals[] = {
7045 { 2, "activationStateCode" },
7046 { 3, "forwardingDn" },
7047 { 4, "editSpecificEntry" },
7048 { 5, "editAllEntries" },
7049 { 0, NULL }
7052 static const ber_choice_t Action5_choice[] = {
7053 { 2, &hf_ain_activationStateCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
7054 { 3, &hf_ain_forwardingDn , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ForwardingDn },
7055 { 4, &hf_ain_editSpecificEntry, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_EditSpecificEntry },
7056 { 5, &hf_ain_editAllEntries , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_EditAllEntries },
7057 { 0, NULL, 0, 0, 0, NULL }
7060 static int
7061 dissect_ain_Action5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7062 offset = dissect_ber_choice(actx, tree, tvb, offset,
7063 Action5_choice, hf_index, ett_ain_Action5,
7064 NULL);
7066 return offset;
7070 static const ber_sequence_t UpdateGroup5_sequence[] = {
7071 { &hf_ain_service5 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service5 },
7072 { &hf_ain_action5 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action5 },
7073 { NULL, 0, 0, 0, NULL }
7076 static int
7077 dissect_ain_UpdateGroup5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7078 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7079 UpdateGroup5_sequence, hf_index, ett_ain_UpdateGroup5);
7081 return offset;
7085 static const value_string ain_Action6_vals[] = {
7086 { 2, "delayInterval" },
7087 { 0, NULL }
7090 static const ber_choice_t Action6_choice[] = {
7091 { 2, &hf_ain_delayInterval , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_DelayInterval },
7092 { 0, NULL, 0, 0, 0, NULL }
7095 static int
7096 dissect_ain_Action6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7097 offset = dissect_ber_choice(actx, tree, tvb, offset,
7098 Action6_choice, hf_index, ett_ain_Action6,
7099 NULL);
7101 return offset;
7105 static const ber_sequence_t UpdateGroup6_sequence[] = {
7106 { &hf_ain_service6 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service6 },
7107 { &hf_ain_action6 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action6 },
7108 { NULL, 0, 0, 0, NULL }
7111 static int
7112 dissect_ain_UpdateGroup6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7113 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7114 UpdateGroup6_sequence, hf_index, ett_ain_UpdateGroup6);
7116 return offset;
7120 static const value_string ain_Service7_vals[] = {
7121 { 0, "callingNumberDeliveryBlocking" },
7122 { 1, "callingNameDeliveryBlocking" },
7123 { 0, NULL }
7127 static int
7128 dissect_ain_Service7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7129 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7130 NULL);
7132 return offset;
7136 static const value_string ain_Toggle_vals[] = {
7137 { 0, "presentationStatusValue" },
7138 { 0, NULL }
7142 static int
7143 dissect_ain_Toggle(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7144 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7145 NULL);
7147 return offset;
7151 static const value_string ain_Action7_vals[] = {
7152 { 2, "toggle" },
7153 { 0, NULL }
7156 static const ber_choice_t Action7_choice[] = {
7157 { 2, &hf_ain_toggle , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Toggle },
7158 { 0, NULL, 0, 0, 0, NULL }
7161 static int
7162 dissect_ain_Action7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7163 offset = dissect_ber_choice(actx, tree, tvb, offset,
7164 Action7_choice, hf_index, ett_ain_Action7,
7165 NULL);
7167 return offset;
7171 static const ber_sequence_t UpdateGroup7_sequence[] = {
7172 { &hf_ain_service7 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service7 },
7173 { &hf_ain_action7 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action7 },
7174 { NULL, 0, 0, 0, NULL }
7177 static int
7178 dissect_ain_UpdateGroup7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7179 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7180 UpdateGroup7_sequence, hf_index, ett_ain_UpdateGroup7);
7182 return offset;
7186 static const value_string ain_Service8_vals[] = {
7187 { 0, "customerOriginatedTrace" },
7188 { 1, "cancelCallWaiting" },
7189 { 0, NULL }
7193 static int
7194 dissect_ain_Service8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7195 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7196 NULL);
7198 return offset;
7202 static const value_string ain_Invoke8_vals[] = {
7203 { 0, "on" },
7204 { 0, NULL }
7208 static int
7209 dissect_ain_Invoke8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7210 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7211 NULL);
7213 return offset;
7217 static const value_string ain_Action8_vals[] = {
7218 { 2, "invoke" },
7219 { 0, NULL }
7222 static const ber_choice_t Action8_choice[] = {
7223 { 2, &hf_ain_action8_invoke , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_Invoke8 },
7224 { 0, NULL, 0, 0, 0, NULL }
7227 static int
7228 dissect_ain_Action8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7229 offset = dissect_ber_choice(actx, tree, tvb, offset,
7230 Action8_choice, hf_index, ett_ain_Action8,
7231 NULL);
7233 return offset;
7237 static const ber_sequence_t UpdateGroup8_sequence[] = {
7238 { &hf_ain_service8 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service8 },
7239 { &hf_ain_action8 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action8 },
7240 { NULL, 0, 0, 0, NULL }
7243 static int
7244 dissect_ain_UpdateGroup8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7245 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7246 UpdateGroup8_sequence, hf_index, ett_ain_UpdateGroup8);
7248 return offset;
7252 static const value_string ain_Service9_vals[] = {
7253 { 0, "speedCalling" },
7254 { 0, NULL }
7258 static int
7259 dissect_ain_Service9(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7260 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7261 NULL);
7263 return offset;
7267 static const ber_sequence_t ChangeList_sequence[] = {
7268 { &hf_ain_dn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Dn },
7269 { &hf_ain_speedCallingCode, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_SpeedCallingCode },
7270 { NULL, 0, 0, 0, NULL }
7273 static int
7274 dissect_ain_ChangeList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7275 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7276 ChangeList_sequence, hf_index, ett_ain_ChangeList);
7278 return offset;
7282 static const value_string ain_Action9_vals[] = {
7283 { 2, "changeList" },
7284 { 0, NULL }
7287 static const ber_choice_t Action9_choice[] = {
7288 { 2, &hf_ain_changeList , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ChangeList },
7289 { 0, NULL, 0, 0, 0, NULL }
7292 static int
7293 dissect_ain_Action9(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7294 offset = dissect_ber_choice(actx, tree, tvb, offset,
7295 Action9_choice, hf_index, ett_ain_Action9,
7296 NULL);
7298 return offset;
7302 static const ber_sequence_t UpdateGroup9_sequence[] = {
7303 { &hf_ain_service9 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Service9 },
7304 { &hf_ain_action9 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Action9 },
7305 { NULL, 0, 0, 0, NULL }
7308 static int
7309 dissect_ain_UpdateGroup9(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7310 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7311 UpdateGroup9_sequence, hf_index, ett_ain_UpdateGroup9);
7313 return offset;
7317 static const value_string ain_UpdateGroups_vals[] = {
7318 { 2, "updateGroup1" },
7319 { 3, "updateGroup2" },
7320 { 4, "updateGroup3" },
7321 { 5, "updateGroup4" },
7322 { 6, "updateGroup5" },
7323 { 7, "updateGroup6" },
7324 { 8, "updateGroup7" },
7325 { 9, "updateGroup8" },
7326 { 10, "updateGroup9" },
7327 { 0, NULL }
7330 static const ber_choice_t UpdateGroups_choice[] = {
7331 { 2, &hf_ain_updateGroup1 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup1 },
7332 { 3, &hf_ain_updateGroup2 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup2 },
7333 { 4, &hf_ain_updateGroup3 , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup3 },
7334 { 5, &hf_ain_updateGroup4 , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup4 },
7335 { 6, &hf_ain_updateGroup5 , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup5 },
7336 { 7, &hf_ain_updateGroup6 , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup6 },
7337 { 8, &hf_ain_updateGroup7 , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup7 },
7338 { 9, &hf_ain_updateGroup8 , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup8 },
7339 { 10, &hf_ain_updateGroup9 , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_UpdateGroup9 },
7340 { 0, NULL, 0, 0, 0, NULL }
7343 static int
7344 dissect_ain_UpdateGroups(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7345 offset = dissect_ber_choice(actx, tree, tvb, offset,
7346 UpdateGroups_choice, hf_index, ett_ain_UpdateGroups,
7347 NULL);
7349 return offset;
7354 static int
7355 dissect_ain_CancelInterdigitTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7356 offset = dissect_ain_ActivationStateCode(implicit_tag, tvb, offset, actx, tree, hf_index);
7358 return offset;
7362 static const ber_sequence_t SSPUserResource_U_sequence[] = {
7363 { &hf_ain_sSPUserResourceID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_SSPUserResourceID },
7364 { &hf_ain_serviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_ServiceProviderID },
7365 { &hf_ain_updateGroups , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_UpdateGroups },
7366 { &hf_ain_oNoAnswerTimer , BER_CLASS_CON, 91, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ONoAnswerTimer },
7367 { &hf_ain_tNoAnswerTimer , BER_CLASS_CON, 99, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TNoAnswerTimer },
7368 { &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
7369 { &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
7370 { &hf_ain_cancelInterdigitTimer, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_CancelInterdigitTimer },
7371 { NULL, 0, 0, 0, NULL }
7374 static int
7375 dissect_ain_SSPUserResource_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7376 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7377 SSPUserResource_U_sequence, hf_index, ett_ain_SSPUserResource_U);
7379 return offset;
7384 static int
7385 dissect_ain_SSPUserResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7386 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7387 hf_index, BER_CLASS_CON, 103, true, dissect_ain_SSPUserResource_U);
7389 return offset;
7394 static int
7395 dissect_ain_SrhrID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7396 offset = dissect_ain_AINDigits(implicit_tag, tvb, offset, actx, tree, hf_index);
7398 return offset;
7402 static const ber_sequence_t SrhrGroup_U_sequence[] = {
7403 { &hf_ain_srhrGroupID , BER_CLASS_CON, 77, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroupID },
7404 { &hf_ain_srhrID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_SrhrID },
7405 { NULL, 0, 0, 0, NULL }
7408 static int
7409 dissect_ain_SrhrGroup_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7410 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7411 SrhrGroup_U_sequence, hf_index, ett_ain_SrhrGroup_U);
7413 return offset;
7418 static int
7419 dissect_ain_SrhrGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7420 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7421 hf_index, BER_CLASS_CON, 104, true, dissect_ain_SrhrGroup_U);
7423 return offset;
7428 static int
7429 dissect_ain_NtdIndirectID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7430 offset = dissect_ain_SSPUserResourceID(implicit_tag, tvb, offset, actx, tree, hf_index);
7432 return offset;
7436 static const value_string ain_NtdID_vals[] = {
7437 { 1, "ntdIndirectID" },
7438 { 0, NULL }
7441 static const ber_choice_t NtdID_choice[] = {
7442 { 1, &hf_ain_ntdIndirectID , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_NtdIndirectID },
7443 { 0, NULL, 0, 0, 0, NULL }
7446 static int
7447 dissect_ain_NtdID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7448 offset = dissect_ber_choice(actx, tree, tvb, offset,
7449 NtdID_choice, hf_index, ett_ain_NtdID,
7450 NULL);
7452 return offset;
7456 static const ber_sequence_t NetworkTestDesignator_U_sequence[] = {
7457 { &hf_ain_ntdID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_NtdID },
7458 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
7459 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
7460 { NULL, 0, 0, 0, NULL }
7463 static int
7464 dissect_ain_NetworkTestDesignator_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7465 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7466 NetworkTestDesignator_U_sequence, hf_index, ett_ain_NetworkTestDesignator_U);
7468 return offset;
7473 static int
7474 dissect_ain_NetworkTestDesignator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7475 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7476 hf_index, BER_CLASS_CON, 97, true, dissect_ain_NetworkTestDesignator_U);
7478 return offset;
7482 static const value_string ain_OperationsMonitoredItemID_vals[] = {
7483 { 1, "sSPUserResourceID" },
7484 { 0, NULL }
7487 static const ber_choice_t OperationsMonitoredItemID_choice[] = {
7488 { 1, &hf_ain_sSPUserResourceID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_SSPUserResourceID },
7489 { 0, NULL, 0, 0, 0, NULL }
7492 static int
7493 dissect_ain_OperationsMonitoredItemID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7494 offset = dissect_ber_choice(actx, tree, tvb, offset,
7495 OperationsMonitoredItemID_choice, hf_index, ett_ain_OperationsMonitoredItemID,
7496 NULL);
7498 return offset;
7502 static const ber_sequence_t OperationsMonitoringAssignment_U_sequence[] = {
7503 { &hf_ain_operationsMonitoredItemID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_OperationsMonitoredItemID },
7504 { &hf_ain_activationStateCode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ActivationStateCode },
7505 { NULL, 0, 0, 0, NULL }
7508 static int
7509 dissect_ain_OperationsMonitoringAssignment_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7510 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7511 OperationsMonitoringAssignment_U_sequence, hf_index, ett_ain_OperationsMonitoringAssignment_U);
7513 return offset;
7518 static int
7519 dissect_ain_OperationsMonitoringAssignment(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7520 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7521 hf_index, BER_CLASS_CON, 118, true, dissect_ain_OperationsMonitoringAssignment_U);
7523 return offset;
7527 static const value_string ain_AdministrableObject_vals[] = {
7528 { 102, "triggerItemAssignment" },
7529 { 103, "sSPUserResource" },
7530 { 104, "srhrGroup" },
7531 { 97, "networkTestDesignator" },
7532 { 118, "operationsMonitoringAssignment" },
7533 { 0, NULL }
7536 static const ber_choice_t AdministrableObject_choice[] = {
7537 { 102, &hf_ain_triggerItemAssignment, BER_CLASS_CON, 102, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerItemAssignment },
7538 { 103, &hf_ain_sSPUserResource , BER_CLASS_CON, 103, BER_FLAGS_NOOWNTAG, dissect_ain_SSPUserResource },
7539 { 104, &hf_ain_srhrGroup , BER_CLASS_CON, 104, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroup },
7540 { 97, &hf_ain_networkTestDesignator, BER_CLASS_CON, 97, BER_FLAGS_NOOWNTAG, dissect_ain_NetworkTestDesignator },
7541 { 118, &hf_ain_operationsMonitoringAssignment, BER_CLASS_CON, 118, BER_FLAGS_NOOWNTAG, dissect_ain_OperationsMonitoringAssignment },
7542 { 0, NULL, 0, 0, 0, NULL }
7545 static int
7546 dissect_ain_AdministrableObject(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7547 offset = dissect_ber_choice(actx, tree, tvb, offset,
7548 AdministrableObject_choice, hf_index, ett_ain_AdministrableObject,
7549 NULL);
7551 return offset;
7555 static const ber_sequence_t UpdateArg_sequence[] = {
7556 { &hf_ain_administrableObject, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_AdministrableObject },
7557 { &hf_ain_editListType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_EditListType },
7558 { &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
7559 { &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
7560 { &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
7561 { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
7562 { &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
7563 { NULL, 0, 0, 0, NULL }
7566 static int
7567 dissect_ain_UpdateArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7568 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7569 UpdateArg_sequence, hf_index, ett_ain_UpdateArg);
7571 return offset;
7575 static const ber_sequence_t RES_updateRequest_sequence[] = {
7576 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
7577 { NULL, 0, 0, 0, NULL }
7580 static int
7581 dissect_ain_RES_updateRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7582 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7583 RES_updateRequest_sequence, hf_index, ett_ain_RES_updateRequest);
7585 return offset;
7590 static int
7591 dissect_ain_TriggerCriteriaFlag(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7592 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7593 hf_index, BER_CLASS_CON, 68, true, dissect_ain_OCTET_STRING_SIZE_2);
7595 return offset;
7599 static const ber_sequence_t UpdateRequestArg_sequence[] = {
7600 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
7601 { &hf_ain_triggerCriteriaFlag, BER_CLASS_CON, 68, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaFlag },
7602 { &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
7603 { &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
7604 { NULL, 0, 0, 0, NULL }
7607 static int
7608 dissect_ain_UpdateRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7609 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7610 UpdateRequestArg_sequence, hf_index, ett_ain_UpdateRequestArg);
7612 return offset;
7616 static const value_string ain_ErrorCause_U_vals[] = {
7617 { 0, "erroneousDataValue" },
7618 { 1, "missingConditionalParameter" },
7619 { 2, "responseMessageTimerExpired" },
7620 { 3, "unexpectedCommunication" },
7621 { 4, "unexpectedMessage" },
7622 { 5, "unexpectedMessageSequence" },
7623 { 6, "unexpectedParameterSequence" },
7624 { 0, NULL }
7628 static int
7629 dissect_ain_ErrorCause_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7630 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7631 NULL);
7633 return offset;
7638 static int
7639 dissect_ain_ErrorCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7640 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7641 hf_index, BER_CLASS_CON, 56, true, dissect_ain_ErrorCause_U);
7643 return offset;
7648 static int
7649 dissect_ain_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7650 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7651 NULL);
7653 return offset;
7657 static const value_string ain_TimerUpdated_U_vals[] = {
7658 { 0, "success" },
7659 { 1, "failure" },
7660 { 2, "transaction-already-closed" },
7661 { 0, NULL }
7665 static int
7666 dissect_ain_TimerUpdated_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7667 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7668 NULL);
7670 return offset;
7675 static int
7676 dissect_ain_TimerUpdated(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7677 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7678 hf_index, BER_CLASS_CON, 167, true, dissect_ain_TimerUpdated_U);
7680 return offset;
7685 static int
7686 dissect_ain_OCTET_STRING_SIZE_1_5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7687 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7688 NULL);
7690 return offset;
7695 static int
7696 dissect_ain_FailureCauseData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7697 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7698 hf_index, BER_CLASS_CON, 112, true, dissect_ain_OCTET_STRING_SIZE_1_5);
7700 return offset;
7704 static const value_string ain_Parms_vals[] = {
7705 { 0, "accessCode" },
7706 { 1, "aCGEncountered" },
7707 { 2, "alternateBillingIndicator" },
7708 { 3, "alternateCarrier" },
7709 { 4, "alternateTrunkGroup" },
7710 { 5, "aMAAlternateBillingNumber" },
7711 { 6, "aMABusinessCustomerID" },
7712 { 7, "aMAslpID" },
7713 { 8, "amp1" },
7714 { 9, "amp2" },
7715 { 10, "answerIndicator" },
7716 { 11, "bearerCapability" },
7717 { 12, "busyCause" },
7718 { 13, "calledPartyID" },
7719 { 14, "calledPartyStationType" },
7720 { 15, "callingGeodeticLocation" },
7721 { 16, "callingPartyBGID" },
7722 { 17, "callingPartyID" },
7723 { 18, "callType" },
7724 { 19, "chargeNumber" },
7725 { 20, "chargePartyStationType" },
7726 { 21, "clearCause" },
7727 { 22, "collectedAddressInfo" },
7728 { 23, "collectedDigits" },
7729 { 24, "controllingLegTreatment" },
7730 { 25, "disconnectFlag" },
7731 { 26, "displayText" },
7732 { 27, "dTMFDigitsDetected" },
7733 { 28, "facilityGID" },
7734 { 29, "facilityMemberID" },
7735 { 30, "failureCause" },
7736 { 31, "genericName" },
7737 { 32, "lata" },
7738 { 33, "oDTMFDigitsString" },
7739 { 34, "oDTMFNumberofDigits" },
7740 { 35, "originalCalledPartyID" },
7741 { 36, "outpulseNumber" },
7742 { 37, "overflowBillingIndicator" },
7743 { 38, "passiveLegTreatment" },
7744 { 39, "partyID" },
7745 { 40, "partyOnHold" },
7746 { 41, "primaryBillingIndicator" },
7747 { 42, "carrier" },
7748 { 43, "primaryTrunkGroup" },
7749 { 44, "redirectingPartyID" },
7750 { 45, "redirectionInformation" },
7751 { 46, "resourceType" },
7752 { 47, "secondAlternateBillingIndicator" },
7753 { 48, "secondAlternateCarrier" },
7754 { 49, "secondAlternateTrunkGroup" },
7755 { 50, "spid" },
7756 { 51, "sSPResponseMessageTimerT1" },
7757 { 52, "strParameterBlock" },
7758 { 53, "tcm" },
7759 { 54, "tDTMFDigitString" },
7760 { 55, "tDTMFNumberOfDigits" },
7761 { 56, "timerUpdated" },
7762 { 57, "triggerCriteriaType" },
7763 { 58, "triggerInformation" },
7764 { 59, "userID" },
7765 { 60, "verticalServiceCode" },
7766 { 61, "connectTime" },
7767 { 62, "controlCauseIndicator" },
7768 { 63, "echoData" },
7769 { 64, "facilityStatus" },
7770 { 65, "gapDuration" },
7771 { 66, "gapInterval" },
7772 { 67, "globalTitleAddress" },
7773 { 68, "monitorTime" },
7774 { 69, "statusCause" },
7775 { 70, "terminationIndicator" },
7776 { 71, "translationType" },
7777 { 72, "triggerCriteriaFlag" },
7778 { 73, "tSTRCTimer" },
7779 { 74, "aMAMeasure" },
7780 { 75, "aMAMeasurement" },
7781 { 76, "clearCauseData" },
7782 { 77, "envelopContent" },
7783 { 78, "iPReturnBlock" },
7784 { 79, "sap" },
7785 { 80, "aMASetHexABIndicator" },
7786 { 81, "serviceContext" },
7787 { 82, "extensionParameter" },
7788 { 83, "securityEnvelope" },
7789 { 84, "destinationAddress" },
7790 { 85, "derviceProviderID" },
7791 { 86, "aMABillingFeature" },
7792 { 87, "aMASequenceNumber" },
7793 { 88, "applicationIndicator" },
7794 { 89, "oNoAnswerTimer" },
7795 { 90, "eDPRequest" },
7796 { 91, "eDPNotification" },
7797 { 92, "busyType" },
7798 { 93, "aMABAFModules" },
7799 { 94, "sTRConnection" },
7800 { 95, "errorCause" },
7801 { 96, "resultCause" },
7802 { 97, "cTRConnection" },
7803 { 98, "rTPReroutingNumber" },
7804 { 99, "rTPServiceIndicator" },
7805 { 100, "administrableObject" },
7806 { 101, "envelopeEncodingAuthority" },
7807 { 102, "tNoAnswerTimer" },
7808 { 103, "editListType" },
7809 { 104, "aCGGlobalOverride" },
7810 { 105, "notificationIndicator" },
7811 { 106, "aMALineNumber" },
7812 { 107, "aMADigitsDialedWC" },
7813 { 108, "carrierUsage" },
7814 { 109, "closeCause" },
7815 { 110, "dPConverter" },
7816 { 111, "failureCauseData" },
7817 { 112, "genericAddress" },
7818 { 113, "srhrGroupID" },
7819 { 114, "genericAddressList" },
7820 { 115, "networkSpecificFacilities" },
7821 { 116, "forwardCallIndicator" },
7822 { 117, "alternateDialingPlanInd" },
7823 { 118, "disconnectCause" },
7824 { 119, "aMAServiceProviderID" },
7825 { 120, "congestionLevel" },
7826 { 121, "controlEncountered" },
7827 { 122, "infoProvided" },
7828 { 123, "provideInfo" },
7829 { 124, "signalingPointCode" },
7830 { 125, "subsystemNumber" },
7831 { 126, "notificationDuration" },
7832 { 127, "wakeUpDuration" },
7833 { 128, "oSIIndicator" },
7834 { 129, "legID" },
7835 { 130, "ccID" },
7836 { 131, "bCMType" },
7837 { 132, "pointInCall" },
7838 { 133, "featureActivatorID" },
7839 { 134, "csID" },
7840 { 135, "lampTreatment" },
7841 { 136, "timeoutTimer" },
7842 { 137, "transID" },
7843 { 138, "actResult" },
7844 { 139, "extendedRinging" },
7845 { 140, "jurisdictionInformation" },
7846 { 141, "prefix" },
7847 { 142, "genericDigitsList" },
7848 { 143, "applyRestrictions" },
7849 { 0, NULL }
7852 static const ber_choice_t Parms_choice[] = {
7853 { 0, &hf_ain_accessCode , BER_CLASS_CON, 1, BER_FLAGS_NOOWNTAG, dissect_ain_AccessCode },
7854 { 1, &hf_ain_aCGEncountered , BER_CLASS_CON, 2, BER_FLAGS_NOOWNTAG, dissect_ain_ACGEncountered },
7855 { 2, &hf_ain_alternateBillingIndicator, BER_CLASS_CON, 3, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateBillingIndicator },
7856 { 3, &hf_ain_alternateCarrier, BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateCarrier },
7857 { 4, &hf_ain_alternateTrunkGroup, BER_CLASS_CON, 5, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateTrunkGroup },
7858 { 5, &hf_ain_aMAAlternateBillingNumber, BER_CLASS_CON, 6, BER_FLAGS_NOOWNTAG, dissect_ain_AMAAlternateBillingNumber },
7859 { 6, &hf_ain_aMABusinessCustomerID, BER_CLASS_CON, 7, BER_FLAGS_NOOWNTAG, dissect_ain_AMABusinessCustomerID },
7860 { 7, &hf_ain_aMAslpID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ain_AMAslpID },
7861 { 8, &hf_ain_amp1 , BER_CLASS_CON, 11, BER_FLAGS_NOOWNTAG, dissect_ain_Amp1 },
7862 { 9, &hf_ain_amp2 , BER_CLASS_CON, 109, BER_FLAGS_NOOWNTAG, dissect_ain_Amp2 },
7863 { 10, &hf_ain_answerIndicator , BER_CLASS_CON, 12, BER_FLAGS_NOOWNTAG, dissect_ain_AnswerIndicator },
7864 { 11, &hf_ain_bearerCapability, BER_CLASS_CON, 13, BER_FLAGS_NOOWNTAG, dissect_ain_BearerCapability },
7865 { 12, &hf_ain_busyCause , BER_CLASS_CON, 14, BER_FLAGS_NOOWNTAG, dissect_ain_BusyCause },
7866 { 13, &hf_ain_calledPartyID , BER_CLASS_CON, 15, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyID },
7867 { 14, &hf_ain_calledPartyStationType, BER_CLASS_CON, 16, BER_FLAGS_NOOWNTAG, dissect_ain_CalledPartyStationType },
7868 { 15, &hf_ain_callingGeodeticLocation, BER_CLASS_CON, 162, BER_FLAGS_NOOWNTAG, dissect_ain_CallingGeodeticLocation },
7869 { 16, &hf_ain_callingPartyBGID, BER_CLASS_CON, 17, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyBGID },
7870 { 17, &hf_ain_callingPartyID , BER_CLASS_CON, 18, BER_FLAGS_NOOWNTAG, dissect_ain_CallingPartyID },
7871 { 18, &hf_ain_callType , BER_CLASS_CON, 165, BER_FLAGS_NOOWNTAG, dissect_ain_CallType },
7872 { 19, &hf_ain_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_NOOWNTAG, dissect_ain_ChargeNumber },
7873 { 20, &hf_ain_chargePartyStationType, BER_CLASS_CON, 20, BER_FLAGS_NOOWNTAG, dissect_ain_ChargePartyStationType },
7874 { 21, &hf_ain_clearCause , BER_CLASS_CON, 21, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCause },
7875 { 22, &hf_ain_collectedAddressInfo, BER_CLASS_CON, 22, BER_FLAGS_NOOWNTAG, dissect_ain_CollectedAddressInfo },
7876 { 23, &hf_ain_collectedDigits , BER_CLASS_CON, 23, BER_FLAGS_NOOWNTAG, dissect_ain_CollectedDigits },
7877 { 24, &hf_ain_controllingLegTreatment, BER_CLASS_CON, 24, BER_FLAGS_NOOWNTAG, dissect_ain_ControllingLegTreatment },
7878 { 25, &hf_ain_disconnectFlag , BER_CLASS_CON, 25, BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectFlag },
7879 { 26, &hf_ain_displayText , BER_CLASS_CON, 26, BER_FLAGS_NOOWNTAG, dissect_ain_DisplayText },
7880 { 27, &hf_ain_dTMFDigitsDetected, BER_CLASS_CON, 153, BER_FLAGS_NOOWNTAG, dissect_ain_DTMFDigitsDetected },
7881 { 28, &hf_ain_facilityGID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityGID },
7882 { 29, &hf_ain_facilityMemberID, BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityMemberID },
7883 { 30, &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
7884 { 31, &hf_ain_genericName , BER_CLASS_CON, 33, BER_FLAGS_NOOWNTAG, dissect_ain_GenericName },
7885 { 32, &hf_ain_lata , BER_CLASS_CON, 35, BER_FLAGS_NOOWNTAG, dissect_ain_Lata },
7886 { 33, &hf_ain_oDTMFDigitsString, BER_CLASS_CON, 154, BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFDigitsString },
7887 { 34, &hf_ain_oDTMFNumberofDigits, BER_CLASS_CON, 155, BER_FLAGS_NOOWNTAG, dissect_ain_ODTMFNumberOfDigits },
7888 { 35, &hf_ain_originalCalledPartyID, BER_CLASS_CON, 36, BER_FLAGS_NOOWNTAG, dissect_ain_OriginalCalledPartyID },
7889 { 36, &hf_ain_outpulseNumber , BER_CLASS_CON, 37, BER_FLAGS_NOOWNTAG, dissect_ain_OutpulseNumber },
7890 { 37, &hf_ain_overflowBillingIndicator, BER_CLASS_CON, 38, BER_FLAGS_NOOWNTAG, dissect_ain_OverflowBillingIndicator },
7891 { 38, &hf_ain_passiveLegTreatment, BER_CLASS_CON, 39, BER_FLAGS_NOOWNTAG, dissect_ain_PassiveLegTreatment },
7892 { 39, &hf_ain_partyID , BER_CLASS_CON, 159, BER_FLAGS_NOOWNTAG, dissect_ain_PartyID },
7893 { 40, &hf_ain_partyOnHold , BER_CLASS_CON, 146, BER_FLAGS_NOOWNTAG, dissect_ain_PartyOnHold },
7894 { 41, &hf_ain_primaryBillingIndicator, BER_CLASS_CON, 40, BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryBillingIndicator },
7895 { 42, &hf_ain_carrier , BER_CLASS_CON, 41, BER_FLAGS_NOOWNTAG, dissect_ain_Carrier },
7896 { 43, &hf_ain_primaryTrunkGroup, BER_CLASS_CON, 42, BER_FLAGS_NOOWNTAG, dissect_ain_PrimaryTrunkGroup },
7897 { 44, &hf_ain_redirectingPartyID, BER_CLASS_CON, 43, BER_FLAGS_NOOWNTAG, dissect_ain_RedirectingPartyID },
7898 { 45, &hf_ain_redirectionInformation, BER_CLASS_CON, 44, BER_FLAGS_NOOWNTAG, dissect_ain_RedirectionInformation },
7899 { 46, &hf_ain_resourceType , BER_CLASS_CON, 45, BER_FLAGS_NOOWNTAG, dissect_ain_ResourceType },
7900 { 47, &hf_ain_secondAlternateBillingIndicator, BER_CLASS_CON, 46, BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateBillingIndicator },
7901 { 48, &hf_ain_secondAlternateCarrier, BER_CLASS_CON, 47, BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateCarrier },
7902 { 49, &hf_ain_secondAlternateTrunkGroup, BER_CLASS_CON, 48, BER_FLAGS_NOOWNTAG, dissect_ain_SecondAlternateTrunkGroup },
7903 { 50, &hf_ain_spid , BER_CLASS_CON, 49, BER_FLAGS_NOOWNTAG, dissect_ain_Spid },
7904 { 51, &hf_ain_sSPResponseMessageTimerT1, BER_CLASS_CON, 166, BER_FLAGS_NOOWNTAG, dissect_ain_SSPResponseMessageTimerT1 },
7905 { 52, &hf_ain_strParameterBlock, BER_CLASS_CON, 50, BER_FLAGS_NOOWNTAG, dissect_ain_StrParameterBlock },
7906 { 53, &hf_ain_tcm , BER_CLASS_CON, 51, BER_FLAGS_NOOWNTAG, dissect_ain_Tcm },
7907 { 54, &hf_ain_tDTMFDigitString, BER_CLASS_CON, 157, BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFDigitString },
7908 { 55, &hf_ain_tDTMFNumberOfDigits, BER_CLASS_CON, 158, BER_FLAGS_NOOWNTAG, dissect_ain_TDTMFNumberOfDigits },
7909 { 56, &hf_ain_timerUpdated , BER_CLASS_CON, 167, BER_FLAGS_NOOWNTAG, dissect_ain_TimerUpdated },
7910 { 57, &hf_ain_triggerCriteriaType, BER_CLASS_CON, 52, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaType },
7911 { 58, &hf_ain_triggerInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerInformation },
7912 { 59, &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
7913 { 60, &hf_ain_verticalServiceCode, BER_CLASS_CON, 54, BER_FLAGS_NOOWNTAG, dissect_ain_VerticalServiceCode },
7914 { 61, &hf_ain_connectTime , BER_CLASS_CON, 58, BER_FLAGS_NOOWNTAG, dissect_ain_ConnectTime },
7915 { 62, &hf_ain_controlCauseIndicator, BER_CLASS_CON, 59, BER_FLAGS_NOOWNTAG, dissect_ain_ControlCauseIndicator },
7916 { 63, &hf_ain_echoData , BER_CLASS_CON, 60, BER_FLAGS_NOOWNTAG, dissect_ain_EchoData },
7917 { 64, &hf_ain_facilityStatus , BER_CLASS_CON, 61, BER_FLAGS_NOOWNTAG, dissect_ain_FacilityStatus },
7918 { 65, &hf_ain_gapDuration , BER_CLASS_CON, 62, BER_FLAGS_NOOWNTAG, dissect_ain_GapDuration },
7919 { 66, &hf_ain_gapInterval , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_GapInterval },
7920 { 67, &hf_ain_globalTitleAddress, BER_CLASS_CON, 69, BER_FLAGS_NOOWNTAG, dissect_ain_GlobalTitleAddress },
7921 { 68, &hf_ain_monitorTime , BER_CLASS_CON, 65, BER_FLAGS_NOOWNTAG, dissect_ain_MonitorTime },
7922 { 69, &hf_ain_statusCause , BER_CLASS_CON, 66, BER_FLAGS_NOOWNTAG, dissect_ain_StatusCause },
7923 { 70, &hf_ain_terminationIndicator, BER_CLASS_CON, 67, BER_FLAGS_NOOWNTAG, dissect_ain_TerminationIndicator },
7924 { 71, &hf_ain_translationType , BER_CLASS_CON, 70, BER_FLAGS_NOOWNTAG, dissect_ain_TranslationType },
7925 { 72, &hf_ain_triggerCriteriaFlag, BER_CLASS_CON, 68, BER_FLAGS_NOOWNTAG, dissect_ain_TriggerCriteriaFlag },
7926 { 73, &hf_ain_tSTRCTimer , BER_CLASS_CON, 156, BER_FLAGS_NOOWNTAG, dissect_ain_TSTRCTimer },
7927 { 74, &hf_ain_aMAMeasure , BER_CLASS_CON, 71, BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasure },
7928 { 75, &hf_ain_aMAMeasurement , BER_CLASS_CON, 73, BER_FLAGS_NOOWNTAG, dissect_ain_AMAMeasurement },
7929 { 76, &hf_ain_clearCauseData , BER_CLASS_CON, 74, BER_FLAGS_NOOWNTAG, dissect_ain_ClearCauseData },
7930 { 77, &hf_ain_envelopContent , BER_CLASS_CON, 75, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopContent },
7931 { 78, &hf_ain_iPReturnBlock , BER_CLASS_CON, 78, BER_FLAGS_NOOWNTAG, dissect_ain_IPReturnBlock },
7932 { 79, &hf_ain_sap , BER_CLASS_CON, 81, BER_FLAGS_NOOWNTAG, dissect_ain_Sap },
7933 { 80, &hf_ain_aMASetHexABIndicator, BER_CLASS_CON, 82, BER_FLAGS_NOOWNTAG, dissect_ain_AMASetHexABIndicator },
7934 { 81, &hf_ain_serviceContext , BER_CLASS_CON, 83, BER_FLAGS_NOOWNTAG, dissect_ain_ServiceContext },
7935 { 82, &hf_ain_extensionParameter, BER_CLASS_CON, 84, BER_FLAGS_IMPLTAG, dissect_ain_ExtensionParameter },
7936 { 83, &hf_ain_securityEnvelope, BER_CLASS_CON, 85, BER_FLAGS_NOOWNTAG, dissect_ain_SecurityEnvelope },
7937 { 84, &hf_ain_destinationAddress, BER_CLASS_CON, 86, BER_FLAGS_NOOWNTAG, dissect_ain_DestinationAddress },
7938 { 85, &hf_ain_derviceProviderID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_ServiceProviderID },
7939 { 86, &hf_ain_aMABillingFeature, BER_CLASS_CON, 88, BER_FLAGS_NOOWNTAG, dissect_ain_AMABillingFeature },
7940 { 87, &hf_ain_aMASequenceNumber, BER_CLASS_CON, 89, BER_FLAGS_NOOWNTAG, dissect_ain_AMASequenceNumber },
7941 { 88, &hf_ain_applicationIndicator, BER_CLASS_CON, 90, BER_FLAGS_NOOWNTAG, dissect_ain_ApplicationIndicator },
7942 { 89, &hf_ain_oNoAnswerTimer , BER_CLASS_CON, 91, BER_FLAGS_NOOWNTAG, dissect_ain_ONoAnswerTimer },
7943 { 90, &hf_ain_eDPRequest , BER_CLASS_CON, 92, BER_FLAGS_NOOWNTAG, dissect_ain_EDPRequest },
7944 { 91, &hf_ain_eDPNotification , BER_CLASS_CON, 93, BER_FLAGS_NOOWNTAG, dissect_ain_EDPNotification },
7945 { 92, &hf_ain_busyType , BER_CLASS_CON, 94, BER_FLAGS_NOOWNTAG, dissect_ain_BusyType },
7946 { 93, &hf_ain_aMABAFModules , BER_CLASS_CON, 95, BER_FLAGS_NOOWNTAG, dissect_ain_AMABAFModules },
7947 { 94, &hf_ain_sTRConnection , BER_CLASS_CON, 96, BER_FLAGS_NOOWNTAG, dissect_ain_STRConnection },
7948 { 95, &hf_ain_errorCause , BER_CLASS_CON, 56, BER_FLAGS_NOOWNTAG, dissect_ain_ErrorCause },
7949 { 96, &hf_ain_resultCause , BER_CLASS_CON, 151, BER_FLAGS_NOOWNTAG, dissect_ain_ResultCause },
7950 { 97, &hf_ain_cTRConnection , BER_CLASS_CON, 141, BER_FLAGS_NOOWNTAG, dissect_ain_CTRConnection },
7951 { 98, &hf_ain_rTPReroutingNumber, BER_CLASS_CON, 143, BER_FLAGS_NOOWNTAG, dissect_ain_RTPReroutingNumber },
7952 { 99, &hf_ain_rTPServiceIndicator, BER_CLASS_CON, 144, BER_FLAGS_NOOWNTAG, dissect_ain_RTPServiceIndicator },
7953 { 100, &hf_ain_administrableObject, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ain_AdministrableObject },
7954 { 101, &hf_ain_envelopeEncodingAuthority, BER_CLASS_CON, 98, BER_FLAGS_NOOWNTAG, dissect_ain_EnvelopeEncodingAuthority },
7955 { 102, &hf_ain_tNoAnswerTimer , BER_CLASS_CON, 99, BER_FLAGS_NOOWNTAG, dissect_ain_TNoAnswerTimer },
7956 { 103, &hf_ain_editListType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ain_EditListType },
7957 { 104, &hf_ain_aCGGlobalOverride, BER_CLASS_CON, 110, BER_FLAGS_NOOWNTAG, dissect_ain_ACGGlobalOverride },
7958 { 105, &hf_ain_notificationIndicator, BER_CLASS_CON, 111, BER_FLAGS_IMPLTAG, dissect_ain_NotificationIndicator },
7959 { 106, &hf_ain_aMALineNumber , BER_CLASS_CON, 9, BER_FLAGS_NOOWNTAG, dissect_ain_AMALineNumber },
7960 { 107, &hf_ain_aMADigitsDialedWC, BER_CLASS_CON, 8, BER_FLAGS_NOOWNTAG, dissect_ain_AMADigitsDialedWC },
7961 { 108, &hf_ain_carrierUsage , BER_CLASS_CON, 79, BER_FLAGS_NOOWNTAG, dissect_ain_CarrierUsage },
7962 { 109, &hf_ain_closeCause , BER_CLASS_CON, 72, BER_FLAGS_NOOWNTAG, dissect_ain_CloseCause },
7963 { 110, &hf_ain_dPConverter , BER_CLASS_CON, 76, BER_FLAGS_NOOWNTAG, dissect_ain_DPConverter },
7964 { 111, &hf_ain_failureCauseData, BER_CLASS_CON, 112, BER_FLAGS_NOOWNTAG, dissect_ain_FailureCauseData },
7965 { 112, &hf_ain_genericAddress , BER_CLASS_CON, 80, BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddress },
7966 { 113, &hf_ain_srhrGroupID , BER_CLASS_CON, 77, BER_FLAGS_NOOWNTAG, dissect_ain_SrhrGroupID },
7967 { 114, &hf_ain_genericAddressList, BER_CLASS_CON, 107, BER_FLAGS_NOOWNTAG, dissect_ain_GenericAddressList },
7968 { 115, &hf_ain_networkSpecificFacilities, BER_CLASS_CON, 108, BER_FLAGS_NOOWNTAG, dissect_ain_NetworkSpecificFacilities },
7969 { 116, &hf_ain_forwardCallIndicator, BER_CLASS_CON, 113, BER_FLAGS_NOOWNTAG, dissect_ain_ForwardCallIndicator },
7970 { 117, &hf_ain_alternateDialingPlanInd, BER_CLASS_CON, 115, BER_FLAGS_NOOWNTAG, dissect_ain_AlternateDialingPlanInd },
7971 { 118, &hf_ain_disconnectCause , BER_CLASS_CON, 116, BER_FLAGS_NOOWNTAG, dissect_ain_DisconnectCause },
7972 { 119, &hf_ain_aMAServiceProviderID, BER_CLASS_CON, 101, BER_FLAGS_NOOWNTAG, dissect_ain_AMAServiceProviderID },
7973 { 120, &hf_ain_congestionLevel , BER_CLASS_CON, 117, BER_FLAGS_NOOWNTAG, dissect_ain_CongestionLevel },
7974 { 121, &hf_ain_controlEncountered, BER_CLASS_CON, 127, BER_FLAGS_NOOWNTAG, dissect_ain_ControlEncountered },
7975 { 122, &hf_ain_infoProvided , BER_CLASS_CON, 100, BER_FLAGS_NOOWNTAG, dissect_ain_InfoProvided },
7976 { 123, &hf_ain_provideInfo , BER_CLASS_CON, 114, BER_FLAGS_NOOWNTAG, dissect_ain_ProvideInfo },
7977 { 124, &hf_ain_signalingPointCode, BER_CLASS_CON, 142, BER_FLAGS_NOOWNTAG, dissect_ain_SignalingPointCode },
7978 { 125, &hf_ain_subsystemNumber , BER_CLASS_CON, 130, BER_FLAGS_NOOWNTAG, dissect_ain_SubsystemNumber },
7979 { 126, &hf_ain_notificationDuration, BER_CLASS_CON, 128, BER_FLAGS_NOOWNTAG, dissect_ain_NotificationDuration },
7980 { 127, &hf_ain_wakeUpDuration , BER_CLASS_CON, 131, BER_FLAGS_NOOWNTAG, dissect_ain_WakeUpDuration },
7981 { 128, &hf_ain_oSIIndicator , BER_CLASS_CON, 129, BER_FLAGS_NOOWNTAG, dissect_ain_OSIIndicator },
7982 { 129, &hf_ain_legID , BER_CLASS_CON, 132, BER_FLAGS_NOOWNTAG, dissect_ain_LegID },
7983 { 130, &hf_ain_ccID , BER_CLASS_CON, 133, BER_FLAGS_NOOWNTAG, dissect_ain_CcID },
7984 { 131, &hf_ain_bCMType , BER_CLASS_CON, 134, BER_FLAGS_NOOWNTAG, dissect_ain_BCMType },
7985 { 132, &hf_ain_pointInCall , BER_CLASS_CON, 135, BER_FLAGS_NOOWNTAG, dissect_ain_PointInCall },
7986 { 133, &hf_ain_featureActivatorID, BER_CLASS_CON, 136, BER_FLAGS_NOOWNTAG, dissect_ain_FeatureActivatorID },
7987 { 134, &hf_ain_csID , BER_CLASS_CON, 137, BER_FLAGS_NOOWNTAG, dissect_ain_CsID },
7988 { 135, &hf_ain_lampTreatment , BER_CLASS_CON, 138, BER_FLAGS_NOOWNTAG, dissect_ain_LampTreatment },
7989 { 136, &hf_ain_timeoutTimer , BER_CLASS_CON, 139, BER_FLAGS_NOOWNTAG, dissect_ain_TimeoutTimer },
7990 { 137, &hf_ain_transID , BER_CLASS_CON, 163, BER_FLAGS_NOOWNTAG, dissect_ain_TransID },
7991 { 138, &hf_ain_actResult , BER_CLASS_CON, 164, BER_FLAGS_NOOWNTAG, dissect_ain_ActResult },
7992 { 139, &hf_ain_extendedRinging , BER_CLASS_CON, 146, BER_FLAGS_NOOWNTAG, dissect_ain_ExtendedRinging },
7993 { 140, &hf_ain_jurisdictionInformation, BER_CLASS_CON, 147, BER_FLAGS_NOOWNTAG, dissect_ain_JurisdictionInformation },
7994 { 141, &hf_ain_prefix , BER_CLASS_CON, 148, BER_FLAGS_NOOWNTAG, dissect_ain_Prefix },
7995 { 142, &hf_ain_genericDigitsList, BER_CLASS_CON, 150, BER_FLAGS_NOOWNTAG, dissect_ain_GenericDigitsList },
7996 { 143, &hf_ain_applyRestrictions, BER_CLASS_CON, 152, BER_FLAGS_NOOWNTAG, dissect_ain_ApplyRestrictions },
7997 { 0, NULL, 0, 0, 0, NULL }
8000 static int
8001 dissect_ain_Parms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8002 offset = dissect_ber_choice(actx, tree, tvb, offset,
8003 Parms_choice, hf_index, ett_ain_Parms,
8004 NULL);
8006 return offset;
8010 static const ber_sequence_t InvParms_sequence_of[1] = {
8011 { &hf_ain_InvParms_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Parms },
8014 static int
8015 dissect_ain_InvParms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8016 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8017 InvParms_sequence_of, hf_index, ett_ain_InvParms);
8019 return offset;
8023 static const ber_sequence_t FailedMessage_U_sequence[] = {
8024 { &hf_ain_opCode , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_INTEGER },
8025 { &hf_ain_parameter , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_OCTET_STRING },
8026 { &hf_ain_invParms , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ain_InvParms },
8027 { NULL, 0, 0, 0, NULL }
8030 static int
8031 dissect_ain_FailedMessage_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8032 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8033 FailedMessage_U_sequence, hf_index, ett_ain_FailedMessage_U);
8035 return offset;
8040 static int
8041 dissect_ain_FailedMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8042 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8043 hf_index, BER_CLASS_CON, 57, true, dissect_ain_FailedMessage_U);
8045 return offset;
8049 static const ber_sequence_t ApplicationErrorString_U_sequence[] = {
8050 { &hf_ain_errorCause , BER_CLASS_CON, 56, BER_FLAGS_NOOWNTAG, dissect_ain_ErrorCause },
8051 { &hf_ain_failedMessage , BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailedMessage },
8052 { &hf_ain_userID , BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_UserID },
8053 { NULL, 0, 0, 0, NULL }
8056 static int
8057 dissect_ain_ApplicationErrorString_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8058 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8059 ApplicationErrorString_U_sequence, hf_index, ett_ain_ApplicationErrorString_U);
8061 return offset;
8066 static int
8067 dissect_ain_ApplicationErrorString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8068 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8069 hf_index, BER_CLASS_CON, 55, true, dissect_ain_ApplicationErrorString_U);
8071 return offset;
8075 static const ber_sequence_t PAR_applicationError_sequence[] = {
8076 { &hf_ain_applicationErrorString, BER_CLASS_CON, 55, BER_FLAGS_NOOWNTAG, dissect_ain_ApplicationErrorString },
8077 { &hf_ain_extensionParameter, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ExtensionParameter },
8078 { NULL, 0, 0, 0, NULL }
8081 static int
8082 dissect_ain_PAR_applicationError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8083 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8084 PAR_applicationError_sequence, hf_index, ett_ain_PAR_applicationError);
8086 return offset;
8090 static const ber_sequence_t PAR_failureReport_sequence[] = {
8091 { &hf_ain_failureCause , BER_CLASS_CON, 32, BER_FLAGS_NOOWNTAG, dissect_ain_FailureCause },
8092 { &hf_ain_failureCauseData, BER_CLASS_CON, 112, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_FailureCauseData },
8093 { &hf_ain_extensionParameter, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_ExtensionParameter },
8094 { NULL, 0, 0, 0, NULL }
8097 static int
8098 dissect_ain_PAR_failureReport(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8099 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8100 PAR_failureReport_sequence, hf_index, ett_ain_PAR_failureReport);
8102 return offset;
8107 static int
8108 dissect_ain_T_local(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8109 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8110 &opcode);
8112 if (ain_opcode_type == AIN_OPCODE_RETURN_ERROR){
8113 errorCode = opcode;
8114 col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str(errorCode, ain_err_code_string_vals, "Unknown AIN error (%u)"));
8115 col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
8116 col_set_fence(actx->pinfo->cinfo, COL_INFO);
8117 }else{
8118 col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str(opcode, ain_opr_code_strings, "Unknown AIN (%u)"));
8119 col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
8120 col_set_fence(actx->pinfo->cinfo, COL_INFO);
8124 return offset;
8128 static const value_string ain_Code_vals[] = {
8129 { 0, "local" },
8130 { 1, "global" },
8131 { 0, NULL }
8134 static const ber_choice_t Code_choice[] = {
8135 { 0, &hf_ain_local , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_T_local },
8136 { 1, &hf_ain_global , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ain_OBJECT_IDENTIFIER },
8137 { 0, NULL, 0, 0, 0, NULL }
8140 static int
8141 dissect_ain_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8142 offset = dissect_ber_choice(actx, tree, tvb, offset,
8143 Code_choice, hf_index, ett_ain_Code,
8144 NULL);
8146 return offset;
8150 static const value_string ain_InvokeId_vals[] = {
8151 { 0, "present" },
8152 { 1, "absent" },
8153 { 0, NULL }
8156 static const ber_choice_t InvokeId_choice[] = {
8157 { 0, &hf_ain_present_01 , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ain_INTEGER },
8158 { 1, &hf_ain_absent , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_ain_NULL },
8159 { 0, NULL, 0, 0, 0, NULL }
8162 static int
8163 dissect_ain_InvokeId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8164 offset = dissect_ber_choice(actx, tree, tvb, offset,
8165 InvokeId_choice, hf_index, ett_ain_InvokeId,
8166 NULL);
8168 return offset;
8173 static int
8174 dissect_ain_InvokeId_present(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8175 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8176 NULL);
8178 return offset;
8183 static int
8184 dissect_ain_T_present(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8185 offset = dissect_ain_InvokeId_present(implicit_tag, tvb, offset, actx, tree, hf_index);
8187 return offset;
8191 static const value_string ain_T_linkedId_vals[] = {
8192 { 0, "present" },
8193 { 1, "absent" },
8194 { 0, NULL }
8197 static const ber_choice_t T_linkedId_choice[] = {
8198 { 0, &hf_ain_present , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_T_present },
8199 { 1, &hf_ain_absent , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_NULL },
8200 { 0, NULL, 0, 0, 0, NULL }
8203 static int
8204 dissect_ain_T_linkedId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8205 offset = dissect_ber_choice(actx, tree, tvb, offset,
8206 T_linkedId_choice, hf_index, ett_ain_T_linkedId,
8207 NULL);
8209 return offset;
8214 static int
8215 dissect_ain_T_argument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8217 offset = dissect_invokeData(tree, tvb, offset, actx);
8220 return offset;
8224 static const ber_sequence_t Invoke_sequence[] = {
8225 { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
8226 { &hf_ain_linkedId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_T_linkedId },
8227 { &hf_ain_opcode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Code },
8228 { &hf_ain_argument , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_T_argument },
8229 { NULL, 0, 0, 0, NULL }
8232 static int
8233 dissect_ain_Invoke(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8235 ain_opcode_type=AIN_OPCODE_INVOKE;
8237 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8238 Invoke_sequence, hf_index, ett_ain_Invoke);
8240 return offset;
8245 static int
8246 dissect_ain_T_result_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8248 offset = dissect_returnResultData(tree, tvb, offset, actx);
8251 return offset;
8255 static const ber_sequence_t T_result_sequence[] = {
8256 { &hf_ain_opcode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Code },
8257 { &hf_ain_result_01 , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ain_T_result_01 },
8258 { NULL, 0, 0, 0, NULL }
8261 static int
8262 dissect_ain_T_result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8263 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8264 T_result_sequence, hf_index, ett_ain_T_result);
8266 return offset;
8270 static const ber_sequence_t ReturnResult_sequence[] = {
8271 { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
8272 { &hf_ain_result , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_T_result },
8273 { NULL, 0, 0, 0, NULL }
8276 static int
8277 dissect_ain_ReturnResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8279 ain_opcode_type=AIN_OPCODE_RETURN_RESULT;
8281 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8282 ReturnResult_sequence, hf_index, ett_ain_ReturnResult);
8284 return offset;
8289 static int
8290 dissect_ain_T_parameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8292 offset = dissect_returnErrorData(tree, tvb, offset, actx);
8295 return offset;
8299 static const ber_sequence_t ReturnError_sequence[] = {
8300 { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
8301 { &hf_ain_errcode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_Code },
8302 { &hf_ain_parameter_01 , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ain_T_parameter },
8303 { NULL, 0, 0, 0, NULL }
8306 static int
8307 dissect_ain_ReturnError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8309 ain_opcode_type=AIN_OPCODE_RETURN_ERROR;
8311 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8312 ReturnError_sequence, hf_index, ett_ain_ReturnError);
8314 return offset;
8318 static const value_string ain_GeneralProblem_vals[] = {
8319 { 0, "unrecognizedPDU" },
8320 { 1, "mistypedPDU" },
8321 { 2, "badlyStructuredPDU" },
8322 { 0, NULL }
8326 static int
8327 dissect_ain_GeneralProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8328 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8329 NULL);
8331 return offset;
8335 static const value_string ain_InvokeProblem_vals[] = {
8336 { 0, "duplicateInvocation" },
8337 { 1, "unrecognizedOperation" },
8338 { 2, "mistypedArgument" },
8339 { 3, "resourceLimitation" },
8340 { 4, "releaseInProgress" },
8341 { 5, "unrecognizedLinkedId" },
8342 { 6, "linkedResponseUnexpected" },
8343 { 7, "unexpectedLinkedOperation" },
8344 { 0, NULL }
8348 static int
8349 dissect_ain_InvokeProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8350 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8351 NULL);
8353 return offset;
8357 static const value_string ain_ReturnResultProblem_vals[] = {
8358 { 0, "unrecognizedInvocation" },
8359 { 1, "resultResponseUnexpected" },
8360 { 2, "mistypedResult" },
8361 { 0, NULL }
8365 static int
8366 dissect_ain_ReturnResultProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8367 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8368 NULL);
8370 return offset;
8374 static const value_string ain_ReturnErrorProblem_vals[] = {
8375 { 0, "unrecognizedInvocation" },
8376 { 1, "errorResponseUnexpected" },
8377 { 2, "unrecognizedError" },
8378 { 3, "unexpectedError" },
8379 { 4, "mistypedParameter" },
8380 { 0, NULL }
8384 static int
8385 dissect_ain_ReturnErrorProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8386 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8387 NULL);
8389 return offset;
8393 static const value_string ain_T_problem_vals[] = {
8394 { 0, "general" },
8395 { 1, "invoke" },
8396 { 2, "returnResult" },
8397 { 3, "returnError" },
8398 { 0, NULL }
8401 static const ber_choice_t T_problem_choice[] = {
8402 { 0, &hf_ain_general , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ain_GeneralProblem },
8403 { 1, &hf_ain_invokeproblem , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_InvokeProblem },
8404 { 2, &hf_ain_returnResult_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ReturnResultProblem },
8405 { 3, &hf_ain_returnError_01 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ReturnErrorProblem },
8406 { 0, NULL, 0, 0, 0, NULL }
8409 static int
8410 dissect_ain_T_problem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8411 offset = dissect_ber_choice(actx, tree, tvb, offset,
8412 T_problem_choice, hf_index, ett_ain_T_problem,
8413 NULL);
8415 return offset;
8419 static const ber_sequence_t Reject_sequence[] = {
8420 { &hf_ain_invokeId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_InvokeId },
8421 { &hf_ain_problem , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ain_T_problem },
8422 { NULL, 0, 0, 0, NULL }
8425 static int
8426 dissect_ain_Reject(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8428 ain_opcode_type=AIN_OPCODE_REJECT;
8430 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8431 Reject_sequence, hf_index, ett_ain_Reject);
8433 return offset;
8437 static const ber_choice_t ROS_choice[] = {
8438 { 1, &hf_ain_invoke , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ain_Invoke },
8439 { 2, &hf_ain_returnResult , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ain_ReturnResult },
8440 { 3, &hf_ain_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ain_ReturnError },
8441 { 4, &hf_ain_reject , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ain_Reject },
8442 { 0, NULL, 0, 0, 0, NULL }
8445 static int
8446 dissect_ain_ROS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8447 offset = dissect_ber_choice(actx, tree, tvb, offset,
8448 ROS_choice, hf_index, ett_ain_ROS,
8449 NULL);
8451 return offset;
8454 /*--- PDUs ---*/
8456 static int dissect_CallInfoFromResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8457 int offset = 0;
8458 asn1_ctx_t asn1_ctx;
8459 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8460 offset = dissect_ain_CallInfoFromResourceArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CallInfoFromResourceArg_PDU);
8461 return offset;
8463 static int dissect_CloseArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8464 int offset = 0;
8465 asn1_ctx_t asn1_ctx;
8466 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8467 offset = dissect_ain_CloseArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CloseArg_PDU);
8468 return offset;
8470 static int dissect_CTRClearArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8471 int offset = 0;
8472 asn1_ctx_t asn1_ctx;
8473 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8474 offset = dissect_ain_CTRClearArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CTRClearArg_PDU);
8475 return offset;
8477 static int dissect_FailureOutcomeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8478 int offset = 0;
8479 asn1_ctx_t asn1_ctx;
8480 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8481 offset = dissect_ain_FailureOutcomeArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_FailureOutcomeArg_PDU);
8482 return offset;
8484 static int dissect_InfoAnalyzedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8485 int offset = 0;
8486 asn1_ctx_t asn1_ctx;
8487 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8488 offset = dissect_ain_InfoAnalyzedArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_InfoAnalyzedArg_PDU);
8489 return offset;
8491 static int dissect_InfoCollectedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8492 int offset = 0;
8493 asn1_ctx_t asn1_ctx;
8494 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8495 offset = dissect_ain_InfoCollectedArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_InfoCollectedArg_PDU);
8496 return offset;
8498 static int dissect_NetworkBusyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8499 int offset = 0;
8500 asn1_ctx_t asn1_ctx;
8501 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8502 offset = dissect_ain_NetworkBusyArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_NetworkBusyArg_PDU);
8503 return offset;
8505 static int dissect_OAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8506 int offset = 0;
8507 asn1_ctx_t asn1_ctx;
8508 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8509 offset = dissect_ain_OAnswerArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OAnswerArg_PDU);
8510 return offset;
8512 static int dissect_OAbandonArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8513 int offset = 0;
8514 asn1_ctx_t asn1_ctx;
8515 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8516 offset = dissect_ain_OAbandonArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OAbandonArg_PDU);
8517 return offset;
8519 static int dissect_ODisconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8520 int offset = 0;
8521 asn1_ctx_t asn1_ctx;
8522 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8523 offset = dissect_ain_ODisconnectArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ODisconnectArg_PDU);
8524 return offset;
8526 static int dissect_OMidCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8527 int offset = 0;
8528 asn1_ctx_t asn1_ctx;
8529 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8530 offset = dissect_ain_OMidCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OMidCallArg_PDU);
8531 return offset;
8533 static int dissect_ONoAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8534 int offset = 0;
8535 asn1_ctx_t asn1_ctx;
8536 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8537 offset = dissect_ain_ONoAnswerArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ONoAnswerArg_PDU);
8538 return offset;
8540 static int dissect_OSuspendedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8541 int offset = 0;
8542 asn1_ctx_t asn1_ctx;
8543 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8544 offset = dissect_ain_OSuspendedArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OSuspendedArg_PDU);
8545 return offset;
8547 static int dissect_OTermSeizedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8548 int offset = 0;
8549 asn1_ctx_t asn1_ctx;
8550 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8551 offset = dissect_ain_OTermSeizedArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OTermSeizedArg_PDU);
8552 return offset;
8554 static int dissect_OriginationAttemptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8555 int offset = 0;
8556 asn1_ctx_t asn1_ctx;
8557 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8558 offset = dissect_ain_OriginationAttemptArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OriginationAttemptArg_PDU);
8559 return offset;
8561 static int dissect_ResourceClearArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8562 int offset = 0;
8563 asn1_ctx_t asn1_ctx;
8564 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8565 offset = dissect_ain_ResourceClearArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ResourceClearArg_PDU);
8566 return offset;
8568 static int dissect_RES_resourceClear_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8569 int offset = 0;
8570 asn1_ctx_t asn1_ctx;
8571 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8572 offset = dissect_ain_RES_resourceClear(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_resourceClear_PDU);
8573 return offset;
8575 static int dissect_SuccessOutcomeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8576 int offset = 0;
8577 asn1_ctx_t asn1_ctx;
8578 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8579 offset = dissect_ain_SuccessOutcomeArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_SuccessOutcomeArg_PDU);
8580 return offset;
8582 static int dissect_TAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8583 int offset = 0;
8584 asn1_ctx_t asn1_ctx;
8585 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8586 offset = dissect_ain_TAnswerArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TAnswerArg_PDU);
8587 return offset;
8589 static int dissect_TBusyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8590 int offset = 0;
8591 asn1_ctx_t asn1_ctx;
8592 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8593 offset = dissect_ain_TBusyArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TBusyArg_PDU);
8594 return offset;
8596 static int dissect_TDisconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8597 int offset = 0;
8598 asn1_ctx_t asn1_ctx;
8599 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8600 offset = dissect_ain_TDisconnectArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TDisconnectArg_PDU);
8601 return offset;
8603 static int dissect_TDTMFEnteredArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8604 int offset = 0;
8605 asn1_ctx_t asn1_ctx;
8606 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8607 offset = dissect_ain_TDTMFEnteredArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TDTMFEnteredArg_PDU);
8608 return offset;
8610 static int dissect_TMidCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8611 int offset = 0;
8612 asn1_ctx_t asn1_ctx;
8613 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8614 offset = dissect_ain_TMidCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TMidCallArg_PDU);
8615 return offset;
8617 static int dissect_TNoAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8618 int offset = 0;
8619 asn1_ctx_t asn1_ctx;
8620 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8621 offset = dissect_ain_TNoAnswerArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TNoAnswerArg_PDU);
8622 return offset;
8624 static int dissect_TerminationAttemptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8625 int offset = 0;
8626 asn1_ctx_t asn1_ctx;
8627 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8628 offset = dissect_ain_TerminationAttemptArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TerminationAttemptArg_PDU);
8629 return offset;
8631 static int dissect_TermResourceAvailableArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8632 int offset = 0;
8633 asn1_ctx_t asn1_ctx;
8634 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8635 offset = dissect_ain_TermResourceAvailableArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TermResourceAvailableArg_PDU);
8636 return offset;
8638 static int dissect_TimeoutArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8639 int offset = 0;
8640 asn1_ctx_t asn1_ctx;
8641 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8642 offset = dissect_ain_TimeoutArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TimeoutArg_PDU);
8643 return offset;
8645 static int dissect_AnalyzeRouteArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8646 int offset = 0;
8647 asn1_ctx_t asn1_ctx;
8648 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8649 offset = dissect_ain_AnalyzeRouteArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_AnalyzeRouteArg_PDU);
8650 return offset;
8652 static int dissect_AuthorizeTerminationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8653 int offset = 0;
8654 asn1_ctx_t asn1_ctx;
8655 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8656 offset = dissect_ain_AuthorizeTerminationArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_AuthorizeTerminationArg_PDU);
8657 return offset;
8659 static int dissect_CancelResourceEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8660 int offset = 0;
8661 asn1_ctx_t asn1_ctx;
8662 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8663 offset = dissect_ain_CancelResourceEventArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CancelResourceEventArg_PDU);
8664 return offset;
8666 static int dissect_CollectInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8667 int offset = 0;
8668 asn1_ctx_t asn1_ctx;
8669 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8670 offset = dissect_ain_CollectInformationArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CollectInformationArg_PDU);
8671 return offset;
8673 static int dissect_ConnectToResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8674 int offset = 0;
8675 asn1_ctx_t asn1_ctx;
8676 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8677 offset = dissect_ain_ConnectToResourceArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ConnectToResourceArg_PDU);
8678 return offset;
8680 static int dissect_ContinueArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8681 int offset = 0;
8682 asn1_ctx_t asn1_ctx;
8683 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8684 offset = dissect_ain_ContinueArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ContinueArg_PDU);
8685 return offset;
8687 static int dissect_CreateCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8688 int offset = 0;
8689 asn1_ctx_t asn1_ctx;
8690 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8691 offset = dissect_ain_CreateCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CreateCallArg_PDU);
8692 return offset;
8694 static int dissect_CreateCallRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8695 int offset = 0;
8696 asn1_ctx_t asn1_ctx;
8697 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8698 offset = dissect_ain_CreateCallRes(false, tvb, offset, &asn1_ctx, tree, hf_ain_CreateCallRes_PDU);
8699 return offset;
8701 static int dissect_DisconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8702 int offset = 0;
8703 asn1_ctx_t asn1_ctx;
8704 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8705 offset = dissect_ain_DisconnectArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_DisconnectArg_PDU);
8706 return offset;
8708 static int dissect_DisconnectLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8709 int offset = 0;
8710 asn1_ctx_t asn1_ctx;
8711 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8712 offset = dissect_ain_DisconnectLegArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_DisconnectLegArg_PDU);
8713 return offset;
8715 static int dissect_ForwardCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8716 int offset = 0;
8717 asn1_ctx_t asn1_ctx;
8718 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8719 offset = dissect_ain_ForwardCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ForwardCallArg_PDU);
8720 return offset;
8722 static int dissect_MergeCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8723 int offset = 0;
8724 asn1_ctx_t asn1_ctx;
8725 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8726 offset = dissect_ain_MergeCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_MergeCallArg_PDU);
8727 return offset;
8729 static int dissect_MoveLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8730 int offset = 0;
8731 asn1_ctx_t asn1_ctx;
8732 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8733 offset = dissect_ain_MoveLegArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_MoveLegArg_PDU);
8734 return offset;
8736 static int dissect_OfferCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8737 int offset = 0;
8738 asn1_ctx_t asn1_ctx;
8739 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8740 offset = dissect_ain_OfferCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OfferCallArg_PDU);
8741 return offset;
8743 static int dissect_OriginateCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8744 int offset = 0;
8745 asn1_ctx_t asn1_ctx;
8746 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8747 offset = dissect_ain_OriginateCallArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_OriginateCallArg_PDU);
8748 return offset;
8750 static int dissect_ReconnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8751 int offset = 0;
8752 asn1_ctx_t asn1_ctx;
8753 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8754 offset = dissect_ain_ReconnectArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ReconnectArg_PDU);
8755 return offset;
8757 static int dissect_SendToResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8758 int offset = 0;
8759 asn1_ctx_t asn1_ctx;
8760 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8761 offset = dissect_ain_SendToResourceArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_SendToResourceArg_PDU);
8762 return offset;
8764 static int dissect_RES_sendToResource_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8765 int offset = 0;
8766 asn1_ctx_t asn1_ctx;
8767 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8768 offset = dissect_ain_RES_sendToResource(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_sendToResource_PDU);
8769 return offset;
8771 static int dissect_SetTimerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8772 int offset = 0;
8773 asn1_ctx_t asn1_ctx;
8774 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8775 offset = dissect_ain_SetTimerArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_SetTimerArg_PDU);
8776 return offset;
8778 static int dissect_TimerUpdated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8779 int offset = 0;
8780 asn1_ctx_t asn1_ctx;
8781 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8782 offset = dissect_ain_TimerUpdated(false, tvb, offset, &asn1_ctx, tree, hf_ain_TimerUpdated_PDU);
8783 return offset;
8785 static int dissect_SplitLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8786 int offset = 0;
8787 asn1_ctx_t asn1_ctx;
8788 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8789 offset = dissect_ain_SplitLegArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_SplitLegArg_PDU);
8790 return offset;
8792 static int dissect_AcgArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8793 int offset = 0;
8794 asn1_ctx_t asn1_ctx;
8795 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8796 offset = dissect_ain_AcgArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_AcgArg_PDU);
8797 return offset;
8799 static int dissect_AcgGlobalCtrlRestoreArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8800 int offset = 0;
8801 asn1_ctx_t asn1_ctx;
8802 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8803 offset = dissect_ain_AcgGlobalCtrlRestoreArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_AcgGlobalCtrlRestoreArg_PDU);
8804 return offset;
8806 static int dissect_RES_acgGlobalCtrlRestore_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8807 int offset = 0;
8808 asn1_ctx_t asn1_ctx;
8809 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8810 offset = dissect_ain_RES_acgGlobalCtrlRestore(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_acgGlobalCtrlRestore_PDU);
8811 return offset;
8813 static int dissect_AcgOverflowArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8814 int offset = 0;
8815 asn1_ctx_t asn1_ctx;
8816 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8817 offset = dissect_ain_AcgOverflowArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_AcgOverflowArg_PDU);
8818 return offset;
8820 static int dissect_ActivityTestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8821 int offset = 0;
8822 asn1_ctx_t asn1_ctx;
8823 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8824 offset = dissect_ain_ActivityTestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ActivityTestArg_PDU);
8825 return offset;
8827 static int dissect_RES_activityTest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8828 int offset = 0;
8829 asn1_ctx_t asn1_ctx;
8830 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8831 offset = dissect_ain_RES_activityTest(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_activityTest_PDU);
8832 return offset;
8834 static int dissect_CallTypeRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8835 int offset = 0;
8836 asn1_ctx_t asn1_ctx;
8837 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8838 offset = dissect_ain_CallTypeRequestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_CallTypeRequestArg_PDU);
8839 return offset;
8841 static int dissect_RES_callTypeRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8842 int offset = 0;
8843 asn1_ctx_t asn1_ctx;
8844 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8845 offset = dissect_ain_RES_callTypeRequest(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_callTypeRequest_PDU);
8846 return offset;
8848 static int dissect_ControlRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8849 int offset = 0;
8850 asn1_ctx_t asn1_ctx;
8851 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8852 offset = dissect_ain_ControlRequestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_ControlRequestArg_PDU);
8853 return offset;
8855 static int dissect_EchoRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8856 int offset = 0;
8857 asn1_ctx_t asn1_ctx;
8858 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8859 offset = dissect_ain_EchoRequestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_EchoRequestArg_PDU);
8860 return offset;
8862 static int dissect_RES_echoRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8863 int offset = 0;
8864 asn1_ctx_t asn1_ctx;
8865 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8866 offset = dissect_ain_RES_echoRequest(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_echoRequest_PDU);
8867 return offset;
8869 static int dissect_FurnishAMAInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8870 int offset = 0;
8871 asn1_ctx_t asn1_ctx;
8872 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8873 offset = dissect_ain_FurnishAMAInformationArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_FurnishAMAInformationArg_PDU);
8874 return offset;
8876 static int dissect_MonitorForChangeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8877 int offset = 0;
8878 asn1_ctx_t asn1_ctx;
8879 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8880 offset = dissect_ain_MonitorForChangeArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_MonitorForChangeArg_PDU);
8881 return offset;
8883 static int dissect_MonitorSuccessArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8884 int offset = 0;
8885 asn1_ctx_t asn1_ctx;
8886 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8887 offset = dissect_ain_MonitorSuccessArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_MonitorSuccessArg_PDU);
8888 return offset;
8890 static int dissect_NCADataArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8891 int offset = 0;
8892 asn1_ctx_t asn1_ctx;
8893 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8894 offset = dissect_ain_NCADataArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_NCADataArg_PDU);
8895 return offset;
8897 static int dissect_NCARequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8898 int offset = 0;
8899 asn1_ctx_t asn1_ctx;
8900 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8901 offset = dissect_ain_NCARequestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_NCARequestArg_PDU);
8902 return offset;
8904 static int dissect_RES_nCARequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8905 int offset = 0;
8906 asn1_ctx_t asn1_ctx;
8907 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8908 offset = dissect_ain_RES_nCARequest(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_nCARequest_PDU);
8909 return offset;
8911 static int dissect_QueryRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8912 int offset = 0;
8913 asn1_ctx_t asn1_ctx;
8914 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8915 offset = dissect_ain_QueryRequestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_QueryRequestArg_PDU);
8916 return offset;
8918 static int dissect_RES_queryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8919 int offset = 0;
8920 asn1_ctx_t asn1_ctx;
8921 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8922 offset = dissect_ain_RES_queryRequest(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_queryRequest_PDU);
8923 return offset;
8925 static int dissect_RequestReportBCMEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8926 int offset = 0;
8927 asn1_ctx_t asn1_ctx;
8928 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8929 offset = dissect_ain_RequestReportBCMEventArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_RequestReportBCMEventArg_PDU);
8930 return offset;
8932 static int dissect_StatusReportedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8933 int offset = 0;
8934 asn1_ctx_t asn1_ctx;
8935 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8936 offset = dissect_ain_StatusReportedArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_StatusReportedArg_PDU);
8937 return offset;
8939 static int dissect_TerminationNotificationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8940 int offset = 0;
8941 asn1_ctx_t asn1_ctx;
8942 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8943 offset = dissect_ain_TerminationNotificationArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_TerminationNotificationArg_PDU);
8944 return offset;
8946 static int dissect_UpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8947 int offset = 0;
8948 asn1_ctx_t asn1_ctx;
8949 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8950 offset = dissect_ain_UpdateArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_UpdateArg_PDU);
8951 return offset;
8953 static int dissect_RES_update_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8954 int offset = 0;
8955 asn1_ctx_t asn1_ctx;
8956 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8957 offset = dissect_ain_RES_update(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_update_PDU);
8958 return offset;
8960 static int dissect_UpdateRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8961 int offset = 0;
8962 asn1_ctx_t asn1_ctx;
8963 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8964 offset = dissect_ain_UpdateRequestArg(false, tvb, offset, &asn1_ctx, tree, hf_ain_UpdateRequestArg_PDU);
8965 return offset;
8967 static int dissect_RES_updateRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8968 int offset = 0;
8969 asn1_ctx_t asn1_ctx;
8970 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8971 offset = dissect_ain_RES_updateRequest(false, tvb, offset, &asn1_ctx, tree, hf_ain_RES_updateRequest_PDU);
8972 return offset;
8974 static int dissect_PAR_applicationError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8975 int offset = 0;
8976 asn1_ctx_t asn1_ctx;
8977 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8978 offset = dissect_ain_PAR_applicationError(false, tvb, offset, &asn1_ctx, tree, hf_ain_PAR_applicationError_PDU);
8979 return offset;
8981 static int dissect_PAR_failureReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8982 int offset = 0;
8983 asn1_ctx_t asn1_ctx;
8984 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8985 offset = dissect_ain_PAR_failureReport(false, tvb, offset, &asn1_ctx, tree, hf_ain_PAR_failureReport_PDU);
8986 return offset;
8991 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
8993 switch(opcode){
8994 case 26116: /* callInfoFromResource */
8995 offset= dissect_CallInfoFromResourceArg_PDU(tvb, actx->pinfo , tree , NULL);
8996 break;
8997 case 28161: /* close */
8998 offset= dissect_CloseArg_PDU(tvb, actx->pinfo , tree , NULL);
8999 break;
9000 case 26118: /* cTRClear */
9001 offset= dissect_CTRClearArg_PDU(tvb, actx->pinfo , tree , NULL);
9002 break;
9003 case 25604: /* failureOutcome */
9004 offset= dissect_FailureOutcomeArg_PDU(tvb, actx->pinfo , tree , NULL);
9005 break;
9006 case 25603: /* infoAnalyzed */
9007 offset= dissect_InfoAnalyzedArg_PDU(tvb, actx->pinfo , tree , NULL);
9008 break;
9009 case 25602: /* infoCollected */
9010 offset= dissect_InfoCollectedArg_PDU(tvb, actx->pinfo , tree , NULL);
9011 break;
9012 case 25623: /* networkBusy */
9013 offset= dissect_NetworkBusyArg_PDU(tvb, actx->pinfo , tree , NULL);
9014 break;
9015 case 25611: /* oAnswer */
9016 offset= dissect_OAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
9017 break;
9018 case 25614: /* oAbandon */
9019 offset= dissect_OAbandonArg_PDU(tvb, actx->pinfo , tree , NULL);
9020 break;
9021 case 25626: /* oDisconnect */
9022 offset= dissect_ODisconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
9023 break;
9024 case 25615: /* oMidCall */
9025 offset= dissect_OMidCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9026 break;
9027 case 25609: /* oNoAnswer */
9028 offset= dissect_ONoAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
9029 break;
9030 case 25625: /* oSuspended */
9031 offset= dissect_OSuspendedArg_PDU(tvb, actx->pinfo , tree , NULL);
9032 break;
9033 case 25612: /* oTermSeized */
9034 offset= dissect_OTermSeizedArg_PDU(tvb, actx->pinfo , tree , NULL);
9035 break;
9036 case 25624: /* originationAttempt */
9037 offset= dissect_OriginationAttemptArg_PDU(tvb, actx->pinfo , tree , NULL);
9038 break;
9039 case 26114: /* resourceClear */
9040 offset= dissect_ResourceClearArg_PDU(tvb, actx->pinfo , tree , NULL);
9041 break;
9042 case 25617: /* successOutcome */
9043 offset= dissect_SuccessOutcomeArg_PDU(tvb, actx->pinfo , tree , NULL);
9044 break;
9045 case 25610: /* tAnswer */
9046 offset= dissect_TAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
9047 break;
9048 case 25606: /* tBusy */
9049 offset= dissect_TBusyArg_PDU(tvb, actx->pinfo , tree , NULL);
9050 break;
9051 case 25618: /* tDisconnect */
9052 offset= dissect_TDisconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
9053 break;
9054 case 25628: /* tDTMFEntered */
9055 offset= dissect_TDTMFEnteredArg_PDU(tvb, actx->pinfo , tree , NULL);
9056 break;
9057 case 25619: /* tMidCall */
9058 offset= dissect_TMidCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9059 break;
9060 case 25608: /* tNoAnswer */
9061 offset= dissect_TNoAnswerArg_PDU(tvb, actx->pinfo , tree , NULL);
9062 break;
9063 case 25605: /* terminationAttempt */
9064 offset= dissect_TerminationAttemptArg_PDU(tvb, actx->pinfo , tree , NULL);
9065 break;
9066 case 25613: /* termResourceAvailable */
9067 offset= dissect_TermResourceAvailableArg_PDU(tvb, actx->pinfo , tree , NULL);
9068 break;
9069 case 25620: /* timeout */
9070 offset= dissect_TimeoutArg_PDU(tvb, actx->pinfo , tree , NULL);
9071 break;
9072 case 25857: /* analyzeRoute */
9073 offset= dissect_AnalyzeRouteArg_PDU(tvb, actx->pinfo , tree , NULL);
9074 break;
9075 case 25858: /* authorizeTermination */
9076 offset= dissect_AuthorizeTerminationArg_PDU(tvb, actx->pinfo , tree , NULL);
9077 break;
9078 case 26115: /* cancelResourceEvent */
9079 offset= dissect_CancelResourceEventArg_PDU(tvb, actx->pinfo , tree , NULL);
9080 break;
9081 case 25861: /* collectInformation */
9082 offset= dissect_CollectInformationArg_PDU(tvb, actx->pinfo , tree , NULL);
9083 break;
9084 case 26117: /* connectToResource */
9085 offset= dissect_ConnectToResourceArg_PDU(tvb, actx->pinfo , tree , NULL);
9086 break;
9087 case 25869: /* continue */
9088 offset= dissect_ContinueArg_PDU(tvb, actx->pinfo , tree , NULL);
9089 break;
9090 case 25863: /* createCall */
9091 offset= dissect_CreateCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9092 break;
9093 case 25859: /* disconnect */
9094 offset= dissect_DisconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
9095 break;
9096 case 25864: /* disconnectLeg */
9097 offset= dissect_DisconnectLegArg_PDU(tvb, actx->pinfo , tree , NULL);
9098 break;
9099 case 27137: /* forwardCall */
9100 offset= dissect_ForwardCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9101 break;
9102 case 25865: /* mergeCall */
9103 offset= dissect_MergeCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9104 break;
9105 case 25866: /* moveLeg */
9106 offset= dissect_MoveLegArg_PDU(tvb, actx->pinfo , tree , NULL);
9107 break;
9108 case 25860: /* offerCall */
9109 offset= dissect_OfferCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9110 break;
9111 case 25867: /* originateCall */
9112 offset= dissect_OriginateCallArg_PDU(tvb, actx->pinfo , tree , NULL);
9113 break;
9114 case 25870: /* reconnect */
9115 offset= dissect_ReconnectArg_PDU(tvb, actx->pinfo , tree , NULL);
9116 break;
9117 case 26113: /* sendToResource */
9118 offset= dissect_SendToResourceArg_PDU(tvb, actx->pinfo , tree , NULL);
9119 break;
9120 case 26889: /* setTimer */
9121 offset= dissect_SetTimerArg_PDU(tvb, actx->pinfo , tree , NULL);
9122 break;
9123 case 25868: /* splitLeg */
9124 offset= dissect_SplitLegArg_PDU(tvb, actx->pinfo , tree , NULL);
9125 break;
9126 case 26881: /* acg */
9127 offset= dissect_AcgArg_PDU(tvb, actx->pinfo , tree , NULL);
9128 break;
9129 case 26883: /* acgGlobalCtrlRestore */
9130 offset= dissect_AcgGlobalCtrlRestoreArg_PDU(tvb, actx->pinfo , tree , NULL);
9131 break;
9132 case 26884: /* acgOverflow */
9133 offset= dissect_AcgOverflowArg_PDU(tvb, actx->pinfo , tree , NULL);
9134 break;
9135 case 26886: /* activityTest */
9136 offset= dissect_ActivityTestArg_PDU(tvb, actx->pinfo , tree , NULL);
9137 break;
9138 case 26887: /* callTypeRequest */
9139 offset= dissect_CallTypeRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
9140 break;
9141 case 26885: /* controlRequest */
9142 offset= dissect_ControlRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
9143 break;
9144 case 26882: /* echoRequest */
9145 offset= dissect_EchoRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
9146 break;
9147 case 27649: /* furnishAMAInformation */
9148 offset= dissect_FurnishAMAInformationArg_PDU(tvb, actx->pinfo , tree , NULL);
9149 break;
9150 case 26369: /* monitorForChange */
9151 offset= dissect_MonitorForChangeArg_PDU(tvb, actx->pinfo , tree , NULL);
9152 break;
9153 case 26371: /* monitorSuccess */
9154 offset= dissect_MonitorSuccessArg_PDU(tvb, actx->pinfo , tree , NULL);
9155 break;
9156 case 27394: /* nCAData */
9157 offset= dissect_NCADataArg_PDU(tvb, actx->pinfo , tree , NULL);
9158 break;
9159 case 27393: /* nCARequest */
9160 offset= dissect_NCARequestArg_PDU(tvb, actx->pinfo , tree , NULL);
9161 break;
9162 case 26626: /* queryRequest */
9163 offset= dissect_QueryRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
9164 break;
9165 case 27905: /* requestReportBCMEvent */
9166 offset= dissect_RequestReportBCMEventArg_PDU(tvb, actx->pinfo , tree , NULL);
9167 break;
9168 case 26370: /* statusReported */
9169 offset= dissect_StatusReportedArg_PDU(tvb, actx->pinfo , tree , NULL);
9170 break;
9171 case 26372: /* terminationNotification */
9172 offset= dissect_TerminationNotificationArg_PDU(tvb, actx->pinfo , tree , NULL);
9173 break;
9174 case 26627: /* update */
9175 offset= dissect_UpdateArg_PDU(tvb, actx->pinfo , tree , NULL);
9176 break;
9177 case 26625: /* updateRequest */
9178 offset= dissect_UpdateRequestArg_PDU(tvb, actx->pinfo , tree , NULL);
9179 break;
9180 default:
9181 proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_invokeData,
9182 tvb, offset, -1, "Unknown invokeData %d", opcode);
9183 /* todo call the asn.1 dissector */
9184 break;
9186 return offset;
9190 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
9191 switch(opcode){
9192 case 26114: /* resourceClear */
9193 offset= dissect_RES_resourceClear_PDU(tvb, actx->pinfo , tree , NULL);
9194 break;
9195 case 25863: /* createCall */
9196 offset= dissect_CreateCallRes_PDU(tvb, actx->pinfo , tree , NULL);
9197 break;
9198 case 26113: /* sendToResource */
9199 offset= dissect_RES_sendToResource_PDU(tvb, actx->pinfo , tree , NULL);
9200 break;
9201 case 26889: /* setTimer */
9202 offset= dissect_TimerUpdated_PDU(tvb, actx->pinfo , tree , NULL);
9203 break;
9204 case 26883: /* acgGlobalCtrlRestore */
9205 offset= dissect_RES_acgGlobalCtrlRestore_PDU(tvb, actx->pinfo , tree , NULL);
9206 break;
9207 case 26886: /* activityTest */
9208 offset= dissect_RES_activityTest_PDU(tvb, actx->pinfo , tree , NULL);
9209 break;
9210 case 26887: /* callTypeRequest */
9211 offset= dissect_RES_callTypeRequest_PDU(tvb, actx->pinfo , tree , NULL);
9212 break;
9213 case 26882: /* echoRequest */
9214 offset= dissect_RES_echoRequest_PDU(tvb, actx->pinfo , tree , NULL);
9215 break;
9216 case 27393: /* nCARequest */
9217 offset= dissect_RES_nCARequest_PDU(tvb, actx->pinfo , tree , NULL);
9218 break;
9219 case 26626: /* queryRequest */
9220 offset= dissect_RES_queryRequest_PDU(tvb, actx->pinfo , tree , NULL);
9221 break;
9222 case 26627: /* update */
9223 offset= dissect_RES_update_PDU(tvb, actx->pinfo , tree , NULL);
9224 break;
9225 case 26625: /* updateRequest */
9226 offset= dissect_RES_updateRequest_PDU(tvb, actx->pinfo , tree , NULL);
9227 break;
9228 default:
9229 proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_returnResultData,
9230 tvb, offset, -1, "Unknown returnResultData %d", opcode);
9232 return offset;
9236 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
9237 switch(errorCode) {
9238 case 1: /* applicationError */
9239 offset= dissect_PAR_applicationError_PDU(tvb, actx->pinfo , tree , NULL);
9240 break;
9241 case 2: /* failureReport */
9242 offset= dissect_PAR_failureReport_PDU(tvb, actx->pinfo , tree , NULL);
9243 break;
9244 default:
9245 proto_tree_add_expert_format(tree, actx->pinfo, &ei_ain_unknown_returnErrorData,
9246 tvb, offset, -1, "Unknown returnErrorData %d", opcode);
9248 return offset;
9253 static int
9254 dissect_ain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
9256 proto_item *ain_item;
9257 proto_tree *ain_tree = NULL;
9258 struct ansi_tcap_private_t *p_private_tcap = (struct ansi_tcap_private_t *)data;
9259 asn1_ctx_t asn1_ctx;
9260 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
9262 /* The TCAP dissector should have provided data but didn't so reject it. */
9263 if (data == NULL)
9264 return 0;
9266 * Make entry in the Protocol column on summary display
9268 col_set_str(pinfo->cinfo, COL_PROTOCOL, "AIN");
9271 * create the AIN protocol tree
9273 ain_item = proto_tree_add_item(parent_tree, proto_ain, tvb, 0, -1, ENC_NA);
9274 ain_tree = proto_item_add_subtree(ain_item, ett_ain);
9276 switch (p_private_tcap->d.pdu) {
9278 1 : invoke,
9279 2 : returnResult,
9280 3 : returnError,
9281 4 : reject
9283 case 1:
9284 opcode = p_private_tcap->d.OperationCode_private;
9285 /*ansi_map_is_invoke = true;*/
9286 col_add_fstr(pinfo->cinfo, COL_INFO, "%s Invoke ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
9287 proto_item_append_text(p_private_tcap->d.OperationCode_item, " %s", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
9288 dissect_invokeData(ain_tree, tvb, 0, &asn1_ctx);
9289 /*update_saved_invokedata(pinfo, p_private_tcap);*/
9290 break;
9291 //case 2:
9292 // opcode = find_saved_invokedata(&asn1_ctx, p_private_tcap);
9293 // 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)"));
9294 // 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)"));
9295 // dissect_returnData(ain_tree, tvb, 0, &asn1_ctx);
9296 // break;
9297 case 3:
9298 col_add_fstr(pinfo->cinfo, COL_INFO, "%s ReturnError ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
9299 break;
9300 case 4:
9301 col_add_fstr(pinfo->cinfo, COL_INFO, "%s Reject ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
9302 break;
9303 default:
9304 /* Must be Invoke ReturnResult ReturnError or Reject */
9305 DISSECTOR_ASSERT_NOT_REACHED();
9306 break;
9309 return tvb_captured_length(tvb);
9312 void proto_reg_handoff_ain(void) {
9314 /*static bool ain_prefs_initialized = false;*/
9315 /*static range_t *ssn_range;*/
9320 void proto_register_ain(void) {
9321 /* List of fields */
9323 static hf_register_info hf[] = {
9326 { &hf_ain_ext_type_oid,
9327 { "AssignmentAuthority", "ain.ext_type_oid",
9328 FT_STRING, BASE_NONE, NULL, 0,
9329 "Type of ExtensionParameter", HFILL } },
9330 { &hf_ain_odd_even_indicator,
9331 { "Odd/even indicator", "ain.odd_even_indicator",
9332 FT_BOOLEAN, 8, TFS(&tfs_odd_even), 0x80,
9333 NULL, HFILL } },
9334 { &hf_ain_nature_of_address,
9335 { "Nature of address", "ain.nature_of_address",
9336 FT_UINT8, BASE_DEC, NULL, 0x7f,
9337 NULL, HFILL } },
9338 { &hf_ain_numbering_plan,
9339 { "Numbering plan", "ain.numbering_plan",
9340 FT_UINT8, BASE_DEC, VALS(ain_np_vals), 0x70,
9341 NULL, HFILL } },
9342 { &hf_ain_bcd_digits,
9343 { "BCD digits", "ain.bcd_digits",
9344 FT_STRING, BASE_NONE, NULL, 0,
9345 NULL, HFILL } },
9346 { &hf_ain_carrier_selection,
9347 { "Carrier Selection", "ain.carrier_selection",
9348 FT_UINT8, BASE_DEC, VALS(ain_carrier_selection_vals), 0x0,
9349 NULL, HFILL } },
9350 { &hf_ain_nature_of_carrier,
9351 { "Nature of Carrier", "ain.nature_of_carrier",
9352 FT_UINT8, BASE_DEC, VALS(ain_nature_of_carrier_vals), 0xf0,
9353 NULL, HFILL } },
9354 { &hf_ain_nr_digits,
9355 { "Number of Digits", "ain.nature_of_carrier",
9356 FT_UINT8, BASE_DEC, NULL, 0x0f,
9357 NULL, HFILL } },
9358 { &hf_ain_carrier_bcd_digits,
9359 { "Carrier digits", "ain.carrier_bcd_digits",
9360 FT_STRING, BASE_NONE, NULL, 0,
9361 NULL, HFILL } },
9362 { &hf_ain_amaslpid,
9363 { "AMAslpID", "ain.amaslpid",
9364 FT_STRING, BASE_NONE, NULL, 0,
9365 NULL, HFILL } },
9367 { &hf_ain_CallInfoFromResourceArg_PDU,
9368 { "CallInfoFromResourceArg", "ain.CallInfoFromResourceArg_element",
9369 FT_NONE, BASE_NONE, NULL, 0,
9370 NULL, HFILL }},
9371 { &hf_ain_CloseArg_PDU,
9372 { "CloseArg", "ain.CloseArg_element",
9373 FT_NONE, BASE_NONE, NULL, 0,
9374 NULL, HFILL }},
9375 { &hf_ain_CTRClearArg_PDU,
9376 { "CTRClearArg", "ain.CTRClearArg_element",
9377 FT_NONE, BASE_NONE, NULL, 0,
9378 NULL, HFILL }},
9379 { &hf_ain_FailureOutcomeArg_PDU,
9380 { "FailureOutcomeArg", "ain.FailureOutcomeArg_element",
9381 FT_NONE, BASE_NONE, NULL, 0,
9382 NULL, HFILL }},
9383 { &hf_ain_InfoAnalyzedArg_PDU,
9384 { "InfoAnalyzedArg", "ain.InfoAnalyzedArg_element",
9385 FT_NONE, BASE_NONE, NULL, 0,
9386 NULL, HFILL }},
9387 { &hf_ain_InfoCollectedArg_PDU,
9388 { "InfoCollectedArg", "ain.InfoCollectedArg_element",
9389 FT_NONE, BASE_NONE, NULL, 0,
9390 NULL, HFILL }},
9391 { &hf_ain_NetworkBusyArg_PDU,
9392 { "NetworkBusyArg", "ain.NetworkBusyArg_element",
9393 FT_NONE, BASE_NONE, NULL, 0,
9394 NULL, HFILL }},
9395 { &hf_ain_OAnswerArg_PDU,
9396 { "OAnswerArg", "ain.OAnswerArg_element",
9397 FT_NONE, BASE_NONE, NULL, 0,
9398 NULL, HFILL }},
9399 { &hf_ain_OAbandonArg_PDU,
9400 { "OAbandonArg", "ain.OAbandonArg_element",
9401 FT_NONE, BASE_NONE, NULL, 0,
9402 NULL, HFILL }},
9403 { &hf_ain_ODisconnectArg_PDU,
9404 { "ODisconnectArg", "ain.ODisconnectArg_element",
9405 FT_NONE, BASE_NONE, NULL, 0,
9406 NULL, HFILL }},
9407 { &hf_ain_OMidCallArg_PDU,
9408 { "OMidCallArg", "ain.OMidCallArg_element",
9409 FT_NONE, BASE_NONE, NULL, 0,
9410 NULL, HFILL }},
9411 { &hf_ain_ONoAnswerArg_PDU,
9412 { "ONoAnswerArg", "ain.ONoAnswerArg_element",
9413 FT_NONE, BASE_NONE, NULL, 0,
9414 NULL, HFILL }},
9415 { &hf_ain_OSuspendedArg_PDU,
9416 { "OSuspendedArg", "ain.OSuspendedArg_element",
9417 FT_NONE, BASE_NONE, NULL, 0,
9418 NULL, HFILL }},
9419 { &hf_ain_OTermSeizedArg_PDU,
9420 { "OTermSeizedArg", "ain.OTermSeizedArg_element",
9421 FT_NONE, BASE_NONE, NULL, 0,
9422 NULL, HFILL }},
9423 { &hf_ain_OriginationAttemptArg_PDU,
9424 { "OriginationAttemptArg", "ain.OriginationAttemptArg_element",
9425 FT_NONE, BASE_NONE, NULL, 0,
9426 NULL, HFILL }},
9427 { &hf_ain_ResourceClearArg_PDU,
9428 { "ResourceClearArg", "ain.ResourceClearArg_element",
9429 FT_NONE, BASE_NONE, NULL, 0,
9430 NULL, HFILL }},
9431 { &hf_ain_RES_resourceClear_PDU,
9432 { "RES-resourceClear", "ain.RES_resourceClear_element",
9433 FT_NONE, BASE_NONE, NULL, 0,
9434 NULL, HFILL }},
9435 { &hf_ain_SuccessOutcomeArg_PDU,
9436 { "SuccessOutcomeArg", "ain.SuccessOutcomeArg_element",
9437 FT_NONE, BASE_NONE, NULL, 0,
9438 NULL, HFILL }},
9439 { &hf_ain_TAnswerArg_PDU,
9440 { "TAnswerArg", "ain.TAnswerArg_element",
9441 FT_NONE, BASE_NONE, NULL, 0,
9442 NULL, HFILL }},
9443 { &hf_ain_TBusyArg_PDU,
9444 { "TBusyArg", "ain.TBusyArg_element",
9445 FT_NONE, BASE_NONE, NULL, 0,
9446 NULL, HFILL }},
9447 { &hf_ain_TDisconnectArg_PDU,
9448 { "TDisconnectArg", "ain.TDisconnectArg_element",
9449 FT_NONE, BASE_NONE, NULL, 0,
9450 NULL, HFILL }},
9451 { &hf_ain_TDTMFEnteredArg_PDU,
9452 { "TDTMFEnteredArg", "ain.TDTMFEnteredArg_element",
9453 FT_NONE, BASE_NONE, NULL, 0,
9454 NULL, HFILL }},
9455 { &hf_ain_TMidCallArg_PDU,
9456 { "TMidCallArg", "ain.TMidCallArg_element",
9457 FT_NONE, BASE_NONE, NULL, 0,
9458 NULL, HFILL }},
9459 { &hf_ain_TNoAnswerArg_PDU,
9460 { "TNoAnswerArg", "ain.TNoAnswerArg_element",
9461 FT_NONE, BASE_NONE, NULL, 0,
9462 NULL, HFILL }},
9463 { &hf_ain_TerminationAttemptArg_PDU,
9464 { "TerminationAttemptArg", "ain.TerminationAttemptArg_element",
9465 FT_NONE, BASE_NONE, NULL, 0,
9466 NULL, HFILL }},
9467 { &hf_ain_TermResourceAvailableArg_PDU,
9468 { "TermResourceAvailableArg", "ain.TermResourceAvailableArg_element",
9469 FT_NONE, BASE_NONE, NULL, 0,
9470 NULL, HFILL }},
9471 { &hf_ain_TimeoutArg_PDU,
9472 { "TimeoutArg", "ain.TimeoutArg_element",
9473 FT_NONE, BASE_NONE, NULL, 0,
9474 NULL, HFILL }},
9475 { &hf_ain_AnalyzeRouteArg_PDU,
9476 { "AnalyzeRouteArg", "ain.AnalyzeRouteArg_element",
9477 FT_NONE, BASE_NONE, NULL, 0,
9478 NULL, HFILL }},
9479 { &hf_ain_AuthorizeTerminationArg_PDU,
9480 { "AuthorizeTerminationArg", "ain.AuthorizeTerminationArg_element",
9481 FT_NONE, BASE_NONE, NULL, 0,
9482 NULL, HFILL }},
9483 { &hf_ain_CancelResourceEventArg_PDU,
9484 { "CancelResourceEventArg", "ain.CancelResourceEventArg_element",
9485 FT_NONE, BASE_NONE, NULL, 0,
9486 NULL, HFILL }},
9487 { &hf_ain_CollectInformationArg_PDU,
9488 { "CollectInformationArg", "ain.CollectInformationArg_element",
9489 FT_NONE, BASE_NONE, NULL, 0,
9490 NULL, HFILL }},
9491 { &hf_ain_ConnectToResourceArg_PDU,
9492 { "ConnectToResourceArg", "ain.ConnectToResourceArg_element",
9493 FT_NONE, BASE_NONE, NULL, 0,
9494 NULL, HFILL }},
9495 { &hf_ain_ContinueArg_PDU,
9496 { "ContinueArg", "ain.ContinueArg_element",
9497 FT_NONE, BASE_NONE, NULL, 0,
9498 NULL, HFILL }},
9499 { &hf_ain_CreateCallArg_PDU,
9500 { "CreateCallArg", "ain.CreateCallArg_element",
9501 FT_NONE, BASE_NONE, NULL, 0,
9502 NULL, HFILL }},
9503 { &hf_ain_CreateCallRes_PDU,
9504 { "CreateCallRes", "ain.CreateCallRes_element",
9505 FT_NONE, BASE_NONE, NULL, 0,
9506 NULL, HFILL }},
9507 { &hf_ain_DisconnectArg_PDU,
9508 { "DisconnectArg", "ain.DisconnectArg_element",
9509 FT_NONE, BASE_NONE, NULL, 0,
9510 NULL, HFILL }},
9511 { &hf_ain_DisconnectLegArg_PDU,
9512 { "DisconnectLegArg", "ain.DisconnectLegArg_element",
9513 FT_NONE, BASE_NONE, NULL, 0,
9514 NULL, HFILL }},
9515 { &hf_ain_ForwardCallArg_PDU,
9516 { "ForwardCallArg", "ain.ForwardCallArg_element",
9517 FT_NONE, BASE_NONE, NULL, 0,
9518 NULL, HFILL }},
9519 { &hf_ain_MergeCallArg_PDU,
9520 { "MergeCallArg", "ain.MergeCallArg_element",
9521 FT_NONE, BASE_NONE, NULL, 0,
9522 NULL, HFILL }},
9523 { &hf_ain_MoveLegArg_PDU,
9524 { "MoveLegArg", "ain.MoveLegArg_element",
9525 FT_NONE, BASE_NONE, NULL, 0,
9526 NULL, HFILL }},
9527 { &hf_ain_OfferCallArg_PDU,
9528 { "OfferCallArg", "ain.OfferCallArg_element",
9529 FT_NONE, BASE_NONE, NULL, 0,
9530 NULL, HFILL }},
9531 { &hf_ain_OriginateCallArg_PDU,
9532 { "OriginateCallArg", "ain.OriginateCallArg_element",
9533 FT_NONE, BASE_NONE, NULL, 0,
9534 NULL, HFILL }},
9535 { &hf_ain_ReconnectArg_PDU,
9536 { "ReconnectArg", "ain.ReconnectArg_element",
9537 FT_NONE, BASE_NONE, NULL, 0,
9538 NULL, HFILL }},
9539 { &hf_ain_SendToResourceArg_PDU,
9540 { "SendToResourceArg", "ain.SendToResourceArg_element",
9541 FT_NONE, BASE_NONE, NULL, 0,
9542 NULL, HFILL }},
9543 { &hf_ain_RES_sendToResource_PDU,
9544 { "RES-sendToResource", "ain.RES_sendToResource_element",
9545 FT_NONE, BASE_NONE, NULL, 0,
9546 NULL, HFILL }},
9547 { &hf_ain_SetTimerArg_PDU,
9548 { "SetTimerArg", "ain.SetTimerArg_element",
9549 FT_NONE, BASE_NONE, NULL, 0,
9550 NULL, HFILL }},
9551 { &hf_ain_TimerUpdated_PDU,
9552 { "TimerUpdated", "ain.TimerUpdated",
9553 FT_UINT32, BASE_DEC, VALS(ain_TimerUpdated_U_vals), 0,
9554 NULL, HFILL }},
9555 { &hf_ain_SplitLegArg_PDU,
9556 { "SplitLegArg", "ain.SplitLegArg_element",
9557 FT_NONE, BASE_NONE, NULL, 0,
9558 NULL, HFILL }},
9559 { &hf_ain_AcgArg_PDU,
9560 { "AcgArg", "ain.AcgArg_element",
9561 FT_NONE, BASE_NONE, NULL, 0,
9562 NULL, HFILL }},
9563 { &hf_ain_AcgGlobalCtrlRestoreArg_PDU,
9564 { "AcgGlobalCtrlRestoreArg", "ain.AcgGlobalCtrlRestoreArg_element",
9565 FT_NONE, BASE_NONE, NULL, 0,
9566 NULL, HFILL }},
9567 { &hf_ain_RES_acgGlobalCtrlRestore_PDU,
9568 { "RES-acgGlobalCtrlRestore", "ain.RES_acgGlobalCtrlRestore_element",
9569 FT_NONE, BASE_NONE, NULL, 0,
9570 NULL, HFILL }},
9571 { &hf_ain_AcgOverflowArg_PDU,
9572 { "AcgOverflowArg", "ain.AcgOverflowArg_element",
9573 FT_NONE, BASE_NONE, NULL, 0,
9574 NULL, HFILL }},
9575 { &hf_ain_ActivityTestArg_PDU,
9576 { "ActivityTestArg", "ain.ActivityTestArg_element",
9577 FT_NONE, BASE_NONE, NULL, 0,
9578 NULL, HFILL }},
9579 { &hf_ain_RES_activityTest_PDU,
9580 { "RES-activityTest", "ain.RES_activityTest_element",
9581 FT_NONE, BASE_NONE, NULL, 0,
9582 NULL, HFILL }},
9583 { &hf_ain_CallTypeRequestArg_PDU,
9584 { "CallTypeRequestArg", "ain.CallTypeRequestArg_element",
9585 FT_NONE, BASE_NONE, NULL, 0,
9586 NULL, HFILL }},
9587 { &hf_ain_RES_callTypeRequest_PDU,
9588 { "RES-callTypeRequest", "ain.RES_callTypeRequest_element",
9589 FT_NONE, BASE_NONE, NULL, 0,
9590 NULL, HFILL }},
9591 { &hf_ain_ControlRequestArg_PDU,
9592 { "ControlRequestArg", "ain.ControlRequestArg_element",
9593 FT_NONE, BASE_NONE, NULL, 0,
9594 NULL, HFILL }},
9595 { &hf_ain_EchoRequestArg_PDU,
9596 { "EchoRequestArg", "ain.EchoRequestArg_element",
9597 FT_NONE, BASE_NONE, NULL, 0,
9598 NULL, HFILL }},
9599 { &hf_ain_RES_echoRequest_PDU,
9600 { "RES-echoRequest", "ain.RES_echoRequest_element",
9601 FT_NONE, BASE_NONE, NULL, 0,
9602 NULL, HFILL }},
9603 { &hf_ain_FurnishAMAInformationArg_PDU,
9604 { "FurnishAMAInformationArg", "ain.FurnishAMAInformationArg_element",
9605 FT_NONE, BASE_NONE, NULL, 0,
9606 NULL, HFILL }},
9607 { &hf_ain_MonitorForChangeArg_PDU,
9608 { "MonitorForChangeArg", "ain.MonitorForChangeArg_element",
9609 FT_NONE, BASE_NONE, NULL, 0,
9610 NULL, HFILL }},
9611 { &hf_ain_MonitorSuccessArg_PDU,
9612 { "MonitorSuccessArg", "ain.MonitorSuccessArg_element",
9613 FT_NONE, BASE_NONE, NULL, 0,
9614 NULL, HFILL }},
9615 { &hf_ain_NCADataArg_PDU,
9616 { "NCADataArg", "ain.NCADataArg_element",
9617 FT_NONE, BASE_NONE, NULL, 0,
9618 NULL, HFILL }},
9619 { &hf_ain_NCARequestArg_PDU,
9620 { "NCARequestArg", "ain.NCARequestArg_element",
9621 FT_NONE, BASE_NONE, NULL, 0,
9622 NULL, HFILL }},
9623 { &hf_ain_RES_nCARequest_PDU,
9624 { "RES-nCARequest", "ain.RES_nCARequest_element",
9625 FT_NONE, BASE_NONE, NULL, 0,
9626 NULL, HFILL }},
9627 { &hf_ain_QueryRequestArg_PDU,
9628 { "QueryRequestArg", "ain.QueryRequestArg_element",
9629 FT_NONE, BASE_NONE, NULL, 0,
9630 NULL, HFILL }},
9631 { &hf_ain_RES_queryRequest_PDU,
9632 { "RES-queryRequest", "ain.RES_queryRequest_element",
9633 FT_NONE, BASE_NONE, NULL, 0,
9634 NULL, HFILL }},
9635 { &hf_ain_RequestReportBCMEventArg_PDU,
9636 { "RequestReportBCMEventArg", "ain.RequestReportBCMEventArg_element",
9637 FT_NONE, BASE_NONE, NULL, 0,
9638 NULL, HFILL }},
9639 { &hf_ain_StatusReportedArg_PDU,
9640 { "StatusReportedArg", "ain.StatusReportedArg_element",
9641 FT_NONE, BASE_NONE, NULL, 0,
9642 NULL, HFILL }},
9643 { &hf_ain_TerminationNotificationArg_PDU,
9644 { "TerminationNotificationArg", "ain.TerminationNotificationArg_element",
9645 FT_NONE, BASE_NONE, NULL, 0,
9646 NULL, HFILL }},
9647 { &hf_ain_UpdateArg_PDU,
9648 { "UpdateArg", "ain.UpdateArg_element",
9649 FT_NONE, BASE_NONE, NULL, 0,
9650 NULL, HFILL }},
9651 { &hf_ain_RES_update_PDU,
9652 { "RES-update", "ain.RES_update_element",
9653 FT_NONE, BASE_NONE, NULL, 0,
9654 NULL, HFILL }},
9655 { &hf_ain_UpdateRequestArg_PDU,
9656 { "UpdateRequestArg", "ain.UpdateRequestArg_element",
9657 FT_NONE, BASE_NONE, NULL, 0,
9658 NULL, HFILL }},
9659 { &hf_ain_RES_updateRequest_PDU,
9660 { "RES-updateRequest", "ain.RES_updateRequest_element",
9661 FT_NONE, BASE_NONE, NULL, 0,
9662 NULL, HFILL }},
9663 { &hf_ain_PAR_applicationError_PDU,
9664 { "PAR-applicationError", "ain.PAR_applicationError_element",
9665 FT_NONE, BASE_NONE, NULL, 0,
9666 NULL, HFILL }},
9667 { &hf_ain_PAR_failureReport_PDU,
9668 { "PAR-failureReport", "ain.PAR_failureReport_element",
9669 FT_NONE, BASE_NONE, NULL, 0,
9670 NULL, HFILL }},
9671 { &hf_ain_iPReturnBlock,
9672 { "iPReturnBlock", "ain.iPReturnBlock",
9673 FT_BYTES, BASE_NONE, NULL, 0,
9674 NULL, HFILL }},
9675 { &hf_ain_amp1,
9676 { "amp1", "ain.amp1",
9677 FT_BYTES, BASE_NONE, NULL, 0,
9678 NULL, HFILL }},
9679 { &hf_ain_amp2,
9680 { "amp2", "ain.amp2_element",
9681 FT_NONE, BASE_NONE, NULL, 0,
9682 NULL, HFILL }},
9683 { &hf_ain_extensionParameter,
9684 { "extensionParameter", "ain.extensionParameter_element",
9685 FT_NONE, BASE_NONE, NULL, 0,
9686 NULL, HFILL }},
9687 { &hf_ain_userID,
9688 { "userID", "ain.userID",
9689 FT_UINT32, BASE_DEC, VALS(ain_UserID_U_vals), 0,
9690 NULL, HFILL }},
9691 { &hf_ain_bearerCapability,
9692 { "bearerCapability", "ain.bearerCapability",
9693 FT_UINT32, BASE_DEC, VALS(ain_BearerCapability_U_vals), 0,
9694 NULL, HFILL }},
9695 { &hf_ain_closeCause,
9696 { "closeCause", "ain.closeCause",
9697 FT_UINT32, BASE_DEC, VALS(ain_CloseCause_U_vals), 0,
9698 NULL, HFILL }},
9699 { &hf_ain_clearCause,
9700 { "clearCause", "ain.clearCause",
9701 FT_UINT32, BASE_DEC, NULL, 0,
9702 NULL, HFILL }},
9703 { &hf_ain_legID,
9704 { "legID", "ain.legID",
9705 FT_UINT32, BASE_DEC, NULL, 0,
9706 NULL, HFILL }},
9707 { &hf_ain_ccID,
9708 { "ccID", "ain.ccID",
9709 FT_UINT32, BASE_DEC, VALS(ain_CcID_U_vals), 0,
9710 NULL, HFILL }},
9711 { &hf_ain_bCMType,
9712 { "bCMType", "ain.bCMType",
9713 FT_UINT32, BASE_DEC, VALS(ain_BCMType_U_vals), 0,
9714 NULL, HFILL }},
9715 { &hf_ain_pointInCall,
9716 { "pointInCall", "ain.pointInCall",
9717 FT_UINT32, BASE_DEC, VALS(ain_PointInCall_U_vals), 0,
9718 NULL, HFILL }},
9719 { &hf_ain_collectedDigits,
9720 { "collectedDigits", "ain.collectedDigits",
9721 FT_BYTES, BASE_NONE, NULL, 0,
9722 NULL, HFILL }},
9723 { &hf_ain_collectedAddressInfo,
9724 { "collectedAddressInfo", "ain.collectedAddressInfo",
9725 FT_BYTES, BASE_NONE, NULL, 0,
9726 NULL, HFILL }},
9727 { &hf_ain_carrier,
9728 { "carrier", "ain.carrier",
9729 FT_BYTES, BASE_NONE, NULL, 0,
9730 NULL, HFILL }},
9731 { &hf_ain_failureCause,
9732 { "failureCause", "ain.failureCause",
9733 FT_UINT32, BASE_DEC, VALS(ain_FailureCause_U_vals), 0,
9734 NULL, HFILL }},
9735 { &hf_ain_aMAMeasurement,
9736 { "aMAMeasurement", "ain.aMAMeasurement_element",
9737 FT_NONE, BASE_NONE, NULL, 0,
9738 NULL, HFILL }},
9739 { &hf_ain_clearCauseData,
9740 { "clearCauseData", "ain.clearCauseData",
9741 FT_BYTES, BASE_NONE, NULL, 0,
9742 NULL, HFILL }},
9743 { &hf_ain_notificationIndicator,
9744 { "notificationIndicator", "ain.notificationIndicator",
9745 FT_BOOLEAN, BASE_NONE, NULL, 0,
9746 NULL, HFILL }},
9747 { &hf_ain_calledPartyID,
9748 { "calledPartyID", "ain.calledPartyID",
9749 FT_BYTES, BASE_NONE, NULL, 0,
9750 NULL, HFILL }},
9751 { &hf_ain_lata,
9752 { "lata", "ain.lata",
9753 FT_BYTES, BASE_NONE, NULL, 0,
9754 NULL, HFILL }},
9755 { &hf_ain_triggerCriteriaType,
9756 { "triggerCriteriaType", "ain.triggerCriteriaType",
9757 FT_UINT32, BASE_DEC, VALS(ain_TriggerCriteriaType_U_vals), 0,
9758 NULL, HFILL }},
9759 { &hf_ain_chargeNumber,
9760 { "chargeNumber", "ain.chargeNumber",
9761 FT_BYTES, BASE_NONE, NULL, 0,
9762 NULL, HFILL }},
9763 { &hf_ain_callingPartyID,
9764 { "callingPartyID", "ain.callingPartyID",
9765 FT_BYTES, BASE_NONE, NULL, 0,
9766 NULL, HFILL }},
9767 { &hf_ain_callingPartyBGID,
9768 { "callingPartyBGID", "ain.callingPartyBGID",
9769 FT_BYTES, BASE_NONE, NULL, 0,
9770 NULL, HFILL }},
9771 { &hf_ain_chargePartyStationType,
9772 { "chargePartyStationType", "ain.chargePartyStationType",
9773 FT_UINT32, BASE_DEC, NULL, 0,
9774 NULL, HFILL }},
9775 { &hf_ain_accessCode,
9776 { "accessCode", "ain.accessCode",
9777 FT_BYTES, BASE_NONE, NULL, 0,
9778 NULL, HFILL }},
9779 { &hf_ain_verticalServiceCode,
9780 { "verticalServiceCode", "ain.verticalServiceCode",
9781 FT_BYTES, BASE_NONE, NULL, 0,
9782 NULL, HFILL }},
9783 { &hf_ain_tcm,
9784 { "tcm", "ain.tcm",
9785 FT_BYTES, BASE_NONE, NULL, 0,
9786 NULL, HFILL }},
9787 { &hf_ain_originalCalledPartyID,
9788 { "originalCalledPartyID", "ain.originalCalledPartyID",
9789 FT_BYTES, BASE_NONE, NULL, 0,
9790 NULL, HFILL }},
9791 { &hf_ain_redirectingPartyID,
9792 { "redirectingPartyID", "ain.redirectingPartyID",
9793 FT_BYTES, BASE_NONE, NULL, 0,
9794 NULL, HFILL }},
9795 { &hf_ain_redirectionInformation,
9796 { "redirectionInformation", "ain.redirectionInformation",
9797 FT_BYTES, BASE_NONE, NULL, 0,
9798 NULL, HFILL }},
9799 { &hf_ain_aCGEncountered,
9800 { "aCGEncountered", "ain.aCGEncountered",
9801 FT_BYTES, BASE_NONE, NULL, 0,
9802 NULL, HFILL }},
9803 { &hf_ain_sap,
9804 { "sap", "ain.sap",
9805 FT_BYTES, BASE_NONE, NULL, 0,
9806 NULL, HFILL }},
9807 { &hf_ain_sTRConnection,
9808 { "sTRConnection", "ain.sTRConnection",
9809 FT_BOOLEAN, BASE_NONE, NULL, 0,
9810 NULL, HFILL }},
9811 { &hf_ain_aMASequenceNumber,
9812 { "aMASequenceNumber", "ain.aMASequenceNumber",
9813 FT_BYTES, BASE_NONE, NULL, 0,
9814 NULL, HFILL }},
9815 { &hf_ain_genericAddressList,
9816 { "genericAddressList", "ain.genericAddressList",
9817 FT_UINT32, BASE_DEC, NULL, 0,
9818 NULL, HFILL }},
9819 { &hf_ain_networkSpecificFacilities,
9820 { "networkSpecificFacilities", "ain.networkSpecificFacilities",
9821 FT_BYTES, BASE_NONE, NULL, 0,
9822 NULL, HFILL }},
9823 { &hf_ain_cTRConnection,
9824 { "cTRConnection", "ain.cTRConnection",
9825 FT_BOOLEAN, BASE_NONE, NULL, 0,
9826 NULL, HFILL }},
9827 { &hf_ain_jurisdictionInformation,
9828 { "jurisdictionInformation", "ain.jurisdictionInformation",
9829 FT_BYTES, BASE_NONE, NULL, 0,
9830 NULL, HFILL }},
9831 { &hf_ain_prefix,
9832 { "prefix", "ain.prefix",
9833 FT_UINT32, BASE_DEC, VALS(ain_Prefix_U_vals), 0,
9834 NULL, HFILL }},
9835 { &hf_ain_callingGeodeticLocation,
9836 { "callingGeodeticLocation", "ain.callingGeodeticLocation",
9837 FT_BYTES, BASE_NONE, NULL, 0,
9838 NULL, HFILL }},
9839 { &hf_ain_triggerInformation,
9840 { "triggerInformation", "ain.triggerInformation",
9841 FT_BYTES, BASE_NONE, NULL, 0,
9842 NULL, HFILL }},
9843 { &hf_ain_disconnectCause,
9844 { "disconnectCause", "ain.disconnectCause",
9845 FT_UINT32, BASE_DEC, VALS(ain_DisconnectCause_U_vals), 0,
9846 NULL, HFILL }},
9847 { &hf_ain_featureActivatorID,
9848 { "featureActivatorID", "ain.featureActivatorID",
9849 FT_BYTES, BASE_NONE, NULL, 0,
9850 NULL, HFILL }},
9851 { &hf_ain_busyCause,
9852 { "busyCause", "ain.busyCause",
9853 FT_BYTES, BASE_NONE, NULL, 0,
9854 NULL, HFILL }},
9855 { &hf_ain_busyType,
9856 { "busyType", "ain.busyType",
9857 FT_UINT32, BASE_DEC, VALS(ain_BusyType_U_vals), 0,
9858 NULL, HFILL }},
9859 { &hf_ain_calledPartyStationType,
9860 { "calledPartyStationType", "ain.calledPartyStationType",
9861 FT_UINT32, BASE_DEC, NULL, 0,
9862 NULL, HFILL }},
9863 { &hf_ain_genericName,
9864 { "genericName", "ain.genericName",
9865 FT_BYTES, BASE_NONE, NULL, 0,
9866 NULL, HFILL }},
9867 { &hf_ain_dTMFDigitsDetected,
9868 { "dTMFDigitsDetected", "ain.dTMFDigitsDetected",
9869 FT_BYTES, BASE_NONE, NULL, 0,
9870 NULL, HFILL }},
9871 { &hf_ain_rTPServiceIndicator,
9872 { "rTPServiceIndicator", "ain.rTPServiceIndicator",
9873 FT_BYTES, BASE_NONE, NULL, 0,
9874 NULL, HFILL }},
9875 { &hf_ain_outpulseNumber,
9876 { "outpulseNumber", "ain.outpulseNumber",
9877 FT_BYTES, BASE_NONE, NULL, 0,
9878 NULL, HFILL }},
9879 { &hf_ain_primaryTrunkGroup,
9880 { "primaryTrunkGroup", "ain.primaryTrunkGroup",
9881 FT_BYTES, BASE_NONE, NULL, 0,
9882 NULL, HFILL }},
9883 { &hf_ain_alternateTrunkGroup,
9884 { "alternateTrunkGroup", "ain.alternateTrunkGroup",
9885 FT_BYTES, BASE_NONE, NULL, 0,
9886 NULL, HFILL }},
9887 { &hf_ain_secondAlternateTrunkGroup,
9888 { "secondAlternateTrunkGroup", "ain.secondAlternateTrunkGroup",
9889 FT_BYTES, BASE_NONE, NULL, 0,
9890 NULL, HFILL }},
9891 { &hf_ain_alternateCarrier,
9892 { "alternateCarrier", "ain.alternateCarrier",
9893 FT_BYTES, BASE_NONE, NULL, 0,
9894 NULL, HFILL }},
9895 { &hf_ain_secondAlternateCarrier,
9896 { "secondAlternateCarrier", "ain.secondAlternateCarrier",
9897 FT_BYTES, BASE_NONE, NULL, 0,
9898 NULL, HFILL }},
9899 { &hf_ain_passiveLegTreatment,
9900 { "passiveLegTreatment", "ain.passiveLegTreatment",
9901 FT_UINT32, BASE_DEC, VALS(ain_PassiveLegTreatment_U_vals), 0,
9902 NULL, HFILL }},
9903 { &hf_ain_primaryBillingIndicator,
9904 { "primaryBillingIndicator", "ain.primaryBillingIndicator",
9905 FT_BYTES, BASE_NONE, NULL, 0,
9906 NULL, HFILL }},
9907 { &hf_ain_alternateBillingIndicator,
9908 { "alternateBillingIndicator", "ain.alternateBillingIndicator",
9909 FT_BYTES, BASE_NONE, NULL, 0,
9910 NULL, HFILL }},
9911 { &hf_ain_secondAlternateBillingIndicator,
9912 { "secondAlternateBillingIndicator", "ain.secondAlternateBillingIndicator",
9913 FT_BYTES, BASE_NONE, NULL, 0,
9914 NULL, HFILL }},
9915 { &hf_ain_overflowBillingIndicator,
9916 { "overflowBillingIndicator", "ain.overflowBillingIndicator",
9917 FT_BYTES, BASE_NONE, NULL, 0,
9918 NULL, HFILL }},
9919 { &hf_ain_aMAAlternateBillingNumber,
9920 { "aMAAlternateBillingNumber", "ain.aMAAlternateBillingNumber",
9921 FT_BYTES, BASE_NONE, NULL, 0,
9922 NULL, HFILL }},
9923 { &hf_ain_aMABusinessCustomerID,
9924 { "aMABusinessCustomerID", "ain.aMABusinessCustomerID",
9925 FT_BYTES, BASE_NONE, NULL, 0,
9926 NULL, HFILL }},
9927 { &hf_ain_aMALineNumberList,
9928 { "aMALineNumberList", "ain.aMALineNumberList",
9929 FT_UINT32, BASE_DEC, NULL, 0,
9930 "SEQUENCE_SIZE_1_2_OF_AMALineNumber", HFILL }},
9931 { &hf_ain_aMALineNumberList_item,
9932 { "AMALineNumber", "ain.AMALineNumber",
9933 FT_BYTES, BASE_NONE, NULL, 0,
9934 NULL, HFILL }},
9935 { &hf_ain_aMAslpID,
9936 { "aMAslpID", "ain.aMAslpID",
9937 FT_BYTES, BASE_NONE, NULL, 0,
9938 NULL, HFILL }},
9939 { &hf_ain_aMADigitsDialedWCList,
9940 { "aMADigitsDialedWCList", "ain.aMADigitsDialedWCList",
9941 FT_UINT32, BASE_DEC, NULL, 0,
9942 "SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC", HFILL }},
9943 { &hf_ain_aMADigitsDialedWCList_item,
9944 { "AMADigitsDialedWC", "ain.AMADigitsDialedWC",
9945 FT_BYTES, BASE_NONE, NULL, 0,
9946 NULL, HFILL }},
9947 { &hf_ain_serviceProviderID,
9948 { "serviceProviderID", "ain.serviceProviderID",
9949 FT_UINT32, BASE_DEC, VALS(ain_ServiceProviderID_vals), 0,
9950 NULL, HFILL }},
9951 { &hf_ain_serviceContext,
9952 { "serviceContext", "ain.serviceContext",
9953 FT_UINT32, BASE_DEC, NULL, 0,
9954 NULL, HFILL }},
9955 { &hf_ain_aMABillingFeature,
9956 { "aMABillingFeature", "ain.aMABillingFeature",
9957 FT_BYTES, BASE_NONE, NULL, 0,
9958 NULL, HFILL }},
9959 { &hf_ain_carrierUsage,
9960 { "carrierUsage", "ain.carrierUsage",
9961 FT_UINT32, BASE_DEC, VALS(ain_CarrierUsage_U_vals), 0,
9962 NULL, HFILL }},
9963 { &hf_ain_forwardCallIndicator,
9964 { "forwardCallIndicator", "ain.forwardCallIndicator",
9965 FT_BYTES, BASE_NONE, NULL, 0,
9966 NULL, HFILL }},
9967 { &hf_ain_aMAServiceProviderID,
9968 { "aMAServiceProviderID", "ain.aMAServiceProviderID",
9969 FT_BYTES, BASE_NONE, NULL, 0,
9970 NULL, HFILL }},
9971 { &hf_ain_genericDigitsList,
9972 { "genericDigitsList", "ain.genericDigitsList",
9973 FT_UINT32, BASE_DEC, NULL, 0,
9974 NULL, HFILL }},
9975 { &hf_ain_applyRestrictions,
9976 { "applyRestrictions", "ain.applyRestrictions",
9977 FT_BYTES, BASE_NONE, NULL, 0,
9978 NULL, HFILL }},
9979 { &hf_ain_displayText,
9980 { "displayText", "ain.displayText",
9981 FT_UINT32, BASE_DEC, NULL, 0,
9982 NULL, HFILL }},
9983 { &hf_ain_controllingLegTreatment,
9984 { "controllingLegTreatment", "ain.controllingLegTreatment",
9985 FT_UINT32, BASE_DEC, VALS(ain_ControllingLegTreatment_U_vals), 0,
9986 NULL, HFILL }},
9987 { &hf_ain_aMAserviceProviderID,
9988 { "aMAserviceProviderID", "ain.aMAserviceProviderID",
9989 FT_BYTES, BASE_NONE, NULL, 0,
9990 NULL, HFILL }},
9991 { &hf_ain_dPConverter,
9992 { "dPConverter", "ain.dPConverter",
9993 FT_BOOLEAN, BASE_NONE, NULL, 0,
9994 NULL, HFILL }},
9995 { &hf_ain_alternateDialingPlanInd,
9996 { "alternateDialingPlanInd", "ain.alternateDialingPlanInd",
9997 FT_BYTES, BASE_NONE, NULL, 0,
9998 NULL, HFILL }},
9999 { &hf_ain_resourceType,
10000 { "resourceType", "ain.resourceType",
10001 FT_UINT32, BASE_DEC, NULL, 0,
10002 NULL, HFILL }},
10003 { &hf_ain_strParameterBlock,
10004 { "strParameterBlock", "ain.strParameterBlock",
10005 FT_UINT32, BASE_DEC, VALS(ain_StrParameterBlock_U_vals), 0,
10006 NULL, HFILL }},
10007 { &hf_ain_disconnectFlag,
10008 { "disconnectFlag", "ain.disconnectFlag_element",
10009 FT_NONE, BASE_NONE, NULL, 0,
10010 NULL, HFILL }},
10011 { &hf_ain_destinationAddress,
10012 { "destinationAddress", "ain.destinationAddress",
10013 FT_BYTES, BASE_NONE, NULL, 0,
10014 NULL, HFILL }},
10015 { &hf_ain_aMAMeasure,
10016 { "aMAMeasure", "ain.aMAMeasure",
10017 FT_UINT32, BASE_DEC, VALS(ain_AMAMeasure_U_vals), 0,
10018 NULL, HFILL }},
10019 { &hf_ain_notificationDuration,
10020 { "notificationDuration", "ain.notificationDuration",
10021 FT_UINT32, BASE_DEC, NULL, 0,
10022 NULL, HFILL }},
10023 { &hf_ain_wakeUpDuration,
10024 { "wakeUpDuration", "ain.wakeUpDuration",
10025 FT_UINT32, BASE_DEC, NULL, 0,
10026 NULL, HFILL }},
10027 { &hf_ain_oSIIndicator,
10028 { "oSIIndicator", "ain.oSIIndicator",
10029 FT_BOOLEAN, BASE_NONE, NULL, 0,
10030 NULL, HFILL }},
10031 { &hf_ain_rTPReroutingNumber,
10032 { "rTPReroutingNumber", "ain.rTPReroutingNumber",
10033 FT_BYTES, BASE_NONE, NULL, 0,
10034 NULL, HFILL }},
10035 { &hf_ain_csID,
10036 { "csID", "ain.csID",
10037 FT_UINT32, BASE_DEC, NULL, 0,
10038 NULL, HFILL }},
10039 { &hf_ain_lampTreatment,
10040 { "lampTreatment", "ain.lampTreatment",
10041 FT_BYTES, BASE_NONE, NULL, 0,
10042 NULL, HFILL }},
10043 { &hf_ain_secondAlternatecarrier,
10044 { "secondAlternatecarrier", "ain.secondAlternatecarrier",
10045 FT_BYTES, BASE_NONE, NULL, 0,
10046 NULL, HFILL }},
10047 { &hf_ain_answerIndicator,
10048 { "answerIndicator", "ain.answerIndicator_element",
10049 FT_NONE, BASE_NONE, NULL, 0,
10050 NULL, HFILL }},
10051 { &hf_ain_extendedRinging,
10052 { "extendedRinging", "ain.extendedRinging_element",
10053 FT_NONE, BASE_NONE, NULL, 0,
10054 NULL, HFILL }},
10055 { &hf_ain_tSTRCTimer,
10056 { "tSTRCTimer", "ain.tSTRCTimer",
10057 FT_UINT32, BASE_DEC, NULL, 0,
10058 NULL, HFILL }},
10059 { &hf_ain_partyID,
10060 { "partyID", "ain.partyID",
10061 FT_UINT32, BASE_DEC, VALS(ain_PartyID_U_vals), 0,
10062 NULL, HFILL }},
10063 { &hf_ain_partyOnHold,
10064 { "partyOnHold", "ain.partyOnHold_element",
10065 FT_NONE, BASE_NONE, NULL, 0,
10066 NULL, HFILL }},
10067 { &hf_ain_sSPResponseMessageTimerT1,
10068 { "sSPResponseMessageTimerT1", "ain.sSPResponseMessageTimerT1",
10069 FT_UINT32, BASE_DEC, NULL, 0,
10070 NULL, HFILL }},
10071 { &hf_ain_controlCauseIndicator,
10072 { "controlCauseIndicator", "ain.controlCauseIndicator",
10073 FT_BYTES, BASE_NONE, NULL, 0,
10074 NULL, HFILL }},
10075 { &hf_ain_gapDuration,
10076 { "gapDuration", "ain.gapDuration",
10077 FT_UINT32, BASE_DEC, VALS(ain_GapDuration_U_vals), 0,
10078 NULL, HFILL }},
10079 { &hf_ain_gapInterval,
10080 { "gapInterval", "ain.gapInterval",
10081 FT_UINT32, BASE_DEC, VALS(ain_GapInterval_vals), 0,
10082 NULL, HFILL }},
10083 { &hf_ain_translationType,
10084 { "translationType", "ain.translationType",
10085 FT_UINT32, BASE_DEC, NULL, 0,
10086 NULL, HFILL }},
10087 { &hf_ain_globalTitleAddress,
10088 { "globalTitleAddress", "ain.globalTitleAddress",
10089 FT_BYTES, BASE_NONE, NULL, 0,
10090 NULL, HFILL }},
10091 { &hf_ain_aCGGlobalOverride,
10092 { "aCGGlobalOverride", "ain.aCGGlobalOverride",
10093 FT_UINT32, BASE_DEC, VALS(ain_ACGGlobalOverride_U_vals), 0,
10094 NULL, HFILL }},
10095 { &hf_ain_actResult,
10096 { "actResult", "ain.actResult",
10097 FT_UINT32, BASE_DEC, VALS(ain_ActResult_U_vals), 0,
10098 NULL, HFILL }},
10099 { &hf_ain_transID,
10100 { "transID", "ain.transID",
10101 FT_BYTES, BASE_NONE, NULL, 0,
10102 NULL, HFILL }},
10103 { &hf_ain_callType,
10104 { "callType", "ain.callType",
10105 FT_UINT32, BASE_DEC, VALS(ain_CallType_U_vals), 0,
10106 NULL, HFILL }},
10107 { &hf_ain_congestionLevel,
10108 { "congestionLevel", "ain.congestionLevel",
10109 FT_UINT32, BASE_DEC, VALS(ain_CongestionLevel_U_vals), 0,
10110 NULL, HFILL }},
10111 { &hf_ain_ssignalingPointCode,
10112 { "ssignalingPointCode", "ain.ssignalingPointCode",
10113 FT_BYTES, BASE_NONE, NULL, 0,
10114 "SignalingPointCode", HFILL }},
10115 { &hf_ain_subsystemNumber,
10116 { "subsystemNumber", "ain.subsystemNumber",
10117 FT_UINT32, BASE_DEC, NULL, 0,
10118 NULL, HFILL }},
10119 { &hf_ain_applicationIndicator,
10120 { "applicationIndicator", "ain.applicationIndicator",
10121 FT_UINT32, BASE_DEC, VALS(ain_ApplicationIndicator_U_vals), 0,
10122 NULL, HFILL }},
10123 { &hf_ain_aaMABAFModules,
10124 { "aaMABAFModules", "ain.aaMABAFModules",
10125 FT_BYTES, BASE_NONE, NULL, 0,
10126 "AMABAFModules", HFILL }},
10127 { &hf_ain_aMASetHexABIndicator,
10128 { "aMASetHexABIndicator", "ain.aMASetHexABIndicator",
10129 FT_BOOLEAN, BASE_NONE, NULL, 0,
10130 NULL, HFILL }},
10131 { &hf_ain_facilityStatus,
10132 { "facilityStatus", "ain.facilityStatus",
10133 FT_UINT32, BASE_DEC, VALS(ain_FacilityStatus_U_vals), 0,
10134 NULL, HFILL }},
10135 { &hf_ain_monitorTime,
10136 { "monitorTime", "ain.monitorTime",
10137 FT_BYTES, BASE_NONE, NULL, 0,
10138 NULL, HFILL }},
10139 { &hf_ain_facilityGID,
10140 { "facilityGID", "ain.facilityGID",
10141 FT_UINT32, BASE_DEC, VALS(ain_FacilityGID_vals), 0,
10142 NULL, HFILL }},
10143 { &hf_ain_facilityMemberID,
10144 { "facilityMemberID", "ain.facilityMemberID",
10145 FT_UINT32, BASE_DEC, NULL, 0,
10146 NULL, HFILL }},
10147 { &hf_ain_controlEncountered,
10148 { "controlEncountered", "ain.controlEncountered",
10149 FT_BYTES, BASE_NONE, NULL, 0,
10150 NULL, HFILL }},
10151 { &hf_ain_id,
10152 { "id", "ain.id",
10153 FT_UINT32, BASE_DEC, VALS(ain_T_id_vals), 0,
10154 NULL, HFILL }},
10155 { &hf_ain_srhrGroupID,
10156 { "srhrGroupID", "ain.srhrGroupID",
10157 FT_UINT32, BASE_DEC, NULL, 0,
10158 NULL, HFILL }},
10159 { &hf_ain_envelopeEncodingAuthority,
10160 { "envelopeEncodingAuthority", "ain.envelopeEncodingAuthority",
10161 FT_OID, BASE_NONE, NULL, 0,
10162 NULL, HFILL }},
10163 { &hf_ain_envelopContent,
10164 { "envelopContent", "ain.envelopContent",
10165 FT_BYTES, BASE_NONE, NULL, 0,
10166 NULL, HFILL }},
10167 { &hf_ain_securityEnvelope,
10168 { "securityEnvelope", "ain.securityEnvelope",
10169 FT_BYTES, BASE_NONE, NULL, 0,
10170 NULL, HFILL }},
10171 { &hf_ain_infoProvided,
10172 { "infoProvided", "ain.infoProvided_element",
10173 FT_NONE, BASE_NONE, NULL, 0,
10174 NULL, HFILL }},
10175 { &hf_ain_provideInfo,
10176 { "provideInfo", "ain.provideInfo_element",
10177 FT_NONE, BASE_NONE, NULL, 0,
10178 NULL, HFILL }},
10179 { &hf_ain_eDPRequest,
10180 { "eDPRequest", "ain.eDPRequest",
10181 FT_BYTES, BASE_NONE, NULL, 0,
10182 NULL, HFILL }},
10183 { &hf_ain_eDPNotification,
10184 { "eDPNotification", "ain.eDPNotification",
10185 FT_BYTES, BASE_NONE, NULL, 0,
10186 NULL, HFILL }},
10187 { &hf_ain_oNoAnswerTimer,
10188 { "oNoAnswerTimer", "ain.oNoAnswerTimer",
10189 FT_UINT32, BASE_DEC, NULL, 0,
10190 NULL, HFILL }},
10191 { &hf_ain_tNoAnswerTimer,
10192 { "tNoAnswerTimer", "ain.tNoAnswerTimer",
10193 FT_UINT32, BASE_DEC, NULL, 0,
10194 NULL, HFILL }},
10195 { &hf_ain_timeoutTimer,
10196 { "timeoutTimer", "ain.timeoutTimer",
10197 FT_UINT32, BASE_DEC, VALS(ain_TimeoutTimer_U_vals), 0,
10198 NULL, HFILL }},
10199 { &hf_ain_oDTMFDigitsString,
10200 { "oDTMFDigitsString", "ain.oDTMFDigitsString",
10201 FT_BYTES, BASE_NONE, NULL, 0,
10202 NULL, HFILL }},
10203 { &hf_ain_oDTMFNumberOfDigits,
10204 { "oDTMFNumberOfDigits", "ain.oDTMFNumberOfDigits",
10205 FT_UINT32, BASE_DEC, NULL, 0,
10206 NULL, HFILL }},
10207 { &hf_ain_tDTMFDigitString,
10208 { "tDTMFDigitString", "ain.tDTMFDigitString",
10209 FT_BYTES, BASE_NONE, NULL, 0,
10210 NULL, HFILL }},
10211 { &hf_ain_tDTMFNumberOfDigits,
10212 { "tDTMFNumberOfDigits", "ain.tDTMFNumberOfDigits",
10213 FT_UINT32, BASE_DEC, NULL, 0,
10214 NULL, HFILL }},
10215 { &hf_ain_statusCause,
10216 { "statusCause", "ain.statusCause",
10217 FT_UINT32, BASE_DEC, VALS(ain_StatusCause_U_vals), 0,
10218 NULL, HFILL }},
10219 { &hf_ain_echoData,
10220 { "echoData", "ain.echoData",
10221 FT_BYTES, BASE_NONE, NULL, 0,
10222 NULL, HFILL }},
10223 { &hf_ain_terminationIndicator,
10224 { "terminationIndicator", "ain.terminationIndicator",
10225 FT_BYTES, BASE_NONE, NULL, 0,
10226 NULL, HFILL }},
10227 { &hf_ain_connectTime,
10228 { "connectTime", "ain.connectTime",
10229 FT_BYTES, BASE_NONE, NULL, 0,
10230 NULL, HFILL }},
10231 { &hf_ain_resultCause,
10232 { "resultCause", "ain.resultCause",
10233 FT_UINT32, BASE_DEC, VALS(ain_ResultCause_U_vals), 0,
10234 NULL, HFILL }},
10235 { &hf_ain_administrableObject,
10236 { "administrableObject", "ain.administrableObject",
10237 FT_UINT32, BASE_DEC, VALS(ain_AdministrableObject_vals), 0,
10238 NULL, HFILL }},
10239 { &hf_ain_editListType,
10240 { "editListType", "ain.editListType",
10241 FT_UINT32, BASE_DEC, VALS(ain_EditListType_vals), 0,
10242 NULL, HFILL }},
10243 { &hf_ain_triggerCriteriaFlag,
10244 { "triggerCriteriaFlag", "ain.triggerCriteriaFlag",
10245 FT_BYTES, BASE_NONE, NULL, 0,
10246 NULL, HFILL }},
10247 { &hf_ain_applicationErrorString,
10248 { "applicationErrorString", "ain.applicationErrorString_element",
10249 FT_NONE, BASE_NONE, NULL, 0,
10250 NULL, HFILL }},
10251 { &hf_ain_failureCauseData,
10252 { "failureCauseData", "ain.failureCauseData",
10253 FT_BYTES, BASE_NONE, NULL, 0,
10254 NULL, HFILL }},
10255 { &hf_ain_triggerItemAssignment,
10256 { "triggerItemAssignment", "ain.triggerItemAssignment_element",
10257 FT_NONE, BASE_NONE, NULL, 0,
10258 NULL, HFILL }},
10259 { &hf_ain_sSPUserResource,
10260 { "sSPUserResource", "ain.sSPUserResource_element",
10261 FT_NONE, BASE_NONE, NULL, 0,
10262 NULL, HFILL }},
10263 { &hf_ain_srhrGroup,
10264 { "srhrGroup", "ain.srhrGroup_element",
10265 FT_NONE, BASE_NONE, NULL, 0,
10266 NULL, HFILL }},
10267 { &hf_ain_networkTestDesignator,
10268 { "networkTestDesignator", "ain.networkTestDesignator_element",
10269 FT_NONE, BASE_NONE, NULL, 0,
10270 NULL, HFILL }},
10271 { &hf_ain_operationsMonitoringAssignment,
10272 { "operationsMonitoringAssignment", "ain.operationsMonitoringAssignment_element",
10273 FT_NONE, BASE_NONE, NULL, 0,
10274 NULL, HFILL }},
10275 { &hf_ain_sSPUserResourceID,
10276 { "sSPUserResourceID", "ain.sSPUserResourceID",
10277 FT_UINT32, BASE_DEC, VALS(ain_SSPUserResourceID_vals), 0,
10278 NULL, HFILL }},
10279 { &hf_ain_triggerItemID,
10280 { "triggerItemID", "ain.triggerItemID_element",
10281 FT_NONE, BASE_NONE, NULL, 0,
10282 NULL, HFILL }},
10283 { &hf_ain_activationStateCode,
10284 { "activationStateCode", "ain.activationStateCode",
10285 FT_UINT32, BASE_DEC, VALS(ain_ActivationStateCode_vals), 0,
10286 NULL, HFILL }},
10287 { &hf_ain_potentialUse,
10288 { "potentialUse", "ain.potentialUse",
10289 FT_UINT32, BASE_DEC, VALS(ain_PotentialUse_vals), 0,
10290 NULL, HFILL }},
10291 { &hf_ain_sSPUserResourceSubID,
10292 { "sSPUserResourceSubID", "ain.sSPUserResourceSubID",
10293 FT_UINT32, BASE_DEC, VALS(ain_SSPUserResourceSubID_vals), 0,
10294 NULL, HFILL }},
10295 { &hf_ain_dn,
10296 { "dn", "ain.dn",
10297 FT_BYTES, BASE_NONE, NULL, 0,
10298 NULL, HFILL }},
10299 { &hf_ain_dnCtID,
10300 { "dnCtID", "ain.dnCtID_element",
10301 FT_NONE, BASE_NONE, NULL, 0,
10302 NULL, HFILL }},
10303 { &hf_ain_spid,
10304 { "spid", "ain.spid",
10305 FT_BYTES, BASE_NONE, NULL, 0,
10306 NULL, HFILL }},
10307 { &hf_ain_trunkGroupID,
10308 { "trunkGroupID", "ain.trunkGroupID",
10309 FT_UINT32, BASE_DEC, NULL, 0,
10310 NULL, HFILL }},
10311 { &hf_ain_localSSPID,
10312 { "localSSPID", "ain.localSSPID",
10313 FT_STRING, BASE_NONE, NULL, 0,
10314 NULL, HFILL }},
10315 { &hf_ain_publicDialingPlanID,
10316 { "publicDialingPlanID", "ain.publicDialingPlanID",
10317 FT_STRING, BASE_NONE, NULL, 0,
10318 NULL, HFILL }},
10319 { &hf_ain_pRIOfficeEquipmentID,
10320 { "pRIOfficeEquipmentID", "ain.pRIOfficeEquipmentID",
10321 FT_STRING, BASE_NONE, NULL, 0,
10322 NULL, HFILL }},
10323 { &hf_ain_basicBusinessGroupID,
10324 { "basicBusinessGroupID", "ain.basicBusinessGroupID",
10325 FT_STRING, BASE_NONE, NULL, 0,
10326 NULL, HFILL }},
10327 { &hf_ain_basicBusinessGroupDialingPlanID,
10328 { "basicBusinessGroupDialingPlanID", "ain.basicBusinessGroupDialingPlanID",
10329 FT_STRING, BASE_NONE, NULL, 0,
10330 NULL, HFILL }},
10331 { &hf_ain_aFRPatternID,
10332 { "aFRPatternID", "ain.aFRPatternID",
10333 FT_STRING, BASE_NONE, NULL, 0,
10334 NULL, HFILL }},
10335 { &hf_ain_officeEquipmentID,
10336 { "officeEquipmentID", "ain.officeEquipmentID",
10337 FT_STRING, BASE_NONE, NULL, 0,
10338 NULL, HFILL }},
10339 { &hf_ain_ct,
10340 { "ct", "ain.ct",
10341 FT_UINT32, BASE_DEC, VALS(ain_Ct_vals), 0,
10342 NULL, HFILL }},
10343 { &hf_ain_dPNumber,
10344 { "dPNumber", "ain.dPNumber",
10345 FT_UINT32, BASE_DEC, NULL, 0,
10346 NULL, HFILL }},
10347 { &hf_ain_triggerItemSubnumber,
10348 { "triggerItemSubnumber", "ain.triggerItemSubnumber",
10349 FT_STRING, BASE_NONE, NULL, 0,
10350 NULL, HFILL }},
10351 { &hf_ain_iSDNBChannelID,
10352 { "iSDNBChannelID", "ain.iSDNBChannelID_element",
10353 FT_NONE, BASE_NONE, NULL, 0,
10354 NULL, HFILL }},
10355 { &hf_ain_pRIDS1ID,
10356 { "pRIDS1ID", "ain.pRIDS1ID",
10357 FT_UINT32, BASE_DEC, NULL, 0,
10358 NULL, HFILL }},
10359 { &hf_ain_pRIDS0ID,
10360 { "pRIDS0ID", "ain.pRIDS0ID",
10361 FT_UINT32, BASE_DEC, NULL, 0,
10362 NULL, HFILL }},
10363 { &hf_ain_updateGroups,
10364 { "updateGroups", "ain.updateGroups",
10365 FT_UINT32, BASE_DEC, VALS(ain_UpdateGroups_vals), 0,
10366 NULL, HFILL }},
10367 { &hf_ain_cancelInterdigitTimer,
10368 { "cancelInterdigitTimer", "ain.cancelInterdigitTimer",
10369 FT_UINT32, BASE_DEC, VALS(ain_ActivationStateCode_vals), 0,
10370 NULL, HFILL }},
10371 { &hf_ain_updateGroup1,
10372 { "updateGroup1", "ain.updateGroup1_element",
10373 FT_NONE, BASE_NONE, NULL, 0,
10374 NULL, HFILL }},
10375 { &hf_ain_updateGroup2,
10376 { "updateGroup2", "ain.updateGroup2_element",
10377 FT_NONE, BASE_NONE, NULL, 0,
10378 NULL, HFILL }},
10379 { &hf_ain_updateGroup3,
10380 { "updateGroup3", "ain.updateGroup3_element",
10381 FT_NONE, BASE_NONE, NULL, 0,
10382 NULL, HFILL }},
10383 { &hf_ain_updateGroup4,
10384 { "updateGroup4", "ain.updateGroup4_element",
10385 FT_NONE, BASE_NONE, NULL, 0,
10386 NULL, HFILL }},
10387 { &hf_ain_updateGroup5,
10388 { "updateGroup5", "ain.updateGroup5_element",
10389 FT_NONE, BASE_NONE, NULL, 0,
10390 NULL, HFILL }},
10391 { &hf_ain_updateGroup6,
10392 { "updateGroup6", "ain.updateGroup6_element",
10393 FT_NONE, BASE_NONE, NULL, 0,
10394 NULL, HFILL }},
10395 { &hf_ain_updateGroup7,
10396 { "updateGroup7", "ain.updateGroup7_element",
10397 FT_NONE, BASE_NONE, NULL, 0,
10398 NULL, HFILL }},
10399 { &hf_ain_updateGroup8,
10400 { "updateGroup8", "ain.updateGroup8_element",
10401 FT_NONE, BASE_NONE, NULL, 0,
10402 NULL, HFILL }},
10403 { &hf_ain_updateGroup9,
10404 { "updateGroup9", "ain.updateGroup9_element",
10405 FT_NONE, BASE_NONE, NULL, 0,
10406 NULL, HFILL }},
10407 { &hf_ain_service1,
10408 { "service1", "ain.service1",
10409 FT_UINT32, BASE_DEC, VALS(ain_Service1_vals), 0,
10410 NULL, HFILL }},
10411 { &hf_ain_action1,
10412 { "action1", "ain.action1",
10413 FT_UINT32, BASE_DEC, VALS(ain_Action1_vals), 0,
10414 NULL, HFILL }},
10415 { &hf_ain_service2,
10416 { "service2", "ain.service2",
10417 FT_UINT32, BASE_DEC, VALS(ain_Service2_vals), 0,
10418 NULL, HFILL }},
10419 { &hf_ain_action2,
10420 { "action2", "ain.action2",
10421 FT_UINT32, BASE_DEC, VALS(ain_Action2_vals), 0,
10422 NULL, HFILL }},
10423 { &hf_ain_delayInterval,
10424 { "delayInterval", "ain.delayInterval",
10425 FT_UINT32, BASE_DEC, NULL, 0,
10426 NULL, HFILL }},
10427 { &hf_ain_service3,
10428 { "service3", "ain.service3",
10429 FT_UINT32, BASE_DEC, VALS(ain_Service3_vals), 0,
10430 NULL, HFILL }},
10431 { &hf_ain_action3,
10432 { "action3", "ain.action3",
10433 FT_UINT32, BASE_DEC, VALS(ain_Action3_vals), 0,
10434 NULL, HFILL }},
10435 { &hf_ain_editSpecificEntry,
10436 { "editSpecificEntry", "ain.editSpecificEntry_element",
10437 FT_NONE, BASE_NONE, NULL, 0,
10438 NULL, HFILL }},
10439 { &hf_ain_editAllEntries,
10440 { "editAllEntries", "ain.editAllEntries",
10441 FT_UINT32, BASE_DEC, VALS(ain_EditAllEntries_vals), 0,
10442 NULL, HFILL }},
10443 { &hf_ain_entry,
10444 { "entry", "ain.entry",
10445 FT_UINT32, BASE_DEC, VALS(ain_Entry_vals), 0,
10446 NULL, HFILL }},
10447 { &hf_ain_speedCallingCode,
10448 { "speedCallingCode", "ain.speedCallingCode",
10449 FT_STRING, BASE_NONE, NULL, 0,
10450 NULL, HFILL }},
10451 { &hf_ain_memorySlot,
10452 { "memorySlot", "ain.memorySlot",
10453 FT_UINT32, BASE_DEC, VALS(ain_MemorySlot1_vals), 0,
10454 "MemorySlot1", HFILL }},
10455 { &hf_ain_service4,
10456 { "service4", "ain.service4",
10457 FT_UINT32, BASE_DEC, VALS(ain_Service4_vals), 0,
10458 NULL, HFILL }},
10459 { &hf_ain_action4,
10460 { "action4", "ain.action4",
10461 FT_UINT32, BASE_DEC, VALS(ain_Action4_vals), 0,
10462 NULL, HFILL }},
10463 { &hf_ain_forwardingDn,
10464 { "forwardingDn", "ain.forwardingDn",
10465 FT_UINT32, BASE_DEC, VALS(ain_ForwardingDn_vals), 0,
10466 NULL, HFILL }},
10467 { &hf_ain_set,
10468 { "set", "ain.set",
10469 FT_UINT32, BASE_DEC, VALS(ain_Set_vals), 0,
10470 NULL, HFILL }},
10471 { &hf_ain_clear,
10472 { "clear", "ain.clear",
10473 FT_UINT32, BASE_DEC, VALS(ain_Clear_vals), 0,
10474 NULL, HFILL }},
10475 { &hf_ain_service5,
10476 { "service5", "ain.service5",
10477 FT_UINT32, BASE_DEC, VALS(ain_Service5_vals), 0,
10478 NULL, HFILL }},
10479 { &hf_ain_action5,
10480 { "action5", "ain.action5",
10481 FT_UINT32, BASE_DEC, VALS(ain_Action5_vals), 0,
10482 NULL, HFILL }},
10483 { &hf_ain_service6,
10484 { "service6", "ain.service6",
10485 FT_UINT32, BASE_DEC, VALS(ain_Service6_vals), 0,
10486 NULL, HFILL }},
10487 { &hf_ain_action6,
10488 { "action6", "ain.action6",
10489 FT_UINT32, BASE_DEC, VALS(ain_Action6_vals), 0,
10490 NULL, HFILL }},
10491 { &hf_ain_service7,
10492 { "service7", "ain.service7",
10493 FT_UINT32, BASE_DEC, VALS(ain_Service7_vals), 0,
10494 NULL, HFILL }},
10495 { &hf_ain_action7,
10496 { "action7", "ain.action7",
10497 FT_UINT32, BASE_DEC, VALS(ain_Action7_vals), 0,
10498 NULL, HFILL }},
10499 { &hf_ain_toggle,
10500 { "toggle", "ain.toggle",
10501 FT_UINT32, BASE_DEC, VALS(ain_Toggle_vals), 0,
10502 NULL, HFILL }},
10503 { &hf_ain_service8,
10504 { "service8", "ain.service8",
10505 FT_UINT32, BASE_DEC, VALS(ain_Service8_vals), 0,
10506 NULL, HFILL }},
10507 { &hf_ain_action8,
10508 { "action8", "ain.action8",
10509 FT_UINT32, BASE_DEC, VALS(ain_Action8_vals), 0,
10510 NULL, HFILL }},
10511 { &hf_ain_action8_invoke,
10512 { "invoke", "ain.action8.invoke",
10513 FT_UINT32, BASE_DEC, VALS(ain_Invoke8_vals), 0,
10514 "Invoke8", HFILL }},
10515 { &hf_ain_service9,
10516 { "service9", "ain.service9",
10517 FT_UINT32, BASE_DEC, VALS(ain_Service9_vals), 0,
10518 NULL, HFILL }},
10519 { &hf_ain_action9,
10520 { "action9", "ain.action9",
10521 FT_UINT32, BASE_DEC, VALS(ain_Action9_vals), 0,
10522 NULL, HFILL }},
10523 { &hf_ain_changeList,
10524 { "changeList", "ain.changeList_element",
10525 FT_NONE, BASE_NONE, NULL, 0,
10526 NULL, HFILL }},
10527 { &hf_ain_srhrID,
10528 { "srhrID", "ain.srhrID",
10529 FT_BYTES, BASE_NONE, NULL, 0,
10530 NULL, HFILL }},
10531 { &hf_ain_ntdID,
10532 { "ntdID", "ain.ntdID",
10533 FT_UINT32, BASE_DEC, VALS(ain_NtdID_vals), 0,
10534 NULL, HFILL }},
10535 { &hf_ain_ntdIndirectID,
10536 { "ntdIndirectID", "ain.ntdIndirectID",
10537 FT_UINT32, BASE_DEC, VALS(ain_SSPUserResourceID_vals), 0,
10538 NULL, HFILL }},
10539 { &hf_ain_operationsMonitoredItemID,
10540 { "operationsMonitoredItemID", "ain.operationsMonitoredItemID",
10541 FT_UINT32, BASE_DEC, VALS(ain_OperationsMonitoredItemID_vals), 0,
10542 NULL, HFILL }},
10543 { &hf_ain_aMATimeDuration,
10544 { "aMATimeDuration", "ain.aMATimeDuration",
10545 FT_BYTES, BASE_NONE, NULL, 0,
10546 NULL, HFILL }},
10547 { &hf_ain_aMATimeGuard,
10548 { "aMATimeGuard", "ain.aMATimeGuard",
10549 FT_UINT32, BASE_DEC, VALS(ain_AMATimeGuard_vals), 0,
10550 NULL, HFILL }},
10551 { &hf_ain_ampAINNodeID,
10552 { "ampAINNodeID", "ain.ampAINNodeID",
10553 FT_UINT32, BASE_DEC, VALS(ain_AmpAINNodeID_vals), 0,
10554 NULL, HFILL }},
10555 { &hf_ain_ampCLogSeqNo,
10556 { "ampCLogSeqNo", "ain.ampCLogSeqNo",
10557 FT_UINT32, BASE_DEC, NULL, 0,
10558 NULL, HFILL }},
10559 { &hf_ain_ampCLogRepInd,
10560 { "ampCLogRepInd", "ain.ampCLogRepInd",
10561 FT_UINT32, BASE_DEC, VALS(ain_AmpCLogRepInd_vals), 0,
10562 NULL, HFILL }},
10563 { &hf_ain_ampCallProgInd,
10564 { "ampCallProgInd", "ain.ampCallProgInd",
10565 FT_UINT32, BASE_DEC, VALS(ain_AmpCallProgInd_vals), 0,
10566 NULL, HFILL }},
10567 { &hf_ain_ampTestReqInd,
10568 { "ampTestReqInd", "ain.ampTestReqInd",
10569 FT_UINT32, BASE_DEC, NULL, 0,
10570 NULL, HFILL }},
10571 { &hf_ain_ampCLogName,
10572 { "ampCLogName", "ain.ampCLogName",
10573 FT_BYTES, BASE_NONE, NULL, 0,
10574 NULL, HFILL }},
10575 { &hf_ain_ampSvcProvID,
10576 { "ampSvcProvID", "ain.ampSvcProvID",
10577 FT_UINT32, BASE_DEC, VALS(ain_AmpSvcProvID_vals), 0,
10578 NULL, HFILL }},
10579 { &hf_ain_spcID,
10580 { "spcID", "ain.spcID",
10581 FT_BYTES, BASE_NONE, NULL, 0,
10582 NULL, HFILL }},
10583 { &hf_ain_iSDNDeviceID,
10584 { "iSDNDeviceID", "ain.iSDNDeviceID",
10585 FT_BYTES, BASE_NONE, NULL, 0,
10586 NULL, HFILL }},
10587 { &hf_ain_ocn,
10588 { "ocn", "ain.ocn",
10589 FT_STRING, BASE_NONE, NULL, 0,
10590 NULL, HFILL }},
10591 { &hf_ain_errorCause,
10592 { "errorCause", "ain.errorCause",
10593 FT_UINT32, BASE_DEC, VALS(ain_ErrorCause_U_vals), 0,
10594 NULL, HFILL }},
10595 { &hf_ain_failedMessage,
10596 { "failedMessage", "ain.failedMessage_element",
10597 FT_NONE, BASE_NONE, NULL, 0,
10598 NULL, HFILL }},
10599 { &hf_ain__untag_item,
10600 { "DisplayInformation", "ain.DisplayInformation",
10601 FT_UINT32, BASE_DEC, VALS(ain_DisplayInformation_vals), 0,
10602 NULL, HFILL }},
10603 { &hf_ain_blank,
10604 { "blank", "ain.blank",
10605 FT_BYTES, BASE_NONE, NULL, 0,
10606 "OCTET_STRING_SIZE_1_20", HFILL }},
10607 { &hf_ain_skip,
10608 { "skip", "ain.skip",
10609 FT_BYTES, BASE_NONE, NULL, 0,
10610 "OCTET_STRING_SIZE_1_20", HFILL }},
10611 { &hf_ain_continuation,
10612 { "continuation", "ain.continuation",
10613 FT_BYTES, BASE_NONE, NULL, 0,
10614 "OCTET_STRING_SIZE_1_20", HFILL }},
10615 { &hf_ain_calledAddress,
10616 { "calledAddress", "ain.calledAddress",
10617 FT_BYTES, BASE_NONE, NULL, 0,
10618 "OCTET_STRING_SIZE_1_20", HFILL }},
10619 { &hf_ain_cause,
10620 { "cause", "ain.cause",
10621 FT_BYTES, BASE_NONE, NULL, 0,
10622 "OCTET_STRING_SIZE_1_20", HFILL }},
10623 { &hf_ain_progressIndicator,
10624 { "progressIndicator", "ain.progressIndicator",
10625 FT_BYTES, BASE_NONE, NULL, 0,
10626 "OCTET_STRING_SIZE_1_20", HFILL }},
10627 { &hf_ain_displayInformation_notificationIndicator,
10628 { "notificationIndicator", "ain.displayInformation.notificationIndicator",
10629 FT_BYTES, BASE_NONE, NULL, 0,
10630 "OCTET_STRING_SIZE_1_20", HFILL }},
10631 { &hf_ain_prompt,
10632 { "prompt", "ain.prompt",
10633 FT_BYTES, BASE_NONE, NULL, 0,
10634 "OCTET_STRING_SIZE_1_20", HFILL }},
10635 { &hf_ain_accumulatedDigits,
10636 { "accumulatedDigits", "ain.accumulatedDigits",
10637 FT_BYTES, BASE_NONE, NULL, 0,
10638 "OCTET_STRING_SIZE_1_20", HFILL }},
10639 { &hf_ain_status,
10640 { "status", "ain.status",
10641 FT_BYTES, BASE_NONE, NULL, 0,
10642 "OCTET_STRING_SIZE_1_20", HFILL }},
10643 { &hf_ain_inband,
10644 { "inband", "ain.inband",
10645 FT_BYTES, BASE_NONE, NULL, 0,
10646 "OCTET_STRING_SIZE_1_20", HFILL }},
10647 { &hf_ain_callingAddress,
10648 { "callingAddress", "ain.callingAddress",
10649 FT_BYTES, BASE_NONE, NULL, 0,
10650 "OCTET_STRING_SIZE_1_20", HFILL }},
10651 { &hf_ain_reason,
10652 { "reason", "ain.reason",
10653 FT_BYTES, BASE_NONE, NULL, 0,
10654 "OCTET_STRING_SIZE_1_20", HFILL }},
10655 { &hf_ain_callingPartyName,
10656 { "callingPartyName", "ain.callingPartyName",
10657 FT_BYTES, BASE_NONE, NULL, 0,
10658 "OCTET_STRING_SIZE_1_20", HFILL }},
10659 { &hf_ain_calledPartyName,
10660 { "calledPartyName", "ain.calledPartyName",
10661 FT_BYTES, BASE_NONE, NULL, 0,
10662 "OCTET_STRING_SIZE_1_20", HFILL }},
10663 { &hf_ain_originalCalledName,
10664 { "originalCalledName", "ain.originalCalledName",
10665 FT_BYTES, BASE_NONE, NULL, 0,
10666 "OCTET_STRING_SIZE_1_20", HFILL }},
10667 { &hf_ain_redirectingName,
10668 { "redirectingName", "ain.redirectingName",
10669 FT_BYTES, BASE_NONE, NULL, 0,
10670 "OCTET_STRING_SIZE_1_20", HFILL }},
10671 { &hf_ain_connectedName,
10672 { "connectedName", "ain.connectedName",
10673 FT_BYTES, BASE_NONE, NULL, 0,
10674 "OCTET_STRING_SIZE_1_20", HFILL }},
10675 { &hf_ain_origRestrictions,
10676 { "origRestrictions", "ain.origRestrictions",
10677 FT_BYTES, BASE_NONE, NULL, 0,
10678 "OCTET_STRING_SIZE_1_20", HFILL }},
10679 { &hf_ain_dateTimeOfDay,
10680 { "dateTimeOfDay", "ain.dateTimeOfDay",
10681 FT_BYTES, BASE_NONE, NULL, 0,
10682 "OCTET_STRING_SIZE_1_20", HFILL }},
10683 { &hf_ain_callAppearanceID,
10684 { "callAppearanceID", "ain.callAppearanceID",
10685 FT_BYTES, BASE_NONE, NULL, 0,
10686 "OCTET_STRING_SIZE_1_20", HFILL }},
10687 { &hf_ain_featureAddress,
10688 { "featureAddress", "ain.featureAddress",
10689 FT_BYTES, BASE_NONE, NULL, 0,
10690 "OCTET_STRING_SIZE_1_20", HFILL }},
10691 { &hf_ain_redirectionName,
10692 { "redirectionName", "ain.redirectionName",
10693 FT_BYTES, BASE_NONE, NULL, 0,
10694 "OCTET_STRING_SIZE_1_20", HFILL }},
10695 { &hf_ain_redirectionNumber,
10696 { "redirectionNumber", "ain.redirectionNumber",
10697 FT_BYTES, BASE_NONE, NULL, 0,
10698 "OCTET_STRING_SIZE_1_20", HFILL }},
10699 { &hf_ain_redirectingNumber,
10700 { "redirectingNumber", "ain.redirectingNumber",
10701 FT_BYTES, BASE_NONE, NULL, 0,
10702 "OCTET_STRING_SIZE_1_20", HFILL }},
10703 { &hf_ain_originalCalledNumber,
10704 { "originalCalledNumber", "ain.originalCalledNumber",
10705 FT_BYTES, BASE_NONE, NULL, 0,
10706 "OCTET_STRING_SIZE_1_20", HFILL }},
10707 { &hf_ain_connectedNumber,
10708 { "connectedNumber", "ain.connectedNumber",
10709 FT_BYTES, BASE_NONE, NULL, 0,
10710 "OCTET_STRING_SIZE_1_20", HFILL }},
10711 { &hf_ain_text,
10712 { "text", "ain.text",
10713 FT_BYTES, BASE_NONE, NULL, 0,
10714 "OCTET_STRING_SIZE_1_20", HFILL }},
10715 { &hf_ain_redirectingReason,
10716 { "redirectingReason", "ain.redirectingReason",
10717 FT_BYTES, BASE_NONE, NULL, 0,
10718 "OCTET_STRING_SIZE_1_20", HFILL }},
10719 { &hf_ain_assignmentAuthority,
10720 { "assignmentAuthority", "ain.assignmentAuthority",
10721 FT_OID, BASE_NONE, NULL, 0,
10722 NULL, HFILL }},
10723 { &hf_ain_parameters,
10724 { "parameters", "ain.parameters_element",
10725 FT_NONE, BASE_NONE, NULL, 0,
10726 NULL, HFILL }},
10727 { &hf_ain_mlhg,
10728 { "mlhg", "ain.mlhg",
10729 FT_UINT32, BASE_DEC, NULL, 0,
10730 NULL, HFILL }},
10731 { &hf_ain_opCode,
10732 { "opCode", "ain.opCode",
10733 FT_INT32, BASE_DEC, NULL, 0,
10734 "INTEGER", HFILL }},
10735 { &hf_ain_parameter,
10736 { "parameter", "ain.parameter",
10737 FT_BYTES, BASE_NONE, NULL, 0,
10738 "OCTET_STRING", HFILL }},
10739 { &hf_ain_invParms,
10740 { "invParms", "ain.invParms",
10741 FT_UINT32, BASE_DEC, NULL, 0,
10742 NULL, HFILL }},
10743 { &hf_ain_InvParms_item,
10744 { "Parms", "ain.Parms",
10745 FT_UINT32, BASE_DEC, VALS(ain_Parms_vals), 0,
10746 NULL, HFILL }},
10747 { &hf_ain_oDTMFNumberofDigits,
10748 { "oDTMFNumberofDigits", "ain.oDTMFNumberofDigits",
10749 FT_UINT32, BASE_DEC, NULL, 0,
10750 NULL, HFILL }},
10751 { &hf_ain_timerUpdated,
10752 { "timerUpdated", "ain.timerUpdated",
10753 FT_UINT32, BASE_DEC, VALS(ain_TimerUpdated_U_vals), 0,
10754 NULL, HFILL }},
10755 { &hf_ain_derviceProviderID,
10756 { "derviceProviderID", "ain.derviceProviderID",
10757 FT_UINT32, BASE_DEC, VALS(ain_ServiceProviderID_vals), 0,
10758 "ServiceProviderID", HFILL }},
10759 { &hf_ain_aMABAFModules,
10760 { "aMABAFModules", "ain.aMABAFModules",
10761 FT_BYTES, BASE_NONE, NULL, 0,
10762 NULL, HFILL }},
10763 { &hf_ain_aMALineNumber,
10764 { "aMALineNumber", "ain.aMALineNumber",
10765 FT_BYTES, BASE_NONE, NULL, 0,
10766 NULL, HFILL }},
10767 { &hf_ain_aMADigitsDialedWC,
10768 { "aMADigitsDialedWC", "ain.aMADigitsDialedWC",
10769 FT_BYTES, BASE_NONE, NULL, 0,
10770 NULL, HFILL }},
10771 { &hf_ain_genericAddress,
10772 { "genericAddress", "ain.genericAddress",
10773 FT_BYTES, BASE_NONE, NULL, 0,
10774 NULL, HFILL }},
10775 { &hf_ain_signalingPointCode,
10776 { "signalingPointCode", "ain.signalingPointCode",
10777 FT_BYTES, BASE_NONE, NULL, 0,
10778 NULL, HFILL }},
10779 { &hf_ain_nationalGapInterval,
10780 { "nationalGapInterval", "ain.nationalGapInterval",
10781 FT_UINT32, BASE_DEC, VALS(ain_NationalGapInterval_U_vals), 0,
10782 NULL, HFILL }},
10783 { &hf_ain_privateGapInterval,
10784 { "privateGapInterval", "ain.privateGapInterval",
10785 FT_UINT32, BASE_DEC, VALS(ain_PrivateGapInterval_U_vals), 0,
10786 NULL, HFILL }},
10787 { &hf_ain__untag_item_01,
10788 { "GenericAddress", "ain.GenericAddress",
10789 FT_BYTES, BASE_NONE, NULL, 0,
10790 NULL, HFILL }},
10791 { &hf_ain__untag_item_02,
10792 { "GenericDigits", "ain.GenericDigits",
10793 FT_BYTES, BASE_NONE, NULL, 0,
10794 NULL, HFILL }},
10795 { &hf_ain_entireList,
10796 { "entireList", "ain.entireList",
10797 FT_UINT32, BASE_DEC, NULL, 0,
10798 NULL, HFILL }},
10799 { &hf_ain_memorySlot_01,
10800 { "memorySlot", "ain.memorySlot_element",
10801 FT_NONE, BASE_NONE, NULL, 0,
10802 NULL, HFILL }},
10803 { &hf_ain_listSize,
10804 { "listSize", "ain.listSize",
10805 FT_UINT32, BASE_DEC, NULL, 0,
10806 NULL, HFILL }},
10807 { &hf_ain_forwardToDn,
10808 { "forwardToDn", "ain.forwardToDn",
10809 FT_BYTES, BASE_NONE, NULL, 0,
10810 NULL, HFILL }},
10811 { &hf_ain_empty,
10812 { "empty", "ain.empty",
10813 FT_BYTES, BASE_NONE, NULL, 0,
10814 NULL, HFILL }},
10815 { &hf_ain_EntireList_item,
10816 { "Entry2", "ain.Entry2",
10817 FT_UINT32, BASE_DEC, VALS(ain_Entry2_vals), 0,
10818 NULL, HFILL }},
10819 { &hf_ain_privateDn,
10820 { "privateDn", "ain.privateDn",
10821 FT_UINT32, BASE_DEC, VALS(ain_PrivateDn_vals), 0,
10822 NULL, HFILL }},
10823 { &hf_ain_incoming,
10824 { "incoming", "ain.incoming_element",
10825 FT_NONE, BASE_NONE, NULL, 0,
10826 NULL, HFILL }},
10827 { &hf_ain_outgoing,
10828 { "outgoing", "ain.outgoing_element",
10829 FT_NONE, BASE_NONE, NULL, 0,
10830 NULL, HFILL }},
10831 { &hf_ain_aINDigits,
10832 { "aINDigits", "ain.aINDigits",
10833 FT_BYTES, BASE_NONE, NULL, 0,
10834 NULL, HFILL }},
10835 { &hf_ain_timestamp,
10836 { "timestamp", "ain.timestamp",
10837 FT_INT32, BASE_DEC, NULL, 0,
10838 NULL, HFILL }},
10839 { &hf_ain_requestGroups,
10840 { "requestGroups", "ain.requestGroups",
10841 FT_UINT32, BASE_DEC, VALS(ain_RequestGroups_vals), 0,
10842 NULL, HFILL }},
10843 { &hf_ain_requestMemorySlot,
10844 { "requestMemorySlot", "ain.requestMemorySlot",
10845 FT_BYTES, BASE_NONE, NULL, 0,
10846 NULL, HFILL }},
10847 { &hf_ain_requestGroup1,
10848 { "requestGroup1", "ain.requestGroup1_element",
10849 FT_NONE, BASE_NONE, NULL, 0,
10850 NULL, HFILL }},
10851 { &hf_ain_requestGroup2,
10852 { "requestGroup2", "ain.requestGroup2_element",
10853 FT_NONE, BASE_NONE, NULL, 0,
10854 NULL, HFILL }},
10855 { &hf_ain_requestGroup3,
10856 { "requestGroup3", "ain.requestGroup3_element",
10857 FT_NONE, BASE_NONE, NULL, 0,
10858 NULL, HFILL }},
10859 { &hf_ain_requestGroup4,
10860 { "requestGroup4", "ain.requestGroup4_element",
10861 FT_NONE, BASE_NONE, NULL, 0,
10862 NULL, HFILL }},
10863 { &hf_ain_requestGroup5,
10864 { "requestGroup5", "ain.requestGroup5_element",
10865 FT_NONE, BASE_NONE, NULL, 0,
10866 NULL, HFILL }},
10867 { &hf_ain_requestGroup6,
10868 { "requestGroup6", "ain.requestGroup6_element",
10869 FT_NONE, BASE_NONE, NULL, 0,
10870 NULL, HFILL }},
10871 { &hf_ain_request1,
10872 { "request1", "ain.request1",
10873 FT_BYTES, BASE_NONE, NULL, 0,
10874 NULL, HFILL }},
10875 { &hf_ain_request2,
10876 { "request2", "ain.request2",
10877 FT_BYTES, BASE_NONE, NULL, 0,
10878 NULL, HFILL }},
10879 { &hf_ain_request3,
10880 { "request3", "ain.request3",
10881 FT_BYTES, BASE_NONE, NULL, 0,
10882 NULL, HFILL }},
10883 { &hf_ain_request4,
10884 { "request4", "ain.request4",
10885 FT_BYTES, BASE_NONE, NULL, 0,
10886 NULL, HFILL }},
10887 { &hf_ain_request5,
10888 { "request5", "ain.request5",
10889 FT_BYTES, BASE_NONE, NULL, 0,
10890 NULL, HFILL }},
10891 { &hf_ain_request6,
10892 { "request6", "ain.request6",
10893 FT_BYTES, BASE_NONE, NULL, 0,
10894 NULL, HFILL }},
10895 { &hf_ain_msrID,
10896 { "msrID", "ain.msrID",
10897 FT_BYTES, BASE_NONE, NULL, 0,
10898 NULL, HFILL }},
10899 { &hf_ain_announcementBlock,
10900 { "announcementBlock", "ain.announcementBlock_element",
10901 FT_NONE, BASE_NONE, NULL, 0,
10902 NULL, HFILL }},
10903 { &hf_ain_announcementDigitBlock,
10904 { "announcementDigitBlock", "ain.announcementDigitBlock_element",
10905 FT_NONE, BASE_NONE, NULL, 0,
10906 NULL, HFILL }},
10907 { &hf_ain_flexParameterBlock,
10908 { "flexParameterBlock", "ain.flexParameterBlock",
10909 FT_BYTES, BASE_NONE, NULL, 0,
10910 NULL, HFILL }},
10911 { &hf_ain_uninterAnnounceBlock,
10912 { "uninterAnnounceBlock", "ain.uninterAnnounceBlock",
10913 FT_UINT32, BASE_DEC, NULL, 0,
10914 NULL, HFILL }},
10915 { &hf_ain_interAnnounceBlock,
10916 { "interAnnounceBlock", "ain.interAnnounceBlock",
10917 FT_UINT32, BASE_DEC, NULL, 0,
10918 NULL, HFILL }},
10919 { &hf_ain_UninterAnnounceBlock_item,
10920 { "AnnounceElement", "ain.AnnounceElement",
10921 FT_BYTES, BASE_NONE, NULL, 0,
10922 NULL, HFILL }},
10923 { &hf_ain_InterAnnounceBlock_item,
10924 { "AnnounceElement", "ain.AnnounceElement",
10925 FT_BYTES, BASE_NONE, NULL, 0,
10926 NULL, HFILL }},
10927 { &hf_ain_maximumDigits,
10928 { "maximumDigits", "ain.maximumDigits",
10929 FT_UINT32, BASE_DEC, NULL, 0,
10930 NULL, HFILL }},
10931 { &hf_ain_intervalTime,
10932 { "intervalTime", "ain.intervalTime",
10933 FT_UINT32, BASE_DEC, NULL, 0,
10934 NULL, HFILL }},
10935 { &hf_ain_localSSPTime,
10936 { "localSSPTime", "ain.localSSPTime",
10937 FT_BYTES, BASE_NONE, NULL, 0,
10938 NULL, HFILL }},
10939 { &hf_ain_absoluteSCPTime,
10940 { "absoluteSCPTime", "ain.absoluteSCPTime",
10941 FT_BYTES, BASE_NONE, NULL, 0,
10942 NULL, HFILL }},
10943 { &hf_ain_bri,
10944 { "bri", "ain.bri_element",
10945 FT_NONE, BASE_NONE, NULL, 0,
10946 NULL, HFILL }},
10947 { &hf_ain_privateFacilityGID,
10948 { "privateFacilityGID", "ain.privateFacilityGID",
10949 FT_UINT32, BASE_DEC, NULL, 0,
10950 NULL, HFILL }},
10951 { &hf_ain_aDSIcpeID,
10952 { "aDSIcpeID", "ain.aDSIcpeID",
10953 FT_BYTES, BASE_NONE, NULL, 0,
10954 NULL, HFILL }},
10955 { &hf_ain_local,
10956 { "local", "ain.local",
10957 FT_INT32, BASE_DEC, NULL, 0,
10958 NULL, HFILL }},
10959 { &hf_ain_global,
10960 { "global", "ain.global",
10961 FT_OID, BASE_NONE, NULL, 0,
10962 "OBJECT_IDENTIFIER", HFILL }},
10963 { &hf_ain_invoke,
10964 { "invoke", "ain.invoke_element",
10965 FT_NONE, BASE_NONE, NULL, 0,
10966 NULL, HFILL }},
10967 { &hf_ain_returnResult,
10968 { "returnResult", "ain.returnResult_element",
10969 FT_NONE, BASE_NONE, NULL, 0,
10970 NULL, HFILL }},
10971 { &hf_ain_returnError,
10972 { "returnError", "ain.returnError_element",
10973 FT_NONE, BASE_NONE, NULL, 0,
10974 NULL, HFILL }},
10975 { &hf_ain_reject,
10976 { "reject", "ain.reject_element",
10977 FT_NONE, BASE_NONE, NULL, 0,
10978 NULL, HFILL }},
10979 { &hf_ain_invokeId,
10980 { "invokeId", "ain.invokeId",
10981 FT_UINT32, BASE_DEC, VALS(ain_InvokeId_vals), 0,
10982 NULL, HFILL }},
10983 { &hf_ain_linkedId,
10984 { "linkedId", "ain.linkedId",
10985 FT_UINT32, BASE_DEC, VALS(ain_T_linkedId_vals), 0,
10986 NULL, HFILL }},
10987 { &hf_ain_present,
10988 { "present", "ain.present",
10989 FT_INT32, BASE_DEC, NULL, 0,
10990 NULL, HFILL }},
10991 { &hf_ain_absent,
10992 { "absent", "ain.absent_element",
10993 FT_NONE, BASE_NONE, NULL, 0,
10994 NULL, HFILL }},
10995 { &hf_ain_opcode,
10996 { "opcode", "ain.opcode",
10997 FT_UINT32, BASE_DEC, VALS(ain_Code_vals), 0,
10998 "Code", HFILL }},
10999 { &hf_ain_argument,
11000 { "argument", "ain.argument_element",
11001 FT_NONE, BASE_NONE, NULL, 0,
11002 NULL, HFILL }},
11003 { &hf_ain_result,
11004 { "result", "ain.result_element",
11005 FT_NONE, BASE_NONE, NULL, 0,
11006 NULL, HFILL }},
11007 { &hf_ain_result_01,
11008 { "result", "ain.result_element",
11009 FT_NONE, BASE_NONE, NULL, 0,
11010 "T_result_01", HFILL }},
11011 { &hf_ain_errcode,
11012 { "errcode", "ain.errcode",
11013 FT_UINT32, BASE_DEC, VALS(ain_Code_vals), 0,
11014 "Code", HFILL }},
11015 { &hf_ain_parameter_01,
11016 { "parameter", "ain.parameter_element",
11017 FT_NONE, BASE_NONE, NULL, 0,
11018 NULL, HFILL }},
11019 { &hf_ain_problem,
11020 { "problem", "ain.problem",
11021 FT_UINT32, BASE_DEC, VALS(ain_T_problem_vals), 0,
11022 NULL, HFILL }},
11023 { &hf_ain_general,
11024 { "general", "ain.general",
11025 FT_INT32, BASE_DEC, VALS(ain_GeneralProblem_vals), 0,
11026 "GeneralProblem", HFILL }},
11027 { &hf_ain_invokeproblem,
11028 { "invoke", "ain.invokeproblem",
11029 FT_INT32, BASE_DEC, VALS(ain_InvokeProblem_vals), 0,
11030 "InvokeProblem", HFILL }},
11031 { &hf_ain_returnResult_01,
11032 { "returnResult", "ain.returnResult",
11033 FT_INT32, BASE_DEC, VALS(ain_ReturnResultProblem_vals), 0,
11034 "ReturnResultProblem", HFILL }},
11035 { &hf_ain_returnError_01,
11036 { "returnError", "ain.returnError",
11037 FT_INT32, BASE_DEC, VALS(ain_ReturnErrorProblem_vals), 0,
11038 "ReturnErrorProblem", HFILL }},
11039 { &hf_ain_present_01,
11040 { "present", "ain.present",
11041 FT_INT32, BASE_DEC, NULL, 0,
11042 "INTEGER", HFILL }},
11043 { &hf_ain_InvokeId_present,
11044 { "InvokeId.present", "ain.InvokeId_present",
11045 FT_INT32, BASE_DEC, NULL, 0,
11046 "InvokeId_present", HFILL }},
11047 { &hf_ain_ApplyRestrictions_U_code,
11048 { "code", "ain.ApplyRestrictions.U.code",
11049 FT_BOOLEAN, 8, NULL, 0x80,
11050 NULL, HFILL }},
11051 { &hf_ain_ApplyRestrictions_U_toll,
11052 { "toll", "ain.ApplyRestrictions.U.toll",
11053 FT_BOOLEAN, 8, NULL, 0x40,
11054 NULL, HFILL }},
11055 { &hf_ain_EDPNotification_U_oCalledPartyBusy,
11056 { "oCalledPartyBusy", "ain.EDPNotification.U.oCalledPartyBusy",
11057 FT_BOOLEAN, 8, NULL, 0x80,
11058 NULL, HFILL }},
11059 { &hf_ain_EDPNotification_U_oNoAnswer,
11060 { "oNoAnswer", "ain.EDPNotification.U.oNoAnswer",
11061 FT_BOOLEAN, 8, NULL, 0x40,
11062 NULL, HFILL }},
11063 { &hf_ain_EDPNotification_U_oTermSeized,
11064 { "oTermSeized", "ain.EDPNotification.U.oTermSeized",
11065 FT_BOOLEAN, 8, NULL, 0x20,
11066 NULL, HFILL }},
11067 { &hf_ain_EDPNotification_U_oAnswer,
11068 { "oAnswer", "ain.EDPNotification.U.oAnswer",
11069 FT_BOOLEAN, 8, NULL, 0x10,
11070 NULL, HFILL }},
11071 { &hf_ain_EDPNotification_U_tBusy,
11072 { "tBusy", "ain.EDPNotification.U.tBusy",
11073 FT_BOOLEAN, 8, NULL, 0x08,
11074 NULL, HFILL }},
11075 { &hf_ain_EDPNotification_U_tNoAnswer,
11076 { "tNoAnswer", "ain.EDPNotification.U.tNoAnswer",
11077 FT_BOOLEAN, 8, NULL, 0x04,
11078 NULL, HFILL }},
11079 { &hf_ain_EDPNotification_U_termResourceAvailable,
11080 { "termResourceAvailable", "ain.EDPNotification.U.termResourceAvailable",
11081 FT_BOOLEAN, 8, NULL, 0x02,
11082 NULL, HFILL }},
11083 { &hf_ain_EDPNotification_U_tAnswer,
11084 { "tAnswer", "ain.EDPNotification.U.tAnswer",
11085 FT_BOOLEAN, 8, NULL, 0x01,
11086 NULL, HFILL }},
11087 { &hf_ain_EDPNotification_U_networkBusy,
11088 { "networkBusy", "ain.EDPNotification.U.networkBusy",
11089 FT_BOOLEAN, 8, NULL, 0x80,
11090 NULL, HFILL }},
11091 { &hf_ain_EDPNotification_U_oSuspended,
11092 { "oSuspended", "ain.EDPNotification.U.oSuspended",
11093 FT_BOOLEAN, 8, NULL, 0x40,
11094 NULL, HFILL }},
11095 { &hf_ain_EDPNotification_U_oDisconnectCalled,
11096 { "oDisconnectCalled", "ain.EDPNotification.U.oDisconnectCalled",
11097 FT_BOOLEAN, 8, NULL, 0x20,
11098 NULL, HFILL }},
11099 { &hf_ain_EDPNotification_U_oDisconnect,
11100 { "oDisconnect", "ain.EDPNotification.U.oDisconnect",
11101 FT_BOOLEAN, 8, NULL, 0x10,
11102 NULL, HFILL }},
11103 { &hf_ain_EDPNotification_U_oAbandon,
11104 { "oAbandon", "ain.EDPNotification.U.oAbandon",
11105 FT_BOOLEAN, 8, NULL, 0x08,
11106 NULL, HFILL }},
11107 { &hf_ain_EDPNotification_U_featureActivator,
11108 { "featureActivator", "ain.EDPNotification.U.featureActivator",
11109 FT_BOOLEAN, 8, NULL, 0x04,
11110 NULL, HFILL }},
11111 { &hf_ain_EDPNotification_U_switchHookFlash,
11112 { "switchHookFlash", "ain.EDPNotification.U.switchHookFlash",
11113 FT_BOOLEAN, 8, NULL, 0x02,
11114 NULL, HFILL }},
11115 { &hf_ain_EDPNotification_U_success,
11116 { "success", "ain.EDPNotification.U.success",
11117 FT_BOOLEAN, 8, NULL, 0x01,
11118 NULL, HFILL }},
11119 { &hf_ain_EDPNotification_U_tDisconnect,
11120 { "tDisconnect", "ain.EDPNotification.U.tDisconnect",
11121 FT_BOOLEAN, 8, NULL, 0x80,
11122 NULL, HFILL }},
11123 { &hf_ain_EDPNotification_U_timeout,
11124 { "timeout", "ain.EDPNotification.U.timeout",
11125 FT_BOOLEAN, 8, NULL, 0x40,
11126 NULL, HFILL }},
11127 { &hf_ain_EDPNotification_U_originationAttempt,
11128 { "originationAttempt", "ain.EDPNotification.U.originationAttempt",
11129 FT_BOOLEAN, 8, NULL, 0x20,
11130 NULL, HFILL }},
11131 { &hf_ain_EDPNotification_U_oDTMFEntered,
11132 { "oDTMFEntered", "ain.EDPNotification.U.oDTMFEntered",
11133 FT_BOOLEAN, 8, NULL, 0x10,
11134 NULL, HFILL }},
11135 { &hf_ain_EDPNotification_U_tDTMFEntered,
11136 { "tDTMFEntered", "ain.EDPNotification.U.tDTMFEntered",
11137 FT_BOOLEAN, 8, NULL, 0x08,
11138 NULL, HFILL }},
11139 { &hf_ain_EDPRequest_U_oCalledPartyBusy,
11140 { "oCalledPartyBusy", "ain.EDPRequest.U.oCalledPartyBusy",
11141 FT_BOOLEAN, 8, NULL, 0x80,
11142 NULL, HFILL }},
11143 { &hf_ain_EDPRequest_U_oNoAnswer,
11144 { "oNoAnswer", "ain.EDPRequest.U.oNoAnswer",
11145 FT_BOOLEAN, 8, NULL, 0x40,
11146 NULL, HFILL }},
11147 { &hf_ain_EDPRequest_U_oTermSeized,
11148 { "oTermSeized", "ain.EDPRequest.U.oTermSeized",
11149 FT_BOOLEAN, 8, NULL, 0x20,
11150 NULL, HFILL }},
11151 { &hf_ain_EDPRequest_U_oAnswer,
11152 { "oAnswer", "ain.EDPRequest.U.oAnswer",
11153 FT_BOOLEAN, 8, NULL, 0x10,
11154 NULL, HFILL }},
11155 { &hf_ain_EDPRequest_U_tBusy,
11156 { "tBusy", "ain.EDPRequest.U.tBusy",
11157 FT_BOOLEAN, 8, NULL, 0x08,
11158 NULL, HFILL }},
11159 { &hf_ain_EDPRequest_U_tNoAnswer,
11160 { "tNoAnswer", "ain.EDPRequest.U.tNoAnswer",
11161 FT_BOOLEAN, 8, NULL, 0x04,
11162 NULL, HFILL }},
11163 { &hf_ain_EDPRequest_U_termResourceAvailable,
11164 { "termResourceAvailable", "ain.EDPRequest.U.termResourceAvailable",
11165 FT_BOOLEAN, 8, NULL, 0x02,
11166 NULL, HFILL }},
11167 { &hf_ain_EDPRequest_U_tAnswer,
11168 { "tAnswer", "ain.EDPRequest.U.tAnswer",
11169 FT_BOOLEAN, 8, NULL, 0x01,
11170 NULL, HFILL }},
11171 { &hf_ain_EDPRequest_U_networkBusy,
11172 { "networkBusy", "ain.EDPRequest.U.networkBusy",
11173 FT_BOOLEAN, 8, NULL, 0x80,
11174 NULL, HFILL }},
11175 { &hf_ain_EDPRequest_U_oSuspended,
11176 { "oSuspended", "ain.EDPRequest.U.oSuspended",
11177 FT_BOOLEAN, 8, NULL, 0x40,
11178 NULL, HFILL }},
11179 { &hf_ain_EDPRequest_U_oDisconnectCalled,
11180 { "oDisconnectCalled", "ain.EDPRequest.U.oDisconnectCalled",
11181 FT_BOOLEAN, 8, NULL, 0x20,
11182 NULL, HFILL }},
11183 { &hf_ain_EDPRequest_U_oDisconnect,
11184 { "oDisconnect", "ain.EDPRequest.U.oDisconnect",
11185 FT_BOOLEAN, 8, NULL, 0x10,
11186 NULL, HFILL }},
11187 { &hf_ain_EDPRequest_U_oAbandon,
11188 { "oAbandon", "ain.EDPRequest.U.oAbandon",
11189 FT_BOOLEAN, 8, NULL, 0x08,
11190 NULL, HFILL }},
11191 { &hf_ain_EDPRequest_U_featureActivator,
11192 { "featureActivator", "ain.EDPRequest.U.featureActivator",
11193 FT_BOOLEAN, 8, NULL, 0x04,
11194 NULL, HFILL }},
11195 { &hf_ain_EDPRequest_U_switchHookFlash,
11196 { "switchHookFlash", "ain.EDPRequest.U.switchHookFlash",
11197 FT_BOOLEAN, 8, NULL, 0x02,
11198 NULL, HFILL }},
11199 { &hf_ain_EDPRequest_U_success,
11200 { "success", "ain.EDPRequest.U.success",
11201 FT_BOOLEAN, 8, NULL, 0x01,
11202 NULL, HFILL }},
11203 { &hf_ain_EDPRequest_U_tDisconnect,
11204 { "tDisconnect", "ain.EDPRequest.U.tDisconnect",
11205 FT_BOOLEAN, 8, NULL, 0x80,
11206 NULL, HFILL }},
11207 { &hf_ain_EDPRequest_U_timeout,
11208 { "timeout", "ain.EDPRequest.U.timeout",
11209 FT_BOOLEAN, 8, NULL, 0x40,
11210 NULL, HFILL }},
11211 { &hf_ain_EDPRequest_U_originationAttempt,
11212 { "originationAttempt", "ain.EDPRequest.U.originationAttempt",
11213 FT_BOOLEAN, 8, NULL, 0x20,
11214 NULL, HFILL }},
11215 { &hf_ain_EDPRequest_U_oDTMFEntered,
11216 { "oDTMFEntered", "ain.EDPRequest.U.oDTMFEntered",
11217 FT_BOOLEAN, 8, NULL, 0x10,
11218 NULL, HFILL }},
11219 { &hf_ain_EDPRequest_U_tDTMFEntered,
11220 { "tDTMFEntered", "ain.EDPRequest.U.tDTMFEntered",
11221 FT_BOOLEAN, 8, NULL, 0x08,
11222 NULL, HFILL }},
11223 { &hf_ain_Empty_entireList,
11224 { "entireList", "ain.Empty.entireList",
11225 FT_BOOLEAN, 8, NULL, 0x80,
11226 NULL, HFILL }},
11227 { &hf_ain_Empty_outgoingmemorySlot,
11228 { "outgoingmemorySlot", "ain.Empty.outgoingmemorySlot",
11229 FT_BOOLEAN, 8, NULL, 0x40,
11230 NULL, HFILL }},
11231 { &hf_ain_Empty_incomingmemorySlot,
11232 { "incomingmemorySlot", "ain.Empty.incomingmemorySlot",
11233 FT_BOOLEAN, 8, NULL, 0x20,
11234 NULL, HFILL }},
11235 { &hf_ain_Empty_forwardToDn,
11236 { "forwardToDn", "ain.Empty.forwardToDn",
11237 FT_BOOLEAN, 8, NULL, 0x10,
11238 NULL, HFILL }},
11239 { &hf_ain_Request1_activationStatus,
11240 { "activationStatus", "ain.Request1.activationStatus",
11241 FT_BOOLEAN, 8, NULL, 0x80,
11242 NULL, HFILL }},
11243 { &hf_ain_Request2_activationStatus,
11244 { "activationStatus", "ain.Request2.activationStatus",
11245 FT_BOOLEAN, 8, NULL, 0x80,
11246 NULL, HFILL }},
11247 { &hf_ain_Request2_delayInterval,
11248 { "delayInterval", "ain.Request2.delayInterval",
11249 FT_BOOLEAN, 8, NULL, 0x40,
11250 NULL, HFILL }},
11251 { &hf_ain_Request3_activationStatus,
11252 { "activationStatus", "ain.Request3.activationStatus",
11253 FT_BOOLEAN, 8, NULL, 0x80,
11254 NULL, HFILL }},
11255 { &hf_ain_Request3_entireList,
11256 { "entireList", "ain.Request3.entireList",
11257 FT_BOOLEAN, 8, NULL, 0x40,
11258 NULL, HFILL }},
11259 { &hf_ain_Request3_listSize,
11260 { "listSize", "ain.Request3.listSize",
11261 FT_BOOLEAN, 8, NULL, 0x20,
11262 NULL, HFILL }},
11263 { &hf_ain_Request4_activationStatus,
11264 { "activationStatus", "ain.Request4.activationStatus",
11265 FT_BOOLEAN, 8, NULL, 0x80,
11266 NULL, HFILL }},
11267 { &hf_ain_Request4_forwardingDn,
11268 { "forwardingDn", "ain.Request4.forwardingDn",
11269 FT_BOOLEAN, 8, NULL, 0x40,
11270 NULL, HFILL }},
11271 { &hf_ain_Request5_activationStatus,
11272 { "activationStatus", "ain.Request5.activationStatus",
11273 FT_BOOLEAN, 8, NULL, 0x80,
11274 NULL, HFILL }},
11275 { &hf_ain_Request5_forwardingDn,
11276 { "forwardingDn", "ain.Request5.forwardingDn",
11277 FT_BOOLEAN, 8, NULL, 0x40,
11278 NULL, HFILL }},
11279 { &hf_ain_Request5_entireList,
11280 { "entireList", "ain.Request5.entireList",
11281 FT_BOOLEAN, 8, NULL, 0x20,
11282 NULL, HFILL }},
11283 { &hf_ain_Request5_listSize,
11284 { "listSize", "ain.Request5.listSize",
11285 FT_BOOLEAN, 8, NULL, 0x10,
11286 NULL, HFILL }},
11287 { &hf_ain_Request6_delayInterval,
11288 { "delayInterval", "ain.Request6.delayInterval",
11289 FT_BOOLEAN, 8, NULL, 0x80,
11290 NULL, HFILL }},
11291 { &hf_ain_RequestMemorySlot_incoming,
11292 { "incoming", "ain.RequestMemorySlot.incoming",
11293 FT_BOOLEAN, 8, NULL, 0x80,
11294 NULL, HFILL }},
11295 { &hf_ain_RequestMemorySlot_outgoing,
11296 { "outgoing", "ain.RequestMemorySlot.outgoing",
11297 FT_BOOLEAN, 8, NULL, 0x40,
11298 NULL, HFILL }},
11301 /* List of subtrees */
11302 static int *ett[] = {
11303 &ett_ain,
11304 &ett_ain_digits,
11305 &ett_ain_carrierformat,
11306 &ett_ain_amaslpid,
11307 &ett_ain_CallInfoFromResourceArg,
11308 &ett_ain_CloseArg,
11309 &ett_ain_CTRClearArg,
11310 &ett_ain_FailureOutcomeArg,
11311 &ett_ain_InfoAnalyzedArg,
11312 &ett_ain_InfoCollectedArg,
11313 &ett_ain_NetworkBusyArg,
11314 &ett_ain_OAnswerArg,
11315 &ett_ain_OAbandonArg,
11316 &ett_ain_ODisconnectArg,
11317 &ett_ain_OMidCallArg,
11318 &ett_ain_ONoAnswerArg,
11319 &ett_ain_OSuspendedArg,
11320 &ett_ain_OTermSeizedArg,
11321 &ett_ain_OriginationAttemptArg,
11322 &ett_ain_RES_resourceClear,
11323 &ett_ain_ResourceClearArg,
11324 &ett_ain_SuccessOutcomeArg,
11325 &ett_ain_TAnswerArg,
11326 &ett_ain_TBusyArg,
11327 &ett_ain_TDisconnectArg,
11328 &ett_ain_TDTMFEnteredArg,
11329 &ett_ain_TMidCallArg,
11330 &ett_ain_TNoAnswerArg,
11331 &ett_ain_TerminationAttemptArg,
11332 &ett_ain_TermResourceAvailableArg,
11333 &ett_ain_TimeoutArg,
11334 &ett_ain_AnalyzeRouteArg,
11335 &ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber,
11336 &ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC,
11337 &ett_ain_AuthorizeTerminationArg,
11338 &ett_ain_CancelResourceEventArg,
11339 &ett_ain_CollectInformationArg,
11340 &ett_ain_ConnectToResourceArg,
11341 &ett_ain_ContinueArg,
11342 &ett_ain_CreateCallArg,
11343 &ett_ain_CreateCallRes,
11344 &ett_ain_DisconnectArg,
11345 &ett_ain_DisconnectLegArg,
11346 &ett_ain_ForwardCallArg,
11347 &ett_ain_MergeCallArg,
11348 &ett_ain_MoveLegArg,
11349 &ett_ain_OfferCallArg,
11350 &ett_ain_OriginateCallArg,
11351 &ett_ain_ReconnectArg,
11352 &ett_ain_RES_sendToResource,
11353 &ett_ain_SendToResourceArg,
11354 &ett_ain_SetTimerArg,
11355 &ett_ain_SplitLegArg,
11356 &ett_ain_AcgArg,
11357 &ett_ain_RES_acgGlobalCtrlRestore,
11358 &ett_ain_AcgGlobalCtrlRestoreArg,
11359 &ett_ain_AcgOverflowArg,
11360 &ett_ain_RES_activityTest,
11361 &ett_ain_ActivityTestArg,
11362 &ett_ain_RES_callTypeRequest,
11363 &ett_ain_CallTypeRequestArg,
11364 &ett_ain_ControlRequestArg,
11365 &ett_ain_RES_echoRequest,
11366 &ett_ain_EchoRequestArg,
11367 &ett_ain_FurnishAMAInformationArg,
11368 &ett_ain_MonitorForChangeArg,
11369 &ett_ain_MonitorSuccessArg,
11370 &ett_ain_NCADataArg,
11371 &ett_ain_T_id,
11372 &ett_ain_RES_nCARequest,
11373 &ett_ain_NCARequestArg,
11374 &ett_ain_RES_queryRequest,
11375 &ett_ain_QueryRequestArg,
11376 &ett_ain_RequestReportBCMEventArg,
11377 &ett_ain_StatusReportedArg,
11378 &ett_ain_TerminationNotificationArg,
11379 &ett_ain_RES_update,
11380 &ett_ain_UpdateArg,
11381 &ett_ain_RES_updateRequest,
11382 &ett_ain_UpdateRequestArg,
11383 &ett_ain_PAR_applicationError,
11384 &ett_ain_PAR_failureReport,
11385 &ett_ain_AdministrableObject,
11386 &ett_ain_TriggerItemAssignment_U,
11387 &ett_ain_SSPUserResourceID,
11388 &ett_ain_DnCtID,
11389 &ett_ain_TriggerItemID,
11390 &ett_ain_SSPUserResourceSubID,
11391 &ett_ain_ISDNBChannelID,
11392 &ett_ain_SSPUserResource_U,
11393 &ett_ain_UpdateGroups,
11394 &ett_ain_UpdateGroup1,
11395 &ett_ain_Action1,
11396 &ett_ain_UpdateGroup2,
11397 &ett_ain_Action2,
11398 &ett_ain_UpdateGroup3,
11399 &ett_ain_Action3,
11400 &ett_ain_EditSpecificEntry,
11401 &ett_ain_Entry,
11402 &ett_ain_UpdateGroup4,
11403 &ett_ain_Action4,
11404 &ett_ain_ForwardingDn,
11405 &ett_ain_Set,
11406 &ett_ain_UpdateGroup5,
11407 &ett_ain_Action5,
11408 &ett_ain_UpdateGroup6,
11409 &ett_ain_Action6,
11410 &ett_ain_UpdateGroup7,
11411 &ett_ain_Action7,
11412 &ett_ain_UpdateGroup8,
11413 &ett_ain_Action8,
11414 &ett_ain_UpdateGroup9,
11415 &ett_ain_Action9,
11416 &ett_ain_ChangeList,
11417 &ett_ain_SrhrGroup_U,
11418 &ett_ain_NetworkTestDesignator_U,
11419 &ett_ain_NtdID,
11420 &ett_ain_OperationsMonitoringAssignment_U,
11421 &ett_ain_OperationsMonitoredItemID,
11422 &ett_ain_AMAMeasurement_U,
11423 &ett_ain_Amp2_U,
11424 &ett_ain_AmpAINNodeID,
11425 &ett_ain_AmpSvcProvID,
11426 &ett_ain_ApplicationErrorString_U,
11427 &ett_ain_ApplyRestrictions_U,
11428 &ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation,
11429 &ett_ain_DisplayInformation,
11430 &ett_ain_EDPNotification_U,
11431 &ett_ain_EDPRequest_U,
11432 &ett_ain_ExtensionParameter,
11433 &ett_ain_FacilityGID,
11434 &ett_ain_FailedMessage_U,
11435 &ett_ain_InvParms,
11436 &ett_ain_Parms,
11437 &ett_ain_GapInterval,
11438 &ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress,
11439 &ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits,
11440 &ett_ain_InfoProvided_U,
11441 &ett_ain_EntireList,
11442 &ett_ain_Entry2,
11443 &ett_ain_MemorySlot,
11444 &ett_ain_Incoming,
11445 &ett_ain_Outgoing,
11446 &ett_ain_Empty,
11447 &ett_ain_ProvideInfo_U,
11448 &ett_ain_RequestGroups,
11449 &ett_ain_RequestGroup1,
11450 &ett_ain_Request1,
11451 &ett_ain_RequestGroup2,
11452 &ett_ain_Request2,
11453 &ett_ain_RequestGroup3,
11454 &ett_ain_Request3,
11455 &ett_ain_RequestGroup4,
11456 &ett_ain_Request4,
11457 &ett_ain_RequestGroup5,
11458 &ett_ain_Request5,
11459 &ett_ain_RequestGroup6,
11460 &ett_ain_Request6,
11461 &ett_ain_RequestMemorySlot,
11462 &ett_ain_ServiceProviderID,
11463 &ett_ain_StrParameterBlock_U,
11464 &ett_ain_AnnouncementBlock,
11465 &ett_ain_UninterAnnounceBlock,
11466 &ett_ain_InterAnnounceBlock,
11467 &ett_ain_AnnouncementDigitBlock,
11468 &ett_ain_TimeoutTimer_U,
11469 &ett_ain_UserID_U,
11470 &ett_ain_T_bri,
11471 &ett_ain_Code,
11472 &ett_ain_ROS,
11473 &ett_ain_Invoke,
11474 &ett_ain_T_linkedId,
11475 &ett_ain_ReturnResult,
11476 &ett_ain_T_result,
11477 &ett_ain_ReturnError,
11478 &ett_ain_Reject,
11479 &ett_ain_T_problem,
11480 &ett_ain_InvokeId,
11483 static ei_register_info ei[] = {
11484 { &ei_ain_unknown_invokeData,{ "ain.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL } },
11485 { &ei_ain_unknown_returnResultData,{ "ain.unknown.returnResultData", PI_MALFORMED, PI_WARN, "Unknown returnResultData", EXPFILL } },
11486 { &ei_ain_unknown_returnErrorData,{ "ain.unknown.returnErrorData", PI_MALFORMED, PI_WARN, "Unknown returnErrorData", EXPFILL } },
11489 expert_module_t* expert_ain;
11491 /* Register protocol */
11492 proto_ain = proto_register_protocol(PNAME, PSNAME, PFNAME);
11493 ain_handle = register_dissector("ain", dissect_ain, proto_ain);
11494 /* Register fields and subtrees */
11495 proto_register_field_array(proto_ain, hf, array_length(hf));
11496 proto_register_subtree_array(ett, array_length(ett));
11497 expert_ain = expert_register_protocol(proto_ain);
11498 expert_register_field_array(expert_ain, ei, array_length(ei));
11503 * Editor modelines
11505 * Local Variables:
11506 * c-basic-offset: 2
11507 * tab-width: 8
11508 * indent-tabs-mode: nil
11509 * End:
11511 * ex: set shiftwidth=2 tabstop=8 expandtab:
11512 * :indentSize=2:tabSize=8:noTabs=true: